{ "pandav:/examples/jsm/curves/NURBSCurve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/curves/NURBSCurve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/curves/NURBSUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.NURBSCurve = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var NURBSUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/examples/jsm/curves/NURBSUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var NURBSCurve = exports.NURBSCurve = function (_Curve) {\n (0, _inherits2.default)(NURBSCurve, _Curve);\n var _super = (0, _createSuper2.default)(NURBSCurve);\n function NURBSCurve(degree, knots, controlPoints, startKnot, endKnot) {\n var _this;\n (0, _classCallCheck2.default)(this, NURBSCurve);\n _this = _super.call(this);\n _this.degree = degree;\n _this.knots = knots;\n _this.controlPoints = [];\n _this.startKnot = startKnot || 0;\n _this.endKnot = endKnot || _this.knots.length - 1;\n for (var i = 0; i < controlPoints.length; ++i) {\n var point = controlPoints[i];\n _this.controlPoints[i] = new _Three.Vector4(point.x, point.y, point.z, point.w);\n }\n return _this;\n }\n (0, _createClass2.default)(NURBSCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Three.Vector3();\n var point = optionalTarget;\n var u = this.knots[this.startKnot] + t * (this.knots[this.endKnot] - this.knots[this.startKnot]);\n var hpoint = NURBSUtils.calcBSplinePoint(this.degree, this.knots, this.controlPoints, u);\n if (hpoint.w !== 1.0) {\n hpoint.divideScalar(hpoint.w);\n }\n return point.set(hpoint.x, hpoint.y, hpoint.z);\n } },\n {\n key: \"getTangent\",\n value: function getTangent(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Three.Vector3();\n var tangent = optionalTarget;\n var u = this.knots[0] + t * (this.knots[this.knots.length - 1] - this.knots[0]);\n var ders = NURBSUtils.calcNURBSDerivatives(this.degree, this.knots, this.controlPoints, u, 1);\n tangent.copy(ders[1]).normalize();\n return tangent;\n } }]);\n\n return NURBSCurve;\n }(_Three.Curve);return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/curves/NURBSUtils.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/curves", "outputPath": "/com/three/0.145.0/examples/jsm/curves/NURBSCurve.js", "fileName": "/examples/jsm/curves/NURBSCurve.js" }, "pandav:/examples/jsm/curves/NURBSUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/curves/NURBSUtils\", [\"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.calcBSplineDerivatives = calcBSplineDerivatives;\n exports.calcBSplinePoint = calcBSplinePoint;\n exports.calcBasisFunctionDerivatives = calcBasisFunctionDerivatives;\n exports.calcBasisFunctions = calcBasisFunctions;\n exports.calcKoverI = calcKoverI;\n exports.calcNURBSDerivatives = calcNURBSDerivatives;\n exports.calcRationalCurveDerivatives = calcRationalCurveDerivatives;\n exports.calcSurfacePoint = calcSurfacePoint;\n exports.findSpan = findSpan;\n var _Three = require('pandav:/com/three/0.145.0');\n function findSpan(p, u, U) {\n var n = U.length - p - 1;\n if (u >= U[n]) {\n return n - 1;\n }\n if (u <= U[p]) {\n return p;\n }\n var low = p;\n var high = n;\n var mid = Math.floor((low + high) / 2);\n while (u < U[mid] || u >= U[mid + 1]) {\n if (u < U[mid]) {\n high = mid;\n } else {\n low = mid;\n }\n mid = Math.floor((low + high) / 2);\n }\n return mid;\n }\n function calcBasisFunctions(span, u, p, U) {\n var N = [];\n var left = [];\n var right = [];\n N[0] = 1.0;\n for (var j = 1; j <= p; ++j) {\n left[j] = u - U[span + 1 - j];\n right[j] = U[span + j] - u;\n var saved = 0.0;\n for (var r = 0; r < j; ++r) {\n var rv = right[r + 1];\n var lv = left[j - r];\n var temp = N[r] / (rv + lv);\n N[r] = saved + rv * temp;\n saved = lv * temp;\n }\n N[j] = saved;\n }\n return N;\n }\n function calcBSplinePoint(p, U, P, u) {\n var span = findSpan(p, u, U);\n var N = calcBasisFunctions(span, u, p, U);\n var C = new _Three.Vector4(0, 0, 0, 0);\n for (var j = 0; j <= p; ++j) {\n var point = P[span - p + j];\n var Nj = N[j];\n var wNj = point.w * Nj;\n C.x += point.x * wNj;\n C.y += point.y * wNj;\n C.z += point.z * wNj;\n C.w += point.w * Nj;\n }\n return C;\n }\n function calcBasisFunctionDerivatives(span, u, p, n, U) {\n var zeroArr = [];\n for (var i = 0; i <= p; ++i) zeroArr[i] = 0.0;\n var ders = [];\n for (var _i = 0; _i <= n; ++_i) ders[_i] = zeroArr.slice(0);\n var ndu = [];\n for (var _i2 = 0; _i2 <= p; ++_i2) ndu[_i2] = zeroArr.slice(0);\n ndu[0][0] = 1.0;\n var left = zeroArr.slice(0);\n var right = zeroArr.slice(0);\n for (var j = 1; j <= p; ++j) {\n left[j] = u - U[span + 1 - j];\n right[j] = U[span + j] - u;\n var saved = 0.0;\n for (var _r = 0; _r < j; ++_r) {\n var rv = right[_r + 1];\n var lv = left[j - _r];\n ndu[j][_r] = rv + lv;\n var temp = ndu[_r][j - 1] / ndu[j][_r];\n ndu[_r][j] = saved + rv * temp;\n saved = lv * temp;\n }\n ndu[j][j] = saved;\n }\n for (var _j = 0; _j <= p; ++_j) {\n ders[0][_j] = ndu[_j][p];\n }\n for (var _r2 = 0; _r2 <= p; ++_r2) {\n var s1 = 0;\n var s2 = 1;\n var a = [];\n for (var _i3 = 0; _i3 <= p; ++_i3) {\n a[_i3] = zeroArr.slice(0);\n }\n a[0][0] = 1.0;\n for (var k = 1; k <= n; ++k) {\n var d = 0.0;\n var rk = _r2 - k;\n var pk = p - k;\n if (_r2 >= k) {\n a[s2][0] = a[s1][0] / ndu[pk + 1][rk];\n d = a[s2][0] * ndu[rk][pk];\n }\n var j1 = rk >= -1 ? 1 : -rk;\n var j2 = _r2 - 1 <= pk ? k - 1 : p - _r2;\n for (var _j2 = j1; _j2 <= j2; ++_j2) {\n a[s2][_j2] = (a[s1][_j2] - a[s1][_j2 - 1]) / ndu[pk + 1][rk + _j2];\n d += a[s2][_j2] * ndu[rk + _j2][pk];\n }\n if (_r2 <= pk) {\n a[s2][k] = -a[s1][k - 1] / ndu[pk + 1][_r2];\n d += a[s2][k] * ndu[_r2][pk];\n }\n ders[k][_r2] = d;\n var _j3 = s1;\n s1 = s2;\n s2 = _j3;\n }\n }\n var r = p;\n for (var _k = 1; _k <= n; ++_k) {\n for (var _j4 = 0; _j4 <= p; ++_j4) {\n ders[_k][_j4] *= r;\n }\n r *= p - _k;\n }\n return ders;\n }\n function calcBSplineDerivatives(p, U, P, u, nd) {\n var du = nd < p ? nd : p;\n var CK = [];\n var span = findSpan(p, u, U);\n var nders = calcBasisFunctionDerivatives(span, u, p, du, U);\n var Pw = [];\n for (var i = 0; i < P.length; ++i) {\n var point = P[i].clone();\n var w = point.w;\n point.x *= w;\n point.y *= w;\n point.z *= w;\n Pw[i] = point;\n }\n for (var k = 0; k <= du; ++k) {\n var _point = Pw[span - p].clone().multiplyScalar(nders[k][0]);\n for (var j = 1; j <= p; ++j) {\n _point.add(Pw[span - p + j].clone().multiplyScalar(nders[k][j]));\n }\n CK[k] = _point;\n }\n for (var _k2 = du + 1; _k2 <= nd + 1; ++_k2) {\n CK[_k2] = new _Three.Vector4(0, 0, 0);\n }\n return CK;\n }\n function calcKoverI(k, i) {\n var nom = 1;\n for (var j = 2; j <= k; ++j) {\n nom *= j;\n }\n var denom = 1;\n for (var _j5 = 2; _j5 <= i; ++_j5) {\n denom *= _j5;\n }\n for (var _j6 = 2; _j6 <= k - i; ++_j6) {\n denom *= _j6;\n }\n return nom / denom;\n }\n function calcRationalCurveDerivatives(Pders) {\n var nd = Pders.length;\n var Aders = [];\n var wders = [];\n for (var i = 0; i < nd; ++i) {\n var point = Pders[i];\n Aders[i] = new _Three.Vector3(point.x, point.y, point.z);\n wders[i] = point.w;\n }\n var CK = [];\n for (var k = 0; k < nd; ++k) {\n var v = Aders[k].clone();\n for (var _i4 = 1; _i4 <= k; ++_i4) {\n v.sub(CK[k - _i4].clone().multiplyScalar(calcKoverI(k, _i4) * wders[_i4]));\n }\n CK[k] = v.divideScalar(wders[0]);\n }\n return CK;\n }\n function calcNURBSDerivatives(p, U, P, u, nd) {\n var Pders = calcBSplineDerivatives(p, U, P, u, nd);\n return calcRationalCurveDerivatives(Pders);\n }\n function calcSurfacePoint(p, q, U, V, P, u, v, target) {\n var uspan = findSpan(p, u, U);\n var vspan = findSpan(q, v, V);\n var Nu = calcBasisFunctions(uspan, u, p, U);\n var Nv = calcBasisFunctions(vspan, v, q, V);\n var temp = [];\n for (var l = 0; l <= q; ++l) {\n temp[l] = new _Three.Vector4(0, 0, 0, 0);\n for (var k = 0; k <= p; ++k) {\n var point = P[uspan - p + k][vspan - q + l].clone();\n var w = point.w;\n point.x *= w;\n point.y *= w;\n point.z *= w;\n temp[l].add(point.multiplyScalar(Nu[k]));\n }\n }\n var Sw = new _Three.Vector4(0, 0, 0, 0);\n for (var _l = 0; _l <= q; ++_l) {\n Sw.add(temp[_l].multiplyScalar(Nv[_l]));\n }\n Sw.divideScalar(Sw.w);\n target.set(Sw.x, Sw.y, Sw.z);\n }return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/curves", "outputPath": "/com/three/0.145.0/examples/jsm/curves/NURBSUtils.js", "fileName": "/examples/jsm/curves/NURBSUtils.js" }, "pandav:/index.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0\", [\"pandav:/com/three/0.145.0/src/Three\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n var _Three = require('pandav:/com/three/0.145.0/src/Three');\n Object.keys(_Three).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _Three[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Three[key];\n } });\n\n });return module.exports;});", "requires": [ "pandav:/src/Three.js" ], "buildLevel": 1, "outputDir": "/com/three/0.145.0", "outputPath": "/com/three/0.145.0/index.js", "fileName": "/index.js" }, "pandav:/examples/jsm/example.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/example\", [\"pandav:/com/three/0.145.0/examples/jsm/objects/Lensflare\", \"pandav:/com/three/0.145.0/examples/jsm/objects/ReflectorForSSRPass\", \"pandav:/com/three/0.145.0/examples/jsm/loaders/TGALoader\", \"pandav:/com/three/0.145.0/examples/jsm/loaders/FBXLoader\", \"pandav:/com/three/0.145.0/examples/jsm/loaders/KTX2Loader\", \"pandav:/com/three/0.145.0/examples/jsm/loaders/DDSLoader\", \"pandav:/com/three/0.145.0/examples/jsm/postprocessing/UnrealBloomPass\", \"pandav:/com/three/0.145.0/examples/jsm/postprocessing/BokehPass\", \"pandav:/com/three/0.145.0/examples/jsm/postprocessing/RenderPass\", \"pandav:/com/three/0.145.0/examples/jsm/postprocessing/SSRPass\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineMaterial\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineGeometry\", \"pandav:/com/three/0.145.0/examples/jsm/lines/Line2\", \"pandav:/com/three/0.145.0/examples/jsm/utils/GeometryUtils\", \"pandav:/com/three/0.145.0/examples/jsm/shaders/BokehShader2\", \"pandav:/com/three/0.145.0/examples/jsm/lights/LightProbeGenerator\", \"pandav:/com/three/0.145.0/examples/jsm/helpers/LightProbeHelper\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n Object.defineProperty(exports, \"BokehDepthShader\", {\n enumerable: true,\n get: function get() {\n return _BokehShader.BokehDepthShader;\n } });\n\n Object.defineProperty(exports, \"BokehPass\", {\n enumerable: true,\n get: function get() {\n return _BokehPass.BokehPass;\n } });\n\n Object.defineProperty(exports, \"BokehShader\", {\n enumerable: true,\n get: function get() {\n return _BokehShader.BokehShader;\n } });\n\n Object.defineProperty(exports, \"DDSLoader\", {\n enumerable: true,\n get: function get() {\n return _DDSLoader.DDSLoader;\n } });\n\n Object.defineProperty(exports, \"FBXLoader\", {\n enumerable: true,\n get: function get() {\n return _FBXLoader.FBXLoader;\n } });\n\n Object.defineProperty(exports, \"KTX2Loader\", {\n enumerable: true,\n get: function get() {\n return _KTX2Loader.KTX2Loader;\n } });\n\n Object.defineProperty(exports, \"Lensflare\", {\n enumerable: true,\n get: function get() {\n return _Lensflare.Lensflare;\n } });\n\n Object.defineProperty(exports, \"LensflareElement\", {\n enumerable: true,\n get: function get() {\n return _Lensflare.LensflareElement;\n } });\n\n Object.defineProperty(exports, \"LightProbeGenerator\", {\n enumerable: true,\n get: function get() {\n return _LightProbeGenerator.LightProbeGenerator;\n } });\n\n Object.defineProperty(exports, \"LightProbeHelper\", {\n enumerable: true,\n get: function get() {\n return _LightProbeHelper.LightProbeHelper;\n } });\n\n Object.defineProperty(exports, \"Line2\", {\n enumerable: true,\n get: function get() {\n return _Line.Line2;\n } });\n\n Object.defineProperty(exports, \"LineGeometry\", {\n enumerable: true,\n get: function get() {\n return _LineGeometry.LineGeometry;\n } });\n\n Object.defineProperty(exports, \"LineMaterial\", {\n enumerable: true,\n get: function get() {\n return _LineMaterial.LineMaterial;\n } });\n\n Object.defineProperty(exports, \"ReflectorForSSRPass\", {\n enumerable: true,\n get: function get() {\n return _ReflectorForSSRPass.ReflectorForSSRPass;\n } });\n\n Object.defineProperty(exports, \"RenderPass\", {\n enumerable: true,\n get: function get() {\n return _RenderPass.RenderPass;\n } });\n\n Object.defineProperty(exports, \"SSRPass\", {\n enumerable: true,\n get: function get() {\n return _SSRPass.SSRPass;\n } });\n\n Object.defineProperty(exports, \"TGALoader\", {\n enumerable: true,\n get: function get() {\n return _TGALoader.TGALoader;\n } });\n\n Object.defineProperty(exports, \"UnrealBloomPass\", {\n enumerable: true,\n get: function get() {\n return _UnrealBloomPass.UnrealBloomPass;\n } });\n\n Object.defineProperty(exports, \"gosper\", {\n enumerable: true,\n get: function get() {\n return _GeometryUtils.gosper;\n } });\n\n Object.defineProperty(exports, \"hilbert2D\", {\n enumerable: true,\n get: function get() {\n return _GeometryUtils.hilbert2D;\n } });\n\n Object.defineProperty(exports, \"hilbert3D\", {\n enumerable: true,\n get: function get() {\n return _GeometryUtils.hilbert3D;\n } });\n\n var _Lensflare = require('pandav:/com/three/0.145.0/examples/jsm/objects/Lensflare');\n var _ReflectorForSSRPass = require('pandav:/com/three/0.145.0/examples/jsm/objects/ReflectorForSSRPass');\n var _TGALoader = require('pandav:/com/three/0.145.0/examples/jsm/loaders/TGALoader');\n var _FBXLoader = require('pandav:/com/three/0.145.0/examples/jsm/loaders/FBXLoader');\n var _KTX2Loader = require('pandav:/com/three/0.145.0/examples/jsm/loaders/KTX2Loader');\n var _DDSLoader = require('pandav:/com/three/0.145.0/examples/jsm/loaders/DDSLoader');\n var _UnrealBloomPass = require('pandav:/com/three/0.145.0/examples/jsm/postprocessing/UnrealBloomPass');\n var _BokehPass = require('pandav:/com/three/0.145.0/examples/jsm/postprocessing/BokehPass');\n var _RenderPass = require('pandav:/com/three/0.145.0/examples/jsm/postprocessing/RenderPass');\n var _SSRPass = require('pandav:/com/three/0.145.0/examples/jsm/postprocessing/SSRPass');\n var _LineMaterial = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineMaterial');\n var _LineGeometry = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineGeometry');\n var _Line = require('pandav:/com/three/0.145.0/examples/jsm/lines/Line2');\n var _GeometryUtils = require('pandav:/com/three/0.145.0/examples/jsm/utils/GeometryUtils');\n var _BokehShader = require('pandav:/com/three/0.145.0/examples/jsm/shaders/BokehShader2');\n var _LightProbeGenerator = require('pandav:/com/three/0.145.0/examples/jsm/lights/LightProbeGenerator');\n var _LightProbeHelper = require('pandav:/com/three/0.145.0/examples/jsm/helpers/LightProbeHelper');return module.exports;});", "requires": [ "pandav:/examples/jsm/objects/Lensflare.js", "pandav:/examples/jsm/objects/ReflectorForSSRPass.js", "pandav:/examples/jsm/loaders/TGALoader.js", "pandav:/examples/jsm/loaders/FBXLoader.js", "pandav:/examples/jsm/loaders/KTX2Loader.js", "pandav:/examples/jsm/loaders/DDSLoader.js", "pandav:/examples/jsm/postprocessing/UnrealBloomPass.js", "pandav:/examples/jsm/postprocessing/BokehPass.js", "pandav:/examples/jsm/postprocessing/RenderPass.js", "pandav:/examples/jsm/postprocessing/SSRPass.js", "pandav:/examples/jsm/lines/LineMaterial.js", "pandav:/examples/jsm/lines/LineGeometry.js", "pandav:/examples/jsm/lines/Line2.js", "pandav:/examples/jsm/utils/GeometryUtils.js", "pandav:/examples/jsm/shaders/BokehShader2.js", "pandav:/examples/jsm/lights/LightProbeGenerator.js", "pandav:/examples/jsm/helpers/LightProbeHelper.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm", "outputPath": "/com/three/0.145.0/examples/jsm/example.js", "fileName": "/examples/jsm/example.js" }, "pandav:/examples/jsm/helpers/LightProbeHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/helpers/LightProbeHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LightProbeHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var LightProbeHelper = exports.LightProbeHelper = function (_Mesh) {\n (0, _inherits2.default)(LightProbeHelper, _Mesh);\n var _super = (0, _createSuper2.default)(LightProbeHelper);\n function LightProbeHelper(lightProbe, size) {\n var _this;\n (0, _classCallCheck2.default)(this, LightProbeHelper);\n var material = new _Three.ShaderMaterial({\n type: \"LightProbeHelperMaterial\",\n uniforms: {\n sh: {\n value: lightProbe.sh.coefficients },\n\n intensity: {\n value: lightProbe.intensity } },\n\n\n vertexShader: [\"varying vec3 vNormal;\", \"void main() {\", \"\tvNormal = normalize( normalMatrix * normal );\", \"\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\", \"}\"].join(\"\\n\"),\n fragmentShader: [\"#define RECIPROCAL_PI 0.318309886\", \"vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {\", \"\t// matrix is assumed to be orthogonal\", \"\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );\", \"}\", \"// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf\", \"vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\", \"\t// normal is assumed to have unit length\", \"\tfloat x = normal.x, y = normal.y, z = normal.z;\", \"\t// band 0\", \"\tvec3 result = shCoefficients[ 0 ] * 0.886227;\", \"\t// band 1\", \"\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\", \"\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\", \"\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\", \"\t// band 2\", \"\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\", \"\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\", \"\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\", \"\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\", \"\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\", \"\treturn result;\", \"}\", \"uniform vec3 sh[ 9 ]; // sh coefficients\", \"uniform float intensity; // light probe intensity\", \"varying vec3 vNormal;\", \"void main() {\", \"\tvec3 normal = normalize( vNormal );\", \"\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\", \"\tvec3 irradiance = shGetIrradianceAt( worldNormal, sh );\", \"\tvec3 outgoingLight = RECIPROCAL_PI * irradiance * intensity;\", \"\tgl_FragColor = linearToOutputTexel( vec4( outgoingLight, 1.0 ) );\", \"}\"].join(\"\\n\") });\n\n var geometry = new _Three.SphereGeometry(1, 32, 16);\n _this = _super.call(this, geometry, material);\n _this.lightProbe = lightProbe;\n _this.size = size;\n _this.type = \"LightProbeHelper\";\n _this.onBeforeRender();\n return _this;\n }\n (0, _createClass2.default)(LightProbeHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } },\n {\n key: \"onBeforeRender\",\n value: function onBeforeRender() {\n this.position.copy(this.lightProbe.position);\n this.scale.set(1, 1, 1).multiplyScalar(this.size);\n this.material.uniforms.intensity.value = this.lightProbe.intensity;\n } }]);\n\n return LightProbeHelper;\n }(_Three.Mesh);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/helpers", "outputPath": "/com/three/0.145.0/examples/jsm/helpers/LightProbeHelper.js", "fileName": "/examples/jsm/helpers/LightProbeHelper.js" }, "pandav:/examples/jsm/controls/TransformControls.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/controls/TransformControls\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TransformControlsPlane = exports.TransformControlsGizmo = exports.TransformControls = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _raycaster = new _Three.Raycaster();\n var _tempVector = new _Three.Vector3();\n var _tempVector2 = new _Three.Vector3();\n var _tempQuaternion = new _Three.Quaternion();\n var _unit = {\n X: new _Three.Vector3(1, 0, 0),\n Y: new _Three.Vector3(0, 1, 0),\n Z: new _Three.Vector3(0, 0, 1) };\n\n var _changeEvent = {\n type: \"change\" };\n\n var _mouseDownEvent = {\n type: \"mouseDown\" };\n\n var _mouseUpEvent = {\n type: \"mouseUp\",\n mode: null };\n\n var _objectChangeEvent = {\n type: \"objectChange\" };\n\n var TransformControls = exports.TransformControls = function (_Object3D) {\n (0, _inherits2.default)(TransformControls, _Object3D);\n var _super = (0, _createSuper2.default)(TransformControls);\n function TransformControls(camera, domElement) {\n var _this;\n (0, _classCallCheck2.default)(this, TransformControls);\n _this = _super.call(this);\n if (domElement === undefined) {\n console.warn('THREE.TransformControls: The second parameter \"domElement\" is now mandatory.');\n domElement = document;\n }\n _this.isTransformControls = true;\n _this.visible = false;\n _this.domElement = domElement;\n _this.domElement.style.touchAction = \"none\";\n var _gizmo = new TransformControlsGizmo();\n _this._gizmo = _gizmo;\n _this.add(_gizmo);\n var _plane = new TransformControlsPlane();\n _this._plane = _plane;\n _this.add(_plane);\n var scope = (0, _assertThisInitialized2.default)(_this);\n function defineProperty(propName, defaultValue) {\n var propValue = defaultValue;\n Object.defineProperty(scope, propName, {\n get: function get() {\n return propValue !== undefined ? propValue : defaultValue;\n },\n set: function set(value) {\n if (propValue !== value) {\n propValue = value;\n _plane[propName] = value;\n _gizmo[propName] = value;\n scope.dispatchEvent({\n type: propName + \"-changed\",\n value: value });\n\n scope.dispatchEvent(_changeEvent);\n }\n } });\n\n scope[propName] = defaultValue;\n _plane[propName] = defaultValue;\n _gizmo[propName] = defaultValue;\n }\n defineProperty(\"camera\", camera);\n defineProperty(\"object\", undefined);\n defineProperty(\"enabled\", true);\n defineProperty(\"axis\", null);\n defineProperty(\"mode\", \"translate\");\n defineProperty(\"translationSnap\", null);\n defineProperty(\"rotationSnap\", null);\n defineProperty(\"scaleSnap\", null);\n defineProperty(\"space\", \"world\");\n defineProperty(\"size\", 1);\n defineProperty(\"dragging\", false);\n defineProperty(\"showX\", true);\n defineProperty(\"showY\", true);\n defineProperty(\"showZ\", true);\n var worldPosition = new _Three.Vector3();\n var worldPositionStart = new _Three.Vector3();\n var worldQuaternion = new _Three.Quaternion();\n var worldQuaternionStart = new _Three.Quaternion();\n var cameraPosition = new _Three.Vector3();\n var cameraQuaternion = new _Three.Quaternion();\n var pointStart = new _Three.Vector3();\n var pointEnd = new _Three.Vector3();\n var rotationAxis = new _Three.Vector3();\n var rotationAngle = 0;\n var eye = new _Three.Vector3();\n defineProperty(\"worldPosition\", worldPosition);\n defineProperty(\"worldPositionStart\", worldPositionStart);\n defineProperty(\"worldQuaternion\", worldQuaternion);\n defineProperty(\"worldQuaternionStart\", worldQuaternionStart);\n defineProperty(\"cameraPosition\", cameraPosition);\n defineProperty(\"cameraQuaternion\", cameraQuaternion);\n defineProperty(\"pointStart\", pointStart);\n defineProperty(\"pointEnd\", pointEnd);\n defineProperty(\"rotationAxis\", rotationAxis);\n defineProperty(\"rotationAngle\", rotationAngle);\n defineProperty(\"eye\", eye);\n _this._offset = new _Three.Vector3();\n _this._startNorm = new _Three.Vector3();\n _this._endNorm = new _Three.Vector3();\n _this._cameraScale = new _Three.Vector3();\n _this._parentPosition = new _Three.Vector3();\n _this._parentQuaternion = new _Three.Quaternion();\n _this._parentQuaternionInv = new _Three.Quaternion();\n _this._parentScale = new _Three.Vector3();\n _this._worldScaleStart = new _Three.Vector3();\n _this._worldQuaternionInv = new _Three.Quaternion();\n _this._worldScale = new _Three.Vector3();\n _this._positionStart = new _Three.Vector3();\n _this._quaternionStart = new _Three.Quaternion();\n _this._scaleStart = new _Three.Vector3();\n _this._getPointer = getPointer.bind((0, _assertThisInitialized2.default)(_this));\n _this._onPointerDown = onPointerDown.bind((0, _assertThisInitialized2.default)(_this));\n _this._onPointerHover = onPointerHover.bind((0, _assertThisInitialized2.default)(_this));\n _this._onPointerMove = onPointerMove.bind((0, _assertThisInitialized2.default)(_this));\n _this._onPointerUp = onPointerUp.bind((0, _assertThisInitialized2.default)(_this));\n _this.domElement.addEventListener(\"pointerdown\", _this._onPointerDown);\n _this.domElement.addEventListener(\"pointermove\", _this._onPointerHover);\n _this.domElement.addEventListener(\"pointerup\", _this._onPointerUp);\n return _this;\n }\n (0, _createClass2.default)(TransformControls, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld() {\n if (this.object !== undefined) {\n this.object.updateMatrixWorld();\n if (this.object.parent === null) {\n console.error(\"TransformControls: The attached 3D object must be a part of the scene graph.\");\n } else {\n this.object.parent.matrixWorld.decompose(this._parentPosition, this._parentQuaternion, this._parentScale);\n }\n this.object.matrixWorld.decompose(this.worldPosition, this.worldQuaternion, this._worldScale);\n this._parentQuaternionInv.copy(this._parentQuaternion).invert();\n this._worldQuaternionInv.copy(this.worldQuaternion).invert();\n }\n this.camera.updateMatrixWorld();\n this.camera.matrixWorld.decompose(this.cameraPosition, this.cameraQuaternion, this._cameraScale);\n if (this.camera.isOrthographicCamera) {\n this.camera.getWorldDirection(this.eye).negate();\n } else {\n this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize();\n }\n (0, _get2.default)((0, _getPrototypeOf2.default)(TransformControls.prototype), \"updateMatrixWorld\", this).call(this, this);\n } },\n {\n key: \"pointerHover\",\n value: function pointerHover(pointer) {\n if (this.object === undefined || this.dragging === true) return;\n _raycaster.setFromCamera(pointer, this.camera);\n var intersect = intersectObjectWithRay(this._gizmo.picker[this.mode], _raycaster);\n if (intersect) {\n this.axis = intersect.object.name;\n } else {\n this.axis = null;\n }\n } },\n {\n key: \"pointerDown\",\n value: function pointerDown(pointer) {\n if (this.object === undefined || this.dragging === true || pointer.button !== 0) return;\n if (this.axis !== null) {\n _raycaster.setFromCamera(pointer, this.camera);\n var planeIntersect = intersectObjectWithRay(this._plane, _raycaster, true);\n if (planeIntersect) {\n this.object.updateMatrixWorld();\n this.object.parent.updateMatrixWorld();\n this._positionStart.copy(this.object.position);\n this._quaternionStart.copy(this.object.quaternion);\n this._scaleStart.copy(this.object.scale);\n this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart);\n this.pointStart.copy(planeIntersect.point).sub(this.worldPositionStart);\n }\n this.dragging = true;\n _mouseDownEvent.mode = this.mode;\n this.dispatchEvent(_mouseDownEvent);\n }\n } },\n {\n key: \"pointerMove\",\n value: function pointerMove(pointer) {\n var axis = this.axis;\n var mode = this.mode;\n var object = this.object;\n var space = this.space;\n if (mode === \"scale\") {\n space = \"local\";\n } else if (axis === \"E\" || axis === \"XYZE\" || axis === \"XYZ\") {\n space = \"world\";\n }\n if (object === undefined || axis === null || this.dragging === false || pointer.button !== -1) return;\n _raycaster.setFromCamera(pointer, this.camera);\n var planeIntersect = intersectObjectWithRay(this._plane, _raycaster, true);\n if (!planeIntersect) return;\n this.pointEnd.copy(planeIntersect.point).sub(this.worldPositionStart);\n if (mode === \"translate\") {\n this._offset.copy(this.pointEnd).sub(this.pointStart);\n if (space === \"local\" && axis !== \"XYZ\") {\n this._offset.applyQuaternion(this._worldQuaternionInv);\n }\n if (axis.indexOf(\"X\") === -1) this._offset.x = 0;\n if (axis.indexOf(\"Y\") === -1) this._offset.y = 0;\n if (axis.indexOf(\"Z\") === -1) this._offset.z = 0;\n if (space === \"local\" && axis !== \"XYZ\") {\n this._offset.applyQuaternion(this._quaternionStart).divide(this._parentScale);\n } else {\n this._offset.applyQuaternion(this._parentQuaternionInv).divide(this._parentScale);\n }\n object.position.copy(this._offset).add(this._positionStart);\n if (this.translationSnap) {\n if (space === \"local\") {\n object.position.applyQuaternion(_tempQuaternion.copy(this._quaternionStart).invert());\n if (axis.search(\"X\") !== -1) {\n object.position.x = Math.round(object.position.x / this.translationSnap) * this.translationSnap;\n }\n if (axis.search(\"Y\") !== -1) {\n object.position.y = Math.round(object.position.y / this.translationSnap) * this.translationSnap;\n }\n if (axis.search(\"Z\") !== -1) {\n object.position.z = Math.round(object.position.z / this.translationSnap) * this.translationSnap;\n }\n object.position.applyQuaternion(this._quaternionStart);\n }\n if (space === \"world\") {\n if (object.parent) {\n object.position.add(_tempVector.setFromMatrixPosition(object.parent.matrixWorld));\n }\n if (axis.search(\"X\") !== -1) {\n object.position.x = Math.round(object.position.x / this.translationSnap) * this.translationSnap;\n }\n if (axis.search(\"Y\") !== -1) {\n object.position.y = Math.round(object.position.y / this.translationSnap) * this.translationSnap;\n }\n if (axis.search(\"Z\") !== -1) {\n object.position.z = Math.round(object.position.z / this.translationSnap) * this.translationSnap;\n }\n if (object.parent) {\n object.position.sub(_tempVector.setFromMatrixPosition(object.parent.matrixWorld));\n }\n }\n }\n } else if (mode === \"scale\") {\n if (axis.search(\"XYZ\") !== -1) {\n var d = this.pointEnd.length() / this.pointStart.length();\n if (this.pointEnd.dot(this.pointStart) < 0) d *= -1;\n _tempVector2.set(d, d, d);\n } else {\n _tempVector.copy(this.pointStart);\n _tempVector2.copy(this.pointEnd);\n _tempVector.applyQuaternion(this._worldQuaternionInv);\n _tempVector2.applyQuaternion(this._worldQuaternionInv);\n _tempVector2.divide(_tempVector);\n if (axis.search(\"X\") === -1) {\n _tempVector2.x = 1;\n }\n if (axis.search(\"Y\") === -1) {\n _tempVector2.y = 1;\n }\n if (axis.search(\"Z\") === -1) {\n _tempVector2.z = 1;\n }\n }\n object.scale.copy(this._scaleStart).multiply(_tempVector2);\n if (this.scaleSnap) {\n if (axis.search(\"X\") !== -1) {\n object.scale.x = Math.round(object.scale.x / this.scaleSnap) * this.scaleSnap || this.scaleSnap;\n }\n if (axis.search(\"Y\") !== -1) {\n object.scale.y = Math.round(object.scale.y / this.scaleSnap) * this.scaleSnap || this.scaleSnap;\n }\n if (axis.search(\"Z\") !== -1) {\n object.scale.z = Math.round(object.scale.z / this.scaleSnap) * this.scaleSnap || this.scaleSnap;\n }\n }\n } else if (mode === \"rotate\") {\n this._offset.copy(this.pointEnd).sub(this.pointStart);\n var ROTATION_SPEED = 20 / this.worldPosition.distanceTo(_tempVector.setFromMatrixPosition(this.camera.matrixWorld));\n if (axis === \"E\") {\n this.rotationAxis.copy(this.eye);\n this.rotationAngle = this.pointEnd.angleTo(this.pointStart);\n this._startNorm.copy(this.pointStart).normalize();\n this._endNorm.copy(this.pointEnd).normalize();\n this.rotationAngle *= this._endNorm.cross(this._startNorm).dot(this.eye) < 0 ? 1 : -1;\n } else if (axis === \"XYZE\") {\n this.rotationAxis.copy(this._offset).cross(this.eye).normalize();\n this.rotationAngle = this._offset.dot(_tempVector.copy(this.rotationAxis).cross(this.eye)) * ROTATION_SPEED;\n } else if (axis === \"X\" || axis === \"Y\" || axis === \"Z\") {\n this.rotationAxis.copy(_unit[axis]);\n _tempVector.copy(_unit[axis]);\n if (space === \"local\") {\n _tempVector.applyQuaternion(this.worldQuaternion);\n }\n this.rotationAngle = this._offset.dot(_tempVector.cross(this.eye).normalize()) * ROTATION_SPEED;\n }\n if (this.rotationSnap) this.rotationAngle = Math.round(this.rotationAngle / this.rotationSnap) * this.rotationSnap;\n if (space === \"local\" && axis !== \"E\" && axis !== \"XYZE\") {\n object.quaternion.copy(this._quaternionStart);\n object.quaternion.multiply(_tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle)).normalize();\n } else {\n this.rotationAxis.applyQuaternion(this._parentQuaternionInv);\n object.quaternion.copy(_tempQuaternion.setFromAxisAngle(this.rotationAxis, this.rotationAngle));\n object.quaternion.multiply(this._quaternionStart).normalize();\n }\n }\n this.dispatchEvent(_changeEvent);\n this.dispatchEvent(_objectChangeEvent);\n } },\n {\n key: \"pointerUp\",\n value: function pointerUp(pointer) {\n if (pointer.button !== 0) return;\n if (this.dragging && this.axis !== null) {\n _mouseUpEvent.mode = this.mode;\n this.dispatchEvent(_mouseUpEvent);\n }\n this.dragging = false;\n this.axis = null;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.domElement.removeEventListener(\"pointerdown\", this._onPointerDown);\n this.domElement.removeEventListener(\"pointermove\", this._onPointerHover);\n this.domElement.removeEventListener(\"pointermove\", this._onPointerMove);\n this.domElement.removeEventListener(\"pointerup\", this._onPointerUp);\n this.traverse(function (child) {\n if (child.geometry) child.geometry.dispose();\n if (child.material) child.material.dispose();\n });\n } },\n {\n key: \"attach\",\n value: function attach(object) {\n this.object = object;\n this.visible = true;\n return this;\n } },\n {\n key: \"detach\",\n value: function detach() {\n this.object = undefined;\n this.visible = false;\n this.axis = null;\n return this;\n } },\n {\n key: \"reset\",\n value: function reset() {\n if (!this.enabled) return;\n if (this.dragging) {\n this.object.position.copy(this._positionStart);\n this.object.quaternion.copy(this._quaternionStart);\n this.object.scale.copy(this._scaleStart);\n this.dispatchEvent(_changeEvent);\n this.dispatchEvent(_objectChangeEvent);\n this.pointStart.copy(this.pointEnd);\n }\n } },\n {\n key: \"getRaycaster\",\n value: function getRaycaster() {\n return _raycaster;\n } },\n {\n key: \"getMode\",\n value: function getMode() {\n return this.mode;\n } },\n {\n key: \"setMode\",\n value: function setMode(mode) {\n this.mode = mode;\n } },\n {\n key: \"setTranslationSnap\",\n value: function setTranslationSnap(translationSnap) {\n this.translationSnap = translationSnap;\n } },\n {\n key: \"setRotationSnap\",\n value: function setRotationSnap(rotationSnap) {\n this.rotationSnap = rotationSnap;\n } },\n {\n key: \"setScaleSnap\",\n value: function setScaleSnap(scaleSnap) {\n this.scaleSnap = scaleSnap;\n } },\n {\n key: \"setSize\",\n value: function setSize(size) {\n this.size = size;\n } },\n {\n key: \"setSpace\",\n value: function setSpace(space) {\n this.space = space;\n } }]);\n\n return TransformControls;\n }(_Three.Object3D);\n function getPointer(event) {\n if (this.domElement.ownerDocument.pointerLockElement) {\n return {\n x: 0,\n y: 0,\n button: event.button };\n\n } else {\n var rect = this.domElement.getBoundingClientRect();\n return {\n x: (event.clientX - rect.left) / rect.width * 2 - 1,\n y: -(event.clientY - rect.top) / rect.height * 2 + 1,\n button: event.button };\n\n }\n }\n function onPointerHover(event) {\n if (!this.enabled) return;\n switch (event.pointerType) {\n case \"mouse\":\n case \"pen\":\n this.pointerHover(this._getPointer(event));\n break;}\n\n }\n function onPointerDown(event) {\n if (!this.enabled) return;\n if (!document.pointerLockElement) {\n this.domElement.setPointerCapture(event.pointerId);\n }\n this.domElement.addEventListener(\"pointermove\", this._onPointerMove);\n this.pointerHover(this._getPointer(event));\n this.pointerDown(this._getPointer(event));\n }\n function onPointerMove(event) {\n if (!this.enabled) return;\n this.pointerMove(this._getPointer(event));\n }\n function onPointerUp(event) {\n if (!this.enabled) return;\n this.domElement.releasePointerCapture(event.pointerId);\n this.domElement.removeEventListener(\"pointermove\", this._onPointerMove);\n this.pointerUp(this._getPointer(event));\n }\n function intersectObjectWithRay(object, raycaster, includeInvisible) {\n var allIntersections = raycaster.intersectObject(object, true);\n for (var i = 0; i < allIntersections.length; i++) {\n if (allIntersections[i].object.visible || includeInvisible) {\n return allIntersections[i];\n }\n }\n return false;\n }\n var _tempEuler = new _Three.Euler();\n var _alignVector = new _Three.Vector3(0, 1, 0);\n var _zeroVector = new _Three.Vector3(0, 0, 0);\n var _lookAtMatrix = new _Three.Matrix4();\n var _tempQuaternion2 = new _Three.Quaternion();\n var _identityQuaternion = new _Three.Quaternion();\n var _dirVector = new _Three.Vector3();\n var _tempMatrix = new _Three.Matrix4();\n var _unitX = new _Three.Vector3(1, 0, 0);\n var _unitY = new _Three.Vector3(0, 1, 0);\n var _unitZ = new _Three.Vector3(0, 0, 1);\n var _v1 = new _Three.Vector3();\n var _v2 = new _Three.Vector3();\n var _v3 = new _Three.Vector3();\n var TransformControlsGizmo = exports.TransformControlsGizmo = function (_Object3D2) {\n (0, _inherits2.default)(TransformControlsGizmo, _Object3D2);\n var _super2 = (0, _createSuper2.default)(TransformControlsGizmo);\n function TransformControlsGizmo() {\n var _this2;\n (0, _classCallCheck2.default)(this, TransformControlsGizmo);\n _this2 = _super2.call(this);\n _this2.isTransformControlsGizmo = true;\n _this2.type = \"TransformControlsGizmo\";\n var gizmoMaterial = new _Three.MeshBasicMaterial({\n depthTest: false,\n depthWrite: false,\n fog: false,\n toneMapped: false,\n transparent: true });\n\n var gizmoLineMaterial = new _Three.LineBasicMaterial({\n depthTest: false,\n depthWrite: false,\n fog: false,\n toneMapped: false,\n transparent: true });\n\n var matInvisible = gizmoMaterial.clone();\n matInvisible.opacity = 0.15;\n var matHelper = gizmoLineMaterial.clone();\n matHelper.opacity = 0.5;\n var matRed = gizmoMaterial.clone();\n matRed.color.setHex(0xff0000);\n var matGreen = gizmoMaterial.clone();\n matGreen.color.setHex(0x00ff00);\n var matBlue = gizmoMaterial.clone();\n matBlue.color.setHex(0x0000ff);\n var matRedTransparent = gizmoMaterial.clone();\n matRedTransparent.color.setHex(0xff0000);\n matRedTransparent.opacity = 0.5;\n var matGreenTransparent = gizmoMaterial.clone();\n matGreenTransparent.color.setHex(0x00ff00);\n matGreenTransparent.opacity = 0.5;\n var matBlueTransparent = gizmoMaterial.clone();\n matBlueTransparent.color.setHex(0x0000ff);\n matBlueTransparent.opacity = 0.5;\n var matWhiteTransparent = gizmoMaterial.clone();\n matWhiteTransparent.opacity = 0.25;\n var matYellowTransparent = gizmoMaterial.clone();\n matYellowTransparent.color.setHex(0xffff00);\n matYellowTransparent.opacity = 0.25;\n var matYellow = gizmoMaterial.clone();\n matYellow.color.setHex(0xffff00);\n var matGray = gizmoMaterial.clone();\n matGray.color.setHex(0x787878);\n var arrowGeometry = new _Three.CylinderGeometry(0, 0.04, 0.1, 12);\n arrowGeometry.translate(0, 0.05, 0);\n var scaleHandleGeometry = new _Three.BoxGeometry(0.08, 0.08, 0.08);\n scaleHandleGeometry.translate(0, 0.04, 0);\n var lineGeometry = new _Three.BufferGeometry();\n lineGeometry.setAttribute(\"position\", new _Three.Float32BufferAttribute([0, 0, 0, 1, 0, 0], 3));\n var lineGeometry2 = new _Three.CylinderGeometry(0.0075, 0.0075, 0.5, 3);\n lineGeometry2.translate(0, 0.25, 0);\n function CircleGeometry(radius, arc) {\n var geometry = new _Three.TorusGeometry(radius, 0.0075, 3, 64, arc * Math.PI * 2);\n geometry.rotateY(Math.PI / 2);\n geometry.rotateX(Math.PI / 2);\n return geometry;\n }\n function TranslateHelperGeometry() {\n var geometry = new _Three.BufferGeometry();\n geometry.setAttribute(\"position\", new _Three.Float32BufferAttribute([0, 0, 0, 1, 1, 1], 3));\n return geometry;\n }\n var gizmoTranslate = {\n X: [[new _Three.Mesh(arrowGeometry, matRed), [0.5, 0, 0], [0, 0, -Math.PI / 2]], [new _Three.Mesh(arrowGeometry, matRed), [-0.5, 0, 0], [0, 0, Math.PI / 2]], [new _Three.Mesh(lineGeometry2, matRed), [0, 0, 0], [0, 0, -Math.PI / 2]]],\n Y: [[new _Three.Mesh(arrowGeometry, matGreen), [0, 0.5, 0]], [new _Three.Mesh(arrowGeometry, matGreen), [0, -0.5, 0], [Math.PI, 0, 0]], [new _Three.Mesh(lineGeometry2, matGreen)]],\n Z: [[new _Three.Mesh(arrowGeometry, matBlue), [0, 0, 0.5], [Math.PI / 2, 0, 0]], [new _Three.Mesh(arrowGeometry, matBlue), [0, 0, -0.5], [-Math.PI / 2, 0, 0]], [new _Three.Mesh(lineGeometry2, matBlue), null, [Math.PI / 2, 0, 0]]],\n XYZ: [[new _Three.Mesh(new _Three.OctahedronGeometry(0.1, 0), matWhiteTransparent.clone()), [0, 0, 0]]],\n XY: [[new _Three.Mesh(new _Three.BoxGeometry(0.15, 0.15, 0.01), matBlueTransparent.clone()), [0.15, 0.15, 0]]],\n YZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.15, 0.15, 0.01), matRedTransparent.clone()), [0, 0.15, 0.15], [0, Math.PI / 2, 0]]],\n XZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.15, 0.15, 0.01), matGreenTransparent.clone()), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]]] };\n\n var pickerTranslate = {\n X: [[new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0.3, 0, 0], [0, 0, -Math.PI / 2]], [new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [-0.3, 0, 0], [0, 0, Math.PI / 2]]],\n Y: [[new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, 0.3, 0]], [new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, -0.3, 0], [0, 0, Math.PI]]],\n Z: [[new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, 0, 0.3], [Math.PI / 2, 0, 0]], [new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, 0, -0.3], [-Math.PI / 2, 0, 0]]],\n XYZ: [[new _Three.Mesh(new _Three.OctahedronGeometry(0.2, 0), matInvisible)]],\n XY: [[new _Three.Mesh(new _Three.BoxGeometry(0.2, 0.2, 0.01), matInvisible), [0.15, 0.15, 0]]],\n YZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.2, 0.2, 0.01), matInvisible), [0, 0.15, 0.15], [0, Math.PI / 2, 0]]],\n XZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.2, 0.2, 0.01), matInvisible), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]]] };\n\n var helperTranslate = {\n START: [[new _Three.Mesh(new _Three.OctahedronGeometry(0.01, 2), matHelper), null, null, null, \"helper\"]],\n END: [[new _Three.Mesh(new _Three.OctahedronGeometry(0.01, 2), matHelper), null, null, null, \"helper\"]],\n DELTA: [[new _Three.Line(TranslateHelperGeometry(), matHelper), null, null, null, \"helper\"]],\n X: [[new _Three.Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]],\n Y: [[new _Three.Line(lineGeometry, matHelper.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], \"helper\"]],\n Z: [[new _Three.Line(lineGeometry, matHelper.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], \"helper\"]] };\n\n var gizmoRotate = {\n XYZE: [[new _Three.Mesh(CircleGeometry(0.5, 1), matGray), null, [0, Math.PI / 2, 0]]],\n X: [[new _Three.Mesh(CircleGeometry(0.5, 0.5), matRed)]],\n Y: [[new _Three.Mesh(CircleGeometry(0.5, 0.5), matGreen), null, [0, 0, -Math.PI / 2]]],\n Z: [[new _Three.Mesh(CircleGeometry(0.5, 0.5), matBlue), null, [0, Math.PI / 2, 0]]],\n E: [[new _Three.Mesh(CircleGeometry(0.75, 1), matYellowTransparent), null, [0, Math.PI / 2, 0]]] };\n\n var helperRotate = {\n AXIS: [[new _Three.Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]] };\n\n var pickerRotate = {\n XYZE: [[new _Three.Mesh(new _Three.SphereGeometry(0.25, 10, 8), matInvisible)]],\n X: [[new _Three.Mesh(new _Three.TorusGeometry(0.5, 0.1, 4, 24), matInvisible), [0, 0, 0], [0, -Math.PI / 2, -Math.PI / 2]]],\n Y: [[new _Three.Mesh(new _Three.TorusGeometry(0.5, 0.1, 4, 24), matInvisible), [0, 0, 0], [Math.PI / 2, 0, 0]]],\n Z: [[new _Three.Mesh(new _Three.TorusGeometry(0.5, 0.1, 4, 24), matInvisible), [0, 0, 0], [0, 0, -Math.PI / 2]]],\n E: [[new _Three.Mesh(new _Three.TorusGeometry(0.75, 0.1, 2, 24), matInvisible)]] };\n\n var gizmoScale = {\n X: [[new _Three.Mesh(scaleHandleGeometry, matRed), [0.5, 0, 0], [0, 0, -Math.PI / 2]], [new _Three.Mesh(lineGeometry2, matRed), [0, 0, 0], [0, 0, -Math.PI / 2]], [new _Three.Mesh(scaleHandleGeometry, matRed), [-0.5, 0, 0], [0, 0, Math.PI / 2]]],\n Y: [[new _Three.Mesh(scaleHandleGeometry, matGreen), [0, 0.5, 0]], [new _Three.Mesh(lineGeometry2, matGreen)], [new _Three.Mesh(scaleHandleGeometry, matGreen), [0, -0.5, 0], [0, 0, Math.PI]]],\n Z: [[new _Three.Mesh(scaleHandleGeometry, matBlue), [0, 0, 0.5], [Math.PI / 2, 0, 0]], [new _Three.Mesh(lineGeometry2, matBlue), [0, 0, 0], [Math.PI / 2, 0, 0]], [new _Three.Mesh(scaleHandleGeometry, matBlue), [0, 0, -0.5], [-Math.PI / 2, 0, 0]]],\n XY: [[new _Three.Mesh(new _Three.BoxGeometry(0.15, 0.15, 0.01), matBlueTransparent), [0.15, 0.15, 0]]],\n YZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.15, 0.15, 0.01), matRedTransparent), [0, 0.15, 0.15], [0, Math.PI / 2, 0]]],\n XZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.15, 0.15, 0.01), matGreenTransparent), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]]],\n XYZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.1, 0.1, 0.1), matWhiteTransparent.clone())]] };\n\n var pickerScale = {\n X: [[new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0.3, 0, 0], [0, 0, -Math.PI / 2]], [new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [-0.3, 0, 0], [0, 0, Math.PI / 2]]],\n Y: [[new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, 0.3, 0]], [new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, -0.3, 0], [0, 0, Math.PI]]],\n Z: [[new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, 0, 0.3], [Math.PI / 2, 0, 0]], [new _Three.Mesh(new _Three.CylinderGeometry(0.2, 0, 0.6, 4), matInvisible), [0, 0, -0.3], [-Math.PI / 2, 0, 0]]],\n XY: [[new _Three.Mesh(new _Three.BoxGeometry(0.2, 0.2, 0.01), matInvisible), [0.15, 0.15, 0]]],\n YZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.2, 0.2, 0.01), matInvisible), [0, 0.15, 0.15], [0, Math.PI / 2, 0]]],\n XZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.2, 0.2, 0.01), matInvisible), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]]],\n XYZ: [[new _Three.Mesh(new _Three.BoxGeometry(0.2, 0.2, 0.2), matInvisible), [0, 0, 0]]] };\n\n var helperScale = {\n X: [[new _Three.Line(lineGeometry, matHelper.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], \"helper\"]],\n Y: [[new _Three.Line(lineGeometry, matHelper.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], \"helper\"]],\n Z: [[new _Three.Line(lineGeometry, matHelper.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], \"helper\"]] };\n\n function setupGizmo(gizmoMap) {\n var gizmo = new _Three.Object3D();\n for (var name in gizmoMap) {\n for (var i = gizmoMap[name].length; i--;) {\n var object = gizmoMap[name][i][0].clone();\n var position = gizmoMap[name][i][1];\n var rotation = gizmoMap[name][i][2];\n var scale = gizmoMap[name][i][3];\n var tag = gizmoMap[name][i][4];\n object.name = name;\n object.tag = tag;\n if (position) {\n object.position.set(position[0], position[1], position[2]);\n }\n if (rotation) {\n object.rotation.set(rotation[0], rotation[1], rotation[2]);\n }\n if (scale) {\n object.scale.set(scale[0], scale[1], scale[2]);\n }\n object.updateMatrix();\n var tempGeometry = object.geometry.clone();\n tempGeometry.applyMatrix4(object.matrix);\n object.geometry = tempGeometry;\n object.renderOrder = Infinity;\n object.position.set(0, 0, 0);\n object.rotation.set(0, 0, 0);\n object.scale.set(1, 1, 1);\n gizmo.add(object);\n }\n }\n return gizmo;\n }\n _this2.gizmo = {};\n _this2.picker = {};\n _this2.helper = {};\n _this2.add(_this2.gizmo[\"translate\"] = setupGizmo(gizmoTranslate));\n _this2.add(_this2.gizmo[\"rotate\"] = setupGizmo(gizmoRotate));\n _this2.add(_this2.gizmo[\"scale\"] = setupGizmo(gizmoScale));\n _this2.add(_this2.picker[\"translate\"] = setupGizmo(pickerTranslate));\n _this2.add(_this2.picker[\"rotate\"] = setupGizmo(pickerRotate));\n _this2.add(_this2.picker[\"scale\"] = setupGizmo(pickerScale));\n _this2.add(_this2.helper[\"translate\"] = setupGizmo(helperTranslate));\n _this2.add(_this2.helper[\"rotate\"] = setupGizmo(helperRotate));\n _this2.add(_this2.helper[\"scale\"] = setupGizmo(helperScale));\n _this2.picker[\"translate\"].visible = false;\n _this2.picker[\"rotate\"].visible = false;\n _this2.picker[\"scale\"].visible = false;\n return _this2;\n }\n (0, _createClass2.default)(TransformControlsGizmo, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n var _this3 = this;\n var space = this.mode === \"scale\" ? \"local\" : this.space;\n var quaternion = space === \"local\" ? this.worldQuaternion : _identityQuaternion;\n this.gizmo[\"translate\"].visible = this.mode === \"translate\";\n this.gizmo[\"rotate\"].visible = this.mode === \"rotate\";\n this.gizmo[\"scale\"].visible = this.mode === \"scale\";\n this.helper[\"translate\"].visible = this.mode === \"translate\";\n this.helper[\"rotate\"].visible = this.mode === \"rotate\";\n this.helper[\"scale\"].visible = this.mode === \"scale\";\n var handles = [];\n handles = handles.concat(this.picker[this.mode].children);\n handles = handles.concat(this.gizmo[this.mode].children);\n handles = handles.concat(this.helper[this.mode].children);\n var _loop = function _loop() {\n var handle = handles[i];\n handle.visible = true;\n handle.rotation.set(0, 0, 0);\n handle.position.copy(_this3.worldPosition);\n var factor;\n if (_this3.camera.isOrthographicCamera) {\n factor = (_this3.camera.top - _this3.camera.bottom) / _this3.camera.zoom;\n } else {\n factor = _this3.worldPosition.distanceTo(_this3.cameraPosition) * Math.min(1.9 * Math.tan(Math.PI * _this3.camera.fov / 360) / _this3.camera.zoom, 7);\n }\n handle.scale.set(1, 1, 1).multiplyScalar(factor * _this3.size / 4);\n if (handle.tag === \"helper\") {\n handle.visible = false;\n if (handle.name === \"AXIS\") {\n handle.position.copy(_this3.worldPositionStart);\n handle.visible = !!_this3.axis;\n if (_this3.axis === \"X\") {\n _tempQuaternion.setFromEuler(_tempEuler.set(0, 0, 0));\n handle.quaternion.copy(quaternion).multiply(_tempQuaternion);\n if (Math.abs(_alignVector.copy(_unitX).applyQuaternion(quaternion).dot(_this3.eye)) > 0.9) {\n handle.visible = false;\n }\n }\n if (_this3.axis === \"Y\") {\n _tempQuaternion.setFromEuler(_tempEuler.set(0, 0, Math.PI / 2));\n handle.quaternion.copy(quaternion).multiply(_tempQuaternion);\n if (Math.abs(_alignVector.copy(_unitY).applyQuaternion(quaternion).dot(_this3.eye)) > 0.9) {\n handle.visible = false;\n }\n }\n if (_this3.axis === \"Z\") {\n _tempQuaternion.setFromEuler(_tempEuler.set(0, Math.PI / 2, 0));\n handle.quaternion.copy(quaternion).multiply(_tempQuaternion);\n if (Math.abs(_alignVector.copy(_unitZ).applyQuaternion(quaternion).dot(_this3.eye)) > 0.9) {\n handle.visible = false;\n }\n }\n if (_this3.axis === \"XYZE\") {\n _tempQuaternion.setFromEuler(_tempEuler.set(0, Math.PI / 2, 0));\n _alignVector.copy(_this3.rotationAxis);\n handle.quaternion.setFromRotationMatrix(_lookAtMatrix.lookAt(_zeroVector, _alignVector, _unitY));\n handle.quaternion.multiply(_tempQuaternion);\n handle.visible = _this3.dragging;\n }\n if (_this3.axis === \"E\") {\n handle.visible = false;\n }\n } else if (handle.name === \"START\") {\n handle.position.copy(_this3.worldPositionStart);\n handle.visible = _this3.dragging;\n } else if (handle.name === \"END\") {\n handle.position.copy(_this3.worldPosition);\n handle.visible = _this3.dragging;\n } else if (handle.name === \"DELTA\") {\n handle.position.copy(_this3.worldPositionStart);\n handle.quaternion.copy(_this3.worldQuaternionStart);\n _tempVector.set(1e-10, 1e-10, 1e-10).add(_this3.worldPositionStart).sub(_this3.worldPosition).multiplyScalar(-1);\n _tempVector.applyQuaternion(_this3.worldQuaternionStart.clone().invert());\n handle.scale.copy(_tempVector);\n handle.visible = _this3.dragging;\n } else {\n handle.quaternion.copy(quaternion);\n if (_this3.dragging) {\n handle.position.copy(_this3.worldPositionStart);\n } else {\n handle.position.copy(_this3.worldPosition);\n }\n if (_this3.axis) {\n handle.visible = _this3.axis.search(handle.name) !== -1;\n }\n }\n return 1;\n }\n handle.quaternion.copy(quaternion);\n if (_this3.mode === \"translate\" || _this3.mode === \"scale\") {\n var AXIS_HIDE_THRESHOLD = 0.99;\n var PLANE_HIDE_THRESHOLD = 0.2;\n if (handle.name === \"X\") {\n if (Math.abs(_alignVector.copy(_unitX).applyQuaternion(quaternion).dot(_this3.eye)) > AXIS_HIDE_THRESHOLD) {\n handle.scale.set(1e-10, 1e-10, 1e-10);\n handle.visible = false;\n }\n }\n if (handle.name === \"Y\") {\n if (Math.abs(_alignVector.copy(_unitY).applyQuaternion(quaternion).dot(_this3.eye)) > AXIS_HIDE_THRESHOLD) {\n handle.scale.set(1e-10, 1e-10, 1e-10);\n handle.visible = false;\n }\n }\n if (handle.name === \"Z\") {\n if (Math.abs(_alignVector.copy(_unitZ).applyQuaternion(quaternion).dot(_this3.eye)) > AXIS_HIDE_THRESHOLD) {\n handle.scale.set(1e-10, 1e-10, 1e-10);\n handle.visible = false;\n }\n }\n if (handle.name === \"XY\") {\n if (Math.abs(_alignVector.copy(_unitZ).applyQuaternion(quaternion).dot(_this3.eye)) < PLANE_HIDE_THRESHOLD) {\n handle.scale.set(1e-10, 1e-10, 1e-10);\n handle.visible = false;\n }\n }\n if (handle.name === \"YZ\") {\n if (Math.abs(_alignVector.copy(_unitX).applyQuaternion(quaternion).dot(_this3.eye)) < PLANE_HIDE_THRESHOLD) {\n handle.scale.set(1e-10, 1e-10, 1e-10);\n handle.visible = false;\n }\n }\n if (handle.name === \"XZ\") {\n if (Math.abs(_alignVector.copy(_unitY).applyQuaternion(quaternion).dot(_this3.eye)) < PLANE_HIDE_THRESHOLD) {\n handle.scale.set(1e-10, 1e-10, 1e-10);\n handle.visible = false;\n }\n }\n } else if (_this3.mode === \"rotate\") {\n _tempQuaternion2.copy(quaternion);\n _alignVector.copy(_this3.eye).applyQuaternion(_tempQuaternion.copy(quaternion).invert());\n if (handle.name.search(\"E\") !== -1) {\n handle.quaternion.setFromRotationMatrix(_lookAtMatrix.lookAt(_this3.eye, _zeroVector, _unitY));\n }\n if (handle.name === \"X\") {\n _tempQuaternion.setFromAxisAngle(_unitX, Math.atan2(-_alignVector.y, _alignVector.z));\n _tempQuaternion.multiplyQuaternions(_tempQuaternion2, _tempQuaternion);\n handle.quaternion.copy(_tempQuaternion);\n }\n if (handle.name === \"Y\") {\n _tempQuaternion.setFromAxisAngle(_unitY, Math.atan2(_alignVector.x, _alignVector.z));\n _tempQuaternion.multiplyQuaternions(_tempQuaternion2, _tempQuaternion);\n handle.quaternion.copy(_tempQuaternion);\n }\n if (handle.name === \"Z\") {\n _tempQuaternion.setFromAxisAngle(_unitZ, Math.atan2(_alignVector.y, _alignVector.x));\n _tempQuaternion.multiplyQuaternions(_tempQuaternion2, _tempQuaternion);\n handle.quaternion.copy(_tempQuaternion);\n }\n }\n handle.visible = handle.visible && (handle.name.indexOf(\"X\") === -1 || _this3.showX);\n handle.visible = handle.visible && (handle.name.indexOf(\"Y\") === -1 || _this3.showY);\n handle.visible = handle.visible && (handle.name.indexOf(\"Z\") === -1 || _this3.showZ);\n handle.visible = handle.visible && (handle.name.indexOf(\"E\") === -1 || _this3.showX && _this3.showY && _this3.showZ);\n handle.material._color = handle.material._color || handle.material.color.clone();\n handle.material._opacity = handle.material._opacity || handle.material.opacity;\n handle.material.color.copy(handle.material._color);\n handle.material.opacity = handle.material._opacity;\n if (_this3.enabled && _this3.axis) {\n if (handle.name === _this3.axis) {\n handle.material.color.setHex(0xffff00);\n handle.material.opacity = 1.0;\n } else if (_this3.axis.split(\"\").some(function (a) {\n return handle.name === a;\n })) {\n handle.material.color.setHex(0xffff00);\n handle.material.opacity = 1.0;\n }\n }\n };\n for (var i = 0; i < handles.length; i++) {\n if (_loop()) continue;\n }\n (0, _get2.default)((0, _getPrototypeOf2.default)(TransformControlsGizmo.prototype), \"updateMatrixWorld\", this).call(this, force);\n } }]);\n\n return TransformControlsGizmo;\n }(_Three.Object3D);\n var TransformControlsPlane = exports.TransformControlsPlane = function (_Mesh) {\n (0, _inherits2.default)(TransformControlsPlane, _Mesh);\n var _super3 = (0, _createSuper2.default)(TransformControlsPlane);\n function TransformControlsPlane() {\n var _this4;\n (0, _classCallCheck2.default)(this, TransformControlsPlane);\n _this4 = _super3.call(this, new _Three.PlaneGeometry(100000, 100000, 2, 2), new _Three.MeshBasicMaterial({\n visible: false,\n wireframe: true,\n side: _Three.DoubleSide,\n transparent: true,\n opacity: 0.1,\n toneMapped: false }));\n\n _this4.isTransformControlsPlane = true;\n _this4.type = \"TransformControlsPlane\";\n return _this4;\n }\n (0, _createClass2.default)(TransformControlsPlane, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n var space = this.space;\n this.position.copy(this.worldPosition);\n if (this.mode === \"scale\") space = \"local\";\n _v1.copy(_unitX).applyQuaternion(space === \"local\" ? this.worldQuaternion : _identityQuaternion);\n _v2.copy(_unitY).applyQuaternion(space === \"local\" ? this.worldQuaternion : _identityQuaternion);\n _v3.copy(_unitZ).applyQuaternion(space === \"local\" ? this.worldQuaternion : _identityQuaternion);\n _alignVector.copy(_v2);\n switch (this.mode) {\n case \"translate\":\n case \"scale\":\n switch (this.axis) {\n case \"X\":\n _alignVector.copy(this.eye).cross(_v1);\n _dirVector.copy(_v1).cross(_alignVector);\n break;\n case \"Y\":\n _alignVector.copy(this.eye).cross(_v2);\n _dirVector.copy(_v2).cross(_alignVector);\n break;\n case \"Z\":\n _alignVector.copy(this.eye).cross(_v3);\n _dirVector.copy(_v3).cross(_alignVector);\n break;\n case \"XY\":\n _dirVector.copy(_v3);\n break;\n case \"YZ\":\n _dirVector.copy(_v1);\n break;\n case \"XZ\":\n _alignVector.copy(_v3);\n _dirVector.copy(_v2);\n break;\n case \"XYZ\":\n case \"E\":\n _dirVector.set(0, 0, 0);\n break;}\n\n break;\n case \"rotate\":\n default:\n _dirVector.set(0, 0, 0);}\n\n if (_dirVector.length() === 0) {\n this.quaternion.copy(this.cameraQuaternion);\n } else {\n _tempMatrix.lookAt(_tempVector.set(0, 0, 0), _dirVector, _alignVector);\n this.quaternion.setFromRotationMatrix(_tempMatrix);\n }\n (0, _get2.default)((0, _getPrototypeOf2.default)(TransformControlsPlane.prototype), \"updateMatrixWorld\", this).call(this, force);\n } }]);\n\n return TransformControlsPlane;\n }(_Three.Mesh);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/controls", "outputPath": "/com/three/0.145.0/examples/jsm/controls/TransformControls.js", "fileName": "/examples/jsm/controls/TransformControls.js" }, "pandav:/examples/jsm/lights/LightProbeGenerator.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/lights/LightProbeGenerator\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LightProbeGenerator = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Three = require('pandav:/com/three/0.145.0');\n var LightProbeGenerator = exports.LightProbeGenerator = function () {\n function LightProbeGenerator() {\n (0, _classCallCheck2.default)(this, LightProbeGenerator);\n }\n (0, _createClass2.default)(LightProbeGenerator, null, [{\n key: \"fromCubeTexture\",\n value: function fromCubeTexture(cubeTexture) {\n var totalWeight = 0;\n var coord = new _Three.Vector3();\n var dir = new _Three.Vector3();\n var color = new _Three.Color();\n var shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0];\n var sh = new _Three.SphericalHarmonics3();\n var shCoefficients = sh.coefficients;\n for (var faceIndex = 0; faceIndex < 6; faceIndex++) {\n var image = cubeTexture.image[faceIndex];\n var width = image.width;\n var height = image.height;\n var canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n var context = canvas.getContext(\"2d\");\n context.drawImage(image, 0, 0, width, height);\n var imageData = context.getImageData(0, 0, width, height);\n var data = imageData.data;\n var imageWidth = imageData.width;\n var pixelSize = 2 / imageWidth;\n for (var i = 0, il = data.length; i < il; i += 4) {\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255);\n convertColorToLinear(color, cubeTexture.encoding);\n var pixelIndex = i / 4;\n var col = -1 + (pixelIndex % imageWidth + 0.5) * pixelSize;\n var row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize;\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col);\n break;\n case 1:\n coord.set(1, row, col);\n break;\n case 2:\n coord.set(-col, 1, -row);\n break;\n case 3:\n coord.set(-col, -1, row);\n break;\n case 4:\n coord.set(-col, row, 1);\n break;\n case 5:\n coord.set(col, row, -1);\n break;}\n\n var lengthSq = coord.lengthSq();\n var weight = 4 / (Math.sqrt(lengthSq) * lengthSq);\n totalWeight += weight;\n dir.copy(coord).normalize();\n _Three.SphericalHarmonics3.getBasisAt(dir, shBasis);\n for (var j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight;\n shCoefficients[j].y += shBasis[j] * color.g * weight;\n shCoefficients[j].z += shBasis[j] * color.b * weight;\n }\n }\n }\n var norm = 4 * Math.PI / totalWeight;\n for (var _j = 0; _j < 9; _j++) {\n shCoefficients[_j].x *= norm;\n shCoefficients[_j].y *= norm;\n shCoefficients[_j].z *= norm;\n }\n return new _Three.LightProbe(sh);\n } },\n {\n key: \"fromCubeRenderTarget\",\n value: function fromCubeRenderTarget(renderer, cubeRenderTarget) {\n var totalWeight = 0;\n var coord = new _Three.Vector3();\n var dir = new _Three.Vector3();\n var color = new _Three.Color();\n var shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0];\n var sh = new _Three.SphericalHarmonics3();\n var shCoefficients = sh.coefficients;\n for (var faceIndex = 0; faceIndex < 6; faceIndex++) {\n var imageWidth = cubeRenderTarget.width;\n var data = new Uint8Array(imageWidth * imageWidth * 4);\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex);\n var pixelSize = 2 / imageWidth;\n for (var i = 0, il = data.length; i < il; i += 4) {\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255);\n convertColorToLinear(color, cubeRenderTarget.texture.encoding);\n var pixelIndex = i / 4;\n var col = -1 + (pixelIndex % imageWidth + 0.5) * pixelSize;\n var row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize;\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col);\n break;\n case 1:\n coord.set(-1, row, col);\n break;\n case 2:\n coord.set(col, 1, -row);\n break;\n case 3:\n coord.set(col, -1, row);\n break;\n case 4:\n coord.set(col, row, 1);\n break;\n case 5:\n coord.set(-col, row, -1);\n break;}\n\n var lengthSq = coord.lengthSq();\n var weight = 4 / (Math.sqrt(lengthSq) * lengthSq);\n totalWeight += weight;\n dir.copy(coord).normalize();\n _Three.SphericalHarmonics3.getBasisAt(dir, shBasis);\n for (var j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight;\n shCoefficients[j].y += shBasis[j] * color.g * weight;\n shCoefficients[j].z += shBasis[j] * color.b * weight;\n }\n }\n }\n var norm = 4 * Math.PI / totalWeight;\n for (var _j2 = 0; _j2 < 9; _j2++) {\n shCoefficients[_j2].x *= norm;\n shCoefficients[_j2].y *= norm;\n shCoefficients[_j2].z *= norm;\n }\n return new _Three.LightProbe(sh);\n } }]);\n\n return LightProbeGenerator;\n }();\n function convertColorToLinear(color, encoding) {\n switch (encoding) {\n case _Three.sRGBEncoding:\n color.convertSRGBToLinear();\n break;\n case _Three.LinearEncoding:\n break;\n default:\n console.warn(\"WARNING: LightProbeGenerator convertColorToLinear() encountered an unsupported encoding.\");\n break;}\n\n return color;\n }return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/lights", "outputPath": "/com/three/0.145.0/examples/jsm/lights/LightProbeGenerator.js", "fileName": "/examples/jsm/lights/LightProbeGenerator.js" }, "pandav:/examples/jsm/lines/LineGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/lines/LineGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineSegmentsGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineSegmentsGeometry2 = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineSegmentsGeometry');\n var LineGeometry = exports.LineGeometry = function (_LineSegmentsGeometry) {\n (0, _inherits2.default)(LineGeometry, _LineSegmentsGeometry);\n var _super = (0, _createSuper2.default)(LineGeometry);\n function LineGeometry() {\n var _this;\n (0, _classCallCheck2.default)(this, LineGeometry);\n _this = _super.call(this);\n _this.isLineGeometry = true;\n _this.type = 'LineGeometry';\n return _this;\n }\n (0, _createClass2.default)(LineGeometry, [{\n key: \"setPositions\",\n value: function setPositions(array) {\n var length = array.length - 3;\n var points = new Float32Array(2 * length);\n for (var i = 0; i < length; i += 3) {\n points[2 * i] = array[i];\n points[2 * i + 1] = array[i + 1];\n points[2 * i + 2] = array[i + 2];\n points[2 * i + 3] = array[i + 3];\n points[2 * i + 4] = array[i + 4];\n points[2 * i + 5] = array[i + 5];\n }\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineGeometry.prototype), \"setPositions\", this).call(this, points);\n return this;\n } },\n {\n key: \"setColors\",\n value: function setColors(array) {\n var length = array.length - 3;\n var colors = new Float32Array(2 * length);\n for (var i = 0; i < length; i += 3) {\n colors[2 * i] = array[i];\n colors[2 * i + 1] = array[i + 1];\n colors[2 * i + 2] = array[i + 2];\n colors[2 * i + 3] = array[i + 3];\n colors[2 * i + 4] = array[i + 4];\n colors[2 * i + 5] = array[i + 5];\n }\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineGeometry.prototype), \"setColors\", this).call(this, colors);\n return this;\n } },\n {\n key: \"fromLine\",\n value: function fromLine(line) {\n var geometry = line.geometry;\n this.setPositions(geometry.attributes.position.array);\n return this;\n } }]);\n\n return LineGeometry;\n }(_LineSegmentsGeometry2.LineSegmentsGeometry);return module.exports;});", "requires": [ "pandav:/examples/jsm/lines/LineSegmentsGeometry.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/lines", "outputPath": "/com/three/0.145.0/examples/jsm/lines/LineGeometry.js", "fileName": "/examples/jsm/lines/LineGeometry.js" }, "pandav:/examples/jsm/libsmod/zstddec.module.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/libsmod/zstddec.module\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ZSTDDecoder = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var A, I, B;\n var g = {\n env: {\n emscripten_notify_memory_growth: function emscripten_notify_memory_growth(A) {\n B = new Uint8Array(I.exports.memory.buffer);\n } } };\n\n\n var Q = exports.ZSTDDecoder = function () {\n function Q() {\n (0, _classCallCheck2.default)(this, Q);\n }\n (0, _createClass2.default)(Q, [{\n key: \"init\",\n value: function init() {\n return A || (A = \"undefined\" != typeof fetch ? fetch(\"data:application/wasm;base64,\" + C).then(function (A) {\n return A.arrayBuffer();\n }).then(function (A) {\n return WebAssembly.instantiate(A, g);\n }).then(this._init) : WebAssembly.instantiate(Buffer.from(C, \"base64\"), g).then(this._init), A);\n } },\n {\n key: \"_init\",\n value: function _init(A) {\n I = A.instance, g.env.emscripten_notify_memory_growth(0);\n } },\n {\n key: \"decode\",\n value: function decode(A) {\n var g = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!I) throw new Error(\"ZSTDDecoder: Await .init() before decoding.\");\n var _Q = A.byteLength,\n C = I.exports.malloc(_Q);\n B.set(A, C), g = g || Number(I.exports.ZSTD_findDecompressedSize(C, _Q));\n var E = I.exports.malloc(g),\n i = I.exports.ZSTD_decompress(E, g, C, _Q),\n D = B.slice(E, E + i);\n return I.exports.free(C), I.exports.free(E), D;\n } }]);\n\n return Q;\n }();\n var C = \"AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ\";return module.exports;});", "requires": [], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/libsmod", "outputPath": "/com/three/0.145.0/examples/jsm/libsmod/zstddec.module.js", "fileName": "/examples/jsm/libsmod/zstddec.module.js" }, "pandav:/examples/jsm/libsmod/fflate.module.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/libsmod/fflate.module\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Zlib = exports.ZipPassThrough = exports.ZipDeflate = exports.Zip = exports.Unzlib = exports.UnzipPassThrough = exports.UnzipInflate = exports.Unzip = exports.Inflate = exports.Gzip = exports.Gunzip = exports.EncodeUTF8 = exports.Deflate = exports.Decompress = exports.DecodeUTF8 = exports.Compress = exports.AsyncZlib = exports.AsyncZipDeflate = exports.AsyncUnzlib = exports.AsyncUnzipInflate = exports.AsyncInflate = exports.AsyncGzip = exports.AsyncGunzip = exports.AsyncDeflate = exports.AsyncDecompress = exports.AsyncCompress = void 0;\n exports.decompress = decompress;\n exports.decompressSync = decompressSync;\n exports.deflate = deflate;\n exports.deflateSync = deflateSync;\n exports.gunzip = gunzip;\n exports.gunzipSync = gunzipSync;\n exports.compress = exports.gzip = gzip;\n exports.compressSync = exports.gzipSync = gzipSync;\n exports.inflate = inflate;\n exports.inflateSync = inflateSync;\n exports.strFromU8 = strFromU8;\n exports.strToU8 = strToU8;\n exports.unzip = unzip;\n exports.unzipSync = unzipSync;\n exports.unzlib = unzlib;\n exports.unzlibSync = unzlibSync;\n exports.zip = zip;\n exports.zipSync = zipSync;\n exports.zlib = zlib;\n exports.zlibSync = zlibSync;\n var ch2 = {};\n var durl = function durl(c) {\n return URL.createObjectURL(new Blob([c], {\n type: 'text/javascript' }));\n\n };\n var cwk = function cwk(u) {\n return new Worker(u);\n };\n try {\n URL.revokeObjectURL(durl(''));\n } catch (e) {\n durl = function durl(c) {\n return 'data:application/javascript;charset=UTF-8,' + encodeURI(c);\n };\n cwk = function cwk(u) {\n return new Worker(u, {\n type: 'module' });\n\n };\n }\n var wk = function wk(c, id, msg, transfer, cb) {\n var w = cwk(ch2[id] || (ch2[id] = durl(c)));\n w.onerror = function (e) {\n return cb(e.error, null);\n };\n w.onmessage = function (e) {\n return cb(null, e.data);\n };\n w.postMessage(msg, transfer);\n return w;\n };\n var u8 = Uint8Array,\n u16 = Uint16Array,\n u32 = Uint32Array;\n var fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0]);\n var fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0]);\n var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var freb = function freb(eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = j - b[i] << 5 | i;\n }\n }\n return [b, r];\n };\n var _a = freb(fleb, 2),\n fl = _a[0],\n revfl = _a[1];\n fl[28] = 258, revfl[258] = 28;\n var _b = freb(fdeb, 0),\n fd = _b[0],\n revfd = _b[1];\n var rev = new u16(32768);\n for (var i = 0; i < 32768; ++i) {\n var x = (i & 0xAAAA) >>> 1 | (i & 0x5555) << 1;\n x = (x & 0xCCCC) >>> 2 | (x & 0x3333) << 2;\n x = (x & 0xF0F0) >>> 4 | (x & 0x0F0F) << 4;\n rev[i] = ((x & 0xFF00) >>> 8 | (x & 0x00FF) << 8) >>> 1;\n }\n var hMap = function hMap(cd, mb, r) {\n var s = cd.length;\n var i = 0;\n var l = new u16(mb);\n for (; i < s; ++i) ++l[cd[i] - 1];\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = le[i - 1] + l[i - 1] << 1;\n }\n var co;\n if (r) {\n co = new u16(1 << mb);\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n var sv = i << 4 | cd[i];\n var r_1 = mb - cd[i];\n var v = le[cd[i] - 1]++ << r_1;\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> 15 - cd[i];\n }\n }\n }\n return co;\n };\n var flt = new u8(288);\n for (var i = 0; i < 144; ++i) flt[i] = 8;\n for (var i = 144; i < 256; ++i) flt[i] = 9;\n for (var i = 256; i < 280; ++i) flt[i] = 7;\n for (var i = 280; i < 288; ++i) flt[i] = 8;\n var fdt = new u8(32);\n for (var i = 0; i < 32; ++i) fdt[i] = 5;\n var flm = hMap(flt, 9, 0),\n flrm = hMap(flt, 9, 1);\n var fdm = hMap(fdt, 5, 0),\n fdrm = hMap(fdt, 5, 1);\n var max = function max(a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m) m = a[i];\n }\n return m;\n };\n var bits = function bits(d, p, m) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8) >> (p & 7) & m;\n };\n var bits16 = function bits16(d, p) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7);\n };\n var shft = function shft(p) {\n return (p / 8 | 0) + (p & 7 && 1);\n };\n var slc = function slc(v, s, e) {\n if (s == null || s < 0) s = 0;\n if (e == null || e > v.length) e = v.length;\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n };\n var inflt = function inflt(dat, buf, st) {\n var sl = dat.length;\n if (!sl || st && !st.l && sl < 5) return buf || new u8(0);\n var noBuf = !buf || st;\n var noSt = !st || st.i;\n if (!st) st = {};\n if (!buf) buf = new u8(sl * 3);\n var cbuf = function cbuf(l) {\n var bl = buf.length;\n if (l > bl) {\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n var final = st.f || 0,\n pos = st.p || 0,\n bt = st.b || 0,\n lm = st.l,\n dm = st.d,\n lbt = st.m,\n dbt = st.n;\n var tbts = sl * 8;\n do {\n if (!lm) {\n st.f = final = bits(dat, pos, 1);\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n var s = shft(pos) + 4,\n l = dat[s - 4] | dat[s - 3] << 8,\n t = s + l;\n if (t > sl) {\n if (noSt) throw 'unexpected EOF';\n break;\n }\n if (noBuf) cbuf(bt + l);\n buf.set(dat.subarray(s, t), bt);\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n } else if (type == 1) lm = flrm, dm = fdrm, lbt = 9, dbt = 5;else if (type == 2) {\n var hLit = bits(dat, pos, 31) + 257,\n hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n var ldt = new u8(tl);\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n var clb = max(clt),\n clbmsk = (1 << clb) - 1;\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n pos += r & 15;\n var s = r >>> 4;\n if (s < 16) {\n ldt[i++] = s;\n } else {\n var c = 0,\n n = 0;\n if (s == 16) n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];else if (s == 17) n = 3 + bits(dat, pos, 7), pos += 3;else if (s == 18) n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--) ldt[i++] = c;\n }\n }\n var lt = ldt.subarray(0, hLit),\n dt = ldt.subarray(hLit);\n lbt = max(lt);\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else throw 'invalid block type';\n if (pos > tbts) {\n if (noSt) throw 'unexpected EOF';\n break;\n }\n }\n if (noBuf) cbuf(bt + 131072);\n var lms = (1 << lbt) - 1,\n dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n var c = lm[bits16(dat, pos) & lms],\n sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt) throw 'unexpected EOF';\n break;\n }\n if (!c) throw 'invalid length/literal';\n if (sym < 256) buf[bt++] = sym;else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n } else {\n var add = sym - 254;\n if (sym > 264) {\n var i = sym - 257,\n b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n var d = dm[bits16(dat, pos) & dms],\n dsym = d >>> 4;\n if (!d) throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt) throw 'unexpected EOF';\n break;\n }\n if (noBuf) cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt;\n if (lm) final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n };\n var wbits = function wbits(d, p, v) {\n v <<= p & 7;\n var o = p / 8 | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n };\n var wbits16 = function wbits16(d, p, v) {\n v <<= p & 7;\n var o = p / 8 | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n };\n var hTree = function hTree(d, mb) {\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i]) t.push({\n s: i,\n f: d[i] });\n\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s) return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) {\n return a.f - b.f;\n });\n t.push({\n s: -1,\n f: 25001 });\n\n var l = t[0],\n r = t[1],\n i0 = 0,\n i1 = 1,\n i2 = 2;\n t[0] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r };\n\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r };\n\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym) maxSym = t2[i].s;\n }\n var tr = new u16(maxSym + 1);\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n var i = 0,\n dt = 0;\n var lft = mbt - mb,\n cst = 1 << lft;\n t2.sort(function (a, b) {\n return tr[b.s] - tr[a.s] || a.f - b.f;\n });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << mbt - tr[i2_1]);\n tr[i2_1] = mb;\n } else break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb) dt -= 1 << mb - tr[i2_2]++ - 1;else ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n };\n var ln = function ln(n, l, d) {\n return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;\n };\n var lc = function lc(c) {\n var s = c.length;\n while (s && !c[--s]);\n var cl = new u16(++s);\n var cli = 0,\n cln = c[0],\n cls = 1;\n var w = function w(v) {\n cl[cli++] = v;\n };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s) ++cls;else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138) w(32754);\n if (cls > 2) {\n w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);\n cls = 0;\n }\n } else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6) w(8304);\n if (cls > 2) w(cls - 3 << 5 | 8208), cls = 0;\n }\n while (cls--) w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n };\n var clen = function clen(cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i) l += cf[i] * cl[i];\n return l;\n };\n var wfblk = function wfblk(out, pos, dat) {\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i) out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n };\n var wblk = function wblk(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15),\n dlt = _a[0],\n mlb = _a[1];\n var _b = hTree(df, 15),\n ddt = _b[0],\n mdb = _b[1];\n var _c = lc(dlt),\n lclt = _c[0],\n nlc = _c[1];\n var _d = lc(ddt),\n lcdt = _d[0],\n ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i) lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i) lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7),\n lct = _e[0],\n mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc);\n var flen = bl + 5 << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen) return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i) wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15) wbits(out, p, clct[i] >>> 5 & 127), p += clct[i] >>> 12;\n }\n }\n } else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = syms[i] >>> 18 & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7) wbits(out, p, syms[i] >>> 23 & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3) wbits16(out, p, syms[i] >>> 5 & 8191), p += fdeb[dst];\n } else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n };\n var deo = new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n var et = new u8(0);\n var dflt = function dflt(dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n var e = i + 65535;\n if (e < s) {\n pos = wfblk(w, pos, dat.subarray(i, e));\n } else {\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n } else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13,\n c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n var prev = new u16(32768),\n head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3),\n bs2_1 = 2 * bs1_1;\n var hsh = function hsh(i) {\n return (dat[i] ^ dat[i + 1] << bs1_1 ^ dat[i + 2] << bs2_1) & msk_1;\n };\n var syms = new u32(25000);\n var lf = new u16(288),\n df = new u16(32);\n var lc_1 = 0,\n eb = 0,\n i = 0,\n li = 0,\n wi = 0,\n bs = 0;\n for (; i < s; ++i) {\n var hv = hsh(i);\n var imod = i & 32767,\n pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n if (wi <= i) {\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j) lf[j] = 0;\n for (var j = 0; j < 30; ++j) df[j] = 0;\n }\n var l = 2,\n d = 0,\n ch_1 = c,\n dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl);\n if (nl > l) {\n l = nl, d = dif;\n if (nl > maxn) break;\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j + 32768 & 32767;\n var pti = prev[ti];\n var cd = ti - pti + 32768 & 32767;\n if (cd > md) md = cd, pimod = ti;\n }\n }\n }\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod + 32768 & 32767;\n }\n }\n if (d) {\n syms[li++] = 268435456 | revfl[l] << 18 | revfd[d];\n var lin = revfl[l] & 31,\n din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n } else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst && pos & 7) pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n };\n var crct = function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i,\n k = 9;\n while (--k) c = (c & 1 && 0xEDB88320) ^ c >>> 1;\n t[i] = c;\n }\n return t;\n }();\n var crc = function crc() {\n var c = -1;\n return {\n p: function p(d) {\n var cr = c;\n for (var i = 0; i < d.length; ++i) cr = crct[cr & 255 ^ d[i]] ^ cr >>> 8;\n c = cr;\n },\n d: function d() {\n return ~c;\n } };\n\n };\n var adler = function adler() {\n var a = 1,\n b = 0;\n return {\n p: function p(d) {\n var n = a,\n m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i) m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function d() {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | a >>> 8 << 16 | (b & 255) << 8 | b >>> 8;\n } };\n\n };\n ;\n var dopt = function dopt(dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 12 + opt.mem, pre, post, !st);\n };\n var mrg = function mrg(a, b) {\n var o = {};\n for (var k in a) o[k] = a[k];\n for (var k in b) o[k] = b[k];\n return o;\n };\n var wcln = function wcln(fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i],\n k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n } else {\n fnStr += st_1;\n for (var t in v.prototype) fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n } else fnStr += st_1;\n } else td[k] = v;\n }\n return [fnStr, td];\n };\n var ch = [];\n var cbfs = function cbfs(v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32) tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n };\n var wrkr = function wrkr(fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '',\n td_1 = {},\n m = fns.length - 1;\n for (var i = 0; i < m; ++i) _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n };\n var bInflt = function bInflt() {\n return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8];\n };\n var bDflt = function bDflt() {\n return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf];\n };\n var gze = function gze() {\n return [gzh, gzhl, wbytes, crc, crct];\n };\n var guze = function guze() {\n return [gzs, gzl];\n };\n var zle = function zle() {\n return [zlh, wbytes, adler];\n };\n var zule = function zule() {\n return [zlv];\n };\n var pbf = function pbf(msg) {\n return postMessage(msg, [msg.buffer]);\n };\n var gu8 = function gu8(o) {\n return o && o.size && new u8(o.size);\n };\n var cbify = function cbify(dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () {\n w.terminate();\n };\n };\n var astrm = function astrm(strm) {\n strm.ondata = function (dat, final) {\n return postMessage([dat, final], [dat.buffer]);\n };\n return function (ev) {\n return strm.push(ev.data[0], ev.data[1]);\n };\n };\n var astrmify = function astrmify(fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err) w.terminate(), strm.ondata.call(strm, err);else {\n if (dat[1]) w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t) throw 'stream finished';\n if (!strm.ondata) throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () {\n w.terminate();\n };\n };\n var b2 = function b2(d, b) {\n return d[b] | d[b + 1] << 8;\n };\n var b4 = function b4(d, b) {\n return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0;\n };\n var b8 = function b8(d, b) {\n return b4(d, b) + b4(d, b + 4) * 4294967296;\n };\n var wbytes = function wbytes(d, b, v) {\n for (; v; ++b) d[b] = v, v >>>= 8;\n };\n var gzh = function gzh(c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3;\n if (o.mtime != 0) wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i) c[i + 10] = fn.charCodeAt(i);\n }\n };\n var gzs = function gzs(d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8) throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4) st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]);\n return st + (flg & 2);\n };\n var gzl = function gzl(d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n };\n var gzhl = function gzhl(o) {\n return 10 + (o.filename && o.filename.length + 1 || 0);\n };\n var zlh = function zlh(c, o) {\n var lv = o.level,\n fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = fl << 6 | (fl ? 32 - 2 * fl : 1);\n };\n var zlv = function zlv(d) {\n if ((d[0] & 15) != 8 || d[0] >>> 4 > 7 || (d[0] << 8 | d[1]) % 31) throw 'invalid zlib data';\n if (d[1] & 32) throw 'invalid zlib data: preset dictionaries not supported';\n };\n function AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function') cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n }\n var Deflate = exports.Deflate = function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function') cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n Deflate.prototype.push = function (chunk, final) {\n if (this.d) throw 'stream finished';\n if (!this.ondata) throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n }();\n var AsyncDeflate = exports.AsyncDeflate = function () {\n function AsyncDeflate(opts, cb) {\n astrmify([bDflt, function () {\n return [astrm, Deflate];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n }();\n function deflate(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt], function (ev) {\n return pbf(deflateSync(ev.data[0], ev.data[1]));\n }, 0, cb);\n }\n function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n }\n var Inflate = exports.Inflate = function () {\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d) throw 'stream finished';\n if (!this.ondata) throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7;\n };\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n }();\n var AsyncInflate = exports.AsyncInflate = function () {\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([bInflt, function () {\n return [astrm, Inflate];\n }], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n }();\n function inflate(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt], function (ev) {\n return pbf(inflateSync(ev.data[0], gu8(ev.data[1])));\n }, 1, cb);\n }\n function inflateSync(data, out) {\n return inflt(data, out);\n }\n var Gzip = exports.Compress = exports.Gzip = function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v) gzh(raw, this.o), this.v = 0;\n if (f) wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n }();\n var AsyncGzip = exports.AsyncCompress = exports.AsyncGzip = function () {\n function AsyncGzip(opts, cb) {\n astrmify([bDflt, gze, function () {\n return [astrm, Deflate, Gzip];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n }();\n function gzip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt, gze, function () {\n return [gzipSync];\n }], function (ev) {\n return pbf(gzipSync(ev.data[0], ev.data[1]));\n }, 2, cb);\n }\n function gzipSync(data, opts) {\n if (!opts) opts = {};\n var c = crc(),\n l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8),\n s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n }\n var Gunzip = exports.Gunzip = function () {\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final) return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8) throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n }();\n var AsyncGunzip = exports.AsyncGunzip = function () {\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([bInflt, guze, function () {\n return [astrm, Inflate, Gunzip];\n }], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n }();\n function gunzip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt, guze, function () {\n return [gunzipSync];\n }], function (ev) {\n return pbf(gunzipSync(ev.data[0]));\n }, 3, cb);\n }\n function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n }\n var Zlib = exports.Zlib = function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v) zlh(raw, this.o), this.v = 0;\n if (f) wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n }();\n var AsyncZlib = exports.AsyncZlib = function () {\n function AsyncZlib(opts, cb) {\n astrmify([bDflt, zle, function () {\n return [astrm, Deflate, Zlib];\n }], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n }();\n function zlib(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bDflt, zle, function () {\n return [zlibSync];\n }], function (ev) {\n return pbf(zlibSync(ev.data[0], ev.data[1]));\n }, 4, cb);\n }\n function zlibSync(data, opts) {\n if (!opts) opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n }\n var Unzlib = exports.Unzlib = function () {\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final) return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4) throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n }();\n var AsyncUnzlib = exports.AsyncUnzlib = function () {\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([bInflt, zule, function () {\n return [astrm, Inflate, Unzlib];\n }], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n }();\n function unzlib(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return cbify(data, opts, [bInflt, zule, function () {\n return [unzlibSync];\n }], function (ev) {\n return pbf(unzlibSync(ev.data[0], gu8(ev.data[1])));\n }, 5, cb);\n }\n function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n }\n var Decompress = exports.Decompress = function () {\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n } else this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function cb() {\n _this_1.ondata.apply(_this_1, arguments);\n };\n this.s = this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8 ? new this.G(cb) : (this.p[0] & 15) != 8 || this.p[0] >> 4 > 7 || (this.p[0] << 8 | this.p[1]) % 31 ? new this.I(cb) : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n } else this.s.push(chunk, final);\n };\n return Decompress;\n }();\n var AsyncDecompress = exports.AsyncDecompress = function () {\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n }();\n function decompress(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzip(data, opts, cb) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflate(data, opts, cb) : unzlib(data, opts, cb);\n }\n function decompressSync(data, out) {\n return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzipSync(data, out) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflateSync(data, out) : unzlibSync(data, out);\n }\n var fltn = function fltn(d, p, t, o) {\n for (var k in d) {\n var val = d[k],\n n = p + k;\n if (val instanceof u8) t[n] = [val, o];else if (Array.isArray(val)) t[n] = [val[0], mrg(o, val[1])];else fltn(val, n + '/', t, o);\n }\n };\n var te = typeof TextEncoder != 'undefined' && new TextEncoder();\n var td = typeof TextDecoder != 'undefined' && new TextDecoder();\n var tds = 0;\n try {\n td.decode(et, {\n stream: true });\n\n tds = 1;\n } catch (e) {}\n var dutf8 = function dutf8(d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length) return [r, slc(d, i - 1)];\n if (!eb) r += String.fromCharCode(c);else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | d[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n } else if (eb & 1) r += String.fromCharCode((c & 31) << 6 | d[i++] & 63);else r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | d[i++] & 63);\n }\n };\n var DecodeUTF8 = exports.DecodeUTF8 = function () {\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds) this.t = new TextDecoder();else this.p = et;\n }\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no callback';\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, {\n stream: true }),\n final);\n if (final) {\n if (this.t.decode().length) throw 'invalid utf-8 data';\n this.t = null;\n }\n return;\n }\n if (!this.p) throw 'stream finished';\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat),\n ch = _a[0],\n np = _a[1];\n if (final) {\n if (np.length) throw 'invalid utf-8 data';\n this.p = null;\n } else this.p = np;\n this.ondata(ch, final);\n };\n return DecodeUTF8;\n }();\n var EncodeUTF8 = exports.EncodeUTF8 = function () {\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no callback';\n if (this.d) throw 'stream finished';\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n }();\n function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i) ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te) return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function w(v) {\n ar[ai++] = v;\n };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + (l - i << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1) w(c);else if (c < 2048) w(192 | c >> 6), w(128 | c & 63);else if (c > 55295 && c < 57344) c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c >> 18), w(128 | c >> 12 & 63), w(128 | c >> 6 & 63), w(128 | c & 63);else w(224 | c >> 12), w(128 | c >> 6 & 63), w(128 | c & 63);\n }\n return slc(ar, 0, ai);\n }\n function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384) r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n } else if (td) return td.decode(dat);else {\n var _a = dutf8(dat),\n out = _a[0],\n ext = _a[1];\n if (ext.length) throw 'invalid utf-8 data';\n return out;\n }\n }\n ;\n var dbf = function dbf(l) {\n return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0;\n };\n var slzh = function slzh(d, b) {\n return b + 30 + b2(d, b + 26) + b2(d, b + 28);\n };\n var zh = function zh(d, b, z) {\n var fnl = b2(d, b + 28),\n fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)),\n es = b + 46 + fnl,\n bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)],\n sc = _a[0],\n su = _a[1],\n off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n };\n var z64e = function z64e(d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2));\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n };\n var exfl = function exfl(ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535) throw 'extra field too long';\n le += l + 4;\n }\n }\n return le;\n };\n var wzh = function wzh(d, b, f, fn, u, c, ce, co) {\n var fl = fn.length,\n ex = f.extra,\n col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null) d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2;\n d[b++] = f.flag << 1 | (c == null && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime),\n y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119) throw 'date not in range 1980-2099';\n wbytes(d, b, y << 25 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >>> 1), b += 4;\n if (c != null) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k],\n l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col) d.set(co, b), b += col;\n return b;\n };\n var wzf = function wzf(o, b, c, d, e) {\n wbytes(o, b, 0x6054B50);\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n };\n var ZipPassThrough = exports.ZipPassThrough = function () {\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata) throw 'no callback - add to ZIP archive before pushing';\n this.c.p(chunk);\n this.size += chunk.length;\n if (final) this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n }();\n var ZipDeflate = exports.ZipDeflate = function () {\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts) opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n } catch (e) {\n this.ondata(e, null, final);\n }\n };\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n }();\n var AsyncZipDeflate = exports.AsyncZipDeflate = function () {\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts) opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n }();\n var Zip = exports.Zip = function () {\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (this.d & 2) throw 'stream finished';\n var f = strToU8(file.filename),\n fl = f.length;\n var com = file.comment,\n o = com && strToU8(com);\n var u = fl != file.filename.length || o && com.length != o.length;\n var hl = fl + exfl(file.extra) + 30;\n if (fl > 65535) throw 'filename too long';\n var header = new u8(hl);\n wzh(header, 0, file, f, u);\n var chks = [header];\n var pAll = function pAll() {\n for (var _i = 0, chks_1 = chks; _i < chks_1.length; _i++) {\n var chk = chks_1[_i];\n _this_1.ondata(null, chk, false);\n }\n chks = [];\n };\n var tr = this.d;\n this.d = 0;\n var ind = this.u.length;\n var uf = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function t() {\n if (file.terminate) file.terminate();\n },\n r: function r() {\n pAll();\n if (tr) {\n var nxt = _this_1.u[ind + 1];\n if (nxt) nxt.r();else _this_1.d = 1;\n }\n tr = 1;\n } });\n\n var cl = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n } else {\n cl += dat.length;\n chks.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl);\n wbytes(dd, 12, file.size);\n chks.push(dd);\n uf.c = cl, uf.b = hl + cl + 16, uf.crc = file.crc, uf.size = file.size;\n if (tr) uf.r();\n tr = 1;\n } else if (tr) pAll();\n }\n };\n this.u.push(uf);\n };\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n if (this.d & 1) throw 'stream finishing';\n throw 'stream finished';\n }\n if (this.d) this.e();else this.u.push({\n r: function r() {\n if (!(_this_1.d & 1)) return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function t() {} });\n\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0,\n l = 0,\n tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, f.c, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n }();\n function zip(data, opts, cb) {\n if (!cb) cb = opts, opts = {};\n if (typeof cb != 'function') throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length,\n o = 0,\n tot = 0;\n var slft = lft,\n files = new Array(lft);\n var term = [];\n var tAll = function tAll() {\n for (var i = 0; i < term.length; ++i) term[i]();\n };\n var cbf = function cbf() {\n var out = new u8(tot + 22),\n oe = o,\n cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n } catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft) cbf();\n var _loop_1 = function _loop_1(i) {\n var fn = k[i];\n var _a = r[fn],\n file = _a[0],\n p = _a[1];\n var c = crc(),\n size = file.length;\n c.p(file);\n var f = strToU8(fn),\n s = f.length;\n var com = p.comment,\n m = com && strToU8(com),\n ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function cbl(e, d) {\n if (e) {\n tAll();\n cb(e, null);\n } else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || m && com.length != ms,\n compression: compression });\n\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (! --lft) cbf();\n }\n };\n if (s > 65535) cbl('filename too long', null);\n if (!compression) cbl(null, file);else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n } catch (e) {\n cbl(e, null);\n }\n } else term.push(deflate(file, p, cbl));\n };\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n }\n function zipSync(data, opts) {\n if (!opts) opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn],\n file = _a[0],\n p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn),\n s = f.length;\n var com = p.comment,\n m = com && strToU8(com),\n ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535) throw 'filename too long';\n var d = compression ? deflateSync(file, p) : file,\n l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || m && com.length != ms,\n o: o,\n compression: compression }));\n\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22),\n oe = o,\n cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n }\n var UnzipPassThrough = exports.UnzipPassThrough = function () {\n function UnzipPassThrough() {}\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n }();\n var UnzipInflate = exports.UnzipInflate = function () {\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n } catch (e) {\n this.ondata(e, data, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n }();\n var AsyncUnzipInflate = exports.AsyncUnzipInflate = function () {\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n } else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate) data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n }();\n var Unzip = exports.Unzip = function () {\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough };\n\n this.p = et;\n }\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile) throw 'no callback';\n if (!this.p) throw 'stream finished';\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d) this.d.push(toAdd, !this.c);else this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length) return this.push(chunk, final);\n } else {\n var f = 0,\n i = 0,\n is = void 0,\n buf = void 0;\n if (!this.p.length) buf = chunk;else if (!chunk.length) buf = this.p;else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length,\n oc = this.c,\n add = oc && this.d;\n var _loop_2 = function _loop_2() {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6),\n cmp_1 = b2(buf, i + 8),\n u = bf & 2048,\n dd = bf & 8,\n fnl = b2(buf, i + 26),\n es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_2 = [];\n this_1.k.unshift(chks_2);\n f = 2;\n var sc_1 = b4(buf, i + 18),\n su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n } else if (dd) sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function start() {\n if (!file_1.ondata) throw 'no callback';\n if (!sc_1) file_1.ondata(null, et, true);else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr) throw 'unknown compression type ' + cmp_1;\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) {\n file_1.ondata(err, dat, final);\n };\n for (var _i = 0, chks_3 = chks_2; _i < chks_3.length; _i++) {\n var dat = chks_3[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_2 && _this_1.c) _this_1.d = d_1;else d_1.push(et, true);\n }\n },\n terminate: function terminate() {\n if (d_1 && d_1.terminate) d_1.terminate();\n } };\n\n if (sc_1 >= 0) file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n } else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n } else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\") break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add) add.push(dat, !!f);else this.k[+(f == 2)].push(dat);\n }\n if (f & 2) return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c) throw 'invalid zip file';\n this.p = null;\n }\n };\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n }();\n function unzip(data, cb) {\n if (typeof cb != 'function') throw 'no callback';\n var term = [];\n var tAll = function tAll() {\n for (var i = 0; i < term.length; ++i) term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft) cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50) {\n cb('invalid zip file', null);\n return;\n }\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_3 = function _loop_3(i) {\n var _a = zh(data, o, z),\n c_1 = _a[0],\n sc = _a[1],\n su = _a[2],\n fn = _a[3],\n no = _a[4],\n off = _a[5],\n b = slzh(data, off);\n o = no;\n var cbl = function cbl(e, d) {\n if (e) {\n tAll();\n cb(e, null);\n } else {\n files[fn] = d;\n if (! --lft) cb(null, files);\n }\n };\n if (!c_1) cbl(null, slc(data, b, b + sc));else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n } catch (e) {\n cbl(e, null);\n }\n } else term.push(inflate(infl, {\n size: su },\n cbl));\n } else cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n return tAll;\n }\n function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c) return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50) throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z),\n c_2 = _a[0],\n sc = _a[1],\n su = _a[2],\n fn = _a[3],\n no = _a[4],\n off = _a[5],\n b = slzh(data, off);\n o = no;\n if (!c_2) files[fn] = slc(data, b, b + sc);else if (c_2 == 8) files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));else throw 'unknown compression type ' + c_2;\n }\n return files;\n }return module.exports;});", "requires": [], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/libsmod", "outputPath": "/com/three/0.145.0/examples/jsm/libsmod/fflate.module.js", "fileName": "/examples/jsm/libsmod/fflate.module.js" }, "pandav:/examples/jsm/lines/Line2.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/lines/Line2\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineSegments2\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineGeometry\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Line2 = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineSegments2 = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineSegments2');\n var _LineGeometry = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineGeometry');\n var _LineMaterial = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineMaterial');\n var Line2 = exports.Line2 = function (_LineSegments) {\n (0, _inherits2.default)(Line2, _LineSegments);\n var _super = (0, _createSuper2.default)(Line2);\n function Line2() {\n var _this;\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _LineGeometry.LineGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _LineMaterial.LineMaterial({\n color: Math.random() * 0xffffff });\n\n (0, _classCallCheck2.default)(this, Line2);\n _this = _super.call(this, geometry, material);\n _this.isLine2 = true;\n _this.type = 'Line2';\n return _this;\n }\n return (0, _createClass2.default)(Line2);\n }(_LineSegments2.LineSegments2);return module.exports;});", "requires": [ "pandav:/examples/jsm/lines/LineSegments2.js", "pandav:/examples/jsm/lines/LineGeometry.js", "pandav:/examples/jsm/lines/LineMaterial.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/lines", "outputPath": "/com/three/0.145.0/examples/jsm/lines/Line2.js", "fileName": "/examples/jsm/lines/Line2.js" }, "pandav:/examples/jsm/lines/LineMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/lines/LineMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineMaterial = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n _Three.UniformsLib.line = {\n worldUnits: {\n value: 1 },\n\n linewidth: {\n value: 1 },\n\n resolution: {\n value: new _Three.Vector2(1, 1) },\n\n dashOffset: {\n value: 0 },\n\n dashScale: {\n value: 1 },\n\n dashSize: {\n value: 1 },\n\n gapSize: {\n value: 1 } };\n\n\n _Three.ShaderLib[\"line\"] = {\n uniforms: _Three.UniformsUtils.merge([_Three.UniformsLib.common, _Three.UniformsLib.fog, _Three.UniformsLib.line]),\n vertexShader: \"\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\n\\t\\tuniform float linewidth;\\n\\t\\tuniform vec2 resolution;\\n\\n\\t\\tattribute vec3 instanceStart;\\n\\t\\tattribute vec3 instanceEnd;\\n\\n\\t\\tattribute vec3 instanceColorStart;\\n\\t\\tattribute vec3 instanceColorEnd;\\n\\n\\t\\t#ifdef WORLD_UNITS\\n\\n\\t\\t\\tvarying vec4 worldPos;\\n\\t\\t\\tvarying vec3 worldStart;\\n\\t\\t\\tvarying vec3 worldEnd;\\n\\n\\t\\t\\t#ifdef USE_DASH\\n\\n\\t\\t\\t\\tvarying vec2 vUv;\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t#else\\n\\n\\t\\t\\tvarying vec2 vUv;\\n\\n\\t\\t#endif\\n\\n\\t\\t#ifdef USE_DASH\\n\\n\\t\\t\\tuniform float dashScale;\\n\\t\\t\\tattribute float instanceDistanceStart;\\n\\t\\t\\tattribute float instanceDistanceEnd;\\n\\t\\t\\tvarying float vLineDistance;\\n\\n\\t\\t#endif\\n\\n\\t\\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\\n\\n\\t\\t\\t// trim end segment so it terminates between the camera plane and the near plane\\n\\n\\t\\t\\t// conservative estimate of the near plane\\n\\t\\t\\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\\n\\t\\t\\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\\n\\t\\t\\tfloat nearEstimate = - 0.5 * b / a;\\n\\n\\t\\t\\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\\n\\n\\t\\t\\tend.xyz = mix( start.xyz, end.xyz, alpha );\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\t#ifdef USE_COLOR\\n\\n\\t\\t\\t\\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t\\t#ifdef USE_DASH\\n\\n\\t\\t\\t\\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\\n\\t\\t\\t\\tvUv = uv;\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tfloat aspect = resolution.x / resolution.y;\\n\\n\\t\\t\\t// camera space\\n\\t\\t\\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\\n\\t\\t\\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\\n\\n\\t\\t\\t#ifdef WORLD_UNITS\\n\\n\\t\\t\\t\\tworldStart = start.xyz;\\n\\t\\t\\t\\tworldEnd = end.xyz;\\n\\n\\t\\t\\t#else\\n\\n\\t\\t\\t\\tvUv = uv;\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t\\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\\n\\t\\t\\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\\n\\t\\t\\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\\n\\t\\t\\t// perhaps there is a more elegant solution -- WestLangley\\n\\n\\t\\t\\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\\n\\n\\t\\t\\tif ( perspective ) {\\n\\n\\t\\t\\t\\tif ( start.z < 0.0 && end.z >= 0.0 ) {\\n\\n\\t\\t\\t\\t\\ttrimSegment( start, end );\\n\\n\\t\\t\\t\\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\\n\\n\\t\\t\\t\\t\\ttrimSegment( end, start );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\t// clip space\\n\\t\\t\\tvec4 clipStart = projectionMatrix * start;\\n\\t\\t\\tvec4 clipEnd = projectionMatrix * end;\\n\\n\\t\\t\\t// ndc space\\n\\t\\t\\tvec3 ndcStart = clipStart.xyz / clipStart.w;\\n\\t\\t\\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\\n\\n\\t\\t\\t// direction\\n\\t\\t\\tvec2 dir = ndcEnd.xy - ndcStart.xy;\\n\\n\\t\\t\\t// account for clip-space aspect ratio\\n\\t\\t\\tdir.x *= aspect;\\n\\t\\t\\tdir = normalize( dir );\\n\\n\\t\\t\\t#ifdef WORLD_UNITS\\n\\n\\t\\t\\t\\t// get the offset direction as perpendicular to the view vector\\n\\t\\t\\t\\tvec3 worldDir = normalize( end.xyz - start.xyz );\\n\\t\\t\\t\\tvec3 offset;\\n\\t\\t\\t\\tif ( position.y < 0.5 ) {\\n\\n\\t\\t\\t\\t\\toffset = normalize( cross( start.xyz, worldDir ) );\\n\\n\\t\\t\\t\\t} else {\\n\\n\\t\\t\\t\\t\\toffset = normalize( cross( end.xyz, worldDir ) );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// sign flip\\n\\t\\t\\t\\tif ( position.x < 0.0 ) offset *= - 1.0;\\n\\n\\t\\t\\t\\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\\n\\n\\t\\t\\t\\t// don't extend the line if we're rendering dashes because we\\n\\t\\t\\t\\t// won't be rendering the endcaps\\n\\t\\t\\t\\t#ifndef USE_DASH\\n\\n\\t\\t\\t\\t\\t// extend the line bounds to encompass endcaps\\n\\t\\t\\t\\t\\tstart.xyz += - worldDir * linewidth * 0.5;\\n\\t\\t\\t\\t\\tend.xyz += worldDir * linewidth * 0.5;\\n\\n\\t\\t\\t\\t\\t// shift the position of the quad so it hugs the forward edge of the line\\n\\t\\t\\t\\t\\toffset.xy -= dir * forwardOffset;\\n\\t\\t\\t\\t\\toffset.z += 0.5;\\n\\n\\t\\t\\t\\t#endif\\n\\n\\t\\t\\t\\t// endcaps\\n\\t\\t\\t\\tif ( position.y > 1.0 || position.y < 0.0 ) {\\n\\n\\t\\t\\t\\t\\toffset.xy += dir * 2.0 * forwardOffset;\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// adjust for linewidth\\n\\t\\t\\t\\toffset *= linewidth * 0.5;\\n\\n\\t\\t\\t\\t// set the world position\\n\\t\\t\\t\\tworldPos = ( position.y < 0.5 ) ? start : end;\\n\\t\\t\\t\\tworldPos.xyz += offset;\\n\\n\\t\\t\\t\\t// project the worldpos\\n\\t\\t\\t\\tvec4 clip = projectionMatrix * worldPos;\\n\\n\\t\\t\\t\\t// shift the depth of the projected points so the line\\n\\t\\t\\t\\t// segments overlap neatly\\n\\t\\t\\t\\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\\n\\t\\t\\t\\tclip.z = clipPose.z * clip.w;\\n\\n\\t\\t\\t#else\\n\\n\\t\\t\\t\\tvec2 offset = vec2( dir.y, - dir.x );\\n\\t\\t\\t\\t// undo aspect ratio adjustment\\n\\t\\t\\t\\tdir.x /= aspect;\\n\\t\\t\\t\\toffset.x /= aspect;\\n\\n\\t\\t\\t\\t// sign flip\\n\\t\\t\\t\\tif ( position.x < 0.0 ) offset *= - 1.0;\\n\\n\\t\\t\\t\\t// endcaps\\n\\t\\t\\t\\tif ( position.y < 0.0 ) {\\n\\n\\t\\t\\t\\t\\toffset += - dir;\\n\\n\\t\\t\\t\\t} else if ( position.y > 1.0 ) {\\n\\n\\t\\t\\t\\t\\toffset += dir;\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// adjust for linewidth\\n\\t\\t\\t\\toffset *= linewidth;\\n\\n\\t\\t\\t\\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\\n\\t\\t\\t\\toffset /= resolution.y;\\n\\n\\t\\t\\t\\t// select end\\n\\t\\t\\t\\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\\n\\n\\t\\t\\t\\t// back to clip space\\n\\t\\t\\t\\toffset *= clip.w;\\n\\n\\t\\t\\t\\tclip.xy += offset;\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tgl_Position = clip;\\n\\n\\t\\t\\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\\n\\n\\t\\t\\t#include \\n\\t\\t\\t#include \\n\\t\\t\\t#include \\n\\n\\t\\t}\\n\\t\\t\",\n fragmentShader: \"\\n\\t\\tuniform vec3 diffuse;\\n\\t\\tuniform float opacity;\\n\\t\\tuniform float linewidth;\\n\\n\\t\\t#ifdef USE_DASH\\n\\n\\t\\t\\tuniform float dashOffset;\\n\\t\\t\\tuniform float dashSize;\\n\\t\\t\\tuniform float gapSize;\\n\\n\\t\\t#endif\\n\\n\\t\\tvarying float vLineDistance;\\n\\n\\t\\t#ifdef WORLD_UNITS\\n\\n\\t\\t\\tvarying vec4 worldPos;\\n\\t\\t\\tvarying vec3 worldStart;\\n\\t\\t\\tvarying vec3 worldEnd;\\n\\n\\t\\t\\t#ifdef USE_DASH\\n\\n\\t\\t\\t\\tvarying vec2 vUv;\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t#else\\n\\n\\t\\t\\tvarying vec2 vUv;\\n\\n\\t\\t#endif\\n\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\n\\t\\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\\n\\n\\t\\t\\tfloat mua;\\n\\t\\t\\tfloat mub;\\n\\n\\t\\t\\tvec3 p13 = p1 - p3;\\n\\t\\t\\tvec3 p43 = p4 - p3;\\n\\n\\t\\t\\tvec3 p21 = p2 - p1;\\n\\n\\t\\t\\tfloat d1343 = dot( p13, p43 );\\n\\t\\t\\tfloat d4321 = dot( p43, p21 );\\n\\t\\t\\tfloat d1321 = dot( p13, p21 );\\n\\t\\t\\tfloat d4343 = dot( p43, p43 );\\n\\t\\t\\tfloat d2121 = dot( p21, p21 );\\n\\n\\t\\t\\tfloat denom = d2121 * d4343 - d4321 * d4321;\\n\\n\\t\\t\\tfloat numer = d1343 * d4321 - d1321 * d4343;\\n\\n\\t\\t\\tmua = numer / denom;\\n\\t\\t\\tmua = clamp( mua, 0.0, 1.0 );\\n\\t\\t\\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\\n\\t\\t\\tmub = clamp( mub, 0.0, 1.0 );\\n\\n\\t\\t\\treturn vec2( mua, mub );\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\t#include \\n\\n\\t\\t\\t#ifdef USE_DASH\\n\\n\\t\\t\\t\\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\\n\\n\\t\\t\\t\\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tfloat alpha = opacity;\\n\\n\\t\\t\\t#ifdef WORLD_UNITS\\n\\n\\t\\t\\t\\t// Find the closest points on the view ray and the line segment\\n\\t\\t\\t\\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\\n\\t\\t\\t\\tvec3 lineDir = worldEnd - worldStart;\\n\\t\\t\\t\\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\\n\\n\\t\\t\\t\\tvec3 p1 = worldStart + lineDir * params.x;\\n\\t\\t\\t\\tvec3 p2 = rayEnd * params.y;\\n\\t\\t\\t\\tvec3 delta = p1 - p2;\\n\\t\\t\\t\\tfloat len = length( delta );\\n\\t\\t\\t\\tfloat norm = len / linewidth;\\n\\n\\t\\t\\t\\t#ifndef USE_DASH\\n\\n\\t\\t\\t\\t\\t#ifdef USE_ALPHA_TO_COVERAGE\\n\\n\\t\\t\\t\\t\\t\\tfloat dnorm = fwidth( norm );\\n\\t\\t\\t\\t\\t\\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\\n\\n\\t\\t\\t\\t\\t#else\\n\\n\\t\\t\\t\\t\\t\\tif ( norm > 0.5 ) {\\n\\n\\t\\t\\t\\t\\t\\t\\tdiscard;\\n\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t#endif\\n\\n\\t\\t\\t\\t#endif\\n\\n\\t\\t\\t#else\\n\\n\\t\\t\\t\\t#ifdef USE_ALPHA_TO_COVERAGE\\n\\n\\t\\t\\t\\t\\t// artifacts appear on some hardware if a derivative is taken within a conditional\\n\\t\\t\\t\\t\\tfloat a = vUv.x;\\n\\t\\t\\t\\t\\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\\n\\t\\t\\t\\t\\tfloat len2 = a * a + b * b;\\n\\t\\t\\t\\t\\tfloat dlen = fwidth( len2 );\\n\\n\\t\\t\\t\\t\\tif ( abs( vUv.y ) > 1.0 ) {\\n\\n\\t\\t\\t\\t\\t\\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t#else\\n\\n\\t\\t\\t\\t\\tif ( abs( vUv.y ) > 1.0 ) {\\n\\n\\t\\t\\t\\t\\t\\tfloat a = vUv.x;\\n\\t\\t\\t\\t\\t\\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\\n\\t\\t\\t\\t\\t\\tfloat len2 = a * a + b * b;\\n\\n\\t\\t\\t\\t\\t\\tif ( len2 > 1.0 ) discard;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t#endif\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tvec4 diffuseColor = vec4( diffuse, alpha );\\n\\n\\t\\t\\t#include \\n\\t\\t\\t#include \\n\\n\\t\\t\\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\\n\\n\\t\\t\\t#include \\n\\t\\t\\t#include \\n\\t\\t\\t#include \\n\\t\\t\\t#include \\n\\n\\t\\t}\\n\\t\\t\" };\n\n var LineMaterial = exports.LineMaterial = function (_ShaderMaterial) {\n (0, _inherits2.default)(LineMaterial, _ShaderMaterial);\n var _super = (0, _createSuper2.default)(LineMaterial);\n function LineMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, LineMaterial);\n _this = _super.call(this, {\n type: \"LineMaterial\",\n uniforms: _Three.UniformsUtils.clone(_Three.ShaderLib[\"line\"].uniforms),\n vertexShader: _Three.ShaderLib[\"line\"].vertexShader,\n fragmentShader: _Three.ShaderLib[\"line\"].fragmentShader,\n clipping: true });\n\n _this.isLineMaterial = true;\n Object.defineProperties((0, _assertThisInitialized2.default)(_this), {\n color: {\n enumerable: true,\n get: function get() {\n return this.uniforms.diffuse.value;\n },\n set: function set(value) {\n this.uniforms.diffuse.value = value;\n } },\n\n worldUnits: {\n enumerable: true,\n get: function get() {\n return \"WORLD_UNITS\" in this.defines;\n },\n set: function set(value) {\n if (value === true) {\n this.defines.WORLD_UNITS = \"\";\n } else {\n delete this.defines.WORLD_UNITS;\n }\n } },\n\n linewidth: {\n enumerable: true,\n get: function get() {\n return this.uniforms.linewidth.value;\n },\n set: function set(value) {\n this.uniforms.linewidth.value = value;\n } },\n\n dashed: {\n enumerable: true,\n get: function get() {\n return Boolean(\"USE_DASH\" in this.defines);\n },\n set: function set(value) {\n if (Boolean(value) !== Boolean(\"USE_DASH\" in this.defines)) {\n this.needsUpdate = true;\n }\n if (value === true) {\n this.defines.USE_DASH = \"\";\n } else {\n delete this.defines.USE_DASH;\n }\n } },\n\n dashScale: {\n enumerable: true,\n get: function get() {\n return this.uniforms.dashScale.value;\n },\n set: function set(value) {\n this.uniforms.dashScale.value = value;\n } },\n\n dashSize: {\n enumerable: true,\n get: function get() {\n return this.uniforms.dashSize.value;\n },\n set: function set(value) {\n this.uniforms.dashSize.value = value;\n } },\n\n dashOffset: {\n enumerable: true,\n get: function get() {\n return this.uniforms.dashOffset.value;\n },\n set: function set(value) {\n this.uniforms.dashOffset.value = value;\n } },\n\n gapSize: {\n enumerable: true,\n get: function get() {\n return this.uniforms.gapSize.value;\n },\n set: function set(value) {\n this.uniforms.gapSize.value = value;\n } },\n\n opacity: {\n enumerable: true,\n get: function get() {\n return this.uniforms.opacity.value;\n },\n set: function set(value) {\n this.uniforms.opacity.value = value;\n } },\n\n resolution: {\n enumerable: true,\n get: function get() {\n return this.uniforms.resolution.value;\n },\n set: function set(value) {\n this.uniforms.resolution.value.copy(value);\n } },\n\n alphaToCoverage: {\n enumerable: true,\n get: function get() {\n return Boolean(\"USE_ALPHA_TO_COVERAGE\" in this.defines);\n },\n set: function set(value) {\n if (Boolean(value) !== Boolean(\"USE_ALPHA_TO_COVERAGE\" in this.defines)) {\n this.needsUpdate = true;\n }\n if (value === true) {\n this.defines.USE_ALPHA_TO_COVERAGE = \"\";\n this.extensions.derivatives = true;\n } else {\n delete this.defines.USE_ALPHA_TO_COVERAGE;\n this.extensions.derivatives = false;\n }\n } } });\n\n\n _this.setValues(parameters);\n return _this;\n }\n return (0, _createClass2.default)(LineMaterial);\n }(_Three.ShaderMaterial);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/lines", "outputPath": "/com/three/0.145.0/examples/jsm/lines/LineMaterial.js", "fileName": "/examples/jsm/lines/LineMaterial.js" }, "pandav:/examples/jsm/lines/LineSegments2.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/lines/LineSegments2\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineSegmentsGeometry\", \"pandav:/com/three/0.145.0/examples/jsm/lines/LineMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineSegments2 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _LineSegmentsGeometry = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineSegmentsGeometry');\n var _LineMaterial = require('pandav:/com/three/0.145.0/examples/jsm/lines/LineMaterial');\n var _start = new _Three.Vector3();\n var _end = new _Three.Vector3();\n var _start4 = new _Three.Vector4();\n var _end4 = new _Three.Vector4();\n var _ssOrigin = new _Three.Vector4();\n var _ssOrigin3 = new _Three.Vector3();\n var _mvMatrix = new _Three.Matrix4();\n var _line = new _Three.Line3();\n var _closestPoint = new _Three.Vector3();\n var _box = new _Three.Box3();\n var _sphere = new _Three.Sphere();\n var _clipToWorldVector = new _Three.Vector4();\n var _ray, _instanceStart, _instanceEnd, _lineWidth;\n function getWorldSpaceHalfWidth(camera, distance, resolution) {\n _clipToWorldVector.set(0, 0, -distance, 1.0).applyMatrix4(camera.projectionMatrix);\n _clipToWorldVector.multiplyScalar(1.0 / _clipToWorldVector.w);\n _clipToWorldVector.x = _lineWidth / resolution.width;\n _clipToWorldVector.y = _lineWidth / resolution.height;\n _clipToWorldVector.applyMatrix4(camera.projectionMatrixInverse);\n _clipToWorldVector.multiplyScalar(1.0 / _clipToWorldVector.w);\n return Math.abs(Math.max(_clipToWorldVector.x, _clipToWorldVector.y));\n }\n function raycastWorldUnits(lineSegments, intersects) {\n for (var i = 0, l = _instanceStart.count; i < l; i++) {\n _line.start.fromBufferAttribute(_instanceStart, i);\n _line.end.fromBufferAttribute(_instanceEnd, i);\n var pointOnLine = new _Three.Vector3();\n var point = new _Three.Vector3();\n _ray.distanceSqToSegment(_line.start, _line.end, point, pointOnLine);\n var isInside = point.distanceTo(pointOnLine) < _lineWidth * 0.5;\n if (isInside) {\n intersects.push({\n point: point,\n pointOnLine: pointOnLine,\n distance: _ray.origin.distanceTo(point),\n object: lineSegments,\n face: null,\n faceIndex: i,\n uv: null,\n uv2: null });\n\n }\n }\n }\n function raycastScreenSpace(lineSegments, camera, intersects) {\n var projectionMatrix = camera.projectionMatrix;\n var material = lineSegments.material;\n var resolution = material.resolution;\n var matrixWorld = lineSegments.matrixWorld;\n var geometry = lineSegments.geometry;\n var instanceStart = geometry.attributes.instanceStart;\n var instanceEnd = geometry.attributes.instanceEnd;\n var near = -camera.near;\n _ray.at(1, _ssOrigin);\n _ssOrigin.w = 1;\n _ssOrigin.applyMatrix4(camera.matrixWorldInverse);\n _ssOrigin.applyMatrix4(projectionMatrix);\n _ssOrigin.multiplyScalar(1 / _ssOrigin.w);\n _ssOrigin.x *= resolution.x / 2;\n _ssOrigin.y *= resolution.y / 2;\n _ssOrigin.z = 0;\n _ssOrigin3.copy(_ssOrigin);\n _mvMatrix.multiplyMatrices(camera.matrixWorldInverse, matrixWorld);\n for (var i = 0, l = instanceStart.count; i < l; i++) {\n _start4.fromBufferAttribute(instanceStart, i);\n _end4.fromBufferAttribute(instanceEnd, i);\n _start4.w = 1;\n _end4.w = 1;\n _start4.applyMatrix4(_mvMatrix);\n _end4.applyMatrix4(_mvMatrix);\n var isBehindCameraNear = _start4.z > near && _end4.z > near;\n if (isBehindCameraNear) {\n continue;\n }\n if (_start4.z > near) {\n var deltaDist = _start4.z - _end4.z;\n var t = (_start4.z - near) / deltaDist;\n _start4.lerp(_end4, t);\n } else if (_end4.z > near) {\n var _deltaDist = _end4.z - _start4.z;\n var _t = (_end4.z - near) / _deltaDist;\n _end4.lerp(_start4, _t);\n }\n _start4.applyMatrix4(projectionMatrix);\n _end4.applyMatrix4(projectionMatrix);\n _start4.multiplyScalar(1 / _start4.w);\n _end4.multiplyScalar(1 / _end4.w);\n _start4.x *= resolution.x / 2;\n _start4.y *= resolution.y / 2;\n _end4.x *= resolution.x / 2;\n _end4.y *= resolution.y / 2;\n _line.start.copy(_start4);\n _line.start.z = 0;\n _line.end.copy(_end4);\n _line.end.z = 0;\n var param = _line.closestPointToPointParameter(_ssOrigin3, true);\n _line.at(param, _closestPoint);\n var zPos = _Three.MathUtils.lerp(_start4.z, _end4.z, param);\n var isInClipSpace = zPos >= -1 && zPos <= 1;\n var isInside = _ssOrigin3.distanceTo(_closestPoint) < _lineWidth * 0.5;\n if (isInClipSpace && isInside) {\n _line.start.fromBufferAttribute(instanceStart, i);\n _line.end.fromBufferAttribute(instanceEnd, i);\n _line.start.applyMatrix4(matrixWorld);\n _line.end.applyMatrix4(matrixWorld);\n var pointOnLine = new _Three.Vector3();\n var point = new _Three.Vector3();\n _ray.distanceSqToSegment(_line.start, _line.end, point, pointOnLine);\n intersects.push({\n point: point,\n pointOnLine: pointOnLine,\n distance: _ray.origin.distanceTo(point),\n object: lineSegments,\n face: null,\n faceIndex: i,\n uv: null,\n uv2: null });\n\n }\n }\n }\n var LineSegments2 = exports.LineSegments2 = function (_Mesh) {\n (0, _inherits2.default)(LineSegments2, _Mesh);\n var _super = (0, _createSuper2.default)(LineSegments2);\n function LineSegments2() {\n var _this;\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _LineSegmentsGeometry.LineSegmentsGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _LineMaterial.LineMaterial({\n color: Math.random() * 0xffffff });\n\n (0, _classCallCheck2.default)(this, LineSegments2);\n _this = _super.call(this, geometry, material);\n _this.isLineSegments2 = true;\n _this.type = \"LineSegments2\";\n return _this;\n }\n (0, _createClass2.default)(LineSegments2, [{\n key: \"computeLineDistances\",\n value: function computeLineDistances() {\n var geometry = this.geometry;\n var instanceStart = geometry.attributes.instanceStart;\n var instanceEnd = geometry.attributes.instanceEnd;\n var lineDistances = new Float32Array(2 * instanceStart.count);\n for (var i = 0, j = 0, l = instanceStart.count; i < l; i++, j += 2) {\n _start.fromBufferAttribute(instanceStart, i);\n _end.fromBufferAttribute(instanceEnd, i);\n lineDistances[j] = j === 0 ? 0 : lineDistances[j - 1];\n lineDistances[j + 1] = lineDistances[j] + _start.distanceTo(_end);\n }\n var instanceDistanceBuffer = new _Three.InstancedInterleavedBuffer(lineDistances, 2, 1);\n geometry.setAttribute(\"instanceDistanceStart\", new _Three.InterleavedBufferAttribute(instanceDistanceBuffer, 1, 0));\n geometry.setAttribute(\"instanceDistanceEnd\", new _Three.InterleavedBufferAttribute(instanceDistanceBuffer, 1, 1));\n return this;\n } },\n {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var worldUnits = this.material.worldUnits;\n var camera = raycaster.camera;\n if (camera === null && !worldUnits) {\n console.error('LineSegments2: \"Raycaster.camera\" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');\n }\n var threshold = raycaster.params.Line2 !== undefined ? raycaster.params.Line2.threshold || 0 : 0;\n _ray = raycaster.ray;\n var matrixWorld = this.matrixWorld;\n var geometry = this.geometry;\n var material = this.material;\n _lineWidth = material.linewidth + threshold;\n _instanceStart = geometry.attributes.instanceStart;\n _instanceEnd = geometry.attributes.instanceEnd;\n if (geometry.boundingSphere === null) {\n geometry.computeBoundingSphere();\n }\n _sphere.copy(geometry.boundingSphere).applyMatrix4(matrixWorld);\n var sphereMargin;\n if (worldUnits) {\n sphereMargin = _lineWidth * 0.5;\n } else {\n var distanceToSphere = Math.max(camera.near, _sphere.distanceToPoint(_ray.origin));\n sphereMargin = getWorldSpaceHalfWidth(camera, distanceToSphere, material.resolution);\n }\n _sphere.radius += sphereMargin;\n if (_ray.intersectsSphere(_sphere) === false) {\n return;\n }\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n _box.copy(geometry.boundingBox).applyMatrix4(matrixWorld);\n var boxMargin;\n if (worldUnits) {\n boxMargin = _lineWidth * 0.5;\n } else {\n var distanceToBox = Math.max(camera.near, _box.distanceToPoint(_ray.origin));\n boxMargin = getWorldSpaceHalfWidth(camera, distanceToBox, material.resolution);\n }\n _box.expandByScalar(boxMargin);\n if (_ray.intersectsBox(_box) === false) {\n return;\n }\n if (worldUnits) {\n raycastWorldUnits(this, intersects);\n } else {\n raycastScreenSpace(this, camera, intersects);\n }\n } }]);\n\n return LineSegments2;\n }(_Three.Mesh);return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/lines/LineSegmentsGeometry.js", "pandav:/examples/jsm/lines/LineMaterial.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/lines", "outputPath": "/com/three/0.145.0/examples/jsm/lines/LineSegments2.js", "fileName": "/examples/jsm/lines/LineSegments2.js" }, "pandav:/examples/jsm/libsmod/ktx-parse.module.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/libsmod/ktx-parse.module\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.VK_FORMAT_ASTC_6x6_SRGB_BLOCK = exports.VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_6x5_UNORM_BLOCK = exports.VK_FORMAT_ASTC_6x5_SRGB_BLOCK = exports.VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_5x5_UNORM_BLOCK = exports.VK_FORMAT_ASTC_5x5_SRGB_BLOCK = exports.VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_5x4_UNORM_BLOCK = exports.VK_FORMAT_ASTC_5x4_SRGB_BLOCK = exports.VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_4x4_UNORM_BLOCK = exports.VK_FORMAT_ASTC_4x4_SRGB_BLOCK = exports.VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_12x12_UNORM_BLOCK = exports.VK_FORMAT_ASTC_12x12_SRGB_BLOCK = exports.VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_12x10_UNORM_BLOCK = exports.VK_FORMAT_ASTC_12x10_SRGB_BLOCK = exports.VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_10x8_UNORM_BLOCK = exports.VK_FORMAT_ASTC_10x8_SRGB_BLOCK = exports.VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_10x6_UNORM_BLOCK = exports.VK_FORMAT_ASTC_10x6_SRGB_BLOCK = exports.VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_10x5_UNORM_BLOCK = exports.VK_FORMAT_ASTC_10x5_SRGB_BLOCK = exports.VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_10x10_UNORM_BLOCK = exports.VK_FORMAT_ASTC_10x10_SRGB_BLOCK = exports.VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = exports.VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = exports.VK_FORMAT_A2R10G10B10_UNORM_PACK32 = exports.VK_FORMAT_A2R10G10B10_UINT_PACK32 = exports.VK_FORMAT_A2R10G10B10_SNORM_PACK32 = exports.VK_FORMAT_A2R10G10B10_SINT_PACK32 = exports.VK_FORMAT_A2B10G10R10_UNORM_PACK32 = exports.VK_FORMAT_A2B10G10R10_UINT_PACK32 = exports.VK_FORMAT_A2B10G10R10_SNORM_PACK32 = exports.VK_FORMAT_A2B10G10R10_SINT_PACK32 = exports.VK_FORMAT_A1R5G5B5_UNORM_PACK16 = exports.KTX2Container = exports.KHR_SUPERCOMPRESSION_ZSTD = exports.KHR_SUPERCOMPRESSION_ZLIB = exports.KHR_SUPERCOMPRESSION_NONE = exports.KHR_SUPERCOMPRESSION_BASISLZ = exports.KHR_DF_VERSION = exports.KHR_DF_VENDORID_KHRONOS = exports.KHR_DF_TRANSFER_UNSPECIFIED = exports.KHR_DF_TRANSFER_ST240 = exports.KHR_DF_TRANSFER_SRGB = exports.KHR_DF_TRANSFER_SLOG2 = exports.KHR_DF_TRANSFER_SLOG = exports.KHR_DF_TRANSFER_PQ_OETF = exports.KHR_DF_TRANSFER_PQ_EOTF = exports.KHR_DF_TRANSFER_PAL_OETF = exports.KHR_DF_TRANSFER_PAL625_EOTF = exports.KHR_DF_TRANSFER_NTSC = exports.KHR_DF_TRANSFER_LINEAR = exports.KHR_DF_TRANSFER_ITU = exports.KHR_DF_TRANSFER_HLG_OETF = exports.KHR_DF_TRANSFER_HLG_EOTF = exports.KHR_DF_TRANSFER_DCIP3 = exports.KHR_DF_TRANSFER_BT1886 = exports.KHR_DF_TRANSFER_ADOBERGB = exports.KHR_DF_TRANSFER_ACESCCT = exports.KHR_DF_TRANSFER_ACESCC = exports.KHR_DF_SAMPLE_DATATYPE_SIGNED = exports.KHR_DF_SAMPLE_DATATYPE_LINEAR = exports.KHR_DF_SAMPLE_DATATYPE_FLOAT = exports.KHR_DF_SAMPLE_DATATYPE_EXPONENT = exports.KHR_DF_PRIMARIES_UNSPECIFIED = exports.KHR_DF_PRIMARIES_PAL525 = exports.KHR_DF_PRIMARIES_NTSC1953 = exports.KHR_DF_PRIMARIES_DISPLAYP3 = exports.KHR_DF_PRIMARIES_CIEXYZ = exports.KHR_DF_PRIMARIES_BT709 = exports.KHR_DF_PRIMARIES_BT601_SMPTE = exports.KHR_DF_PRIMARIES_BT601_EBU = exports.KHR_DF_PRIMARIES_BT2020 = exports.KHR_DF_PRIMARIES_ADOBERGB = exports.KHR_DF_PRIMARIES_ACESCC = exports.KHR_DF_PRIMARIES_ACES = exports.KHR_DF_MODEL_UNSPECIFIED = exports.KHR_DF_MODEL_RGBSDA = exports.KHR_DF_MODEL_ETC2 = exports.KHR_DF_MODEL_ETC1S = exports.KHR_DF_MODEL_ETC1 = exports.KHR_DF_MODEL_ASTC = exports.KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT = exports.KHR_DF_FLAG_ALPHA_STRAIGHT = exports.KHR_DF_FLAG_ALPHA_PREMULTIPLIED = exports.KHR_DF_CHANNEL_RGBSDA_STENCIL = exports.KHR_DF_CHANNEL_RGBSDA_RED = exports.KHR_DF_CHANNEL_RGBSDA_GREEN = exports.KHR_DF_CHANNEL_RGBSDA_DEPTH = exports.KHR_DF_CHANNEL_RGBSDA_BLUE = exports.KHR_DF_CHANNEL_RGBSDA_ALPHA = void 0;\n exports.VK_FORMAT_R32G32B32_UINT = exports.VK_FORMAT_R32G32B32_SINT = exports.VK_FORMAT_R32G32B32_SFLOAT = exports.VK_FORMAT_R32G32B32A32_UINT = exports.VK_FORMAT_R32G32B32A32_SINT = exports.VK_FORMAT_R32G32B32A32_SFLOAT = exports.VK_FORMAT_R16_UNORM = exports.VK_FORMAT_R16_UINT = exports.VK_FORMAT_R16_SNORM = exports.VK_FORMAT_R16_SINT = exports.VK_FORMAT_R16_SFLOAT = exports.VK_FORMAT_R16G16_UNORM = exports.VK_FORMAT_R16G16_UINT = exports.VK_FORMAT_R16G16_SNORM = exports.VK_FORMAT_R16G16_SINT = exports.VK_FORMAT_R16G16_SFLOAT = exports.VK_FORMAT_R16G16B16_UNORM = exports.VK_FORMAT_R16G16B16_UINT = exports.VK_FORMAT_R16G16B16_SNORM = exports.VK_FORMAT_R16G16B16_SINT = exports.VK_FORMAT_R16G16B16_SFLOAT = exports.VK_FORMAT_R16G16B16A16_UNORM = exports.VK_FORMAT_R16G16B16A16_UINT = exports.VK_FORMAT_R16G16B16A16_SNORM = exports.VK_FORMAT_R16G16B16A16_SINT = exports.VK_FORMAT_R16G16B16A16_SFLOAT = exports.VK_FORMAT_R12X4_UNORM_PACK16 = exports.VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = exports.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = exports.VK_FORMAT_R10X6_UNORM_PACK16 = exports.VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = exports.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = exports.VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = exports.VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = exports.VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = exports.VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = exports.VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = exports.VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = exports.VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = exports.VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = exports.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = exports.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = exports.VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = exports.VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = exports.VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = exports.VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = exports.VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = exports.VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = exports.VK_FORMAT_EAC_R11_UNORM_BLOCK = exports.VK_FORMAT_EAC_R11_SNORM_BLOCK = exports.VK_FORMAT_EAC_R11G11_UNORM_BLOCK = exports.VK_FORMAT_EAC_R11G11_SNORM_BLOCK = exports.VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = exports.VK_FORMAT_D32_SFLOAT_S8_UINT = exports.VK_FORMAT_D32_SFLOAT = exports.VK_FORMAT_D24_UNORM_S8_UINT = exports.VK_FORMAT_D16_UNORM_S8_UINT = exports.VK_FORMAT_D16_UNORM = exports.VK_FORMAT_BC7_UNORM_BLOCK = exports.VK_FORMAT_BC7_SRGB_BLOCK = exports.VK_FORMAT_BC6H_UFLOAT_BLOCK = exports.VK_FORMAT_BC6H_SFLOAT_BLOCK = exports.VK_FORMAT_BC5_UNORM_BLOCK = exports.VK_FORMAT_BC5_SNORM_BLOCK = exports.VK_FORMAT_BC4_UNORM_BLOCK = exports.VK_FORMAT_BC4_SNORM_BLOCK = exports.VK_FORMAT_BC3_UNORM_BLOCK = exports.VK_FORMAT_BC3_SRGB_BLOCK = exports.VK_FORMAT_BC2_UNORM_BLOCK = exports.VK_FORMAT_BC2_SRGB_BLOCK = exports.VK_FORMAT_BC1_RGB_UNORM_BLOCK = exports.VK_FORMAT_BC1_RGB_SRGB_BLOCK = exports.VK_FORMAT_BC1_RGBA_UNORM_BLOCK = exports.VK_FORMAT_BC1_RGBA_SRGB_BLOCK = exports.VK_FORMAT_B8G8R8_UNORM = exports.VK_FORMAT_B8G8R8_UINT = exports.VK_FORMAT_B8G8R8_SRGB = exports.VK_FORMAT_B8G8R8_SNORM = exports.VK_FORMAT_B8G8R8_SINT = exports.VK_FORMAT_B8G8R8A8_UNORM = exports.VK_FORMAT_B8G8R8A8_UINT = exports.VK_FORMAT_B8G8R8A8_SRGB = exports.VK_FORMAT_B8G8R8A8_SNORM = exports.VK_FORMAT_B8G8R8A8_SINT = exports.VK_FORMAT_B5G6R5_UNORM_PACK16 = exports.VK_FORMAT_B5G5R5A1_UNORM_PACK16 = exports.VK_FORMAT_B4G4R4A4_UNORM_PACK16 = exports.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = exports.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = exports.VK_FORMAT_B10G11R11_UFLOAT_PACK32 = exports.VK_FORMAT_ASTC_8x8_UNORM_BLOCK = exports.VK_FORMAT_ASTC_8x8_SRGB_BLOCK = exports.VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_8x6_UNORM_BLOCK = exports.VK_FORMAT_ASTC_8x6_SRGB_BLOCK = exports.VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_8x5_UNORM_BLOCK = exports.VK_FORMAT_ASTC_8x5_SRGB_BLOCK = exports.VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = exports.VK_FORMAT_ASTC_6x6_UNORM_BLOCK = void 0;\n exports.VK_FORMAT_X8_D24_UNORM_PACK32 = exports.VK_FORMAT_UNDEFINED = exports.VK_FORMAT_S8_UINT = exports.VK_FORMAT_R8_UNORM = exports.VK_FORMAT_R8_UINT = exports.VK_FORMAT_R8_SRGB = exports.VK_FORMAT_R8_SNORM = exports.VK_FORMAT_R8_SINT = exports.VK_FORMAT_R8G8_UNORM = exports.VK_FORMAT_R8G8_UINT = exports.VK_FORMAT_R8G8_SRGB = exports.VK_FORMAT_R8G8_SNORM = exports.VK_FORMAT_R8G8_SINT = exports.VK_FORMAT_R8G8B8_UNORM = exports.VK_FORMAT_R8G8B8_UINT = exports.VK_FORMAT_R8G8B8_SRGB = exports.VK_FORMAT_R8G8B8_SNORM = exports.VK_FORMAT_R8G8B8_SINT = exports.VK_FORMAT_R8G8B8A8_UNORM = exports.VK_FORMAT_R8G8B8A8_UINT = exports.VK_FORMAT_R8G8B8A8_SRGB = exports.VK_FORMAT_R8G8B8A8_SNORM = exports.VK_FORMAT_R8G8B8A8_SINT = exports.VK_FORMAT_R64_UINT = exports.VK_FORMAT_R64_SINT = exports.VK_FORMAT_R64_SFLOAT = exports.VK_FORMAT_R64G64_UINT = exports.VK_FORMAT_R64G64_SINT = exports.VK_FORMAT_R64G64_SFLOAT = exports.VK_FORMAT_R64G64B64_UINT = exports.VK_FORMAT_R64G64B64_SINT = exports.VK_FORMAT_R64G64B64_SFLOAT = exports.VK_FORMAT_R64G64B64A64_UINT = exports.VK_FORMAT_R64G64B64A64_SINT = exports.VK_FORMAT_R64G64B64A64_SFLOAT = exports.VK_FORMAT_R5G6B5_UNORM_PACK16 = exports.VK_FORMAT_R5G5B5A1_UNORM_PACK16 = exports.VK_FORMAT_R4G4_UNORM_PACK8 = exports.VK_FORMAT_R4G4B4A4_UNORM_PACK16 = exports.VK_FORMAT_R32_UINT = exports.VK_FORMAT_R32_SINT = exports.VK_FORMAT_R32_SFLOAT = exports.VK_FORMAT_R32G32_UINT = exports.VK_FORMAT_R32G32_SINT = exports.VK_FORMAT_R32G32_SFLOAT = void 0;\n exports.read = Pi;\n exports.write = Mi;\n var _createForOfIteratorHelper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var t = exports.KHR_SUPERCOMPRESSION_NONE = 0,\n e = exports.KHR_SUPERCOMPRESSION_BASISLZ = 1,\n n = exports.KHR_SUPERCOMPRESSION_ZSTD = 2,\n i = exports.KHR_SUPERCOMPRESSION_ZLIB = 3,\n s = exports.KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT = 0,\n a = exports.KHR_DF_VENDORID_KHRONOS = 0,\n r = exports.KHR_DF_VERSION = 2,\n o = exports.KHR_DF_MODEL_UNSPECIFIED = 0,\n l = exports.KHR_DF_MODEL_RGBSDA = 1,\n f = exports.KHR_DF_MODEL_ETC1 = 160,\n U = exports.KHR_DF_MODEL_ETC2 = 161,\n c = exports.KHR_DF_MODEL_ASTC = 162,\n h = exports.KHR_DF_MODEL_ETC1S = 163,\n _ = exports.KHR_DF_FLAG_ALPHA_STRAIGHT = 0,\n p = exports.KHR_DF_FLAG_ALPHA_PREMULTIPLIED = 1,\n g = exports.KHR_DF_TRANSFER_UNSPECIFIED = 0,\n y = exports.KHR_DF_TRANSFER_LINEAR = 1,\n x = exports.KHR_DF_TRANSFER_SRGB = 2,\n u = exports.KHR_DF_TRANSFER_ITU = 3,\n b = exports.KHR_DF_TRANSFER_NTSC = 4,\n d = exports.KHR_DF_TRANSFER_SLOG = 5,\n m = exports.KHR_DF_TRANSFER_SLOG2 = 6,\n w = exports.KHR_DF_TRANSFER_BT1886 = 7,\n D = exports.KHR_DF_TRANSFER_HLG_OETF = 8,\n B = exports.KHR_DF_TRANSFER_HLG_EOTF = 9,\n L = exports.KHR_DF_TRANSFER_PQ_EOTF = 10,\n A = exports.KHR_DF_TRANSFER_PQ_OETF = 11,\n k = exports.KHR_DF_TRANSFER_DCIP3 = 12,\n v = exports.KHR_DF_TRANSFER_PAL_OETF = 13,\n S = exports.KHR_DF_TRANSFER_PAL625_EOTF = 14,\n I = exports.KHR_DF_TRANSFER_ST240 = 15,\n O = exports.KHR_DF_TRANSFER_ACESCC = 16,\n T = exports.KHR_DF_TRANSFER_ACESCCT = 17,\n V = exports.KHR_DF_TRANSFER_ADOBERGB = 18,\n E = exports.KHR_DF_PRIMARIES_UNSPECIFIED = 0,\n F = exports.KHR_DF_PRIMARIES_BT709 = 1,\n P = exports.KHR_DF_PRIMARIES_BT601_EBU = 2,\n C = exports.KHR_DF_PRIMARIES_BT601_SMPTE = 3,\n z = exports.KHR_DF_PRIMARIES_BT2020 = 4,\n M = exports.KHR_DF_PRIMARIES_CIEXYZ = 5,\n W = exports.KHR_DF_PRIMARIES_ACES = 6,\n N = exports.KHR_DF_PRIMARIES_ACESCC = 7,\n H = exports.KHR_DF_PRIMARIES_NTSC1953 = 8,\n K = exports.KHR_DF_PRIMARIES_PAL525 = 9,\n X = exports.KHR_DF_PRIMARIES_DISPLAYP3 = 10,\n j = exports.KHR_DF_PRIMARIES_ADOBERGB = 11,\n R = exports.KHR_DF_CHANNEL_RGBSDA_RED = 0,\n Y = exports.KHR_DF_CHANNEL_RGBSDA_GREEN = 1,\n q = exports.KHR_DF_CHANNEL_RGBSDA_BLUE = 2,\n G = exports.KHR_DF_CHANNEL_RGBSDA_STENCIL = 13,\n J = exports.KHR_DF_CHANNEL_RGBSDA_DEPTH = 14,\n Q = exports.KHR_DF_CHANNEL_RGBSDA_ALPHA = 15,\n Z = exports.KHR_DF_SAMPLE_DATATYPE_FLOAT = 128,\n $ = exports.KHR_DF_SAMPLE_DATATYPE_SIGNED = 64,\n tt = exports.KHR_DF_SAMPLE_DATATYPE_EXPONENT = 32,\n et = exports.KHR_DF_SAMPLE_DATATYPE_LINEAR = 16,\n nt = exports.VK_FORMAT_UNDEFINED = 0,\n it = exports.VK_FORMAT_R4G4_UNORM_PACK8 = 1,\n st = exports.VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,\n at = exports.VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,\n rt = exports.VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,\n ot = exports.VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,\n lt = exports.VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,\n ft = exports.VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,\n Ut = exports.VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,\n ct = exports.VK_FORMAT_R8_UNORM = 9,\n ht = exports.VK_FORMAT_R8_SNORM = 10,\n _t = exports.VK_FORMAT_R8_UINT = 13,\n pt = exports.VK_FORMAT_R8_SINT = 14,\n gt = exports.VK_FORMAT_R8_SRGB = 15,\n yt = exports.VK_FORMAT_R8G8_UNORM = 16,\n xt = exports.VK_FORMAT_R8G8_SNORM = 17,\n ut = exports.VK_FORMAT_R8G8_UINT = 20,\n bt = exports.VK_FORMAT_R8G8_SINT = 21,\n dt = exports.VK_FORMAT_R8G8_SRGB = 22,\n mt = exports.VK_FORMAT_R8G8B8_UNORM = 23,\n wt = exports.VK_FORMAT_R8G8B8_SNORM = 24,\n Dt = exports.VK_FORMAT_R8G8B8_UINT = 27,\n Bt = exports.VK_FORMAT_R8G8B8_SINT = 28,\n Lt = exports.VK_FORMAT_R8G8B8_SRGB = 29,\n At = exports.VK_FORMAT_B8G8R8_UNORM = 30,\n kt = exports.VK_FORMAT_B8G8R8_SNORM = 31,\n vt = exports.VK_FORMAT_B8G8R8_UINT = 34,\n St = exports.VK_FORMAT_B8G8R8_SINT = 35,\n It = exports.VK_FORMAT_B8G8R8_SRGB = 36,\n Ot = exports.VK_FORMAT_R8G8B8A8_UNORM = 37,\n Tt = exports.VK_FORMAT_R8G8B8A8_SNORM = 38,\n Vt = exports.VK_FORMAT_R8G8B8A8_UINT = 41,\n Et = exports.VK_FORMAT_R8G8B8A8_SINT = 42,\n Ft = exports.VK_FORMAT_R8G8B8A8_SRGB = 43,\n Pt = exports.VK_FORMAT_B8G8R8A8_UNORM = 44,\n Ct = exports.VK_FORMAT_B8G8R8A8_SNORM = 45,\n zt = exports.VK_FORMAT_B8G8R8A8_UINT = 48,\n Mt = exports.VK_FORMAT_B8G8R8A8_SINT = 49,\n Wt = exports.VK_FORMAT_B8G8R8A8_SRGB = 50,\n Nt = exports.VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,\n Ht = exports.VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,\n Kt = exports.VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,\n Xt = exports.VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,\n jt = exports.VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,\n Rt = exports.VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,\n Yt = exports.VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,\n qt = exports.VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,\n Gt = exports.VK_FORMAT_R16_UNORM = 70,\n Jt = exports.VK_FORMAT_R16_SNORM = 71,\n Qt = exports.VK_FORMAT_R16_UINT = 74,\n Zt = exports.VK_FORMAT_R16_SINT = 75,\n $t = exports.VK_FORMAT_R16_SFLOAT = 76,\n te = exports.VK_FORMAT_R16G16_UNORM = 77,\n ee = exports.VK_FORMAT_R16G16_SNORM = 78,\n ne = exports.VK_FORMAT_R16G16_UINT = 81,\n ie = exports.VK_FORMAT_R16G16_SINT = 82,\n se = exports.VK_FORMAT_R16G16_SFLOAT = 83,\n ae = exports.VK_FORMAT_R16G16B16_UNORM = 84,\n re = exports.VK_FORMAT_R16G16B16_SNORM = 85,\n oe = exports.VK_FORMAT_R16G16B16_UINT = 88,\n le = exports.VK_FORMAT_R16G16B16_SINT = 89,\n fe = exports.VK_FORMAT_R16G16B16_SFLOAT = 90,\n Ue = exports.VK_FORMAT_R16G16B16A16_UNORM = 91,\n ce = exports.VK_FORMAT_R16G16B16A16_SNORM = 92,\n he = exports.VK_FORMAT_R16G16B16A16_UINT = 95,\n _e = exports.VK_FORMAT_R16G16B16A16_SINT = 96,\n pe = exports.VK_FORMAT_R16G16B16A16_SFLOAT = 97,\n ge = exports.VK_FORMAT_R32_UINT = 98,\n ye = exports.VK_FORMAT_R32_SINT = 99,\n xe = exports.VK_FORMAT_R32_SFLOAT = 100,\n ue = exports.VK_FORMAT_R32G32_UINT = 101,\n be = exports.VK_FORMAT_R32G32_SINT = 102,\n de = exports.VK_FORMAT_R32G32_SFLOAT = 103,\n me = exports.VK_FORMAT_R32G32B32_UINT = 104,\n we = exports.VK_FORMAT_R32G32B32_SINT = 105,\n De = exports.VK_FORMAT_R32G32B32_SFLOAT = 106,\n Be = exports.VK_FORMAT_R32G32B32A32_UINT = 107,\n Le = exports.VK_FORMAT_R32G32B32A32_SINT = 108,\n Ae = exports.VK_FORMAT_R32G32B32A32_SFLOAT = 109,\n ke = exports.VK_FORMAT_R64_UINT = 110,\n ve = exports.VK_FORMAT_R64_SINT = 111,\n Se = exports.VK_FORMAT_R64_SFLOAT = 112,\n Ie = exports.VK_FORMAT_R64G64_UINT = 113,\n Oe = exports.VK_FORMAT_R64G64_SINT = 114,\n Te = exports.VK_FORMAT_R64G64_SFLOAT = 115,\n Ve = exports.VK_FORMAT_R64G64B64_UINT = 116,\n Ee = exports.VK_FORMAT_R64G64B64_SINT = 117,\n Fe = exports.VK_FORMAT_R64G64B64_SFLOAT = 118,\n Pe = exports.VK_FORMAT_R64G64B64A64_UINT = 119,\n Ce = exports.VK_FORMAT_R64G64B64A64_SINT = 120,\n ze = exports.VK_FORMAT_R64G64B64A64_SFLOAT = 121,\n Me = exports.VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,\n We = exports.VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,\n Ne = exports.VK_FORMAT_D16_UNORM = 124,\n He = exports.VK_FORMAT_X8_D24_UNORM_PACK32 = 125,\n Ke = exports.VK_FORMAT_D32_SFLOAT = 126,\n Xe = exports.VK_FORMAT_S8_UINT = 127,\n je = exports.VK_FORMAT_D16_UNORM_S8_UINT = 128,\n Re = exports.VK_FORMAT_D24_UNORM_S8_UINT = 129,\n Ye = exports.VK_FORMAT_D32_SFLOAT_S8_UINT = 130,\n qe = exports.VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,\n Ge = exports.VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,\n Je = exports.VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,\n Qe = exports.VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,\n Ze = exports.VK_FORMAT_BC2_UNORM_BLOCK = 135,\n $e = exports.VK_FORMAT_BC2_SRGB_BLOCK = 136,\n tn = exports.VK_FORMAT_BC3_UNORM_BLOCK = 137,\n en = exports.VK_FORMAT_BC3_SRGB_BLOCK = 138,\n nn = exports.VK_FORMAT_BC4_UNORM_BLOCK = 139,\n sn = exports.VK_FORMAT_BC4_SNORM_BLOCK = 140,\n an = exports.VK_FORMAT_BC5_UNORM_BLOCK = 141,\n rn = exports.VK_FORMAT_BC5_SNORM_BLOCK = 142,\n on = exports.VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,\n ln = exports.VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,\n fn = exports.VK_FORMAT_BC7_UNORM_BLOCK = 145,\n Un = exports.VK_FORMAT_BC7_SRGB_BLOCK = 146,\n cn = exports.VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,\n hn = exports.VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,\n _n = exports.VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,\n pn = exports.VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,\n gn = exports.VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,\n yn = exports.VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,\n xn = exports.VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,\n un = exports.VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,\n bn = exports.VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,\n dn = exports.VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,\n mn = exports.VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,\n wn = exports.VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,\n Dn = exports.VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,\n Bn = exports.VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,\n Ln = exports.VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,\n An = exports.VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,\n kn = exports.VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,\n vn = exports.VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,\n Sn = exports.VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,\n In = exports.VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,\n On = exports.VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,\n Tn = exports.VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,\n Vn = exports.VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,\n En = exports.VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,\n Fn = exports.VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,\n Pn = exports.VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,\n Cn = exports.VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,\n zn = exports.VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,\n Mn = exports.VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,\n Wn = exports.VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,\n Nn = exports.VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,\n Hn = exports.VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,\n Kn = exports.VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,\n Xn = exports.VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,\n jn = exports.VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,\n Rn = exports.VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,\n Yn = exports.VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,\n qn = exports.VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,\n Gn = exports.VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,\n Jn = exports.VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,\n Qn = exports.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,\n Zn = exports.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,\n $n = exports.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,\n ti = exports.VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,\n ei = exports.VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,\n ni = exports.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,\n ii = exports.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,\n si = exports.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,\n ai = exports.VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054e3,\n ri = exports.VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,\n oi = exports.VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,\n li = exports.VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,\n fi = exports.VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,\n Ui = exports.VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,\n ci = exports.VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,\n hi = exports.VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,\n _i = exports.VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066e3,\n pi = exports.VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001,\n gi = exports.VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002,\n yi = exports.VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003,\n xi = exports.VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004,\n ui = exports.VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005,\n bi = exports.VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006,\n di = exports.VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007,\n mi = exports.VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008,\n wi = exports.VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009,\n Di = exports.VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010,\n Bi = exports.VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011,\n Li = exports.VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012,\n Ai = exports.VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013,\n ki = exports.VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 100034e4,\n vi = exports.VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001;\n var Si = exports.KTX2Container = (0, _createClass2.default)(function Si() {\n (0, _classCallCheck2.default)(this, Si);\n this.vkFormat = 0, this.typeSize = 1, this.pixelWidth = 0, this.pixelHeight = 0, this.pixelDepth = 0, this.layerCount = 0, this.faceCount = 1, this.supercompressionScheme = 0, this.levels = [], this.dataFormatDescriptor = [{\n vendorId: 0,\n descriptorType: 0,\n descriptorBlockSize: 0,\n versionNumber: 2,\n colorModel: 0,\n colorPrimaries: 1,\n transferFunction: 2,\n flags: 0,\n texelBlockDimension: [0, 0, 0, 0],\n bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0],\n samples: [] }],\n this.keyValue = {}, this.globalData = null;\n });\n var Ii = function () {\n function Ii(t, e, n, i) {\n (0, _classCallCheck2.default)(this, Ii);\n this._dataView = new DataView(t.buffer, t.byteOffset + e, n), this._littleEndian = i, this._offset = 0;\n }\n (0, _createClass2.default)(Ii, [{\n key: \"_nextUint8\",\n value: function _nextUint8() {\n var t = this._dataView.getUint8(this._offset);\n return this._offset += 1, t;\n } },\n {\n key: \"_nextUint16\",\n value: function _nextUint16() {\n var t = this._dataView.getUint16(this._offset, this._littleEndian);\n return this._offset += 2, t;\n } },\n {\n key: \"_nextUint32\",\n value: function _nextUint32() {\n var t = this._dataView.getUint32(this._offset, this._littleEndian);\n return this._offset += 4, t;\n } },\n {\n key: \"_nextUint64\",\n value: function _nextUint64() {\n var t = this._dataView.getUint32(this._offset, this._littleEndian) + Math.pow(2, 32) * this._dataView.getUint32(this._offset + 4, this._littleEndian);\n return this._offset += 8, t;\n } },\n {\n key: \"_nextInt32\",\n value: function _nextInt32() {\n var t = this._dataView.getInt32(this._offset, this._littleEndian);\n return this._offset += 4, t;\n } },\n {\n key: \"_skip\",\n value: function _skip(t) {\n return this._offset += t, this;\n } },\n {\n key: \"_scan\",\n value: function _scan(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var n = this._offset;\n var i = 0;\n for (; this._dataView.getUint8(this._offset) !== e && i < t;) i++, this._offset++;\n return i < t && this._offset++, new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + n, i);\n } }]);\n\n return Ii;\n }();\n var Oi = new Uint8Array([0]),\n Ti = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];\n function Vi(t) {\n return \"undefined\" != typeof TextEncoder ? new TextEncoder().encode(t) : Buffer.from(t);\n }\n function Ei(t) {\n return \"undefined\" != typeof TextDecoder ? new TextDecoder().decode(t) : Buffer.from(t).toString(\"utf8\");\n }\n function Fi(t) {\n var e = 0;\n var _iterator = (0, _createForOfIteratorHelper2.default)(t),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _n2 = _step.value;\n e += _n2.byteLength;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var n = new Uint8Array(e);\n var i = 0;\n var _iterator2 = (0, _createForOfIteratorHelper2.default)(t),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _e2 = _step2.value;\n n.set(new Uint8Array(_e2), i), i += _e2.byteLength;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return n;\n }\n function Pi(t) {\n var e = new Uint8Array(t.buffer, t.byteOffset, Ti.length);\n if (e[0] !== Ti[0] || e[1] !== Ti[1] || e[2] !== Ti[2] || e[3] !== Ti[3] || e[4] !== Ti[4] || e[5] !== Ti[5] || e[6] !== Ti[6] || e[7] !== Ti[7] || e[8] !== Ti[8] || e[9] !== Ti[9] || e[10] !== Ti[10] || e[11] !== Ti[11]) throw new Error(\"Missing KTX 2.0 identifier.\");\n var n = new Si(),\n i = 17 * Uint32Array.BYTES_PER_ELEMENT,\n s = new Ii(t, Ti.length, i, !0);\n n.vkFormat = s._nextUint32(), n.typeSize = s._nextUint32(), n.pixelWidth = s._nextUint32(), n.pixelHeight = s._nextUint32(), n.pixelDepth = s._nextUint32(), n.layerCount = s._nextUint32(), n.faceCount = s._nextUint32();\n var a = s._nextUint32();\n n.supercompressionScheme = s._nextUint32();\n var r = s._nextUint32(),\n o = s._nextUint32(),\n l = s._nextUint32(),\n f = s._nextUint32(),\n U = s._nextUint64(),\n c = s._nextUint64(),\n h = new Ii(t, Ti.length + i, 3 * a * 8, !0);\n for (var _e3 = 0; _e3 < a; _e3++) n.levels.push({\n levelData: new Uint8Array(t.buffer, t.byteOffset + h._nextUint64(), h._nextUint64()),\n uncompressedByteLength: h._nextUint64() });\n\n var _ = new Ii(t, r, o, !0),\n p = {\n vendorId: _._skip(4)._nextUint16(),\n descriptorType: _._nextUint16(),\n versionNumber: _._nextUint16(),\n descriptorBlockSize: _._nextUint16(),\n colorModel: _._nextUint8(),\n colorPrimaries: _._nextUint8(),\n transferFunction: _._nextUint8(),\n flags: _._nextUint8(),\n texelBlockDimension: [_._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8()],\n bytesPlane: [_._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8()],\n samples: [] },\n\n g = (p.descriptorBlockSize / 4 - 6) / 4;\n for (var _t2 = 0; _t2 < g; _t2++) {\n var _e4 = {\n bitOffset: _._nextUint16(),\n bitLength: _._nextUint8(),\n channelType: _._nextUint8(),\n samplePosition: [_._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8()],\n sampleLower: -Infinity,\n sampleUpper: Infinity };\n\n 64 & _e4.channelType ? (_e4.sampleLower = _._nextInt32(), _e4.sampleUpper = _._nextInt32()) : (_e4.sampleLower = _._nextUint32(), _e4.sampleUpper = _._nextUint32()), p.samples[_t2] = _e4;\n }\n n.dataFormatDescriptor.length = 0, n.dataFormatDescriptor.push(p);\n var y = new Ii(t, l, f, !0);\n for (; y._offset < f;) {\n var _t3 = y._nextUint32(),\n _e5 = y._scan(_t3),\n _i2 = Ei(_e5),\n _s = y._scan(_t3 - _e5.byteLength);\n n.keyValue[_i2] = _i2.match(/^ktx/i) ? Ei(_s) : _s, y._offset % 4 && y._skip(4 - y._offset % 4);\n }\n if (c <= 0) return n;\n var x = new Ii(t, U, c, !0),\n u = x._nextUint16(),\n b = x._nextUint16(),\n d = x._nextUint32(),\n m = x._nextUint32(),\n w = x._nextUint32(),\n D = x._nextUint32(),\n B = [];\n for (var _t4 = 0; _t4 < a; _t4++) B.push({\n imageFlags: x._nextUint32(),\n rgbSliceByteOffset: x._nextUint32(),\n rgbSliceByteLength: x._nextUint32(),\n alphaSliceByteOffset: x._nextUint32(),\n alphaSliceByteLength: x._nextUint32() });\n\n var L = U + x._offset,\n A = L + d,\n k = A + m,\n v = k + w,\n S = new Uint8Array(t.buffer, t.byteOffset + L, d),\n I = new Uint8Array(t.buffer, t.byteOffset + A, m),\n O = new Uint8Array(t.buffer, t.byteOffset + k, w),\n T = new Uint8Array(t.buffer, t.byteOffset + v, D);\n return n.globalData = {\n endpointCount: u,\n selectorCount: b,\n imageDescs: B,\n endpointsData: S,\n selectorsData: I,\n tablesData: O,\n extendedData: T },\n n;\n }\n function Ci() {\n return (Ci = Object.assign || function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e];\n for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i]);\n }\n return t;\n }).apply(this, arguments);\n }\n var zi = {\n keepWriter: !1 };\n\n function Mi(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n e = Ci({}, zi, e);\n var n = new ArrayBuffer(0);\n if (t.globalData) {\n var _e6 = new ArrayBuffer(20 + 5 * t.globalData.imageDescs.length * 4),\n _i3 = new DataView(_e6);\n _i3.setUint16(0, t.globalData.endpointCount, !0), _i3.setUint16(2, t.globalData.selectorCount, !0), _i3.setUint32(4, t.globalData.endpointsData.byteLength, !0), _i3.setUint32(8, t.globalData.selectorsData.byteLength, !0), _i3.setUint32(12, t.globalData.tablesData.byteLength, !0), _i3.setUint32(16, t.globalData.extendedData.byteLength, !0);\n for (var _e7 = 0; _e7 < t.globalData.imageDescs.length; _e7++) {\n var _n3 = t.globalData.imageDescs[_e7];\n _i3.setUint32(20 + 5 * _e7 * 4 + 0, _n3.imageFlags, !0), _i3.setUint32(20 + 5 * _e7 * 4 + 4, _n3.rgbSliceByteOffset, !0), _i3.setUint32(20 + 5 * _e7 * 4 + 8, _n3.rgbSliceByteLength, !0), _i3.setUint32(20 + 5 * _e7 * 4 + 12, _n3.alphaSliceByteOffset, !0), _i3.setUint32(20 + 5 * _e7 * 4 + 16, _n3.alphaSliceByteLength, !0);\n }\n n = Fi([_e6, t.globalData.endpointsData, t.globalData.selectorsData, t.globalData.tablesData, t.globalData.extendedData]);\n }\n var i = [];\n var s = t.keyValue;\n e.keepWriter || (s = Ci({}, t.keyValue, {\n KTXwriter: \"KTX-Parse v0.3.1\" }));\n\n for (var _t5 in s) {\n var _e8 = s[_t5],\n _n4 = Vi(_t5),\n _a = \"string\" == typeof _e8 ? Vi(_e8) : _e8,\n _r = _n4.byteLength + 1 + _a.byteLength + 1,\n _o = _r % 4 ? 4 - _r % 4 : 0;\n i.push(Fi([new Uint32Array([_r]), _n4, Oi, _a, Oi, new Uint8Array(_o).fill(0)]));\n }\n var a = Fi(i);\n if (1 !== t.dataFormatDescriptor.length || 0 !== t.dataFormatDescriptor[0].descriptorType) throw new Error(\"Only BASICFORMAT Data Format Descriptor output supported.\");\n var r = t.dataFormatDescriptor[0],\n o = new ArrayBuffer(28 + 16 * r.samples.length),\n l = new DataView(o),\n f = 24 + 16 * r.samples.length;\n if (l.setUint32(0, o.byteLength, !0), l.setUint16(4, r.vendorId, !0), l.setUint16(6, r.descriptorType, !0), l.setUint16(8, r.versionNumber, !0), l.setUint16(10, f, !0), l.setUint8(12, r.colorModel), l.setUint8(13, r.colorPrimaries), l.setUint8(14, r.transferFunction), l.setUint8(15, r.flags), !Array.isArray(r.texelBlockDimension)) throw new Error(\"texelBlockDimension is now an array. For dimensionality `d`, set `d - 1`.\");\n l.setUint8(16, r.texelBlockDimension[0]), l.setUint8(17, r.texelBlockDimension[1]), l.setUint8(18, r.texelBlockDimension[2]), l.setUint8(19, r.texelBlockDimension[3]);\n for (var _t6 = 0; _t6 < 8; _t6++) l.setUint8(20 + _t6, r.bytesPlane[_t6]);\n for (var _t7 = 0; _t7 < r.samples.length; _t7++) {\n var _e9 = r.samples[_t7],\n _n5 = 28 + 16 * _t7;\n if (_e9.channelID) throw new Error(\"channelID has been renamed to channelType.\");\n l.setUint16(_n5 + 0, _e9.bitOffset, !0), l.setUint8(_n5 + 2, _e9.bitLength), l.setUint8(_n5 + 3, _e9.channelType), l.setUint8(_n5 + 4, _e9.samplePosition[0]), l.setUint8(_n5 + 5, _e9.samplePosition[1]), l.setUint8(_n5 + 6, _e9.samplePosition[2]), l.setUint8(_n5 + 7, _e9.samplePosition[3]), 64 & _e9.channelType ? (l.setInt32(_n5 + 8, _e9.sampleLower, !0), l.setInt32(_n5 + 12, _e9.sampleUpper, !0)) : (l.setUint32(_n5 + 8, _e9.sampleLower, !0), l.setUint32(_n5 + 12, _e9.sampleUpper, !0));\n }\n var U = Ti.length + 68 + 3 * t.levels.length * 8,\n c = U + o.byteLength;\n var h = n.byteLength > 0 ? c + a.byteLength : 0;\n h % 8 && (h += 8 - h % 8);\n var _ = [],\n p = new DataView(new ArrayBuffer(3 * t.levels.length * 8));\n var g = (h || c + a.byteLength) + n.byteLength;\n for (var _e10 = 0; _e10 < t.levels.length; _e10++) {\n var _n6 = t.levels[_e10];\n _.push(_n6.levelData), p.setBigUint64(24 * _e10 + 0, BigInt(g), !0), p.setBigUint64(24 * _e10 + 8, BigInt(_n6.levelData.byteLength), !0), p.setBigUint64(24 * _e10 + 16, BigInt(_n6.uncompressedByteLength), !0), g += _n6.levelData.byteLength;\n }\n var y = new ArrayBuffer(68),\n x = new DataView(y);\n return x.setUint32(0, t.vkFormat, !0), x.setUint32(4, t.typeSize, !0), x.setUint32(8, t.pixelWidth, !0), x.setUint32(12, t.pixelHeight, !0), x.setUint32(16, t.pixelDepth, !0), x.setUint32(20, t.layerCount, !0), x.setUint32(24, t.faceCount, !0), x.setUint32(28, t.levels.length, !0), x.setUint32(32, t.supercompressionScheme, !0), x.setUint32(36, U, !0), x.setUint32(40, o.byteLength, !0), x.setUint32(44, c, !0), x.setUint32(48, a.byteLength, !0), x.setBigUint64(52, BigInt(n.byteLength > 0 ? h : 0), !0), x.setBigUint64(60, BigInt(n.byteLength), !0), new Uint8Array(Fi([new Uint8Array(Ti).buffer, y, p.buffer, o, a, h > 0 ? new ArrayBuffer(h - (c + a.byteLength)) : new ArrayBuffer(0), n].concat(_)));\n }return module.exports;});", "requires": [], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/libsmod", "outputPath": "/com/three/0.145.0/examples/jsm/libsmod/ktx-parse.module.js", "fileName": "/examples/jsm/libsmod/ktx-parse.module.js" }, "pandav:/examples/jsm/loaders/DDSLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/loaders/DDSLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DDSLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var DDSLoader = exports.DDSLoader = function (_CompressedTextureLoa) {\n (0, _inherits2.default)(DDSLoader, _CompressedTextureLoa);\n var _super = (0, _createSuper2.default)(DDSLoader);\n function DDSLoader(manager) {\n (0, _classCallCheck2.default)(this, DDSLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(DDSLoader, [{\n key: \"parse\",\n value: function parse(buffer, loadMipmaps) {\n var dds = {\n mipmaps: [],\n width: 0,\n height: 0,\n format: null,\n mipmapCount: 1 };\n\n var DDS_MAGIC = 0x20534444;\n var DDSD_MIPMAPCOUNT = 0x20000;\n var DDSCAPS2_CUBEMAP = 0x200;\n var DDSCAPS2_CUBEMAP_POSITIVEX = 0x400;\n var DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800;\n var DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000;\n var DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000;\n var DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000;\n var DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000;\n function fourCCToInt32(value) {\n return value.charCodeAt(0) + (value.charCodeAt(1) << 8) + (value.charCodeAt(2) << 16) + (value.charCodeAt(3) << 24);\n }\n function int32ToFourCC(value) {\n return String.fromCharCode(value & 0xff, value >> 8 & 0xff, value >> 16 & 0xff, value >> 24 & 0xff);\n }\n function loadARGBMip(buffer, dataOffset, width, height) {\n var dataLength = width * height * 4;\n var srcBuffer = new Uint8Array(buffer, dataOffset, dataLength);\n var byteArray = new Uint8Array(dataLength);\n var dst = 0;\n var src = 0;\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var b = srcBuffer[src];\n src++;\n var g = srcBuffer[src];\n src++;\n var r = srcBuffer[src];\n src++;\n var a = srcBuffer[src];\n src++;\n byteArray[dst] = r;\n dst++;\n byteArray[dst] = g;\n dst++;\n byteArray[dst] = b;\n dst++;\n byteArray[dst] = a;\n dst++;\n }\n }\n return byteArray;\n }\n var FOURCC_DXT1 = fourCCToInt32(\"DXT1\");\n var FOURCC_DXT3 = fourCCToInt32(\"DXT3\");\n var FOURCC_DXT5 = fourCCToInt32(\"DXT5\");\n var FOURCC_ETC1 = fourCCToInt32(\"ETC1\");\n var headerLengthInt = 31;\n var off_magic = 0;\n var off_size = 1;\n var off_flags = 2;\n var off_height = 3;\n var off_width = 4;\n var off_mipmapCount = 7;\n var off_pfFourCC = 21;\n var off_RGBBitCount = 22;\n var off_RBitMask = 23;\n var off_GBitMask = 24;\n var off_BBitMask = 25;\n var off_ABitMask = 26;\n var off_caps2 = 28;\n var header = new Int32Array(buffer, 0, headerLengthInt);\n if (header[off_magic] !== DDS_MAGIC) {\n console.error(\"THREE.DDSLoader.parse: Invalid magic number in DDS header.\");\n return dds;\n }\n var blockBytes;\n var fourCC = header[off_pfFourCC];\n var isRGBAUncompressed = false;\n switch (fourCC) {\n case FOURCC_DXT1:\n blockBytes = 8;\n dds.format = _Three.RGB_S3TC_DXT1_Format;\n break;\n case FOURCC_DXT3:\n blockBytes = 16;\n dds.format = _Three.RGBA_S3TC_DXT3_Format;\n break;\n case FOURCC_DXT5:\n blockBytes = 16;\n dds.format = _Three.RGBA_S3TC_DXT5_Format;\n break;\n case FOURCC_ETC1:\n blockBytes = 8;\n dds.format = _Three.RGB_ETC1_Format;\n break;\n default:\n if (header[off_RGBBitCount] === 32 && header[off_RBitMask] & 0xff0000 && header[off_GBitMask] & 0xff00 && header[off_BBitMask] & 0xff && header[off_ABitMask] & 0xff000000) {\n isRGBAUncompressed = true;\n blockBytes = 64;\n dds.format = _Three.RGBAFormat;\n } else {\n console.error(\"THREE.DDSLoader.parse: Unsupported FourCC code \", int32ToFourCC(fourCC));\n return dds;\n }}\n\n dds.mipmapCount = 1;\n if (header[off_flags] & DDSD_MIPMAPCOUNT && loadMipmaps !== false) {\n dds.mipmapCount = Math.max(1, header[off_mipmapCount]);\n }\n var caps2 = header[off_caps2];\n dds.isCubemap = caps2 & DDSCAPS2_CUBEMAP ? true : false;\n if (dds.isCubemap && (!(caps2 & DDSCAPS2_CUBEMAP_POSITIVEX) || !(caps2 & DDSCAPS2_CUBEMAP_NEGATIVEX) || !(caps2 & DDSCAPS2_CUBEMAP_POSITIVEY) || !(caps2 & DDSCAPS2_CUBEMAP_NEGATIVEY) || !(caps2 & DDSCAPS2_CUBEMAP_POSITIVEZ) || !(caps2 & DDSCAPS2_CUBEMAP_NEGATIVEZ))) {\n console.error(\"THREE.DDSLoader.parse: Incomplete cubemap faces\");\n return dds;\n }\n dds.width = header[off_width];\n dds.height = header[off_height];\n var dataOffset = header[off_size] + 4;\n var faces = dds.isCubemap ? 6 : 1;\n for (var face = 0; face < faces; face++) {\n var width = dds.width;\n var height = dds.height;\n for (var i = 0; i < dds.mipmapCount; i++) {\n var byteArray = void 0,\n dataLength = void 0;\n if (isRGBAUncompressed) {\n byteArray = loadARGBMip(buffer, dataOffset, width, height);\n dataLength = byteArray.length;\n } else {\n dataLength = Math.max(4, width) / 4 * Math.max(4, height) / 4 * blockBytes;\n byteArray = new Uint8Array(buffer, dataOffset, dataLength);\n }\n var mipmap = {\n data: byteArray,\n width: width,\n height: height };\n\n dds.mipmaps.push(mipmap);\n dataOffset += dataLength;\n width = Math.max(width >> 1, 1);\n height = Math.max(height >> 1, 1);\n }\n }\n return dds;\n } }]);\n\n return DDSLoader;\n }(_Three.CompressedTextureLoader);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/loaders", "outputPath": "/com/three/0.145.0/examples/jsm/loaders/DDSLoader.js", "fileName": "/examples/jsm/loaders/DDSLoader.js" }, "pandav:/examples/jsm/lines/LineSegmentsGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/lines/LineSegmentsGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineSegmentsGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _box = new _Three.Box3();\n var _vector = new _Three.Vector3();\n var LineSegmentsGeometry = exports.LineSegmentsGeometry = function (_InstancedBufferGeome) {\n (0, _inherits2.default)(LineSegmentsGeometry, _InstancedBufferGeome);\n var _super = (0, _createSuper2.default)(LineSegmentsGeometry);\n function LineSegmentsGeometry() {\n var _this;\n (0, _classCallCheck2.default)(this, LineSegmentsGeometry);\n _this = _super.call(this);\n _this.isLineSegmentsGeometry = true;\n _this.type = \"LineSegmentsGeometry\";\n var positions = [-1, 2, 0, 1, 2, 0, -1, 1, 0, 1, 1, 0, -1, 0, 0, 1, 0, 0, -1, -1, 0, 1, -1, 0];\n var uvs = [-1, 2, 1, 2, -1, 1, 1, 1, -1, -1, 1, -1, -1, -2, 1, -2];\n var index = [0, 2, 1, 2, 3, 1, 2, 4, 3, 4, 5, 3, 4, 6, 5, 6, 7, 5];\n _this.setIndex(index);\n _this.setAttribute(\"position\", new _Three.Float32BufferAttribute(positions, 3));\n _this.setAttribute(\"uv\", new _Three.Float32BufferAttribute(uvs, 2));\n return _this;\n }\n (0, _createClass2.default)(LineSegmentsGeometry, [{\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n var start = this.attributes.instanceStart;\n var end = this.attributes.instanceEnd;\n if (start !== undefined) {\n start.applyMatrix4(matrix);\n end.applyMatrix4(matrix);\n start.needsUpdate = true;\n }\n if (this.boundingBox !== null) {\n this.computeBoundingBox();\n }\n if (this.boundingSphere !== null) {\n this.computeBoundingSphere();\n }\n return this;\n } },\n {\n key: \"setPositions\",\n value: function setPositions(array) {\n var lineSegments;\n if (array instanceof Float32Array) {\n lineSegments = array;\n } else if (Array.isArray(array)) {\n lineSegments = new Float32Array(array);\n }\n var instanceBuffer = new _Three.InstancedInterleavedBuffer(lineSegments, 6, 1);\n this.setAttribute(\"instanceStart\", new _Three.InterleavedBufferAttribute(instanceBuffer, 3, 0));\n this.setAttribute(\"instanceEnd\", new _Three.InterleavedBufferAttribute(instanceBuffer, 3, 3));\n this.computeBoundingBox();\n this.computeBoundingSphere();\n return this;\n } },\n {\n key: \"setColors\",\n value: function setColors(array) {\n var colors;\n if (array instanceof Float32Array) {\n colors = array;\n } else if (Array.isArray(array)) {\n colors = new Float32Array(array);\n }\n var instanceColorBuffer = new _Three.InstancedInterleavedBuffer(colors, 6, 1);\n this.setAttribute(\"instanceColorStart\", new _Three.InterleavedBufferAttribute(instanceColorBuffer, 3, 0));\n this.setAttribute(\"instanceColorEnd\", new _Three.InterleavedBufferAttribute(instanceColorBuffer, 3, 3));\n return this;\n } },\n {\n key: \"fromWireframeGeometry\",\n value: function fromWireframeGeometry(geometry) {\n this.setPositions(geometry.attributes.position.array);\n return this;\n } },\n {\n key: \"fromEdgesGeometry\",\n value: function fromEdgesGeometry(geometry) {\n this.setPositions(geometry.attributes.position.array);\n return this;\n } },\n {\n key: \"fromMesh\",\n value: function fromMesh(mesh) {\n this.fromWireframeGeometry(new _Three.WireframeGeometry(mesh.geometry));\n return this;\n } },\n {\n key: \"fromLineSegments\",\n value: function fromLineSegments(lineSegments) {\n var geometry = lineSegments.geometry;\n this.setPositions(geometry.attributes.position.array);\n return this;\n } },\n {\n key: \"computeBoundingBox\",\n value: function computeBoundingBox() {\n if (this.boundingBox === null) {\n this.boundingBox = new _Three.Box3();\n }\n var start = this.attributes.instanceStart;\n var end = this.attributes.instanceEnd;\n if (start !== undefined && end !== undefined) {\n this.boundingBox.setFromBufferAttribute(start);\n _box.setFromBufferAttribute(end);\n this.boundingBox.union(_box);\n }\n } },\n {\n key: \"computeBoundingSphere\",\n value: function computeBoundingSphere() {\n if (this.boundingSphere === null) {\n this.boundingSphere = new _Three.Sphere();\n }\n if (this.boundingBox === null) {\n this.computeBoundingBox();\n }\n var start = this.attributes.instanceStart;\n var end = this.attributes.instanceEnd;\n if (start !== undefined && end !== undefined) {\n var center = this.boundingSphere.center;\n this.boundingBox.getCenter(center);\n var maxRadiusSq = 0;\n for (var i = 0, il = start.count; i < il; i++) {\n _vector.fromBufferAttribute(start, i);\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector));\n _vector.fromBufferAttribute(end, i);\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector));\n }\n this.boundingSphere.radius = Math.sqrt(maxRadiusSq);\n if (isNaN(this.boundingSphere.radius)) {\n console.error(\"THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.\", this);\n }\n }\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {} },\n {\n key: \"applyMatrix\",\n value: function applyMatrix(matrix) {\n console.warn(\"THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4().\");\n return this.applyMatrix4(matrix);\n } }]);\n\n return LineSegmentsGeometry;\n }(_Three.InstancedBufferGeometry);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/lines", "outputPath": "/com/three/0.145.0/examples/jsm/lines/LineSegmentsGeometry.js", "fileName": "/examples/jsm/lines/LineSegmentsGeometry.js" }, "pandav:/examples/jsm/loaders/DRACOLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/loaders/DRACOLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DRACOLoader = void 0;\n var _typeof2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _taskCache = new WeakMap();\n var DRACOLoader = exports.DRACOLoader = function (_Loader) {\n (0, _inherits2.default)(DRACOLoader, _Loader);\n var _super = (0, _createSuper2.default)(DRACOLoader);\n function DRACOLoader(manager) {\n var _this;\n (0, _classCallCheck2.default)(this, DRACOLoader);\n _this = _super.call(this, manager);\n _this.decoderPath = \"\";\n _this.decoderConfig = {};\n _this.decoderBinary = null;\n _this.decoderPending = null;\n _this.workerLimit = 4;\n _this.workerPool = [];\n _this.workerNextTaskID = 1;\n _this.workerSourceURL = \"\";\n _this.defaultAttributeIDs = {\n position: \"POSITION\",\n normal: \"NORMAL\",\n color: \"COLOR\",\n uv: \"TEX_COORD\" };\n\n _this.defaultAttributeTypes = {\n position: \"Float32Array\",\n normal: \"Float32Array\",\n color: \"Float32Array\",\n uv: \"Float32Array\" };\n\n return _this;\n }\n (0, _createClass2.default)(DRACOLoader, [{\n key: \"setDecoderPath\",\n value: function setDecoderPath(path) {\n this.decoderPath = path;\n return this;\n } },\n {\n key: \"setDecoderConfig\",\n value: function setDecoderConfig(config) {\n this.decoderConfig = config;\n return this;\n } },\n {\n key: \"setWorkerLimit\",\n value: function setWorkerLimit(workerLimit) {\n this.workerLimit = workerLimit;\n return this;\n } },\n {\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var _this2 = this;\n var loader = new _Three.FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setResponseType(\"arraybuffer\");\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (buffer) {\n _this2.decodeDracoFile(buffer, onLoad).catch(onError);\n }, onProgress, onError);\n } },\n {\n key: \"decodeDracoFile\",\n value: function decodeDracoFile(buffer, callback, attributeIDs, attributeTypes) {\n var taskConfig = {\n attributeIDs: attributeIDs || this.defaultAttributeIDs,\n attributeTypes: attributeTypes || this.defaultAttributeTypes,\n useUniqueIDs: !!attributeIDs };\n\n return this.decodeGeometry(buffer, taskConfig).then(callback);\n } },\n {\n key: \"decodeGeometry\",\n value: function decodeGeometry(buffer, taskConfig) {\n var _this3 = this;\n var taskKey = JSON.stringify(taskConfig);\n if (_taskCache.has(buffer)) {\n var cachedTask = _taskCache.get(buffer);\n if (cachedTask.key === taskKey) {\n return cachedTask.promise;\n } else if (buffer.byteLength === 0) {\n throw new Error(\"THREE.DRACOLoader: Unable to re-decode a buffer with different \" + \"settings. Buffer has already been transferred.\");\n }\n }\n var worker;\n var taskID = this.workerNextTaskID++;\n var taskCost = buffer.byteLength;\n var geometryPending = this._getWorker(taskID, taskCost).then(function (_worker) {\n worker = _worker;\n return new Promise(function (resolve, reject) {\n worker._callbacks[taskID] = {\n resolve: resolve,\n reject: reject };\n\n worker.postMessage({\n type: \"decode\",\n id: taskID,\n taskConfig: taskConfig,\n buffer: buffer },\n [buffer]);\n });\n }).then(function (message) {\n return _this3._createGeometry(message.geometry);\n });\n geometryPending.catch(function () {\n return true;\n }).then(function () {\n if (worker && taskID) {\n _this3._releaseTask(worker, taskID);\n }\n });\n _taskCache.set(buffer, {\n key: taskKey,\n promise: geometryPending });\n\n return geometryPending;\n } },\n {\n key: \"_createGeometry\",\n value: function _createGeometry(geometryData) {\n var geometry = new _Three.BufferGeometry();\n if (geometryData.index) {\n geometry.setIndex(new _Three.BufferAttribute(geometryData.index.array, 1));\n }\n for (var i = 0; i < geometryData.attributes.length; i++) {\n var attribute = geometryData.attributes[i];\n var name = attribute.name;\n var array = attribute.array;\n var itemSize = attribute.itemSize;\n geometry.setAttribute(name, new _Three.BufferAttribute(array, itemSize));\n }\n return geometry;\n } },\n {\n key: \"_loadLibrary\",\n value: function _loadLibrary(url, responseType) {\n var loader = new _Three.FileLoader(this.manager);\n loader.setPath(this.decoderPath);\n loader.setResponseType(responseType);\n loader.setWithCredentials(this.withCredentials);\n return new Promise(function (resolve, reject) {\n loader.load(url, resolve, undefined, reject);\n });\n } },\n {\n key: \"preload\",\n value: function preload() {\n this._initDecoder();\n return this;\n } },\n {\n key: \"_initDecoder\",\n value: function _initDecoder() {\n var _this4 = this;\n if (this.decoderPending) return this.decoderPending;\n var useJS = (typeof WebAssembly === \"undefined\" ? \"undefined\" : (0, _typeof2.default)(WebAssembly)) !== \"object\" || this.decoderConfig.type === \"js\";\n var librariesPending = [];\n if (useJS) {\n librariesPending.push(this._loadLibrary(\"draco_decoder.js\", \"text\"));\n } else {\n librariesPending.push(this._loadLibrary(\"draco_wasm_wrapper.js\", \"text\"));\n librariesPending.push(this._loadLibrary(\"draco_decoder.wasm\", \"arraybuffer\"));\n }\n this.decoderPending = Promise.all(librariesPending).then(function (libraries) {\n var jsContent = libraries[0];\n if (!useJS) {\n _this4.decoderConfig.wasmBinary = libraries[1];\n }\n var fn = DRACOWorker.toString();\n var body = [\"/* draco decoder */\", jsContent, \"\", \"/* worker */\", fn.substring(fn.indexOf(\"{\") + 1, fn.lastIndexOf(\"}\"))].join(\"\\n\");\n _this4.workerSourceURL = URL.createObjectURL(new Blob([body]));\n });\n return this.decoderPending;\n } },\n {\n key: \"_getWorker\",\n value: function _getWorker(taskID, taskCost) {\n var _this5 = this;\n return this._initDecoder().then(function () {\n if (_this5.workerPool.length < _this5.workerLimit) {\n var _worker2 = new Worker(_this5.workerSourceURL);\n _worker2._callbacks = {};\n _worker2._taskCosts = {};\n _worker2._taskLoad = 0;\n _worker2.postMessage({\n type: \"init\",\n decoderConfig: _this5.decoderConfig });\n\n _worker2.onmessage = function (e) {\n var message = e.data;\n switch (message.type) {\n case \"decode\":\n _worker2._callbacks[message.id].resolve(message);\n break;\n case \"error\":\n _worker2._callbacks[message.id].reject(message);\n break;\n default:\n console.error('THREE.DRACOLoader: Unexpected message, \"' + message.type + '\"');}\n\n };\n _this5.workerPool.push(_worker2);\n } else {\n _this5.workerPool.sort(function (a, b) {\n return a._taskLoad > b._taskLoad ? -1 : 1;\n });\n }\n var worker = _this5.workerPool[_this5.workerPool.length - 1];\n worker._taskCosts[taskID] = taskCost;\n worker._taskLoad += taskCost;\n return worker;\n });\n } },\n {\n key: \"_releaseTask\",\n value: function _releaseTask(worker, taskID) {\n worker._taskLoad -= worker._taskCosts[taskID];\n delete worker._callbacks[taskID];\n delete worker._taskCosts[taskID];\n } },\n {\n key: \"debug\",\n value: function debug() {\n console.log(\"Task load: \", this.workerPool.map(function (worker) {\n return worker._taskLoad;\n }));\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n for (var i = 0; i < this.workerPool.length; ++i) {\n this.workerPool[i].terminate();\n }\n this.workerPool.length = 0;\n return this;\n } }]);\n\n return DRACOLoader;\n }(_Three.Loader);\n function DRACOWorker() {\n var decoderConfig;\n var decoderPending;\n onmessage = function onmessage(e) {\n var message = e.data;\n switch (message.type) {\n case \"init\":\n decoderConfig = message.decoderConfig;\n decoderPending = new Promise(function (resolve) {\n decoderConfig.onModuleLoaded = function (draco) {\n resolve({\n draco: draco });\n\n };\n DracoDecoderModule(decoderConfig);\n });\n break;\n case \"decode\":\n var buffer = message.buffer;\n var taskConfig = message.taskConfig;\n decoderPending.then(function (module) {\n var draco = module.draco;\n var decoder = new draco.Decoder();\n var decoderBuffer = new draco.DecoderBuffer();\n decoderBuffer.Init(new Int8Array(buffer), buffer.byteLength);\n try {\n var geometry = decodeGeometry(draco, decoder, decoderBuffer, taskConfig);\n var buffers = geometry.attributes.map(function (attr) {\n return attr.array.buffer;\n });\n if (geometry.index) buffers.push(geometry.index.array.buffer);\n self.postMessage({\n type: \"decode\",\n id: message.id,\n geometry: geometry },\n buffers);\n } catch (error) {\n console.error(error);\n self.postMessage({\n type: \"error\",\n id: message.id,\n error: error.message });\n\n } finally {\n draco.destroy(decoderBuffer);\n draco.destroy(decoder);\n }\n });\n break;}\n\n };\n function decodeGeometry(draco, decoder, decoderBuffer, taskConfig) {\n var attributeIDs = taskConfig.attributeIDs;\n var attributeTypes = taskConfig.attributeTypes;\n var dracoGeometry;\n var decodingStatus;\n var geometryType = decoder.GetEncodedGeometryType(decoderBuffer);\n if (geometryType === draco.TRIANGULAR_MESH) {\n dracoGeometry = new draco.Mesh();\n decodingStatus = decoder.DecodeBufferToMesh(decoderBuffer, dracoGeometry);\n } else if (geometryType === draco.POINT_CLOUD) {\n dracoGeometry = new draco.PointCloud();\n decodingStatus = decoder.DecodeBufferToPointCloud(decoderBuffer, dracoGeometry);\n } else {\n throw new Error(\"THREE.DRACOLoader: Unexpected geometry type.\");\n }\n if (!decodingStatus.ok() || dracoGeometry.ptr === 0) {\n throw new Error(\"THREE.DRACOLoader: Decoding failed: \" + decodingStatus.error_msg());\n }\n var geometry = {\n index: null,\n attributes: [] };\n\n for (var attributeName in attributeIDs) {\n var attributeType = self[attributeTypes[attributeName]];\n var attribute = void 0;\n var attributeID = void 0;\n if (taskConfig.useUniqueIDs) {\n attributeID = attributeIDs[attributeName];\n attribute = decoder.GetAttributeByUniqueId(dracoGeometry, attributeID);\n } else {\n attributeID = decoder.GetAttributeId(dracoGeometry, draco[attributeIDs[attributeName]]);\n if (attributeID === -1) continue;\n attribute = decoder.GetAttribute(dracoGeometry, attributeID);\n }\n geometry.attributes.push(decodeAttribute(draco, decoder, dracoGeometry, attributeName, attributeType, attribute));\n }\n if (geometryType === draco.TRIANGULAR_MESH) {\n geometry.index = decodeIndex(draco, decoder, dracoGeometry);\n }\n draco.destroy(dracoGeometry);\n return geometry;\n }\n function decodeIndex(draco, decoder, dracoGeometry) {\n var numFaces = dracoGeometry.num_faces();\n var numIndices = numFaces * 3;\n var byteLength = numIndices * 4;\n var ptr = draco._malloc(byteLength);\n decoder.GetTrianglesUInt32Array(dracoGeometry, byteLength, ptr);\n var index = new Uint32Array(draco.HEAPF32.buffer, ptr, numIndices).slice();\n draco._free(ptr);\n return {\n array: index,\n itemSize: 1 };\n\n }\n function decodeAttribute(draco, decoder, dracoGeometry, attributeName, attributeType, attribute) {\n var numComponents = attribute.num_components();\n var numPoints = dracoGeometry.num_points();\n var numValues = numPoints * numComponents;\n var byteLength = numValues * attributeType.BYTES_PER_ELEMENT;\n var dataType = getDracoDataType(draco, attributeType);\n var ptr = draco._malloc(byteLength);\n decoder.GetAttributeDataArrayForAllPoints(dracoGeometry, attribute, dataType, byteLength, ptr);\n var array = new attributeType(draco.HEAPF32.buffer, ptr, numValues).slice();\n draco._free(ptr);\n return {\n name: attributeName,\n array: array,\n itemSize: numComponents };\n\n }\n function getDracoDataType(draco, attributeType) {\n switch (attributeType) {\n case Float32Array:\n return draco.DT_FLOAT32;\n case Int8Array:\n return draco.DT_INT8;\n case Int16Array:\n return draco.DT_INT16;\n case Int32Array:\n return draco.DT_INT32;\n case Uint8Array:\n return draco.DT_UINT8;\n case Uint16Array:\n return draco.DT_UINT16;\n case Uint32Array:\n return draco.DT_UINT32;}\n\n }\n }return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/loaders", "outputPath": "/com/three/0.145.0/examples/jsm/loaders/DRACOLoader.js", "fileName": "/examples/jsm/loaders/DRACOLoader.js" }, "pandav:/examples/jsm/loaders/RGBELoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/loaders/RGBELoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.RGBELoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var RGBELoader = exports.RGBELoader = function (_DataTextureLoader) {\n (0, _inherits2.default)(RGBELoader, _DataTextureLoader);\n var _super = (0, _createSuper2.default)(RGBELoader);\n function RGBELoader(manager) {\n var _this;\n (0, _classCallCheck2.default)(this, RGBELoader);\n _this = _super.call(this, manager);\n _this.type = _Three.HalfFloatType;\n return _this;\n }\n (0, _createClass2.default)(RGBELoader, [{\n key: \"parse\",\n value: function parse(buffer) {\n var RGBE_RETURN_FAILURE = -1,\n rgbe_read_error = 1,\n rgbe_write_error = 2,\n rgbe_format_error = 3,\n rgbe_memory_error = 4,\n rgbe_error = function rgbe_error(rgbe_error_code, msg) {\n switch (rgbe_error_code) {\n case rgbe_read_error:\n console.error(\"THREE.RGBELoader Read Error: \" + (msg || \"\"));\n break;\n case rgbe_write_error:\n console.error(\"THREE.RGBELoader Write Error: \" + (msg || \"\"));\n break;\n case rgbe_format_error:\n console.error(\"THREE.RGBELoader Bad File Format: \" + (msg || \"\"));\n break;\n default:\n case rgbe_memory_error:\n console.error(\"THREE.RGBELoader: Error: \" + (msg || \"\"));}\n\n return RGBE_RETURN_FAILURE;\n },\n RGBE_VALID_PROGRAMTYPE = 1,\n RGBE_VALID_FORMAT = 2,\n RGBE_VALID_DIMENSIONS = 4,\n NEWLINE = \"\\n\",\n fgets = function fgets(buffer, lineLimit, consume) {\n var chunkSize = 128;\n lineLimit = !lineLimit ? 1024 : lineLimit;\n var p = buffer.pos,\n i = -1,\n len = 0,\n s = \"\",\n chunk = String.fromCharCode.apply(null, new Uint16Array(buffer.subarray(p, p + chunkSize)));\n while (0 > (i = chunk.indexOf(NEWLINE)) && len < lineLimit && p < buffer.byteLength) {\n s += chunk;\n len += chunk.length;\n p += chunkSize;\n chunk += String.fromCharCode.apply(null, new Uint16Array(buffer.subarray(p, p + chunkSize)));\n }\n if (-1 < i) {\n if (false !== consume) buffer.pos += len + i + 1;\n return s + chunk.slice(0, i);\n }\n return false;\n },\n RGBE_ReadHeader = function RGBE_ReadHeader(buffer) {\n var magic_token_re = /^#\\?(\\S+)/,\n gamma_re = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n exposure_re = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n format_re = /^\\s*FORMAT=(\\S+)\\s*$/,\n dimensions_re = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/,\n header = {\n valid: 0,\n string: \"\",\n comments: \"\",\n programtype: \"RGBE\",\n format: \"\",\n gamma: 1.0,\n exposure: 1.0,\n width: 0,\n height: 0 };\n\n var line, match;\n if (buffer.pos >= buffer.byteLength || !(line = fgets(buffer))) {\n return rgbe_error(rgbe_read_error, \"no header found\");\n }\n if (!(match = line.match(magic_token_re))) {\n return rgbe_error(rgbe_format_error, \"bad initial token\");\n }\n header.valid |= RGBE_VALID_PROGRAMTYPE;\n header.programtype = match[1];\n header.string += line + \"\\n\";\n while (true) {\n line = fgets(buffer);\n if (false === line) break;\n header.string += line + \"\\n\";\n if (\"#\" === line.charAt(0)) {\n header.comments += line + \"\\n\";\n continue;\n }\n if (match = line.match(gamma_re)) {\n header.gamma = parseFloat(match[1]);\n }\n if (match = line.match(exposure_re)) {\n header.exposure = parseFloat(match[1]);\n }\n if (match = line.match(format_re)) {\n header.valid |= RGBE_VALID_FORMAT;\n header.format = match[1];\n }\n if (match = line.match(dimensions_re)) {\n header.valid |= RGBE_VALID_DIMENSIONS;\n header.height = parseInt(match[1], 10);\n header.width = parseInt(match[2], 10);\n }\n if (header.valid & RGBE_VALID_FORMAT && header.valid & RGBE_VALID_DIMENSIONS) break;\n }\n if (!(header.valid & RGBE_VALID_FORMAT)) {\n return rgbe_error(rgbe_format_error, \"missing format specifier\");\n }\n if (!(header.valid & RGBE_VALID_DIMENSIONS)) {\n return rgbe_error(rgbe_format_error, \"missing image size specifier\");\n }\n return header;\n },\n RGBE_ReadPixels_RLE = function RGBE_ReadPixels_RLE(buffer, w, h) {\n var scanline_width = w;\n if (scanline_width < 8 || scanline_width > 0x7fff || 2 !== buffer[0] || 2 !== buffer[1] || buffer[2] & 0x80) {\n return new Uint8Array(buffer);\n }\n if (scanline_width !== (buffer[2] << 8 | buffer[3])) {\n return rgbe_error(rgbe_format_error, \"wrong scanline width\");\n }\n var data_rgba = new Uint8Array(4 * w * h);\n if (!data_rgba.length) {\n return rgbe_error(rgbe_memory_error, \"unable to allocate buffer space\");\n }\n var offset = 0,\n pos = 0;\n var ptr_end = 4 * scanline_width;\n var rgbeStart = new Uint8Array(4);\n var scanline_buffer = new Uint8Array(ptr_end);\n var num_scanlines = h;\n while (num_scanlines > 0 && pos < buffer.byteLength) {\n if (pos + 4 > buffer.byteLength) {\n return rgbe_error(rgbe_read_error);\n }\n rgbeStart[0] = buffer[pos++];\n rgbeStart[1] = buffer[pos++];\n rgbeStart[2] = buffer[pos++];\n rgbeStart[3] = buffer[pos++];\n if (2 != rgbeStart[0] || 2 != rgbeStart[1] || (rgbeStart[2] << 8 | rgbeStart[3]) != scanline_width) {\n return rgbe_error(rgbe_format_error, \"bad rgbe scanline format\");\n }\n var ptr = 0,\n count = void 0;\n while (ptr < ptr_end && pos < buffer.byteLength) {\n count = buffer[pos++];\n var isEncodedRun = count > 128;\n if (isEncodedRun) count -= 128;\n if (0 === count || ptr + count > ptr_end) {\n return rgbe_error(rgbe_format_error, \"bad scanline data\");\n }\n if (isEncodedRun) {\n var byteValue = buffer[pos++];\n for (var i = 0; i < count; i++) {\n scanline_buffer[ptr++] = byteValue;\n }\n } else {\n scanline_buffer.set(buffer.subarray(pos, pos + count), ptr);\n ptr += count;\n pos += count;\n }\n }\n var l = scanline_width;\n for (var _i = 0; _i < l; _i++) {\n var off = 0;\n data_rgba[offset] = scanline_buffer[_i + off];\n off += scanline_width;\n data_rgba[offset + 1] = scanline_buffer[_i + off];\n off += scanline_width;\n data_rgba[offset + 2] = scanline_buffer[_i + off];\n off += scanline_width;\n data_rgba[offset + 3] = scanline_buffer[_i + off];\n offset += 4;\n }\n num_scanlines--;\n }\n return data_rgba;\n };\n var RGBEByteToRGBFloat = function RGBEByteToRGBFloat(sourceArray, sourceOffset, destArray, destOffset) {\n var e = sourceArray[sourceOffset + 3];\n var scale = Math.pow(2.0, e - 128.0) / 255.0;\n destArray[destOffset + 0] = sourceArray[sourceOffset + 0] * scale;\n destArray[destOffset + 1] = sourceArray[sourceOffset + 1] * scale;\n destArray[destOffset + 2] = sourceArray[sourceOffset + 2] * scale;\n destArray[destOffset + 3] = 1;\n };\n var RGBEByteToRGBHalf = function RGBEByteToRGBHalf(sourceArray, sourceOffset, destArray, destOffset) {\n var e = sourceArray[sourceOffset + 3];\n var scale = Math.pow(2.0, e - 128.0) / 255.0;\n destArray[destOffset + 0] = _Three.DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 0] * scale, 65504));\n destArray[destOffset + 1] = _Three.DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 1] * scale, 65504));\n destArray[destOffset + 2] = _Three.DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 2] * scale, 65504));\n destArray[destOffset + 3] = _Three.DataUtils.toHalfFloat(1);\n };\n var byteArray = new Uint8Array(buffer);\n byteArray.pos = 0;\n var rgbe_header_info = RGBE_ReadHeader(byteArray);\n if (RGBE_RETURN_FAILURE !== rgbe_header_info) {\n var w = rgbe_header_info.width,\n h = rgbe_header_info.height,\n image_rgba_data = RGBE_ReadPixels_RLE(byteArray.subarray(byteArray.pos), w, h);\n if (RGBE_RETURN_FAILURE !== image_rgba_data) {\n var data, type;\n var numElements;\n switch (this.type) {\n case _Three.FloatType:\n numElements = image_rgba_data.length / 4;\n var floatArray = new Float32Array(numElements * 4);\n for (var j = 0; j < numElements; j++) {\n RGBEByteToRGBFloat(image_rgba_data, j * 4, floatArray, j * 4);\n }\n data = floatArray;\n type = _Three.FloatType;\n break;\n case _Three.HalfFloatType:\n numElements = image_rgba_data.length / 4;\n var halfArray = new Uint16Array(numElements * 4);\n for (var _j = 0; _j < numElements; _j++) {\n RGBEByteToRGBHalf(image_rgba_data, _j * 4, halfArray, _j * 4);\n }\n data = halfArray;\n type = _Three.HalfFloatType;\n break;\n default:\n console.error(\"THREE.RGBELoader: unsupported type: \", this.type);\n break;}\n\n return {\n width: w,\n height: h,\n data: data,\n header: rgbe_header_info.string,\n gamma: rgbe_header_info.gamma,\n exposure: rgbe_header_info.exposure,\n type: type };\n\n }\n }\n return null;\n } },\n {\n key: \"setDataType\",\n value: function setDataType(value) {\n this.type = value;\n return this;\n } },\n {\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n function onLoadCallback(texture, texData) {\n switch (texture.type) {\n case _Three.FloatType:\n case _Three.HalfFloatType:\n texture.encoding = _Three.LinearEncoding;\n texture.minFilter = _Three.LinearFilter;\n texture.magFilter = _Three.LinearFilter;\n texture.generateMipmaps = false;\n texture.flipY = true;\n break;}\n\n if (onLoad) onLoad(texture, texData);\n }\n return (0, _get2.default)((0, _getPrototypeOf2.default)(RGBELoader.prototype), \"load\", this).call(this, url, onLoadCallback, onProgress, onError);\n } }]);\n\n return RGBELoader;\n }(_Three.DataTextureLoader);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/loaders", "outputPath": "/com/three/0.145.0/examples/jsm/loaders/RGBELoader.js", "fileName": "/examples/jsm/loaders/RGBELoader.js" }, "pandav:/examples/jsm/loaders/KTX2Loader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/loaders/KTX2Loader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/asyncToGenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/slicedToArray\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/utils/WorkerPool\", \"pandav:/com/three/0.145.0/examples/jsm/libsmod/ktx-parse.module\", \"pandav:/com/three/0.145.0/examples/jsm/libsmod/zstddec.module\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.KTX2Loader = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _asyncToGenerator2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/asyncToGenerator'));\n var _defineProperty2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty'));\n var _slicedToArray2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/slicedToArray'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _WorkerPool = require('pandav:/com/three/0.145.0/examples/jsm/utils/WorkerPool');\n var _ktxParseModule = require('pandav:/com/three/0.145.0/examples/jsm/libsmod/ktx-parse.module');\n var _zstddecModule = require('pandav:/com/three/0.145.0/examples/jsm/libsmod/zstddec.module');\n var _FORMAT_MAP, _TYPE_MAP;\n var _taskCache = new WeakMap();\n var _activeLoaders = 0;\n var _zstd;\n var KTX2Loader = exports.KTX2Loader = function (_Loader) {\n (0, _inherits2.default)(KTX2Loader, _Loader);\n var _super = (0, _createSuper2.default)(KTX2Loader);\n function KTX2Loader(manager) {\n var _this;\n (0, _classCallCheck2.default)(this, KTX2Loader);\n _this = _super.call(this, manager);\n _this.transcoderPath = \"\";\n _this.transcoderBinary = null;\n _this.transcoderPending = null;\n _this.workerPool = new _WorkerPool.WorkerPool();\n _this.workerSourceURL = \"\";\n _this.workerConfig = null;\n if (typeof MSC_TRANSCODER !== \"undefined\") {\n console.warn('THREE.KTX2Loader: Please update to latest \"basis_transcoder\".' + ' \"msc_basis_transcoder\" is no longer supported in three.js r125+.');\n }\n return _this;\n }\n (0, _createClass2.default)(KTX2Loader, [{\n key: \"setTranscoderPath\",\n value: function setTranscoderPath(path) {\n this.transcoderPath = path;\n return this;\n } },\n {\n key: \"setWorkerLimit\",\n value: function setWorkerLimit(num) {\n this.workerPool.setWorkerLimit(num);\n return this;\n } },\n {\n key: \"detectSupport\",\n value: function detectSupport(renderer) {\n this.workerConfig = {\n astcSupported: renderer.extensions.has(\"WEBGL_compressed_texture_astc\"),\n etc1Supported: renderer.extensions.has(\"WEBGL_compressed_texture_etc1\"),\n etc2Supported: renderer.extensions.has(\"WEBGL_compressed_texture_etc\"),\n dxtSupported: renderer.extensions.has(\"WEBGL_compressed_texture_s3tc\"),\n bptcSupported: renderer.extensions.has(\"EXT_texture_compression_bptc\"),\n pvrtcSupported: renderer.extensions.has(\"WEBGL_compressed_texture_pvrtc\") || renderer.extensions.has(\"WEBKIT_WEBGL_compressed_texture_pvrtc\") };\n\n if (renderer.capabilities.isWebGL2) {\n this.workerConfig.etc1Supported = false;\n }\n return this;\n } },\n {\n key: \"init\",\n value: function init() {\n var _this2 = this;\n if (!this.transcoderPending) {\n var jsLoader = new _Three.FileLoader(this.manager);\n jsLoader.setPath(this.transcoderPath);\n jsLoader.setWithCredentials(this.withCredentials);\n var jsContent = jsLoader.loadAsync(\"basis_transcoder.js\");\n var binaryLoader = new _Three.FileLoader(this.manager);\n binaryLoader.setPath(this.transcoderPath);\n binaryLoader.setResponseType(\"arraybuffer\");\n binaryLoader.setWithCredentials(this.withCredentials);\n var binaryContent = binaryLoader.loadAsync(\"basis_transcoder.wasm\");\n this.transcoderPending = Promise.all([jsContent, binaryContent]).then(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n jsContent = _ref2[0],\n binaryContent = _ref2[1];\n var fn = KTX2Loader.BasisWorker.toString();\n var body = [\"/* constants */\", \"let _EngineFormat = \" + JSON.stringify(KTX2Loader.EngineFormat), \"let _TranscoderFormat = \" + JSON.stringify(KTX2Loader.TranscoderFormat), \"let _BasisFormat = \" + JSON.stringify(KTX2Loader.BasisFormat), \"/* basis_transcoder.js */\", jsContent, \"/* worker */\", fn.substring(fn.indexOf(\"{\") + 1, fn.lastIndexOf(\"}\"))].join(\"\\n\");\n _this2.workerSourceURL = URL.createObjectURL(new Blob([body]));\n _this2.transcoderBinary = binaryContent;\n _this2.workerPool.setWorkerCreator(function () {\n var worker = new Worker(_this2.workerSourceURL);\n var transcoderBinary = _this2.transcoderBinary.slice(0);\n worker.postMessage({\n type: \"init\",\n config: _this2.workerConfig,\n transcoderBinary: transcoderBinary },\n [transcoderBinary]);\n return worker;\n });\n });\n if (_activeLoaders > 0) {\n console.warn(\"THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues.\" + \" Use a single KTX2Loader instance, or call .dispose() on old instances.\");\n }\n _activeLoaders++;\n }\n return this.transcoderPending;\n } },\n {\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var _this3 = this;\n if (this.workerConfig === null) {\n throw new Error(\"THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.\");\n }\n var loader = new _Three.FileLoader(this.manager);\n loader.setResponseType(\"arraybuffer\");\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (buffer) {\n if (_taskCache.has(buffer)) {\n var cachedTask = _taskCache.get(buffer);\n return cachedTask.promise.then(onLoad).catch(onError);\n }\n _this3._createTexture(buffer).then(function (texture) {\n return onLoad ? onLoad(texture) : null;\n }).catch(onError);\n }, onProgress, onError);\n } },\n {\n key: \"_createTextureFrom\",\n value: function _createTextureFrom(transcodeResult) {\n var mipmaps = transcodeResult.mipmaps,\n width = transcodeResult.width,\n height = transcodeResult.height,\n format = transcodeResult.format,\n type = transcodeResult.type,\n error = transcodeResult.error,\n dfdTransferFn = transcodeResult.dfdTransferFn,\n dfdFlags = transcodeResult.dfdFlags;\n if (type === \"error\") return Promise.reject(error);\n var texture = new _Three.CompressedTexture(mipmaps, width, height, format, _Three.UnsignedByteType);\n texture.minFilter = mipmaps.length === 1 ? _Three.LinearFilter : _Three.LinearMipmapLinearFilter;\n texture.magFilter = _Three.LinearFilter;\n texture.generateMipmaps = false;\n texture.needsUpdate = true;\n texture.encoding = dfdTransferFn === _ktxParseModule.KHR_DF_TRANSFER_SRGB ? _Three.sRGBEncoding : _Three.LinearEncoding;\n texture.premultiplyAlpha = !!(dfdFlags & _ktxParseModule.KHR_DF_FLAG_ALPHA_PREMULTIPLIED);\n return texture;\n } },\n {\n key: \"_createTexture\",\n value: function _createTexture(buffer) {\n var _this4 = this;\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = (0, _ktxParseModule.read)(new Uint8Array(buffer));\n if (container.vkFormat !== _ktxParseModule.VK_FORMAT_UNDEFINED) {\n return createDataTexture(container);\n }\n var taskConfig = config;\n var texturePending = this.init().then(function () {\n return _this4.workerPool.postMessage({\n type: \"transcode\",\n buffer: buffer,\n taskConfig: taskConfig },\n [buffer]);\n }).then(function (e) {\n return _this4._createTextureFrom(e.data);\n });\n _taskCache.set(buffer, {\n promise: texturePending });\n\n return texturePending;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.workerPool.dispose();\n if (this.workerSourceURL) URL.revokeObjectURL(this.workerSourceURL);\n _activeLoaders--;\n return this;\n } }]);\n\n return KTX2Loader;\n }(_Three.Loader);\n KTX2Loader.BasisFormat = {\n ETC1S: 0,\n UASTC_4x4: 1 };\n\n KTX2Loader.TranscoderFormat = {\n ETC1: 0,\n ETC2: 1,\n BC1: 2,\n BC3: 3,\n BC4: 4,\n BC5: 5,\n BC7_M6_OPAQUE_ONLY: 6,\n BC7_M5: 7,\n PVRTC1_4_RGB: 8,\n PVRTC1_4_RGBA: 9,\n ASTC_4x4: 10,\n ATC_RGB: 11,\n ATC_RGBA_INTERPOLATED_ALPHA: 12,\n RGBA32: 13,\n RGB565: 14,\n BGR565: 15,\n RGBA4444: 16 };\n\n KTX2Loader.EngineFormat = {\n RGBAFormat: _Three.RGBAFormat,\n RGBA_ASTC_4x4_Format: _Three.RGBA_ASTC_4x4_Format,\n RGBA_BPTC_Format: _Three.RGBA_BPTC_Format,\n RGBA_ETC2_EAC_Format: _Three.RGBA_ETC2_EAC_Format,\n RGBA_PVRTC_4BPPV1_Format: _Three.RGBA_PVRTC_4BPPV1_Format,\n RGBA_S3TC_DXT5_Format: _Three.RGBA_S3TC_DXT5_Format,\n RGB_ETC1_Format: _Three.RGB_ETC1_Format,\n RGB_ETC2_Format: _Three.RGB_ETC2_Format,\n RGB_PVRTC_4BPPV1_Format: _Three.RGB_PVRTC_4BPPV1_Format,\n RGB_S3TC_DXT1_Format: _Three.RGB_S3TC_DXT1_Format };\n\n KTX2Loader.BasisWorker = function () {\n var config;\n var transcoderPending;\n var BasisModule;\n var EngineFormat = _EngineFormat;\n var TranscoderFormat = _TranscoderFormat;\n var BasisFormat = _BasisFormat;\n self.addEventListener(\"message\", function (e) {\n var message = e.data;\n switch (message.type) {\n case \"init\":\n config = message.config;\n init(message.transcoderBinary);\n break;\n case \"transcode\":\n transcoderPending.then(function () {\n try {\n var _transcode = transcode(message.buffer),\n width = _transcode.width,\n height = _transcode.height,\n hasAlpha = _transcode.hasAlpha,\n mipmaps = _transcode.mipmaps,\n format = _transcode.format,\n dfdTransferFn = _transcode.dfdTransferFn,\n dfdFlags = _transcode.dfdFlags;\n var buffers = [];\n for (var i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer);\n }\n self.postMessage({\n type: \"transcode\",\n id: message.id,\n width: width,\n height: height,\n hasAlpha: hasAlpha,\n mipmaps: mipmaps,\n format: format,\n dfdTransferFn: dfdTransferFn,\n dfdFlags: dfdFlags },\n buffers);\n } catch (error) {\n console.error(error);\n self.postMessage({\n type: \"error\",\n id: message.id,\n error: error.message });\n\n }\n });\n break;}\n\n });\n function init(wasmBinary) {\n transcoderPending = new Promise(function (resolve) {\n BasisModule = {\n wasmBinary: wasmBinary,\n onRuntimeInitialized: resolve };\n\n BASIS(BasisModule);\n }).then(function () {\n BasisModule.initializeBasis();\n if (BasisModule.KTX2File === undefined) {\n console.warn(\"THREE.KTX2Loader: Please update Basis Universal transcoder.\");\n }\n });\n }\n function transcode(buffer) {\n var ktx2File = new BasisModule.KTX2File(new Uint8Array(buffer));\n function cleanup() {\n ktx2File.close();\n ktx2File.delete();\n }\n if (!ktx2File.isValid()) {\n cleanup();\n throw new Error(\"THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file\");\n }\n var basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S;\n var width = ktx2File.getWidth();\n var height = ktx2File.getHeight();\n var levels = ktx2File.getLevels();\n var hasAlpha = ktx2File.getHasAlpha();\n var dfdTransferFn = ktx2File.getDFDTransferFunc();\n var dfdFlags = ktx2File.getDFDFlags();\n var _getTranscoderFormat = getTranscoderFormat(basisFormat, width, height, hasAlpha),\n transcoderFormat = _getTranscoderFormat.transcoderFormat,\n engineFormat = _getTranscoderFormat.engineFormat;\n if (!width || !height || !levels) {\n cleanup();\n throw new Error(\"THREE.KTX2Loader:\tInvalid texture\");\n }\n if (!ktx2File.startTranscoding()) {\n cleanup();\n throw new Error(\"THREE.KTX2Loader: .startTranscoding failed\");\n }\n var mipmaps = [];\n for (var mip = 0; mip < levels; mip++) {\n var levelInfo = ktx2File.getImageLevelInfo(mip, 0, 0);\n var mipWidth = levelInfo.origWidth;\n var mipHeight = levelInfo.origHeight;\n var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, 0, 0, transcoderFormat));\n var status = ktx2File.transcodeImage(dst, mip, 0, 0, transcoderFormat, 0, -1, -1);\n if (!status) {\n cleanup();\n throw new Error(\"THREE.KTX2Loader: .transcodeImage failed.\");\n }\n mipmaps.push({\n data: dst,\n width: mipWidth,\n height: mipHeight });\n\n }\n cleanup();\n return {\n width: width,\n height: height,\n hasAlpha: hasAlpha,\n mipmaps: mipmaps,\n format: engineFormat,\n dfdTransferFn: dfdTransferFn,\n dfdFlags: dfdFlags };\n\n }\n var FORMAT_OPTIONS = [{\n if: \"astcSupported\",\n basisFormat: [BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4],\n engineFormat: [EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format],\n priorityETC1S: Infinity,\n priorityUASTC: 1,\n needsPowerOfTwo: false },\n {\n if: \"bptcSupported\",\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5],\n engineFormat: [EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format],\n priorityETC1S: 3,\n priorityUASTC: 2,\n needsPowerOfTwo: false },\n {\n if: \"dxtSupported\",\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.BC1, TranscoderFormat.BC3],\n engineFormat: [EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format],\n priorityETC1S: 4,\n priorityUASTC: 5,\n needsPowerOfTwo: false },\n {\n if: \"etc2Supported\",\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC2],\n engineFormat: [EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format],\n priorityETC1S: 1,\n priorityUASTC: 3,\n needsPowerOfTwo: false },\n {\n if: \"etc1Supported\",\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ETC1],\n engineFormat: [EngineFormat.RGB_ETC1_Format],\n priorityETC1S: 2,\n priorityUASTC: 4,\n needsPowerOfTwo: false },\n {\n if: \"pvrtcSupported\",\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA],\n engineFormat: [EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format],\n priorityETC1S: 5,\n priorityUASTC: 6,\n needsPowerOfTwo: true }];\n\n var ETC1S_OPTIONS = FORMAT_OPTIONS.sort(function (a, b) {\n return a.priorityETC1S - b.priorityETC1S;\n });\n var UASTC_OPTIONS = FORMAT_OPTIONS.sort(function (a, b) {\n return a.priorityUASTC - b.priorityUASTC;\n });\n function getTranscoderFormat(basisFormat, width, height, hasAlpha) {\n var transcoderFormat;\n var engineFormat;\n var options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS;\n for (var i = 0; i < options.length; i++) {\n var opt = options[i];\n if (!config[opt.if]) continue;\n if (!opt.basisFormat.includes(basisFormat)) continue;\n if (hasAlpha && opt.transcoderFormat.length < 2) continue;\n if (opt.needsPowerOfTwo && !(isPowerOfTwo(width) && isPowerOfTwo(height))) continue;\n transcoderFormat = opt.transcoderFormat[hasAlpha ? 1 : 0];\n engineFormat = opt.engineFormat[hasAlpha ? 1 : 0];\n return {\n transcoderFormat: transcoderFormat,\n engineFormat: engineFormat };\n\n }\n console.warn(\"THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.\");\n transcoderFormat = TranscoderFormat.RGBA32;\n engineFormat = EngineFormat.RGBAFormat;\n return {\n transcoderFormat: transcoderFormat,\n engineFormat: engineFormat };\n\n }\n function isPowerOfTwo(value) {\n if (value <= 2) return true;\n return (value & value - 1) === 0 && value !== 0;\n }\n };\n var FORMAT_MAP = (_FORMAT_MAP = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_MAP, _ktxParseModule.VK_FORMAT_R32G32B32A32_SFLOAT, _Three.RGBAFormat), _ktxParseModule.VK_FORMAT_R16G16B16A16_SFLOAT, _Three.RGBAFormat), _ktxParseModule.VK_FORMAT_R8G8B8A8_UNORM, _Three.RGBAFormat), _ktxParseModule.VK_FORMAT_R8G8B8A8_SRGB, _Three.RGBAFormat), _ktxParseModule.VK_FORMAT_R32G32_SFLOAT, _Three.RGFormat), _ktxParseModule.VK_FORMAT_R16G16_SFLOAT, _Three.RGFormat), _ktxParseModule.VK_FORMAT_R8G8_UNORM, _Three.RGFormat), _ktxParseModule.VK_FORMAT_R8G8_SRGB, _Three.RGFormat), _ktxParseModule.VK_FORMAT_R32_SFLOAT, _Three.RedFormat), _ktxParseModule.VK_FORMAT_R16_SFLOAT, _Three.RedFormat), (0, _defineProperty2.default)((0, _defineProperty2.default)(_FORMAT_MAP, _ktxParseModule.VK_FORMAT_R8_SRGB, _Three.RedFormat), _ktxParseModule.VK_FORMAT_R8_UNORM, _Three.RedFormat));\n var TYPE_MAP = (_TYPE_MAP = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_TYPE_MAP, _ktxParseModule.VK_FORMAT_R32G32B32A32_SFLOAT, _Three.FloatType), _ktxParseModule.VK_FORMAT_R16G16B16A16_SFLOAT, _Three.HalfFloatType), _ktxParseModule.VK_FORMAT_R8G8B8A8_UNORM, _Three.UnsignedByteType), _ktxParseModule.VK_FORMAT_R8G8B8A8_SRGB, _Three.UnsignedByteType), _ktxParseModule.VK_FORMAT_R32G32_SFLOAT, _Three.FloatType), _ktxParseModule.VK_FORMAT_R16G16_SFLOAT, _Three.HalfFloatType), _ktxParseModule.VK_FORMAT_R8G8_UNORM, _Three.UnsignedByteType), _ktxParseModule.VK_FORMAT_R8G8_SRGB, _Three.UnsignedByteType), _ktxParseModule.VK_FORMAT_R32_SFLOAT, _Three.FloatType), _ktxParseModule.VK_FORMAT_R16_SFLOAT, _Three.HalfFloatType), (0, _defineProperty2.default)((0, _defineProperty2.default)(_TYPE_MAP, _ktxParseModule.VK_FORMAT_R8_SRGB, _Three.UnsignedByteType), _ktxParseModule.VK_FORMAT_R8_UNORM, _Three.UnsignedByteType));\n var ENCODING_MAP = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _ktxParseModule.VK_FORMAT_R8G8B8A8_SRGB, _Three.sRGBEncoding), _ktxParseModule.VK_FORMAT_R8G8_SRGB, _Three.sRGBEncoding), _ktxParseModule.VK_FORMAT_R8_SRGB, _Three.sRGBEncoding);\n function createDataTexture(_x) {\n return _createDataTexture.apply(this, arguments);\n }\n function _createDataTexture() {\n _createDataTexture = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(container) {\n var vkFormat, pixelWidth, pixelHeight, pixelDepth, level, levelData, view, texture;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n vkFormat = container.vkFormat, pixelWidth = container.pixelWidth, pixelHeight = container.pixelHeight, pixelDepth = container.pixelDepth;\n if (!(FORMAT_MAP[vkFormat] === undefined)) {\n _context2.next = 3;\n break;\n }\n throw new Error(\"THREE.KTX2Loader: Unsupported vkFormat.\");\n case 3:\n level = container.levels[0];\n if (!(container.supercompressionScheme === _ktxParseModule.KHR_SUPERCOMPRESSION_NONE)) {\n _context2.next = 8;\n break;\n }\n levelData = level.levelData;\n _context2.next = 16;\n break;\n case 8:\n if (!(container.supercompressionScheme === _ktxParseModule.KHR_SUPERCOMPRESSION_ZSTD)) {\n _context2.next = 15;\n break;\n }\n if (!_zstd) {\n _zstd = new Promise(function () {\n var _ref3 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(resolve) {\n var zstd;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n zstd = new _zstddecModule.ZSTDDecoder();\n _context.next = 3;\n return zstd.init();\n case 3:\n resolve(zstd);\n case 4:\n case \"end\":\n return _context.stop();}\n\n }, _callee);\n }));\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n _context2.next = 12;\n return _zstd;\n case 12:\n levelData = _context2.sent.decode(level.levelData, level.uncompressedByteLength);\n _context2.next = 16;\n break;\n case 15:\n throw new Error(\"THREE.KTX2Loader: Unsupported supercompressionScheme.\");\n case 16:\n if (TYPE_MAP[vkFormat] === _Three.FloatType) {\n view = new Float32Array(levelData.buffer, levelData.byteOffset, levelData.byteLength / Float32Array.BYTES_PER_ELEMENT);\n } else if (TYPE_MAP[vkFormat] === _Three.HalfFloatType) {\n view = new Uint16Array(levelData.buffer, levelData.byteOffset, levelData.byteLength / Uint16Array.BYTES_PER_ELEMENT);\n } else {\n view = levelData;\n }\n texture = pixelDepth === 0 ? new _Three.DataTexture(view, pixelWidth, pixelHeight) : new _Three.Data3DTexture(view, pixelWidth, pixelHeight, pixelDepth);\n texture.type = TYPE_MAP[vkFormat];\n texture.format = FORMAT_MAP[vkFormat];\n texture.encoding = ENCODING_MAP[vkFormat] || _Three.LinearEncoding;\n texture.needsUpdate = true;\n return _context2.abrupt(\"return\", Promise.resolve(texture));\n case 23:\n case \"end\":\n return _context2.stop();}\n\n }, _callee2);\n }));\n return _createDataTexture.apply(this, arguments);\n }return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/utils/WorkerPool.js", "pandav:/examples/jsm/libsmod/ktx-parse.module.js", "pandav:/examples/jsm/libsmod/zstddec.module.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/loaders", "outputPath": "/com/three/0.145.0/examples/jsm/loaders/KTX2Loader.js", "fileName": "/examples/jsm/loaders/KTX2Loader.js" }, "pandav:/examples/jsm/loaders/TGALoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/loaders/TGALoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TGALoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var TGALoader = exports.TGALoader = function (_DataTextureLoader) {\n (0, _inherits2.default)(TGALoader, _DataTextureLoader);\n var _super = (0, _createSuper2.default)(TGALoader);\n function TGALoader(manager) {\n (0, _classCallCheck2.default)(this, TGALoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(TGALoader, [{\n key: \"parse\",\n value: function parse(buffer) {\n function tgaCheckHeader(header) {\n switch (header.image_type) {\n case TGA_TYPE_INDEXED:\n case TGA_TYPE_RLE_INDEXED:\n if (header.colormap_length > 256 || header.colormap_size !== 24 || header.colormap_type !== 1) {\n console.error(\"THREE.TGALoader: Invalid type colormap data for indexed type.\");\n }\n break;\n case TGA_TYPE_RGB:\n case TGA_TYPE_GREY:\n case TGA_TYPE_RLE_RGB:\n case TGA_TYPE_RLE_GREY:\n if (header.colormap_type) {\n console.error(\"THREE.TGALoader: Invalid type colormap data for colormap type.\");\n }\n break;\n case TGA_TYPE_NO_DATA:\n console.error(\"THREE.TGALoader: No data.\");\n default:\n console.error('THREE.TGALoader: Invalid type \"%s\".', header.image_type);}\n\n if (header.width <= 0 || header.height <= 0) {\n console.error(\"THREE.TGALoader: Invalid image size.\");\n }\n if (header.pixel_size !== 8 && header.pixel_size !== 16 && header.pixel_size !== 24 && header.pixel_size !== 32) {\n console.error('THREE.TGALoader: Invalid pixel size \"%s\".', header.pixel_size);\n }\n }\n function tgaParse(use_rle, use_pal, header, offset, data) {\n var pixel_data, palettes;\n var pixel_size = header.pixel_size >> 3;\n var pixel_total = header.width * header.height * pixel_size;\n if (use_pal) {\n palettes = data.subarray(offset, offset += header.colormap_length * (header.colormap_size >> 3));\n }\n if (use_rle) {\n pixel_data = new Uint8Array(pixel_total);\n var c, count, i;\n var shift = 0;\n var pixels = new Uint8Array(pixel_size);\n while (shift < pixel_total) {\n c = data[offset++];\n count = (c & 0x7f) + 1;\n if (c & 0x80) {\n for (i = 0; i < pixel_size; ++i) {\n pixels[i] = data[offset++];\n }\n for (i = 0; i < count; ++i) {\n pixel_data.set(pixels, shift + i * pixel_size);\n }\n shift += pixel_size * count;\n } else {\n count *= pixel_size;\n for (i = 0; i < count; ++i) {\n pixel_data[shift + i] = data[offset++];\n }\n shift += count;\n }\n }\n } else {\n pixel_data = data.subarray(offset, offset += use_pal ? header.width * header.height : pixel_total);\n }\n return {\n pixel_data: pixel_data,\n palettes: palettes };\n\n }\n function tgaGetImageData8bits(imageData, y_start, y_step, y_end, x_start, x_step, x_end, image, palettes) {\n var colormap = palettes;\n var color,\n i = 0,\n x,\n y;\n var width = header.width;\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i++) {\n color = image[i];\n imageData[(x + width * y) * 4 + 3] = 255;\n imageData[(x + width * y) * 4 + 2] = colormap[color * 3 + 0];\n imageData[(x + width * y) * 4 + 1] = colormap[color * 3 + 1];\n imageData[(x + width * y) * 4 + 0] = colormap[color * 3 + 2];\n }\n }\n return imageData;\n }\n function tgaGetImageData16bits(imageData, y_start, y_step, y_end, x_start, x_step, x_end, image) {\n var color,\n i = 0,\n x,\n y;\n var width = header.width;\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 2) {\n color = image[i + 0] + (image[i + 1] << 8);\n imageData[(x + width * y) * 4 + 0] = (color & 0x7c00) >> 7;\n imageData[(x + width * y) * 4 + 1] = (color & 0x03e0) >> 2;\n imageData[(x + width * y) * 4 + 2] = (color & 0x001f) << 3;\n imageData[(x + width * y) * 4 + 3] = color & 0x8000 ? 0 : 255;\n }\n }\n return imageData;\n }\n function tgaGetImageData24bits(imageData, y_start, y_step, y_end, x_start, x_step, x_end, image) {\n var i = 0,\n x,\n y;\n var width = header.width;\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 3) {\n imageData[(x + width * y) * 4 + 3] = 255;\n imageData[(x + width * y) * 4 + 2] = image[i + 0];\n imageData[(x + width * y) * 4 + 1] = image[i + 1];\n imageData[(x + width * y) * 4 + 0] = image[i + 2];\n }\n }\n return imageData;\n }\n function tgaGetImageData32bits(imageData, y_start, y_step, y_end, x_start, x_step, x_end, image) {\n var i = 0,\n x,\n y;\n var width = header.width;\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 4) {\n imageData[(x + width * y) * 4 + 2] = image[i + 0];\n imageData[(x + width * y) * 4 + 1] = image[i + 1];\n imageData[(x + width * y) * 4 + 0] = image[i + 2];\n imageData[(x + width * y) * 4 + 3] = image[i + 3];\n }\n }\n return imageData;\n }\n function tgaGetImageDataGrey8bits(imageData, y_start, y_step, y_end, x_start, x_step, x_end, image) {\n var color,\n i = 0,\n x,\n y;\n var width = header.width;\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i++) {\n color = image[i];\n imageData[(x + width * y) * 4 + 0] = color;\n imageData[(x + width * y) * 4 + 1] = color;\n imageData[(x + width * y) * 4 + 2] = color;\n imageData[(x + width * y) * 4 + 3] = 255;\n }\n }\n return imageData;\n }\n function tgaGetImageDataGrey16bits(imageData, y_start, y_step, y_end, x_start, x_step, x_end, image) {\n var i = 0,\n x,\n y;\n var width = header.width;\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 2) {\n imageData[(x + width * y) * 4 + 0] = image[i + 0];\n imageData[(x + width * y) * 4 + 1] = image[i + 0];\n imageData[(x + width * y) * 4 + 2] = image[i + 0];\n imageData[(x + width * y) * 4 + 3] = image[i + 1];\n }\n }\n return imageData;\n }\n function getTgaRGBA(data, width, height, image, palette) {\n var x_start, y_start, x_step, y_step, x_end, y_end;\n switch ((header.flags & TGA_ORIGIN_MASK) >> TGA_ORIGIN_SHIFT) {\n default:\n case TGA_ORIGIN_UL:\n x_start = 0;\n x_step = 1;\n x_end = width;\n y_start = 0;\n y_step = 1;\n y_end = height;\n break;\n case TGA_ORIGIN_BL:\n x_start = 0;\n x_step = 1;\n x_end = width;\n y_start = height - 1;\n y_step = -1;\n y_end = -1;\n break;\n case TGA_ORIGIN_UR:\n x_start = width - 1;\n x_step = -1;\n x_end = -1;\n y_start = 0;\n y_step = 1;\n y_end = height;\n break;\n case TGA_ORIGIN_BR:\n x_start = width - 1;\n x_step = -1;\n x_end = -1;\n y_start = height - 1;\n y_step = -1;\n y_end = -1;\n break;}\n\n if (use_grey) {\n switch (header.pixel_size) {\n case 8:\n tgaGetImageDataGrey8bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image);\n break;\n case 16:\n tgaGetImageDataGrey16bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image);\n break;\n default:\n console.error(\"THREE.TGALoader: Format not supported.\");\n break;}\n\n } else {\n switch (header.pixel_size) {\n case 8:\n tgaGetImageData8bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image, palette);\n break;\n case 16:\n tgaGetImageData16bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image);\n break;\n case 24:\n tgaGetImageData24bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image);\n break;\n case 32:\n tgaGetImageData32bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image);\n break;\n default:\n console.error(\"THREE.TGALoader: Format not supported.\");\n break;}\n\n }\n return data;\n }\n var TGA_TYPE_NO_DATA = 0,\n TGA_TYPE_INDEXED = 1,\n TGA_TYPE_RGB = 2,\n TGA_TYPE_GREY = 3,\n TGA_TYPE_RLE_INDEXED = 9,\n TGA_TYPE_RLE_RGB = 10,\n TGA_TYPE_RLE_GREY = 11,\n TGA_ORIGIN_MASK = 0x30,\n TGA_ORIGIN_SHIFT = 0x04,\n TGA_ORIGIN_BL = 0x00,\n TGA_ORIGIN_BR = 0x01,\n TGA_ORIGIN_UL = 0x02,\n TGA_ORIGIN_UR = 0x03;\n if (buffer.length < 19) console.error(\"THREE.TGALoader: Not enough data to contain header.\");\n var offset = 0;\n var content = new Uint8Array(buffer),\n header = {\n id_length: content[offset++],\n colormap_type: content[offset++],\n image_type: content[offset++],\n colormap_index: content[offset++] | content[offset++] << 8,\n colormap_length: content[offset++] | content[offset++] << 8,\n colormap_size: content[offset++],\n origin: [content[offset++] | content[offset++] << 8, content[offset++] | content[offset++] << 8],\n width: content[offset++] | content[offset++] << 8,\n height: content[offset++] | content[offset++] << 8,\n pixel_size: content[offset++],\n flags: content[offset++] };\n\n tgaCheckHeader(header);\n if (header.id_length + offset > buffer.length) {\n console.error(\"THREE.TGALoader: No data.\");\n }\n offset += header.id_length;\n var use_rle = false,\n use_pal = false,\n use_grey = false;\n switch (header.image_type) {\n case TGA_TYPE_RLE_INDEXED:\n use_rle = true;\n use_pal = true;\n break;\n case TGA_TYPE_INDEXED:\n use_pal = true;\n break;\n case TGA_TYPE_RLE_RGB:\n use_rle = true;\n break;\n case TGA_TYPE_RGB:\n break;\n case TGA_TYPE_RLE_GREY:\n use_rle = true;\n use_grey = true;\n break;\n case TGA_TYPE_GREY:\n use_grey = true;\n break;}\n\n var imageData = new Uint8Array(header.width * header.height * 4);\n var result = tgaParse(use_rle, use_pal, header, offset, content);\n getTgaRGBA(imageData, header.width, header.height, result.pixel_data, result.palettes);\n return {\n data: imageData,\n width: header.width,\n height: header.height,\n flipY: true,\n generateMipmaps: true,\n minFilter: _Three.LinearMipmapLinearFilter };\n\n } }]);\n\n return TGALoader;\n }(_Three.DataTextureLoader);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/loaders", "outputPath": "/com/three/0.145.0/examples/jsm/loaders/TGALoader.js", "fileName": "/examples/jsm/loaders/TGALoader.js" }, "pandav:/examples/jsm/objects/Lensflare.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/objects/Lensflare\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LensflareElement = exports.Lensflare = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var Lensflare = exports.Lensflare = function (_Mesh) {\n (0, _inherits2.default)(Lensflare, _Mesh);\n var _super = (0, _createSuper2.default)(Lensflare);\n function Lensflare() {\n var _this;\n (0, _classCallCheck2.default)(this, Lensflare);\n _this = _super.call(this, Lensflare.Geometry, new _Three.MeshBasicMaterial({\n opacity: 0,\n transparent: true }));\n\n _this.isLensflare = true;\n _this.type = \"Lensflare\";\n _this.frustumCulled = false;\n _this.renderOrder = Infinity;\n var positionScreen = new _Three.Vector3();\n var positionView = new _Three.Vector3();\n var tempMap = new _Three.FramebufferTexture(16, 16, _Three.RGBAFormat);\n var occlusionMap = new _Three.FramebufferTexture(16, 16, _Three.RGBAFormat);\n var geometry = Lensflare.Geometry;\n var material1a = new _Three.RawShaderMaterial({\n uniforms: {\n scale: {\n value: null },\n\n screenPosition: {\n value: null } },\n\n\n vertexShader: \"\\n\\n\\t\\t\\t\\tprecision highp float;\\n\\n\\t\\t\\t\\tuniform vec3 screenPosition;\\n\\t\\t\\t\\tuniform vec2 scale;\\n\\n\\t\\t\\t\\tattribute vec3 position;\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\\n\\n\\t\\t\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\t\\t\\tprecision highp float;\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tgl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 );\\n\\n\\t\\t\\t\\t}\",\n depthTest: true,\n depthWrite: false,\n transparent: false });\n\n var material1b = new _Three.RawShaderMaterial({\n uniforms: {\n map: {\n value: tempMap },\n\n scale: {\n value: null },\n\n screenPosition: {\n value: null } },\n\n\n vertexShader: \"\\n\\n\\t\\t\\t\\tprecision highp float;\\n\\n\\t\\t\\t\\tuniform vec3 screenPosition;\\n\\t\\t\\t\\tuniform vec2 scale;\\n\\n\\t\\t\\t\\tattribute vec3 position;\\n\\t\\t\\t\\tattribute vec2 uv;\\n\\n\\t\\t\\t\\tvarying vec2 vUV;\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvUV = uv;\\n\\n\\t\\t\\t\\t\\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\\n\\n\\t\\t\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\t\\t\\tprecision highp float;\\n\\n\\t\\t\\t\\tuniform sampler2D map;\\n\\n\\t\\t\\t\\tvarying vec2 vUV;\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( map, vUV );\\n\\n\\t\\t\\t\\t}\",\n depthTest: false,\n depthWrite: false,\n transparent: false });\n\n var mesh1 = new _Three.Mesh(geometry, material1a);\n var elements = [];\n var shader = LensflareElement.Shader;\n var material2 = new _Three.RawShaderMaterial({\n uniforms: {\n map: {\n value: null },\n\n occlusionMap: {\n value: occlusionMap },\n\n color: {\n value: new _Three.Color(0xffffff) },\n\n scale: {\n value: new _Three.Vector2() },\n\n screenPosition: {\n value: new _Three.Vector3() } },\n\n\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n blending: _Three.AdditiveBlending,\n transparent: true,\n depthWrite: false });\n\n var mesh2 = new _Three.Mesh(geometry, material2);\n _this.addElement = function (element) {\n elements.push(element);\n };\n var scale = new _Three.Vector2();\n var screenPositionPixels = new _Three.Vector2();\n var validArea = new _Three.Box2();\n var viewport = new _Three.Vector4();\n _this.onBeforeRender = function (renderer, scene, camera) {\n renderer.getCurrentViewport(viewport);\n var invAspect = viewport.w / viewport.z;\n var halfViewportWidth = viewport.z / 2.0;\n var halfViewportHeight = viewport.w / 2.0;\n var size = 16 / viewport.w;\n scale.set(size * invAspect, size);\n validArea.min.set(viewport.x, viewport.y);\n validArea.max.set(viewport.x + (viewport.z - 16), viewport.y + (viewport.w - 16));\n positionView.setFromMatrixPosition(this.matrixWorld);\n positionView.applyMatrix4(camera.matrixWorldInverse);\n if (positionView.z > 0) return;\n positionScreen.copy(positionView).applyMatrix4(camera.projectionMatrix);\n screenPositionPixels.x = viewport.x + positionScreen.x * halfViewportWidth + halfViewportWidth - 8;\n screenPositionPixels.y = viewport.y + positionScreen.y * halfViewportHeight + halfViewportHeight - 8;\n if (validArea.containsPoint(screenPositionPixels)) {\n renderer.copyFramebufferToTexture(screenPositionPixels, tempMap);\n var uniforms = material1a.uniforms;\n uniforms[\"scale\"].value = scale;\n uniforms[\"screenPosition\"].value = positionScreen;\n renderer.renderBufferDirect(camera, null, geometry, material1a, mesh1, null);\n renderer.copyFramebufferToTexture(screenPositionPixels, occlusionMap);\n uniforms = material1b.uniforms;\n uniforms[\"scale\"].value = scale;\n uniforms[\"screenPosition\"].value = positionScreen;\n renderer.renderBufferDirect(camera, null, geometry, material1b, mesh1, null);\n var vecX = -positionScreen.x * 2;\n var vecY = -positionScreen.y * 2;\n for (var i = 0, l = elements.length; i < l; i++) {\n var element = elements[i];\n var _uniforms = material2.uniforms;\n _uniforms[\"color\"].value.copy(element.color);\n _uniforms[\"map\"].value = element.texture;\n _uniforms[\"screenPosition\"].value.x = positionScreen.x + vecX * element.distance;\n _uniforms[\"screenPosition\"].value.y = positionScreen.y + vecY * element.distance;\n size = element.size / viewport.w;\n var _invAspect = viewport.w / viewport.z;\n _uniforms[\"scale\"].value.set(size * _invAspect, size);\n material2.uniformsNeedUpdate = true;\n renderer.renderBufferDirect(camera, null, geometry, material2, mesh2, null);\n }\n }\n };\n _this.dispose = function () {\n material1a.dispose();\n material1b.dispose();\n material2.dispose();\n tempMap.dispose();\n occlusionMap.dispose();\n for (var i = 0, l = elements.length; i < l; i++) {\n elements[i].texture.dispose();\n }\n };\n return _this;\n }\n return (0, _createClass2.default)(Lensflare);\n }(_Three.Mesh);\n var LensflareElement = exports.LensflareElement = (0, _createClass2.default)(function LensflareElement(texture) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var color = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new _Three.Color(0xffffff);\n (0, _classCallCheck2.default)(this, LensflareElement);\n this.texture = texture;\n this.size = size;\n this.distance = distance;\n this.color = color;\n });\n LensflareElement.Shader = {\n uniforms: {\n map: {\n value: null },\n\n occlusionMap: {\n value: null },\n\n color: {\n value: null },\n\n scale: {\n value: null },\n\n screenPosition: {\n value: null } },\n\n\n vertexShader: \"\\n\\n\\t\\tprecision highp float;\\n\\n\\t\\tuniform vec3 screenPosition;\\n\\t\\tuniform vec2 scale;\\n\\n\\t\\tuniform sampler2D occlusionMap;\\n\\n\\t\\tattribute vec3 position;\\n\\t\\tattribute vec2 uv;\\n\\n\\t\\tvarying vec2 vUV;\\n\\t\\tvarying float vVisibility;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUV = uv;\\n\\n\\t\\t\\tvec2 pos = position.xy;\\n\\n\\t\\t\\tvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\\n\\t\\t\\tvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\\n\\n\\t\\t\\tvVisibility = visibility.r / 9.0;\\n\\t\\t\\tvVisibility *= 1.0 - visibility.g / 9.0;\\n\\t\\t\\tvVisibility *= visibility.b / 9.0;\\n\\n\\t\\t\\tgl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\tprecision highp float;\\n\\n\\t\\tuniform sampler2D map;\\n\\t\\tuniform vec3 color;\\n\\n\\t\\tvarying vec2 vUV;\\n\\t\\tvarying float vVisibility;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvec4 texture = texture2D( map, vUV );\\n\\t\\t\\ttexture.a *= vVisibility;\\n\\t\\t\\tgl_FragColor = texture;\\n\\t\\t\\tgl_FragColor.rgb *= color;\\n\\n\\t\\t}\" };\n\n Lensflare.Geometry = function () {\n var geometry = new _Three.BufferGeometry();\n var float32Array = new Float32Array([-1, -1, 0, 0, 0, 1, -1, 0, 1, 0, 1, 1, 0, 1, 1, -1, 1, 0, 0, 1]);\n var interleavedBuffer = new _Three.InterleavedBuffer(float32Array, 5);\n geometry.setIndex([0, 1, 2, 0, 2, 3]);\n geometry.setAttribute(\"position\", new _Three.InterleavedBufferAttribute(interleavedBuffer, 3, 0, false));\n geometry.setAttribute(\"uv\", new _Three.InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));\n return geometry;\n }();return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/objects", "outputPath": "/com/three/0.145.0/examples/jsm/objects/Lensflare.js", "fileName": "/examples/jsm/objects/Lensflare.js" }, "pandav:/examples/jsm/postprocessing/BokehPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/postprocessing/BokehPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/shaders/BokehShader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BokehPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _BokehShader = require('pandav:/com/three/0.145.0/examples/jsm/shaders/BokehShader');\n var BokehPass = exports.BokehPass = function (_Pass) {\n (0, _inherits2.default)(BokehPass, _Pass);\n var _super = (0, _createSuper2.default)(BokehPass);\n function BokehPass(scene, camera, params) {\n var _this;\n (0, _classCallCheck2.default)(this, BokehPass);\n _this = _super.call(this);\n _this.scene = scene;\n _this.camera = camera;\n var focus = params.focus !== undefined ? params.focus : 1.0;\n var aspect = params.aspect !== undefined ? params.aspect : camera.aspect;\n var aperture = params.aperture !== undefined ? params.aperture : 0.025;\n var maxblur = params.maxblur !== undefined ? params.maxblur : 1.0;\n var width = params.width || window.innerWidth || 1;\n var height = params.height || window.innerHeight || 1;\n _this.renderTargetDepth = new _Three.WebGLRenderTarget(width, height, {\n minFilter: _Three.NearestFilter,\n magFilter: _Three.NearestFilter });\n\n _this.renderTargetDepth.texture.name = \"BokehPass.depth\";\n _this.materialDepth = new _Three.MeshDepthMaterial();\n _this.materialDepth.depthPacking = _Three.RGBADepthPacking;\n _this.materialDepth.blending = _Three.NoBlending;\n if (_BokehShader.BokehShader === undefined) {\n console.error(\"THREE.BokehPass relies on BokehShader\");\n }\n var bokehShader = _BokehShader.BokehShader;\n var bokehUniforms = _Three.UniformsUtils.clone(bokehShader.uniforms);\n bokehUniforms[\"tDepth\"].value = _this.renderTargetDepth.texture;\n bokehUniforms[\"focus\"].value = focus;\n bokehUniforms[\"aspect\"].value = aspect;\n bokehUniforms[\"aperture\"].value = aperture;\n bokehUniforms[\"maxblur\"].value = maxblur;\n bokehUniforms[\"nearClip\"].value = camera.near;\n bokehUniforms[\"farClip\"].value = camera.far;\n _this.materialBokeh = new _Three.ShaderMaterial({\n defines: Object.assign({}, bokehShader.defines),\n uniforms: bokehUniforms,\n vertexShader: bokehShader.vertexShader,\n fragmentShader: bokehShader.fragmentShader });\n\n _this.uniforms = bokehUniforms;\n _this.needsSwap = false;\n _this.fsQuad = new _Three.FullScreenQuad(_this.materialBokeh);\n _this._oldClearColor = new _Three.Color();\n return _this;\n }\n (0, _createClass2.default)(BokehPass, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer) {\n this.scene.overrideMaterial = this.materialDepth;\n renderer.getClearColor(this._oldClearColor);\n var oldClearAlpha = renderer.getClearAlpha();\n var oldAutoClear = renderer.autoClear;\n renderer.autoClear = false;\n renderer.setClearColor(0xffffff);\n renderer.setClearAlpha(1.0);\n renderer.setRenderTarget(this.renderTargetDepth);\n renderer.clear();\n renderer.render(this.scene, this.camera);\n this.uniforms[\"tColor\"].value = readBuffer.texture;\n this.uniforms[\"nearClip\"].value = this.camera.near;\n this.uniforms[\"farClip\"].value = this.camera.far;\n if (this.renderToScreen) {\n renderer.setRenderTarget(null);\n this.fsQuad.render(renderer);\n } else {\n renderer.setRenderTarget(writeBuffer);\n renderer.clear();\n this.fsQuad.render(renderer);\n }\n this.scene.overrideMaterial = null;\n renderer.setClearColor(this._oldClearColor);\n renderer.setClearAlpha(oldClearAlpha);\n renderer.autoClear = oldAutoClear;\n } }]);\n\n return BokehPass;\n }(_Three.Pass);return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/shaders/BokehShader.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/postprocessing", "outputPath": "/com/three/0.145.0/examples/jsm/postprocessing/BokehPass.js", "fileName": "/examples/jsm/postprocessing/BokehPass.js" }, "pandav:/examples/jsm/objects/ReflectorForSSRPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/objects/ReflectorForSSRPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ReflectorForSSRPass = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var ReflectorForSSRPass = exports.ReflectorForSSRPass = function (_Mesh) {\n (0, _inherits2.default)(ReflectorForSSRPass, _Mesh);\n var _super = (0, _createSuper2.default)(ReflectorForSSRPass);\n function ReflectorForSSRPass(geometry) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _classCallCheck2.default)(this, ReflectorForSSRPass);\n _this = _super.call(this, geometry);\n _this.isReflectorForSSRPass = true;\n _this.type = \"ReflectorForSSRPass\";\n var scope = (0, _assertThisInitialized2.default)(_this);\n var color = options.color !== undefined ? new _Three.Color(options.color) : new _Three.Color(0x7f7f7f);\n var textureWidth = options.textureWidth || 512;\n var textureHeight = options.textureHeight || 512;\n var clipBias = options.clipBias || 0;\n var shader = options.shader || ReflectorForSSRPass.ReflectorShader;\n var useDepthTexture = options.useDepthTexture === true;\n var yAxis = new _Three.Vector3(0, 1, 0);\n var vecTemp0 = new _Three.Vector3();\n var vecTemp1 = new _Three.Vector3();\n scope.needsUpdate = false;\n scope.maxDistance = ReflectorForSSRPass.ReflectorShader.uniforms.maxDistance.value;\n scope.opacity = ReflectorForSSRPass.ReflectorShader.uniforms.opacity.value;\n scope.color = color;\n scope.resolution = options.resolution || new _Three.Vector2(window.innerWidth, window.innerHeight);\n scope._distanceAttenuation = ReflectorForSSRPass.ReflectorShader.defines.DISTANCE_ATTENUATION;\n Object.defineProperty(scope, \"distanceAttenuation\", {\n get: function get() {\n return scope._distanceAttenuation;\n },\n set: function set(val) {\n if (scope._distanceAttenuation === val) return;\n scope._distanceAttenuation = val;\n scope.material.defines.DISTANCE_ATTENUATION = val;\n scope.material.needsUpdate = true;\n } });\n\n scope._fresnel = ReflectorForSSRPass.ReflectorShader.defines.FRESNEL;\n Object.defineProperty(scope, \"fresnel\", {\n get: function get() {\n return scope._fresnel;\n },\n set: function set(val) {\n if (scope._fresnel === val) return;\n scope._fresnel = val;\n scope.material.defines.FRESNEL = val;\n scope.material.needsUpdate = true;\n } });\n\n var normal = new _Three.Vector3();\n var reflectorWorldPosition = new _Three.Vector3();\n var cameraWorldPosition = new _Three.Vector3();\n var rotationMatrix = new _Three.Matrix4();\n var lookAtPosition = new _Three.Vector3(0, 0, -1);\n var view = new _Three.Vector3();\n var target = new _Three.Vector3();\n var textureMatrix = new _Three.Matrix4();\n var virtualCamera = new _Three.PerspectiveCamera();\n var depthTexture;\n if (useDepthTexture) {\n depthTexture = new _Three.DepthTexture();\n depthTexture.type = _Three.UnsignedShortType;\n depthTexture.minFilter = _Three.NearestFilter;\n depthTexture.magFilter = _Three.NearestFilter;\n }\n var parameters = {\n depthTexture: useDepthTexture ? depthTexture : null,\n type: _Three.HalfFloatType };\n\n var renderTarget = new _Three.WebGLRenderTarget(textureWidth, textureHeight, parameters);\n var material = new _Three.ShaderMaterial({\n transparent: useDepthTexture,\n defines: Object.assign({}, ReflectorForSSRPass.ReflectorShader.defines, {\n useDepthTexture: useDepthTexture }),\n\n uniforms: _Three.UniformsUtils.clone(shader.uniforms),\n fragmentShader: shader.fragmentShader,\n vertexShader: shader.vertexShader });\n\n material.uniforms[\"tDiffuse\"].value = renderTarget.texture;\n material.uniforms[\"color\"].value = scope.color;\n material.uniforms[\"textureMatrix\"].value = textureMatrix;\n if (useDepthTexture) {\n material.uniforms[\"tDepth\"].value = renderTarget.depthTexture;\n }\n _this.material = material;\n var globalPlane = new _Three.Plane(new _Three.Vector3(0, 1, 0), clipBias);\n var globalPlanes = [globalPlane];\n _this.doRender = function (renderer, scene, camera) {\n material.uniforms[\"maxDistance\"].value = scope.maxDistance;\n material.uniforms[\"color\"].value = scope.color;\n material.uniforms[\"opacity\"].value = scope.opacity;\n vecTemp0.copy(camera.position).normalize();\n vecTemp1.copy(vecTemp0).reflect(yAxis);\n material.uniforms[\"fresnelCoe\"].value = (vecTemp0.dot(vecTemp1) + 1) / 2;\n reflectorWorldPosition.setFromMatrixPosition(scope.matrixWorld);\n cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);\n rotationMatrix.extractRotation(scope.matrixWorld);\n normal.set(0, 0, 1);\n normal.applyMatrix4(rotationMatrix);\n view.subVectors(reflectorWorldPosition, cameraWorldPosition);\n if (view.dot(normal) > 0) return;\n view.reflect(normal).negate();\n view.add(reflectorWorldPosition);\n rotationMatrix.extractRotation(camera.matrixWorld);\n lookAtPosition.set(0, 0, -1);\n lookAtPosition.applyMatrix4(rotationMatrix);\n lookAtPosition.add(cameraWorldPosition);\n target.subVectors(reflectorWorldPosition, lookAtPosition);\n target.reflect(normal).negate();\n target.add(reflectorWorldPosition);\n virtualCamera.position.copy(view);\n virtualCamera.up.set(0, 1, 0);\n virtualCamera.up.applyMatrix4(rotationMatrix);\n virtualCamera.up.reflect(normal);\n virtualCamera.lookAt(target);\n virtualCamera.far = camera.far;\n virtualCamera.updateMatrixWorld();\n virtualCamera.projectionMatrix.copy(camera.projectionMatrix);\n material.uniforms[\"virtualCameraNear\"].value = camera.near;\n material.uniforms[\"virtualCameraFar\"].value = camera.far;\n material.uniforms[\"virtualCameraMatrixWorld\"].value = virtualCamera.matrixWorld;\n material.uniforms[\"virtualCameraProjectionMatrix\"].value = camera.projectionMatrix;\n material.uniforms[\"virtualCameraProjectionMatrixInverse\"].value = camera.projectionMatrixInverse;\n material.uniforms[\"resolution\"].value = scope.resolution;\n textureMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0);\n textureMatrix.multiply(virtualCamera.projectionMatrix);\n textureMatrix.multiply(virtualCamera.matrixWorldInverse);\n textureMatrix.multiply(scope.matrixWorld);\n var currentRenderTarget = renderer.getRenderTarget();\n var currentXrEnabled = renderer.xr.enabled;\n var currentShadowAutoUpdate = renderer.shadowMap.autoUpdate;\n var currentClippingPlanes = renderer.clippingPlanes;\n renderer.xr.enabled = false;\n renderer.shadowMap.autoUpdate = false;\n renderer.clippingPlanes = globalPlanes;\n renderer.setRenderTarget(renderTarget);\n renderer.state.buffers.depth.setMask(true);\n if (renderer.autoClear === false) renderer.clear();\n renderer.render(scene, virtualCamera);\n renderer.xr.enabled = currentXrEnabled;\n renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;\n renderer.clippingPlanes = currentClippingPlanes;\n renderer.setRenderTarget(currentRenderTarget);\n var viewport = camera.viewport;\n if (viewport !== undefined) {\n renderer.state.viewport(viewport);\n }\n };\n _this.getRenderTarget = function () {\n return renderTarget;\n };\n return _this;\n }\n return (0, _createClass2.default)(ReflectorForSSRPass);\n }(_Three.Mesh);\n ReflectorForSSRPass.ReflectorShader = {\n defines: {\n DISTANCE_ATTENUATION: true,\n FRESNEL: true },\n\n uniforms: {\n color: {\n value: null },\n\n tDiffuse: {\n value: null },\n\n tDepth: {\n value: null },\n\n textureMatrix: {\n value: new _Three.Matrix4() },\n\n maxDistance: {\n value: 180 },\n\n opacity: {\n value: 0.5 },\n\n fresnelCoe: {\n value: null },\n\n virtualCameraNear: {\n value: null },\n\n virtualCameraFar: {\n value: null },\n\n virtualCameraProjectionMatrix: {\n value: new _Three.Matrix4() },\n\n virtualCameraMatrixWorld: {\n value: new _Three.Matrix4() },\n\n virtualCameraProjectionMatrixInverse: {\n value: new _Three.Matrix4() },\n\n resolution: {\n value: new _Three.Vector2() } },\n\n\n vertexShader: \"\\n\\t\\tuniform mat4 textureMatrix;\\n\\t\\tvarying vec4 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = textureMatrix * vec4( position, 1.0 );\\n\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\t\\tuniform vec3 color;\\n\\t\\tuniform sampler2D tDiffuse;\\n\\t\\tuniform sampler2D tDepth;\\n\\t\\tuniform float maxDistance;\\n\\t\\tuniform float opacity;\\n\\t\\tuniform float fresnelCoe;\\n\\t\\tuniform float virtualCameraNear;\\n\\t\\tuniform float virtualCameraFar;\\n\\t\\tuniform mat4 virtualCameraProjectionMatrix;\\n\\t\\tuniform mat4 virtualCameraProjectionMatrixInverse;\\n\\t\\tuniform mat4 virtualCameraMatrixWorld;\\n\\t\\tuniform vec2 resolution;\\n\\t\\tvarying vec4 vUv;\\n\\t\\t#include \\n\\t\\tfloat blendOverlay( float base, float blend ) {\\n\\t\\t\\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\\n\\t\\t}\\n\\t\\tvec3 blendOverlay( vec3 base, vec3 blend ) {\\n\\t\\t\\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\\n\\t\\t}\\n\\t\\tfloat getDepth( const in vec2 uv ) {\\n\\t\\t\\treturn texture2D( tDepth, uv ).x;\\n\\t\\t}\\n\\t\\tfloat getViewZ( const in float depth ) {\\n\\t\\t\\treturn perspectiveDepthToViewZ( depth, virtualCameraNear, virtualCameraFar );\\n\\t\\t}\\n\\t\\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\\n\\t\\t\\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\\n\\t\\t\\tclipPosition *= clipW; //clip\\n\\t\\t\\treturn ( virtualCameraProjectionMatrixInverse * clipPosition ).xyz;//view\\n\\t\\t}\\n\\t\\tvoid main() {\\n\\t\\t\\tvec4 base = texture2DProj( tDiffuse, vUv );\\n\\t\\t\\t#ifdef useDepthTexture\\n\\t\\t\\t\\tvec2 uv=(gl_FragCoord.xy-.5)/resolution.xy;\\n\\t\\t\\t\\tuv.x=1.-uv.x;\\n\\t\\t\\t\\tfloat depth = texture2DProj( tDepth, vUv ).r;\\n\\t\\t\\t\\tfloat viewZ = getViewZ( depth );\\n\\t\\t\\t\\tfloat clipW = virtualCameraProjectionMatrix[2][3] * viewZ+virtualCameraProjectionMatrix[3][3];\\n\\t\\t\\t\\tvec3 viewPosition=getViewPosition( uv, depth, clipW );\\n\\t\\t\\t\\tvec3 worldPosition=(virtualCameraMatrixWorld*vec4(viewPosition,1)).xyz;\\n\\t\\t\\t\\tif(worldPosition.y>maxDistance) discard;\\n\\t\\t\\t\\tfloat op=opacity;\\n\\t\\t\\t\\t#ifdef DISTANCE_ATTENUATION\\n\\t\\t\\t\\t\\tfloat ratio=1.-(worldPosition.y/maxDistance);\\n\\t\\t\\t\\t\\tfloat attenuation=ratio*ratio;\\n\\t\\t\\t\\t\\top=opacity*attenuation;\\n\\t\\t\\t\\t#endif\\n\\t\\t\\t\\t#ifdef FRESNEL\\n\\t\\t\\t\\t\\top*=fresnelCoe;\\n\\t\\t\\t\\t#endif\\n\\t\\t\\t\\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), op );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\" };return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/objects", "outputPath": "/com/three/0.145.0/examples/jsm/objects/ReflectorForSSRPass.js", "fileName": "/examples/jsm/objects/ReflectorForSSRPass.js" }, "pandav:/examples/jsm/loaders/FBXLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/loaders/FBXLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/libsmod/fflate.module\", \"pandav:/com/three/0.145.0/examples/jsm/curves/NURBSCurve\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof3 = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.FBXLoader = void 0;\n var _typeof2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var fflate = _interopRequireWildcard(require('pandav:/com/three/0.145.0/examples/jsm/libsmod/fflate.module'));\n var _NURBSCurve = require('pandav:/com/three/0.145.0/examples/jsm/curves/NURBSCurve');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof3(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var fbxTree;\n var connections;\n var sceneGraph;\n var FBXLoader = exports.FBXLoader = function (_Loader) {\n (0, _inherits2.default)(FBXLoader, _Loader);\n var _super = (0, _createSuper2.default)(FBXLoader);\n function FBXLoader(manager) {\n (0, _classCallCheck2.default)(this, FBXLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(FBXLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var path = scope.path === \"\" ? _Three.LoaderUtils.extractUrlBase(url) : scope.path;\n var loader = new _Three.FileLoader(this.manager);\n loader.setPath(scope.path);\n loader.setResponseType(\"arraybuffer\");\n loader.setRequestHeader(scope.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (buffer) {\n try {\n onLoad(scope.parse(buffer, path));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n } },\n {\n key: \"parse\",\n value: function parse(FBXBuffer, path) {\n if (isFbxFormatBinary(FBXBuffer)) {\n fbxTree = new BinaryParser().parse(FBXBuffer);\n } else {\n var FBXText = convertArrayBufferToString(FBXBuffer);\n if (!isFbxFormatASCII(FBXText)) {\n throw new Error(\"THREE.FBXLoader: Unknown format.\");\n }\n if (getFbxVersion(FBXText) < 7000) {\n throw new Error(\"THREE.FBXLoader: FBX version not supported, FileVersion: \" + getFbxVersion(FBXText));\n }\n fbxTree = new TextParser().parse(FBXText);\n }\n var textureLoader = new _Three.TextureLoader(this.manager).setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);\n return new FBXTreeParser(textureLoader, this.manager).parse(fbxTree);\n } }]);\n\n return FBXLoader;\n }(_Three.Loader);\n var FBXTreeParser = function () {\n function FBXTreeParser(textureLoader, manager) {\n (0, _classCallCheck2.default)(this, FBXTreeParser);\n this.textureLoader = textureLoader;\n this.manager = manager;\n }\n (0, _createClass2.default)(FBXTreeParser, [{\n key: \"parse\",\n value: function parse() {\n connections = this.parseConnections();\n var images = this.parseImages();\n var textures = this.parseTextures(images);\n var materials = this.parseMaterials(textures);\n var deformers = this.parseDeformers();\n var geometryMap = new GeometryParser().parse(deformers);\n this.parseScene(deformers, geometryMap, materials);\n return sceneGraph;\n } },\n {\n key: \"parseConnections\",\n value: function parseConnections() {\n var connectionMap = new Map();\n if (\"Connections\" in fbxTree) {\n var rawConnections = fbxTree.Connections.connections;\n rawConnections.forEach(function (rawConnection) {\n var fromID = rawConnection[0];\n var toID = rawConnection[1];\n var relationship = rawConnection[2];\n if (!connectionMap.has(fromID)) {\n connectionMap.set(fromID, {\n parents: [],\n children: [] });\n\n }\n var parentRelationship = {\n ID: toID,\n relationship: relationship };\n\n connectionMap.get(fromID).parents.push(parentRelationship);\n if (!connectionMap.has(toID)) {\n connectionMap.set(toID, {\n parents: [],\n children: [] });\n\n }\n var childRelationship = {\n ID: fromID,\n relationship: relationship };\n\n connectionMap.get(toID).children.push(childRelationship);\n });\n }\n return connectionMap;\n } },\n {\n key: \"parseImages\",\n value: function parseImages() {\n var images = {};\n var blobs = {};\n if (\"Video\" in fbxTree.Objects) {\n var videoNodes = fbxTree.Objects.Video;\n for (var nodeID in videoNodes) {\n var videoNode = videoNodes[nodeID];\n var id = parseInt(nodeID);\n images[id] = videoNode.RelativeFilename || videoNode.Filename;\n if (\"Content\" in videoNode) {\n var arrayBufferContent = videoNode.Content instanceof ArrayBuffer && videoNode.Content.byteLength > 0;\n var base64Content = typeof videoNode.Content === \"string\" && videoNode.Content !== \"\";\n if (arrayBufferContent || base64Content) {\n var image = this.parseImage(videoNodes[nodeID]);\n blobs[videoNode.RelativeFilename || videoNode.Filename] = image;\n }\n }\n }\n }\n for (var _id in images) {\n var filename = images[_id];\n if (blobs[filename] !== undefined) images[_id] = blobs[filename];else images[_id] = images[_id].split(\"\\\\\").pop();\n }\n return images;\n } },\n {\n key: \"parseImage\",\n value: function parseImage(videoNode) {\n var content = videoNode.Content;\n var fileName = videoNode.RelativeFilename || videoNode.Filename;\n var extension = fileName.slice(fileName.lastIndexOf(\".\") + 1).toLowerCase();\n var type;\n switch (extension) {\n case \"bmp\":\n type = \"image/bmp\";\n break;\n case \"jpg\":\n case \"jpeg\":\n type = \"image/jpeg\";\n break;\n case \"png\":\n type = \"image/png\";\n break;\n case \"tif\":\n type = \"image/tiff\";\n break;\n case \"tga\":\n if (this.manager.getHandler(\".tga\") === null) {\n console.warn(\"FBXLoader: TGA loader not found, skipping \", fileName);\n }\n type = \"image/tga\";\n break;\n default:\n console.warn('FBXLoader: Image type \"' + extension + '\" is not supported.');\n return;}\n\n if (typeof content === \"string\") {\n return \"data:\" + type + \";base64,\" + content;\n } else {\n var array = new Uint8Array(content);\n return window.URL.createObjectURL(new Blob([array], {\n type: type }));\n\n }\n } },\n {\n key: \"parseTextures\",\n value: function parseTextures(images) {\n var textureMap = new Map();\n if (\"Texture\" in fbxTree.Objects) {\n var textureNodes = fbxTree.Objects.Texture;\n for (var nodeID in textureNodes) {\n var texture = this.parseTexture(textureNodes[nodeID], images);\n textureMap.set(parseInt(nodeID), texture);\n }\n }\n return textureMap;\n } },\n {\n key: \"parseTexture\",\n value: function parseTexture(textureNode, images) {\n var texture = this.loadTexture(textureNode, images);\n texture.ID = textureNode.id;\n texture.name = textureNode.attrName;\n var wrapModeU = textureNode.WrapModeU;\n var wrapModeV = textureNode.WrapModeV;\n var valueU = wrapModeU !== undefined ? wrapModeU.value : 0;\n var valueV = wrapModeV !== undefined ? wrapModeV.value : 0;\n texture.wrapS = valueU === 0 ? _Three.RepeatWrapping : _Three.ClampToEdgeWrapping;\n texture.wrapT = valueV === 0 ? _Three.RepeatWrapping : _Three.ClampToEdgeWrapping;\n if (\"Scaling\" in textureNode) {\n var values = textureNode.Scaling.value;\n texture.repeat.x = values[0];\n texture.repeat.y = values[1];\n }\n if (\"Translation\" in textureNode) {\n var _values = textureNode.Translation.value;\n texture.offset.x = _values[0];\n texture.offset.y = _values[1];\n }\n return texture;\n } },\n {\n key: \"loadTexture\",\n value: function loadTexture(textureNode, images) {\n var fileName;\n var currentPath = this.textureLoader.path;\n var children = connections.get(textureNode.id).children;\n if (children !== undefined && children.length > 0 && images[children[0].ID] !== undefined) {\n fileName = images[children[0].ID];\n if (fileName.indexOf(\"blob:\") === 0 || fileName.indexOf(\"data:\") === 0) {\n this.textureLoader.setPath(undefined);\n }\n }\n var texture;\n var extension = textureNode.FileName.slice(-3).toLowerCase();\n if (extension === \"tga\") {\n var loader = this.manager.getHandler(\".tga\");\n if (loader === null) {\n console.warn(\"FBXLoader: TGA loader not found, creating placeholder texture for\", textureNode.RelativeFilename);\n texture = new _Three.Texture();\n } else {\n loader.setPath(this.textureLoader.path);\n texture = loader.load(fileName);\n }\n } else if (extension === \"psd\") {\n console.warn(\"FBXLoader: PSD textures are not supported, creating placeholder texture for\", textureNode.RelativeFilename);\n texture = new _Three.Texture();\n } else {\n texture = this.textureLoader.load(fileName);\n }\n this.textureLoader.setPath(currentPath);\n return texture;\n } },\n {\n key: \"parseMaterials\",\n value: function parseMaterials(textureMap) {\n var materialMap = new Map();\n if (\"Material\" in fbxTree.Objects) {\n var materialNodes = fbxTree.Objects.Material;\n for (var nodeID in materialNodes) {\n var material = this.parseMaterial(materialNodes[nodeID], textureMap);\n if (material !== null) materialMap.set(parseInt(nodeID), material);\n }\n }\n return materialMap;\n } },\n {\n key: \"parseMaterial\",\n value: function parseMaterial(materialNode, textureMap) {\n var ID = materialNode.id;\n var name = materialNode.attrName;\n var type = materialNode.ShadingModel;\n if ((0, _typeof2.default)(type) === \"object\") {\n type = type.value;\n }\n if (!connections.has(ID)) return null;\n var parameters = this.parseParameters(materialNode, textureMap, ID);\n var material;\n switch (type.toLowerCase()) {\n case \"phong\":\n material = new _Three.MeshPhongMaterial();\n break;\n case \"lambert\":\n material = new _Three.MeshLambertMaterial();\n break;\n default:\n console.warn('THREE.FBXLoader: unknown material type \"%s\". Defaulting to MeshPhongMaterial.', type);\n material = new _Three.MeshPhongMaterial();\n break;}\n\n material.setValues(parameters);\n material.name = name;\n return material;\n } },\n {\n key: \"parseParameters\",\n value: function parseParameters(materialNode, textureMap, ID) {\n var parameters = {};\n if (materialNode.BumpFactor) {\n parameters.bumpScale = materialNode.BumpFactor.value;\n }\n if (materialNode.Diffuse) {\n parameters.color = new _Three.Color().fromArray(materialNode.Diffuse.value);\n } else if (materialNode.DiffuseColor && (materialNode.DiffuseColor.type === \"Color\" || materialNode.DiffuseColor.type === \"ColorRGB\")) {\n parameters.color = new _Three.Color().fromArray(materialNode.DiffuseColor.value);\n }\n if (materialNode.DisplacementFactor) {\n parameters.displacementScale = materialNode.DisplacementFactor.value;\n }\n if (materialNode.Emissive) {\n parameters.emissive = new _Three.Color().fromArray(materialNode.Emissive.value);\n } else if (materialNode.EmissiveColor && (materialNode.EmissiveColor.type === \"Color\" || materialNode.EmissiveColor.type === \"ColorRGB\")) {\n parameters.emissive = new _Three.Color().fromArray(materialNode.EmissiveColor.value);\n }\n if (materialNode.EmissiveFactor) {\n parameters.emissiveIntensity = parseFloat(materialNode.EmissiveFactor.value);\n }\n if (materialNode.Opacity) {\n parameters.opacity = parseFloat(materialNode.Opacity.value);\n }\n if (parameters.opacity < 1.0) {\n parameters.transparent = true;\n }\n if (materialNode.ReflectionFactor) {\n parameters.reflectivity = materialNode.ReflectionFactor.value;\n }\n if (materialNode.Shininess) {\n parameters.shininess = materialNode.Shininess.value;\n }\n if (materialNode.Specular) {\n parameters.specular = new _Three.Color().fromArray(materialNode.Specular.value);\n } else if (materialNode.SpecularColor && materialNode.SpecularColor.type === \"Color\") {\n parameters.specular = new _Three.Color().fromArray(materialNode.SpecularColor.value);\n }\n var scope = this;\n connections.get(ID).children.forEach(function (child) {\n var type = child.relationship;\n switch (type) {\n case \"Bump\":\n parameters.bumpMap = scope.getTexture(textureMap, child.ID);\n break;\n case \"Maya|TEX_ao_map\":\n parameters.aoMap = scope.getTexture(textureMap, child.ID);\n break;\n case \"DiffuseColor\":\n case \"Maya|TEX_color_map\":\n parameters.map = scope.getTexture(textureMap, child.ID);\n if (parameters.map !== undefined) {\n parameters.map.encoding = _Three.sRGBEncoding;\n }\n break;\n case \"DisplacementColor\":\n parameters.displacementMap = scope.getTexture(textureMap, child.ID);\n break;\n case \"EmissiveColor\":\n parameters.emissiveMap = scope.getTexture(textureMap, child.ID);\n if (parameters.emissiveMap !== undefined) {\n parameters.emissiveMap.encoding = _Three.sRGBEncoding;\n }\n break;\n case \"NormalMap\":\n case \"Maya|TEX_normal_map\":\n parameters.normalMap = scope.getTexture(textureMap, child.ID);\n break;\n case \"ReflectionColor\":\n parameters.envMap = scope.getTexture(textureMap, child.ID);\n if (parameters.envMap !== undefined) {\n parameters.envMap.mapping = _Three.EquirectangularReflectionMapping;\n parameters.envMap.encoding = _Three.sRGBEncoding;\n }\n break;\n case \"SpecularColor\":\n parameters.specularMap = scope.getTexture(textureMap, child.ID);\n if (parameters.specularMap !== undefined) {\n parameters.specularMap.encoding = _Three.sRGBEncoding;\n }\n break;\n case \"TransparentColor\":\n case \"TransparencyFactor\":\n parameters.alphaMap = scope.getTexture(textureMap, child.ID);\n parameters.transparent = true;\n break;\n case \"AmbientColor\":\n case \"ShininessExponent\":\n case \"SpecularFactor\":\n case \"VectorDisplacementColor\":\n default:\n console.warn(\"THREE.FBXLoader: %s map is not supported in three.js, skipping texture.\", type);\n break;}\n\n });\n return parameters;\n } },\n {\n key: \"getTexture\",\n value: function getTexture(textureMap, id) {\n if (\"LayeredTexture\" in fbxTree.Objects && id in fbxTree.Objects.LayeredTexture) {\n console.warn(\"THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.\");\n id = connections.get(id).children[0].ID;\n }\n return textureMap.get(id);\n } },\n {\n key: \"parseDeformers\",\n value: function parseDeformers() {\n var skeletons = {};\n var morphTargets = {};\n if (\"Deformer\" in fbxTree.Objects) {\n var DeformerNodes = fbxTree.Objects.Deformer;\n for (var nodeID in DeformerNodes) {\n var deformerNode = DeformerNodes[nodeID];\n var relationships = connections.get(parseInt(nodeID));\n if (deformerNode.attrType === \"Skin\") {\n var skeleton = this.parseSkeleton(relationships, DeformerNodes);\n skeleton.ID = nodeID;\n if (relationships.parents.length > 1) console.warn(\"THREE.FBXLoader: skeleton attached to more than one geometry is not supported.\");\n skeleton.geometryID = relationships.parents[0].ID;\n skeletons[nodeID] = skeleton;\n } else if (deformerNode.attrType === \"BlendShape\") {\n var morphTarget = {\n id: nodeID };\n\n morphTarget.rawTargets = this.parseMorphTargets(relationships, DeformerNodes);\n morphTarget.id = nodeID;\n if (relationships.parents.length > 1) console.warn(\"THREE.FBXLoader: morph target attached to more than one geometry is not supported.\");\n morphTargets[nodeID] = morphTarget;\n }\n }\n }\n return {\n skeletons: skeletons,\n morphTargets: morphTargets };\n\n } },\n {\n key: \"parseSkeleton\",\n value: function parseSkeleton(relationships, deformerNodes) {\n var rawBones = [];\n relationships.children.forEach(function (child) {\n var boneNode = deformerNodes[child.ID];\n if (boneNode.attrType !== \"Cluster\") return;\n var rawBone = {\n ID: child.ID,\n indices: [],\n weights: [],\n transformLink: new _Three.Matrix4().fromArray(boneNode.TransformLink.a) };\n\n if (\"Indexes\" in boneNode) {\n rawBone.indices = boneNode.Indexes.a;\n rawBone.weights = boneNode.Weights.a;\n }\n rawBones.push(rawBone);\n });\n return {\n rawBones: rawBones,\n bones: [] };\n\n } },\n {\n key: \"parseMorphTargets\",\n value: function parseMorphTargets(relationships, deformerNodes) {\n var rawMorphTargets = [];\n for (var i = 0; i < relationships.children.length; i++) {\n var child = relationships.children[i];\n var morphTargetNode = deformerNodes[child.ID];\n var rawMorphTarget = {\n name: morphTargetNode.attrName,\n initialWeight: morphTargetNode.DeformPercent,\n id: morphTargetNode.id,\n fullWeights: morphTargetNode.FullWeights.a };\n\n if (morphTargetNode.attrType !== \"BlendShapeChannel\") return;\n rawMorphTarget.geoID = connections.get(parseInt(child.ID)).children.filter(function (child) {\n return child.relationship === undefined;\n })[0].ID;\n rawMorphTargets.push(rawMorphTarget);\n }\n return rawMorphTargets;\n } },\n {\n key: \"parseScene\",\n value: function parseScene(deformers, geometryMap, materialMap) {\n sceneGraph = new _Three.Group();\n var modelMap = this.parseModels(deformers.skeletons, geometryMap, materialMap);\n var modelNodes = fbxTree.Objects.Model;\n var scope = this;\n modelMap.forEach(function (model) {\n var modelNode = modelNodes[model.ID];\n scope.setLookAtProperties(model, modelNode);\n var parentConnections = connections.get(model.ID).parents;\n parentConnections.forEach(function (connection) {\n var parent = modelMap.get(connection.ID);\n if (parent !== undefined) parent.add(model);\n });\n if (model.parent === null) {\n sceneGraph.add(model);\n }\n });\n this.bindSkeleton(deformers.skeletons, geometryMap, modelMap);\n this.createAmbientLight();\n sceneGraph.traverse(function (node) {\n if (node.userData.transformData) {\n if (node.parent) {\n node.userData.transformData.parentMatrix = node.parent.matrix;\n node.userData.transformData.parentMatrixWorld = node.parent.matrixWorld;\n }\n var transform = generateTransform(node.userData.transformData);\n node.applyMatrix4(transform);\n node.updateWorldMatrix();\n }\n });\n var animations = new AnimationParser().parse();\n if (sceneGraph.children.length === 1 && sceneGraph.children[0].isGroup) {\n sceneGraph.children[0].animations = animations;\n sceneGraph = sceneGraph.children[0];\n }\n sceneGraph.animations = animations;\n } },\n {\n key: \"parseModels\",\n value: function parseModels(skeletons, geometryMap, materialMap) {\n var modelMap = new Map();\n var modelNodes = fbxTree.Objects.Model;\n for (var nodeID in modelNodes) {\n var id = parseInt(nodeID);\n var node = modelNodes[nodeID];\n var relationships = connections.get(id);\n var model = this.buildSkeleton(relationships, skeletons, id, node.attrName);\n if (!model) {\n switch (node.attrType) {\n case \"Camera\":\n model = this.createCamera(relationships);\n break;\n case \"Light\":\n model = this.createLight(relationships);\n break;\n case \"Mesh\":\n model = this.createMesh(relationships, geometryMap, materialMap);\n break;\n case \"NurbsCurve\":\n model = this.createCurve(relationships, geometryMap);\n break;\n case \"LimbNode\":\n case \"Root\":\n model = new _Three.Bone();\n break;\n case \"Null\":\n default:\n model = new _Three.Group();\n break;}\n\n model.name = node.attrName ? _Three.PropertyBinding.sanitizeNodeName(node.attrName) : \"\";\n model.ID = id;\n }\n this.getTransformData(model, node);\n modelMap.set(id, model);\n }\n return modelMap;\n } },\n {\n key: \"buildSkeleton\",\n value: function buildSkeleton(relationships, skeletons, id, name) {\n var bone = null;\n relationships.parents.forEach(function (parent) {\n var _loop = function _loop() {\n var skeleton = skeletons[ID];\n skeleton.rawBones.forEach(function (rawBone, i) {\n if (rawBone.ID === parent.ID) {\n var subBone = bone;\n bone = new _Three.Bone();\n bone.matrixWorld.copy(rawBone.transformLink);\n bone.name = name ? _Three.PropertyBinding.sanitizeNodeName(name) : \"\";\n bone.ID = id;\n skeleton.bones[i] = bone;\n if (subBone !== null) {\n bone.add(subBone);\n }\n }\n });\n };\n for (var ID in skeletons) {\n _loop();\n }\n });\n return bone;\n } },\n {\n key: \"createCamera\",\n value: function createCamera(relationships) {\n var model;\n var cameraAttribute;\n relationships.children.forEach(function (child) {\n var attr = fbxTree.Objects.NodeAttribute[child.ID];\n if (attr !== undefined) {\n cameraAttribute = attr;\n }\n });\n if (cameraAttribute === undefined) {\n model = new _Three.Object3D();\n } else {\n var type = 0;\n if (cameraAttribute.CameraProjectionType !== undefined && cameraAttribute.CameraProjectionType.value === 1) {\n type = 1;\n }\n var nearClippingPlane = 1;\n if (cameraAttribute.NearPlane !== undefined) {\n nearClippingPlane = cameraAttribute.NearPlane.value / 1000;\n }\n var farClippingPlane = 1000;\n if (cameraAttribute.FarPlane !== undefined) {\n farClippingPlane = cameraAttribute.FarPlane.value / 1000;\n }\n var width = window.innerWidth;\n var height = window.innerHeight;\n if (cameraAttribute.AspectWidth !== undefined && cameraAttribute.AspectHeight !== undefined) {\n width = cameraAttribute.AspectWidth.value;\n height = cameraAttribute.AspectHeight.value;\n }\n var aspect = width / height;\n var fov = 45;\n if (cameraAttribute.FieldOfView !== undefined) {\n fov = cameraAttribute.FieldOfView.value;\n }\n var focalLength = cameraAttribute.FocalLength ? cameraAttribute.FocalLength.value : null;\n switch (type) {\n case 0:\n model = new _Three.PerspectiveCamera(fov, aspect, nearClippingPlane, farClippingPlane);\n if (focalLength !== null) model.setFocalLength(focalLength);\n break;\n case 1:\n model = new _Three.OrthographicCamera(-width / 2, width / 2, height / 2, -height / 2, nearClippingPlane, farClippingPlane);\n break;\n default:\n console.warn(\"THREE.FBXLoader: Unknown camera type \" + type + \".\");\n model = new _Three.Object3D();\n break;}\n\n }\n return model;\n } },\n {\n key: \"createLight\",\n value: function createLight(relationships) {\n var model;\n var lightAttribute;\n relationships.children.forEach(function (child) {\n var attr = fbxTree.Objects.NodeAttribute[child.ID];\n if (attr !== undefined) {\n lightAttribute = attr;\n }\n });\n if (lightAttribute === undefined) {\n model = new _Three.Object3D();\n } else {\n var type;\n if (lightAttribute.LightType === undefined) {\n type = 0;\n } else {\n type = lightAttribute.LightType.value;\n }\n var color = 0xffffff;\n if (lightAttribute.Color !== undefined) {\n color = new _Three.Color().fromArray(lightAttribute.Color.value);\n }\n var intensity = lightAttribute.Intensity === undefined ? 1 : lightAttribute.Intensity.value / 100;\n if (lightAttribute.CastLightOnObject !== undefined && lightAttribute.CastLightOnObject.value === 0) {\n intensity = 0;\n }\n var distance = 0;\n if (lightAttribute.FarAttenuationEnd !== undefined) {\n if (lightAttribute.EnableFarAttenuation !== undefined && lightAttribute.EnableFarAttenuation.value === 0) {\n distance = 0;\n } else {\n distance = lightAttribute.FarAttenuationEnd.value;\n }\n }\n var decay = 1;\n switch (type) {\n case 0:\n model = new _Three.PointLight(color, intensity, distance, decay);\n break;\n case 1:\n model = new _Three.DirectionalLight(color, intensity);\n break;\n case 2:\n var angle = Math.PI / 3;\n if (lightAttribute.InnerAngle !== undefined) {\n angle = _Three.MathUtils.degToRad(lightAttribute.InnerAngle.value);\n }\n var penumbra = 0;\n if (lightAttribute.OuterAngle !== undefined) {\n penumbra = _Three.MathUtils.degToRad(lightAttribute.OuterAngle.value);\n penumbra = Math.max(penumbra, 1);\n }\n model = new _Three.SpotLight(color, intensity, distance, angle, penumbra, decay);\n break;\n default:\n console.warn(\"THREE.FBXLoader: Unknown light type \" + lightAttribute.LightType.value + \", defaulting to a PointLight.\");\n model = new _Three.PointLight(color, intensity);\n break;}\n\n if (lightAttribute.CastShadows !== undefined && lightAttribute.CastShadows.value === 1) {\n model.castShadow = true;\n }\n }\n return model;\n } },\n {\n key: \"createMesh\",\n value: function createMesh(relationships, geometryMap, materialMap) {\n var model;\n var geometry = null;\n var material = null;\n var materials = [];\n relationships.children.forEach(function (child) {\n if (geometryMap.has(child.ID)) {\n geometry = geometryMap.get(child.ID);\n }\n if (materialMap.has(child.ID)) {\n materials.push(materialMap.get(child.ID));\n }\n });\n if (materials.length > 1) {\n material = materials;\n } else if (materials.length > 0) {\n material = materials[0];\n } else {\n material = new _Three.MeshPhongMaterial({\n color: 0xcccccc });\n\n materials.push(material);\n }\n if (\"color\" in geometry.attributes) {\n materials.forEach(function (material) {\n material.vertexColors = true;\n });\n }\n if (geometry.FBX_Deformer) {\n model = new _Three.SkinnedMesh(geometry, material);\n model.normalizeSkinWeights();\n } else {\n model = new _Three.Mesh(geometry, material);\n }\n return model;\n } },\n {\n key: \"createCurve\",\n value: function createCurve(relationships, geometryMap) {\n var geometry = relationships.children.reduce(function (geo, child) {\n if (geometryMap.has(child.ID)) geo = geometryMap.get(child.ID);\n return geo;\n }, null);\n var material = new _Three.LineBasicMaterial({\n color: 0x3300ff,\n linewidth: 1 });\n\n return new _Three.Line(geometry, material);\n } },\n {\n key: \"getTransformData\",\n value: function getTransformData(model, modelNode) {\n var transformData = {};\n if (\"InheritType\" in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value);\n if (\"RotationOrder\" in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value);else transformData.eulerOrder = \"ZYX\";\n if (\"Lcl_Translation\" in modelNode) transformData.translation = modelNode.Lcl_Translation.value;\n if (\"PreRotation\" in modelNode) transformData.preRotation = modelNode.PreRotation.value;\n if (\"Lcl_Rotation\" in modelNode) transformData.rotation = modelNode.Lcl_Rotation.value;\n if (\"PostRotation\" in modelNode) transformData.postRotation = modelNode.PostRotation.value;\n if (\"Lcl_Scaling\" in modelNode) transformData.scale = modelNode.Lcl_Scaling.value;\n if (\"ScalingOffset\" in modelNode) transformData.scalingOffset = modelNode.ScalingOffset.value;\n if (\"ScalingPivot\" in modelNode) transformData.scalingPivot = modelNode.ScalingPivot.value;\n if (\"RotationOffset\" in modelNode) transformData.rotationOffset = modelNode.RotationOffset.value;\n if (\"RotationPivot\" in modelNode) transformData.rotationPivot = modelNode.RotationPivot.value;\n model.userData.transformData = transformData;\n } },\n {\n key: \"setLookAtProperties\",\n value: function setLookAtProperties(model, modelNode) {\n if (\"LookAtProperty\" in modelNode) {\n var children = connections.get(model.ID).children;\n children.forEach(function (child) {\n if (child.relationship === \"LookAtProperty\") {\n var lookAtTarget = fbxTree.Objects.Model[child.ID];\n if (\"Lcl_Translation\" in lookAtTarget) {\n var pos = lookAtTarget.Lcl_Translation.value;\n if (model.target !== undefined) {\n model.target.position.fromArray(pos);\n sceneGraph.add(model.target);\n } else {\n model.lookAt(new _Three.Vector3().fromArray(pos));\n }\n }\n }\n });\n }\n } },\n {\n key: \"bindSkeleton\",\n value: function bindSkeleton(skeletons, geometryMap, modelMap) {\n var bindMatrices = this.parsePoseNodes();\n var _loop2 = function _loop2() {\n var skeleton = skeletons[ID];\n var parents = connections.get(parseInt(skeleton.ID)).parents;\n parents.forEach(function (parent) {\n if (geometryMap.has(parent.ID)) {\n var geoID = parent.ID;\n var geoRelationships = connections.get(geoID);\n geoRelationships.parents.forEach(function (geoConnParent) {\n if (modelMap.has(geoConnParent.ID)) {\n var model = modelMap.get(geoConnParent.ID);\n model.bind(new _Three.Skeleton(skeleton.bones), bindMatrices[geoConnParent.ID]);\n }\n });\n }\n });\n };\n for (var ID in skeletons) {\n _loop2();\n }\n } },\n {\n key: \"parsePoseNodes\",\n value: function parsePoseNodes() {\n var bindMatrices = {};\n if (\"Pose\" in fbxTree.Objects) {\n var BindPoseNode = fbxTree.Objects.Pose;\n for (var nodeID in BindPoseNode) {\n if (BindPoseNode[nodeID].attrType === \"BindPose\" && BindPoseNode[nodeID].NbPoseNodes > 0) {\n var poseNodes = BindPoseNode[nodeID].PoseNode;\n if (Array.isArray(poseNodes)) {\n poseNodes.forEach(function (poseNode) {\n bindMatrices[poseNode.Node] = new _Three.Matrix4().fromArray(poseNode.Matrix.a);\n });\n } else {\n bindMatrices[poseNodes.Node] = new _Three.Matrix4().fromArray(poseNodes.Matrix.a);\n }\n }\n }\n }\n return bindMatrices;\n } },\n {\n key: \"createAmbientLight\",\n value: function createAmbientLight() {\n if (\"GlobalSettings\" in fbxTree && \"AmbientColor\" in fbxTree.GlobalSettings) {\n var ambientColor = fbxTree.GlobalSettings.AmbientColor.value;\n var r = ambientColor[0];\n var g = ambientColor[1];\n var b = ambientColor[2];\n if (r !== 0 || g !== 0 || b !== 0) {\n var color = new _Three.Color(r, g, b);\n sceneGraph.add(new _Three.AmbientLight(color, 1));\n }\n }\n } }]);\n\n return FBXTreeParser;\n }();\n var GeometryParser = function () {\n function GeometryParser() {\n (0, _classCallCheck2.default)(this, GeometryParser);\n }\n (0, _createClass2.default)(GeometryParser, [{\n key: \"parse\",\n value: function parse(deformers) {\n var geometryMap = new Map();\n if (\"Geometry\" in fbxTree.Objects) {\n var geoNodes = fbxTree.Objects.Geometry;\n for (var nodeID in geoNodes) {\n var relationships = connections.get(parseInt(nodeID));\n var geo = this.parseGeometry(relationships, geoNodes[nodeID], deformers);\n geometryMap.set(parseInt(nodeID), geo);\n }\n }\n return geometryMap;\n } },\n {\n key: \"parseGeometry\",\n value: function parseGeometry(relationships, geoNode, deformers) {\n switch (geoNode.attrType) {\n case \"Mesh\":\n return this.parseMeshGeometry(relationships, geoNode, deformers);\n break;\n case \"NurbsCurve\":\n return this.parseNurbsGeometry(geoNode);\n break;}\n\n } },\n {\n key: \"parseMeshGeometry\",\n value: function parseMeshGeometry(relationships, geoNode, deformers) {\n var skeletons = deformers.skeletons;\n var morphTargets = [];\n var modelNodes = relationships.parents.map(function (parent) {\n return fbxTree.Objects.Model[parent.ID];\n });\n if (modelNodes.length === 0) return;\n var skeleton = relationships.children.reduce(function (skeleton, child) {\n if (skeletons[child.ID] !== undefined) skeleton = skeletons[child.ID];\n return skeleton;\n }, null);\n relationships.children.forEach(function (child) {\n if (deformers.morphTargets[child.ID] !== undefined) {\n morphTargets.push(deformers.morphTargets[child.ID]);\n }\n });\n var modelNode = modelNodes[0];\n var transformData = {};\n if (\"RotationOrder\" in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value);\n if (\"InheritType\" in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value);\n if (\"GeometricTranslation\" in modelNode) transformData.translation = modelNode.GeometricTranslation.value;\n if (\"GeometricRotation\" in modelNode) transformData.rotation = modelNode.GeometricRotation.value;\n if (\"GeometricScaling\" in modelNode) transformData.scale = modelNode.GeometricScaling.value;\n var transform = generateTransform(transformData);\n return this.genGeometry(geoNode, skeleton, morphTargets, transform);\n } },\n {\n key: \"genGeometry\",\n value: function genGeometry(geoNode, skeleton, morphTargets, preTransform) {\n var geo = new _Three.BufferGeometry();\n if (geoNode.attrName) geo.name = geoNode.attrName;\n var geoInfo = this.parseGeoNode(geoNode, skeleton);\n var buffers = this.genBuffers(geoInfo);\n var positionAttribute = new _Three.Float32BufferAttribute(buffers.vertex, 3);\n positionAttribute.applyMatrix4(preTransform);\n geo.setAttribute(\"position\", positionAttribute);\n if (buffers.colors.length > 0) {\n geo.setAttribute(\"color\", new _Three.Float32BufferAttribute(buffers.colors, 3));\n }\n if (skeleton) {\n geo.setAttribute(\"skinIndex\", new _Three.Uint16BufferAttribute(buffers.weightsIndices, 4));\n geo.setAttribute(\"skinWeight\", new _Three.Float32BufferAttribute(buffers.vertexWeights, 4));\n geo.FBX_Deformer = skeleton;\n }\n if (buffers.normal.length > 0) {\n var normalMatrix = new _Three.Matrix3().getNormalMatrix(preTransform);\n var normalAttribute = new _Three.Float32BufferAttribute(buffers.normal, 3);\n normalAttribute.applyNormalMatrix(normalMatrix);\n geo.setAttribute(\"normal\", normalAttribute);\n }\n buffers.uvs.forEach(function (uvBuffer, i) {\n var name = \"uv\" + (i + 1).toString();\n if (i === 0) {\n name = \"uv\";\n }\n geo.setAttribute(name, new _Three.Float32BufferAttribute(buffers.uvs[i], 2));\n });\n if (geoInfo.material && geoInfo.material.mappingType !== \"AllSame\") {\n var prevMaterialIndex = buffers.materialIndex[0];\n var startIndex = 0;\n buffers.materialIndex.forEach(function (currentIndex, i) {\n if (currentIndex !== prevMaterialIndex) {\n geo.addGroup(startIndex, i - startIndex, prevMaterialIndex);\n prevMaterialIndex = currentIndex;\n startIndex = i;\n }\n });\n if (geo.groups.length > 0) {\n var lastGroup = geo.groups[geo.groups.length - 1];\n var lastIndex = lastGroup.start + lastGroup.count;\n if (lastIndex !== buffers.materialIndex.length) {\n geo.addGroup(lastIndex, buffers.materialIndex.length - lastIndex, prevMaterialIndex);\n }\n }\n if (geo.groups.length === 0) {\n geo.addGroup(0, buffers.materialIndex.length, buffers.materialIndex[0]);\n }\n }\n this.addMorphTargets(geo, geoNode, morphTargets, preTransform);\n return geo;\n } },\n {\n key: \"parseGeoNode\",\n value: function parseGeoNode(geoNode, skeleton) {\n var geoInfo = {};\n geoInfo.vertexPositions = geoNode.Vertices !== undefined ? geoNode.Vertices.a : [];\n geoInfo.vertexIndices = geoNode.PolygonVertexIndex !== undefined ? geoNode.PolygonVertexIndex.a : [];\n if (geoNode.LayerElementColor) {\n geoInfo.color = this.parseVertexColors(geoNode.LayerElementColor[0]);\n }\n if (geoNode.LayerElementMaterial) {\n geoInfo.material = this.parseMaterialIndices(geoNode.LayerElementMaterial[0]);\n }\n if (geoNode.LayerElementNormal) {\n geoInfo.normal = this.parseNormals(geoNode.LayerElementNormal[0]);\n }\n if (geoNode.LayerElementUV) {\n geoInfo.uv = [];\n var i = 0;\n while (geoNode.LayerElementUV[i]) {\n if (geoNode.LayerElementUV[i].UV) {\n geoInfo.uv.push(this.parseUVs(geoNode.LayerElementUV[i]));\n }\n i++;\n }\n }\n geoInfo.weightTable = {};\n if (skeleton !== null) {\n geoInfo.skeleton = skeleton;\n skeleton.rawBones.forEach(function (rawBone, i) {\n rawBone.indices.forEach(function (index, j) {\n if (geoInfo.weightTable[index] === undefined) geoInfo.weightTable[index] = [];\n geoInfo.weightTable[index].push({\n id: i,\n weight: rawBone.weights[j] });\n\n });\n });\n }\n return geoInfo;\n } },\n {\n key: \"genBuffers\",\n value: function genBuffers(geoInfo) {\n var buffers = {\n vertex: [],\n normal: [],\n colors: [],\n uvs: [],\n materialIndex: [],\n vertexWeights: [],\n weightsIndices: [] };\n\n var polygonIndex = 0;\n var faceLength = 0;\n var displayedWeightsWarning = false;\n var facePositionIndexes = [];\n var faceNormals = [];\n var faceColors = [];\n var faceUVs = [];\n var faceWeights = [];\n var faceWeightIndices = [];\n var scope = this;\n geoInfo.vertexIndices.forEach(function (vertexIndex, polygonVertexIndex) {\n var materialIndex;\n var endOfFace = false;\n if (vertexIndex < 0) {\n vertexIndex = vertexIndex ^ -1;\n endOfFace = true;\n }\n var weightIndices = [];\n var weights = [];\n facePositionIndexes.push(vertexIndex * 3, vertexIndex * 3 + 1, vertexIndex * 3 + 2);\n if (geoInfo.color) {\n var data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.color);\n faceColors.push(data[0], data[1], data[2]);\n }\n if (geoInfo.skeleton) {\n if (geoInfo.weightTable[vertexIndex] !== undefined) {\n geoInfo.weightTable[vertexIndex].forEach(function (wt) {\n weights.push(wt.weight);\n weightIndices.push(wt.id);\n });\n }\n if (weights.length > 4) {\n if (!displayedWeightsWarning) {\n console.warn(\"THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.\");\n displayedWeightsWarning = true;\n }\n var wIndex = [0, 0, 0, 0];\n var Weight = [0, 0, 0, 0];\n weights.forEach(function (weight, weightIndex) {\n var currentWeight = weight;\n var currentIndex = weightIndices[weightIndex];\n Weight.forEach(function (comparedWeight, comparedWeightIndex, comparedWeightArray) {\n if (currentWeight > comparedWeight) {\n comparedWeightArray[comparedWeightIndex] = currentWeight;\n currentWeight = comparedWeight;\n var tmp = wIndex[comparedWeightIndex];\n wIndex[comparedWeightIndex] = currentIndex;\n currentIndex = tmp;\n }\n });\n });\n weightIndices = wIndex;\n weights = Weight;\n }\n while (weights.length < 4) {\n weights.push(0);\n weightIndices.push(0);\n }\n for (var i = 0; i < 4; ++i) {\n faceWeights.push(weights[i]);\n faceWeightIndices.push(weightIndices[i]);\n }\n }\n if (geoInfo.normal) {\n var _data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.normal);\n faceNormals.push(_data[0], _data[1], _data[2]);\n }\n if (geoInfo.material && geoInfo.material.mappingType !== \"AllSame\") {\n materialIndex = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.material)[0];\n if (materialIndex < 0) {\n console.warn(\"THREE.FBXLoader: Invalid material index:\", materialIndex);\n materialIndex = 0;\n }\n }\n if (geoInfo.uv) {\n geoInfo.uv.forEach(function (uv, i) {\n var data = getData(polygonVertexIndex, polygonIndex, vertexIndex, uv);\n if (faceUVs[i] === undefined) {\n faceUVs[i] = [];\n }\n faceUVs[i].push(data[0]);\n faceUVs[i].push(data[1]);\n });\n }\n faceLength++;\n if (endOfFace) {\n scope.genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength);\n polygonIndex++;\n faceLength = 0;\n facePositionIndexes = [];\n faceNormals = [];\n faceColors = [];\n faceUVs = [];\n faceWeights = [];\n faceWeightIndices = [];\n }\n });\n return buffers;\n } },\n {\n key: \"genFace\",\n value: function genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength) {\n var _loop3 = function _loop3(i) {\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[0]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[2]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3 + 1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[(i - 1) * 3 + 2]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3 + 1]]);\n buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i * 3 + 2]]);\n if (geoInfo.skeleton) {\n buffers.vertexWeights.push(faceWeights[0]);\n buffers.vertexWeights.push(faceWeights[1]);\n buffers.vertexWeights.push(faceWeights[2]);\n buffers.vertexWeights.push(faceWeights[3]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 1]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 2]);\n buffers.vertexWeights.push(faceWeights[(i - 1) * 4 + 3]);\n buffers.vertexWeights.push(faceWeights[i * 4]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 1]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 2]);\n buffers.vertexWeights.push(faceWeights[i * 4 + 3]);\n buffers.weightsIndices.push(faceWeightIndices[0]);\n buffers.weightsIndices.push(faceWeightIndices[1]);\n buffers.weightsIndices.push(faceWeightIndices[2]);\n buffers.weightsIndices.push(faceWeightIndices[3]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 1]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 2]);\n buffers.weightsIndices.push(faceWeightIndices[(i - 1) * 4 + 3]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 1]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 2]);\n buffers.weightsIndices.push(faceWeightIndices[i * 4 + 3]);\n }\n if (geoInfo.color) {\n buffers.colors.push(faceColors[0]);\n buffers.colors.push(faceColors[1]);\n buffers.colors.push(faceColors[2]);\n buffers.colors.push(faceColors[(i - 1) * 3]);\n buffers.colors.push(faceColors[(i - 1) * 3 + 1]);\n buffers.colors.push(faceColors[(i - 1) * 3 + 2]);\n buffers.colors.push(faceColors[i * 3]);\n buffers.colors.push(faceColors[i * 3 + 1]);\n buffers.colors.push(faceColors[i * 3 + 2]);\n }\n if (geoInfo.material && geoInfo.material.mappingType !== \"AllSame\") {\n buffers.materialIndex.push(materialIndex);\n buffers.materialIndex.push(materialIndex);\n buffers.materialIndex.push(materialIndex);\n }\n if (geoInfo.normal) {\n buffers.normal.push(faceNormals[0]);\n buffers.normal.push(faceNormals[1]);\n buffers.normal.push(faceNormals[2]);\n buffers.normal.push(faceNormals[(i - 1) * 3]);\n buffers.normal.push(faceNormals[(i - 1) * 3 + 1]);\n buffers.normal.push(faceNormals[(i - 1) * 3 + 2]);\n buffers.normal.push(faceNormals[i * 3]);\n buffers.normal.push(faceNormals[i * 3 + 1]);\n buffers.normal.push(faceNormals[i * 3 + 2]);\n }\n if (geoInfo.uv) {\n geoInfo.uv.forEach(function (uv, j) {\n if (buffers.uvs[j] === undefined) buffers.uvs[j] = [];\n buffers.uvs[j].push(faceUVs[j][0]);\n buffers.uvs[j].push(faceUVs[j][1]);\n buffers.uvs[j].push(faceUVs[j][(i - 1) * 2]);\n buffers.uvs[j].push(faceUVs[j][(i - 1) * 2 + 1]);\n buffers.uvs[j].push(faceUVs[j][i * 2]);\n buffers.uvs[j].push(faceUVs[j][i * 2 + 1]);\n });\n }\n };\n for (var i = 2; i < faceLength; i++) {\n _loop3(i);\n }\n } },\n {\n key: \"addMorphTargets\",\n value: function addMorphTargets(parentGeo, parentGeoNode, morphTargets, preTransform) {\n if (morphTargets.length === 0) return;\n parentGeo.morphTargetsRelative = true;\n parentGeo.morphAttributes.position = [];\n var scope = this;\n morphTargets.forEach(function (morphTarget) {\n morphTarget.rawTargets.forEach(function (rawTarget) {\n var morphGeoNode = fbxTree.Objects.Geometry[rawTarget.geoID];\n if (morphGeoNode !== undefined) {\n scope.genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, rawTarget.name);\n }\n });\n });\n } },\n {\n key: \"genMorphGeometry\",\n value: function genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, name) {\n var vertexIndices = parentGeoNode.PolygonVertexIndex !== undefined ? parentGeoNode.PolygonVertexIndex.a : [];\n var morphPositionsSparse = morphGeoNode.Vertices !== undefined ? morphGeoNode.Vertices.a : [];\n var indices = morphGeoNode.Indexes !== undefined ? morphGeoNode.Indexes.a : [];\n var length = parentGeo.attributes.position.count * 3;\n var morphPositions = new Float32Array(length);\n for (var i = 0; i < indices.length; i++) {\n var morphIndex = indices[i] * 3;\n morphPositions[morphIndex] = morphPositionsSparse[i * 3];\n morphPositions[morphIndex + 1] = morphPositionsSparse[i * 3 + 1];\n morphPositions[morphIndex + 2] = morphPositionsSparse[i * 3 + 2];\n }\n var morphGeoInfo = {\n vertexIndices: vertexIndices,\n vertexPositions: morphPositions };\n\n var morphBuffers = this.genBuffers(morphGeoInfo);\n var positionAttribute = new _Three.Float32BufferAttribute(morphBuffers.vertex, 3);\n positionAttribute.name = name || morphGeoNode.attrName;\n positionAttribute.applyMatrix4(preTransform);\n parentGeo.morphAttributes.position.push(positionAttribute);\n } },\n {\n key: \"parseNormals\",\n value: function parseNormals(NormalNode) {\n var mappingType = NormalNode.MappingInformationType;\n var referenceType = NormalNode.ReferenceInformationType;\n var buffer = NormalNode.Normals.a;\n var indexBuffer = [];\n if (referenceType === \"IndexToDirect\") {\n if (\"NormalIndex\" in NormalNode) {\n indexBuffer = NormalNode.NormalIndex.a;\n } else if (\"NormalsIndex\" in NormalNode) {\n indexBuffer = NormalNode.NormalsIndex.a;\n }\n }\n return {\n dataSize: 3,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType };\n\n } },\n {\n key: \"parseUVs\",\n value: function parseUVs(UVNode) {\n var mappingType = UVNode.MappingInformationType;\n var referenceType = UVNode.ReferenceInformationType;\n var buffer = UVNode.UV.a;\n var indexBuffer = [];\n if (referenceType === \"IndexToDirect\") {\n indexBuffer = UVNode.UVIndex.a;\n }\n return {\n dataSize: 2,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType };\n\n } },\n {\n key: \"parseVertexColors\",\n value: function parseVertexColors(ColorNode) {\n var mappingType = ColorNode.MappingInformationType;\n var referenceType = ColorNode.ReferenceInformationType;\n var buffer = ColorNode.Colors.a;\n var indexBuffer = [];\n if (referenceType === \"IndexToDirect\") {\n indexBuffer = ColorNode.ColorIndex.a;\n }\n return {\n dataSize: 4,\n buffer: buffer,\n indices: indexBuffer,\n mappingType: mappingType,\n referenceType: referenceType };\n\n } },\n {\n key: \"parseMaterialIndices\",\n value: function parseMaterialIndices(MaterialNode) {\n var mappingType = MaterialNode.MappingInformationType;\n var referenceType = MaterialNode.ReferenceInformationType;\n if (mappingType === \"NoMappingInformation\") {\n return {\n dataSize: 1,\n buffer: [0],\n indices: [0],\n mappingType: \"AllSame\",\n referenceType: referenceType };\n\n }\n var materialIndexBuffer = MaterialNode.Materials.a;\n var materialIndices = [];\n for (var i = 0; i < materialIndexBuffer.length; ++i) {\n materialIndices.push(i);\n }\n return {\n dataSize: 1,\n buffer: materialIndexBuffer,\n indices: materialIndices,\n mappingType: mappingType,\n referenceType: referenceType };\n\n } },\n {\n key: \"parseNurbsGeometry\",\n value: function parseNurbsGeometry(geoNode) {\n if (_NURBSCurve.NURBSCurve === undefined) {\n console.error(\"THREE.FBXLoader: The loader relies on NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry.\");\n return new _Three.BufferGeometry();\n }\n var order = parseInt(geoNode.Order);\n if (isNaN(order)) {\n console.error(\"THREE.FBXLoader: Invalid Order %s given for geometry ID: %s\", geoNode.Order, geoNode.id);\n return new _Three.BufferGeometry();\n }\n var degree = order - 1;\n var knots = geoNode.KnotVector.a;\n var controlPoints = [];\n var pointsValues = geoNode.Points.a;\n for (var i = 0, l = pointsValues.length; i < l; i += 4) {\n controlPoints.push(new _Three.Vector4().fromArray(pointsValues, i));\n }\n var startKnot, endKnot;\n if (geoNode.Form === \"Closed\") {\n controlPoints.push(controlPoints[0]);\n } else if (geoNode.Form === \"Periodic\") {\n startKnot = degree;\n endKnot = knots.length - 1 - startKnot;\n for (var _i = 0; _i < degree; ++_i) {\n controlPoints.push(controlPoints[_i]);\n }\n }\n var curve = new _NURBSCurve.NURBSCurve(degree, knots, controlPoints, startKnot, endKnot);\n var points = curve.getPoints(controlPoints.length * 12);\n return new _Three.BufferGeometry().setFromPoints(points);\n } }]);\n\n return GeometryParser;\n }();\n var AnimationParser = function () {\n function AnimationParser() {\n (0, _classCallCheck2.default)(this, AnimationParser);\n }\n (0, _createClass2.default)(AnimationParser, [{\n key: \"parse\",\n value: function parse() {\n var animationClips = [];\n var rawClips = this.parseClips();\n if (rawClips !== undefined) {\n for (var key in rawClips) {\n var rawClip = rawClips[key];\n var clip = this.addClip(rawClip);\n animationClips.push(clip);\n }\n }\n return animationClips;\n } },\n {\n key: \"parseClips\",\n value: function parseClips() {\n if (fbxTree.Objects.AnimationCurve === undefined) return undefined;\n var curveNodesMap = this.parseAnimationCurveNodes();\n this.parseAnimationCurves(curveNodesMap);\n var layersMap = this.parseAnimationLayers(curveNodesMap);\n var rawClips = this.parseAnimStacks(layersMap);\n return rawClips;\n } },\n {\n key: \"parseAnimationCurveNodes\",\n value: function parseAnimationCurveNodes() {\n var rawCurveNodes = fbxTree.Objects.AnimationCurveNode;\n var curveNodesMap = new Map();\n for (var nodeID in rawCurveNodes) {\n var rawCurveNode = rawCurveNodes[nodeID];\n if (rawCurveNode.attrName.match(/S|R|T|DeformPercent/) !== null) {\n var curveNode = {\n id: rawCurveNode.id,\n attr: rawCurveNode.attrName,\n curves: {} };\n\n curveNodesMap.set(curveNode.id, curveNode);\n }\n }\n return curveNodesMap;\n } },\n {\n key: \"parseAnimationCurves\",\n value: function parseAnimationCurves(curveNodesMap) {\n var rawCurves = fbxTree.Objects.AnimationCurve;\n for (var nodeID in rawCurves) {\n var animationCurve = {\n id: rawCurves[nodeID].id,\n times: rawCurves[nodeID].KeyTime.a.map(convertFBXTimeToSeconds),\n values: rawCurves[nodeID].KeyValueFloat.a };\n\n var relationships = connections.get(animationCurve.id);\n if (relationships !== undefined) {\n var animationCurveID = relationships.parents[0].ID;\n var animationCurveRelationship = relationships.parents[0].relationship;\n if (animationCurveRelationship.match(/X/)) {\n curveNodesMap.get(animationCurveID).curves[\"x\"] = animationCurve;\n } else if (animationCurveRelationship.match(/Y/)) {\n curveNodesMap.get(animationCurveID).curves[\"y\"] = animationCurve;\n } else if (animationCurveRelationship.match(/Z/)) {\n curveNodesMap.get(animationCurveID).curves[\"z\"] = animationCurve;\n } else if (animationCurveRelationship.match(/d|DeformPercent/) && curveNodesMap.has(animationCurveID)) {\n curveNodesMap.get(animationCurveID).curves[\"morph\"] = animationCurve;\n }\n }\n }\n } },\n {\n key: \"parseAnimationLayers\",\n value: function parseAnimationLayers(curveNodesMap) {\n var rawLayers = fbxTree.Objects.AnimationLayer;\n var layersMap = new Map();\n var _loop4 = function _loop4() {\n var layerCurveNodes = [];\n var connection = connections.get(parseInt(nodeID));\n if (connection !== undefined) {\n var children = connection.children;\n children.forEach(function (child, i) {\n if (curveNodesMap.has(child.ID)) {\n var curveNode = curveNodesMap.get(child.ID);\n if (curveNode.curves.x !== undefined || curveNode.curves.y !== undefined || curveNode.curves.z !== undefined) {\n if (layerCurveNodes[i] === undefined) {\n var modelID = connections.get(child.ID).parents.filter(function (parent) {\n return parent.relationship !== undefined;\n })[0].ID;\n if (modelID !== undefined) {\n var rawModel = fbxTree.Objects.Model[modelID.toString()];\n if (rawModel === undefined) {\n console.warn(\"THREE.FBXLoader: Encountered a unused curve.\", child);\n return;\n }\n var node = {\n modelName: rawModel.attrName ? _Three.PropertyBinding.sanitizeNodeName(rawModel.attrName) : \"\",\n ID: rawModel.id,\n initialPosition: [0, 0, 0],\n initialRotation: [0, 0, 0],\n initialScale: [1, 1, 1] };\n\n sceneGraph.traverse(function (child) {\n if (child.ID === rawModel.id) {\n node.transform = child.matrix;\n if (child.userData.transformData) node.eulerOrder = child.userData.transformData.eulerOrder;\n }\n });\n if (!node.transform) node.transform = new _Three.Matrix4();\n if (\"PreRotation\" in rawModel) node.preRotation = rawModel.PreRotation.value;\n if (\"PostRotation\" in rawModel) node.postRotation = rawModel.PostRotation.value;\n layerCurveNodes[i] = node;\n }\n }\n if (layerCurveNodes[i]) layerCurveNodes[i][curveNode.attr] = curveNode;\n } else if (curveNode.curves.morph !== undefined) {\n if (layerCurveNodes[i] === undefined) {\n var deformerID = connections.get(child.ID).parents.filter(function (parent) {\n return parent.relationship !== undefined;\n })[0].ID;\n var morpherID = connections.get(deformerID).parents[0].ID;\n var geoID = connections.get(morpherID).parents[0].ID;\n var _modelID = connections.get(geoID).parents[0].ID;\n var _rawModel = fbxTree.Objects.Model[_modelID];\n var _node = {\n modelName: _rawModel.attrName ? _Three.PropertyBinding.sanitizeNodeName(_rawModel.attrName) : \"\",\n morphName: fbxTree.Objects.Deformer[deformerID].attrName };\n\n layerCurveNodes[i] = _node;\n }\n layerCurveNodes[i][curveNode.attr] = curveNode;\n }\n }\n });\n layersMap.set(parseInt(nodeID), layerCurveNodes);\n }\n };\n for (var nodeID in rawLayers) {\n _loop4();\n }\n return layersMap;\n } },\n {\n key: \"parseAnimStacks\",\n value: function parseAnimStacks(layersMap) {\n var rawStacks = fbxTree.Objects.AnimationStack;\n var rawClips = {};\n for (var nodeID in rawStacks) {\n var children = connections.get(parseInt(nodeID)).children;\n if (children.length > 1) {\n console.warn(\"THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.\");\n }\n var layer = layersMap.get(children[0].ID);\n rawClips[nodeID] = {\n name: rawStacks[nodeID].attrName,\n layer: layer };\n\n }\n return rawClips;\n } },\n {\n key: \"addClip\",\n value: function addClip(rawClip) {\n var tracks = [];\n var scope = this;\n rawClip.layer.forEach(function (rawTracks) {\n tracks = tracks.concat(scope.generateTracks(rawTracks));\n });\n return new _Three.AnimationClip(rawClip.name, -1, tracks);\n } },\n {\n key: \"generateTracks\",\n value: function generateTracks(rawTracks) {\n var tracks = [];\n var initialPosition = new _Three.Vector3();\n var initialRotation = new _Three.Quaternion();\n var initialScale = new _Three.Vector3();\n if (rawTracks.transform) rawTracks.transform.decompose(initialPosition, initialRotation, initialScale);\n initialPosition = initialPosition.toArray();\n initialRotation = new _Three.Euler().setFromQuaternion(initialRotation, rawTracks.eulerOrder).toArray();\n initialScale = initialScale.toArray();\n if (rawTracks.T !== undefined && Object.keys(rawTracks.T.curves).length > 0) {\n var positionTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.T.curves, initialPosition, \"position\");\n if (positionTrack !== undefined) tracks.push(positionTrack);\n }\n if (rawTracks.R !== undefined && Object.keys(rawTracks.R.curves).length > 0) {\n var rotationTrack = this.generateRotationTrack(rawTracks.modelName, rawTracks.R.curves, initialRotation, rawTracks.preRotation, rawTracks.postRotation, rawTracks.eulerOrder);\n if (rotationTrack !== undefined) tracks.push(rotationTrack);\n }\n if (rawTracks.S !== undefined && Object.keys(rawTracks.S.curves).length > 0) {\n var scaleTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.S.curves, initialScale, \"scale\");\n if (scaleTrack !== undefined) tracks.push(scaleTrack);\n }\n if (rawTracks.DeformPercent !== undefined) {\n var morphTrack = this.generateMorphTrack(rawTracks);\n if (morphTrack !== undefined) tracks.push(morphTrack);\n }\n return tracks;\n } },\n {\n key: \"generateVectorTrack\",\n value: function generateVectorTrack(modelName, curves, initialValue, type) {\n var times = this.getTimesForAllAxes(curves);\n var values = this.getKeyframeTrackValues(times, curves, initialValue);\n return new _Three.VectorKeyframeTrack(modelName + \".\" + type, times, values);\n } },\n {\n key: \"generateRotationTrack\",\n value: function generateRotationTrack(modelName, curves, initialValue, preRotation, postRotation, eulerOrder) {\n if (curves.x !== undefined) {\n this.interpolateRotations(curves.x);\n curves.x.values = curves.x.values.map(_Three.MathUtils.degToRad);\n }\n if (curves.y !== undefined) {\n this.interpolateRotations(curves.y);\n curves.y.values = curves.y.values.map(_Three.MathUtils.degToRad);\n }\n if (curves.z !== undefined) {\n this.interpolateRotations(curves.z);\n curves.z.values = curves.z.values.map(_Three.MathUtils.degToRad);\n }\n var times = this.getTimesForAllAxes(curves);\n var values = this.getKeyframeTrackValues(times, curves, initialValue);\n if (preRotation !== undefined) {\n preRotation = preRotation.map(_Three.MathUtils.degToRad);\n preRotation.push(eulerOrder);\n preRotation = new _Three.Euler().fromArray(preRotation);\n preRotation = new _Three.Quaternion().setFromEuler(preRotation);\n }\n if (postRotation !== undefined) {\n postRotation = postRotation.map(_Three.MathUtils.degToRad);\n postRotation.push(eulerOrder);\n postRotation = new _Three.Euler().fromArray(postRotation);\n postRotation = new _Three.Quaternion().setFromEuler(postRotation).invert();\n }\n var quaternion = new _Three.Quaternion();\n var euler = new _Three.Euler();\n var quaternionValues = [];\n for (var i = 0; i < values.length; i += 3) {\n euler.set(values[i], values[i + 1], values[i + 2], eulerOrder);\n quaternion.setFromEuler(euler);\n if (preRotation !== undefined) quaternion.premultiply(preRotation);\n if (postRotation !== undefined) quaternion.multiply(postRotation);\n quaternion.toArray(quaternionValues, i / 3 * 4);\n }\n return new _Three.QuaternionKeyframeTrack(modelName + \".quaternion\", times, quaternionValues);\n } },\n {\n key: \"generateMorphTrack\",\n value: function generateMorphTrack(rawTracks) {\n var curves = rawTracks.DeformPercent.curves.morph;\n var values = curves.values.map(function (val) {\n return val / 100;\n });\n var morphNum = sceneGraph.getObjectByName(rawTracks.modelName).morphTargetDictionary[rawTracks.morphName];\n return new _Three.NumberKeyframeTrack(rawTracks.modelName + \".morphTargetInfluences[\" + morphNum + \"]\", curves.times, values);\n } },\n {\n key: \"getTimesForAllAxes\",\n value: function getTimesForAllAxes(curves) {\n var times = [];\n if (curves.x !== undefined) times = times.concat(curves.x.times);\n if (curves.y !== undefined) times = times.concat(curves.y.times);\n if (curves.z !== undefined) times = times.concat(curves.z.times);\n times = times.sort(function (a, b) {\n return a - b;\n });\n if (times.length > 1) {\n var targetIndex = 1;\n var lastValue = times[0];\n for (var i = 1; i < times.length; i++) {\n var currentValue = times[i];\n if (currentValue !== lastValue) {\n times[targetIndex] = currentValue;\n lastValue = currentValue;\n targetIndex++;\n }\n }\n times = times.slice(0, targetIndex);\n }\n return times;\n } },\n {\n key: \"getKeyframeTrackValues\",\n value: function getKeyframeTrackValues(times, curves, initialValue) {\n var prevValue = initialValue;\n var values = [];\n var xIndex = -1;\n var yIndex = -1;\n var zIndex = -1;\n times.forEach(function (time) {\n if (curves.x) xIndex = curves.x.times.indexOf(time);\n if (curves.y) yIndex = curves.y.times.indexOf(time);\n if (curves.z) zIndex = curves.z.times.indexOf(time);\n if (xIndex !== -1) {\n var xValue = curves.x.values[xIndex];\n values.push(xValue);\n prevValue[0] = xValue;\n } else {\n values.push(prevValue[0]);\n }\n if (yIndex !== -1) {\n var yValue = curves.y.values[yIndex];\n values.push(yValue);\n prevValue[1] = yValue;\n } else {\n values.push(prevValue[1]);\n }\n if (zIndex !== -1) {\n var zValue = curves.z.values[zIndex];\n values.push(zValue);\n prevValue[2] = zValue;\n } else {\n values.push(prevValue[2]);\n }\n });\n return values;\n } },\n {\n key: \"interpolateRotations\",\n value: function interpolateRotations(curve) {\n for (var i = 1; i < curve.values.length; i++) {\n var initialValue = curve.values[i - 1];\n var valuesSpan = curve.values[i] - initialValue;\n var absoluteSpan = Math.abs(valuesSpan);\n if (absoluteSpan >= 180) {\n var numSubIntervals = absoluteSpan / 180;\n var step = valuesSpan / numSubIntervals;\n var nextValue = initialValue + step;\n var initialTime = curve.times[i - 1];\n var timeSpan = curve.times[i] - initialTime;\n var interval = timeSpan / numSubIntervals;\n var nextTime = initialTime + interval;\n var interpolatedTimes = [];\n var interpolatedValues = [];\n while (nextTime < curve.times[i]) {\n interpolatedTimes.push(nextTime);\n nextTime += interval;\n interpolatedValues.push(nextValue);\n nextValue += step;\n }\n curve.times = inject(curve.times, i, interpolatedTimes);\n curve.values = inject(curve.values, i, interpolatedValues);\n }\n }\n } }]);\n\n return AnimationParser;\n }();\n var TextParser = function () {\n function TextParser() {\n (0, _classCallCheck2.default)(this, TextParser);\n }\n (0, _createClass2.default)(TextParser, [{\n key: \"getPrevNode\",\n value: function getPrevNode() {\n return this.nodeStack[this.currentIndent - 2];\n } },\n {\n key: \"getCurrentNode\",\n value: function getCurrentNode() {\n return this.nodeStack[this.currentIndent - 1];\n } },\n {\n key: \"getCurrentProp\",\n value: function getCurrentProp() {\n return this.currentProp;\n } },\n {\n key: \"pushStack\",\n value: function pushStack(node) {\n this.nodeStack.push(node);\n this.currentIndent += 1;\n } },\n {\n key: \"popStack\",\n value: function popStack() {\n this.nodeStack.pop();\n this.currentIndent -= 1;\n } },\n {\n key: \"setCurrentProp\",\n value: function setCurrentProp(val, name) {\n this.currentProp = val;\n this.currentPropName = name;\n } },\n {\n key: \"parse\",\n value: function parse(text) {\n this.currentIndent = 0;\n this.allNodes = new FBXTree();\n this.nodeStack = [];\n this.currentProp = [];\n this.currentPropName = \"\";\n var scope = this;\n var split = text.split(/[\\r\\n]+/);\n split.forEach(function (line, i) {\n var matchComment = line.match(/^[\\s\\t]*;/);\n var matchEmpty = line.match(/^[\\s\\t]*$/);\n if (matchComment || matchEmpty) return;\n var matchBeginning = line.match(\"^\\\\t{\" + scope.currentIndent + \"}(\\\\w+):(.*){\", \"\");\n var matchProperty = line.match(\"^\\\\t{\" + scope.currentIndent + \"}(\\\\w+):[\\\\s\\\\t\\\\r\\\\n](.*)\");\n var matchEnd = line.match(\"^\\\\t{\" + (scope.currentIndent - 1) + \"}}\");\n if (matchBeginning) {\n scope.parseNodeBegin(line, matchBeginning);\n } else if (matchProperty) {\n scope.parseNodeProperty(line, matchProperty, split[++i]);\n } else if (matchEnd) {\n scope.popStack();\n } else if (line.match(/^[^\\s\\t}]/)) {\n scope.parseNodePropertyContinued(line);\n }\n });\n return this.allNodes;\n } },\n {\n key: \"parseNodeBegin\",\n value: function parseNodeBegin(line, property) {\n var nodeName = property[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n var nodeAttrs = property[2].split(\",\").map(function (attr) {\n return attr.trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n });\n var node = {\n name: nodeName };\n\n var attrs = this.parseNodeAttr(nodeAttrs);\n var currentNode = this.getCurrentNode();\n if (this.currentIndent === 0) {\n this.allNodes.add(nodeName, node);\n } else {\n if (nodeName in currentNode) {\n if (nodeName === \"PoseNode\") {\n currentNode.PoseNode.push(node);\n } else if (currentNode[nodeName].id !== undefined) {\n currentNode[nodeName] = {};\n currentNode[nodeName][currentNode[nodeName].id] = currentNode[nodeName];\n }\n if (attrs.id !== \"\") currentNode[nodeName][attrs.id] = node;\n } else if (typeof attrs.id === \"number\") {\n currentNode[nodeName] = {};\n currentNode[nodeName][attrs.id] = node;\n } else if (nodeName !== \"Properties70\") {\n if (nodeName === \"PoseNode\") currentNode[nodeName] = [node];else currentNode[nodeName] = node;\n }\n }\n if (typeof attrs.id === \"number\") node.id = attrs.id;\n if (attrs.name !== \"\") node.attrName = attrs.name;\n if (attrs.type !== \"\") node.attrType = attrs.type;\n this.pushStack(node);\n } },\n {\n key: \"parseNodeAttr\",\n value: function parseNodeAttr(attrs) {\n var id = attrs[0];\n if (attrs[0] !== \"\") {\n id = parseInt(attrs[0]);\n if (isNaN(id)) {\n id = attrs[0];\n }\n }\n var name = \"\",\n type = \"\";\n if (attrs.length > 1) {\n name = attrs[1].replace(/^(\\w+)::/, \"\");\n type = attrs[2];\n }\n return {\n id: id,\n name: name,\n type: type };\n\n } },\n {\n key: \"parseNodeProperty\",\n value: function parseNodeProperty(line, property, contentLine) {\n var propName = property[1].replace(/^\"/, \"\").replace(/\"$/, \"\").trim();\n var propValue = property[2].replace(/^\"/, \"\").replace(/\"$/, \"\").trim();\n if (propName === \"Content\" && propValue === \",\") {\n propValue = contentLine.replace(/\"/g, \"\").replace(/,$/, \"\").trim();\n }\n var currentNode = this.getCurrentNode();\n var parentName = currentNode.name;\n if (parentName === \"Properties70\") {\n this.parseNodeSpecialProperty(line, propName, propValue);\n return;\n }\n if (propName === \"C\") {\n var connProps = propValue.split(\",\").slice(1);\n var from = parseInt(connProps[0]);\n var to = parseInt(connProps[1]);\n var rest = propValue.split(\",\").slice(3);\n rest = rest.map(function (elem) {\n return elem.trim().replace(/^\"/, \"\");\n });\n propName = \"connections\";\n propValue = [from, to];\n append(propValue, rest);\n if (currentNode[propName] === undefined) {\n currentNode[propName] = [];\n }\n }\n if (propName === \"Node\") currentNode.id = propValue;\n if (propName in currentNode && Array.isArray(currentNode[propName])) {\n currentNode[propName].push(propValue);\n } else {\n if (propName !== \"a\") currentNode[propName] = propValue;else currentNode.a = propValue;\n }\n this.setCurrentProp(currentNode, propName);\n if (propName === \"a\" && propValue.slice(-1) !== \",\") {\n currentNode.a = parseNumberArray(propValue);\n }\n } },\n {\n key: \"parseNodePropertyContinued\",\n value: function parseNodePropertyContinued(line) {\n var currentNode = this.getCurrentNode();\n currentNode.a += line;\n if (line.slice(-1) !== \",\") {\n currentNode.a = parseNumberArray(currentNode.a);\n }\n } },\n {\n key: \"parseNodeSpecialProperty\",\n value: function parseNodeSpecialProperty(line, propName, propValue) {\n var props = propValue.split('\",').map(function (prop) {\n return prop.trim().replace(/^\\\"/, \"\").replace(/\\s/, \"_\");\n });\n var innerPropName = props[0];\n var innerPropType1 = props[1];\n var innerPropType2 = props[2];\n var innerPropFlag = props[3];\n var innerPropValue = props[4];\n switch (innerPropType1) {\n case \"int\":\n case \"enum\":\n case \"bool\":\n case \"ULongLong\":\n case \"double\":\n case \"Number\":\n case \"FieldOfView\":\n innerPropValue = parseFloat(innerPropValue);\n break;\n case \"Color\":\n case \"ColorRGB\":\n case \"Vector3D\":\n case \"Lcl_Translation\":\n case \"Lcl_Rotation\":\n case \"Lcl_Scaling\":\n innerPropValue = parseNumberArray(innerPropValue);\n break;}\n\n this.getPrevNode()[innerPropName] = {\n type: innerPropType1,\n type2: innerPropType2,\n flag: innerPropFlag,\n value: innerPropValue };\n\n this.setCurrentProp(this.getPrevNode(), innerPropName);\n } }]);\n\n return TextParser;\n }();\n var BinaryParser = function () {\n function BinaryParser() {\n (0, _classCallCheck2.default)(this, BinaryParser);\n }\n (0, _createClass2.default)(BinaryParser, [{\n key: \"parse\",\n value: function parse(buffer) {\n var reader = new BinaryReader(buffer);\n reader.skip(23);\n var version = reader.getUint32();\n if (version < 6400) {\n throw new Error(\"THREE.FBXLoader: FBX version not supported, FileVersion: \" + version);\n }\n var allNodes = new FBXTree();\n while (!this.endOfContent(reader)) {\n var node = this.parseNode(reader, version);\n if (node !== null) allNodes.add(node.name, node);\n }\n return allNodes;\n } },\n {\n key: \"endOfContent\",\n value: function endOfContent(reader) {\n if (reader.size() % 16 === 0) {\n return (reader.getOffset() + 160 + 16 & ~0xf) >= reader.size();\n } else {\n return reader.getOffset() + 160 + 16 >= reader.size();\n }\n } },\n {\n key: \"parseNode\",\n value: function parseNode(reader, version) {\n var node = {};\n var endOffset = version >= 7500 ? reader.getUint64() : reader.getUint32();\n var numProperties = version >= 7500 ? reader.getUint64() : reader.getUint32();\n version >= 7500 ? reader.getUint64() : reader.getUint32();\n var nameLen = reader.getUint8();\n var name = reader.getString(nameLen);\n if (endOffset === 0) return null;\n var propertyList = [];\n for (var i = 0; i < numProperties; i++) {\n propertyList.push(this.parseProperty(reader));\n }\n var id = propertyList.length > 0 ? propertyList[0] : \"\";\n var attrName = propertyList.length > 1 ? propertyList[1] : \"\";\n var attrType = propertyList.length > 2 ? propertyList[2] : \"\";\n node.singleProperty = numProperties === 1 && reader.getOffset() === endOffset ? true : false;\n while (endOffset > reader.getOffset()) {\n var subNode = this.parseNode(reader, version);\n if (subNode !== null) this.parseSubNode(name, node, subNode);\n }\n node.propertyList = propertyList;\n if (typeof id === \"number\") node.id = id;\n if (attrName !== \"\") node.attrName = attrName;\n if (attrType !== \"\") node.attrType = attrType;\n if (name !== \"\") node.name = name;\n return node;\n } },\n {\n key: \"parseSubNode\",\n value: function parseSubNode(name, node, subNode) {\n if (subNode.singleProperty === true) {\n var value = subNode.propertyList[0];\n if (Array.isArray(value)) {\n node[subNode.name] = subNode;\n subNode.a = value;\n } else {\n node[subNode.name] = value;\n }\n } else if (name === \"Connections\" && subNode.name === \"C\") {\n var array = [];\n subNode.propertyList.forEach(function (property, i) {\n if (i !== 0) array.push(property);\n });\n if (node.connections === undefined) {\n node.connections = [];\n }\n node.connections.push(array);\n } else if (subNode.name === \"Properties70\") {\n var keys = Object.keys(subNode);\n keys.forEach(function (key) {\n node[key] = subNode[key];\n });\n } else if (name === \"Properties70\" && subNode.name === \"P\") {\n var innerPropName = subNode.propertyList[0];\n var innerPropType1 = subNode.propertyList[1];\n var innerPropType2 = subNode.propertyList[2];\n var innerPropFlag = subNode.propertyList[3];\n var innerPropValue;\n if (innerPropName.indexOf(\"Lcl \") === 0) innerPropName = innerPropName.replace(\"Lcl \", \"Lcl_\");\n if (innerPropType1.indexOf(\"Lcl \") === 0) innerPropType1 = innerPropType1.replace(\"Lcl \", \"Lcl_\");\n if (innerPropType1 === \"Color\" || innerPropType1 === \"ColorRGB\" || innerPropType1 === \"Vector\" || innerPropType1 === \"Vector3D\" || innerPropType1.indexOf(\"Lcl_\") === 0) {\n innerPropValue = [subNode.propertyList[4], subNode.propertyList[5], subNode.propertyList[6]];\n } else {\n innerPropValue = subNode.propertyList[4];\n }\n node[innerPropName] = {\n type: innerPropType1,\n type2: innerPropType2,\n flag: innerPropFlag,\n value: innerPropValue };\n\n } else if (node[subNode.name] === undefined) {\n if (typeof subNode.id === \"number\") {\n node[subNode.name] = {};\n node[subNode.name][subNode.id] = subNode;\n } else {\n node[subNode.name] = subNode;\n }\n } else {\n if (subNode.name === \"PoseNode\") {\n if (!Array.isArray(node[subNode.name])) {\n node[subNode.name] = [node[subNode.name]];\n }\n node[subNode.name].push(subNode);\n } else if (node[subNode.name][subNode.id] === undefined) {\n node[subNode.name][subNode.id] = subNode;\n }\n }\n } },\n {\n key: \"parseProperty\",\n value: function parseProperty(reader) {\n var type = reader.getString(1);\n var length;\n switch (type) {\n case \"C\":\n return reader.getBoolean();\n case \"D\":\n return reader.getFloat64();\n case \"F\":\n return reader.getFloat32();\n case \"I\":\n return reader.getInt32();\n case \"L\":\n return reader.getInt64();\n case \"R\":\n length = reader.getUint32();\n return reader.getArrayBuffer(length);\n case \"S\":\n length = reader.getUint32();\n return reader.getString(length);\n case \"Y\":\n return reader.getInt16();\n case \"b\":\n case \"c\":\n case \"d\":\n case \"f\":\n case \"i\":\n case \"l\":\n var arrayLength = reader.getUint32();\n var encoding = reader.getUint32();\n var compressedLength = reader.getUint32();\n if (encoding === 0) {\n switch (type) {\n case \"b\":\n case \"c\":\n return reader.getBooleanArray(arrayLength);\n case \"d\":\n return reader.getFloat64Array(arrayLength);\n case \"f\":\n return reader.getFloat32Array(arrayLength);\n case \"i\":\n return reader.getInt32Array(arrayLength);\n case \"l\":\n return reader.getInt64Array(arrayLength);}\n\n }\n if (typeof fflate === \"undefined\") {\n console.error(\"THREE.FBXLoader: External library fflate.min.js required.\");\n }\n var data = fflate.unzlibSync(new Uint8Array(reader.getArrayBuffer(compressedLength)));\n var reader2 = new BinaryReader(data.buffer);\n switch (type) {\n case \"b\":\n case \"c\":\n return reader2.getBooleanArray(arrayLength);\n case \"d\":\n return reader2.getFloat64Array(arrayLength);\n case \"f\":\n return reader2.getFloat32Array(arrayLength);\n case \"i\":\n return reader2.getInt32Array(arrayLength);\n case \"l\":\n return reader2.getInt64Array(arrayLength);}\n\n break;\n default:\n throw new Error(\"THREE.FBXLoader: Unknown property type \" + type);}\n\n } }]);\n\n return BinaryParser;\n }();\n var BinaryReader = function () {\n function BinaryReader(buffer, littleEndian) {\n (0, _classCallCheck2.default)(this, BinaryReader);\n this.dv = new DataView(buffer);\n this.offset = 0;\n this.littleEndian = littleEndian !== undefined ? littleEndian : true;\n }\n (0, _createClass2.default)(BinaryReader, [{\n key: \"getOffset\",\n value: function getOffset() {\n return this.offset;\n } },\n {\n key: \"size\",\n value: function size() {\n return this.dv.buffer.byteLength;\n } },\n {\n key: \"skip\",\n value: function skip(length) {\n this.offset += length;\n } },\n {\n key: \"getBoolean\",\n value: function getBoolean() {\n return (this.getUint8() & 1) === 1;\n } },\n {\n key: \"getBooleanArray\",\n value: function getBooleanArray(size) {\n var a = [];\n for (var i = 0; i < size; i++) {\n a.push(this.getBoolean());\n }\n return a;\n } },\n {\n key: \"getUint8\",\n value: function getUint8() {\n var value = this.dv.getUint8(this.offset);\n this.offset += 1;\n return value;\n } },\n {\n key: \"getInt16\",\n value: function getInt16() {\n var value = this.dv.getInt16(this.offset, this.littleEndian);\n this.offset += 2;\n return value;\n } },\n {\n key: \"getInt32\",\n value: function getInt32() {\n var value = this.dv.getInt32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n } },\n {\n key: \"getInt32Array\",\n value: function getInt32Array(size) {\n var a = [];\n for (var i = 0; i < size; i++) {\n a.push(this.getInt32());\n }\n return a;\n } },\n {\n key: \"getUint32\",\n value: function getUint32() {\n var value = this.dv.getUint32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n } },\n {\n key: \"getInt64\",\n value: function getInt64() {\n var low, high;\n if (this.littleEndian) {\n low = this.getUint32();\n high = this.getUint32();\n } else {\n high = this.getUint32();\n low = this.getUint32();\n }\n if (high & 0x80000000) {\n high = ~high & 0xffffffff;\n low = ~low & 0xffffffff;\n if (low === 0xffffffff) high = high + 1 & 0xffffffff;\n low = low + 1 & 0xffffffff;\n return -(high * 0x100000000 + low);\n }\n return high * 0x100000000 + low;\n } },\n {\n key: \"getInt64Array\",\n value: function getInt64Array(size) {\n var a = [];\n for (var i = 0; i < size; i++) {\n a.push(this.getInt64());\n }\n return a;\n } },\n {\n key: \"getUint64\",\n value: function getUint64() {\n var low, high;\n if (this.littleEndian) {\n low = this.getUint32();\n high = this.getUint32();\n } else {\n high = this.getUint32();\n low = this.getUint32();\n }\n return high * 0x100000000 + low;\n } },\n {\n key: \"getFloat32\",\n value: function getFloat32() {\n var value = this.dv.getFloat32(this.offset, this.littleEndian);\n this.offset += 4;\n return value;\n } },\n {\n key: \"getFloat32Array\",\n value: function getFloat32Array(size) {\n var a = [];\n for (var i = 0; i < size; i++) {\n a.push(this.getFloat32());\n }\n return a;\n } },\n {\n key: \"getFloat64\",\n value: function getFloat64() {\n var value = this.dv.getFloat64(this.offset, this.littleEndian);\n this.offset += 8;\n return value;\n } },\n {\n key: \"getFloat64Array\",\n value: function getFloat64Array(size) {\n var a = [];\n for (var i = 0; i < size; i++) {\n a.push(this.getFloat64());\n }\n return a;\n } },\n {\n key: \"getArrayBuffer\",\n value: function getArrayBuffer(size) {\n var value = this.dv.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return value;\n } },\n {\n key: \"getString\",\n value: function getString(size) {\n var a = [];\n for (var i = 0; i < size; i++) {\n a[i] = this.getUint8();\n }\n var nullByte = a.indexOf(0);\n if (nullByte >= 0) a = a.slice(0, nullByte);\n return _Three.LoaderUtils.decodeText(new Uint8Array(a));\n } }]);\n\n return BinaryReader;\n }();\n var FBXTree = function () {\n function FBXTree() {\n (0, _classCallCheck2.default)(this, FBXTree);\n }\n (0, _createClass2.default)(FBXTree, [{\n key: \"add\",\n value: function add(key, val) {\n this[key] = val;\n } }]);\n\n return FBXTree;\n }();\n function isFbxFormatBinary(buffer) {\n var CORRECT = \"Kaydara FBX Binary \\0\";\n return buffer.byteLength >= CORRECT.length && CORRECT === convertArrayBufferToString(buffer, 0, CORRECT.length);\n }\n function isFbxFormatASCII(text) {\n var CORRECT = [\"K\", \"a\", \"y\", \"d\", \"a\", \"r\", \"a\", \"\\\\\", \"F\", \"B\", \"X\", \"\\\\\", \"B\", \"i\", \"n\", \"a\", \"r\", \"y\", \"\\\\\", \"\\\\\"];\n var cursor = 0;\n function read(offset) {\n var result = text[offset - 1];\n text = text.slice(cursor + offset);\n cursor++;\n return result;\n }\n for (var i = 0; i < CORRECT.length; ++i) {\n var num = read(1);\n if (num === CORRECT[i]) {\n return false;\n }\n }\n return true;\n }\n function getFbxVersion(text) {\n var versionRegExp = /FBXVersion: (\\d+)/;\n var match = text.match(versionRegExp);\n if (match) {\n var version = parseInt(match[1]);\n return version;\n }\n throw new Error(\"THREE.FBXLoader: Cannot find the version number for the file given.\");\n }\n function convertFBXTimeToSeconds(time) {\n return time / 46186158000;\n }\n var dataArray = [];\n function getData(polygonVertexIndex, polygonIndex, vertexIndex, infoObject) {\n var index;\n switch (infoObject.mappingType) {\n case \"ByPolygonVertex\":\n index = polygonVertexIndex;\n break;\n case \"ByPolygon\":\n index = polygonIndex;\n break;\n case \"ByVertice\":\n index = vertexIndex;\n break;\n case \"AllSame\":\n index = infoObject.indices[0];\n break;\n default:\n console.warn(\"THREE.FBXLoader: unknown attribute mapping type \" + infoObject.mappingType);}\n\n if (infoObject.referenceType === \"IndexToDirect\") index = infoObject.indices[index];\n var from = index * infoObject.dataSize;\n var to = from + infoObject.dataSize;\n return slice(dataArray, infoObject.buffer, from, to);\n }\n var tempEuler = new _Three.Euler();\n var tempVec = new _Three.Vector3();\n function generateTransform(transformData) {\n var lTranslationM = new _Three.Matrix4();\n var lPreRotationM = new _Three.Matrix4();\n var lRotationM = new _Three.Matrix4();\n var lPostRotationM = new _Three.Matrix4();\n var lScalingM = new _Three.Matrix4();\n var lScalingPivotM = new _Three.Matrix4();\n var lScalingOffsetM = new _Three.Matrix4();\n var lRotationOffsetM = new _Three.Matrix4();\n var lRotationPivotM = new _Three.Matrix4();\n var lParentGX = new _Three.Matrix4();\n var lParentLX = new _Three.Matrix4();\n var lGlobalT = new _Three.Matrix4();\n var inheritType = transformData.inheritType ? transformData.inheritType : 0;\n if (transformData.translation) lTranslationM.setPosition(tempVec.fromArray(transformData.translation));\n if (transformData.preRotation) {\n var array = transformData.preRotation.map(_Three.MathUtils.degToRad);\n array.push(transformData.eulerOrder || _Three.Euler.DefaultOrder);\n lPreRotationM.makeRotationFromEuler(tempEuler.fromArray(array));\n }\n if (transformData.rotation) {\n var _array = transformData.rotation.map(_Three.MathUtils.degToRad);\n _array.push(transformData.eulerOrder || _Three.Euler.DefaultOrder);\n lRotationM.makeRotationFromEuler(tempEuler.fromArray(_array));\n }\n if (transformData.postRotation) {\n var _array2 = transformData.postRotation.map(_Three.MathUtils.degToRad);\n _array2.push(transformData.eulerOrder || _Three.Euler.DefaultOrder);\n lPostRotationM.makeRotationFromEuler(tempEuler.fromArray(_array2));\n lPostRotationM.invert();\n }\n if (transformData.scale) lScalingM.scale(tempVec.fromArray(transformData.scale));\n if (transformData.scalingOffset) lScalingOffsetM.setPosition(tempVec.fromArray(transformData.scalingOffset));\n if (transformData.scalingPivot) lScalingPivotM.setPosition(tempVec.fromArray(transformData.scalingPivot));\n if (transformData.rotationOffset) lRotationOffsetM.setPosition(tempVec.fromArray(transformData.rotationOffset));\n if (transformData.rotationPivot) lRotationPivotM.setPosition(tempVec.fromArray(transformData.rotationPivot));\n if (transformData.parentMatrixWorld) {\n lParentLX.copy(transformData.parentMatrix);\n lParentGX.copy(transformData.parentMatrixWorld);\n }\n var lLRM = lPreRotationM.clone().multiply(lRotationM).multiply(lPostRotationM);\n var lParentGRM = new _Three.Matrix4();\n lParentGRM.extractRotation(lParentGX);\n var lParentTM = new _Three.Matrix4();\n lParentTM.copyPosition(lParentGX);\n var lParentGRSM = lParentTM.clone().invert().multiply(lParentGX);\n var lParentGSM = lParentGRM.clone().invert().multiply(lParentGRSM);\n var lLSM = lScalingM;\n var lGlobalRS = new _Three.Matrix4();\n if (inheritType === 0) {\n lGlobalRS.copy(lParentGRM).multiply(lLRM).multiply(lParentGSM).multiply(lLSM);\n } else if (inheritType === 1) {\n lGlobalRS.copy(lParentGRM).multiply(lParentGSM).multiply(lLRM).multiply(lLSM);\n } else {\n var lParentLSM = new _Three.Matrix4().scale(new _Three.Vector3().setFromMatrixScale(lParentLX));\n var lParentLSM_inv = lParentLSM.clone().invert();\n var lParentGSM_noLocal = lParentGSM.clone().multiply(lParentLSM_inv);\n lGlobalRS.copy(lParentGRM).multiply(lLRM).multiply(lParentGSM_noLocal).multiply(lLSM);\n }\n var lRotationPivotM_inv = lRotationPivotM.clone().invert();\n var lScalingPivotM_inv = lScalingPivotM.clone().invert();\n var lTransform = lTranslationM.clone().multiply(lRotationOffsetM).multiply(lRotationPivotM).multiply(lPreRotationM).multiply(lRotationM).multiply(lPostRotationM).multiply(lRotationPivotM_inv).multiply(lScalingOffsetM).multiply(lScalingPivotM).multiply(lScalingM).multiply(lScalingPivotM_inv);\n var lLocalTWithAllPivotAndOffsetInfo = new _Three.Matrix4().copyPosition(lTransform);\n var lGlobalTranslation = lParentGX.clone().multiply(lLocalTWithAllPivotAndOffsetInfo);\n lGlobalT.copyPosition(lGlobalTranslation);\n lTransform = lGlobalT.clone().multiply(lGlobalRS);\n lTransform.premultiply(lParentGX.invert());\n return lTransform;\n }\n function getEulerOrder(order) {\n order = order || 0;\n var enums = [\"ZYX\", \"YZX\", \"XZY\", \"ZXY\", \"YXZ\", \"XYZ\"];\n if (order === 6) {\n console.warn(\"THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.\");\n return enums[0];\n }\n return enums[order];\n }\n function parseNumberArray(value) {\n var array = value.split(\",\").map(function (val) {\n return parseFloat(val);\n });\n return array;\n }\n function convertArrayBufferToString(buffer, from, to) {\n if (from === undefined) from = 0;\n if (to === undefined) to = buffer.byteLength;\n return _Three.LoaderUtils.decodeText(new Uint8Array(buffer, from, to));\n }\n function append(a, b) {\n for (var i = 0, j = a.length, l = b.length; i < l; i++, j++) {\n a[j] = b[i];\n }\n }\n function slice(a, b, from, to) {\n for (var i = from, j = 0; i < to; i++, j++) {\n a[j] = b[i];\n }\n return a;\n }\n function inject(a1, index, a2) {\n return a1.slice(0, index).concat(a2).concat(a1.slice(index));\n }return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/libsmod/fflate.module.js", "pandav:/examples/jsm/curves/NURBSCurve.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/loaders", "outputPath": "/com/three/0.145.0/examples/jsm/loaders/FBXLoader.js", "fileName": "/examples/jsm/loaders/FBXLoader.js" }, "pandav:/examples/jsm/postprocessing/RenderPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/postprocessing/RenderPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.RenderPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var RenderPass = exports.RenderPass = function (_Pass) {\n (0, _inherits2.default)(RenderPass, _Pass);\n var _super = (0, _createSuper2.default)(RenderPass);\n function RenderPass(scene, camera, overrideMaterial, clearColor, clearAlpha) {\n var _this;\n (0, _classCallCheck2.default)(this, RenderPass);\n _this = _super.call(this);\n _this.scene = scene;\n _this.camera = camera;\n _this.overrideMaterial = overrideMaterial;\n _this.clearColor = clearColor;\n _this.clearAlpha = clearAlpha !== undefined ? clearAlpha : 0;\n _this.clear = true;\n _this.clearDepth = false;\n _this.needsSwap = false;\n _this._oldClearColor = new _Three.Color();\n _this.renderCallback = null;\n return _this;\n }\n (0, _createClass2.default)(RenderPass, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer) {\n var oldAutoClear = renderer.autoClear;\n renderer.autoClear = false;\n var oldClearAlpha, oldOverrideMaterial;\n if (this.overrideMaterial !== undefined) {\n oldOverrideMaterial = this.scene.overrideMaterial;\n this.scene.overrideMaterial = this.overrideMaterial;\n }\n if (this.clearColor) {\n renderer.getClearColor(this._oldClearColor);\n oldClearAlpha = renderer.getClearAlpha();\n renderer.setClearColor(this.clearColor, this.clearAlpha);\n }\n if (this.clearDepth) {\n renderer.clearDepth();\n }\n renderer.setRenderTarget(this.renderToScreen ? null : readBuffer);\n if (this.clear) renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\n if (this.renderCallback) {\n this.renderCallback(renderer, this.scene, this.camera);\n } else {\n renderer.render(this.scene, this.camera);\n }\n if (this.clearColor) {\n renderer.setClearColor(this._oldClearColor, oldClearAlpha);\n }\n if (this.overrideMaterial !== undefined) {\n this.scene.overrideMaterial = oldOverrideMaterial;\n }\n renderer.autoClear = oldAutoClear;\n } }]);\n\n return RenderPass;\n }(_Three.Pass);return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/postprocessing", "outputPath": "/com/three/0.145.0/examples/jsm/postprocessing/RenderPass.js", "fileName": "/examples/jsm/postprocessing/RenderPass.js" }, "pandav:/examples/jsm/postprocessing/TexturePass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/postprocessing/TexturePass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/shaders/CopyShader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TexturePass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _CopyShader = require('pandav:/com/three/0.145.0/examples/jsm/shaders/CopyShader');\n var TexturePass = exports.TexturePass = function (_Pass) {\n (0, _inherits2.default)(TexturePass, _Pass);\n var _super = (0, _createSuper2.default)(TexturePass);\n function TexturePass(map, opacity) {\n var _this;\n (0, _classCallCheck2.default)(this, TexturePass);\n _this = _super.call(this);\n if (_CopyShader.CopyShader === undefined) console.error(\"THREE.TexturePass relies on CopyShader\");\n var shader = _CopyShader.CopyShader;\n _this.map = map;\n _this.opacity = opacity !== undefined ? opacity : 1.0;\n _this.uniforms = _Three.UniformsUtils.clone(shader.uniforms);\n _this.material = new _Three.ShaderMaterial({\n uniforms: _this.uniforms,\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n depthTest: false,\n depthWrite: false });\n\n _this.needsSwap = false;\n _this.fsQuad = new _Three.FullScreenQuad(null);\n return _this;\n }\n (0, _createClass2.default)(TexturePass, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer) {\n var oldAutoClear = renderer.autoClear;\n renderer.autoClear = false;\n this.fsQuad.material = this.material;\n this.uniforms[\"opacity\"].value = this.opacity;\n this.uniforms[\"tDiffuse\"].value = this.map;\n this.material.transparent = this.opacity < 1.0;\n renderer.setRenderTarget(this.renderToScreen ? null : readBuffer);\n if (this.clear) renderer.clear();\n this.fsQuad.render(renderer);\n renderer.autoClear = oldAutoClear;\n } }]);\n\n return TexturePass;\n }(_Three.Pass);return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/shaders/CopyShader.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/postprocessing", "outputPath": "/com/three/0.145.0/examples/jsm/postprocessing/TexturePass.js", "fileName": "/examples/jsm/postprocessing/TexturePass.js" }, "pandav:/examples/jsm/shaders/CopyShader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/shaders/CopyShader\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CopyShader = void 0;\n var CopyShader = exports.CopyShader = {\n uniforms: {\n 'tDiffuse': {\n value: null },\n\n 'opacity': {\n value: 1.0 } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\tuniform float opacity;\\n\\n\\t\\tuniform sampler2D tDiffuse;\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tgl_FragColor = texture2D( tDiffuse, vUv );\\n\\t\\t\\tgl_FragColor.a *= opacity;\\n\\n\\n\\t\\t}\" };return module.exports;});", "requires": [], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/shaders", "outputPath": "/com/three/0.145.0/examples/jsm/shaders/CopyShader.js", "fileName": "/examples/jsm/shaders/CopyShader.js" }, "pandav:/examples/jsm/shaders/BokehShader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/shaders/BokehShader\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BokehShader = void 0;\n var BokehShader = exports.BokehShader = {\n defines: {\n 'DEPTH_PACKING': 1,\n 'PERSPECTIVE_CAMERA': 1 },\n\n uniforms: {\n 'tColor': {\n value: null },\n\n 'tDepth': {\n value: null },\n\n 'focus': {\n value: 1.0 },\n\n 'aspect': {\n value: 1.0 },\n\n 'aperture': {\n value: 0.025 },\n\n 'maxblur': {\n value: 0.01 },\n\n 'nearClip': {\n value: 1.0 },\n\n 'farClip': {\n value: 1000.0 } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\t#include \\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tuniform sampler2D tColor;\\n\\t\\tuniform sampler2D tDepth;\\n\\n\\t\\tuniform float maxblur; // max blur amount\\n\\t\\tuniform float aperture; // aperture - bigger values for shallower depth of field\\n\\n\\t\\tuniform float nearClip;\\n\\t\\tuniform float farClip;\\n\\n\\t\\tuniform float focus;\\n\\t\\tuniform float aspect;\\n\\n\\t\\t#include \\n\\n\\t\\tfloat getDepth( const in vec2 screenPosition ) {\\n\\t\\t\\t#if DEPTH_PACKING == 1\\n\\t\\t\\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\\n\\t\\t\\t#else\\n\\t\\t\\treturn texture2D( tDepth, screenPosition ).x;\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\n\\t\\tfloat getViewZ( const in float depth ) {\\n\\t\\t\\t#if PERSPECTIVE_CAMERA == 1\\n\\t\\t\\treturn perspectiveDepthToViewZ( depth, nearClip, farClip );\\n\\t\\t\\t#else\\n\\t\\t\\treturn orthographicDepthToViewZ( depth, nearClip, farClip );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvec2 aspectcorrect = vec2( 1.0, aspect );\\n\\n\\t\\t\\tfloat viewZ = getViewZ( getDepth( vUv ) );\\n\\n\\t\\t\\tfloat factor = ( focus + viewZ ); // viewZ is <= 0, so this is a difference equation\\n\\n\\t\\t\\tvec2 dofblur = vec2 ( clamp( factor * aperture, -maxblur, maxblur ) );\\n\\n\\t\\t\\tvec2 dofblur9 = dofblur * 0.9;\\n\\t\\t\\tvec2 dofblur7 = dofblur * 0.7;\\n\\t\\t\\tvec2 dofblur4 = dofblur * 0.4;\\n\\n\\t\\t\\tvec4 col = vec4( 0.0 );\\n\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur );\\n\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur9 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur9 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur9 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur9 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur9 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur9 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur9 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur9 );\\n\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur7 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur7 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur7 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur7 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur7 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur7 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur7 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur7 );\\n\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur4 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.4, 0.0 ) * aspectcorrect ) * dofblur4 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur4 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur4 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur4 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur4 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur4 );\\n\\t\\t\\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur4 );\\n\\n\\t\\t\\tgl_FragColor = col / 41.0;\\n\\t\\t\\tgl_FragColor.a = 1.0;\\n\\n\\t\\t}\" };return module.exports;});", "requires": [], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/shaders", "outputPath": "/com/three/0.145.0/examples/jsm/shaders/BokehShader.js", "fileName": "/examples/jsm/shaders/BokehShader.js" }, "pandav:/examples/jsm/postprocessing/UnrealBloomPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/postprocessing/UnrealBloomPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/shaders/CopyShader\", \"pandav:/com/three/0.145.0/examples/jsm/shaders/LuminosityHighPassShader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.UnrealBloomPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _CopyShader = require('pandav:/com/three/0.145.0/examples/jsm/shaders/CopyShader');\n var _LuminosityHighPassShader = require('pandav:/com/three/0.145.0/examples/jsm/shaders/LuminosityHighPassShader');\n var UnrealBloomPass = exports.UnrealBloomPass = function (_Pass) {\n (0, _inherits2.default)(UnrealBloomPass, _Pass);\n var _super = (0, _createSuper2.default)(UnrealBloomPass);\n function UnrealBloomPass(resolution, strength, radius, threshold) {\n var _this;\n (0, _classCallCheck2.default)(this, UnrealBloomPass);\n _this = _super.call(this);\n _this.strength = strength !== undefined ? strength : 1;\n _this.radius = radius;\n _this.threshold = threshold;\n _this.resolution = resolution !== undefined ? new _Three.Vector2(resolution.x, resolution.y) : new _Three.Vector2(256, 256);\n _this.clearColor = new _Three.Color(0, 0, 0);\n _this.renderTargetsHorizontal = [];\n _this.renderTargetsVertical = [];\n _this.nMips = 5;\n var resx = Math.round(_this.resolution.x / 2);\n var resy = Math.round(_this.resolution.y / 2);\n _this.renderTargetBright = new _Three.WebGLRenderTarget(resx, resy);\n _this.renderTargetBright.texture.name = \"UnrealBloomPass.bright\";\n _this.renderTargetBright.texture.generateMipmaps = false;\n for (var i = 0; i < _this.nMips; i++) {\n var renderTargetHorizonal = new _Three.WebGLRenderTarget(resx, resy);\n renderTargetHorizonal.texture.name = \"UnrealBloomPass.h\" + i;\n renderTargetHorizonal.texture.generateMipmaps = false;\n _this.renderTargetsHorizontal.push(renderTargetHorizonal);\n var renderTargetVertical = new _Three.WebGLRenderTarget(resx, resy);\n renderTargetVertical.texture.name = \"UnrealBloomPass.v\" + i;\n renderTargetVertical.texture.generateMipmaps = false;\n _this.renderTargetsVertical.push(renderTargetVertical);\n resx = Math.round(resx / 2);\n resy = Math.round(resy / 2);\n }\n if (_LuminosityHighPassShader.LuminosityHighPassShader === undefined) console.error(\"THREE.UnrealBloomPass relies on LuminosityHighPassShader\");\n var highPassShader = _LuminosityHighPassShader.LuminosityHighPassShader;\n _this.highPassUniforms = _Three.UniformsUtils.clone(highPassShader.uniforms);\n _this.highPassUniforms[\"luminosityThreshold\"].value = threshold;\n _this.highPassUniforms[\"smoothWidth\"].value = 0.01;\n _this.materialHighPassFilter = new _Three.ShaderMaterial({\n uniforms: _this.highPassUniforms,\n vertexShader: highPassShader.vertexShader,\n fragmentShader: highPassShader.fragmentShader,\n defines: {} });\n\n _this.separableBlurMaterials = [];\n var kernelSizeArray = [3, 5, 7, 9, 11];\n resx = Math.round(_this.resolution.x / 2);\n resy = Math.round(_this.resolution.y / 2);\n for (var _i = 0; _i < _this.nMips; _i++) {\n _this.separableBlurMaterials.push(_this.getSeperableBlurMaterial(kernelSizeArray[_i]));\n _this.separableBlurMaterials[_i].uniforms[\"texSize\"].value = new _Three.Vector2(resx, resy);\n resx = Math.round(resx / 2);\n resy = Math.round(resy / 2);\n }\n _this.compositeMaterial = _this.getCompositeMaterial(_this.nMips);\n _this.compositeMaterial.uniforms[\"blurTexture1\"].value = _this.renderTargetsVertical[0].texture;\n _this.compositeMaterial.uniforms[\"blurTexture2\"].value = _this.renderTargetsVertical[1].texture;\n _this.compositeMaterial.uniforms[\"blurTexture3\"].value = _this.renderTargetsVertical[2].texture;\n _this.compositeMaterial.uniforms[\"blurTexture4\"].value = _this.renderTargetsVertical[3].texture;\n _this.compositeMaterial.uniforms[\"blurTexture5\"].value = _this.renderTargetsVertical[4].texture;\n _this.compositeMaterial.uniforms[\"bloomStrength\"].value = strength;\n _this.compositeMaterial.uniforms[\"bloomRadius\"].value = 0.1;\n _this.compositeMaterial.needsUpdate = true;\n var bloomFactors = [1.0, 0.8, 0.6, 0.4, 0.2];\n _this.compositeMaterial.uniforms[\"bloomFactors\"].value = bloomFactors;\n _this.bloomTintColors = [new _Three.Vector3(1, 1, 1), new _Three.Vector3(1, 1, 1), new _Three.Vector3(1, 1, 1), new _Three.Vector3(1, 1, 1), new _Three.Vector3(1, 1, 1)];\n _this.compositeMaterial.uniforms[\"bloomTintColors\"].value = _this.bloomTintColors;\n if (_CopyShader.CopyShader === undefined) {\n console.error(\"THREE.UnrealBloomPass relies on CopyShader\");\n }\n var copyShader = _CopyShader.CopyShader;\n _this.copyUniforms = _Three.UniformsUtils.clone(copyShader.uniforms);\n _this.copyUniforms[\"opacity\"].value = 1.0;\n _this.materialCopy = new _Three.ShaderMaterial({\n uniforms: _this.copyUniforms,\n vertexShader: copyShader.vertexShader,\n fragmentShader: copyShader.fragmentShader,\n blending: _Three.AdditiveBlending,\n depthTest: false,\n depthWrite: false,\n transparent: true });\n\n _this.enabled = true;\n _this.needsSwap = false;\n _this._oldClearColor = new _Three.Color();\n _this.oldClearAlpha = 1;\n _this.basic = new _Three.MeshBasicMaterial();\n _this.fsQuad = new _Three.FullScreenQuad(null);\n return _this;\n }\n (0, _createClass2.default)(UnrealBloomPass, [{\n key: \"dispose\",\n value: function dispose() {\n for (var i = 0; i < this.renderTargetsHorizontal.length; i++) {\n this.renderTargetsHorizontal[i].dispose();\n }\n for (var _i2 = 0; _i2 < this.renderTargetsVertical.length; _i2++) {\n this.renderTargetsVertical[_i2].dispose();\n }\n this.renderTargetBright.dispose();\n } },\n {\n key: \"setSize\",\n value: function setSize(width, height) {\n var resx = Math.round(width / 2);\n var resy = Math.round(height / 2);\n this.renderTargetBright.setSize(resx, resy);\n for (var i = 0; i < this.nMips; i++) {\n this.renderTargetsHorizontal[i].setSize(resx, resy);\n this.renderTargetsVertical[i].setSize(resx, resy);\n this.separableBlurMaterials[i].uniforms[\"texSize\"].value = new _Three.Vector2(resx, resy);\n resx = Math.round(resx / 2);\n resy = Math.round(resy / 2);\n }\n } },\n {\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer, deltaTime, maskActive) {\n renderer.getClearColor(this._oldClearColor);\n this.oldClearAlpha = renderer.getClearAlpha();\n var oldAutoClear = renderer.autoClear;\n renderer.autoClear = false;\n renderer.setClearColor(this.clearColor, 0);\n if (maskActive) renderer.state.buffers.stencil.setTest(false);\n if (this.renderToScreen) {\n this.fsQuad.material = this.basic;\n this.basic.map = readBuffer.texture;\n renderer.setRenderTarget(null);\n renderer.clear();\n this.fsQuad.render(renderer);\n }\n this.highPassUniforms[\"tDiffuse\"].value = readBuffer.texture;\n this.highPassUniforms[\"luminosityThreshold\"].value = this.threshold;\n this.fsQuad.material = this.materialHighPassFilter;\n renderer.setRenderTarget(this.renderTargetBright);\n renderer.clear();\n this.fsQuad.render(renderer);\n var inputRenderTarget = this.renderTargetBright;\n for (var i = 0; i < this.nMips; i++) {\n this.fsQuad.material = this.separableBlurMaterials[i];\n this.separableBlurMaterials[i].uniforms[\"colorTexture\"].value = inputRenderTarget.texture;\n this.separableBlurMaterials[i].uniforms[\"direction\"].value = UnrealBloomPass.BlurDirectionX;\n renderer.setRenderTarget(this.renderTargetsHorizontal[i]);\n renderer.clear();\n this.fsQuad.render(renderer);\n this.separableBlurMaterials[i].uniforms[\"colorTexture\"].value = this.renderTargetsHorizontal[i].texture;\n this.separableBlurMaterials[i].uniforms[\"direction\"].value = UnrealBloomPass.BlurDirectionY;\n renderer.setRenderTarget(this.renderTargetsVertical[i]);\n renderer.clear();\n this.fsQuad.render(renderer);\n inputRenderTarget = this.renderTargetsVertical[i];\n }\n this.fsQuad.material = this.compositeMaterial;\n this.compositeMaterial.uniforms[\"bloomStrength\"].value = this.strength;\n this.compositeMaterial.uniforms[\"bloomRadius\"].value = this.radius;\n this.compositeMaterial.uniforms[\"bloomTintColors\"].value = this.bloomTintColors;\n renderer.setRenderTarget(this.renderTargetsHorizontal[0]);\n renderer.clear();\n this.fsQuad.render(renderer);\n this.fsQuad.material = this.materialCopy;\n this.copyUniforms[\"tDiffuse\"].value = this.renderTargetsHorizontal[0].texture;\n if (maskActive) renderer.state.buffers.stencil.setTest(true);\n if (this.renderToScreen) {\n renderer.setRenderTarget(null);\n this.fsQuad.render(renderer);\n } else {\n renderer.setRenderTarget(readBuffer);\n this.fsQuad.render(renderer);\n }\n renderer.setClearColor(this._oldClearColor, this.oldClearAlpha);\n renderer.autoClear = oldAutoClear;\n } },\n {\n key: \"getSeperableBlurMaterial\",\n value: function getSeperableBlurMaterial(kernelRadius) {\n return new _Three.ShaderMaterial({\n defines: {\n KERNEL_RADIUS: kernelRadius,\n SIGMA: kernelRadius },\n\n uniforms: {\n colorTexture: {\n value: null },\n\n texSize: {\n value: new _Three.Vector2(0.5, 0.5) },\n\n direction: {\n value: new _Three.Vector2(0.5, 0.5) } },\n\n\n vertexShader: \"varying vec2 vUv;\\n\\t\\t\\t\\tvoid main() {\\n\\t\\t\\t\\t\\tvUv = uv;\\n\\t\\t\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\t\\t\\t\\t}\",\n fragmentShader: \"#include \\n\\t\\t\\t\\tvarying vec2 vUv;\\n\\t\\t\\t\\tuniform sampler2D colorTexture;\\n\\t\\t\\t\\tuniform vec2 texSize;\\n\\t\\t\\t\\tuniform vec2 direction;\\n\\n\\t\\t\\t\\tfloat gaussianPdf(in float x, in float sigma) {\\n\\t\\t\\t\\t\\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tvoid main() {\\n\\t\\t\\t\\t\\tvec2 invSize = 1.0 / texSize;\\n\\t\\t\\t\\t\\tfloat fSigma = float(SIGMA);\\n\\t\\t\\t\\t\\tfloat weightSum = gaussianPdf(0.0, fSigma);\\n\\t\\t\\t\\t\\tvec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum;\\n\\t\\t\\t\\t\\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\\n\\t\\t\\t\\t\\t\\tfloat x = float(i);\\n\\t\\t\\t\\t\\t\\tfloat w = gaussianPdf(x, fSigma);\\n\\t\\t\\t\\t\\t\\tvec2 uvOffset = direction * invSize * x;\\n\\t\\t\\t\\t\\t\\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb;\\n\\t\\t\\t\\t\\t\\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb;\\n\\t\\t\\t\\t\\t\\tdiffuseSum += (sample1 + sample2) * w;\\n\\t\\t\\t\\t\\t\\tweightSum += 2.0 * w;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\\n\\t\\t\\t\\t}\" });\n\n } },\n {\n key: \"getCompositeMaterial\",\n value: function getCompositeMaterial(nMips) {\n return new _Three.ShaderMaterial({\n defines: {\n NUM_MIPS: nMips },\n\n uniforms: {\n blurTexture1: {\n value: null },\n\n blurTexture2: {\n value: null },\n\n blurTexture3: {\n value: null },\n\n blurTexture4: {\n value: null },\n\n blurTexture5: {\n value: null },\n\n bloomStrength: {\n value: 1.0 },\n\n bloomFactors: {\n value: null },\n\n bloomTintColors: {\n value: null },\n\n bloomRadius: {\n value: 0.0 } },\n\n\n vertexShader: \"varying vec2 vUv;\\n\\t\\t\\t\\tvoid main() {\\n\\t\\t\\t\\t\\tvUv = uv;\\n\\t\\t\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\t\\t\\t\\t}\",\n fragmentShader: \"varying vec2 vUv;\\n\\t\\t\\t\\tuniform sampler2D blurTexture1;\\n\\t\\t\\t\\tuniform sampler2D blurTexture2;\\n\\t\\t\\t\\tuniform sampler2D blurTexture3;\\n\\t\\t\\t\\tuniform sampler2D blurTexture4;\\n\\t\\t\\t\\tuniform sampler2D blurTexture5;\\n\\t\\t\\t\\tuniform float bloomStrength;\\n\\t\\t\\t\\tuniform float bloomRadius;\\n\\t\\t\\t\\tuniform float bloomFactors[NUM_MIPS];\\n\\t\\t\\t\\tuniform vec3 bloomTintColors[NUM_MIPS];\\n\\n\\t\\t\\t\\tfloat lerpBloomFactor(const in float factor) {\\n\\t\\t\\t\\t\\tfloat mirrorFactor = 1.2 - factor;\\n\\t\\t\\t\\t\\treturn mix(factor, mirrorFactor, bloomRadius);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\t\\t\\t\\t\\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\\n\\t\\t\\t\\t\\t\\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\\n\\t\\t\\t\\t\\t\\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\\n\\t\\t\\t\\t\\t\\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\\n\\t\\t\\t\\t\\t\\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\\n\\t\\t\\t\\t}\" });\n\n } }]);\n\n return UnrealBloomPass;\n }(_Three.Pass);\n UnrealBloomPass.BlurDirectionX = new _Three.Vector2(1.0, 0.0);\n UnrealBloomPass.BlurDirectionY = new _Three.Vector2(0.0, 1.0);return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/shaders/CopyShader.js", "pandav:/examples/jsm/shaders/LuminosityHighPassShader.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/postprocessing", "outputPath": "/com/three/0.145.0/examples/jsm/postprocessing/UnrealBloomPass.js", "fileName": "/examples/jsm/postprocessing/UnrealBloomPass.js" }, "pandav:/examples/jsm/shaders/LuminosityHighPassShader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/shaders/LuminosityHighPassShader\", [\"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LuminosityHighPassShader = void 0;\n var _Three = require('pandav:/com/three/0.145.0');\n var LuminosityHighPassShader = exports.LuminosityHighPassShader = {\n shaderID: \"luminosityHighPass\",\n uniforms: {\n tDiffuse: {\n value: null },\n\n luminosityThreshold: {\n value: 1.0 },\n\n smoothWidth: {\n value: 1.0 },\n\n defaultColor: {\n value: new _Three.Color(0x000000) },\n\n defaultOpacity: {\n value: 0.0 } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\tuniform sampler2D tDiffuse;\\n\\t\\tuniform vec3 defaultColor;\\n\\t\\tuniform float defaultOpacity;\\n\\t\\tuniform float luminosityThreshold;\\n\\t\\tuniform float smoothWidth;\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvec4 texel = texture2D( tDiffuse, vUv );\\n\\n\\t\\t\\tvec3 luma = vec3( 0.299, 0.587, 0.114 );\\n\\n\\t\\t\\tfloat v = dot( texel.xyz, luma );\\n\\n\\t\\t\\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );\\n\\n\\t\\t\\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );\\n\\n\\t\\t\\tgl_FragColor = mix( outputColor, texel, alpha );\\n\\n\\t\\t}\" };return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/shaders", "outputPath": "/com/three/0.145.0/examples/jsm/shaders/LuminosityHighPassShader.js", "fileName": "/examples/jsm/shaders/LuminosityHighPassShader.js" }, "pandav:/examples/jsm/loaders/GLTFLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/loaders/GLTFLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/slicedToArray\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.GLTFLoader = void 0;\n var _slicedToArray2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/slicedToArray'));\n var _createForOfIteratorHelper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper'));\n var _typeof2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var GLTFLoader = exports.GLTFLoader = function (_Loader) {\n (0, _inherits2.default)(GLTFLoader, _Loader);\n var _super = (0, _createSuper2.default)(GLTFLoader);\n function GLTFLoader(manager) {\n var _this;\n (0, _classCallCheck2.default)(this, GLTFLoader);\n _this = _super.call(this, manager);\n _this.dracoLoader = null;\n _this.ktx2Loader = null;\n _this.meshoptDecoder = null;\n _this.pluginCallbacks = [];\n _this.register(function (parser) {\n return new GLTFMaterialsClearcoatExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFTextureBasisUExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFTextureWebPExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMaterialsSheenExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMaterialsTransmissionExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMaterialsVolumeExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMaterialsIorExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMaterialsEmissiveStrengthExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMaterialsSpecularExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMaterialsIridescenceExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFLightsExtension(parser);\n });\n _this.register(function (parser) {\n return new GLTFMeshoptCompression(parser);\n });\n return _this;\n }\n (0, _createClass2.default)(GLTFLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var resourcePath;\n if (this.resourcePath !== \"\") {\n resourcePath = this.resourcePath;\n } else if (this.path !== \"\") {\n resourcePath = this.path;\n } else {\n resourcePath = _Three.LoaderUtils.extractUrlBase(url);\n }\n this.manager.itemStart(url);\n var _onError = function _onError(e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n };\n var loader = new _Three.FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setResponseType(\"arraybuffer\");\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (data) {\n try {\n scope.parse(data, resourcePath, function (gltf) {\n onLoad(gltf);\n scope.manager.itemEnd(url);\n }, _onError);\n } catch (e) {\n _onError(e);\n }\n }, onProgress, _onError);\n } },\n {\n key: \"setDRACOLoader\",\n value: function setDRACOLoader(dracoLoader) {\n this.dracoLoader = dracoLoader;\n return this;\n } },\n {\n key: \"setDDSLoader\",\n value: function setDDSLoader() {\n throw new Error('THREE.GLTFLoader: \"MSFT_texture_dds\" no longer supported. Please update to \"KHR_texture_basisu\".');\n } },\n {\n key: \"setKTX2Loader\",\n value: function setKTX2Loader(ktx2Loader) {\n this.ktx2Loader = ktx2Loader;\n return this;\n } },\n {\n key: \"setMeshoptDecoder\",\n value: function setMeshoptDecoder(meshoptDecoder) {\n this.meshoptDecoder = meshoptDecoder;\n return this;\n } },\n {\n key: \"register\",\n value: function register(callback) {\n if (this.pluginCallbacks.indexOf(callback) === -1) {\n this.pluginCallbacks.push(callback);\n }\n return this;\n } },\n {\n key: \"unregister\",\n value: function unregister(callback) {\n if (this.pluginCallbacks.indexOf(callback) !== -1) {\n this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(callback), 1);\n }\n return this;\n } },\n {\n key: \"parse\",\n value: function parse(data, path, onLoad, onError) {\n var content;\n var extensions = {};\n var plugins = {};\n if (typeof data === \"string\") {\n content = data;\n } else {\n var magic = _Three.LoaderUtils.decodeText(new Uint8Array(data, 0, 4));\n if (magic === BINARY_EXTENSION_HEADER_MAGIC) {\n try {\n extensions[EXTENSIONS.KHR_BINARY_GLTF] = new GLTFBinaryExtension(data);\n } catch (error) {\n if (onError) onError(error);\n return;\n }\n content = extensions[EXTENSIONS.KHR_BINARY_GLTF].content;\n } else {\n content = _Three.LoaderUtils.decodeText(new Uint8Array(data));\n }\n }\n var json = JSON.parse(content);\n if (json.asset === undefined || json.asset.version[0] < 2) {\n if (onError) onError(new Error(\"THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.\"));\n return;\n }\n var parser = new GLTFParser(json, {\n path: path || this.resourcePath || \"\",\n crossOrigin: this.crossOrigin,\n requestHeader: this.requestHeader,\n manager: this.manager,\n ktx2Loader: this.ktx2Loader,\n meshoptDecoder: this.meshoptDecoder });\n\n parser.fileLoader.setRequestHeader(this.requestHeader);\n for (var i = 0; i < this.pluginCallbacks.length; i++) {\n var plugin = this.pluginCallbacks[i](parser);\n plugins[plugin.name] = plugin;\n extensions[plugin.name] = true;\n }\n if (json.extensionsUsed) {\n for (var _i = 0; _i < json.extensionsUsed.length; ++_i) {\n var extensionName = json.extensionsUsed[_i];\n var extensionsRequired = json.extensionsRequired || [];\n switch (extensionName) {\n case EXTENSIONS.KHR_MATERIALS_UNLIT:\n extensions[extensionName] = new GLTFMaterialsUnlitExtension();\n break;\n case EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:\n extensions[extensionName] = new GLTFMaterialsPbrSpecularGlossinessExtension();\n break;\n case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:\n extensions[extensionName] = new GLTFDracoMeshCompressionExtension(json, this.dracoLoader);\n break;\n case EXTENSIONS.KHR_TEXTURE_TRANSFORM:\n extensions[extensionName] = new GLTFTextureTransformExtension();\n break;\n case EXTENSIONS.KHR_MESH_QUANTIZATION:\n extensions[extensionName] = new GLTFMeshQuantizationExtension();\n break;\n default:\n if (extensionsRequired.indexOf(extensionName) >= 0 && plugins[extensionName] === undefined) {\n console.warn('THREE.GLTFLoader: Unknown extension \"' + extensionName + '\".');\n }}\n\n }\n }\n parser.setExtensions(extensions);\n parser.setPlugins(plugins);\n parser.parse(onLoad, onError);\n } },\n {\n key: \"parseAsync\",\n value: function parseAsync(data, path) {\n var scope = this;\n return new Promise(function (resolve, reject) {\n scope.parse(data, path, resolve, reject);\n });\n } }]);\n\n return GLTFLoader;\n }(_Three.Loader);\n function GLTFRegistry() {\n var objects = {};\n return {\n get: function get(key) {\n return objects[key];\n },\n add: function add(key, object) {\n objects[key] = object;\n },\n remove: function remove(key) {\n delete objects[key];\n },\n removeAll: function removeAll() {\n objects = {};\n } };\n\n }\n var EXTENSIONS = {\n KHR_BINARY_GLTF: \"KHR_binary_glTF\",\n KHR_DRACO_MESH_COMPRESSION: \"KHR_draco_mesh_compression\",\n KHR_LIGHTS_PUNCTUAL: \"KHR_lights_punctual\",\n KHR_MATERIALS_CLEARCOAT: \"KHR_materials_clearcoat\",\n KHR_MATERIALS_IOR: \"KHR_materials_ior\",\n KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: \"KHR_materials_pbrSpecularGlossiness\",\n KHR_MATERIALS_SHEEN: \"KHR_materials_sheen\",\n KHR_MATERIALS_SPECULAR: \"KHR_materials_specular\",\n KHR_MATERIALS_TRANSMISSION: \"KHR_materials_transmission\",\n KHR_MATERIALS_IRIDESCENCE: \"KHR_materials_iridescence\",\n KHR_MATERIALS_UNLIT: \"KHR_materials_unlit\",\n KHR_MATERIALS_VOLUME: \"KHR_materials_volume\",\n KHR_TEXTURE_BASISU: \"KHR_texture_basisu\",\n KHR_TEXTURE_TRANSFORM: \"KHR_texture_transform\",\n KHR_MESH_QUANTIZATION: \"KHR_mesh_quantization\",\n KHR_MATERIALS_EMISSIVE_STRENGTH: \"KHR_materials_emissive_strength\",\n EXT_TEXTURE_WEBP: \"EXT_texture_webp\",\n EXT_MESHOPT_COMPRESSION: \"EXT_meshopt_compression\" };\n\n var GLTFLightsExtension = function () {\n function GLTFLightsExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFLightsExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL;\n this.cache = {\n refs: {},\n uses: {} };\n\n }\n (0, _createClass2.default)(GLTFLightsExtension, [{\n key: \"_markDefs\",\n value: function _markDefs() {\n var parser = this.parser;\n var nodeDefs = this.parser.json.nodes || [];\n for (var nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex++) {\n var nodeDef = nodeDefs[nodeIndex];\n if (nodeDef.extensions && nodeDef.extensions[this.name] && nodeDef.extensions[this.name].light !== undefined) {\n parser._addNodeRef(this.cache, nodeDef.extensions[this.name].light);\n }\n }\n } },\n {\n key: \"_loadLight\",\n value: function _loadLight(lightIndex) {\n var parser = this.parser;\n var cacheKey = \"light:\" + lightIndex;\n var dependency = parser.cache.get(cacheKey);\n if (dependency) return dependency;\n var json = parser.json;\n var extensions = json.extensions && json.extensions[this.name] || {};\n var lightDefs = extensions.lights || [];\n var lightDef = lightDefs[lightIndex];\n var lightNode;\n var color = new _Three.Color(0xffffff);\n if (lightDef.color !== undefined) color.fromArray(lightDef.color);\n var range = lightDef.range !== undefined ? lightDef.range : 0;\n switch (lightDef.type) {\n case \"directional\":\n lightNode = new _Three.DirectionalLight(color);\n lightNode.target.position.set(0, 0, -1);\n lightNode.add(lightNode.target);\n break;\n case \"point\":\n lightNode = new _Three.PointLight(color);\n lightNode.distance = range;\n break;\n case \"spot\":\n lightNode = new _Three.SpotLight(color);\n lightNode.distance = range;\n lightDef.spot = lightDef.spot || {};\n lightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== undefined ? lightDef.spot.innerConeAngle : 0;\n lightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0;\n lightNode.angle = lightDef.spot.outerConeAngle;\n lightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle;\n lightNode.target.position.set(0, 0, -1);\n lightNode.add(lightNode.target);\n break;\n default:\n throw new Error(\"THREE.GLTFLoader: Unexpected light type: \" + lightDef.type);}\n\n lightNode.position.set(0, 0, 0);\n lightNode.decay = 2;\n if (lightDef.intensity !== undefined) lightNode.intensity = lightDef.intensity;\n lightNode.name = parser.createUniqueName(lightDef.name || \"light_\" + lightIndex);\n dependency = Promise.resolve(lightNode);\n parser.cache.add(cacheKey, dependency);\n return dependency;\n } },\n {\n key: \"createNodeAttachment\",\n value: function createNodeAttachment(nodeIndex) {\n var self = this;\n var parser = this.parser;\n var json = parser.json;\n var nodeDef = json.nodes[nodeIndex];\n var lightDef = nodeDef.extensions && nodeDef.extensions[this.name] || {};\n var lightIndex = lightDef.light;\n if (lightIndex === undefined) return null;\n return this._loadLight(lightIndex).then(function (light) {\n return parser._getNodeRef(self.cache, lightIndex, light);\n });\n } }]);\n\n return GLTFLightsExtension;\n }();\n var GLTFMaterialsUnlitExtension = function () {\n function GLTFMaterialsUnlitExtension() {\n (0, _classCallCheck2.default)(this, GLTFMaterialsUnlitExtension);\n this.name = EXTENSIONS.KHR_MATERIALS_UNLIT;\n }\n (0, _createClass2.default)(GLTFMaterialsUnlitExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType() {\n return _Three.MeshBasicMaterial;\n } },\n {\n key: \"extendParams\",\n value: function extendParams(materialParams, materialDef, parser) {\n var pending = [];\n materialParams.color = new _Three.Color(1.0, 1.0, 1.0);\n materialParams.opacity = 1.0;\n var metallicRoughness = materialDef.pbrMetallicRoughness;\n if (metallicRoughness) {\n if (Array.isArray(metallicRoughness.baseColorFactor)) {\n var array = metallicRoughness.baseColorFactor;\n materialParams.color.fromArray(array);\n materialParams.opacity = array[3];\n }\n if (metallicRoughness.baseColorTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"map\", metallicRoughness.baseColorTexture, _Three.sRGBEncoding));\n }\n }\n return Promise.all(pending);\n } }]);\n\n return GLTFMaterialsUnlitExtension;\n }();\n var GLTFMaterialsEmissiveStrengthExtension = function () {\n function GLTFMaterialsEmissiveStrengthExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsEmissiveStrengthExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH;\n }\n (0, _createClass2.default)(GLTFMaterialsEmissiveStrengthExtension, [{\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var emissiveStrength = materialDef.extensions[this.name].emissiveStrength;\n if (emissiveStrength !== undefined) {\n materialParams.emissiveIntensity = emissiveStrength;\n }\n return Promise.resolve();\n } }]);\n\n return GLTFMaterialsEmissiveStrengthExtension;\n }();\n var GLTFMaterialsClearcoatExtension = function () {\n function GLTFMaterialsClearcoatExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsClearcoatExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT;\n }\n (0, _createClass2.default)(GLTFMaterialsClearcoatExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType(materialIndex) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) return null;\n return _Three.MeshPhysicalMaterial;\n } },\n {\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var pending = [];\n var extension = materialDef.extensions[this.name];\n if (extension.clearcoatFactor !== undefined) {\n materialParams.clearcoat = extension.clearcoatFactor;\n }\n if (extension.clearcoatTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"clearcoatMap\", extension.clearcoatTexture));\n }\n if (extension.clearcoatRoughnessFactor !== undefined) {\n materialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor;\n }\n if (extension.clearcoatRoughnessTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"clearcoatRoughnessMap\", extension.clearcoatRoughnessTexture));\n }\n if (extension.clearcoatNormalTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"clearcoatNormalMap\", extension.clearcoatNormalTexture));\n if (extension.clearcoatNormalTexture.scale !== undefined) {\n var scale = extension.clearcoatNormalTexture.scale;\n materialParams.clearcoatNormalScale = new _Three.Vector2(scale, scale);\n }\n }\n return Promise.all(pending);\n } }]);\n\n return GLTFMaterialsClearcoatExtension;\n }();\n var GLTFMaterialsIridescenceExtension = function () {\n function GLTFMaterialsIridescenceExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsIridescenceExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_IRIDESCENCE;\n }\n (0, _createClass2.default)(GLTFMaterialsIridescenceExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType(materialIndex) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) return null;\n return _Three.MeshPhysicalMaterial;\n } },\n {\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var pending = [];\n var extension = materialDef.extensions[this.name];\n if (extension.iridescenceFactor !== undefined) {\n materialParams.iridescence = extension.iridescenceFactor;\n }\n if (extension.iridescenceTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"iridescenceMap\", extension.iridescenceTexture));\n }\n if (extension.iridescenceIor !== undefined) {\n materialParams.iridescenceIOR = extension.iridescenceIor;\n }\n if (materialParams.iridescenceThicknessRange === undefined) {\n materialParams.iridescenceThicknessRange = [100, 400];\n }\n if (extension.iridescenceThicknessMinimum !== undefined) {\n materialParams.iridescenceThicknessRange[0] = extension.iridescenceThicknessMinimum;\n }\n if (extension.iridescenceThicknessMaximum !== undefined) {\n materialParams.iridescenceThicknessRange[1] = extension.iridescenceThicknessMaximum;\n }\n if (extension.iridescenceThicknessTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"iridescenceThicknessMap\", extension.iridescenceThicknessTexture));\n }\n return Promise.all(pending);\n } }]);\n\n return GLTFMaterialsIridescenceExtension;\n }();\n var GLTFMaterialsSheenExtension = function () {\n function GLTFMaterialsSheenExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsSheenExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_SHEEN;\n }\n (0, _createClass2.default)(GLTFMaterialsSheenExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType(materialIndex) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) return null;\n return _Three.MeshPhysicalMaterial;\n } },\n {\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var pending = [];\n materialParams.sheenColor = new _Three.Color(0, 0, 0);\n materialParams.sheenRoughness = 0;\n materialParams.sheen = 1;\n var extension = materialDef.extensions[this.name];\n if (extension.sheenColorFactor !== undefined) {\n materialParams.sheenColor.fromArray(extension.sheenColorFactor);\n }\n if (extension.sheenRoughnessFactor !== undefined) {\n materialParams.sheenRoughness = extension.sheenRoughnessFactor;\n }\n if (extension.sheenColorTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"sheenColorMap\", extension.sheenColorTexture, _Three.sRGBEncoding));\n }\n if (extension.sheenRoughnessTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"sheenRoughnessMap\", extension.sheenRoughnessTexture));\n }\n return Promise.all(pending);\n } }]);\n\n return GLTFMaterialsSheenExtension;\n }();\n var GLTFMaterialsTransmissionExtension = function () {\n function GLTFMaterialsTransmissionExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsTransmissionExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION;\n }\n (0, _createClass2.default)(GLTFMaterialsTransmissionExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType(materialIndex) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) return null;\n return _Three.MeshPhysicalMaterial;\n } },\n {\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var pending = [];\n var extension = materialDef.extensions[this.name];\n if (extension.transmissionFactor !== undefined) {\n materialParams.transmission = extension.transmissionFactor;\n }\n if (extension.transmissionTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"transmissionMap\", extension.transmissionTexture));\n }\n return Promise.all(pending);\n } }]);\n\n return GLTFMaterialsTransmissionExtension;\n }();\n var GLTFMaterialsVolumeExtension = function () {\n function GLTFMaterialsVolumeExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsVolumeExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_VOLUME;\n }\n (0, _createClass2.default)(GLTFMaterialsVolumeExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType(materialIndex) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) return null;\n return _Three.MeshPhysicalMaterial;\n } },\n {\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var pending = [];\n var extension = materialDef.extensions[this.name];\n materialParams.thickness = extension.thicknessFactor !== undefined ? extension.thicknessFactor : 0;\n if (extension.thicknessTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"thicknessMap\", extension.thicknessTexture));\n }\n materialParams.attenuationDistance = extension.attenuationDistance || Infinity;\n var colorArray = extension.attenuationColor || [1, 1, 1];\n materialParams.attenuationColor = new _Three.Color(colorArray[0], colorArray[1], colorArray[2]);\n return Promise.all(pending);\n } }]);\n\n return GLTFMaterialsVolumeExtension;\n }();\n var GLTFMaterialsIorExtension = function () {\n function GLTFMaterialsIorExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsIorExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_IOR;\n }\n (0, _createClass2.default)(GLTFMaterialsIorExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType(materialIndex) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) return null;\n return _Three.MeshPhysicalMaterial;\n } },\n {\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var extension = materialDef.extensions[this.name];\n materialParams.ior = extension.ior !== undefined ? extension.ior : 1.5;\n return Promise.resolve();\n } }]);\n\n return GLTFMaterialsIorExtension;\n }();\n var GLTFMaterialsSpecularExtension = function () {\n function GLTFMaterialsSpecularExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFMaterialsSpecularExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_MATERIALS_SPECULAR;\n }\n (0, _createClass2.default)(GLTFMaterialsSpecularExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType(materialIndex) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) return null;\n return _Three.MeshPhysicalMaterial;\n } },\n {\n key: \"extendMaterialParams\",\n value: function extendMaterialParams(materialIndex, materialParams) {\n var parser = this.parser;\n var materialDef = parser.json.materials[materialIndex];\n if (!materialDef.extensions || !materialDef.extensions[this.name]) {\n return Promise.resolve();\n }\n var pending = [];\n var extension = materialDef.extensions[this.name];\n materialParams.specularIntensity = extension.specularFactor !== undefined ? extension.specularFactor : 1.0;\n if (extension.specularTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"specularIntensityMap\", extension.specularTexture));\n }\n var colorArray = extension.specularColorFactor || [1, 1, 1];\n materialParams.specularColor = new _Three.Color(colorArray[0], colorArray[1], colorArray[2]);\n if (extension.specularColorTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"specularColorMap\", extension.specularColorTexture, _Three.sRGBEncoding));\n }\n return Promise.all(pending);\n } }]);\n\n return GLTFMaterialsSpecularExtension;\n }();\n var GLTFTextureBasisUExtension = function () {\n function GLTFTextureBasisUExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFTextureBasisUExtension);\n this.parser = parser;\n this.name = EXTENSIONS.KHR_TEXTURE_BASISU;\n }\n (0, _createClass2.default)(GLTFTextureBasisUExtension, [{\n key: \"loadTexture\",\n value: function loadTexture(textureIndex) {\n var parser = this.parser;\n var json = parser.json;\n var textureDef = json.textures[textureIndex];\n if (!textureDef.extensions || !textureDef.extensions[this.name]) {\n return null;\n }\n var extension = textureDef.extensions[this.name];\n var loader = parser.options.ktx2Loader;\n if (!loader) {\n if (json.extensionsRequired && json.extensionsRequired.indexOf(this.name) >= 0) {\n throw new Error(\"THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures\");\n } else {\n return null;\n }\n }\n return parser.loadTextureImage(textureIndex, extension.source, loader);\n } }]);\n\n return GLTFTextureBasisUExtension;\n }();\n var GLTFTextureWebPExtension = function () {\n function GLTFTextureWebPExtension(parser) {\n (0, _classCallCheck2.default)(this, GLTFTextureWebPExtension);\n this.parser = parser;\n this.name = EXTENSIONS.EXT_TEXTURE_WEBP;\n this.isSupported = null;\n }\n (0, _createClass2.default)(GLTFTextureWebPExtension, [{\n key: \"loadTexture\",\n value: function loadTexture(textureIndex) {\n var name = this.name;\n var parser = this.parser;\n var json = parser.json;\n var textureDef = json.textures[textureIndex];\n if (!textureDef.extensions || !textureDef.extensions[name]) {\n return null;\n }\n var extension = textureDef.extensions[name];\n var source = json.images[extension.source];\n var loader = parser.textureLoader;\n if (source.uri) {\n var handler = parser.options.manager.getHandler(source.uri);\n if (handler !== null) loader = handler;\n }\n return this.detectSupport().then(function (isSupported) {\n if (isSupported) return parser.loadTextureImage(textureIndex, extension.source, loader);\n if (json.extensionsRequired && json.extensionsRequired.indexOf(name) >= 0) {\n throw new Error(\"THREE.GLTFLoader: WebP required by asset but unsupported.\");\n }\n return parser.loadTexture(textureIndex);\n });\n } },\n {\n key: \"detectSupport\",\n value: function detectSupport() {\n if (!this.isSupported) {\n this.isSupported = new Promise(function (resolve) {\n var image = new Image();\n image.src = \"data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA\";\n image.onload = image.onerror = function () {\n resolve(image.height === 1);\n };\n });\n }\n return this.isSupported;\n } }]);\n\n return GLTFTextureWebPExtension;\n }();\n var GLTFMeshoptCompression = function () {\n function GLTFMeshoptCompression(parser) {\n (0, _classCallCheck2.default)(this, GLTFMeshoptCompression);\n this.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION;\n this.parser = parser;\n }\n (0, _createClass2.default)(GLTFMeshoptCompression, [{\n key: \"loadBufferView\",\n value: function loadBufferView(index) {\n var json = this.parser.json;\n var bufferView = json.bufferViews[index];\n if (bufferView.extensions && bufferView.extensions[this.name]) {\n var extensionDef = bufferView.extensions[this.name];\n var buffer = this.parser.getDependency(\"buffer\", extensionDef.buffer);\n var decoder = this.parser.options.meshoptDecoder;\n if (!decoder || !decoder.supported) {\n if (json.extensionsRequired && json.extensionsRequired.indexOf(this.name) >= 0) {\n throw new Error(\"THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files\");\n } else {\n return null;\n }\n }\n return buffer.then(function (res) {\n var byteOffset = extensionDef.byteOffset || 0;\n var byteLength = extensionDef.byteLength || 0;\n var count = extensionDef.count;\n var stride = extensionDef.byteStride;\n var source = new Uint8Array(res, byteOffset, byteLength);\n if (decoder.decodeGltfBufferAsync) {\n return decoder.decodeGltfBufferAsync(count, stride, source, extensionDef.mode, extensionDef.filter).then(function (res) {\n return res.buffer;\n });\n } else {\n return decoder.ready.then(function () {\n var result = new ArrayBuffer(count * stride);\n decoder.decodeGltfBuffer(new Uint8Array(result), count, stride, source, extensionDef.mode, extensionDef.filter);\n return result;\n });\n }\n });\n } else {\n return null;\n }\n } }]);\n\n return GLTFMeshoptCompression;\n }();\n var BINARY_EXTENSION_HEADER_MAGIC = \"glTF\";\n var BINARY_EXTENSION_HEADER_LENGTH = 12;\n var BINARY_EXTENSION_CHUNK_TYPES = {\n JSON: 0x4e4f534a,\n BIN: 0x004e4942 };\n\n var GLTFBinaryExtension = (0, _createClass2.default)(function GLTFBinaryExtension(data) {\n (0, _classCallCheck2.default)(this, GLTFBinaryExtension);\n this.name = EXTENSIONS.KHR_BINARY_GLTF;\n this.content = null;\n this.body = null;\n var headerView = new DataView(data, 0, BINARY_EXTENSION_HEADER_LENGTH);\n this.header = {\n magic: _Three.LoaderUtils.decodeText(new Uint8Array(data.slice(0, 4))),\n version: headerView.getUint32(4, true),\n length: headerView.getUint32(8, true) };\n\n if (this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC) {\n throw new Error(\"THREE.GLTFLoader: Unsupported glTF-Binary header.\");\n } else if (this.header.version < 2.0) {\n throw new Error(\"THREE.GLTFLoader: Legacy binary file detected.\");\n }\n var chunkContentsLength = this.header.length - BINARY_EXTENSION_HEADER_LENGTH;\n var chunkView = new DataView(data, BINARY_EXTENSION_HEADER_LENGTH);\n var chunkIndex = 0;\n while (chunkIndex < chunkContentsLength) {\n var chunkLength = chunkView.getUint32(chunkIndex, true);\n chunkIndex += 4;\n var chunkType = chunkView.getUint32(chunkIndex, true);\n chunkIndex += 4;\n if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON) {\n var contentArray = new Uint8Array(data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength);\n this.content = _Three.LoaderUtils.decodeText(contentArray);\n } else if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN) {\n var byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex;\n this.body = data.slice(byteOffset, byteOffset + chunkLength);\n }\n chunkIndex += chunkLength;\n }\n if (this.content === null) {\n throw new Error(\"THREE.GLTFLoader: JSON content not found.\");\n }\n });\n var GLTFDracoMeshCompressionExtension = function () {\n function GLTFDracoMeshCompressionExtension(json, dracoLoader) {\n (0, _classCallCheck2.default)(this, GLTFDracoMeshCompressionExtension);\n if (!dracoLoader) {\n throw new Error(\"THREE.GLTFLoader: No DRACOLoader instance provided.\");\n }\n this.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION;\n this.json = json;\n this.dracoLoader = dracoLoader;\n this.dracoLoader.preload();\n }\n (0, _createClass2.default)(GLTFDracoMeshCompressionExtension, [{\n key: \"decodePrimitive\",\n value: function decodePrimitive(primitive, parser) {\n var json = this.json;\n var dracoLoader = this.dracoLoader;\n var bufferViewIndex = primitive.extensions[this.name].bufferView;\n var gltfAttributeMap = primitive.extensions[this.name].attributes;\n var threeAttributeMap = {};\n var attributeNormalizedMap = {};\n var attributeTypeMap = {};\n for (var attributeName in gltfAttributeMap) {\n var threeAttributeName = ATTRIBUTES[attributeName] || attributeName.toLowerCase();\n threeAttributeMap[threeAttributeName] = gltfAttributeMap[attributeName];\n }\n for (var _attributeName in primitive.attributes) {\n var _threeAttributeName = ATTRIBUTES[_attributeName] || _attributeName.toLowerCase();\n if (gltfAttributeMap[_attributeName] !== undefined) {\n var accessorDef = json.accessors[primitive.attributes[_attributeName]];\n var componentType = WEBGL_COMPONENT_TYPES[accessorDef.componentType];\n attributeTypeMap[_threeAttributeName] = componentType.name;\n attributeNormalizedMap[_threeAttributeName] = accessorDef.normalized === true;\n }\n }\n return parser.getDependency(\"bufferView\", bufferViewIndex).then(function (bufferView) {\n return new Promise(function (resolve) {\n dracoLoader.decodeDracoFile(bufferView, function (geometry) {\n for (var _attributeName2 in geometry.attributes) {\n var attribute = geometry.attributes[_attributeName2];\n var normalized = attributeNormalizedMap[_attributeName2];\n if (normalized !== undefined) attribute.normalized = normalized;\n }\n resolve(geometry);\n }, threeAttributeMap, attributeTypeMap);\n });\n });\n } }]);\n\n return GLTFDracoMeshCompressionExtension;\n }();\n var GLTFTextureTransformExtension = function () {\n function GLTFTextureTransformExtension() {\n (0, _classCallCheck2.default)(this, GLTFTextureTransformExtension);\n this.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM;\n }\n (0, _createClass2.default)(GLTFTextureTransformExtension, [{\n key: \"extendTexture\",\n value: function extendTexture(texture, transform) {\n if (transform.texCoord !== undefined) {\n console.warn('THREE.GLTFLoader: Custom UV sets in \"' + this.name + '\" extension not yet supported.');\n }\n if (transform.offset === undefined && transform.rotation === undefined && transform.scale === undefined) {\n return texture;\n }\n texture = texture.clone();\n if (transform.offset !== undefined) {\n texture.offset.fromArray(transform.offset);\n }\n if (transform.rotation !== undefined) {\n texture.rotation = transform.rotation;\n }\n if (transform.scale !== undefined) {\n texture.repeat.fromArray(transform.scale);\n }\n texture.needsUpdate = true;\n return texture;\n } }]);\n\n return GLTFTextureTransformExtension;\n }();\n var GLTFMeshStandardSGMaterial = function (_MeshStandardMaterial) {\n (0, _inherits2.default)(GLTFMeshStandardSGMaterial, _MeshStandardMaterial);\n var _super2 = (0, _createSuper2.default)(GLTFMeshStandardSGMaterial);\n function GLTFMeshStandardSGMaterial(params) {\n var _this2;\n (0, _classCallCheck2.default)(this, GLTFMeshStandardSGMaterial);\n _this2 = _super2.call(this);\n _this2.isGLTFSpecularGlossinessMaterial = true;\n var specularMapParsFragmentChunk = [\"#ifdef USE_SPECULARMAP\", \"\tuniform sampler2D specularMap;\", \"#endif\"].join(\"\\n\");\n var glossinessMapParsFragmentChunk = [\"#ifdef USE_GLOSSINESSMAP\", \"\tuniform sampler2D glossinessMap;\", \"#endif\"].join(\"\\n\");\n var specularMapFragmentChunk = [\"vec3 specularFactor = specular;\", \"#ifdef USE_SPECULARMAP\", \"\tvec4 texelSpecular = texture2D( specularMap, vUv );\", \"\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture\", \"\tspecularFactor *= texelSpecular.rgb;\", \"#endif\"].join(\"\\n\");\n var glossinessMapFragmentChunk = [\"float glossinessFactor = glossiness;\", \"#ifdef USE_GLOSSINESSMAP\", \"\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );\", \"\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture\", \"\tglossinessFactor *= texelGlossiness.a;\", \"#endif\"].join(\"\\n\");\n var lightPhysicalFragmentChunk = [\"PhysicalMaterial material;\", \"material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );\", \"vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\", \"float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\", \"material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.\", \"material.roughness += geometryRoughness;\", \"material.roughness = min( material.roughness, 1.0 );\", \"material.specularColor = specularFactor;\"].join(\"\\n\");\n var uniforms = {\n specular: {\n value: new _Three.Color().setHex(0xffffff) },\n\n glossiness: {\n value: 1 },\n\n specularMap: {\n value: null },\n\n glossinessMap: {\n value: null } };\n\n\n _this2._extraUniforms = uniforms;\n _this2.onBeforeCompile = function (shader) {\n for (var uniformName in uniforms) {\n shader.uniforms[uniformName] = uniforms[uniformName];\n }\n shader.fragmentShader = shader.fragmentShader.replace(\"uniform float roughness;\", \"uniform vec3 specular;\").replace(\"uniform float metalness;\", \"uniform float glossiness;\").replace(\"#include \", specularMapParsFragmentChunk).replace(\"#include \", glossinessMapParsFragmentChunk).replace(\"#include \", specularMapFragmentChunk).replace(\"#include \", glossinessMapFragmentChunk).replace(\"#include \", lightPhysicalFragmentChunk);\n };\n Object.defineProperties((0, _assertThisInitialized2.default)(_this2), {\n specular: {\n get: function get() {\n return uniforms.specular.value;\n },\n set: function set(v) {\n uniforms.specular.value = v;\n } },\n\n specularMap: {\n get: function get() {\n return uniforms.specularMap.value;\n },\n set: function set(v) {\n uniforms.specularMap.value = v;\n if (v) {\n this.defines.USE_SPECULARMAP = \"\";\n } else {\n delete this.defines.USE_SPECULARMAP;\n }\n } },\n\n glossiness: {\n get: function get() {\n return uniforms.glossiness.value;\n },\n set: function set(v) {\n uniforms.glossiness.value = v;\n } },\n\n glossinessMap: {\n get: function get() {\n return uniforms.glossinessMap.value;\n },\n set: function set(v) {\n uniforms.glossinessMap.value = v;\n if (v) {\n this.defines.USE_GLOSSINESSMAP = \"\";\n this.defines.USE_UV = \"\";\n } else {\n delete this.defines.USE_GLOSSINESSMAP;\n delete this.defines.USE_UV;\n }\n } } });\n\n\n delete _this2.metalness;\n delete _this2.roughness;\n delete _this2.metalnessMap;\n delete _this2.roughnessMap;\n _this2.setValues(params);\n return _this2;\n }\n (0, _createClass2.default)(GLTFMeshStandardSGMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(GLTFMeshStandardSGMaterial.prototype), \"copy\", this).call(this, source);\n this.specularMap = source.specularMap;\n this.specular.copy(source.specular);\n this.glossinessMap = source.glossinessMap;\n this.glossiness = source.glossiness;\n delete this.metalness;\n delete this.roughness;\n delete this.metalnessMap;\n delete this.roughnessMap;\n return this;\n } }]);\n\n return GLTFMeshStandardSGMaterial;\n }(_Three.MeshStandardMaterial);\n var GLTFMaterialsPbrSpecularGlossinessExtension = function () {\n function GLTFMaterialsPbrSpecularGlossinessExtension() {\n (0, _classCallCheck2.default)(this, GLTFMaterialsPbrSpecularGlossinessExtension);\n this.name = EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS;\n this.specularGlossinessParams = [\"color\", \"map\", \"lightMap\", \"lightMapIntensity\", \"aoMap\", \"aoMapIntensity\", \"emissive\", \"emissiveIntensity\", \"emissiveMap\", \"bumpMap\", \"bumpScale\", \"normalMap\", \"normalMapType\", \"displacementMap\", \"displacementScale\", \"displacementBias\", \"specularMap\", \"specular\", \"glossinessMap\", \"glossiness\", \"alphaMap\", \"envMap\", \"envMapIntensity\"];\n }\n (0, _createClass2.default)(GLTFMaterialsPbrSpecularGlossinessExtension, [{\n key: \"getMaterialType\",\n value: function getMaterialType() {\n return GLTFMeshStandardSGMaterial;\n } },\n {\n key: \"extendParams\",\n value: function extendParams(materialParams, materialDef, parser) {\n var pbrSpecularGlossiness = materialDef.extensions[this.name];\n materialParams.color = new _Three.Color(1.0, 1.0, 1.0);\n materialParams.opacity = 1.0;\n var pending = [];\n if (Array.isArray(pbrSpecularGlossiness.diffuseFactor)) {\n var array = pbrSpecularGlossiness.diffuseFactor;\n materialParams.color.fromArray(array);\n materialParams.opacity = array[3];\n }\n if (pbrSpecularGlossiness.diffuseTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"map\", pbrSpecularGlossiness.diffuseTexture, _Three.sRGBEncoding));\n }\n materialParams.emissive = new _Three.Color(0.0, 0.0, 0.0);\n materialParams.glossiness = pbrSpecularGlossiness.glossinessFactor !== undefined ? pbrSpecularGlossiness.glossinessFactor : 1.0;\n materialParams.specular = new _Three.Color(1.0, 1.0, 1.0);\n if (Array.isArray(pbrSpecularGlossiness.specularFactor)) {\n materialParams.specular.fromArray(pbrSpecularGlossiness.specularFactor);\n }\n if (pbrSpecularGlossiness.specularGlossinessTexture !== undefined) {\n var specGlossMapDef = pbrSpecularGlossiness.specularGlossinessTexture;\n pending.push(parser.assignTexture(materialParams, \"glossinessMap\", specGlossMapDef));\n pending.push(parser.assignTexture(materialParams, \"specularMap\", specGlossMapDef, _Three.sRGBEncoding));\n }\n return Promise.all(pending);\n } },\n {\n key: \"createMaterial\",\n value: function createMaterial(materialParams) {\n var material = new GLTFMeshStandardSGMaterial(materialParams);\n material.fog = true;\n material.color = materialParams.color;\n material.map = materialParams.map === undefined ? null : materialParams.map;\n material.lightMap = null;\n material.lightMapIntensity = 1.0;\n material.aoMap = materialParams.aoMap === undefined ? null : materialParams.aoMap;\n material.aoMapIntensity = 1.0;\n material.emissive = materialParams.emissive;\n material.emissiveIntensity = materialParams.emissiveIntensity === undefined ? 1.0 : materialParams.emissiveIntensity;\n material.emissiveMap = materialParams.emissiveMap === undefined ? null : materialParams.emissiveMap;\n material.bumpMap = materialParams.bumpMap === undefined ? null : materialParams.bumpMap;\n material.bumpScale = 1;\n material.normalMap = materialParams.normalMap === undefined ? null : materialParams.normalMap;\n material.normalMapType = _Three.TangentSpaceNormalMap;\n if (materialParams.normalScale) material.normalScale = materialParams.normalScale;\n material.displacementMap = null;\n material.displacementScale = 1;\n material.displacementBias = 0;\n material.specularMap = materialParams.specularMap === undefined ? null : materialParams.specularMap;\n material.specular = materialParams.specular;\n material.glossinessMap = materialParams.glossinessMap === undefined ? null : materialParams.glossinessMap;\n material.glossiness = materialParams.glossiness;\n material.alphaMap = null;\n material.envMap = materialParams.envMap === undefined ? null : materialParams.envMap;\n material.envMapIntensity = 1.0;\n return material;\n } }]);\n\n return GLTFMaterialsPbrSpecularGlossinessExtension;\n }();\n var GLTFMeshQuantizationExtension = (0, _createClass2.default)(function GLTFMeshQuantizationExtension() {\n (0, _classCallCheck2.default)(this, GLTFMeshQuantizationExtension);\n this.name = EXTENSIONS.KHR_MESH_QUANTIZATION;\n });\n var GLTFCubicSplineInterpolant = function (_Interpolant) {\n (0, _inherits2.default)(GLTFCubicSplineInterpolant, _Interpolant);\n var _super3 = (0, _createSuper2.default)(GLTFCubicSplineInterpolant);\n function GLTFCubicSplineInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n (0, _classCallCheck2.default)(this, GLTFCubicSplineInterpolant);\n return _super3.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n }\n (0, _createClass2.default)(GLTFCubicSplineInterpolant, [{\n key: \"copySampleValue_\",\n value: function copySampleValue_(index) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n valueSize = this.valueSize,\n offset = index * valueSize * 3 + valueSize;\n for (var i = 0; i !== valueSize; i++) {\n result[i] = values[offset + i];\n }\n return result;\n } },\n {\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer;\n var values = this.sampleValues;\n var stride = this.valueSize;\n var stride2 = stride * 2;\n var stride3 = stride * 3;\n var td = t1 - t0;\n var p = (t - t0) / td;\n var pp = p * p;\n var ppp = pp * p;\n var offset1 = i1 * stride3;\n var offset0 = offset1 - stride3;\n var s2 = -2 * ppp + 3 * pp;\n var s3 = ppp - pp;\n var s0 = 1 - s2;\n var s1 = s3 - pp + p;\n for (var i = 0; i !== stride; i++) {\n var p0 = values[offset0 + i + stride];\n var m0 = values[offset0 + i + stride2] * td;\n var p1 = values[offset1 + i + stride];\n var m1 = values[offset1 + i] * td;\n result[i] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1;\n }\n return result;\n } }]);\n\n return GLTFCubicSplineInterpolant;\n }(_Three.Interpolant);\n var _q = new _Three.Quaternion();\n var GLTFCubicSplineQuaternionInterpolant = function (_GLTFCubicSplineInter) {\n (0, _inherits2.default)(GLTFCubicSplineQuaternionInterpolant, _GLTFCubicSplineInter);\n var _super4 = (0, _createSuper2.default)(GLTFCubicSplineQuaternionInterpolant);\n function GLTFCubicSplineQuaternionInterpolant() {\n (0, _classCallCheck2.default)(this, GLTFCubicSplineQuaternionInterpolant);\n return _super4.apply(this, arguments);\n }\n (0, _createClass2.default)(GLTFCubicSplineQuaternionInterpolant, [{\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = (0, _get2.default)((0, _getPrototypeOf2.default)(GLTFCubicSplineQuaternionInterpolant.prototype), \"interpolate_\", this).call(this, i1, t0, t, t1);\n _q.fromArray(result).normalize().toArray(result);\n return result;\n } }]);\n\n return GLTFCubicSplineQuaternionInterpolant;\n }(GLTFCubicSplineInterpolant);\n var WEBGL_CONSTANTS = {\n FLOAT: 5126,\n FLOAT_MAT3: 35675,\n FLOAT_MAT4: 35676,\n FLOAT_VEC2: 35664,\n FLOAT_VEC3: 35665,\n FLOAT_VEC4: 35666,\n LINEAR: 9729,\n REPEAT: 10497,\n SAMPLER_2D: 35678,\n POINTS: 0,\n LINES: 1,\n LINE_LOOP: 2,\n LINE_STRIP: 3,\n TRIANGLES: 4,\n TRIANGLE_STRIP: 5,\n TRIANGLE_FAN: 6,\n UNSIGNED_BYTE: 5121,\n UNSIGNED_SHORT: 5123 };\n\n var WEBGL_COMPONENT_TYPES = {\n 5120: Int8Array,\n 5121: Uint8Array,\n 5122: Int16Array,\n 5123: Uint16Array,\n 5125: Uint32Array,\n 5126: Float32Array };\n\n var WEBGL_FILTERS = {\n 9728: _Three.NearestFilter,\n 9729: _Three.LinearFilter,\n 9984: _Three.NearestMipmapNearestFilter,\n 9985: _Three.LinearMipmapNearestFilter,\n 9986: _Three.NearestMipmapLinearFilter,\n 9987: _Three.LinearMipmapLinearFilter };\n\n var WEBGL_WRAPPINGS = {\n 33071: _Three.ClampToEdgeWrapping,\n 33648: _Three.MirroredRepeatWrapping,\n 10497: _Three.RepeatWrapping };\n\n var WEBGL_TYPE_SIZES = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16 };\n\n var ATTRIBUTES = {\n POSITION: \"position\",\n NORMAL: \"normal\",\n TANGENT: \"tangent\",\n TEXCOORD_0: \"uv\",\n TEXCOORD_1: \"uv2\",\n COLOR_0: \"color\",\n WEIGHTS_0: \"skinWeight\",\n JOINTS_0: \"skinIndex\" };\n\n var PATH_PROPERTIES = {\n scale: \"scale\",\n translation: \"position\",\n rotation: \"quaternion\",\n weights: \"morphTargetInfluences\" };\n\n var INTERPOLATION = {\n CUBICSPLINE: undefined,\n LINEAR: _Three.InterpolateLinear,\n STEP: _Three.InterpolateDiscrete };\n\n var ALPHA_MODES = {\n OPAQUE: \"OPAQUE\",\n MASK: \"MASK\",\n BLEND: \"BLEND\" };\n\n function createDefaultMaterial(cache) {\n if (cache[\"DefaultMaterial\"] === undefined) {\n cache[\"DefaultMaterial\"] = new _Three.MeshStandardMaterial({\n color: 0xffffff,\n emissive: 0x000000,\n metalness: 1,\n roughness: 1,\n transparent: false,\n depthTest: true,\n side: _Three.FrontSide });\n\n }\n return cache[\"DefaultMaterial\"];\n }\n function addUnknownExtensionsToUserData(knownExtensions, object, objectDef) {\n for (var name in objectDef.extensions) {\n if (knownExtensions[name] === undefined) {\n object.userData.gltfExtensions = object.userData.gltfExtensions || {};\n object.userData.gltfExtensions[name] = objectDef.extensions[name];\n }\n }\n }\n function assignExtrasToUserData(object, gltfDef) {\n if (gltfDef.extras !== undefined) {\n if ((0, _typeof2.default)(gltfDef.extras) === \"object\") {\n Object.assign(object.userData, gltfDef.extras);\n } else {\n console.warn(\"THREE.GLTFLoader: Ignoring primitive type .extras, \" + gltfDef.extras);\n }\n }\n }\n function addMorphTargets(geometry, targets, parser) {\n var hasMorphPosition = false;\n var hasMorphNormal = false;\n var hasMorphColor = false;\n for (var i = 0, il = targets.length; i < il; i++) {\n var target = targets[i];\n if (target.POSITION !== undefined) hasMorphPosition = true;\n if (target.NORMAL !== undefined) hasMorphNormal = true;\n if (target.COLOR_0 !== undefined) hasMorphColor = true;\n if (hasMorphPosition && hasMorphNormal && hasMorphColor) break;\n }\n if (!hasMorphPosition && !hasMorphNormal && !hasMorphColor) return Promise.resolve(geometry);\n var pendingPositionAccessors = [];\n var pendingNormalAccessors = [];\n var pendingColorAccessors = [];\n for (var _i2 = 0, _il = targets.length; _i2 < _il; _i2++) {\n var _target = targets[_i2];\n if (hasMorphPosition) {\n var pendingAccessor = _target.POSITION !== undefined ? parser.getDependency(\"accessor\", _target.POSITION) : geometry.attributes.position;\n pendingPositionAccessors.push(pendingAccessor);\n }\n if (hasMorphNormal) {\n var _pendingAccessor = _target.NORMAL !== undefined ? parser.getDependency(\"accessor\", _target.NORMAL) : geometry.attributes.normal;\n pendingNormalAccessors.push(_pendingAccessor);\n }\n if (hasMorphColor) {\n var _pendingAccessor2 = _target.COLOR_0 !== undefined ? parser.getDependency(\"accessor\", _target.COLOR_0) : geometry.attributes.color;\n pendingColorAccessors.push(_pendingAccessor2);\n }\n }\n return Promise.all([Promise.all(pendingPositionAccessors), Promise.all(pendingNormalAccessors), Promise.all(pendingColorAccessors)]).then(function (accessors) {\n var morphPositions = accessors[0];\n var morphNormals = accessors[1];\n var morphColors = accessors[2];\n if (hasMorphPosition) geometry.morphAttributes.position = morphPositions;\n if (hasMorphNormal) geometry.morphAttributes.normal = morphNormals;\n if (hasMorphColor) geometry.morphAttributes.color = morphColors;\n geometry.morphTargetsRelative = true;\n return geometry;\n });\n }\n function updateMorphTargets(mesh, meshDef) {\n mesh.updateMorphTargets();\n if (meshDef.weights !== undefined) {\n for (var i = 0, il = meshDef.weights.length; i < il; i++) {\n mesh.morphTargetInfluences[i] = meshDef.weights[i];\n }\n }\n if (meshDef.extras && Array.isArray(meshDef.extras.targetNames)) {\n var targetNames = meshDef.extras.targetNames;\n if (mesh.morphTargetInfluences.length === targetNames.length) {\n mesh.morphTargetDictionary = {};\n for (var _i3 = 0, _il2 = targetNames.length; _i3 < _il2; _i3++) {\n mesh.morphTargetDictionary[targetNames[_i3]] = _i3;\n }\n } else {\n console.warn(\"THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.\");\n }\n }\n }\n function createPrimitiveKey(primitiveDef) {\n var dracoExtension = primitiveDef.extensions && primitiveDef.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION];\n var geometryKey;\n if (dracoExtension) {\n geometryKey = \"draco:\" + dracoExtension.bufferView + \":\" + dracoExtension.indices + \":\" + createAttributesKey(dracoExtension.attributes);\n } else {\n geometryKey = primitiveDef.indices + \":\" + createAttributesKey(primitiveDef.attributes) + \":\" + primitiveDef.mode;\n }\n return geometryKey;\n }\n function createAttributesKey(attributes) {\n var attributesKey = \"\";\n var keys = Object.keys(attributes).sort();\n for (var i = 0, il = keys.length; i < il; i++) {\n attributesKey += keys[i] + \":\" + attributes[keys[i]] + \";\";\n }\n return attributesKey;\n }\n function getNormalizedComponentScale(constructor) {\n switch (constructor) {\n case Int8Array:\n return 1 / 127;\n case Uint8Array:\n return 1 / 255;\n case Int16Array:\n return 1 / 32767;\n case Uint16Array:\n return 1 / 65535;\n default:\n throw new Error(\"THREE.GLTFLoader: Unsupported normalized accessor component type.\");}\n\n }\n function getImageURIMimeType(uri) {\n if (uri.search(/\\.jpe?g($|\\?)/i) > 0 || uri.search(/^data\\:image\\/jpeg/) === 0) return \"image/jpeg\";\n if (uri.search(/\\.webp($|\\?)/i) > 0 || uri.search(/^data\\:image\\/webp/) === 0) return \"image/webp\";\n return \"image/png\";\n }\n var GLTFParser = function () {\n function GLTFParser() {\n var json = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _classCallCheck2.default)(this, GLTFParser);\n this.json = json;\n this.extensions = {};\n this.plugins = {};\n this.options = options;\n this.cache = new GLTFRegistry();\n this.associations = new Map();\n this.primitiveCache = {};\n this.meshCache = {\n refs: {},\n uses: {} };\n\n this.cameraCache = {\n refs: {},\n uses: {} };\n\n this.lightCache = {\n refs: {},\n uses: {} };\n\n this.sourceCache = {};\n this.textureCache = {};\n this.nodeNamesUsed = {};\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) === true;\n var isFirefox = navigator.userAgent.indexOf(\"Firefox\") > -1;\n var firefoxVersion = isFirefox ? navigator.userAgent.match(/Firefox\\/([0-9]+)\\./)[1] : -1;\n if (typeof createImageBitmap === \"undefined\" || isSafari || isFirefox && firefoxVersion < 98) {\n this.textureLoader = new _Three.TextureLoader(this.options.manager);\n } else {\n this.textureLoader = new _Three.ImageBitmapLoader(this.options.manager);\n }\n this.textureLoader.setCrossOrigin(this.options.crossOrigin);\n this.textureLoader.setRequestHeader(this.options.requestHeader);\n this.fileLoader = new _Three.FileLoader(this.options.manager);\n this.fileLoader.setResponseType(\"arraybuffer\");\n if (this.options.crossOrigin === \"use-credentials\") {\n this.fileLoader.setWithCredentials(true);\n }\n }\n (0, _createClass2.default)(GLTFParser, [{\n key: \"setExtensions\",\n value: function setExtensions(extensions) {\n this.extensions = extensions;\n } },\n {\n key: \"setPlugins\",\n value: function setPlugins(plugins) {\n this.plugins = plugins;\n } },\n {\n key: \"parse\",\n value: function parse(onLoad, onError) {\n var parser = this;\n var json = this.json;\n var extensions = this.extensions;\n this.cache.removeAll();\n this._invokeAll(function (ext) {\n return ext._markDefs && ext._markDefs();\n });\n Promise.all(this._invokeAll(function (ext) {\n return ext.beforeRoot && ext.beforeRoot();\n })).then(function () {\n return Promise.all([parser.getDependencies(\"scene\"), parser.getDependencies(\"animation\"), parser.getDependencies(\"camera\")]);\n }).then(function (dependencies) {\n var result = {\n scene: dependencies[0][json.scene || 0],\n scenes: dependencies[0],\n animations: dependencies[1],\n cameras: dependencies[2],\n asset: json.asset,\n parser: parser,\n userData: {} };\n\n addUnknownExtensionsToUserData(extensions, result, json);\n assignExtrasToUserData(result, json);\n Promise.all(parser._invokeAll(function (ext) {\n return ext.afterRoot && ext.afterRoot(result);\n })).then(function () {\n onLoad(result);\n });\n }).catch(onError);\n } },\n {\n key: \"_markDefs\",\n value: function _markDefs() {\n var nodeDefs = this.json.nodes || [];\n var skinDefs = this.json.skins || [];\n var meshDefs = this.json.meshes || [];\n for (var skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex++) {\n var joints = skinDefs[skinIndex].joints;\n for (var i = 0, il = joints.length; i < il; i++) {\n nodeDefs[joints[i]].isBone = true;\n }\n }\n for (var nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex++) {\n var nodeDef = nodeDefs[nodeIndex];\n if (nodeDef.mesh !== undefined) {\n this._addNodeRef(this.meshCache, nodeDef.mesh);\n if (nodeDef.skin !== undefined) {\n meshDefs[nodeDef.mesh].isSkinnedMesh = true;\n }\n }\n if (nodeDef.camera !== undefined) {\n this._addNodeRef(this.cameraCache, nodeDef.camera);\n }\n }\n } },\n {\n key: \"_addNodeRef\",\n value: function _addNodeRef(cache, index) {\n if (index === undefined) return;\n if (cache.refs[index] === undefined) {\n cache.refs[index] = cache.uses[index] = 0;\n }\n cache.refs[index]++;\n } },\n {\n key: \"_getNodeRef\",\n value: function _getNodeRef(cache, index, object) {\n var _this3 = this;\n if (cache.refs[index] <= 1) return object;\n var ref = object.clone();\n var updateMappings = function updateMappings(original, clone) {\n var mappings = _this3.associations.get(original);\n if (mappings != null) {\n _this3.associations.set(clone, mappings);\n }\n var _iterator = (0, _createForOfIteratorHelper2.default)(original.children.entries()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = (0, _slicedToArray2.default)(_step.value, 2),\n i = _step$value[0],\n child = _step$value[1];\n updateMappings(child, clone.children[i]);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n };\n updateMappings(object, ref);\n ref.name += \"_instance_\" + cache.uses[index]++;\n return ref;\n } },\n {\n key: \"_invokeOne\",\n value: function _invokeOne(func) {\n var extensions = Object.values(this.plugins);\n extensions.push(this);\n for (var i = 0; i < extensions.length; i++) {\n var result = func(extensions[i]);\n if (result) return result;\n }\n return null;\n } },\n {\n key: \"_invokeAll\",\n value: function _invokeAll(func) {\n var extensions = Object.values(this.plugins);\n extensions.unshift(this);\n var pending = [];\n for (var i = 0; i < extensions.length; i++) {\n var result = func(extensions[i]);\n if (result) pending.push(result);\n }\n return pending;\n } },\n {\n key: \"getDependency\",\n value: function getDependency(type, index) {\n var cacheKey = type + \":\" + index;\n var dependency = this.cache.get(cacheKey);\n if (!dependency) {\n switch (type) {\n case \"scene\":\n dependency = this.loadScene(index);\n break;\n case \"node\":\n dependency = this.loadNode(index);\n break;\n case \"mesh\":\n dependency = this._invokeOne(function (ext) {\n return ext.loadMesh && ext.loadMesh(index);\n });\n break;\n case \"accessor\":\n dependency = this.loadAccessor(index);\n break;\n case \"bufferView\":\n dependency = this._invokeOne(function (ext) {\n return ext.loadBufferView && ext.loadBufferView(index);\n });\n break;\n case \"buffer\":\n dependency = this.loadBuffer(index);\n break;\n case \"material\":\n dependency = this._invokeOne(function (ext) {\n return ext.loadMaterial && ext.loadMaterial(index);\n });\n break;\n case \"texture\":\n dependency = this._invokeOne(function (ext) {\n return ext.loadTexture && ext.loadTexture(index);\n });\n break;\n case \"skin\":\n dependency = this.loadSkin(index);\n break;\n case \"animation\":\n dependency = this._invokeOne(function (ext) {\n return ext.loadAnimation && ext.loadAnimation(index);\n });\n break;\n case \"camera\":\n dependency = this.loadCamera(index);\n break;\n default:\n throw new Error(\"Unknown type: \" + type);}\n\n this.cache.add(cacheKey, dependency);\n }\n return dependency;\n } },\n {\n key: \"getDependencies\",\n value: function getDependencies(type) {\n var dependencies = this.cache.get(type);\n if (!dependencies) {\n var parser = this;\n var defs = this.json[type + (type === \"mesh\" ? \"es\" : \"s\")] || [];\n dependencies = Promise.all(defs.map(function (def, index) {\n return parser.getDependency(type, index);\n }));\n this.cache.add(type, dependencies);\n }\n return dependencies;\n } },\n {\n key: \"loadBuffer\",\n value: function loadBuffer(bufferIndex) {\n var bufferDef = this.json.buffers[bufferIndex];\n var loader = this.fileLoader;\n if (bufferDef.type && bufferDef.type !== \"arraybuffer\") {\n throw new Error(\"THREE.GLTFLoader: \" + bufferDef.type + \" buffer type is not supported.\");\n }\n if (bufferDef.uri === undefined && bufferIndex === 0) {\n return Promise.resolve(this.extensions[EXTENSIONS.KHR_BINARY_GLTF].body);\n }\n var options = this.options;\n return new Promise(function (resolve, reject) {\n loader.load(_Three.LoaderUtils.resolveURL(bufferDef.uri, options.path), resolve, undefined, function () {\n reject(new Error('THREE.GLTFLoader: Failed to load buffer \"' + bufferDef.uri + '\".'));\n });\n });\n } },\n {\n key: \"loadBufferView\",\n value: function loadBufferView(bufferViewIndex) {\n var bufferViewDef = this.json.bufferViews[bufferViewIndex];\n return this.getDependency(\"buffer\", bufferViewDef.buffer).then(function (buffer) {\n var byteLength = bufferViewDef.byteLength || 0;\n var byteOffset = bufferViewDef.byteOffset || 0;\n return buffer.slice(byteOffset, byteOffset + byteLength);\n });\n } },\n {\n key: \"loadAccessor\",\n value: function loadAccessor(accessorIndex) {\n var parser = this;\n var json = this.json;\n var accessorDef = this.json.accessors[accessorIndex];\n if (accessorDef.bufferView === undefined && accessorDef.sparse === undefined) {\n return Promise.resolve(null);\n }\n var pendingBufferViews = [];\n if (accessorDef.bufferView !== undefined) {\n pendingBufferViews.push(this.getDependency(\"bufferView\", accessorDef.bufferView));\n } else {\n pendingBufferViews.push(null);\n }\n if (accessorDef.sparse !== undefined) {\n pendingBufferViews.push(this.getDependency(\"bufferView\", accessorDef.sparse.indices.bufferView));\n pendingBufferViews.push(this.getDependency(\"bufferView\", accessorDef.sparse.values.bufferView));\n }\n return Promise.all(pendingBufferViews).then(function (bufferViews) {\n var bufferView = bufferViews[0];\n var itemSize = WEBGL_TYPE_SIZES[accessorDef.type];\n var TypedArray = WEBGL_COMPONENT_TYPES[accessorDef.componentType];\n var elementBytes = TypedArray.BYTES_PER_ELEMENT;\n var itemBytes = elementBytes * itemSize;\n var byteOffset = accessorDef.byteOffset || 0;\n var byteStride = accessorDef.bufferView !== undefined ? json.bufferViews[accessorDef.bufferView].byteStride : undefined;\n var normalized = accessorDef.normalized === true;\n var array, bufferAttribute;\n if (byteStride && byteStride !== itemBytes) {\n var ibSlice = Math.floor(byteOffset / byteStride);\n var ibCacheKey = \"InterleavedBuffer:\" + accessorDef.bufferView + \":\" + accessorDef.componentType + \":\" + ibSlice + \":\" + accessorDef.count;\n var ib = parser.cache.get(ibCacheKey);\n if (!ib) {\n array = new TypedArray(bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes);\n ib = new _Three.InterleavedBuffer(array, byteStride / elementBytes);\n parser.cache.add(ibCacheKey, ib);\n }\n bufferAttribute = new _Three.InterleavedBufferAttribute(ib, itemSize, byteOffset % byteStride / elementBytes, normalized);\n } else {\n if (bufferView === null) {\n array = new TypedArray(accessorDef.count * itemSize);\n } else {\n array = new TypedArray(bufferView, byteOffset, accessorDef.count * itemSize);\n }\n bufferAttribute = new _Three.BufferAttribute(array, itemSize, normalized);\n }\n if (accessorDef.sparse !== undefined) {\n var itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR;\n var TypedArrayIndices = WEBGL_COMPONENT_TYPES[accessorDef.sparse.indices.componentType];\n var byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0;\n var byteOffsetValues = accessorDef.sparse.values.byteOffset || 0;\n var sparseIndices = new TypedArrayIndices(bufferViews[1], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices);\n var sparseValues = new TypedArray(bufferViews[2], byteOffsetValues, accessorDef.sparse.count * itemSize);\n if (bufferView !== null) {\n bufferAttribute = new _Three.BufferAttribute(bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized);\n }\n for (var i = 0, il = sparseIndices.length; i < il; i++) {\n var index = sparseIndices[i];\n bufferAttribute.setX(index, sparseValues[i * itemSize]);\n if (itemSize >= 2) bufferAttribute.setY(index, sparseValues[i * itemSize + 1]);\n if (itemSize >= 3) bufferAttribute.setZ(index, sparseValues[i * itemSize + 2]);\n if (itemSize >= 4) bufferAttribute.setW(index, sparseValues[i * itemSize + 3]);\n if (itemSize >= 5) throw new Error(\"THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.\");\n }\n }\n return bufferAttribute;\n });\n } },\n {\n key: \"loadTexture\",\n value: function loadTexture(textureIndex) {\n var json = this.json;\n var options = this.options;\n var textureDef = json.textures[textureIndex];\n var sourceIndex = textureDef.source;\n var sourceDef = json.images[sourceIndex];\n var loader = this.textureLoader;\n if (sourceDef.uri) {\n var handler = options.manager.getHandler(sourceDef.uri);\n if (handler !== null) loader = handler;\n }\n return this.loadTextureImage(textureIndex, sourceIndex, loader);\n } },\n {\n key: \"loadTextureImage\",\n value: function loadTextureImage(textureIndex, sourceIndex, loader) {\n var parser = this;\n var json = this.json;\n var textureDef = json.textures[textureIndex];\n var sourceDef = json.images[sourceIndex];\n var cacheKey = (sourceDef.uri || sourceDef.bufferView) + \":\" + textureDef.sampler;\n if (this.textureCache[cacheKey]) {\n return this.textureCache[cacheKey];\n }\n var promise = this.loadImageSource(sourceIndex, loader).then(function (texture) {\n texture.flipY = false;\n if (textureDef.name) texture.name = textureDef.name;\n var samplers = json.samplers || {};\n var sampler = samplers[textureDef.sampler] || {};\n texture.magFilter = WEBGL_FILTERS[sampler.magFilter] || _Three.LinearFilter;\n texture.minFilter = WEBGL_FILTERS[sampler.minFilter] || _Three.LinearMipmapLinearFilter;\n texture.wrapS = WEBGL_WRAPPINGS[sampler.wrapS] || _Three.RepeatWrapping;\n texture.wrapT = WEBGL_WRAPPINGS[sampler.wrapT] || _Three.RepeatWrapping;\n parser.associations.set(texture, {\n textures: textureIndex });\n\n return texture;\n }).catch(function () {\n return null;\n });\n this.textureCache[cacheKey] = promise;\n return promise;\n } },\n {\n key: \"loadImageSource\",\n value: function loadImageSource(sourceIndex, loader) {\n var parser = this;\n var json = this.json;\n var options = this.options;\n if (this.sourceCache[sourceIndex] !== undefined) {\n return this.sourceCache[sourceIndex].then(function (texture) {\n return texture.clone();\n });\n }\n var sourceDef = json.images[sourceIndex];\n var URL = self.URL || self.webkitURL;\n var sourceURI = sourceDef.uri || \"\";\n var isObjectURL = false;\n if (sourceDef.bufferView !== undefined) {\n sourceURI = parser.getDependency(\"bufferView\", sourceDef.bufferView).then(function (bufferView) {\n isObjectURL = true;\n var blob = new Blob([bufferView], {\n type: sourceDef.mimeType });\n\n sourceURI = URL.createObjectURL(blob);\n return sourceURI;\n });\n } else if (sourceDef.uri === undefined) {\n throw new Error(\"THREE.GLTFLoader: Image \" + sourceIndex + \" is missing URI and bufferView\");\n }\n var promise = Promise.resolve(sourceURI).then(function (sourceURI) {\n return new Promise(function (resolve, reject) {\n var onLoad = resolve;\n if (loader.isImageBitmapLoader === true) {\n onLoad = function onLoad(imageBitmap) {\n var texture = new _Three.Texture(imageBitmap);\n texture.needsUpdate = true;\n resolve(texture);\n };\n }\n loader.load(_Three.LoaderUtils.resolveURL(sourceURI, options.path), onLoad, undefined, reject);\n });\n }).then(function (texture) {\n if (isObjectURL === true) {\n URL.revokeObjectURL(sourceURI);\n }\n texture.userData.mimeType = sourceDef.mimeType || getImageURIMimeType(sourceDef.uri);\n return texture;\n }).catch(function (error) {\n console.error(\"THREE.GLTFLoader: Couldn't load texture\", sourceURI);\n throw error;\n });\n this.sourceCache[sourceIndex] = promise;\n return promise;\n } },\n {\n key: \"assignTexture\",\n value: function assignTexture(materialParams, mapName, mapDef, encoding) {\n var parser = this;\n return this.getDependency(\"texture\", mapDef.index).then(function (texture) {\n if (mapDef.texCoord !== undefined && mapDef.texCoord != 0 && !(mapName === \"aoMap\" && mapDef.texCoord == 1)) {\n console.warn(\"THREE.GLTFLoader: Custom UV set \" + mapDef.texCoord + \" for texture \" + mapName + \" not yet supported.\");\n }\n if (parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]) {\n var transform = mapDef.extensions !== undefined ? mapDef.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;\n if (transform) {\n var gltfReference = parser.associations.get(texture);\n texture = parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM].extendTexture(texture, transform);\n parser.associations.set(texture, gltfReference);\n }\n }\n if (encoding !== undefined) {\n texture.encoding = encoding;\n }\n materialParams[mapName] = texture;\n return texture;\n });\n } },\n {\n key: \"assignFinalMaterial\",\n value: function assignFinalMaterial(mesh) {\n var geometry = mesh.geometry;\n var material = mesh.material;\n var useDerivativeTangents = geometry.attributes.tangent === undefined;\n var useVertexColors = geometry.attributes.color !== undefined;\n var useFlatShading = geometry.attributes.normal === undefined;\n if (mesh.isPoints) {\n var cacheKey = \"PointsMaterial:\" + material.uuid;\n var pointsMaterial = this.cache.get(cacheKey);\n if (!pointsMaterial) {\n pointsMaterial = new _Three.PointsMaterial();\n _Three.Material.prototype.copy.call(pointsMaterial, material);\n pointsMaterial.color.copy(material.color);\n pointsMaterial.map = material.map;\n pointsMaterial.sizeAttenuation = false;\n this.cache.add(cacheKey, pointsMaterial);\n }\n material = pointsMaterial;\n } else if (mesh.isLine) {\n var _cacheKey = \"LineBasicMaterial:\" + material.uuid;\n var lineMaterial = this.cache.get(_cacheKey);\n if (!lineMaterial) {\n lineMaterial = new _Three.LineBasicMaterial();\n _Three.Material.prototype.copy.call(lineMaterial, material);\n lineMaterial.color.copy(material.color);\n this.cache.add(_cacheKey, lineMaterial);\n }\n material = lineMaterial;\n }\n if (useDerivativeTangents || useVertexColors || useFlatShading) {\n var _cacheKey2 = \"ClonedMaterial:\" + material.uuid + \":\";\n if (material.isGLTFSpecularGlossinessMaterial) _cacheKey2 += \"specular-glossiness:\";\n if (useDerivativeTangents) _cacheKey2 += \"derivative-tangents:\";\n if (useVertexColors) _cacheKey2 += \"vertex-colors:\";\n if (useFlatShading) _cacheKey2 += \"flat-shading:\";\n var cachedMaterial = this.cache.get(_cacheKey2);\n if (!cachedMaterial) {\n cachedMaterial = material.clone();\n if (useVertexColors) cachedMaterial.vertexColors = true;\n if (useFlatShading) cachedMaterial.flatShading = true;\n if (useDerivativeTangents) {\n if (cachedMaterial.normalScale) cachedMaterial.normalScale.y *= -1;\n if (cachedMaterial.clearcoatNormalScale) cachedMaterial.clearcoatNormalScale.y *= -1;\n }\n this.cache.add(_cacheKey2, cachedMaterial);\n this.associations.set(cachedMaterial, this.associations.get(material));\n }\n material = cachedMaterial;\n }\n if (material.aoMap && geometry.attributes.uv2 === undefined && geometry.attributes.uv !== undefined) {\n geometry.setAttribute(\"uv2\", geometry.attributes.uv);\n }\n mesh.material = material;\n } },\n {\n key: \"getMaterialType\",\n value: function getMaterialType() {\n return _Three.MeshStandardMaterial;\n } },\n {\n key: \"loadMaterial\",\n value: function loadMaterial(materialIndex) {\n var parser = this;\n var json = this.json;\n var extensions = this.extensions;\n var materialDef = json.materials[materialIndex];\n var materialType;\n var materialParams = {};\n var materialExtensions = materialDef.extensions || {};\n var pending = [];\n if (materialExtensions[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]) {\n var sgExtension = extensions[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];\n materialType = sgExtension.getMaterialType();\n pending.push(sgExtension.extendParams(materialParams, materialDef, parser));\n } else if (materialExtensions[EXTENSIONS.KHR_MATERIALS_UNLIT]) {\n var kmuExtension = extensions[EXTENSIONS.KHR_MATERIALS_UNLIT];\n materialType = kmuExtension.getMaterialType();\n pending.push(kmuExtension.extendParams(materialParams, materialDef, parser));\n } else {\n var metallicRoughness = materialDef.pbrMetallicRoughness || {};\n materialParams.color = new _Three.Color(1.0, 1.0, 1.0);\n materialParams.opacity = 1.0;\n if (Array.isArray(metallicRoughness.baseColorFactor)) {\n var array = metallicRoughness.baseColorFactor;\n materialParams.color.fromArray(array);\n materialParams.opacity = array[3];\n }\n if (metallicRoughness.baseColorTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"map\", metallicRoughness.baseColorTexture, _Three.sRGBEncoding));\n }\n materialParams.metalness = metallicRoughness.metallicFactor !== undefined ? metallicRoughness.metallicFactor : 1.0;\n materialParams.roughness = metallicRoughness.roughnessFactor !== undefined ? metallicRoughness.roughnessFactor : 1.0;\n if (metallicRoughness.metallicRoughnessTexture !== undefined) {\n pending.push(parser.assignTexture(materialParams, \"metalnessMap\", metallicRoughness.metallicRoughnessTexture));\n pending.push(parser.assignTexture(materialParams, \"roughnessMap\", metallicRoughness.metallicRoughnessTexture));\n }\n materialType = this._invokeOne(function (ext) {\n return ext.getMaterialType && ext.getMaterialType(materialIndex);\n });\n pending.push(Promise.all(this._invokeAll(function (ext) {\n return ext.extendMaterialParams && ext.extendMaterialParams(materialIndex, materialParams);\n })));\n }\n if (materialDef.doubleSided === true) {\n materialParams.side = _Three.DoubleSide;\n }\n var alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE;\n if (alphaMode === ALPHA_MODES.BLEND) {\n materialParams.transparent = true;\n materialParams.depthWrite = false;\n } else {\n materialParams.transparent = false;\n if (alphaMode === ALPHA_MODES.MASK) {\n materialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;\n }\n }\n if (materialDef.normalTexture !== undefined && materialType !== _Three.MeshBasicMaterial) {\n pending.push(parser.assignTexture(materialParams, \"normalMap\", materialDef.normalTexture));\n materialParams.normalScale = new _Three.Vector2(1, 1);\n if (materialDef.normalTexture.scale !== undefined) {\n var scale = materialDef.normalTexture.scale;\n materialParams.normalScale.set(scale, scale);\n }\n }\n if (materialDef.occlusionTexture !== undefined && materialType !== _Three.MeshBasicMaterial) {\n pending.push(parser.assignTexture(materialParams, \"aoMap\", materialDef.occlusionTexture));\n if (materialDef.occlusionTexture.strength !== undefined) {\n materialParams.aoMapIntensity = materialDef.occlusionTexture.strength;\n }\n }\n if (materialDef.emissiveFactor !== undefined && materialType !== _Three.MeshBasicMaterial) {\n materialParams.emissive = new _Three.Color().fromArray(materialDef.emissiveFactor);\n }\n if (materialDef.emissiveTexture !== undefined && materialType !== _Three.MeshBasicMaterial) {\n pending.push(parser.assignTexture(materialParams, \"emissiveMap\", materialDef.emissiveTexture, _Three.sRGBEncoding));\n }\n return Promise.all(pending).then(function () {\n var material;\n if (materialType === GLTFMeshStandardSGMaterial) {\n material = extensions[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(materialParams);\n } else {\n material = new materialType(materialParams);\n }\n if (materialDef.name) material.name = materialDef.name;\n assignExtrasToUserData(material, materialDef);\n parser.associations.set(material, {\n materials: materialIndex });\n\n if (materialDef.extensions) addUnknownExtensionsToUserData(extensions, material, materialDef);\n return material;\n });\n } },\n {\n key: \"createUniqueName\",\n value: function createUniqueName(originalName) {\n var sanitizedName = _Three.PropertyBinding.sanitizeNodeName(originalName || \"\");\n var name = sanitizedName;\n for (var i = 1; this.nodeNamesUsed[name]; ++i) {\n name = sanitizedName + \"_\" + i;\n }\n this.nodeNamesUsed[name] = true;\n return name;\n } },\n {\n key: \"loadGeometries\",\n value: function loadGeometries(primitives) {\n var parser = this;\n var extensions = this.extensions;\n var cache = this.primitiveCache;\n function createDracoPrimitive(primitive) {\n return extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(primitive, parser).then(function (geometry) {\n return addPrimitiveAttributes(geometry, primitive, parser);\n });\n }\n var pending = [];\n for (var i = 0, il = primitives.length; i < il; i++) {\n var primitive = primitives[i];\n var cacheKey = createPrimitiveKey(primitive);\n var cached = cache[cacheKey];\n if (cached) {\n pending.push(cached.promise);\n } else {\n var geometryPromise = void 0;\n if (primitive.extensions && primitive.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]) {\n geometryPromise = createDracoPrimitive(primitive);\n } else {\n geometryPromise = addPrimitiveAttributes(new _Three.BufferGeometry(), primitive, parser);\n }\n cache[cacheKey] = {\n primitive: primitive,\n promise: geometryPromise };\n\n pending.push(geometryPromise);\n }\n }\n return Promise.all(pending);\n } },\n {\n key: \"loadMesh\",\n value: function loadMesh(meshIndex) {\n var parser = this;\n var json = this.json;\n var extensions = this.extensions;\n var meshDef = json.meshes[meshIndex];\n var primitives = meshDef.primitives;\n var pending = [];\n for (var i = 0, il = primitives.length; i < il; i++) {\n var material = primitives[i].material === undefined ? createDefaultMaterial(this.cache) : this.getDependency(\"material\", primitives[i].material);\n pending.push(material);\n }\n pending.push(parser.loadGeometries(primitives));\n return Promise.all(pending).then(function (results) {\n var materials = results.slice(0, results.length - 1);\n var geometries = results[results.length - 1];\n var meshes = [];\n for (var _i4 = 0, _il3 = geometries.length; _i4 < _il3; _i4++) {\n var geometry = geometries[_i4];\n var primitive = primitives[_i4];\n var mesh = void 0;\n var _material = materials[_i4];\n if (primitive.mode === WEBGL_CONSTANTS.TRIANGLES || primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP || primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN || primitive.mode === undefined) {\n mesh = meshDef.isSkinnedMesh === true ? new _Three.SkinnedMesh(geometry, _material) : new _Three.Mesh(geometry, _material);\n if (mesh.isSkinnedMesh === true && !mesh.geometry.attributes.skinWeight.normalized) {\n mesh.normalizeSkinWeights();\n }\n if (primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP) {\n mesh.geometry = toTrianglesDrawMode(mesh.geometry, _Three.TriangleStripDrawMode);\n } else if (primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN) {\n mesh.geometry = toTrianglesDrawMode(mesh.geometry, _Three.TriangleFanDrawMode);\n }\n } else if (primitive.mode === WEBGL_CONSTANTS.LINES) {\n mesh = new _Three.LineSegments(geometry, _material);\n } else if (primitive.mode === WEBGL_CONSTANTS.LINE_STRIP) {\n mesh = new _Three.Line(geometry, _material);\n } else if (primitive.mode === WEBGL_CONSTANTS.LINE_LOOP) {\n mesh = new _Three.LineLoop(geometry, _material);\n } else if (primitive.mode === WEBGL_CONSTANTS.POINTS) {\n mesh = new _Three.Points(geometry, _material);\n } else {\n throw new Error(\"THREE.GLTFLoader: Primitive mode unsupported: \" + primitive.mode);\n }\n if (Object.keys(mesh.geometry.morphAttributes).length > 0) {\n updateMorphTargets(mesh, meshDef);\n }\n mesh.name = parser.createUniqueName(meshDef.name || \"mesh_\" + meshIndex);\n assignExtrasToUserData(mesh, meshDef);\n if (primitive.extensions) addUnknownExtensionsToUserData(extensions, mesh, primitive);\n parser.assignFinalMaterial(mesh);\n meshes.push(mesh);\n }\n for (var _i5 = 0, _il4 = meshes.length; _i5 < _il4; _i5++) {\n parser.associations.set(meshes[_i5], {\n meshes: meshIndex,\n primitives: _i5 });\n\n }\n if (meshes.length === 1) {\n return meshes[0];\n }\n var group = new _Three.Group();\n parser.associations.set(group, {\n meshes: meshIndex });\n\n for (var _i6 = 0, _il5 = meshes.length; _i6 < _il5; _i6++) {\n group.add(meshes[_i6]);\n }\n return group;\n });\n } },\n {\n key: \"loadCamera\",\n value: function loadCamera(cameraIndex) {\n var camera;\n var cameraDef = this.json.cameras[cameraIndex];\n var params = cameraDef[cameraDef.type];\n if (!params) {\n console.warn(\"THREE.GLTFLoader: Missing camera parameters.\");\n return;\n }\n if (cameraDef.type === \"perspective\") {\n camera = new _Three.PerspectiveCamera(_Three.MathUtils.radToDeg(params.yfov), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6);\n } else if (cameraDef.type === \"orthographic\") {\n camera = new _Three.OrthographicCamera(-params.xmag, params.xmag, params.ymag, -params.ymag, params.znear, params.zfar);\n }\n if (cameraDef.name) camera.name = this.createUniqueName(cameraDef.name);\n assignExtrasToUserData(camera, cameraDef);\n return Promise.resolve(camera);\n } },\n {\n key: \"loadSkin\",\n value: function loadSkin(skinIndex) {\n var skinDef = this.json.skins[skinIndex];\n var skinEntry = {\n joints: skinDef.joints };\n\n if (skinDef.inverseBindMatrices === undefined) {\n return Promise.resolve(skinEntry);\n }\n return this.getDependency(\"accessor\", skinDef.inverseBindMatrices).then(function (accessor) {\n skinEntry.inverseBindMatrices = accessor;\n return skinEntry;\n });\n } },\n {\n key: \"loadAnimation\",\n value: function loadAnimation(animationIndex) {\n var json = this.json;\n var animationDef = json.animations[animationIndex];\n var pendingNodes = [];\n var pendingInputAccessors = [];\n var pendingOutputAccessors = [];\n var pendingSamplers = [];\n var pendingTargets = [];\n for (var i = 0, il = animationDef.channels.length; i < il; i++) {\n var channel = animationDef.channels[i];\n var sampler = animationDef.samplers[channel.sampler];\n var target = channel.target;\n var name = target.node;\n var input = animationDef.parameters !== undefined ? animationDef.parameters[sampler.input] : sampler.input;\n var output = animationDef.parameters !== undefined ? animationDef.parameters[sampler.output] : sampler.output;\n pendingNodes.push(this.getDependency(\"node\", name));\n pendingInputAccessors.push(this.getDependency(\"accessor\", input));\n pendingOutputAccessors.push(this.getDependency(\"accessor\", output));\n pendingSamplers.push(sampler);\n pendingTargets.push(target);\n }\n return Promise.all([Promise.all(pendingNodes), Promise.all(pendingInputAccessors), Promise.all(pendingOutputAccessors), Promise.all(pendingSamplers), Promise.all(pendingTargets)]).then(function (dependencies) {\n var nodes = dependencies[0];\n var inputAccessors = dependencies[1];\n var outputAccessors = dependencies[2];\n var samplers = dependencies[3];\n var targets = dependencies[4];\n var tracks = [];\n var _loop = function _loop() {\n var node = nodes[_i7];\n var inputAccessor = inputAccessors[_i7];\n var outputAccessor = outputAccessors[_i7];\n var sampler = samplers[_i7];\n var target = targets[_i7];\n if (node === undefined) return 1;\n node.updateMatrix();\n var TypedKeyframeTrack;\n switch (PATH_PROPERTIES[target.path]) {\n case PATH_PROPERTIES.weights:\n TypedKeyframeTrack = _Three.NumberKeyframeTrack;\n break;\n case PATH_PROPERTIES.rotation:\n TypedKeyframeTrack = _Three.QuaternionKeyframeTrack;\n break;\n case PATH_PROPERTIES.position:\n case PATH_PROPERTIES.scale:\n default:\n TypedKeyframeTrack = _Three.VectorKeyframeTrack;\n break;}\n\n var targetName = node.name ? node.name : node.uuid;\n var interpolation = sampler.interpolation !== undefined ? INTERPOLATION[sampler.interpolation] : _Three.InterpolateLinear;\n var targetNames = [];\n if (PATH_PROPERTIES[target.path] === PATH_PROPERTIES.weights) {\n node.traverse(function (object) {\n if (object.morphTargetInfluences) {\n targetNames.push(object.name ? object.name : object.uuid);\n }\n });\n } else {\n targetNames.push(targetName);\n }\n var outputArray = outputAccessor.array;\n if (outputAccessor.normalized) {\n var scale = getNormalizedComponentScale(outputArray.constructor);\n var scaled = new Float32Array(outputArray.length);\n for (var j = 0, jl = outputArray.length; j < jl; j++) {\n scaled[j] = outputArray[j] * scale;\n }\n outputArray = scaled;\n }\n for (var _j = 0, _jl = targetNames.length; _j < _jl; _j++) {\n var track = new TypedKeyframeTrack(targetNames[_j] + \".\" + PATH_PROPERTIES[target.path], inputAccessor.array, outputArray, interpolation);\n if (sampler.interpolation === \"CUBICSPLINE\") {\n track.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline(result) {\n var interpolantType = this instanceof _Three.QuaternionKeyframeTrack ? GLTFCubicSplineQuaternionInterpolant : GLTFCubicSplineInterpolant;\n return new interpolantType(this.times, this.values, this.getValueSize() / 3, result);\n };\n track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true;\n }\n tracks.push(track);\n }\n };\n for (var _i7 = 0, _il6 = nodes.length; _i7 < _il6; _i7++) {\n if (_loop()) continue;\n }\n var name = animationDef.name ? animationDef.name : \"animation_\" + animationIndex;\n return new _Three.AnimationClip(name, undefined, tracks);\n });\n } },\n {\n key: \"createNodeMesh\",\n value: function createNodeMesh(nodeIndex) {\n var json = this.json;\n var parser = this;\n var nodeDef = json.nodes[nodeIndex];\n if (nodeDef.mesh === undefined) return null;\n return parser.getDependency(\"mesh\", nodeDef.mesh).then(function (mesh) {\n var node = parser._getNodeRef(parser.meshCache, nodeDef.mesh, mesh);\n if (nodeDef.weights !== undefined) {\n node.traverse(function (o) {\n if (!o.isMesh) return;\n for (var i = 0, il = nodeDef.weights.length; i < il; i++) {\n o.morphTargetInfluences[i] = nodeDef.weights[i];\n }\n });\n }\n return node;\n });\n } },\n {\n key: \"loadNode\",\n value: function loadNode(nodeIndex) {\n var json = this.json;\n var extensions = this.extensions;\n var parser = this;\n var nodeDef = json.nodes[nodeIndex];\n var nodeName = nodeDef.name ? parser.createUniqueName(nodeDef.name) : \"\";\n return function () {\n var pending = [];\n var meshPromise = parser._invokeOne(function (ext) {\n return ext.createNodeMesh && ext.createNodeMesh(nodeIndex);\n });\n if (meshPromise) {\n pending.push(meshPromise);\n }\n if (nodeDef.camera !== undefined) {\n pending.push(parser.getDependency(\"camera\", nodeDef.camera).then(function (camera) {\n return parser._getNodeRef(parser.cameraCache, nodeDef.camera, camera);\n }));\n }\n parser._invokeAll(function (ext) {\n return ext.createNodeAttachment && ext.createNodeAttachment(nodeIndex);\n }).forEach(function (promise) {\n pending.push(promise);\n });\n return Promise.all(pending);\n }().then(function (objects) {\n var node;\n if (nodeDef.isBone === true) {\n node = new _Three.Bone();\n } else if (objects.length > 1) {\n node = new _Three.Group();\n } else if (objects.length === 1) {\n node = objects[0];\n } else {\n node = new _Three.Object3D();\n }\n if (node !== objects[0]) {\n for (var i = 0, il = objects.length; i < il; i++) {\n node.add(objects[i]);\n }\n }\n if (nodeDef.name) {\n node.userData.name = nodeDef.name;\n node.name = nodeName;\n }\n assignExtrasToUserData(node, nodeDef);\n if (nodeDef.extensions) addUnknownExtensionsToUserData(extensions, node, nodeDef);\n if (nodeDef.matrix !== undefined) {\n var matrix = new _Three.Matrix4();\n matrix.fromArray(nodeDef.matrix);\n node.applyMatrix4(matrix);\n } else {\n if (nodeDef.translation !== undefined) {\n node.position.fromArray(nodeDef.translation);\n }\n if (nodeDef.rotation !== undefined) {\n node.quaternion.fromArray(nodeDef.rotation);\n }\n if (nodeDef.scale !== undefined) {\n node.scale.fromArray(nodeDef.scale);\n }\n }\n if (!parser.associations.has(node)) {\n parser.associations.set(node, {});\n }\n parser.associations.get(node).nodes = nodeIndex;\n return node;\n });\n } },\n {\n key: \"loadScene\",\n value: function loadScene(sceneIndex) {\n var json = this.json;\n var extensions = this.extensions;\n var sceneDef = this.json.scenes[sceneIndex];\n var parser = this;\n var scene = new _Three.Group();\n if (sceneDef.name) scene.name = parser.createUniqueName(sceneDef.name);\n assignExtrasToUserData(scene, sceneDef);\n if (sceneDef.extensions) addUnknownExtensionsToUserData(extensions, scene, sceneDef);\n var nodeIds = sceneDef.nodes || [];\n var pending = [];\n for (var i = 0, il = nodeIds.length; i < il; i++) {\n pending.push(buildNodeHierarchy(nodeIds[i], scene, json, parser));\n }\n return Promise.all(pending).then(function () {\n var reduceAssociations = function reduceAssociations(node) {\n var reducedAssociations = new Map();\n var _iterator2 = (0, _createForOfIteratorHelper2.default)(parser.associations),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),\n key = _step2$value[0],\n value = _step2$value[1];\n if (key instanceof _Three.Material || key instanceof _Three.Texture) {\n reducedAssociations.set(key, value);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n node.traverse(function (node) {\n var mappings = parser.associations.get(node);\n if (mappings != null) {\n reducedAssociations.set(node, mappings);\n }\n });\n return reducedAssociations;\n };\n parser.associations = reduceAssociations(scene);\n return scene;\n });\n } }]);\n\n return GLTFParser;\n }();\n function buildNodeHierarchy(nodeId, parentObject, json, parser) {\n var nodeDef = json.nodes[nodeId];\n return parser.getDependency(\"node\", nodeId).then(function (node) {\n if (nodeDef.skin === undefined) return node;\n var skinEntry;\n return parser.getDependency(\"skin\", nodeDef.skin).then(function (skin) {\n skinEntry = skin;\n var pendingJoints = [];\n for (var i = 0, il = skinEntry.joints.length; i < il; i++) {\n pendingJoints.push(parser.getDependency(\"node\", skinEntry.joints[i]));\n }\n return Promise.all(pendingJoints);\n }).then(function (jointNodes) {\n node.traverse(function (mesh) {\n if (!mesh.isMesh) return;\n var bones = [];\n var boneInverses = [];\n for (var j = 0, jl = jointNodes.length; j < jl; j++) {\n var jointNode = jointNodes[j];\n if (jointNode) {\n bones.push(jointNode);\n var mat = new _Three.Matrix4();\n if (skinEntry.inverseBindMatrices !== undefined) {\n mat.fromArray(skinEntry.inverseBindMatrices.array, j * 16);\n }\n boneInverses.push(mat);\n } else {\n console.warn('THREE.GLTFLoader: Joint \"%s\" could not be found.', skinEntry.joints[j]);\n }\n }\n mesh.bind(new _Three.Skeleton(bones, boneInverses), mesh.matrixWorld);\n });\n return node;\n });\n }).then(function (node) {\n parentObject.add(node);\n var pending = [];\n if (nodeDef.children) {\n var children = nodeDef.children;\n for (var i = 0, il = children.length; i < il; i++) {\n var child = children[i];\n pending.push(buildNodeHierarchy(child, node, json, parser));\n }\n }\n return Promise.all(pending);\n });\n }\n function computeBounds(geometry, primitiveDef, parser) {\n var attributes = primitiveDef.attributes;\n var box = new _Three.Box3();\n if (attributes.POSITION !== undefined) {\n var accessor = parser.json.accessors[attributes.POSITION];\n var min = accessor.min;\n var max = accessor.max;\n if (min !== undefined && max !== undefined) {\n box.set(new _Three.Vector3(min[0], min[1], min[2]), new _Three.Vector3(max[0], max[1], max[2]));\n if (accessor.normalized) {\n var boxScale = getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[accessor.componentType]);\n box.min.multiplyScalar(boxScale);\n box.max.multiplyScalar(boxScale);\n }\n } else {\n console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\");\n return;\n }\n } else {\n return;\n }\n var targets = primitiveDef.targets;\n if (targets !== undefined) {\n var maxDisplacement = new _Three.Vector3();\n var vector = new _Three.Vector3();\n for (var i = 0, il = targets.length; i < il; i++) {\n var target = targets[i];\n if (target.POSITION !== undefined) {\n var _accessor = parser.json.accessors[target.POSITION];\n var _min = _accessor.min;\n var _max = _accessor.max;\n if (_min !== undefined && _max !== undefined) {\n vector.setX(Math.max(Math.abs(_min[0]), Math.abs(_max[0])));\n vector.setY(Math.max(Math.abs(_min[1]), Math.abs(_max[1])));\n vector.setZ(Math.max(Math.abs(_min[2]), Math.abs(_max[2])));\n if (_accessor.normalized) {\n var _boxScale = getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[_accessor.componentType]);\n vector.multiplyScalar(_boxScale);\n }\n maxDisplacement.max(vector);\n } else {\n console.warn(\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\");\n }\n }\n }\n box.expandByVector(maxDisplacement);\n }\n geometry.boundingBox = box;\n var sphere = new _Three.Sphere();\n box.getCenter(sphere.center);\n sphere.radius = box.min.distanceTo(box.max) / 2;\n geometry.boundingSphere = sphere;\n }\n function addPrimitiveAttributes(geometry, primitiveDef, parser) {\n var attributes = primitiveDef.attributes;\n var pending = [];\n function assignAttributeAccessor(accessorIndex, attributeName) {\n return parser.getDependency(\"accessor\", accessorIndex).then(function (accessor) {\n geometry.setAttribute(attributeName, accessor);\n });\n }\n for (var gltfAttributeName in attributes) {\n var threeAttributeName = ATTRIBUTES[gltfAttributeName] || gltfAttributeName.toLowerCase();\n if (threeAttributeName in geometry.attributes) continue;\n pending.push(assignAttributeAccessor(attributes[gltfAttributeName], threeAttributeName));\n }\n if (primitiveDef.indices !== undefined && !geometry.index) {\n var accessor = parser.getDependency(\"accessor\", primitiveDef.indices).then(function (accessor) {\n geometry.setIndex(accessor);\n });\n pending.push(accessor);\n }\n assignExtrasToUserData(geometry, primitiveDef);\n computeBounds(geometry, primitiveDef, parser);\n return Promise.all(pending).then(function () {\n return primitiveDef.targets !== undefined ? addMorphTargets(geometry, primitiveDef.targets, parser) : geometry;\n });\n }\n function toTrianglesDrawMode(geometry, drawMode) {\n var index = geometry.getIndex();\n if (index === null) {\n var indices = [];\n var position = geometry.getAttribute(\"position\");\n if (position !== undefined) {\n for (var i = 0; i < position.count; i++) {\n indices.push(i);\n }\n geometry.setIndex(indices);\n index = geometry.getIndex();\n } else {\n console.error(\"THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.\");\n return geometry;\n }\n }\n var numberOfTriangles = index.count - 2;\n var newIndices = [];\n if (drawMode === _Three.TriangleFanDrawMode) {\n for (var _i8 = 1; _i8 <= numberOfTriangles; _i8++) {\n newIndices.push(index.getX(0));\n newIndices.push(index.getX(_i8));\n newIndices.push(index.getX(_i8 + 1));\n }\n } else {\n for (var _i9 = 0; _i9 < numberOfTriangles; _i9++) {\n if (_i9 % 2 === 0) {\n newIndices.push(index.getX(_i9));\n newIndices.push(index.getX(_i9 + 1));\n newIndices.push(index.getX(_i9 + 2));\n } else {\n newIndices.push(index.getX(_i9 + 2));\n newIndices.push(index.getX(_i9 + 1));\n newIndices.push(index.getX(_i9));\n }\n }\n }\n if (newIndices.length / 3 !== numberOfTriangles) {\n console.error(\"THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.\");\n }\n var newGeometry = geometry.clone();\n newGeometry.setIndex(newIndices);\n return newGeometry;\n }return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/loaders", "outputPath": "/com/three/0.145.0/examples/jsm/loaders/GLTFLoader.js", "fileName": "/examples/jsm/loaders/GLTFLoader.js" }, "pandav:/examples/jsm/shaders/BokehShader2.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/shaders/BokehShader2\", [\"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BokehShader = exports.BokehDepthShader = void 0;\n var _Three = require('pandav:/com/three/0.145.0');\n var BokehShader = exports.BokehShader = {\n uniforms: {\n textureWidth: {\n value: 1.0 },\n\n textureHeight: {\n value: 1.0 },\n\n focalDepth: {\n value: 1.0 },\n\n focalLength: {\n value: 24.0 },\n\n fstop: {\n value: 0.9 },\n\n tColor: {\n value: null },\n\n tDepth: {\n value: null },\n\n maxblur: {\n value: 1.0 },\n\n showFocus: {\n value: 0 },\n\n manualdof: {\n value: 0 },\n\n vignetting: {\n value: 0 },\n\n depthblur: {\n value: 0 },\n\n threshold: {\n value: 0.5 },\n\n gain: {\n value: 2.0 },\n\n bias: {\n value: 0.5 },\n\n fringe: {\n value: 0.7 },\n\n znear: {\n value: 0.1 },\n\n zfar: {\n value: 100 },\n\n noise: {\n value: 1 },\n\n dithering: {\n value: 0.0001 },\n\n pentagon: {\n value: 0 },\n\n shaderFocus: {\n value: 1 },\n\n focusCoords: {\n value: new _Three.Vector2() } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\t#include \\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tuniform sampler2D tColor;\\n\\t\\tuniform sampler2D tDepth;\\n\\t\\tuniform float textureWidth;\\n\\t\\tuniform float textureHeight;\\n\\n\\t\\tuniform float focalDepth; //focal distance value in meters, but you may use autofocus option below\\n\\t\\tuniform float focalLength; //focal length in mm\\n\\t\\tuniform float fstop; //f-stop value\\n\\t\\tuniform bool showFocus; //show debug focus point and focal range (red = focal point, green = focal range)\\n\\n\\t\\t/*\\n\\t\\tmake sure that these two values are the same for your camera, otherwise distances will be wrong.\\n\\t\\t*/\\n\\n\\t\\tuniform float znear; // camera clipping start\\n\\t\\tuniform float zfar; // camera clipping end\\n\\n\\t\\t//------------------------------------------\\n\\t\\t//user variables\\n\\n\\t\\tconst int samples = SAMPLES; //samples on the first ring\\n\\t\\tconst int rings = RINGS; //ring count\\n\\n\\t\\tconst int maxringsamples = rings * samples;\\n\\n\\t\\tuniform bool manualdof; // manual dof calculation\\n\\t\\tfloat ndofstart = 1.0; // near dof blur start\\n\\t\\tfloat ndofdist = 2.0; // near dof blur falloff distance\\n\\t\\tfloat fdofstart = 1.0; // far dof blur start\\n\\t\\tfloat fdofdist = 3.0; // far dof blur falloff distance\\n\\n\\t\\tfloat CoC = 0.03; //circle of confusion size in mm (35mm film = 0.03mm)\\n\\n\\t\\tuniform bool vignetting; // use optical lens vignetting\\n\\n\\t\\tfloat vignout = 1.3; // vignetting outer border\\n\\t\\tfloat vignin = 0.0; // vignetting inner border\\n\\t\\tfloat vignfade = 22.0; // f-stops till vignete fades\\n\\n\\t\\tuniform bool shaderFocus;\\n\\t\\t// disable if you use external focalDepth value\\n\\n\\t\\tuniform vec2 focusCoords;\\n\\t\\t// autofocus point on screen (0.0,0.0 - left lower corner, 1.0,1.0 - upper right)\\n\\t\\t// if center of screen use vec2(0.5, 0.5);\\n\\n\\t\\tuniform float maxblur;\\n\\t\\t//clamp value of max blur (0.0 = no blur, 1.0 default)\\n\\n\\t\\tuniform float threshold; // highlight threshold;\\n\\t\\tuniform float gain; // highlight gain;\\n\\n\\t\\tuniform float bias; // bokeh edge bias\\n\\t\\tuniform float fringe; // bokeh chromatic aberration / fringing\\n\\n\\t\\tuniform bool noise; //use noise instead of pattern for sample dithering\\n\\n\\t\\tuniform float dithering;\\n\\n\\t\\tuniform bool depthblur; // blur the depth buffer\\n\\t\\tfloat dbsize = 1.25; // depth blur size\\n\\n\\t\\t/*\\n\\t\\tnext part is experimental\\n\\t\\tnot looking good with small sample and ring count\\n\\t\\tlooks okay starting from samples = 4, rings = 4\\n\\t\\t*/\\n\\n\\t\\tuniform bool pentagon; //use pentagon as bokeh shape?\\n\\t\\tfloat feather = 0.4; //pentagon shape feather\\n\\n\\t\\t//------------------------------------------\\n\\n\\t\\tfloat penta(vec2 coords) {\\n\\t\\t\\t//pentagonal shape\\n\\t\\t\\tfloat scale = float(rings) - 1.3;\\n\\t\\t\\tvec4 HS0 = vec4( 1.0, 0.0, 0.0, 1.0);\\n\\t\\t\\tvec4 HS1 = vec4( 0.309016994, 0.951056516, 0.0, 1.0);\\n\\t\\t\\tvec4 HS2 = vec4(-0.809016994, 0.587785252, 0.0, 1.0);\\n\\t\\t\\tvec4 HS3 = vec4(-0.809016994,-0.587785252, 0.0, 1.0);\\n\\t\\t\\tvec4 HS4 = vec4( 0.309016994,-0.951056516, 0.0, 1.0);\\n\\t\\t\\tvec4 HS5 = vec4( 0.0 ,0.0 , 1.0, 1.0);\\n\\n\\t\\t\\tvec4 one = vec4( 1.0 );\\n\\n\\t\\t\\tvec4 P = vec4((coords),vec2(scale, scale));\\n\\n\\t\\t\\tvec4 dist = vec4(0.0);\\n\\t\\t\\tfloat inorout = -4.0;\\n\\n\\t\\t\\tdist.x = dot( P, HS0 );\\n\\t\\t\\tdist.y = dot( P, HS1 );\\n\\t\\t\\tdist.z = dot( P, HS2 );\\n\\t\\t\\tdist.w = dot( P, HS3 );\\n\\n\\t\\t\\tdist = smoothstep( -feather, feather, dist );\\n\\n\\t\\t\\tinorout += dot( dist, one );\\n\\n\\t\\t\\tdist.x = dot( P, HS4 );\\n\\t\\t\\tdist.y = HS5.w - abs( P.z );\\n\\n\\t\\t\\tdist = smoothstep( -feather, feather, dist );\\n\\t\\t\\tinorout += dist.x;\\n\\n\\t\\t\\treturn clamp( inorout, 0.0, 1.0 );\\n\\t\\t}\\n\\n\\t\\tfloat bdepth(vec2 coords) {\\n\\t\\t\\t// Depth buffer blur\\n\\t\\t\\tfloat d = 0.0;\\n\\t\\t\\tfloat kernel[9];\\n\\t\\t\\tvec2 offset[9];\\n\\n\\t\\t\\tvec2 wh = vec2(1.0/textureWidth,1.0/textureHeight) * dbsize;\\n\\n\\t\\t\\toffset[0] = vec2(-wh.x,-wh.y);\\n\\t\\t\\toffset[1] = vec2( 0.0, -wh.y);\\n\\t\\t\\toffset[2] = vec2( wh.x -wh.y);\\n\\n\\t\\t\\toffset[3] = vec2(-wh.x, 0.0);\\n\\t\\t\\toffset[4] = vec2( 0.0, 0.0);\\n\\t\\t\\toffset[5] = vec2( wh.x, 0.0);\\n\\n\\t\\t\\toffset[6] = vec2(-wh.x, wh.y);\\n\\t\\t\\toffset[7] = vec2( 0.0, wh.y);\\n\\t\\t\\toffset[8] = vec2( wh.x, wh.y);\\n\\n\\t\\t\\tkernel[0] = 1.0/16.0; kernel[1] = 2.0/16.0; kernel[2] = 1.0/16.0;\\n\\t\\t\\tkernel[3] = 2.0/16.0; kernel[4] = 4.0/16.0; kernel[5] = 2.0/16.0;\\n\\t\\t\\tkernel[6] = 1.0/16.0; kernel[7] = 2.0/16.0; kernel[8] = 1.0/16.0;\\n\\n\\n\\t\\t\\tfor( int i=0; i<9; i++ ) {\\n\\t\\t\\t\\tfloat tmp = texture2D(tDepth, coords + offset[i]).r;\\n\\t\\t\\t\\td += tmp * kernel[i];\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn d;\\n\\t\\t}\\n\\n\\n\\t\\tvec3 color(vec2 coords,float blur) {\\n\\t\\t\\t//processing the sample\\n\\n\\t\\t\\tvec3 col = vec3(0.0);\\n\\t\\t\\tvec2 texel = vec2(1.0/textureWidth,1.0/textureHeight);\\n\\n\\t\\t\\tcol.r = texture2D(tColor,coords + vec2(0.0,1.0)*texel*fringe*blur).r;\\n\\t\\t\\tcol.g = texture2D(tColor,coords + vec2(-0.866,-0.5)*texel*fringe*blur).g;\\n\\t\\t\\tcol.b = texture2D(tColor,coords + vec2(0.866,-0.5)*texel*fringe*blur).b;\\n\\n\\t\\t\\tvec3 lumcoeff = vec3(0.299,0.587,0.114);\\n\\t\\t\\tfloat lum = dot(col.rgb, lumcoeff);\\n\\t\\t\\tfloat thresh = max((lum-threshold)*gain, 0.0);\\n\\t\\t\\treturn col+mix(vec3(0.0),col,thresh*blur);\\n\\t\\t}\\n\\n\\t\\tvec3 debugFocus(vec3 col, float blur, float depth) {\\n\\t\\t\\tfloat edge = 0.002*depth; //distance based edge smoothing\\n\\t\\t\\tfloat m = clamp(smoothstep(0.0,edge,blur),0.0,1.0);\\n\\t\\t\\tfloat e = clamp(smoothstep(1.0-edge,1.0,blur),0.0,1.0);\\n\\n\\t\\t\\tcol = mix(col,vec3(1.0,0.5,0.0),(1.0-m)*0.6);\\n\\t\\t\\tcol = mix(col,vec3(0.0,0.5,1.0),((1.0-e)-(1.0-m))*0.2);\\n\\n\\t\\t\\treturn col;\\n\\t\\t}\\n\\n\\t\\tfloat linearize(float depth) {\\n\\t\\t\\treturn -zfar * znear / (depth * (zfar - znear) - zfar);\\n\\t\\t}\\n\\n\\t\\tfloat vignette() {\\n\\t\\t\\tfloat dist = distance(vUv.xy, vec2(0.5,0.5));\\n\\t\\t\\tdist = smoothstep(vignout+(fstop/vignfade), vignin+(fstop/vignfade), dist);\\n\\t\\t\\treturn clamp(dist,0.0,1.0);\\n\\t\\t}\\n\\n\\t\\tfloat gather(float i, float j, int ringsamples, inout vec3 col, float w, float h, float blur) {\\n\\t\\t\\tfloat rings2 = float(rings);\\n\\t\\t\\tfloat step = PI*2.0 / float(ringsamples);\\n\\t\\t\\tfloat pw = cos(j*step)*i;\\n\\t\\t\\tfloat ph = sin(j*step)*i;\\n\\t\\t\\tfloat p = 1.0;\\n\\t\\t\\tif (pentagon) {\\n\\t\\t\\t\\tp = penta(vec2(pw,ph));\\n\\t\\t\\t}\\n\\t\\t\\tcol += color(vUv.xy + vec2(pw*w,ph*h), blur) * mix(1.0, i/rings2, bias) * p;\\n\\t\\t\\treturn 1.0 * mix(1.0, i /rings2, bias) * p;\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\t\\t\\t//scene depth calculation\\n\\n\\t\\t\\tfloat depth = linearize(texture2D(tDepth,vUv.xy).x);\\n\\n\\t\\t\\t// Blur depth?\\n\\t\\t\\tif ( depthblur ) {\\n\\t\\t\\t\\tdepth = linearize(bdepth(vUv.xy));\\n\\t\\t\\t}\\n\\n\\t\\t\\t//focal plane calculation\\n\\n\\t\\t\\tfloat fDepth = focalDepth;\\n\\n\\t\\t\\tif (shaderFocus) {\\n\\n\\t\\t\\t\\tfDepth = linearize(texture2D(tDepth,focusCoords).x);\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\t// dof blur factor calculation\\n\\n\\t\\t\\tfloat blur = 0.0;\\n\\n\\t\\t\\tif (manualdof) {\\n\\t\\t\\t\\tfloat a = depth-fDepth; // Focal plane\\n\\t\\t\\t\\tfloat b = (a-fdofstart)/fdofdist; // Far DoF\\n\\t\\t\\t\\tfloat c = (-a-ndofstart)/ndofdist; // Near Dof\\n\\t\\t\\t\\tblur = (a>0.0) ? b : c;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tfloat f = focalLength; // focal length in mm\\n\\t\\t\\t\\tfloat d = fDepth*1000.0; // focal plane in mm\\n\\t\\t\\t\\tfloat o = depth*1000.0; // depth in mm\\n\\n\\t\\t\\t\\tfloat a = (o*f)/(o-f);\\n\\t\\t\\t\\tfloat b = (d*f)/(d-f);\\n\\t\\t\\t\\tfloat c = (d-f)/(d*fstop*CoC);\\n\\n\\t\\t\\t\\tblur = abs(a-b)*c;\\n\\t\\t\\t}\\n\\n\\t\\t\\tblur = clamp(blur,0.0,1.0);\\n\\n\\t\\t\\t// calculation of pattern for dithering\\n\\n\\t\\t\\tvec2 noise = vec2(rand(vUv.xy), rand( vUv.xy + vec2( 0.4, 0.6 ) ) )*dithering*blur;\\n\\n\\t\\t\\t// getting blur x and y step factor\\n\\n\\t\\t\\tfloat w = (1.0/textureWidth)*blur*maxblur+noise.x;\\n\\t\\t\\tfloat h = (1.0/textureHeight)*blur*maxblur+noise.y;\\n\\n\\t\\t\\t// calculation of final color\\n\\n\\t\\t\\tvec3 col = vec3(0.0);\\n\\n\\t\\t\\tif(blur < 0.05) {\\n\\t\\t\\t\\t//some optimization thingy\\n\\t\\t\\t\\tcol = texture2D(tColor, vUv.xy).rgb;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tcol = texture2D(tColor, vUv.xy).rgb;\\n\\t\\t\\t\\tfloat s = 1.0;\\n\\t\\t\\t\\tint ringsamples;\\n\\n\\t\\t\\t\\tfor (int i = 1; i <= rings; i++) {\\n\\t\\t\\t\\t\\t/*unboxstart*/\\n\\t\\t\\t\\t\\tringsamples = i * samples;\\n\\n\\t\\t\\t\\t\\tfor (int j = 0 ; j < maxringsamples ; j++) {\\n\\t\\t\\t\\t\\t\\tif (j >= ringsamples) break;\\n\\t\\t\\t\\t\\t\\ts += gather(float(i), float(j), ringsamples, col, w, h, blur);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t/*unboxend*/\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tcol /= s; //divide by sample count\\n\\t\\t\\t}\\n\\n\\t\\t\\tif (showFocus) {\\n\\t\\t\\t\\tcol = debugFocus(col, blur, depth);\\n\\t\\t\\t}\\n\\n\\t\\t\\tif (vignetting) {\\n\\t\\t\\t\\tcol *= vignette();\\n\\t\\t\\t}\\n\\n\\t\\t\\tgl_FragColor.rgb = col;\\n\\t\\t\\tgl_FragColor.a = 1.0;\\n\\t\\t}\" };\n\n var BokehDepthShader = exports.BokehDepthShader = {\n uniforms: {\n mNear: {\n value: 1.0 },\n\n mFar: {\n value: 1000.0 } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying float vViewZDepth;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\t#include \\n\\t\\t\\t#include \\n\\n\\t\\t\\tvViewZDepth = - mvPosition.z;\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\tuniform float mNear;\\n\\t\\tuniform float mFar;\\n\\n\\t\\tvarying float vViewZDepth;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );\\n\\t\\t\\tgl_FragColor = vec4( vec3( color ), 1.0 );\\n\\n\\t\\t}\" };return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/shaders", "outputPath": "/com/three/0.145.0/examples/jsm/shaders/BokehShader2.js", "fileName": "/examples/jsm/shaders/BokehShader2.js" }, "pandav:/examples/jsm/shaders/SSRShader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/shaders/SSRShader\", [\"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SSRShader = exports.SSRDepthShader = exports.SSRBlurShader = void 0;\n var _Three = require('pandav:/com/three/0.145.0');\n var SSRShader = exports.SSRShader = {\n defines: {\n MAX_STEP: 0,\n PERSPECTIVE_CAMERA: true,\n DISTANCE_ATTENUATION: true,\n FRESNEL: true,\n INFINITE_THICK: false,\n SELECTIVE: false },\n\n uniforms: {\n tDiffuse: {\n value: null },\n\n tNormal: {\n value: null },\n\n tMetalness: {\n value: null },\n\n tDepth: {\n value: null },\n\n cameraNear: {\n value: null },\n\n cameraFar: {\n value: null },\n\n resolution: {\n value: new _Three.Vector2() },\n\n cameraProjectionMatrix: {\n value: new _Three.Matrix4() },\n\n cameraInverseProjectionMatrix: {\n value: new _Three.Matrix4() },\n\n opacity: {\n value: 0.5 },\n\n maxDistance: {\n value: 180 },\n\n cameraRange: {\n value: 0 },\n\n thickness: {\n value: 0.018 } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\n\\t\",\n fragmentShader: '\\n\\t\\t// precision highp float;\\n\\t\\tprecision highp sampler2D;\\n\\t\\tvarying vec2 vUv;\\n\\t\\tuniform sampler2D tDepth;\\n\\t\\tuniform sampler2D tNormal;\\n\\t\\tuniform sampler2D tMetalness;\\n\\t\\tuniform sampler2D tDiffuse;\\n\\t\\tuniform float cameraRange;\\n\\t\\tuniform vec2 resolution;\\n\\t\\tuniform float opacity;\\n\\t\\tuniform float cameraNear;\\n\\t\\tuniform float cameraFar;\\n\\t\\tuniform float maxDistance;\\n\\t\\tuniform float thickness;\\n\\t\\tuniform mat4 cameraProjectionMatrix;\\n\\t\\tuniform mat4 cameraInverseProjectionMatrix;\\n\\t\\t#include \\n\\t\\tfloat pointToLineDistance(vec3 x0, vec3 x1, vec3 x2) {\\n\\t\\t\\t//x0: point, x1: linePointA, x2: linePointB\\n\\t\\t\\t//https://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html\\n\\t\\t\\treturn length(cross(x0-x1,x0-x2))/length(x2-x1);\\n\\t\\t}\\n\\t\\tfloat pointPlaneDistance(vec3 point,vec3 planePoint,vec3 planeNormal){\\n\\t\\t\\t// https://mathworld.wolfram.com/Point-PlaneDistance.html\\n\\t\\t\\t//// https://en.wikipedia.org/wiki/Plane_(geometry)\\n\\t\\t\\t//// http://paulbourke.net/geometry/pointlineplane/\\n\\t\\t\\tfloat a=planeNormal.x,b=planeNormal.y,c=planeNormal.z;\\n\\t\\t\\tfloat x0=point.x,y0=point.y,z0=point.z;\\n\\t\\t\\tfloat x=planePoint.x,y=planePoint.y,z=planePoint.z;\\n\\t\\t\\tfloat d=-(a*x+b*y+c*z);\\n\\t\\t\\tfloat distance=(a*x0+b*y0+c*z0+d)/sqrt(a*a+b*b+c*c);\\n\\t\\t\\treturn distance;\\n\\t\\t}\\n\\t\\tfloat getDepth( const in vec2 uv ) {\\n\\t\\t\\treturn texture2D( tDepth, uv ).x;\\n\\t\\t}\\n\\t\\tfloat getViewZ( const in float depth ) {\\n\\t\\t\\t#ifdef PERSPECTIVE_CAMERA\\n\\t\\t\\t\\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\\n\\t\\t\\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\\n\\t\\t\\tclipPosition *= clipW; //clip\\n\\t\\t\\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;//view\\n\\t\\t}\\n\\t\\tvec3 getViewNormal( const in vec2 uv ) {\\n\\t\\t\\treturn unpackRGBToNormal( texture2D( tNormal, uv ).xyz );\\n\\t\\t}\\n\\t\\tvec2 viewPositionToXY(vec3 viewPosition){\\n\\t\\t\\tvec2 xy;\\n\\t\\t\\tvec4 clip=cameraProjectionMatrix*vec4(viewPosition,1);\\n\\t\\t\\txy=clip.xy;//clip\\n\\t\\t\\tfloat clipW=clip.w;\\n\\t\\t\\txy/=clipW;//NDC\\n\\t\\t\\txy=(xy+1.)/2.;//uv\\n\\t\\t\\txy*=resolution;//screen\\n\\t\\t\\treturn xy;\\n\\t\\t}\\n\\t\\tvoid main(){\\n\\t\\t\\t#ifdef SELECTIVE\\n\\t\\t\\t\\tfloat metalness=texture2D(tMetalness,vUv).r;\\n\\t\\t\\t\\tif(metalness==0.) return;\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tfloat depth = getDepth( vUv );\\n\\t\\t\\tfloat viewZ = getViewZ( depth );\\n\\t\\t\\tif(-viewZ>=cameraFar) return;\\n\\n\\t\\t\\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ+cameraProjectionMatrix[3][3];\\n\\t\\t\\tvec3 viewPosition=getViewPosition( vUv, depth, clipW );\\n\\n\\t\\t\\tvec2 d0=gl_FragCoord.xy;\\n\\t\\t\\tvec2 d1;\\n\\n\\t\\t\\tvec3 viewNormal=getViewNormal( vUv );\\n\\n\\t\\t\\t#ifdef PERSPECTIVE_CAMERA\\n\\t\\t\\t\\tvec3 viewIncidentDir=normalize(viewPosition);\\n\\t\\t\\t\\tvec3 viewReflectDir=reflect(viewIncidentDir,viewNormal);\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec3 viewIncidentDir=vec3(0,0,-1);\\n\\t\\t\\t\\tvec3 viewReflectDir=reflect(viewIncidentDir,viewNormal);\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tfloat maxReflectRayLen=maxDistance/dot(-viewIncidentDir,viewNormal);\\n\\t\\t\\t// dot(a,b)==length(a)*length(b)*cos(theta) // https://www.mathsisfun.com/algebra/vectors-dot-product.html\\n\\t\\t\\t// if(a.isNormalized&&b.isNormalized) dot(a,b)==cos(theta)\\n\\t\\t\\t// maxDistance/maxReflectRayLen=cos(theta)\\n\\t\\t\\t// maxDistance/maxReflectRayLen==dot(a,b)\\n\\t\\t\\t// maxReflectRayLen==maxDistance/dot(a,b)\\n\\n\\t\\t\\tvec3 d1viewPosition=viewPosition+viewReflectDir*maxReflectRayLen;\\n\\t\\t\\t#ifdef PERSPECTIVE_CAMERA\\n\\t\\t\\t\\tif(d1viewPosition.z>-cameraNear){\\n\\t\\t\\t\\t\\t//https://tutorial.math.lamar.edu/Classes/CalcIII/EqnsOfLines.aspx\\n\\t\\t\\t\\t\\tfloat t=(-cameraNear-viewPosition.z)/viewReflectDir.z;\\n\\t\\t\\t\\t\\td1viewPosition=viewPosition+viewReflectDir*t;\\n\\t\\t\\t\\t}\\n\\t\\t\\t#endif\\n\\t\\t\\td1=viewPositionToXY(d1viewPosition);\\n\\n\\t\\t\\tfloat totalLen=length(d1-d0);\\n\\t\\t\\tfloat xLen=d1.x-d0.x;\\n\\t\\t\\tfloat yLen=d1.y-d0.y;\\n\\t\\t\\tfloat totalStep=max(abs(xLen),abs(yLen));\\n\\t\\t\\tfloat xSpan=xLen/totalStep;\\n\\t\\t\\tfloat ySpan=yLen/totalStep;\\n\\t\\t\\tfor(float i=0.;i=totalStep) break;\\n\\t\\t\\t\\tvec2 xy=vec2(d0.x+i*xSpan,d0.y+i*ySpan);\\n\\t\\t\\t\\tif(xy.x<0.||xy.x>resolution.x||xy.y<0.||xy.y>resolution.y) break;\\n\\t\\t\\t\\tfloat s=length(xy-d0)/totalLen;\\n\\t\\t\\t\\tvec2 uv=xy/resolution;\\n\\n\\t\\t\\t\\tfloat d = getDepth(uv);\\n\\t\\t\\t\\tfloat vZ = getViewZ( d );\\n\\t\\t\\t\\tif(-vZ>=cameraFar) continue;\\n\\t\\t\\t\\tfloat cW = cameraProjectionMatrix[2][3] * vZ+cameraProjectionMatrix[3][3];\\n\\t\\t\\t\\tvec3 vP=getViewPosition( uv, d, cW );\\n\\n\\t\\t\\t\\t#ifdef PERSPECTIVE_CAMERA\\n\\t\\t\\t\\t\\t// https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf\\n\\t\\t\\t\\t\\tfloat recipVPZ=1./viewPosition.z;\\n\\t\\t\\t\\t\\tfloat viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));\\n\\t\\t\\t\\t#else\\n\\t\\t\\t\\t\\tfloat viewReflectRayZ=viewPosition.z+s*(d1viewPosition.z-viewPosition.z);\\n\\t\\t\\t\\t#endif\\n\\n\\t\\t\\t\\t// if(viewReflectRayZ>vZ) continue; // will cause \"npm run make-screenshot webgl_postprocessing_ssr\" high probability hang.\\n\\t\\t\\t\\t// https://github.com/mrdoob/three.js/pull/21539#issuecomment-821061164\\n\\t\\t\\t\\tif(viewReflectRayZ<=vZ){\\n\\n\\t\\t\\t\\t\\tbool hit;\\n\\t\\t\\t\\t\\t#ifdef INFINITE_THICK\\n\\t\\t\\t\\t\\t\\thit=true;\\n\\t\\t\\t\\t\\t#else\\n\\t\\t\\t\\t\\t\\tfloat away=pointToLineDistance(vP,viewPosition,d1viewPosition);\\n\\n\\t\\t\\t\\t\\t\\tfloat minThickness;\\n\\t\\t\\t\\t\\t\\tvec2 xyNeighbor=xy;\\n\\t\\t\\t\\t\\t\\txyNeighbor.x+=1.;\\n\\t\\t\\t\\t\\t\\tvec2 uvNeighbor=xyNeighbor/resolution;\\n\\t\\t\\t\\t\\t\\tvec3 vPNeighbor=getViewPosition(uvNeighbor,d,cW);\\n\\t\\t\\t\\t\\t\\tminThickness=vPNeighbor.x-vP.x;\\n\\t\\t\\t\\t\\t\\tminThickness*=3.;\\n\\t\\t\\t\\t\\t\\tfloat tk=max(minThickness,thickness);\\n\\n\\t\\t\\t\\t\\t\\thit=away<=tk;\\n\\t\\t\\t\\t\\t#endif\\n\\n\\t\\t\\t\\t\\tif(hit){\\n\\t\\t\\t\\t\\t\\tvec3 vN=getViewNormal( uv );\\n\\t\\t\\t\\t\\t\\tif(dot(viewReflectDir,vN)>=0.) continue;\\n\\t\\t\\t\\t\\t\\tfloat distance=pointPlaneDistance(vP,viewPosition,viewNormal);\\n\\t\\t\\t\\t\\t\\tif(distance>maxDistance) break;\\n\\t\\t\\t\\t\\t\\tfloat op=opacity;\\n\\t\\t\\t\\t\\t\\t#ifdef DISTANCE_ATTENUATION\\n\\t\\t\\t\\t\\t\\t\\tfloat ratio=1.-(distance/maxDistance);\\n\\t\\t\\t\\t\\t\\t\\tfloat attenuation=ratio*ratio;\\n\\t\\t\\t\\t\\t\\t\\top=opacity*attenuation;\\n\\t\\t\\t\\t\\t\\t#endif\\n\\t\\t\\t\\t\\t\\t#ifdef FRESNEL\\n\\t\\t\\t\\t\\t\\t\\tfloat fresnelCoe=(dot(viewIncidentDir,viewReflectDir)+1.)/2.;\\n\\t\\t\\t\\t\\t\\t\\top*=fresnelCoe;\\n\\t\\t\\t\\t\\t\\t#endif\\n\\t\\t\\t\\t\\t\\tvec4 reflectColor=texture2D(tDiffuse,uv);\\n\\t\\t\\t\\t\\t\\tgl_FragColor.xyz=reflectColor.xyz;\\n\\t\\t\\t\\t\\t\\tgl_FragColor.a=op;\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t' };\n\n var SSRDepthShader = exports.SSRDepthShader = {\n defines: {\n PERSPECTIVE_CAMERA: 1 },\n\n uniforms: {\n tDepth: {\n value: null },\n\n cameraNear: {\n value: null },\n\n cameraFar: {\n value: null } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\n\\t\",\n fragmentShader: \"\\n\\n\\t\\tuniform sampler2D tDepth;\\n\\n\\t\\tuniform float cameraNear;\\n\\t\\tuniform float cameraFar;\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\t#include \\n\\n\\t\\tfloat getLinearDepth( const in vec2 uv ) {\\n\\n\\t\\t\\t#if PERSPECTIVE_CAMERA == 1\\n\\n\\t\\t\\t\\tfloat fragCoordZ = texture2D( tDepth, uv ).x;\\n\\t\\t\\t\\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\\n\\t\\t\\t\\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\\n\\n\\t\\t\\t#else\\n\\n\\t\\t\\t\\treturn texture2D( tDepth, uv ).x;\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tfloat depth = getLinearDepth( vUv );\\n\\t\\t\\tfloat d = 1.0 - depth;\\n\\t\\t\\t// d=(d-.999)*1000.;\\n\\t\\t\\tgl_FragColor = vec4( vec3( d ), 1.0 );\\n\\n\\t\\t}\\n\\n\\t\" };\n\n var SSRBlurShader = exports.SSRBlurShader = {\n uniforms: {\n tDiffuse: {\n value: null },\n\n resolution: {\n value: new _Three.Vector2() },\n\n opacity: {\n value: 0.5 } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\n\\t\",\n fragmentShader: \"\\n\\n\\t\\tuniform sampler2D tDiffuse;\\n\\t\\tuniform vec2 resolution;\\n\\t\\tvarying vec2 vUv;\\n\\t\\tvoid main() {\\n\\t\\t\\t//reverse engineering from PhotoShop blur filter, then change coefficient\\n\\n\\t\\t\\tvec2 texelSize = ( 1.0 / resolution );\\n\\n\\t\\t\\tvec4 c=texture2D(tDiffuse,vUv);\\n\\n\\t\\t\\tvec2 offset;\\n\\n\\t\\t\\toffset=(vec2(-1,0))*texelSize;\\n\\t\\t\\tvec4 cl=texture2D(tDiffuse,vUv+offset);\\n\\n\\t\\t\\toffset=(vec2(1,0))*texelSize;\\n\\t\\t\\tvec4 cr=texture2D(tDiffuse,vUv+offset);\\n\\n\\t\\t\\toffset=(vec2(0,-1))*texelSize;\\n\\t\\t\\tvec4 cb=texture2D(tDiffuse,vUv+offset);\\n\\n\\t\\t\\toffset=(vec2(0,1))*texelSize;\\n\\t\\t\\tvec4 ct=texture2D(tDiffuse,vUv+offset);\\n\\n\\t\\t\\t// float coeCenter=.5;\\n\\t\\t\\t// float coeSide=.125;\\n\\t\\t\\tfloat coeCenter=.2;\\n\\t\\t\\tfloat coeSide=.2;\\n\\t\\t\\tfloat a=c.a*coeCenter+cl.a*coeSide+cr.a*coeSide+cb.a*coeSide+ct.a*coeSide;\\n\\t\\t\\tvec3 rgb=(c.rgb*c.a*coeCenter+cl.rgb*cl.a*coeSide+cr.rgb*cr.a*coeSide+cb.rgb*cb.a*coeSide+ct.rgb*ct.a*coeSide)/a;\\n\\t\\t\\tgl_FragColor=vec4(rgb,a);\\n\\n\\t\\t}\\n\\t\" };return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/shaders", "outputPath": "/com/three/0.145.0/examples/jsm/shaders/SSRShader.js", "fileName": "/examples/jsm/shaders/SSRShader.js" }, "pandav:/examples/jsm/utils/GeometryUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/utils/GeometryUtils\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/toConsumableArray\", \"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.gosper = gosper;\n exports.hilbert2D = hilbert2D;\n exports.hilbert3D = hilbert3D;\n var _toConsumableArray2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/toConsumableArray'));\n var _Three = require('pandav:/com/three/0.145.0');\n function hilbert2D() {\n var center = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Three.Vector3(0, 0, 0);\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;\n var iterations = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var v0 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var v1 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var v2 = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2;\n var v3 = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 3;\n var half = size / 2;\n var vec_s = [new _Three.Vector3(center.x - half, center.y, center.z - half), new _Three.Vector3(center.x - half, center.y, center.z + half), new _Three.Vector3(center.x + half, center.y, center.z + half), new _Three.Vector3(center.x + half, center.y, center.z - half)];\n var vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3]];\n if (0 <= --iterations) {\n return [].concat((0, _toConsumableArray2.default)(hilbert2D(vec[0], half, iterations, v0, v3, v2, v1)), (0, _toConsumableArray2.default)(hilbert2D(vec[1], half, iterations, v0, v1, v2, v3)), (0, _toConsumableArray2.default)(hilbert2D(vec[2], half, iterations, v0, v1, v2, v3)), (0, _toConsumableArray2.default)(hilbert2D(vec[3], half, iterations, v2, v1, v0, v3)));\n }\n return vec;\n }\n function hilbert3D() {\n var center = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Three.Vector3(0, 0, 0);\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;\n var iterations = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var v0 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var v1 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var v2 = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2;\n var v3 = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 3;\n var v4 = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 4;\n var v5 = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 5;\n var v6 = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 6;\n var v7 = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 7;\n var half = size / 2;\n var vec_s = [new _Three.Vector3(center.x - half, center.y + half, center.z - half), new _Three.Vector3(center.x - half, center.y + half, center.z + half), new _Three.Vector3(center.x - half, center.y - half, center.z + half), new _Three.Vector3(center.x - half, center.y - half, center.z - half), new _Three.Vector3(center.x + half, center.y - half, center.z - half), new _Three.Vector3(center.x + half, center.y - half, center.z + half), new _Three.Vector3(center.x + half, center.y + half, center.z + half), new _Three.Vector3(center.x + half, center.y + half, center.z - half)];\n var vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3], vec_s[v4], vec_s[v5], vec_s[v6], vec_s[v7]];\n if (--iterations >= 0) {\n return [].concat((0, _toConsumableArray2.default)(hilbert3D(vec[0], half, iterations, v0, v3, v4, v7, v6, v5, v2, v1)), (0, _toConsumableArray2.default)(hilbert3D(vec[1], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3)), (0, _toConsumableArray2.default)(hilbert3D(vec[2], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3)), (0, _toConsumableArray2.default)(hilbert3D(vec[3], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5)), (0, _toConsumableArray2.default)(hilbert3D(vec[4], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5)), (0, _toConsumableArray2.default)(hilbert3D(vec[5], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7)), (0, _toConsumableArray2.default)(hilbert3D(vec[6], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7)), (0, _toConsumableArray2.default)(hilbert3D(vec[7], half, iterations, v6, v5, v2, v1, v0, v3, v4, v7)));\n }\n return vec;\n }\n function gosper() {\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n function fractalize(config) {\n var output;\n var input = config.axiom;\n for (var i = 0, il = config.steps; 0 <= il ? i < il : i > il; 0 <= il ? i++ : i--) {\n output = \"\";\n for (var j = 0, jl = input.length; j < jl; j++) {\n var char = input[j];\n if (char in config.rules) {\n output += config.rules[char];\n } else {\n output += char;\n }\n }\n input = output;\n }\n return output;\n }\n function toPoints(config) {\n var currX = 0,\n currY = 0;\n var angle = 0;\n var path = [0, 0, 0];\n var fractal = config.fractal;\n for (var i = 0, l = fractal.length; i < l; i++) {\n var char = fractal[i];\n if (char === \"+\") {\n angle += config.angle;\n } else if (char === \"-\") {\n angle -= config.angle;\n } else if (char === \"F\") {\n currX += config.size * Math.cos(angle);\n currY += -config.size * Math.sin(angle);\n path.push(currX, currY, 0);\n }\n }\n return path;\n }\n var gosper = fractalize({\n axiom: \"A\",\n steps: 4,\n rules: {\n A: \"A+BF++BF-FA--FAFA-BF+\",\n B: \"-FA+BFBF++BF+FA--FA-B\" } });\n\n\n var points = toPoints({\n fractal: gosper,\n size: size,\n angle: Math.PI / 3 });\n\n return points;\n }return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/utils", "outputPath": "/com/three/0.145.0/examples/jsm/utils/GeometryUtils.js", "fileName": "/examples/jsm/utils/GeometryUtils.js" }, "pandav:/examples/jsm/utils/WorkerPool.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/utils/WorkerPool\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WorkerPool = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var WorkerPool = exports.WorkerPool = function () {\n function WorkerPool() {\n var pool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 4;\n (0, _classCallCheck2.default)(this, WorkerPool);\n this.pool = pool;\n this.queue = [];\n this.workers = [];\n this.workersResolve = [];\n this.workerStatus = 0;\n }\n (0, _createClass2.default)(WorkerPool, [{\n key: \"_initWorker\",\n value: function _initWorker(workerId) {\n if (!this.workers[workerId]) {\n var worker = this.workerCreator();\n worker.addEventListener('message', this._onMessage.bind(this, workerId));\n this.workers[workerId] = worker;\n }\n } },\n {\n key: \"_getIdleWorker\",\n value: function _getIdleWorker() {\n for (var i = 0; i < this.pool; i++) if (!(this.workerStatus & 1 << i)) return i;\n return -1;\n } },\n {\n key: \"_onMessage\",\n value: function _onMessage(workerId, msg) {\n var resolve = this.workersResolve[workerId];\n resolve && resolve(msg);\n if (this.queue.length) {\n var _this$queue$shift = this.queue.shift(),\n _resolve = _this$queue$shift.resolve,\n _msg = _this$queue$shift.msg,\n transfer = _this$queue$shift.transfer;\n this.workersResolve[workerId] = _resolve;\n this.workers[workerId].postMessage(_msg, transfer);\n } else {\n this.workerStatus ^= 1 << workerId;\n }\n } },\n {\n key: \"setWorkerCreator\",\n value: function setWorkerCreator(workerCreator) {\n this.workerCreator = workerCreator;\n } },\n {\n key: \"setWorkerLimit\",\n value: function setWorkerLimit(pool) {\n this.pool = pool;\n } },\n {\n key: \"postMessage\",\n value: function postMessage(msg, transfer) {\n var _this = this;\n return new Promise(function (resolve) {\n var workerId = _this._getIdleWorker();\n if (workerId !== -1) {\n _this._initWorker(workerId);\n _this.workerStatus |= 1 << workerId;\n _this.workersResolve[workerId] = resolve;\n _this.workers[workerId].postMessage(msg, transfer);\n } else {\n _this.queue.push({\n resolve: resolve,\n msg: msg,\n transfer: transfer });\n\n }\n });\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.workers.forEach(function (worker) {\n return worker.terminate();\n });\n this.workersResolve.length = 0;\n this.workers.length = 0;\n this.queue.length = 0;\n this.workerStatus = 0;\n } }]);\n\n return WorkerPool;\n }();return module.exports;});", "requires": [], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/utils", "outputPath": "/com/three/0.145.0/examples/jsm/utils/WorkerPool.js", "fileName": "/examples/jsm/utils/WorkerPool.js" }, "pandav:/src/animation/AnimationAction.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/AnimationAction\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AnimationAction = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var AnimationAction = exports.AnimationAction = function () {\n function AnimationAction(mixer, clip) {\n var localRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var blendMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : clip.blendMode;\n (0, _classCallCheck2.default)(this, AnimationAction);\n this._mixer = mixer;\n this._clip = clip;\n this._localRoot = localRoot;\n this.blendMode = blendMode;\n var tracks = clip.tracks,\n nTracks = tracks.length,\n interpolants = new Array(nTracks);\n var interpolantSettings = {\n endingStart: _constants.ZeroCurvatureEnding,\n endingEnd: _constants.ZeroCurvatureEnding };\n\n for (var i = 0; i !== nTracks; ++i) {\n var interpolant = tracks[i].createInterpolant(null);\n interpolants[i] = interpolant;\n interpolant.settings = interpolantSettings;\n }\n this._interpolantSettings = interpolantSettings;\n this._interpolants = interpolants;\n this._propertyBindings = new Array(nTracks);\n this._cacheIndex = null;\n this._byClipCacheIndex = null;\n this._timeScaleInterpolant = null;\n this._weightInterpolant = null;\n this.loop = _constants.LoopRepeat;\n this._loopCount = -1;\n this._startTime = null;\n this.time = 0;\n this.timeScale = 1;\n this._effectiveTimeScale = 1;\n this.weight = 1;\n this._effectiveWeight = 1;\n this.repetitions = Infinity;\n this.paused = false;\n this.enabled = true;\n this.clampWhenFinished = false;\n this.zeroSlopeAtStart = true;\n this.zeroSlopeAtEnd = true;\n }\n (0, _createClass2.default)(AnimationAction, [{\n key: \"play\",\n value: function play() {\n this._mixer._activateAction(this);\n return this;\n } },\n {\n key: \"stop\",\n value: function stop() {\n this._mixer._deactivateAction(this);\n return this.reset();\n } },\n {\n key: \"reset\",\n value: function reset() {\n this.paused = false;\n this.enabled = true;\n this.time = 0;\n this._loopCount = -1;\n this._startTime = null;\n return this.stopFading().stopWarping();\n } },\n {\n key: \"isRunning\",\n value: function isRunning() {\n return this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this);\n } },\n {\n key: \"isScheduled\",\n value: function isScheduled() {\n return this._mixer._isActiveAction(this);\n } },\n {\n key: \"startAt\",\n value: function startAt(time) {\n this._startTime = time;\n return this;\n } },\n {\n key: \"setLoop\",\n value: function setLoop(mode, repetitions) {\n this.loop = mode;\n this.repetitions = repetitions;\n return this;\n } },\n {\n key: \"setEffectiveWeight\",\n value: function setEffectiveWeight(weight) {\n this.weight = weight;\n this._effectiveWeight = this.enabled ? weight : 0;\n return this.stopFading();\n } },\n {\n key: \"getEffectiveWeight\",\n value: function getEffectiveWeight() {\n return this._effectiveWeight;\n } },\n {\n key: \"fadeIn\",\n value: function fadeIn(duration) {\n return this._scheduleFading(duration, 0, 1);\n } },\n {\n key: \"fadeOut\",\n value: function fadeOut(duration) {\n return this._scheduleFading(duration, 1, 0);\n } },\n {\n key: \"crossFadeFrom\",\n value: function crossFadeFrom(fadeOutAction, duration, warp) {\n fadeOutAction.fadeOut(duration);\n this.fadeIn(duration);\n if (warp) {\n var fadeInDuration = this._clip.duration,\n fadeOutDuration = fadeOutAction._clip.duration,\n startEndRatio = fadeOutDuration / fadeInDuration,\n endStartRatio = fadeInDuration / fadeOutDuration;\n fadeOutAction.warp(1.0, startEndRatio, duration);\n this.warp(endStartRatio, 1.0, duration);\n }\n return this;\n } },\n {\n key: \"crossFadeTo\",\n value: function crossFadeTo(fadeInAction, duration, warp) {\n return fadeInAction.crossFadeFrom(this, duration, warp);\n } },\n {\n key: \"stopFading\",\n value: function stopFading() {\n var weightInterpolant = this._weightInterpolant;\n if (weightInterpolant !== null) {\n this._weightInterpolant = null;\n this._mixer._takeBackControlInterpolant(weightInterpolant);\n }\n return this;\n } },\n {\n key: \"setEffectiveTimeScale\",\n value: function setEffectiveTimeScale(timeScale) {\n this.timeScale = timeScale;\n this._effectiveTimeScale = this.paused ? 0 : timeScale;\n return this.stopWarping();\n } },\n {\n key: \"getEffectiveTimeScale\",\n value: function getEffectiveTimeScale() {\n return this._effectiveTimeScale;\n } },\n {\n key: \"setDuration\",\n value: function setDuration(duration) {\n this.timeScale = this._clip.duration / duration;\n return this.stopWarping();\n } },\n {\n key: \"syncWith\",\n value: function syncWith(action) {\n this.time = action.time;\n this.timeScale = action.timeScale;\n return this.stopWarping();\n } },\n {\n key: \"halt\",\n value: function halt(duration) {\n return this.warp(this._effectiveTimeScale, 0, duration);\n } },\n {\n key: \"warp\",\n value: function warp(startTimeScale, endTimeScale, duration) {\n var mixer = this._mixer,\n now = mixer.time,\n timeScale = this.timeScale;\n var interpolant = this._timeScaleInterpolant;\n if (interpolant === null) {\n interpolant = mixer._lendControlInterpolant();\n this._timeScaleInterpolant = interpolant;\n }\n var times = interpolant.parameterPositions,\n values = interpolant.sampleValues;\n times[0] = now;\n times[1] = now + duration;\n values[0] = startTimeScale / timeScale;\n values[1] = endTimeScale / timeScale;\n return this;\n } },\n {\n key: \"stopWarping\",\n value: function stopWarping() {\n var timeScaleInterpolant = this._timeScaleInterpolant;\n if (timeScaleInterpolant !== null) {\n this._timeScaleInterpolant = null;\n this._mixer._takeBackControlInterpolant(timeScaleInterpolant);\n }\n return this;\n } },\n {\n key: \"getMixer\",\n value: function getMixer() {\n return this._mixer;\n } },\n {\n key: \"getClip\",\n value: function getClip() {\n return this._clip;\n } },\n {\n key: \"getRoot\",\n value: function getRoot() {\n return this._localRoot || this._mixer._root;\n } },\n {\n key: \"_update\",\n value: function _update(time, deltaTime, timeDirection, accuIndex) {\n if (!this.enabled) {\n this._updateWeight(time);\n return;\n }\n var startTime = this._startTime;\n if (startTime !== null) {\n var timeRunning = (time - startTime) * timeDirection;\n if (timeRunning < 0 || timeDirection === 0) {\n deltaTime = 0;\n } else {\n this._startTime = null;\n deltaTime = timeDirection * timeRunning;\n }\n }\n deltaTime *= this._updateTimeScale(time);\n var clipTime = this._updateTime(deltaTime);\n var weight = this._updateWeight(time);\n if (weight > 0) {\n var interpolants = this._interpolants;\n var propertyMixers = this._propertyBindings;\n switch (this.blendMode) {\n case _constants.AdditiveAnimationBlendMode:\n for (var j = 0, m = interpolants.length; j !== m; ++j) {\n interpolants[j].evaluate(clipTime);\n propertyMixers[j].accumulateAdditive(weight);\n }\n break;\n case _constants.NormalAnimationBlendMode:\n default:\n for (var _j = 0, _m = interpolants.length; _j !== _m; ++_j) {\n interpolants[_j].evaluate(clipTime);\n propertyMixers[_j].accumulate(accuIndex, weight);\n }}\n\n }\n } },\n {\n key: \"_updateWeight\",\n value: function _updateWeight(time) {\n var weight = 0;\n if (this.enabled) {\n weight = this.weight;\n var interpolant = this._weightInterpolant;\n if (interpolant !== null) {\n var interpolantValue = interpolant.evaluate(time)[0];\n weight *= interpolantValue;\n if (time > interpolant.parameterPositions[1]) {\n this.stopFading();\n if (interpolantValue === 0) {\n this.enabled = false;\n }\n }\n }\n }\n this._effectiveWeight = weight;\n return weight;\n } },\n {\n key: \"_updateTimeScale\",\n value: function _updateTimeScale(time) {\n var timeScale = 0;\n if (!this.paused) {\n timeScale = this.timeScale;\n var interpolant = this._timeScaleInterpolant;\n if (interpolant !== null) {\n var interpolantValue = interpolant.evaluate(time)[0];\n timeScale *= interpolantValue;\n if (time > interpolant.parameterPositions[1]) {\n this.stopWarping();\n if (timeScale === 0) {\n this.paused = true;\n } else {\n this.timeScale = timeScale;\n }\n }\n }\n }\n this._effectiveTimeScale = timeScale;\n return timeScale;\n } },\n {\n key: \"_updateTime\",\n value: function _updateTime(deltaTime) {\n var duration = this._clip.duration;\n var loop = this.loop;\n var time = this.time + deltaTime;\n var loopCount = this._loopCount;\n var pingPong = loop === _constants.LoopPingPong;\n if (deltaTime === 0) {\n if (loopCount === -1) return time;\n return pingPong && (loopCount & 1) === 1 ? duration - time : time;\n }\n if (loop === _constants.LoopOnce) {\n if (loopCount === -1) {\n this._loopCount = 0;\n this._setEndings(true, true, false);\n }\n handle_stop: {\n if (time >= duration) {\n time = duration;\n } else if (time < 0) {\n time = 0;\n } else {\n this.time = time;\n break handle_stop;\n }\n if (this.clampWhenFinished) this.paused = true;else this.enabled = false;\n this.time = time;\n this._mixer.dispatchEvent({\n type: 'finished',\n action: this,\n direction: deltaTime < 0 ? -1 : 1 });\n\n }\n } else {\n if (loopCount === -1) {\n if (deltaTime >= 0) {\n loopCount = 0;\n this._setEndings(true, this.repetitions === 0, pingPong);\n } else {\n this._setEndings(this.repetitions === 0, true, pingPong);\n }\n }\n if (time >= duration || time < 0) {\n var loopDelta = Math.floor(time / duration);\n time -= duration * loopDelta;\n loopCount += Math.abs(loopDelta);\n var pending = this.repetitions - loopCount;\n if (pending <= 0) {\n if (this.clampWhenFinished) this.paused = true;else this.enabled = false;\n time = deltaTime > 0 ? duration : 0;\n this.time = time;\n this._mixer.dispatchEvent({\n type: 'finished',\n action: this,\n direction: deltaTime > 0 ? 1 : -1 });\n\n } else {\n if (pending === 1) {\n var atStart = deltaTime < 0;\n this._setEndings(atStart, !atStart, pingPong);\n } else {\n this._setEndings(false, false, pingPong);\n }\n this._loopCount = loopCount;\n this.time = time;\n this._mixer.dispatchEvent({\n type: 'loop',\n action: this,\n loopDelta: loopDelta });\n\n }\n } else {\n this.time = time;\n }\n if (pingPong && (loopCount & 1) === 1) {\n return duration - time;\n }\n }\n return time;\n } },\n {\n key: \"_setEndings\",\n value: function _setEndings(atStart, atEnd, pingPong) {\n var settings = this._interpolantSettings;\n if (pingPong) {\n settings.endingStart = _constants.ZeroSlopeEnding;\n settings.endingEnd = _constants.ZeroSlopeEnding;\n } else {\n if (atStart) {\n settings.endingStart = this.zeroSlopeAtStart ? _constants.ZeroSlopeEnding : _constants.ZeroCurvatureEnding;\n } else {\n settings.endingStart = _constants.WrapAroundEnding;\n }\n if (atEnd) {\n settings.endingEnd = this.zeroSlopeAtEnd ? _constants.ZeroSlopeEnding : _constants.ZeroCurvatureEnding;\n } else {\n settings.endingEnd = _constants.WrapAroundEnding;\n }\n }\n } },\n {\n key: \"_scheduleFading\",\n value: function _scheduleFading(duration, weightNow, weightThen) {\n var mixer = this._mixer,\n now = mixer.time;\n var interpolant = this._weightInterpolant;\n if (interpolant === null) {\n interpolant = mixer._lendControlInterpolant();\n this._weightInterpolant = interpolant;\n }\n var times = interpolant.parameterPositions,\n values = interpolant.sampleValues;\n times[0] = now;\n values[0] = weightNow;\n times[1] = now + duration;\n values[1] = weightThen;\n return this;\n } }]);\n\n return AnimationAction;\n }();return module.exports;});", "requires": [ "pandav:/src/constants.js" ], "buildLevel": 45, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/AnimationAction.js", "fileName": "/src/animation/AnimationAction.js" }, "pandav:/src/animation/AnimationClip.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/AnimationClip\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/animation/AnimationUtils\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/BooleanKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/ColorKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/NumberKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/QuaternionKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/StringKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/VectorKeyframeTrack\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AnimationClip = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var AnimationUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/animation/AnimationUtils'));\n var _KeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var _BooleanKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/BooleanKeyframeTrack');\n var _ColorKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/ColorKeyframeTrack');\n var _NumberKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/NumberKeyframeTrack');\n var _QuaternionKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/QuaternionKeyframeTrack');\n var _StringKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/StringKeyframeTrack');\n var _VectorKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/VectorKeyframeTrack');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var AnimationClip = exports.AnimationClip = function () {\n function AnimationClip(name) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n var tracks = arguments.length > 2 ? arguments[2] : undefined;\n var blendMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.NormalAnimationBlendMode;\n (0, _classCallCheck2.default)(this, AnimationClip);\n this.name = name;\n this.tracks = tracks;\n this.duration = duration;\n this.blendMode = blendMode;\n this.uuid = MathUtils.generateUUID();\n if (this.duration < 0) {\n this.resetDuration();\n }\n }\n (0, _createClass2.default)(AnimationClip, [{\n key: \"resetDuration\",\n value: function resetDuration() {\n var tracks = this.tracks;\n var duration = 0;\n for (var i = 0, n = tracks.length; i !== n; ++i) {\n var track = this.tracks[i];\n duration = Math.max(duration, track.times[track.times.length - 1]);\n }\n this.duration = duration;\n return this;\n } },\n {\n key: \"trim\",\n value: function trim() {\n for (var i = 0; i < this.tracks.length; i++) {\n this.tracks[i].trim(0, this.duration);\n }\n return this;\n } },\n {\n key: \"validate\",\n value: function validate() {\n var valid = true;\n for (var i = 0; i < this.tracks.length; i++) {\n valid = valid && this.tracks[i].validate();\n }\n return valid;\n } },\n {\n key: \"optimize\",\n value: function optimize() {\n for (var i = 0; i < this.tracks.length; i++) {\n this.tracks[i].optimize();\n }\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n var tracks = [];\n for (var i = 0; i < this.tracks.length; i++) {\n tracks.push(this.tracks[i].clone());\n }\n return new this.constructor(this.name, this.duration, tracks, this.blendMode);\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return this.constructor.toJSON(this);\n } }],\n [{\n key: \"parse\",\n value: function parse(json) {\n var tracks = [],\n jsonTracks = json.tracks,\n frameTime = 1.0 / (json.fps || 1.0);\n for (var i = 0, n = jsonTracks.length; i !== n; ++i) {\n tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime));\n }\n var clip = new this(json.name, json.duration, tracks, json.blendMode);\n clip.uuid = json.uuid;\n return clip;\n } },\n {\n key: \"toJSON\",\n value: function toJSON(clip) {\n var tracks = [],\n clipTracks = clip.tracks;\n var json = {\n 'name': clip.name,\n 'duration': clip.duration,\n 'tracks': tracks,\n 'uuid': clip.uuid,\n 'blendMode': clip.blendMode };\n\n for (var i = 0, n = clipTracks.length; i !== n; ++i) {\n tracks.push(_KeyframeTrack.KeyframeTrack.toJSON(clipTracks[i]));\n }\n return json;\n } },\n {\n key: \"CreateFromMorphTargetSequence\",\n value: function CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) {\n var numMorphTargets = morphTargetSequence.length;\n var tracks = [];\n for (var i = 0; i < numMorphTargets; i++) {\n var times = [];\n var values = [];\n times.push((i + numMorphTargets - 1) % numMorphTargets, i, (i + 1) % numMorphTargets);\n values.push(0, 1, 0);\n var order = AnimationUtils.getKeyframeOrder(times);\n times = AnimationUtils.sortedArray(times, 1, order);\n values = AnimationUtils.sortedArray(values, 1, order);\n if (!noLoop && times[0] === 0) {\n times.push(numMorphTargets);\n values.push(values[0]);\n }\n tracks.push(new _NumberKeyframeTrack.NumberKeyframeTrack('.morphTargetInfluences[' + morphTargetSequence[i].name + ']', times, values).scale(1.0 / fps));\n }\n return new this(name, -1, tracks);\n } },\n {\n key: \"findByName\",\n value: function findByName(objectOrClipArray, name) {\n var clipArray = objectOrClipArray;\n if (!Array.isArray(objectOrClipArray)) {\n var o = objectOrClipArray;\n clipArray = o.geometry && o.geometry.animations || o.animations;\n }\n for (var i = 0; i < clipArray.length; i++) {\n if (clipArray[i].name === name) {\n return clipArray[i];\n }\n }\n return null;\n } },\n {\n key: \"CreateClipsFromMorphTargetSequences\",\n value: function CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) {\n var animationToMorphTargets = {};\n var pattern = /^([\\w-]*?)([\\d]+)$/;\n for (var i = 0, il = morphTargets.length; i < il; i++) {\n var morphTarget = morphTargets[i];\n var parts = morphTarget.name.match(pattern);\n if (parts && parts.length > 1) {\n var name = parts[1];\n var animationMorphTargets = animationToMorphTargets[name];\n if (!animationMorphTargets) {\n animationToMorphTargets[name] = animationMorphTargets = [];\n }\n animationMorphTargets.push(morphTarget);\n }\n }\n var clips = [];\n for (var _name in animationToMorphTargets) {\n clips.push(this.CreateFromMorphTargetSequence(_name, animationToMorphTargets[_name], fps, noLoop));\n }\n return clips;\n } },\n {\n key: \"parseAnimation\",\n value: function parseAnimation(animation, bones) {\n if (!animation) {\n console.error('THREE.AnimationClip: No animation in JSONLoader data.');\n return null;\n }\n var addNonemptyTrack = function addNonemptyTrack(trackType, trackName, animationKeys, propertyName, destTracks) {\n if (animationKeys.length !== 0) {\n var times = [];\n var values = [];\n AnimationUtils.flattenJSON(animationKeys, times, values, propertyName);\n if (times.length !== 0) {\n destTracks.push(new trackType(trackName, times, values));\n }\n }\n };\n var tracks = [];\n var clipName = animation.name || 'default';\n var fps = animation.fps || 30;\n var blendMode = animation.blendMode;\n var duration = animation.length || -1;\n var hierarchyTracks = animation.hierarchy || [];\n for (var h = 0; h < hierarchyTracks.length; h++) {\n var animationKeys = hierarchyTracks[h].keys;\n if (!animationKeys || animationKeys.length === 0) continue;\n if (animationKeys[0].morphTargets) {\n var morphTargetNames = {};\n var k = void 0;\n for (k = 0; k < animationKeys.length; k++) {\n if (animationKeys[k].morphTargets) {\n for (var m = 0; m < animationKeys[k].morphTargets.length; m++) {\n morphTargetNames[animationKeys[k].morphTargets[m]] = -1;\n }\n }\n }\n for (var morphTargetName in morphTargetNames) {\n var times = [];\n var values = [];\n for (var _m = 0; _m !== animationKeys[k].morphTargets.length; ++_m) {\n var animationKey = animationKeys[k];\n times.push(animationKey.time);\n values.push(animationKey.morphTarget === morphTargetName ? 1 : 0);\n }\n tracks.push(new _NumberKeyframeTrack.NumberKeyframeTrack('.morphTargetInfluence[' + morphTargetName + ']', times, values));\n }\n duration = morphTargetNames.length * fps;\n } else {\n var boneName = '.bones[' + bones[h].name + ']';\n addNonemptyTrack(_VectorKeyframeTrack.VectorKeyframeTrack, boneName + '.position', animationKeys, 'pos', tracks);\n addNonemptyTrack(_QuaternionKeyframeTrack.QuaternionKeyframeTrack, boneName + '.quaternion', animationKeys, 'rot', tracks);\n addNonemptyTrack(_VectorKeyframeTrack.VectorKeyframeTrack, boneName + '.scale', animationKeys, 'scl', tracks);\n }\n }\n if (tracks.length === 0) {\n return null;\n }\n var clip = new this(clipName, duration, tracks, blendMode);\n return clip;\n } }]);\n\n return AnimationClip;\n }();\n function getTrackTypeForValueTypeName(typeName) {\n switch (typeName.toLowerCase()) {\n case 'scalar':\n case 'double':\n case 'float':\n case 'number':\n case 'integer':\n return _NumberKeyframeTrack.NumberKeyframeTrack;\n case 'vector':\n case 'vector2':\n case 'vector3':\n case 'vector4':\n return _VectorKeyframeTrack.VectorKeyframeTrack;\n case 'color':\n return _ColorKeyframeTrack.ColorKeyframeTrack;\n case 'quaternion':\n return _QuaternionKeyframeTrack.QuaternionKeyframeTrack;\n case 'bool':\n case 'boolean':\n return _BooleanKeyframeTrack.BooleanKeyframeTrack;\n case 'string':\n return _StringKeyframeTrack.StringKeyframeTrack;}\n\n throw new Error('THREE.KeyframeTrack: Unsupported typeName: ' + typeName);\n }\n function parseKeyframeTrack(json) {\n if (json.type === undefined) {\n throw new Error('THREE.KeyframeTrack: track type undefined, can not parse');\n }\n var trackType = getTrackTypeForValueTypeName(json.type);\n if (json.times === undefined) {\n var times = [],\n values = [];\n AnimationUtils.flattenJSON(json.keys, times, values, 'value');\n json.times = times;\n json.values = values;\n }\n if (trackType.parse !== undefined) {\n return trackType.parse(json);\n } else {\n return new trackType(json.name, json.times, json.values, json.interpolation);\n }\n }return module.exports;});", "requires": [ "pandav:/src/animation/AnimationUtils.js", "pandav:/src/animation/KeyframeTrack.js", "pandav:/src/animation/tracks/BooleanKeyframeTrack.js", "pandav:/src/animation/tracks/ColorKeyframeTrack.js", "pandav:/src/animation/tracks/NumberKeyframeTrack.js", "pandav:/src/animation/tracks/QuaternionKeyframeTrack.js", "pandav:/src/animation/tracks/StringKeyframeTrack.js", "pandav:/src/animation/tracks/VectorKeyframeTrack.js", "pandav:/src/math/MathUtils.js", "pandav:/src/constants.js" ], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/AnimationClip.js", "fileName": "/src/animation/AnimationClip.js" }, "pandav:/examples/jsm/postprocessing/SSRPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/postprocessing/SSRPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0\", \"pandav:/com/three/0.145.0/examples/jsm/shaders/SSRShader\", \"pandav:/com/three/0.145.0/examples/jsm/shaders/CopyShader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SSRPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Three = require('pandav:/com/three/0.145.0');\n var _SSRShader = require('pandav:/com/three/0.145.0/examples/jsm/shaders/SSRShader');\n var _CopyShader = require('pandav:/com/three/0.145.0/examples/jsm/shaders/CopyShader');\n var SSRPass = exports.SSRPass = function (_Pass) {\n (0, _inherits2.default)(SSRPass, _Pass);\n var _super = (0, _createSuper2.default)(SSRPass);\n function SSRPass(_ref) {\n var _this;\n var renderer = _ref.renderer,\n scene = _ref.scene,\n camera = _ref.camera,\n width = _ref.width,\n height = _ref.height,\n selects = _ref.selects,\n _ref$bouncing = _ref.bouncing,\n bouncing = _ref$bouncing === void 0 ? false : _ref$bouncing,\n groundReflector = _ref.groundReflector;\n (0, _classCallCheck2.default)(this, SSRPass);\n _this = _super.call(this);\n _this.width = width !== undefined ? width : 512;\n _this.height = height !== undefined ? height : 512;\n _this.clear = true;\n _this.renderer = renderer;\n _this.scene = scene;\n _this.camera = camera;\n _this.groundReflector = groundReflector;\n _this.opacity = _SSRShader.SSRShader.uniforms.opacity.value;\n _this.output = 0;\n _this.maxDistance = _SSRShader.SSRShader.uniforms.maxDistance.value;\n _this.thickness = _SSRShader.SSRShader.uniforms.thickness.value;\n _this.tempColor = new _Three.Color();\n _this._selects = selects;\n _this.selective = Array.isArray(_this._selects);\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), \"selects\", {\n get: function get() {\n return this._selects;\n },\n set: function set(val) {\n if (this._selects === val) return;\n this._selects = val;\n if (Array.isArray(val)) {\n this.selective = true;\n this.ssrMaterial.defines.SELECTIVE = true;\n this.ssrMaterial.needsUpdate = true;\n } else {\n this.selective = false;\n this.ssrMaterial.defines.SELECTIVE = false;\n this.ssrMaterial.needsUpdate = true;\n }\n } });\n\n _this._bouncing = bouncing;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), \"bouncing\", {\n get: function get() {\n return this._bouncing;\n },\n set: function set(val) {\n if (this._bouncing === val) return;\n this._bouncing = val;\n if (val) {\n this.ssrMaterial.uniforms[\"tDiffuse\"].value = this.prevRenderTarget.texture;\n } else {\n this.ssrMaterial.uniforms[\"tDiffuse\"].value = this.beautyRenderTarget.texture;\n }\n } });\n\n _this.blur = true;\n _this._distanceAttenuation = _SSRShader.SSRShader.defines.DISTANCE_ATTENUATION;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), \"distanceAttenuation\", {\n get: function get() {\n return this._distanceAttenuation;\n },\n set: function set(val) {\n if (this._distanceAttenuation === val) return;\n this._distanceAttenuation = val;\n this.ssrMaterial.defines.DISTANCE_ATTENUATION = val;\n this.ssrMaterial.needsUpdate = true;\n } });\n\n _this._fresnel = _SSRShader.SSRShader.defines.FRESNEL;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), \"fresnel\", {\n get: function get() {\n return this._fresnel;\n },\n set: function set(val) {\n if (this._fresnel === val) return;\n this._fresnel = val;\n this.ssrMaterial.defines.FRESNEL = val;\n this.ssrMaterial.needsUpdate = true;\n } });\n\n _this._infiniteThick = _SSRShader.SSRShader.defines.INFINITE_THICK;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), \"infiniteThick\", {\n get: function get() {\n return this._infiniteThick;\n },\n set: function set(val) {\n if (this._infiniteThick === val) return;\n this._infiniteThick = val;\n this.ssrMaterial.defines.INFINITE_THICK = val;\n this.ssrMaterial.needsUpdate = true;\n } });\n\n var depthTexture = new _Three.DepthTexture();\n depthTexture.type = _Three.UnsignedShortType;\n depthTexture.minFilter = _Three.NearestFilter;\n depthTexture.magFilter = _Three.NearestFilter;\n _this.beautyRenderTarget = new _Three.WebGLRenderTarget(_this.width, _this.height, {\n minFilter: _Three.NearestFilter,\n magFilter: _Three.NearestFilter,\n depthTexture: depthTexture,\n depthBuffer: true });\n\n _this.prevRenderTarget = new _Three.WebGLRenderTarget(_this.width, _this.height, {\n minFilter: _Three.NearestFilter,\n magFilter: _Three.NearestFilter });\n\n _this.normalRenderTarget = new _Three.WebGLRenderTarget(_this.width, _this.height, {\n minFilter: _Three.NearestFilter,\n magFilter: _Three.NearestFilter,\n type: _Three.HalfFloatType });\n\n _this.metalnessRenderTarget = new _Three.WebGLRenderTarget(_this.width, _this.height, {\n minFilter: _Three.NearestFilter,\n magFilter: _Three.NearestFilter });\n\n _this.ssrRenderTarget = new _Three.WebGLRenderTarget(_this.width, _this.height, {\n minFilter: _Three.NearestFilter,\n magFilter: _Three.NearestFilter });\n\n _this.blurRenderTarget = _this.ssrRenderTarget.clone();\n _this.blurRenderTarget2 = _this.ssrRenderTarget.clone();\n if (_SSRShader.SSRShader === undefined) {\n console.error(\"THREE.SSRPass: The pass relies on SSRShader.\");\n }\n _this.ssrMaterial = new _Three.ShaderMaterial({\n defines: Object.assign({}, _SSRShader.SSRShader.defines, {\n MAX_STEP: Math.sqrt(_this.width * _this.width + _this.height * _this.height) }),\n\n uniforms: _Three.UniformsUtils.clone(_SSRShader.SSRShader.uniforms),\n vertexShader: _SSRShader.SSRShader.vertexShader,\n fragmentShader: _SSRShader.SSRShader.fragmentShader,\n blending: _Three.NoBlending });\n\n _this.ssrMaterial.uniforms[\"tDiffuse\"].value = _this.beautyRenderTarget.texture;\n _this.ssrMaterial.uniforms[\"tNormal\"].value = _this.normalRenderTarget.texture;\n _this.ssrMaterial.defines.SELECTIVE = _this.selective;\n _this.ssrMaterial.needsUpdate = true;\n _this.ssrMaterial.uniforms[\"tMetalness\"].value = _this.metalnessRenderTarget.texture;\n _this.ssrMaterial.uniforms[\"tDepth\"].value = _this.beautyRenderTarget.depthTexture;\n _this.ssrMaterial.uniforms[\"cameraNear\"].value = _this.camera.near;\n _this.ssrMaterial.uniforms[\"cameraFar\"].value = _this.camera.far;\n _this.ssrMaterial.uniforms[\"thickness\"].value = _this.thickness;\n _this.ssrMaterial.uniforms[\"resolution\"].value.set(_this.width, _this.height);\n _this.ssrMaterial.uniforms[\"cameraProjectionMatrix\"].value.copy(_this.camera.projectionMatrix);\n _this.ssrMaterial.uniforms[\"cameraInverseProjectionMatrix\"].value.copy(_this.camera.projectionMatrixInverse);\n _this.normalMaterial = new _Three.MeshNormalMaterial();\n _this.normalMaterial.blending = _Three.NoBlending;\n _this.metalnessOnMaterial = new _Three.MeshBasicMaterial({\n color: \"white\" });\n\n _this.metalnessOffMaterial = new _Three.MeshBasicMaterial({\n color: \"black\" });\n\n _this.blurMaterial = new _Three.ShaderMaterial({\n defines: Object.assign({}, _SSRShader.SSRBlurShader.defines),\n uniforms: _Three.UniformsUtils.clone(_SSRShader.SSRBlurShader.uniforms),\n vertexShader: _SSRShader.SSRBlurShader.vertexShader,\n fragmentShader: _SSRShader.SSRBlurShader.fragmentShader });\n\n _this.blurMaterial.uniforms[\"tDiffuse\"].value = _this.ssrRenderTarget.texture;\n _this.blurMaterial.uniforms[\"resolution\"].value.set(_this.width, _this.height);\n _this.blurMaterial2 = new _Three.ShaderMaterial({\n defines: Object.assign({}, _SSRShader.SSRBlurShader.defines),\n uniforms: _Three.UniformsUtils.clone(_SSRShader.SSRBlurShader.uniforms),\n vertexShader: _SSRShader.SSRBlurShader.vertexShader,\n fragmentShader: _SSRShader.SSRBlurShader.fragmentShader });\n\n _this.blurMaterial2.uniforms[\"tDiffuse\"].value = _this.blurRenderTarget.texture;\n _this.blurMaterial2.uniforms[\"resolution\"].value.set(_this.width, _this.height);\n _this.depthRenderMaterial = new _Three.ShaderMaterial({\n defines: Object.assign({}, _SSRShader.SSRDepthShader.defines),\n uniforms: _Three.UniformsUtils.clone(_SSRShader.SSRDepthShader.uniforms),\n vertexShader: _SSRShader.SSRDepthShader.vertexShader,\n fragmentShader: _SSRShader.SSRDepthShader.fragmentShader,\n blending: _Three.NoBlending });\n\n _this.depthRenderMaterial.uniforms[\"tDepth\"].value = _this.beautyRenderTarget.depthTexture;\n _this.depthRenderMaterial.uniforms[\"cameraNear\"].value = _this.camera.near;\n _this.depthRenderMaterial.uniforms[\"cameraFar\"].value = _this.camera.far;\n _this.copyMaterial = new _Three.ShaderMaterial({\n uniforms: _Three.UniformsUtils.clone(_CopyShader.CopyShader.uniforms),\n vertexShader: _CopyShader.CopyShader.vertexShader,\n fragmentShader: _CopyShader.CopyShader.fragmentShader,\n transparent: true,\n depthTest: false,\n depthWrite: false,\n blendSrc: _Three.SrcAlphaFactor,\n blendDst: _Three.OneMinusSrcAlphaFactor,\n blendEquation: _Three.AddEquation,\n blendSrcAlpha: _Three.SrcAlphaFactor,\n blendDstAlpha: _Three.OneMinusSrcAlphaFactor,\n blendEquationAlpha: _Three.AddEquation });\n\n _this.fsQuad = new _Three.FullScreenQuad(null);\n _this.originalClearColor = new _Three.Color();\n return _this;\n }\n (0, _createClass2.default)(SSRPass, [{\n key: \"dispose\",\n value: function dispose() {\n this.beautyRenderTarget.dispose();\n this.prevRenderTarget.dispose();\n this.normalRenderTarget.dispose();\n this.metalnessRenderTarget.dispose();\n this.ssrRenderTarget.dispose();\n this.blurRenderTarget.dispose();\n this.blurRenderTarget2.dispose();\n this.normalMaterial.dispose();\n this.metalnessOnMaterial.dispose();\n this.metalnessOffMaterial.dispose();\n this.blurMaterial.dispose();\n this.blurMaterial2.dispose();\n this.copyMaterial.dispose();\n this.depthRenderMaterial.dispose();\n this.fsQuad.dispose();\n } },\n {\n key: \"render\",\n value: function render(renderer, writeBuffer) {\n renderer.setRenderTarget(this.beautyRenderTarget);\n renderer.clear();\n if (this.groundReflector) {\n this.groundReflector.visible = false;\n this.groundReflector.doRender(this.renderer, this.scene, this.camera);\n this.groundReflector.visible = true;\n }\n renderer.render(this.scene, this.camera);\n if (this.groundReflector) this.groundReflector.visible = false;\n this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 0, 0);\n if (this.selective) {\n this.renderMetalness(renderer, this.metalnessOnMaterial, this.metalnessRenderTarget, 0, 0);\n }\n this.ssrMaterial.uniforms[\"opacity\"].value = this.opacity;\n this.ssrMaterial.uniforms[\"maxDistance\"].value = this.maxDistance;\n this.ssrMaterial.uniforms[\"thickness\"].value = this.thickness;\n this.renderPass(renderer, this.ssrMaterial, this.ssrRenderTarget);\n if (this.blur) {\n this.renderPass(renderer, this.blurMaterial, this.blurRenderTarget);\n this.renderPass(renderer, this.blurMaterial2, this.blurRenderTarget2);\n }\n switch (this.output) {\n case SSRPass.OUTPUT.Default:\n if (this.bouncing) {\n this.copyMaterial.uniforms[\"tDiffuse\"].value = this.beautyRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget);\n if (this.blur) this.copyMaterial.uniforms[\"tDiffuse\"].value = this.blurRenderTarget2.texture;else this.copyMaterial.uniforms[\"tDiffuse\"].value = this.ssrRenderTarget.texture;\n this.copyMaterial.blending = _Three.NormalBlending;\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget);\n this.copyMaterial.uniforms[\"tDiffuse\"].value = this.prevRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);\n } else {\n this.copyMaterial.uniforms[\"tDiffuse\"].value = this.beautyRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);\n if (this.blur) this.copyMaterial.uniforms[\"tDiffuse\"].value = this.blurRenderTarget2.texture;else this.copyMaterial.uniforms[\"tDiffuse\"].value = this.ssrRenderTarget.texture;\n this.copyMaterial.blending = _Three.NormalBlending;\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);\n }\n break;\n case SSRPass.OUTPUT.SSR:\n if (this.blur) this.copyMaterial.uniforms[\"tDiffuse\"].value = this.blurRenderTarget2.texture;else this.copyMaterial.uniforms[\"tDiffuse\"].value = this.ssrRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);\n if (this.bouncing) {\n if (this.blur) this.copyMaterial.uniforms[\"tDiffuse\"].value = this.blurRenderTarget2.texture;else this.copyMaterial.uniforms[\"tDiffuse\"].value = this.beautyRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget);\n this.copyMaterial.uniforms[\"tDiffuse\"].value = this.ssrRenderTarget.texture;\n this.copyMaterial.blending = _Three.NormalBlending;\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget);\n }\n break;\n case SSRPass.OUTPUT.Beauty:\n this.copyMaterial.uniforms[\"tDiffuse\"].value = this.beautyRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);\n break;\n case SSRPass.OUTPUT.Depth:\n this.renderPass(renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer);\n break;\n case SSRPass.OUTPUT.Normal:\n this.copyMaterial.uniforms[\"tDiffuse\"].value = this.normalRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);\n break;\n case SSRPass.OUTPUT.Metalness:\n this.copyMaterial.uniforms[\"tDiffuse\"].value = this.metalnessRenderTarget.texture;\n this.copyMaterial.blending = _Three.NoBlending;\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);\n break;\n default:\n console.warn(\"THREE.SSRPass: Unknown output type.\");}\n\n } },\n {\n key: \"renderPass\",\n value: function renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor));\n var originalClearAlpha = renderer.getClearAlpha(this.tempColor);\n var originalAutoClear = renderer.autoClear;\n renderer.setRenderTarget(renderTarget);\n renderer.autoClear = false;\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor);\n renderer.setClearAlpha(clearAlpha || 0.0);\n renderer.clear();\n }\n this.fsQuad.material = passMaterial;\n this.fsQuad.render(renderer);\n renderer.autoClear = originalAutoClear;\n renderer.setClearColor(this.originalClearColor);\n renderer.setClearAlpha(originalClearAlpha);\n } },\n {\n key: \"renderOverride\",\n value: function renderOverride(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor));\n var originalClearAlpha = renderer.getClearAlpha(this.tempColor);\n var originalAutoClear = renderer.autoClear;\n renderer.setRenderTarget(renderTarget);\n renderer.autoClear = false;\n clearColor = overrideMaterial.clearColor || clearColor;\n clearAlpha = overrideMaterial.clearAlpha || clearAlpha;\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor);\n renderer.setClearAlpha(clearAlpha || 0.0);\n renderer.clear();\n }\n this.scene.overrideMaterial = overrideMaterial;\n renderer.render(this.scene, this.camera);\n this.scene.overrideMaterial = null;\n renderer.autoClear = originalAutoClear;\n renderer.setClearColor(this.originalClearColor);\n renderer.setClearAlpha(originalClearAlpha);\n } },\n {\n key: \"renderMetalness\",\n value: function renderMetalness(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {\n var _this2 = this;\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor));\n var originalClearAlpha = renderer.getClearAlpha(this.tempColor);\n var originalAutoClear = renderer.autoClear;\n renderer.setRenderTarget(renderTarget);\n renderer.autoClear = false;\n clearColor = overrideMaterial.clearColor || clearColor;\n clearAlpha = overrideMaterial.clearAlpha || clearAlpha;\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor);\n renderer.setClearAlpha(clearAlpha || 0.0);\n renderer.clear();\n }\n this.scene.traverseVisible(function (child) {\n child._SSRPassBackupMaterial = child.material;\n if (_this2._selects.includes(child)) {\n child.material = _this2.metalnessOnMaterial;\n } else {\n child.material = _this2.metalnessOffMaterial;\n }\n });\n renderer.render(this.scene, this.camera);\n this.scene.traverseVisible(function (child) {\n child.material = child._SSRPassBackupMaterial;\n });\n renderer.autoClear = originalAutoClear;\n renderer.setClearColor(this.originalClearColor);\n renderer.setClearAlpha(originalClearAlpha);\n } },\n {\n key: \"setSize\",\n value: function setSize(width, height) {\n this.width = width;\n this.height = height;\n this.ssrMaterial.defines.MAX_STEP = Math.sqrt(width * width + height * height);\n this.ssrMaterial.needsUpdate = true;\n this.beautyRenderTarget.setSize(width, height);\n this.prevRenderTarget.setSize(width, height);\n this.ssrRenderTarget.setSize(width, height);\n this.normalRenderTarget.setSize(width, height);\n this.metalnessRenderTarget.setSize(width, height);\n this.blurRenderTarget.setSize(width, height);\n this.blurRenderTarget2.setSize(width, height);\n this.ssrMaterial.uniforms[\"resolution\"].value.set(width, height);\n this.ssrMaterial.uniforms[\"cameraProjectionMatrix\"].value.copy(this.camera.projectionMatrix);\n this.ssrMaterial.uniforms[\"cameraInverseProjectionMatrix\"].value.copy(this.camera.projectionMatrixInverse);\n this.blurMaterial.uniforms[\"resolution\"].value.set(width, height);\n this.blurMaterial2.uniforms[\"resolution\"].value.set(width, height);\n } }]);\n\n return SSRPass;\n }(_Three.Pass);\n SSRPass.OUTPUT = {\n Default: 0,\n SSR: 1,\n Beauty: 3,\n Depth: 4,\n Normal: 5,\n Metalness: 7 };return module.exports;});", "requires": [ "pandav:/index.js", "pandav:/examples/jsm/shaders/SSRShader.js", "pandav:/examples/jsm/shaders/CopyShader.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/postprocessing", "outputPath": "/com/three/0.145.0/examples/jsm/postprocessing/SSRPass.js", "fileName": "/examples/jsm/postprocessing/SSRPass.js" }, "pandav:/examples/jsm/utils/BufferGeometryUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/examples/jsm/utils/BufferGeometryUtils\", [\"pandav:/com/three/0.145.0\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.computeMikkTSpaceTangents = computeMikkTSpaceTangents;\n exports.computeMorphedAttributes = computeMorphedAttributes;\n exports.computeTangents = computeTangents;\n exports.deinterleaveAttribute = deinterleaveAttribute;\n exports.deinterleaveGeometry = deinterleaveGeometry;\n exports.estimateBytesUsed = estimateBytesUsed;\n exports.interleaveAttributes = interleaveAttributes;\n exports.mergeBufferAttributes = mergeBufferAttributes;\n exports.mergeBufferGeometries = mergeBufferGeometries;\n exports.mergeGroups = mergeGroups;\n exports.mergeVertices = mergeVertices;\n exports.toTrianglesDrawMode = toTrianglesDrawMode;\n var _Three = require('pandav:/com/three/0.145.0');\n function computeTangents() {\n throw new Error(\"BufferGeometryUtils: computeTangents renamed to computeMikkTSpaceTangents.\");\n }\n function computeMikkTSpaceTangents(geometry, MikkTSpace) {\n var negateSign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!MikkTSpace || !MikkTSpace.isReady) {\n throw new Error(\"BufferGeometryUtils: Initialized MikkTSpace library required.\");\n }\n if (!geometry.hasAttribute(\"position\") || !geometry.hasAttribute(\"normal\") || !geometry.hasAttribute(\"uv\")) {\n throw new Error('BufferGeometryUtils: Tangents require \"position\", \"normal\", and \"uv\" attributes.');\n }\n function getAttributeArray(attribute) {\n if (attribute.normalized || attribute.isInterleavedBufferAttribute) {\n var dstArray = new Float32Array(attribute.getCount() * attribute.itemSize);\n for (var i = 0, j = 0; i < attribute.getCount(); i++) {\n dstArray[j++] = attribute.getX(i);\n dstArray[j++] = attribute.getY(i);\n if (attribute.itemSize > 2) {\n dstArray[j++] = attribute.getZ(i);\n }\n }\n return dstArray;\n }\n if (attribute.array instanceof Float32Array) {\n return attribute.array;\n }\n return new Float32Array(attribute.array);\n }\n var _geometry = geometry.index ? geometry.toNonIndexed() : geometry;\n var tangents = MikkTSpace.generateTangents(getAttributeArray(_geometry.attributes.position), getAttributeArray(_geometry.attributes.normal), getAttributeArray(_geometry.attributes.uv));\n if (negateSign) {\n for (var i = 3; i < tangents.length; i += 4) {\n tangents[i] *= -1;\n }\n }\n _geometry.setAttribute(\"tangent\", new _Three.BufferAttribute(tangents, 4));\n if (geometry !== _geometry) {\n geometry.copy(_geometry);\n }\n return geometry;\n }\n function mergeBufferGeometries(geometries) {\n var useGroups = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isIndexed = geometries[0].index !== null;\n var attributesUsed = new Set(Object.keys(geometries[0].attributes));\n var morphAttributesUsed = new Set(Object.keys(geometries[0].morphAttributes));\n var attributes = {};\n var morphAttributes = {};\n var morphTargetsRelative = geometries[0].morphTargetsRelative;\n var mergedGeometry = new _Three.BufferGeometry();\n var offset = 0;\n for (var i = 0; i < geometries.length; ++i) {\n var geometry = geometries[i];\n var attributesCount = 0;\n if (isIndexed !== (geometry.index !== null)) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \" + i + \". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.\");\n return null;\n }\n for (var name in geometry.attributes) {\n if (!attributesUsed.has(name)) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \" + i + '. All geometries must have compatible attributes; make sure \"' + name + '\" attribute exists among all geometries, or in none of them.');\n return null;\n }\n if (attributes[name] === undefined) attributes[name] = [];\n attributes[name].push(geometry.attributes[name]);\n attributesCount++;\n }\n if (attributesCount !== attributesUsed.size) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \" + i + \". Make sure all geometries have the same number of attributes.\");\n return null;\n }\n if (morphTargetsRelative !== geometry.morphTargetsRelative) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \" + i + \". .morphTargetsRelative must be consistent throughout all geometries.\");\n return null;\n }\n for (var _name in geometry.morphAttributes) {\n if (!morphAttributesUsed.has(_name)) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \" + i + \". .morphAttributes must be consistent throughout all geometries.\");\n return null;\n }\n if (morphAttributes[_name] === undefined) morphAttributes[_name] = [];\n morphAttributes[_name].push(geometry.morphAttributes[_name]);\n }\n mergedGeometry.userData.mergedUserData = mergedGeometry.userData.mergedUserData || [];\n mergedGeometry.userData.mergedUserData.push(geometry.userData);\n if (useGroups) {\n var count = void 0;\n if (isIndexed) {\n count = geometry.index.count;\n } else if (geometry.attributes.position !== undefined) {\n count = geometry.attributes.position.count;\n } else {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \" + i + \". The geometry must have either an index or a position attribute\");\n return null;\n }\n mergedGeometry.addGroup(offset, count, i);\n offset += count;\n }\n }\n if (isIndexed) {\n var indexOffset = 0;\n var mergedIndex = [];\n for (var _i = 0; _i < geometries.length; ++_i) {\n var index = geometries[_i].index;\n for (var j = 0; j < index.count; ++j) {\n mergedIndex.push(index.getX(j) + indexOffset);\n }\n indexOffset += geometries[_i].attributes.position.count;\n }\n mergedGeometry.setIndex(mergedIndex);\n }\n for (var _name2 in attributes) {\n var mergedAttribute = mergeBufferAttributes(attributes[_name2]);\n if (!mergedAttribute) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the \" + _name2 + \" attribute.\");\n return null;\n }\n mergedGeometry.setAttribute(_name2, mergedAttribute);\n }\n for (var _name3 in morphAttributes) {\n var numMorphTargets = morphAttributes[_name3][0].length;\n if (numMorphTargets === 0) break;\n mergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {};\n mergedGeometry.morphAttributes[_name3] = [];\n for (var _i2 = 0; _i2 < numMorphTargets; ++_i2) {\n var morphAttributesToMerge = [];\n for (var _j = 0; _j < morphAttributes[_name3].length; ++_j) {\n morphAttributesToMerge.push(morphAttributes[_name3][_j][_i2]);\n }\n var mergedMorphAttribute = mergeBufferAttributes(morphAttributesToMerge);\n if (!mergedMorphAttribute) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the \" + _name3 + \" morphAttribute.\");\n return null;\n }\n mergedGeometry.morphAttributes[_name3].push(mergedMorphAttribute);\n }\n }\n return mergedGeometry;\n }\n function mergeBufferAttributes(attributes) {\n var TypedArray;\n var itemSize;\n var normalized;\n var arrayLength = 0;\n for (var i = 0; i < attributes.length; ++i) {\n var attribute = attributes[i];\n if (attribute.isInterleavedBufferAttribute) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.\");\n return null;\n }\n if (TypedArray === undefined) TypedArray = attribute.array.constructor;\n if (TypedArray !== attribute.array.constructor) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.\");\n return null;\n }\n if (itemSize === undefined) itemSize = attribute.itemSize;\n if (itemSize !== attribute.itemSize) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.\");\n return null;\n }\n if (normalized === undefined) normalized = attribute.normalized;\n if (normalized !== attribute.normalized) {\n console.error(\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.\");\n return null;\n }\n arrayLength += attribute.array.length;\n }\n var array = new TypedArray(arrayLength);\n var offset = 0;\n for (var _i3 = 0; _i3 < attributes.length; ++_i3) {\n array.set(attributes[_i3].array, offset);\n offset += attributes[_i3].array.length;\n }\n return new _Three.BufferAttribute(array, itemSize, normalized);\n }\n function interleaveAttributes(attributes) {\n var TypedArray;\n var arrayLength = 0;\n var stride = 0;\n for (var i = 0, l = attributes.length; i < l; ++i) {\n var attribute = attributes[i];\n if (TypedArray === undefined) TypedArray = attribute.array.constructor;\n if (TypedArray !== attribute.array.constructor) {\n console.error(\"AttributeBuffers of different types cannot be interleaved\");\n return null;\n }\n arrayLength += attribute.array.length;\n stride += attribute.itemSize;\n }\n var interleavedBuffer = new _Three.InterleavedBuffer(new TypedArray(arrayLength), stride);\n var offset = 0;\n var res = [];\n var getters = [\"getX\", \"getY\", \"getZ\", \"getW\"];\n var setters = [\"setX\", \"setY\", \"setZ\", \"setW\"];\n for (var j = 0, _l = attributes.length; j < _l; j++) {\n var _attribute = attributes[j];\n var itemSize = _attribute.itemSize;\n var count = _attribute.count;\n var iba = new _Three.InterleavedBufferAttribute(interleavedBuffer, itemSize, offset, _attribute.normalized);\n res.push(iba);\n offset += itemSize;\n for (var c = 0; c < count; c++) {\n for (var k = 0; k < itemSize; k++) {\n iba[setters[k]](c, _attribute[getters[k]](c));\n }\n }\n }\n return res;\n }\n function deinterleaveAttribute(attribute) {\n var cons = attribute.data.array.constructor;\n var count = attribute.count;\n var itemSize = attribute.itemSize;\n var normalized = attribute.normalized;\n var array = new cons(count * itemSize);\n var newAttribute;\n if (attribute.isInstancedInterleavedBufferAttribute) {\n newAttribute = new _Three.InstancedBufferAttribute(array, itemSize, normalized, attribute.meshPerAttribute);\n } else {\n newAttribute = new _Three.BufferAttribute(array, itemSize, normalized);\n }\n for (var i = 0; i < count; i++) {\n newAttribute.setX(i, attribute.getX(i));\n if (itemSize >= 2) {\n newAttribute.setY(i, attribute.getY(i));\n }\n if (itemSize >= 3) {\n newAttribute.setZ(i, attribute.getZ(i));\n }\n if (itemSize >= 4) {\n newAttribute.setW(i, attribute.getW(i));\n }\n }\n return newAttribute;\n }\n function deinterleaveGeometry(geometry) {\n var attributes = geometry.attributes;\n var morphTargets = geometry.morphTargets;\n var attrMap = new Map();\n for (var key in attributes) {\n var attr = attributes[key];\n if (attr.isInterleavedBufferAttribute) {\n if (!attrMap.has(attr)) {\n attrMap.set(attr, deinterleaveAttribute(attr));\n }\n attributes[key] = attrMap.get(attr);\n }\n }\n for (var _key in morphTargets) {\n var _attr = morphTargets[_key];\n if (_attr.isInterleavedBufferAttribute) {\n if (!attrMap.has(_attr)) {\n attrMap.set(_attr, deinterleaveAttribute(_attr));\n }\n morphTargets[_key] = attrMap.get(_attr);\n }\n }\n }\n function estimateBytesUsed(geometry) {\n var mem = 0;\n for (var name in geometry.attributes) {\n var attr = geometry.getAttribute(name);\n mem += attr.count * attr.itemSize * attr.array.BYTES_PER_ELEMENT;\n }\n var indices = geometry.getIndex();\n mem += indices ? indices.count * indices.itemSize * indices.array.BYTES_PER_ELEMENT : 0;\n return mem;\n }\n function mergeVertices(geometry) {\n var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e-4;\n tolerance = Math.max(tolerance, Number.EPSILON);\n var hashToIndex = {};\n var indices = geometry.getIndex();\n var positions = geometry.getAttribute(\"position\");\n var vertexCount = indices ? indices.count : positions.count;\n var nextIndex = 0;\n var attributeNames = Object.keys(geometry.attributes);\n var tmpAttributes = {};\n var tmpMorphAttributes = {};\n var newIndices = [];\n var getters = [\"getX\", \"getY\", \"getZ\", \"getW\"];\n var setters = [\"setX\", \"setY\", \"setZ\", \"setW\"];\n for (var i = 0, l = attributeNames.length; i < l; i++) {\n var name = attributeNames[i];\n var attr = geometry.attributes[name];\n tmpAttributes[name] = new _Three.BufferAttribute(new attr.array.constructor(attr.count * attr.itemSize), attr.itemSize, attr.normalized);\n var morphAttr = geometry.morphAttributes[name];\n if (morphAttr) {\n tmpMorphAttributes[name] = new _Three.BufferAttribute(new morphAttr.array.constructor(morphAttr.count * morphAttr.itemSize), morphAttr.itemSize, morphAttr.normalized);\n }\n }\n var decimalShift = Math.log10(1 / tolerance);\n var shiftMultiplier = Math.pow(10, decimalShift);\n for (var _i4 = 0; _i4 < vertexCount; _i4++) {\n var index = indices ? indices.getX(_i4) : _i4;\n var hash = \"\";\n for (var j = 0, _l2 = attributeNames.length; j < _l2; j++) {\n var _name4 = attributeNames[j];\n var attribute = geometry.getAttribute(_name4);\n var itemSize = attribute.itemSize;\n for (var k = 0; k < itemSize; k++) {\n hash += \"\".concat(~~(attribute[getters[k]](index) * shiftMultiplier), \",\");\n }\n }\n if (hash in hashToIndex) {\n newIndices.push(hashToIndex[hash]);\n } else {\n for (var _j2 = 0, _l3 = attributeNames.length; _j2 < _l3; _j2++) {\n var _name5 = attributeNames[_j2];\n var _attribute2 = geometry.getAttribute(_name5);\n var _morphAttr = geometry.morphAttributes[_name5];\n var _itemSize = _attribute2.itemSize;\n var newarray = tmpAttributes[_name5];\n var newMorphArrays = tmpMorphAttributes[_name5];\n for (var _k = 0; _k < _itemSize; _k++) {\n var getterFunc = getters[_k];\n var setterFunc = setters[_k];\n newarray[setterFunc](nextIndex, _attribute2[getterFunc](index));\n if (_morphAttr) {\n for (var m = 0, ml = _morphAttr.length; m < ml; m++) {\n newMorphArrays[m][setterFunc](nextIndex, _morphAttr[m][getterFunc](index));\n }\n }\n }\n }\n hashToIndex[hash] = nextIndex;\n newIndices.push(nextIndex);\n nextIndex++;\n }\n }\n var result = geometry.clone();\n for (var _name6 in geometry.attributes) {\n var tmpAttribute = tmpAttributes[_name6];\n result.setAttribute(_name6, new _Three.BufferAttribute(tmpAttribute.array.slice(0, nextIndex * tmpAttribute.itemSize), tmpAttribute.itemSize, tmpAttribute.normalized));\n if (!(_name6 in tmpMorphAttributes)) continue;\n for (var _j3 = 0; _j3 < tmpMorphAttributes[_name6].length; _j3++) {\n var tmpMorphAttribute = tmpMorphAttributes[_name6][_j3];\n result.morphAttributes[_name6][_j3] = new _Three.BufferAttribute(tmpMorphAttribute.array.slice(0, nextIndex * tmpMorphAttribute.itemSize), tmpMorphAttribute.itemSize, tmpMorphAttribute.normalized);\n }\n }\n result.setIndex(newIndices);\n return result;\n }\n function toTrianglesDrawMode(geometry, drawMode) {\n if (drawMode === _Three.TrianglesDrawMode) {\n console.warn(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.\");\n return geometry;\n }\n if (drawMode === _Three.TriangleFanDrawMode || drawMode === _Three.TriangleStripDrawMode) {\n var index = geometry.getIndex();\n if (index === null) {\n var indices = [];\n var position = geometry.getAttribute(\"position\");\n if (position !== undefined) {\n for (var i = 0; i < position.count; i++) {\n indices.push(i);\n }\n geometry.setIndex(indices);\n index = geometry.getIndex();\n } else {\n console.error(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.\");\n return geometry;\n }\n }\n var numberOfTriangles = index.count - 2;\n var newIndices = [];\n if (drawMode === _Three.TriangleFanDrawMode) {\n for (var _i5 = 1; _i5 <= numberOfTriangles; _i5++) {\n newIndices.push(index.getX(0));\n newIndices.push(index.getX(_i5));\n newIndices.push(index.getX(_i5 + 1));\n }\n } else {\n for (var _i6 = 0; _i6 < numberOfTriangles; _i6++) {\n if (_i6 % 2 === 0) {\n newIndices.push(index.getX(_i6));\n newIndices.push(index.getX(_i6 + 1));\n newIndices.push(index.getX(_i6 + 2));\n } else {\n newIndices.push(index.getX(_i6 + 2));\n newIndices.push(index.getX(_i6 + 1));\n newIndices.push(index.getX(_i6));\n }\n }\n }\n if (newIndices.length / 3 !== numberOfTriangles) {\n console.error(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.\");\n }\n var newGeometry = geometry.clone();\n newGeometry.setIndex(newIndices);\n newGeometry.clearGroups();\n return newGeometry;\n } else {\n console.error(\"THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:\", drawMode);\n return geometry;\n }\n }\n function computeMorphedAttributes(object) {\n if (object.geometry.isBufferGeometry !== true) {\n console.error(\"THREE.BufferGeometryUtils: Geometry is not of type BufferGeometry.\");\n return null;\n }\n var _vA = new _Three.Vector3();\n var _vB = new _Three.Vector3();\n var _vC = new _Three.Vector3();\n var _tempA = new _Three.Vector3();\n var _tempB = new _Three.Vector3();\n var _tempC = new _Three.Vector3();\n var _morphA = new _Three.Vector3();\n var _morphB = new _Three.Vector3();\n var _morphC = new _Three.Vector3();\n function _calculateMorphedAttributeData(object, attribute, morphAttribute, morphTargetsRelative, a, b, c, modifiedAttributeArray) {\n _vA.fromBufferAttribute(attribute, a);\n _vB.fromBufferAttribute(attribute, b);\n _vC.fromBufferAttribute(attribute, c);\n var morphInfluences = object.morphTargetInfluences;\n if (morphAttribute && morphInfluences) {\n _morphA.set(0, 0, 0);\n _morphB.set(0, 0, 0);\n _morphC.set(0, 0, 0);\n for (var _i7 = 0, _il = morphAttribute.length; _i7 < _il; _i7++) {\n var influence = morphInfluences[_i7];\n var morph = morphAttribute[_i7];\n if (influence === 0) continue;\n _tempA.fromBufferAttribute(morph, a);\n _tempB.fromBufferAttribute(morph, b);\n _tempC.fromBufferAttribute(morph, c);\n if (morphTargetsRelative) {\n _morphA.addScaledVector(_tempA, influence);\n _morphB.addScaledVector(_tempB, influence);\n _morphC.addScaledVector(_tempC, influence);\n } else {\n _morphA.addScaledVector(_tempA.sub(_vA), influence);\n _morphB.addScaledVector(_tempB.sub(_vB), influence);\n _morphC.addScaledVector(_tempC.sub(_vC), influence);\n }\n }\n _vA.add(_morphA);\n _vB.add(_morphB);\n _vC.add(_morphC);\n }\n if (object.isSkinnedMesh) {\n object.boneTransform(a, _vA);\n object.boneTransform(b, _vB);\n object.boneTransform(c, _vC);\n }\n modifiedAttributeArray[a * 3 + 0] = _vA.x;\n modifiedAttributeArray[a * 3 + 1] = _vA.y;\n modifiedAttributeArray[a * 3 + 2] = _vA.z;\n modifiedAttributeArray[b * 3 + 0] = _vB.x;\n modifiedAttributeArray[b * 3 + 1] = _vB.y;\n modifiedAttributeArray[b * 3 + 2] = _vB.z;\n modifiedAttributeArray[c * 3 + 0] = _vC.x;\n modifiedAttributeArray[c * 3 + 1] = _vC.y;\n modifiedAttributeArray[c * 3 + 2] = _vC.z;\n }\n var geometry = object.geometry;\n var material = object.material;\n var a, b, c;\n var index = geometry.index;\n var positionAttribute = geometry.attributes.position;\n var morphPosition = geometry.morphAttributes.position;\n var morphTargetsRelative = geometry.morphTargetsRelative;\n var normalAttribute = geometry.attributes.normal;\n var morphNormal = geometry.morphAttributes.position;\n var groups = geometry.groups;\n var drawRange = geometry.drawRange;\n var i, j, il, jl;\n var group;\n var start, end;\n var modifiedPosition = new Float32Array(positionAttribute.count * positionAttribute.itemSize);\n var modifiedNormal = new Float32Array(normalAttribute.count * normalAttribute.itemSize);\n if (index !== null) {\n if (Array.isArray(material)) {\n for (i = 0, il = groups.length; i < il; i++) {\n group = groups[i];\n start = Math.max(group.start, drawRange.start);\n end = Math.min(group.start + group.count, drawRange.start + drawRange.count);\n for (j = start, jl = end; j < jl; j += 3) {\n a = index.getX(j);\n b = index.getX(j + 1);\n c = index.getX(j + 2);\n _calculateMorphedAttributeData(object, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);\n _calculateMorphedAttributeData(object, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);\n }\n }\n } else {\n start = Math.max(0, drawRange.start);\n end = Math.min(index.count, drawRange.start + drawRange.count);\n for (i = start, il = end; i < il; i += 3) {\n a = index.getX(i);\n b = index.getX(i + 1);\n c = index.getX(i + 2);\n _calculateMorphedAttributeData(object, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);\n _calculateMorphedAttributeData(object, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);\n }\n }\n } else {\n if (Array.isArray(material)) {\n for (i = 0, il = groups.length; i < il; i++) {\n group = groups[i];\n start = Math.max(group.start, drawRange.start);\n end = Math.min(group.start + group.count, drawRange.start + drawRange.count);\n for (j = start, jl = end; j < jl; j += 3) {\n a = j;\n b = j + 1;\n c = j + 2;\n _calculateMorphedAttributeData(object, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);\n _calculateMorphedAttributeData(object, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);\n }\n }\n } else {\n start = Math.max(0, drawRange.start);\n end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n for (i = start, il = end; i < il; i += 3) {\n a = i;\n b = i + 1;\n c = i + 2;\n _calculateMorphedAttributeData(object, positionAttribute, morphPosition, morphTargetsRelative, a, b, c, modifiedPosition);\n _calculateMorphedAttributeData(object, normalAttribute, morphNormal, morphTargetsRelative, a, b, c, modifiedNormal);\n }\n }\n }\n var morphedPositionAttribute = new _Three.Float32BufferAttribute(modifiedPosition, 3);\n var morphedNormalAttribute = new _Three.Float32BufferAttribute(modifiedNormal, 3);\n return {\n positionAttribute: positionAttribute,\n normalAttribute: normalAttribute,\n morphedPositionAttribute: morphedPositionAttribute,\n morphedNormalAttribute: morphedNormalAttribute };\n\n }\n function mergeGroups(geometry) {\n if (geometry.groups.length === 0) {\n console.warn(\"THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge.\");\n return geometry;\n }\n var groups = geometry.groups;\n groups = groups.sort(function (a, b) {\n if (a.materialIndex !== b.materialIndex) return a.materialIndex - b.materialIndex;\n return a.start - b.start;\n });\n if (geometry.getIndex() === null) {\n var positionAttribute = geometry.getAttribute(\"position\");\n var indices = [];\n for (var i = 0; i < positionAttribute.count; i += 3) {\n indices.push(i, i + 1, i + 2);\n }\n geometry.setIndex(indices);\n }\n var index = geometry.getIndex();\n var newIndices = [];\n for (var _i8 = 0; _i8 < groups.length; _i8++) {\n var group = groups[_i8];\n var groupStart = group.start;\n var groupLength = groupStart + group.count;\n for (var j = groupStart; j < groupLength; j++) {\n newIndices.push(index.getX(j));\n }\n }\n geometry.dispose();\n geometry.setIndex(newIndices);\n var start = 0;\n for (var _i9 = 0; _i9 < groups.length; _i9++) {\n var _group = groups[_i9];\n _group.start = start;\n start += _group.count;\n }\n var currentGroup = groups[0];\n geometry.groups = [currentGroup];\n for (var _i10 = 1; _i10 < groups.length; _i10++) {\n var _group2 = groups[_i10];\n if (currentGroup.materialIndex === _group2.materialIndex) {\n currentGroup.count += _group2.count;\n } else {\n currentGroup = _group2;\n geometry.groups.push(currentGroup);\n }\n }\n return geometry;\n }return module.exports;});", "requires": [ "pandav:/index.js" ], "buildLevel": 0, "outputDir": "/com/three/0.145.0/examples/jsm/utils", "outputPath": "/com/three/0.145.0/examples/jsm/utils/BufferGeometryUtils.js", "fileName": "/examples/jsm/utils/BufferGeometryUtils.js" }, "pandav:/src/animation/AnimationMixer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/AnimationMixer\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/animation/AnimationAction\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/math/interpolants/LinearInterpolant\", \"pandav:/com/three/0.145.0/src/animation/PropertyBinding\", \"pandav:/com/three/0.145.0/src/animation/PropertyMixer\", \"pandav:/com/three/0.145.0/src/animation/AnimationClip\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AnimationMixer = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _AnimationAction = require('pandav:/com/three/0.145.0/src/animation/AnimationAction');\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _LinearInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/LinearInterpolant');\n var _PropertyBinding = require('pandav:/com/three/0.145.0/src/animation/PropertyBinding');\n var _PropertyMixer = require('pandav:/com/three/0.145.0/src/animation/PropertyMixer');\n var _AnimationClip = require('pandav:/com/three/0.145.0/src/animation/AnimationClip');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _controlInterpolantsResultBuffer = new Float32Array(1);\n var AnimationMixer = exports.AnimationMixer = function (_EventDispatcher) {\n (0, _inherits2.default)(AnimationMixer, _EventDispatcher);\n var _super = (0, _createSuper2.default)(AnimationMixer);\n function AnimationMixer(root) {\n var _this;\n (0, _classCallCheck2.default)(this, AnimationMixer);\n _this = _super.call(this);\n _this._root = root;\n _this._initMemoryManager();\n _this._accuIndex = 0;\n _this.time = 0;\n _this.timeScale = 1.0;\n return _this;\n }\n (0, _createClass2.default)(AnimationMixer, [{\n key: \"_bindAction\",\n value: function _bindAction(action, prototypeAction) {\n var root = action._localRoot || this._root,\n tracks = action._clip.tracks,\n nTracks = tracks.length,\n bindings = action._propertyBindings,\n interpolants = action._interpolants,\n rootUuid = root.uuid,\n bindingsByRoot = this._bindingsByRootAndName;\n var bindingsByName = bindingsByRoot[rootUuid];\n if (bindingsByName === undefined) {\n bindingsByName = {};\n bindingsByRoot[rootUuid] = bindingsByName;\n }\n for (var i = 0; i !== nTracks; ++i) {\n var track = tracks[i],\n trackName = track.name;\n var binding = bindingsByName[trackName];\n if (binding !== undefined) {\n ++binding.referenceCount;\n bindings[i] = binding;\n } else {\n binding = bindings[i];\n if (binding !== undefined) {\n if (binding._cacheIndex === null) {\n ++binding.referenceCount;\n this._addInactiveBinding(binding, rootUuid, trackName);\n }\n continue;\n }\n var path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath;\n binding = new _PropertyMixer.PropertyMixer(_PropertyBinding.PropertyBinding.create(root, trackName, path), track.ValueTypeName, track.getValueSize());\n ++binding.referenceCount;\n this._addInactiveBinding(binding, rootUuid, trackName);\n bindings[i] = binding;\n }\n interpolants[i].resultBuffer = binding.buffer;\n }\n } },\n {\n key: \"_activateAction\",\n value: function _activateAction(action) {\n if (!this._isActiveAction(action)) {\n if (action._cacheIndex === null) {\n var rootUuid = (action._localRoot || this._root).uuid,\n clipUuid = action._clip.uuid,\n actionsForClip = this._actionsByClip[clipUuid];\n this._bindAction(action, actionsForClip && actionsForClip.knownActions[0]);\n this._addInactiveAction(action, clipUuid, rootUuid);\n }\n var bindings = action._propertyBindings;\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n if (binding.useCount++ === 0) {\n this._lendBinding(binding);\n binding.saveOriginalState();\n }\n }\n this._lendAction(action);\n }\n } },\n {\n key: \"_deactivateAction\",\n value: function _deactivateAction(action) {\n if (this._isActiveAction(action)) {\n var bindings = action._propertyBindings;\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n if (--binding.useCount === 0) {\n binding.restoreOriginalState();\n this._takeBackBinding(binding);\n }\n }\n this._takeBackAction(action);\n }\n } },\n {\n key: \"_initMemoryManager\",\n value: function _initMemoryManager() {\n this._actions = [];\n this._nActiveActions = 0;\n this._actionsByClip = {};\n this._bindings = [];\n this._nActiveBindings = 0;\n this._bindingsByRootAndName = {};\n this._controlInterpolants = [];\n this._nActiveControlInterpolants = 0;\n var scope = this;\n this.stats = {\n actions: {\n get total() {\n return scope._actions.length;\n },\n get inUse() {\n return scope._nActiveActions;\n } },\n\n bindings: {\n get total() {\n return scope._bindings.length;\n },\n get inUse() {\n return scope._nActiveBindings;\n } },\n\n controlInterpolants: {\n get total() {\n return scope._controlInterpolants.length;\n },\n get inUse() {\n return scope._nActiveControlInterpolants;\n } } };\n\n\n } },\n {\n key: \"_isActiveAction\",\n value: function _isActiveAction(action) {\n var index = action._cacheIndex;\n return index !== null && index < this._nActiveActions;\n } },\n {\n key: \"_addInactiveAction\",\n value: function _addInactiveAction(action, clipUuid, rootUuid) {\n var actions = this._actions,\n actionsByClip = this._actionsByClip;\n var actionsForClip = actionsByClip[clipUuid];\n if (actionsForClip === undefined) {\n actionsForClip = {\n knownActions: [action],\n actionByRoot: {} };\n\n action._byClipCacheIndex = 0;\n actionsByClip[clipUuid] = actionsForClip;\n } else {\n var knownActions = actionsForClip.knownActions;\n action._byClipCacheIndex = knownActions.length;\n knownActions.push(action);\n }\n action._cacheIndex = actions.length;\n actions.push(action);\n actionsForClip.actionByRoot[rootUuid] = action;\n } },\n {\n key: \"_removeInactiveAction\",\n value: function _removeInactiveAction(action) {\n var actions = this._actions,\n lastInactiveAction = actions[actions.length - 1],\n cacheIndex = action._cacheIndex;\n lastInactiveAction._cacheIndex = cacheIndex;\n actions[cacheIndex] = lastInactiveAction;\n actions.pop();\n action._cacheIndex = null;\n var clipUuid = action._clip.uuid,\n actionsByClip = this._actionsByClip,\n actionsForClip = actionsByClip[clipUuid],\n knownActionsForClip = actionsForClip.knownActions,\n lastKnownAction = knownActionsForClip[knownActionsForClip.length - 1],\n byClipCacheIndex = action._byClipCacheIndex;\n lastKnownAction._byClipCacheIndex = byClipCacheIndex;\n knownActionsForClip[byClipCacheIndex] = lastKnownAction;\n knownActionsForClip.pop();\n action._byClipCacheIndex = null;\n var actionByRoot = actionsForClip.actionByRoot,\n rootUuid = (action._localRoot || this._root).uuid;\n delete actionByRoot[rootUuid];\n if (knownActionsForClip.length === 0) {\n delete actionsByClip[clipUuid];\n }\n this._removeInactiveBindingsForAction(action);\n } },\n {\n key: \"_removeInactiveBindingsForAction\",\n value: function _removeInactiveBindingsForAction(action) {\n var bindings = action._propertyBindings;\n for (var i = 0, n = bindings.length; i !== n; ++i) {\n var binding = bindings[i];\n if (--binding.referenceCount === 0) {\n this._removeInactiveBinding(binding);\n }\n }\n } },\n {\n key: \"_lendAction\",\n value: function _lendAction(action) {\n var actions = this._actions,\n prevIndex = action._cacheIndex,\n lastActiveIndex = this._nActiveActions++,\n firstInactiveAction = actions[lastActiveIndex];\n action._cacheIndex = lastActiveIndex;\n actions[lastActiveIndex] = action;\n firstInactiveAction._cacheIndex = prevIndex;\n actions[prevIndex] = firstInactiveAction;\n } },\n {\n key: \"_takeBackAction\",\n value: function _takeBackAction(action) {\n var actions = this._actions,\n prevIndex = action._cacheIndex,\n firstInactiveIndex = --this._nActiveActions,\n lastActiveAction = actions[firstInactiveIndex];\n action._cacheIndex = firstInactiveIndex;\n actions[firstInactiveIndex] = action;\n lastActiveAction._cacheIndex = prevIndex;\n actions[prevIndex] = lastActiveAction;\n } },\n {\n key: \"_addInactiveBinding\",\n value: function _addInactiveBinding(binding, rootUuid, trackName) {\n var bindingsByRoot = this._bindingsByRootAndName,\n bindings = this._bindings;\n var bindingByName = bindingsByRoot[rootUuid];\n if (bindingByName === undefined) {\n bindingByName = {};\n bindingsByRoot[rootUuid] = bindingByName;\n }\n bindingByName[trackName] = binding;\n binding._cacheIndex = bindings.length;\n bindings.push(binding);\n } },\n {\n key: \"_removeInactiveBinding\",\n value: function _removeInactiveBinding(binding) {\n var bindings = this._bindings,\n propBinding = binding.binding,\n rootUuid = propBinding.rootNode.uuid,\n trackName = propBinding.path,\n bindingsByRoot = this._bindingsByRootAndName,\n bindingByName = bindingsByRoot[rootUuid],\n lastInactiveBinding = bindings[bindings.length - 1],\n cacheIndex = binding._cacheIndex;\n lastInactiveBinding._cacheIndex = cacheIndex;\n bindings[cacheIndex] = lastInactiveBinding;\n bindings.pop();\n delete bindingByName[trackName];\n if (Object.keys(bindingByName).length === 0) {\n delete bindingsByRoot[rootUuid];\n }\n } },\n {\n key: \"_lendBinding\",\n value: function _lendBinding(binding) {\n var bindings = this._bindings,\n prevIndex = binding._cacheIndex,\n lastActiveIndex = this._nActiveBindings++,\n firstInactiveBinding = bindings[lastActiveIndex];\n binding._cacheIndex = lastActiveIndex;\n bindings[lastActiveIndex] = binding;\n firstInactiveBinding._cacheIndex = prevIndex;\n bindings[prevIndex] = firstInactiveBinding;\n } },\n {\n key: \"_takeBackBinding\",\n value: function _takeBackBinding(binding) {\n var bindings = this._bindings,\n prevIndex = binding._cacheIndex,\n firstInactiveIndex = --this._nActiveBindings,\n lastActiveBinding = bindings[firstInactiveIndex];\n binding._cacheIndex = firstInactiveIndex;\n bindings[firstInactiveIndex] = binding;\n lastActiveBinding._cacheIndex = prevIndex;\n bindings[prevIndex] = lastActiveBinding;\n } },\n {\n key: \"_lendControlInterpolant\",\n value: function _lendControlInterpolant() {\n var interpolants = this._controlInterpolants,\n lastActiveIndex = this._nActiveControlInterpolants++;\n var interpolant = interpolants[lastActiveIndex];\n if (interpolant === undefined) {\n interpolant = new _LinearInterpolant.LinearInterpolant(new Float32Array(2), new Float32Array(2), 1, _controlInterpolantsResultBuffer);\n interpolant.__cacheIndex = lastActiveIndex;\n interpolants[lastActiveIndex] = interpolant;\n }\n return interpolant;\n } },\n {\n key: \"_takeBackControlInterpolant\",\n value: function _takeBackControlInterpolant(interpolant) {\n var interpolants = this._controlInterpolants,\n prevIndex = interpolant.__cacheIndex,\n firstInactiveIndex = --this._nActiveControlInterpolants,\n lastActiveInterpolant = interpolants[firstInactiveIndex];\n interpolant.__cacheIndex = firstInactiveIndex;\n interpolants[firstInactiveIndex] = interpolant;\n lastActiveInterpolant.__cacheIndex = prevIndex;\n interpolants[prevIndex] = lastActiveInterpolant;\n } },\n {\n key: \"clipAction\",\n value: function clipAction(clip, optionalRoot, blendMode) {\n var root = optionalRoot || this._root,\n rootUuid = root.uuid;\n var clipObject = typeof clip === 'string' ? _AnimationClip.AnimationClip.findByName(root, clip) : clip;\n var clipUuid = clipObject !== null ? clipObject.uuid : clip;\n var actionsForClip = this._actionsByClip[clipUuid];\n var prototypeAction = null;\n if (blendMode === undefined) {\n if (clipObject !== null) {\n blendMode = clipObject.blendMode;\n } else {\n blendMode = _constants.NormalAnimationBlendMode;\n }\n }\n if (actionsForClip !== undefined) {\n var existingAction = actionsForClip.actionByRoot[rootUuid];\n if (existingAction !== undefined && existingAction.blendMode === blendMode) {\n return existingAction;\n }\n prototypeAction = actionsForClip.knownActions[0];\n if (clipObject === null) clipObject = prototypeAction._clip;\n }\n if (clipObject === null) return null;\n var newAction = new _AnimationAction.AnimationAction(this, clipObject, optionalRoot, blendMode);\n this._bindAction(newAction, prototypeAction);\n this._addInactiveAction(newAction, clipUuid, rootUuid);\n return newAction;\n } },\n {\n key: \"existingAction\",\n value: function existingAction(clip, optionalRoot) {\n var root = optionalRoot || this._root,\n rootUuid = root.uuid,\n clipObject = typeof clip === 'string' ? _AnimationClip.AnimationClip.findByName(root, clip) : clip,\n clipUuid = clipObject ? clipObject.uuid : clip,\n actionsForClip = this._actionsByClip[clipUuid];\n if (actionsForClip !== undefined) {\n return actionsForClip.actionByRoot[rootUuid] || null;\n }\n return null;\n } },\n {\n key: \"stopAllAction\",\n value: function stopAllAction() {\n var actions = this._actions,\n nActions = this._nActiveActions;\n for (var i = nActions - 1; i >= 0; --i) {\n actions[i].stop();\n }\n return this;\n } },\n {\n key: \"update\",\n value: function update(deltaTime) {\n deltaTime *= this.timeScale;\n var actions = this._actions,\n nActions = this._nActiveActions,\n time = this.time += deltaTime,\n timeDirection = Math.sign(deltaTime),\n accuIndex = this._accuIndex ^= 1;\n for (var i = 0; i !== nActions; ++i) {\n var action = actions[i];\n action._update(time, deltaTime, timeDirection, accuIndex);\n }\n var bindings = this._bindings,\n nBindings = this._nActiveBindings;\n for (var _i = 0; _i !== nBindings; ++_i) {\n bindings[_i].apply(accuIndex);\n }\n return this;\n } },\n {\n key: \"setTime\",\n value: function setTime(timeInSeconds) {\n this.time = 0;\n for (var i = 0; i < this._actions.length; i++) {\n this._actions[i].time = 0;\n }\n return this.update(timeInSeconds);\n } },\n {\n key: \"getRoot\",\n value: function getRoot() {\n return this._root;\n } },\n {\n key: \"uncacheClip\",\n value: function uncacheClip(clip) {\n var actions = this._actions,\n clipUuid = clip.uuid,\n actionsByClip = this._actionsByClip,\n actionsForClip = actionsByClip[clipUuid];\n if (actionsForClip !== undefined) {\n var actionsToRemove = actionsForClip.knownActions;\n for (var i = 0, n = actionsToRemove.length; i !== n; ++i) {\n var action = actionsToRemove[i];\n this._deactivateAction(action);\n var cacheIndex = action._cacheIndex,\n lastInactiveAction = actions[actions.length - 1];\n action._cacheIndex = null;\n action._byClipCacheIndex = null;\n lastInactiveAction._cacheIndex = cacheIndex;\n actions[cacheIndex] = lastInactiveAction;\n actions.pop();\n this._removeInactiveBindingsForAction(action);\n }\n delete actionsByClip[clipUuid];\n }\n } },\n {\n key: \"uncacheRoot\",\n value: function uncacheRoot(root) {\n var rootUuid = root.uuid,\n actionsByClip = this._actionsByClip;\n for (var clipUuid in actionsByClip) {\n var actionByRoot = actionsByClip[clipUuid].actionByRoot,\n action = actionByRoot[rootUuid];\n if (action !== undefined) {\n this._deactivateAction(action);\n this._removeInactiveAction(action);\n }\n }\n var bindingsByRoot = this._bindingsByRootAndName,\n bindingByName = bindingsByRoot[rootUuid];\n if (bindingByName !== undefined) {\n for (var trackName in bindingByName) {\n var binding = bindingByName[trackName];\n binding.restoreOriginalState();\n this._removeInactiveBinding(binding);\n }\n }\n } },\n {\n key: \"uncacheAction\",\n value: function uncacheAction(clip, optionalRoot) {\n var action = this.existingAction(clip, optionalRoot);\n if (action !== null) {\n this._deactivateAction(action);\n this._removeInactiveAction(action);\n }\n } }]);\n\n return AnimationMixer;\n }(_EventDispatcher2.EventDispatcher);return module.exports;});", "requires": [ "pandav:/src/animation/AnimationAction.js", "pandav:/src/core/EventDispatcher.js", "pandav:/src/math/interpolants/LinearInterpolant.js", "pandav:/src/animation/PropertyBinding.js", "pandav:/src/animation/PropertyMixer.js", "pandav:/src/animation/AnimationClip.js", "pandav:/src/constants.js" ], "buildLevel": 44, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/AnimationMixer.js", "fileName": "/src/animation/AnimationMixer.js" }, "pandav:/src/animation/KeyframeTrack.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/interpolants/CubicInterpolant\", \"pandav:/com/three/0.145.0/src/math/interpolants/LinearInterpolant\", \"pandav:/com/three/0.145.0/src/math/interpolants/DiscreteInterpolant\", \"pandav:/com/three/0.145.0/src/animation/AnimationUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.KeyframeTrack = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _CubicInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/CubicInterpolant');\n var _LinearInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/LinearInterpolant');\n var _DiscreteInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/DiscreteInterpolant');\n var AnimationUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/animation/AnimationUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var KeyframeTrack = exports.KeyframeTrack = function () {\n function KeyframeTrack(name, times, values, interpolation) {\n (0, _classCallCheck2.default)(this, KeyframeTrack);\n if (name === undefined) throw new Error('THREE.KeyframeTrack: track name is undefined');\n if (times === undefined || times.length === 0) throw new Error('THREE.KeyframeTrack: no keyframes in track named ' + name);\n this.name = name;\n this.times = AnimationUtils.convertArray(times, this.TimeBufferType);\n this.values = AnimationUtils.convertArray(values, this.ValueBufferType);\n this.setInterpolation(interpolation || this.DefaultInterpolation);\n }\n (0, _createClass2.default)(KeyframeTrack, [{\n key: \"InterpolantFactoryMethodDiscrete\",\n value: function InterpolantFactoryMethodDiscrete(result) {\n return new _DiscreteInterpolant.DiscreteInterpolant(this.times, this.values, this.getValueSize(), result);\n } },\n {\n key: \"InterpolantFactoryMethodLinear\",\n value: function InterpolantFactoryMethodLinear(result) {\n return new _LinearInterpolant.LinearInterpolant(this.times, this.values, this.getValueSize(), result);\n } },\n {\n key: \"InterpolantFactoryMethodSmooth\",\n value: function InterpolantFactoryMethodSmooth(result) {\n return new _CubicInterpolant.CubicInterpolant(this.times, this.values, this.getValueSize(), result);\n } },\n {\n key: \"setInterpolation\",\n value: function setInterpolation(interpolation) {\n var factoryMethod;\n switch (interpolation) {\n case _constants.InterpolateDiscrete:\n factoryMethod = this.InterpolantFactoryMethodDiscrete;\n break;\n case _constants.InterpolateLinear:\n factoryMethod = this.InterpolantFactoryMethodLinear;\n break;\n case _constants.InterpolateSmooth:\n factoryMethod = this.InterpolantFactoryMethodSmooth;\n break;}\n\n if (factoryMethod === undefined) {\n var message = 'unsupported interpolation for ' + this.ValueTypeName + ' keyframe track named ' + this.name;\n if (this.createInterpolant === undefined) {\n if (interpolation !== this.DefaultInterpolation) {\n this.setInterpolation(this.DefaultInterpolation);\n } else {\n throw new Error(message);\n }\n }\n console.warn('THREE.KeyframeTrack:', message);\n return this;\n }\n this.createInterpolant = factoryMethod;\n return this;\n } },\n {\n key: \"getInterpolation\",\n value: function getInterpolation() {\n switch (this.createInterpolant) {\n case this.InterpolantFactoryMethodDiscrete:\n return _constants.InterpolateDiscrete;\n case this.InterpolantFactoryMethodLinear:\n return _constants.InterpolateLinear;\n case this.InterpolantFactoryMethodSmooth:\n return _constants.InterpolateSmooth;}\n\n } },\n {\n key: \"getValueSize\",\n value: function getValueSize() {\n return this.values.length / this.times.length;\n } },\n {\n key: \"shift\",\n value: function shift(timeOffset) {\n if (timeOffset !== 0.0) {\n var times = this.times;\n for (var i = 0, n = times.length; i !== n; ++i) {\n times[i] += timeOffset;\n }\n }\n return this;\n } },\n {\n key: \"scale\",\n value: function scale(timeScale) {\n if (timeScale !== 1.0) {\n var times = this.times;\n for (var i = 0, n = times.length; i !== n; ++i) {\n times[i] *= timeScale;\n }\n }\n return this;\n } },\n {\n key: \"trim\",\n value: function trim(startTime, endTime) {\n var times = this.times,\n nKeys = times.length;\n var from = 0,\n to = nKeys - 1;\n while (from !== nKeys && times[from] < startTime) {\n ++from;\n }\n while (to !== -1 && times[to] > endTime) {\n --to;\n }\n ++to;\n if (from !== 0 || to !== nKeys) {\n if (from >= to) {\n to = Math.max(to, 1);\n from = to - 1;\n }\n var stride = this.getValueSize();\n this.times = AnimationUtils.arraySlice(times, from, to);\n this.values = AnimationUtils.arraySlice(this.values, from * stride, to * stride);\n }\n return this;\n } },\n {\n key: \"validate\",\n value: function validate() {\n var valid = true;\n var valueSize = this.getValueSize();\n if (valueSize - Math.floor(valueSize) !== 0) {\n console.error('THREE.KeyframeTrack: Invalid value size in track.', this);\n valid = false;\n }\n var times = this.times,\n values = this.values,\n nKeys = times.length;\n if (nKeys === 0) {\n console.error('THREE.KeyframeTrack: Track is empty.', this);\n valid = false;\n }\n var prevTime = null;\n for (var i = 0; i !== nKeys; i++) {\n var currTime = times[i];\n if (typeof currTime === 'number' && isNaN(currTime)) {\n console.error('THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime);\n valid = false;\n break;\n }\n if (prevTime !== null && prevTime > currTime) {\n console.error('THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime);\n valid = false;\n break;\n }\n prevTime = currTime;\n }\n if (values !== undefined) {\n if (AnimationUtils.isTypedArray(values)) {\n for (var _i = 0, n = values.length; _i !== n; ++_i) {\n var value = values[_i];\n if (isNaN(value)) {\n console.error('THREE.KeyframeTrack: Value is not a valid number.', this, _i, value);\n valid = false;\n break;\n }\n }\n }\n }\n return valid;\n } },\n {\n key: \"optimize\",\n value: function optimize() {\n var times = AnimationUtils.arraySlice(this.times),\n values = AnimationUtils.arraySlice(this.values),\n stride = this.getValueSize(),\n smoothInterpolation = this.getInterpolation() === _constants.InterpolateSmooth,\n lastIndex = times.length - 1;\n var writeIndex = 1;\n for (var i = 1; i < lastIndex; ++i) {\n var keep = false;\n var time = times[i];\n var timeNext = times[i + 1];\n if (time !== timeNext && (i !== 1 || time !== times[0])) {\n if (!smoothInterpolation) {\n var offset = i * stride,\n offsetP = offset - stride,\n offsetN = offset + stride;\n for (var j = 0; j !== stride; ++j) {\n var value = values[offset + j];\n if (value !== values[offsetP + j] || value !== values[offsetN + j]) {\n keep = true;\n break;\n }\n }\n } else {\n keep = true;\n }\n }\n if (keep) {\n if (i !== writeIndex) {\n times[writeIndex] = times[i];\n var readOffset = i * stride,\n writeOffset = writeIndex * stride;\n for (var _j = 0; _j !== stride; ++_j) {\n values[writeOffset + _j] = values[readOffset + _j];\n }\n }\n ++writeIndex;\n }\n }\n if (lastIndex > 0) {\n times[writeIndex] = times[lastIndex];\n for (var _readOffset = lastIndex * stride, _writeOffset = writeIndex * stride, _j2 = 0; _j2 !== stride; ++_j2) {\n values[_writeOffset + _j2] = values[_readOffset + _j2];\n }\n ++writeIndex;\n }\n if (writeIndex !== times.length) {\n this.times = AnimationUtils.arraySlice(times, 0, writeIndex);\n this.values = AnimationUtils.arraySlice(values, 0, writeIndex * stride);\n } else {\n this.times = times;\n this.values = values;\n }\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n var times = AnimationUtils.arraySlice(this.times, 0);\n var values = AnimationUtils.arraySlice(this.values, 0);\n var TypedKeyframeTrack = this.constructor;\n var track = new TypedKeyframeTrack(this.name, times, values);\n track.createInterpolant = this.createInterpolant;\n return track;\n } }],\n [{\n key: \"toJSON\",\n value: function toJSON(track) {\n var trackType = track.constructor;\n var json;\n if (trackType.toJSON !== this.toJSON) {\n json = trackType.toJSON(track);\n } else {\n json = {\n 'name': track.name,\n 'times': AnimationUtils.convertArray(track.times, Array),\n 'values': AnimationUtils.convertArray(track.values, Array) };\n\n var interpolation = track.getInterpolation();\n if (interpolation !== track.DefaultInterpolation) {\n json.interpolation = interpolation;\n }\n }\n json.type = track.ValueTypeName;\n return json;\n } }]);\n\n return KeyframeTrack;\n }();\n KeyframeTrack.prototype.TimeBufferType = Float32Array;\n KeyframeTrack.prototype.ValueBufferType = Float32Array;\n KeyframeTrack.prototype.DefaultInterpolation = _constants.InterpolateLinear;return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/math/interpolants/CubicInterpolant.js", "pandav:/src/math/interpolants/LinearInterpolant.js", "pandav:/src/math/interpolants/DiscreteInterpolant.js", "pandav:/src/animation/AnimationUtils.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/KeyframeTrack.js", "fileName": "/src/animation/KeyframeTrack.js" }, "pandav:/src/animation/AnimationObjectGroup.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/AnimationObjectGroup\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/animation/PropertyBinding\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AnimationObjectGroup = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _PropertyBinding = require('pandav:/com/three/0.145.0/src/animation/PropertyBinding');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var AnimationObjectGroup = exports.AnimationObjectGroup = function () {\n function AnimationObjectGroup() {\n (0, _classCallCheck2.default)(this, AnimationObjectGroup);\n this.isAnimationObjectGroup = true;\n this.uuid = MathUtils.generateUUID();\n this._objects = Array.prototype.slice.call(arguments);\n this.nCachedObjects_ = 0;\n var indices = {};\n this._indicesByUUID = indices;\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n indices[arguments[i].uuid] = i;\n }\n this._paths = [];\n this._parsedPaths = [];\n this._bindings = [];\n this._bindingsIndicesByPath = {};\n var scope = this;\n this.stats = {\n objects: {\n get total() {\n return scope._objects.length;\n },\n get inUse() {\n return this.total - scope.nCachedObjects_;\n } },\n\n get bindingsPerObject() {\n return scope._bindings.length;\n } };\n\n }\n (0, _createClass2.default)(AnimationObjectGroup, [{\n key: \"add\",\n value: function add() {\n var objects = this._objects,\n indicesByUUID = this._indicesByUUID,\n paths = this._paths,\n parsedPaths = this._parsedPaths,\n bindings = this._bindings,\n nBindings = bindings.length;\n var knownObject = undefined,\n nObjects = objects.length,\n nCachedObjects = this.nCachedObjects_;\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid;\n var index = indicesByUUID[uuid];\n if (index === undefined) {\n index = nObjects++;\n indicesByUUID[uuid] = index;\n objects.push(object);\n for (var j = 0, m = nBindings; j !== m; ++j) {\n bindings[j].push(new _PropertyBinding.PropertyBinding(object, paths[j], parsedPaths[j]));\n }\n } else if (index < nCachedObjects) {\n knownObject = objects[index];\n var firstActiveIndex = --nCachedObjects,\n lastCachedObject = objects[firstActiveIndex];\n indicesByUUID[lastCachedObject.uuid] = index;\n objects[index] = lastCachedObject;\n indicesByUUID[uuid] = firstActiveIndex;\n objects[firstActiveIndex] = object;\n for (var _j = 0, _m = nBindings; _j !== _m; ++_j) {\n var bindingsForPath = bindings[_j],\n lastCached = bindingsForPath[firstActiveIndex];\n var binding = bindingsForPath[index];\n bindingsForPath[index] = lastCached;\n if (binding === undefined) {\n binding = new _PropertyBinding.PropertyBinding(object, paths[_j], parsedPaths[_j]);\n }\n bindingsForPath[firstActiveIndex] = binding;\n }\n } else if (objects[index] !== knownObject) {\n console.error('THREE.AnimationObjectGroup: Different objects with the same UUID ' + 'detected. Clean the caches or recreate your infrastructure when reloading scenes.');\n }\n }\n this.nCachedObjects_ = nCachedObjects;\n } },\n {\n key: \"remove\",\n value: function remove() {\n var objects = this._objects,\n indicesByUUID = this._indicesByUUID,\n bindings = this._bindings,\n nBindings = bindings.length;\n var nCachedObjects = this.nCachedObjects_;\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid,\n index = indicesByUUID[uuid];\n if (index !== undefined && index >= nCachedObjects) {\n var lastCachedIndex = nCachedObjects++,\n firstActiveObject = objects[lastCachedIndex];\n indicesByUUID[firstActiveObject.uuid] = index;\n objects[index] = firstActiveObject;\n indicesByUUID[uuid] = lastCachedIndex;\n objects[lastCachedIndex] = object;\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j],\n firstActive = bindingsForPath[lastCachedIndex],\n binding = bindingsForPath[index];\n bindingsForPath[index] = firstActive;\n bindingsForPath[lastCachedIndex] = binding;\n }\n }\n }\n this.nCachedObjects_ = nCachedObjects;\n } },\n {\n key: \"uncache\",\n value: function uncache() {\n var objects = this._objects,\n indicesByUUID = this._indicesByUUID,\n bindings = this._bindings,\n nBindings = bindings.length;\n var nCachedObjects = this.nCachedObjects_,\n nObjects = objects.length;\n for (var i = 0, n = arguments.length; i !== n; ++i) {\n var object = arguments[i],\n uuid = object.uuid,\n index = indicesByUUID[uuid];\n if (index !== undefined) {\n delete indicesByUUID[uuid];\n if (index < nCachedObjects) {\n var firstActiveIndex = --nCachedObjects,\n lastCachedObject = objects[firstActiveIndex],\n lastIndex = --nObjects,\n lastObject = objects[lastIndex];\n indicesByUUID[lastCachedObject.uuid] = index;\n objects[index] = lastCachedObject;\n indicesByUUID[lastObject.uuid] = firstActiveIndex;\n objects[firstActiveIndex] = lastObject;\n objects.pop();\n for (var j = 0, m = nBindings; j !== m; ++j) {\n var bindingsForPath = bindings[j],\n lastCached = bindingsForPath[firstActiveIndex],\n last = bindingsForPath[lastIndex];\n bindingsForPath[index] = lastCached;\n bindingsForPath[firstActiveIndex] = last;\n bindingsForPath.pop();\n }\n } else {\n var _lastIndex = --nObjects,\n _lastObject = objects[_lastIndex];\n if (_lastIndex > 0) {\n indicesByUUID[_lastObject.uuid] = index;\n }\n objects[index] = _lastObject;\n objects.pop();\n for (var _j2 = 0, _m2 = nBindings; _j2 !== _m2; ++_j2) {\n var _bindingsForPath = bindings[_j2];\n _bindingsForPath[index] = _bindingsForPath[_lastIndex];\n _bindingsForPath.pop();\n }\n }\n }\n }\n this.nCachedObjects_ = nCachedObjects;\n } },\n {\n key: \"subscribe_\",\n value: function subscribe_(path, parsedPath) {\n var indicesByPath = this._bindingsIndicesByPath;\n var index = indicesByPath[path];\n var bindings = this._bindings;\n if (index !== undefined) return bindings[index];\n var paths = this._paths,\n parsedPaths = this._parsedPaths,\n objects = this._objects,\n nObjects = objects.length,\n nCachedObjects = this.nCachedObjects_,\n bindingsForPath = new Array(nObjects);\n index = bindings.length;\n indicesByPath[path] = index;\n paths.push(path);\n parsedPaths.push(parsedPath);\n bindings.push(bindingsForPath);\n for (var i = nCachedObjects, n = objects.length; i !== n; ++i) {\n var object = objects[i];\n bindingsForPath[i] = new _PropertyBinding.PropertyBinding(object, path, parsedPath);\n }\n return bindingsForPath;\n } },\n {\n key: \"unsubscribe_\",\n value: function unsubscribe_(path) {\n var indicesByPath = this._bindingsIndicesByPath,\n index = indicesByPath[path];\n if (index !== undefined) {\n var paths = this._paths,\n parsedPaths = this._parsedPaths,\n bindings = this._bindings,\n lastBindingsIndex = bindings.length - 1,\n lastBindings = bindings[lastBindingsIndex],\n lastBindingsPath = path[lastBindingsIndex];\n indicesByPath[lastBindingsPath] = index;\n bindings[index] = lastBindings;\n bindings.pop();\n parsedPaths[index] = parsedPaths[lastBindingsIndex];\n parsedPaths.pop();\n paths[index] = paths[lastBindingsIndex];\n paths.pop();\n }\n } }]);\n\n return AnimationObjectGroup;\n }();return module.exports;});", "requires": [ "pandav:/src/animation/PropertyBinding.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 43, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/AnimationObjectGroup.js", "fileName": "/src/animation/AnimationObjectGroup.js" }, "pandav:/src/animation/PropertyMixer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/PropertyMixer\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Quaternion\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PropertyMixer = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var PropertyMixer = exports.PropertyMixer = function () {\n function PropertyMixer(binding, typeName, valueSize) {\n (0, _classCallCheck2.default)(this, PropertyMixer);\n this.binding = binding;\n this.valueSize = valueSize;\n var mixFunction, mixFunctionAdditive, setIdentity;\n switch (typeName) {\n case 'quaternion':\n mixFunction = this._slerp;\n mixFunctionAdditive = this._slerpAdditive;\n setIdentity = this._setAdditiveIdentityQuaternion;\n this.buffer = new Float64Array(valueSize * 6);\n this._workIndex = 5;\n break;\n case 'string':\n case 'bool':\n mixFunction = this._select;\n mixFunctionAdditive = this._select;\n setIdentity = this._setAdditiveIdentityOther;\n this.buffer = new Array(valueSize * 5);\n break;\n default:\n mixFunction = this._lerp;\n mixFunctionAdditive = this._lerpAdditive;\n setIdentity = this._setAdditiveIdentityNumeric;\n this.buffer = new Float64Array(valueSize * 5);}\n\n this._mixBufferRegion = mixFunction;\n this._mixBufferRegionAdditive = mixFunctionAdditive;\n this._setIdentity = setIdentity;\n this._origIndex = 3;\n this._addIndex = 4;\n this.cumulativeWeight = 0;\n this.cumulativeWeightAdditive = 0;\n this.useCount = 0;\n this.referenceCount = 0;\n }\n (0, _createClass2.default)(PropertyMixer, [{\n key: \"accumulate\",\n value: function accumulate(accuIndex, weight) {\n var buffer = this.buffer,\n stride = this.valueSize,\n offset = accuIndex * stride + stride;\n var currentWeight = this.cumulativeWeight;\n if (currentWeight === 0) {\n for (var i = 0; i !== stride; ++i) {\n buffer[offset + i] = buffer[i];\n }\n currentWeight = weight;\n } else {\n currentWeight += weight;\n var mix = weight / currentWeight;\n this._mixBufferRegion(buffer, offset, 0, mix, stride);\n }\n this.cumulativeWeight = currentWeight;\n } },\n {\n key: \"accumulateAdditive\",\n value: function accumulateAdditive(weight) {\n var buffer = this.buffer,\n stride = this.valueSize,\n offset = stride * this._addIndex;\n if (this.cumulativeWeightAdditive === 0) {\n this._setIdentity();\n }\n this._mixBufferRegionAdditive(buffer, offset, 0, weight, stride);\n this.cumulativeWeightAdditive += weight;\n } },\n {\n key: \"apply\",\n value: function apply(accuIndex) {\n var stride = this.valueSize,\n buffer = this.buffer,\n offset = accuIndex * stride + stride,\n weight = this.cumulativeWeight,\n weightAdditive = this.cumulativeWeightAdditive,\n binding = this.binding;\n this.cumulativeWeight = 0;\n this.cumulativeWeightAdditive = 0;\n if (weight < 1) {\n var originalValueOffset = stride * this._origIndex;\n this._mixBufferRegion(buffer, offset, originalValueOffset, 1 - weight, stride);\n }\n if (weightAdditive > 0) {\n this._mixBufferRegionAdditive(buffer, offset, this._addIndex * stride, 1, stride);\n }\n for (var i = stride, e = stride + stride; i !== e; ++i) {\n if (buffer[i] !== buffer[i + stride]) {\n binding.setValue(buffer, offset);\n break;\n }\n }\n } },\n {\n key: \"saveOriginalState\",\n value: function saveOriginalState() {\n var binding = this.binding;\n var buffer = this.buffer,\n stride = this.valueSize,\n originalValueOffset = stride * this._origIndex;\n binding.getValue(buffer, originalValueOffset);\n for (var i = stride, e = originalValueOffset; i !== e; ++i) {\n buffer[i] = buffer[originalValueOffset + i % stride];\n }\n this._setIdentity();\n this.cumulativeWeight = 0;\n this.cumulativeWeightAdditive = 0;\n } },\n {\n key: \"restoreOriginalState\",\n value: function restoreOriginalState() {\n var originalValueOffset = this.valueSize * 3;\n this.binding.setValue(this.buffer, originalValueOffset);\n } },\n {\n key: \"_setAdditiveIdentityNumeric\",\n value: function _setAdditiveIdentityNumeric() {\n var startIndex = this._addIndex * this.valueSize;\n var endIndex = startIndex + this.valueSize;\n for (var i = startIndex; i < endIndex; i++) {\n this.buffer[i] = 0;\n }\n } },\n {\n key: \"_setAdditiveIdentityQuaternion\",\n value: function _setAdditiveIdentityQuaternion() {\n this._setAdditiveIdentityNumeric();\n this.buffer[this._addIndex * this.valueSize + 3] = 1;\n } },\n {\n key: \"_setAdditiveIdentityOther\",\n value: function _setAdditiveIdentityOther() {\n var startIndex = this._origIndex * this.valueSize;\n var targetIndex = this._addIndex * this.valueSize;\n for (var i = 0; i < this.valueSize; i++) {\n this.buffer[targetIndex + i] = this.buffer[startIndex + i];\n }\n } },\n {\n key: \"_select\",\n value: function _select(buffer, dstOffset, srcOffset, t, stride) {\n if (t >= 0.5) {\n for (var i = 0; i !== stride; ++i) {\n buffer[dstOffset + i] = buffer[srcOffset + i];\n }\n }\n } },\n {\n key: \"_slerp\",\n value: function _slerp(buffer, dstOffset, srcOffset, t) {\n _Quaternion.Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t);\n } },\n {\n key: \"_slerpAdditive\",\n value: function _slerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n var workOffset = this._workIndex * stride;\n _Quaternion.Quaternion.multiplyQuaternionsFlat(buffer, workOffset, buffer, dstOffset, buffer, srcOffset);\n _Quaternion.Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t);\n } },\n {\n key: \"_lerp\",\n value: function _lerp(buffer, dstOffset, srcOffset, t, stride) {\n var s = 1 - t;\n for (var i = 0; i !== stride; ++i) {\n var j = dstOffset + i;\n buffer[j] = buffer[j] * s + buffer[srcOffset + i] * t;\n }\n } },\n {\n key: \"_lerpAdditive\",\n value: function _lerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n for (var i = 0; i !== stride; ++i) {\n var j = dstOffset + i;\n buffer[j] = buffer[j] + buffer[srcOffset + i] * t;\n }\n } }]);\n\n return PropertyMixer;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Quaternion.js" ], "buildLevel": 41, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/PropertyMixer.js", "fileName": "/src/animation/PropertyMixer.js" }, "pandav:/src/animation/tracks/NumberKeyframeTrack.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/tracks/NumberKeyframeTrack\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.NumberKeyframeTrack = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _KeyframeTrack2 = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var NumberKeyframeTrack = exports.NumberKeyframeTrack = function (_KeyframeTrack) {\n (0, _inherits2.default)(NumberKeyframeTrack, _KeyframeTrack);\n var _super = (0, _createSuper2.default)(NumberKeyframeTrack);\n function NumberKeyframeTrack() {\n (0, _classCallCheck2.default)(this, NumberKeyframeTrack);\n return _super.apply(this, arguments);\n }\n return (0, _createClass2.default)(NumberKeyframeTrack);\n }(_KeyframeTrack2.KeyframeTrack);\n NumberKeyframeTrack.prototype.ValueTypeName = 'number';return module.exports;});", "requires": [ "pandav:/src/animation/KeyframeTrack.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/animation/tracks", "outputPath": "/com/three/0.145.0/src/animation/tracks/NumberKeyframeTrack.js", "fileName": "/src/animation/tracks/NumberKeyframeTrack.js" }, "pandav:/src/animation/tracks/BooleanKeyframeTrack.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/tracks/BooleanKeyframeTrack\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BooleanKeyframeTrack = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _KeyframeTrack2 = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var BooleanKeyframeTrack = exports.BooleanKeyframeTrack = function (_KeyframeTrack) {\n (0, _inherits2.default)(BooleanKeyframeTrack, _KeyframeTrack);\n var _super = (0, _createSuper2.default)(BooleanKeyframeTrack);\n function BooleanKeyframeTrack() {\n (0, _classCallCheck2.default)(this, BooleanKeyframeTrack);\n return _super.apply(this, arguments);\n }\n return (0, _createClass2.default)(BooleanKeyframeTrack);\n }(_KeyframeTrack2.KeyframeTrack);\n BooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\n BooleanKeyframeTrack.prototype.ValueBufferType = Array;\n BooleanKeyframeTrack.prototype.DefaultInterpolation = _constants.InterpolateDiscrete;\n BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\n BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/animation/KeyframeTrack.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/animation/tracks", "outputPath": "/com/three/0.145.0/src/animation/tracks/BooleanKeyframeTrack.js", "fileName": "/src/animation/tracks/BooleanKeyframeTrack.js" }, "pandav:/src/animation/tracks/ColorKeyframeTrack.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/tracks/ColorKeyframeTrack\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ColorKeyframeTrack = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _KeyframeTrack2 = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var ColorKeyframeTrack = exports.ColorKeyframeTrack = function (_KeyframeTrack) {\n (0, _inherits2.default)(ColorKeyframeTrack, _KeyframeTrack);\n var _super = (0, _createSuper2.default)(ColorKeyframeTrack);\n function ColorKeyframeTrack() {\n (0, _classCallCheck2.default)(this, ColorKeyframeTrack);\n return _super.apply(this, arguments);\n }\n return (0, _createClass2.default)(ColorKeyframeTrack);\n }(_KeyframeTrack2.KeyframeTrack);\n ColorKeyframeTrack.prototype.ValueTypeName = 'color';return module.exports;});", "requires": [ "pandav:/src/animation/KeyframeTrack.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/animation/tracks", "outputPath": "/com/three/0.145.0/src/animation/tracks/ColorKeyframeTrack.js", "fileName": "/src/animation/tracks/ColorKeyframeTrack.js" }, "pandav:/src/animation/tracks/QuaternionKeyframeTrack.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/tracks/QuaternionKeyframeTrack\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\", \"pandav:/com/three/0.145.0/src/math/interpolants/QuaternionLinearInterpolant\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.QuaternionKeyframeTrack = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _KeyframeTrack2 = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var _QuaternionLinearInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/QuaternionLinearInterpolant');\n var QuaternionKeyframeTrack = exports.QuaternionKeyframeTrack = function (_KeyframeTrack) {\n (0, _inherits2.default)(QuaternionKeyframeTrack, _KeyframeTrack);\n var _super = (0, _createSuper2.default)(QuaternionKeyframeTrack);\n function QuaternionKeyframeTrack() {\n (0, _classCallCheck2.default)(this, QuaternionKeyframeTrack);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(QuaternionKeyframeTrack, [{\n key: \"InterpolantFactoryMethodLinear\",\n value: function InterpolantFactoryMethodLinear(result) {\n return new _QuaternionLinearInterpolant.QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result);\n } }]);\n\n return QuaternionKeyframeTrack;\n }(_KeyframeTrack2.KeyframeTrack);\n QuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n QuaternionKeyframeTrack.prototype.DefaultInterpolation = _constants.InterpolateLinear;\n QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/animation/KeyframeTrack.js", "pandav:/src/math/interpolants/QuaternionLinearInterpolant.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/animation/tracks", "outputPath": "/com/three/0.145.0/src/animation/tracks/QuaternionKeyframeTrack.js", "fileName": "/src/animation/tracks/QuaternionKeyframeTrack.js" }, "pandav:/src/animation/tracks/VectorKeyframeTrack.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/tracks/VectorKeyframeTrack\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.VectorKeyframeTrack = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _KeyframeTrack2 = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var VectorKeyframeTrack = exports.VectorKeyframeTrack = function (_KeyframeTrack) {\n (0, _inherits2.default)(VectorKeyframeTrack, _KeyframeTrack);\n var _super = (0, _createSuper2.default)(VectorKeyframeTrack);\n function VectorKeyframeTrack() {\n (0, _classCallCheck2.default)(this, VectorKeyframeTrack);\n return _super.apply(this, arguments);\n }\n return (0, _createClass2.default)(VectorKeyframeTrack);\n }(_KeyframeTrack2.KeyframeTrack);\n VectorKeyframeTrack.prototype.ValueTypeName = 'vector';return module.exports;});", "requires": [ "pandav:/src/animation/KeyframeTrack.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/animation/tracks", "outputPath": "/com/three/0.145.0/src/animation/tracks/VectorKeyframeTrack.js", "fileName": "/src/animation/tracks/VectorKeyframeTrack.js" }, "pandav:/src/animation/AnimationUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/AnimationUtils\", [\"pandav:/com/three/0.145.0/src/math/Quaternion\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.arraySlice = arraySlice;\n exports.convertArray = convertArray;\n exports.flattenJSON = flattenJSON;\n exports.getKeyframeOrder = getKeyframeOrder;\n exports.isTypedArray = isTypedArray;\n exports.makeClipAdditive = makeClipAdditive;\n exports.sortedArray = sortedArray;\n exports.subclip = subclip;\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n function arraySlice(array, from, to) {\n if (isTypedArray(array)) {\n return new array.constructor(array.subarray(from, to !== undefined ? to : array.length));\n }\n return array.slice(from, to);\n }\n function convertArray(array, type, forceClone) {\n if (!array || !forceClone && array.constructor === type) return array;\n if (typeof type.BYTES_PER_ELEMENT === 'number') {\n return new type(array);\n }\n return Array.prototype.slice.call(array);\n }\n function isTypedArray(object) {\n return ArrayBuffer.isView(object) && !(object instanceof DataView);\n }\n function getKeyframeOrder(times) {\n function compareTime(i, j) {\n return times[i] - times[j];\n }\n var n = times.length;\n var result = new Array(n);\n for (var i = 0; i !== n; ++i) result[i] = i;\n result.sort(compareTime);\n return result;\n }\n function sortedArray(values, stride, order) {\n var nValues = values.length;\n var result = new values.constructor(nValues);\n for (var i = 0, dstOffset = 0; dstOffset !== nValues; ++i) {\n var srcOffset = order[i] * stride;\n for (var j = 0; j !== stride; ++j) {\n result[dstOffset++] = values[srcOffset + j];\n }\n }\n return result;\n }\n function flattenJSON(jsonKeys, times, values, valuePropertyName) {\n var i = 1,\n key = jsonKeys[0];\n while (key !== undefined && key[valuePropertyName] === undefined) {\n key = jsonKeys[i++];\n }\n if (key === undefined) return;\n var value = key[valuePropertyName];\n if (value === undefined) return;\n if (Array.isArray(value)) {\n do {\n value = key[valuePropertyName];\n if (value !== undefined) {\n times.push(key.time);\n values.push.apply(values, value);\n }\n key = jsonKeys[i++];\n } while (key !== undefined);\n } else if (value.toArray !== undefined) {\n do {\n value = key[valuePropertyName];\n if (value !== undefined) {\n times.push(key.time);\n value.toArray(values, values.length);\n }\n key = jsonKeys[i++];\n } while (key !== undefined);\n } else {\n do {\n value = key[valuePropertyName];\n if (value !== undefined) {\n times.push(key.time);\n values.push(value);\n }\n key = jsonKeys[i++];\n } while (key !== undefined);\n }\n }\n function subclip(sourceClip, name, startFrame, endFrame) {\n var fps = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 30;\n var clip = sourceClip.clone();\n clip.name = name;\n var tracks = [];\n for (var i = 0; i < clip.tracks.length; ++i) {\n var track = clip.tracks[i];\n var valueSize = track.getValueSize();\n var times = [];\n var values = [];\n for (var j = 0; j < track.times.length; ++j) {\n var frame = track.times[j] * fps;\n if (frame < startFrame || frame >= endFrame) continue;\n times.push(track.times[j]);\n for (var k = 0; k < valueSize; ++k) {\n values.push(track.values[j * valueSize + k]);\n }\n }\n if (times.length === 0) continue;\n track.times = convertArray(times, track.times.constructor);\n track.values = convertArray(values, track.values.constructor);\n tracks.push(track);\n }\n clip.tracks = tracks;\n var minStartTime = Infinity;\n for (var _i = 0; _i < clip.tracks.length; ++_i) {\n if (minStartTime > clip.tracks[_i].times[0]) {\n minStartTime = clip.tracks[_i].times[0];\n }\n }\n for (var _i2 = 0; _i2 < clip.tracks.length; ++_i2) {\n clip.tracks[_i2].shift(-1 * minStartTime);\n }\n clip.resetDuration();\n return clip;\n }\n function makeClipAdditive(targetClip) {\n var referenceFrame = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var referenceClip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : targetClip;\n var fps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 30;\n if (fps <= 0) fps = 30;\n var numTracks = referenceClip.tracks.length;\n var referenceTime = referenceFrame / fps;\n var _loop = function _loop() {\n var referenceTrack = referenceClip.tracks[i];\n var referenceTrackType = referenceTrack.ValueTypeName;\n if (referenceTrackType === 'bool' || referenceTrackType === 'string') return 0;\n var targetTrack = targetClip.tracks.find(function (track) {\n return track.name === referenceTrack.name && track.ValueTypeName === referenceTrackType;\n });\n if (targetTrack === undefined) return 0;\n var referenceOffset = 0;\n var referenceValueSize = referenceTrack.getValueSize();\n if (referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n referenceOffset = referenceValueSize / 3;\n }\n var targetOffset = 0;\n var targetValueSize = targetTrack.getValueSize();\n if (targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n targetOffset = targetValueSize / 3;\n }\n var lastIndex = referenceTrack.times.length - 1;\n var referenceValue;\n if (referenceTime <= referenceTrack.times[0]) {\n var startIndex = referenceOffset;\n var endIndex = referenceValueSize - referenceOffset;\n referenceValue = arraySlice(referenceTrack.values, startIndex, endIndex);\n } else if (referenceTime >= referenceTrack.times[lastIndex]) {\n var _startIndex = lastIndex * referenceValueSize + referenceOffset;\n var _endIndex = _startIndex + referenceValueSize - referenceOffset;\n referenceValue = arraySlice(referenceTrack.values, _startIndex, _endIndex);\n } else {\n var interpolant = referenceTrack.createInterpolant();\n var _startIndex2 = referenceOffset;\n var _endIndex2 = referenceValueSize - referenceOffset;\n interpolant.evaluate(referenceTime);\n referenceValue = arraySlice(interpolant.resultBuffer, _startIndex2, _endIndex2);\n }\n if (referenceTrackType === 'quaternion') {\n var referenceQuat = new _Quaternion.Quaternion().fromArray(referenceValue).normalize().conjugate();\n referenceQuat.toArray(referenceValue);\n }\n var numTimes = targetTrack.times.length;\n for (var j = 0; j < numTimes; ++j) {\n var valueStart = j * targetValueSize + targetOffset;\n if (referenceTrackType === 'quaternion') {\n _Quaternion.Quaternion.multiplyQuaternionsFlat(targetTrack.values, valueStart, referenceValue, 0, targetTrack.values, valueStart);\n } else {\n var valueEnd = targetValueSize - targetOffset * 2;\n for (var k = 0; k < valueEnd; ++k) {\n targetTrack.values[valueStart + k] -= referenceValue[k];\n }\n }\n }\n },\n _ret;\n for (var i = 0; i < numTracks; ++i) {\n _ret = _loop();\n if (_ret === 0) continue;\n }\n targetClip.blendMode = _constants.AdditiveAnimationBlendMode;\n return targetClip;\n }return module.exports;});", "requires": [ "pandav:/src/math/Quaternion.js", "pandav:/src/constants.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/AnimationUtils.js", "fileName": "/src/animation/AnimationUtils.js" }, "pandav:/src/animation/tracks/StringKeyframeTrack.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/tracks/StringKeyframeTrack\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.StringKeyframeTrack = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _KeyframeTrack2 = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var StringKeyframeTrack = exports.StringKeyframeTrack = function (_KeyframeTrack) {\n (0, _inherits2.default)(StringKeyframeTrack, _KeyframeTrack);\n var _super = (0, _createSuper2.default)(StringKeyframeTrack);\n function StringKeyframeTrack() {\n (0, _classCallCheck2.default)(this, StringKeyframeTrack);\n return _super.apply(this, arguments);\n }\n return (0, _createClass2.default)(StringKeyframeTrack);\n }(_KeyframeTrack2.KeyframeTrack);\n StringKeyframeTrack.prototype.ValueTypeName = 'string';\n StringKeyframeTrack.prototype.ValueBufferType = Array;\n StringKeyframeTrack.prototype.DefaultInterpolation = _constants.InterpolateDiscrete;\n StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\n StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/animation/KeyframeTrack.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/animation/tracks", "outputPath": "/com/three/0.145.0/src/animation/tracks/StringKeyframeTrack.js", "fileName": "/src/animation/tracks/StringKeyframeTrack.js" }, "pandav:/src/audio/AudioAnalyser.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/audio/AudioAnalyser\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AudioAnalyser = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var AudioAnalyser = exports.AudioAnalyser = function () {\n function AudioAnalyser(audio) {\n var fftSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2048;\n (0, _classCallCheck2.default)(this, AudioAnalyser);\n this.analyser = audio.context.createAnalyser();\n this.analyser.fftSize = fftSize;\n this.data = new Uint8Array(this.analyser.frequencyBinCount);\n audio.getOutput().connect(this.analyser);\n }\n (0, _createClass2.default)(AudioAnalyser, [{\n key: \"getFrequencyData\",\n value: function getFrequencyData() {\n this.analyser.getByteFrequencyData(this.data);\n return this.data;\n } },\n {\n key: \"getAverageFrequency\",\n value: function getAverageFrequency() {\n var value = 0;\n var data = this.getFrequencyData();\n for (var i = 0; i < data.length; i++) {\n value += data[i];\n }\n return value / data.length;\n } }]);\n\n return AudioAnalyser;\n }();return module.exports;});", "requires": [], "buildLevel": 40, "outputDir": "/com/three/0.145.0/src/audio", "outputPath": "/com/three/0.145.0/src/audio/AudioAnalyser.js", "fileName": "/src/audio/AudioAnalyser.js" }, "pandav:/src/audio/Audio.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/audio/Audio\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Audio = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var Audio = exports.Audio = function (_Object3D) {\n (0, _inherits2.default)(Audio, _Object3D);\n var _super = (0, _createSuper2.default)(Audio);\n function Audio(listener) {\n var _this;\n (0, _classCallCheck2.default)(this, Audio);\n _this = _super.call(this);\n _this.type = 'Audio';\n _this.listener = listener;\n _this.context = listener.context;\n _this.gain = _this.context.createGain();\n _this.gain.connect(listener.getInput());\n _this.autoplay = false;\n _this.buffer = null;\n _this.detune = 0;\n _this.loop = false;\n _this.loopStart = 0;\n _this.loopEnd = 0;\n _this.offset = 0;\n _this.duration = undefined;\n _this.playbackRate = 1;\n _this.isPlaying = false;\n _this.hasPlaybackControl = true;\n _this.source = null;\n _this.sourceType = 'empty';\n _this._startedAt = 0;\n _this._progress = 0;\n _this._connected = false;\n _this.filters = [];\n return _this;\n }\n (0, _createClass2.default)(Audio, [{\n key: \"getOutput\",\n value: function getOutput() {\n return this.gain;\n } },\n {\n key: \"setNodeSource\",\n value: function setNodeSource(audioNode) {\n this.hasPlaybackControl = false;\n this.sourceType = 'audioNode';\n this.source = audioNode;\n this.connect();\n return this;\n } },\n {\n key: \"setMediaElementSource\",\n value: function setMediaElementSource(mediaElement) {\n this.hasPlaybackControl = false;\n this.sourceType = 'mediaNode';\n this.source = this.context.createMediaElementSource(mediaElement);\n this.connect();\n return this;\n } },\n {\n key: \"setMediaStreamSource\",\n value: function setMediaStreamSource(mediaStream) {\n this.hasPlaybackControl = false;\n this.sourceType = 'mediaStreamNode';\n this.source = this.context.createMediaStreamSource(mediaStream);\n this.connect();\n return this;\n } },\n {\n key: \"setBuffer\",\n value: function setBuffer(audioBuffer) {\n this.buffer = audioBuffer;\n this.sourceType = 'buffer';\n if (this.autoplay) this.play();\n return this;\n } },\n {\n key: \"play\",\n value: function play() {\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.isPlaying === true) {\n console.warn('THREE.Audio: Audio is already playing.');\n return;\n }\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n this._startedAt = this.context.currentTime + delay;\n var source = this.context.createBufferSource();\n source.buffer = this.buffer;\n source.loop = this.loop;\n source.loopStart = this.loopStart;\n source.loopEnd = this.loopEnd;\n source.onended = this.onEnded.bind(this);\n source.start(this._startedAt, this._progress + this.offset, this.duration);\n this.isPlaying = true;\n this.source = source;\n this.setDetune(this.detune);\n this.setPlaybackRate(this.playbackRate);\n return this.connect();\n } },\n {\n key: \"pause\",\n value: function pause() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n if (this.isPlaying === true) {\n this._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate;\n if (this.loop === true) {\n this._progress = this._progress % (this.duration || this.buffer.duration);\n }\n this.source.stop();\n this.source.onended = null;\n this.isPlaying = false;\n }\n return this;\n } },\n {\n key: \"stop\",\n value: function stop() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n this._progress = 0;\n this.source.stop();\n this.source.onended = null;\n this.isPlaying = false;\n return this;\n } },\n {\n key: \"connect\",\n value: function connect() {\n if (this.filters.length > 0) {\n this.source.connect(this.filters[0]);\n for (var i = 1, l = this.filters.length; i < l; i++) {\n this.filters[i - 1].connect(this.filters[i]);\n }\n this.filters[this.filters.length - 1].connect(this.getOutput());\n } else {\n this.source.connect(this.getOutput());\n }\n this._connected = true;\n return this;\n } },\n {\n key: \"disconnect\",\n value: function disconnect() {\n if (this.filters.length > 0) {\n this.source.disconnect(this.filters[0]);\n for (var i = 1, l = this.filters.length; i < l; i++) {\n this.filters[i - 1].disconnect(this.filters[i]);\n }\n this.filters[this.filters.length - 1].disconnect(this.getOutput());\n } else {\n this.source.disconnect(this.getOutput());\n }\n this._connected = false;\n return this;\n } },\n {\n key: \"getFilters\",\n value: function getFilters() {\n return this.filters;\n } },\n {\n key: \"setFilters\",\n value: function setFilters(value) {\n if (!value) value = [];\n if (this._connected === true) {\n this.disconnect();\n this.filters = value.slice();\n this.connect();\n } else {\n this.filters = value.slice();\n }\n return this;\n } },\n {\n key: \"setDetune\",\n value: function setDetune(value) {\n this.detune = value;\n if (this.source.detune === undefined) return;\n if (this.isPlaying === true) {\n this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01);\n }\n return this;\n } },\n {\n key: \"getDetune\",\n value: function getDetune() {\n return this.detune;\n } },\n {\n key: \"getFilter\",\n value: function getFilter() {\n return this.getFilters()[0];\n } },\n {\n key: \"setFilter\",\n value: function setFilter(filter) {\n return this.setFilters(filter ? [filter] : []);\n } },\n {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(value) {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n this.playbackRate = value;\n if (this.isPlaying === true) {\n this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01);\n }\n return this;\n } },\n {\n key: \"getPlaybackRate\",\n value: function getPlaybackRate() {\n return this.playbackRate;\n } },\n {\n key: \"onEnded\",\n value: function onEnded() {\n this.isPlaying = false;\n } },\n {\n key: \"getLoop\",\n value: function getLoop() {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return false;\n }\n return this.loop;\n } },\n {\n key: \"setLoop\",\n value: function setLoop(value) {\n if (this.hasPlaybackControl === false) {\n console.warn('THREE.Audio: this Audio has no playback control.');\n return;\n }\n this.loop = value;\n if (this.isPlaying === true) {\n this.source.loop = this.loop;\n }\n return this;\n } },\n {\n key: \"setLoopStart\",\n value: function setLoopStart(value) {\n this.loopStart = value;\n return this;\n } },\n {\n key: \"setLoopEnd\",\n value: function setLoopEnd(value) {\n this.loopEnd = value;\n return this;\n } },\n {\n key: \"getVolume\",\n value: function getVolume() {\n return this.gain.gain.value;\n } },\n {\n key: \"setVolume\",\n value: function setVolume(value) {\n this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n return this;\n } }]);\n\n return Audio;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/core/Object3D.js" ], "buildLevel": 40, "outputDir": "/com/three/0.145.0/src/audio", "outputPath": "/com/three/0.145.0/src/audio/Audio.js", "fileName": "/src/audio/Audio.js" }, "pandav:/src/audio/AudioListener.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/audio/AudioListener\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Quaternion\", \"pandav:/com/three/0.145.0/src/core/Clock\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/audio/AudioContext\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AudioListener = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var _Clock = require('pandav:/com/three/0.145.0/src/core/Clock');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _AudioContext = require('pandav:/com/three/0.145.0/src/audio/AudioContext');\n var _position = new _Vector.Vector3();\n var _quaternion = new _Quaternion.Quaternion();\n var _scale = new _Vector.Vector3();\n var _orientation = new _Vector.Vector3();\n var AudioListener = exports.AudioListener = function (_Object3D) {\n (0, _inherits2.default)(AudioListener, _Object3D);\n var _super = (0, _createSuper2.default)(AudioListener);\n function AudioListener() {\n var _this;\n (0, _classCallCheck2.default)(this, AudioListener);\n _this = _super.call(this);\n _this.type = 'AudioListener';\n _this.context = _AudioContext.AudioContext.getContext();\n _this.gain = _this.context.createGain();\n _this.gain.connect(_this.context.destination);\n _this.filter = null;\n _this.timeDelta = 0;\n _this._clock = new _Clock.Clock();\n return _this;\n }\n (0, _createClass2.default)(AudioListener, [{\n key: \"getInput\",\n value: function getInput() {\n return this.gain;\n } },\n {\n key: \"removeFilter\",\n value: function removeFilter() {\n if (this.filter !== null) {\n this.gain.disconnect(this.filter);\n this.filter.disconnect(this.context.destination);\n this.gain.connect(this.context.destination);\n this.filter = null;\n }\n return this;\n } },\n {\n key: \"getFilter\",\n value: function getFilter() {\n return this.filter;\n } },\n {\n key: \"setFilter\",\n value: function setFilter(value) {\n if (this.filter !== null) {\n this.gain.disconnect(this.filter);\n this.filter.disconnect(this.context.destination);\n } else {\n this.gain.disconnect(this.context.destination);\n }\n this.filter = value;\n this.gain.connect(this.filter);\n this.filter.connect(this.context.destination);\n return this;\n } },\n {\n key: \"getMasterVolume\",\n value: function getMasterVolume() {\n return this.gain.gain.value;\n } },\n {\n key: \"setMasterVolume\",\n value: function setMasterVolume(value) {\n this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n return this;\n } },\n {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(AudioListener.prototype), \"updateMatrixWorld\", this).call(this, force);\n var listener = this.context.listener;\n var up = this.up;\n this.timeDelta = this._clock.getDelta();\n this.matrixWorld.decompose(_position, _quaternion, _scale);\n _orientation.set(0, 0, -1).applyQuaternion(_quaternion);\n if (listener.positionX) {\n var endTime = this.context.currentTime + this.timeDelta;\n listener.positionX.linearRampToValueAtTime(_position.x, endTime);\n listener.positionY.linearRampToValueAtTime(_position.y, endTime);\n listener.positionZ.linearRampToValueAtTime(_position.z, endTime);\n listener.forwardX.linearRampToValueAtTime(_orientation.x, endTime);\n listener.forwardY.linearRampToValueAtTime(_orientation.y, endTime);\n listener.forwardZ.linearRampToValueAtTime(_orientation.z, endTime);\n listener.upX.linearRampToValueAtTime(up.x, endTime);\n listener.upY.linearRampToValueAtTime(up.y, endTime);\n listener.upZ.linearRampToValueAtTime(up.z, endTime);\n } else {\n listener.setPosition(_position.x, _position.y, _position.z);\n listener.setOrientation(_orientation.x, _orientation.y, _orientation.z, up.x, up.y, up.z);\n }\n } }]);\n\n return AudioListener;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/Quaternion.js", "pandav:/src/core/Clock.js", "pandav:/src/core/Object3D.js", "pandav:/src/audio/AudioContext.js" ], "buildLevel": 38, "outputDir": "/com/three/0.145.0/src/audio", "outputPath": "/com/three/0.145.0/src/audio/AudioListener.js", "fileName": "/src/audio/AudioListener.js" }, "pandav:/src/audio/PositionalAudio.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/audio/PositionalAudio\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Quaternion\", \"pandav:/com/three/0.145.0/src/audio/Audio\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PositionalAudio = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var _Audio2 = require('pandav:/com/three/0.145.0/src/audio/Audio');\n var _position = new _Vector.Vector3();\n var _quaternion = new _Quaternion.Quaternion();\n var _scale = new _Vector.Vector3();\n var _orientation = new _Vector.Vector3();\n var PositionalAudio = exports.PositionalAudio = function (_Audio) {\n (0, _inherits2.default)(PositionalAudio, _Audio);\n var _super = (0, _createSuper2.default)(PositionalAudio);\n function PositionalAudio(listener) {\n var _this;\n (0, _classCallCheck2.default)(this, PositionalAudio);\n _this = _super.call(this, listener);\n _this.panner = _this.context.createPanner();\n _this.panner.panningModel = 'HRTF';\n _this.panner.connect(_this.gain);\n return _this;\n }\n (0, _createClass2.default)(PositionalAudio, [{\n key: \"disconnect\",\n value: function disconnect() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(PositionalAudio.prototype), \"disconnect\", this).call(this);\n this.panner.disconnect(this.gain);\n } },\n {\n key: \"getOutput\",\n value: function getOutput() {\n return this.panner;\n } },\n {\n key: \"getRefDistance\",\n value: function getRefDistance() {\n return this.panner.refDistance;\n } },\n {\n key: \"setRefDistance\",\n value: function setRefDistance(value) {\n this.panner.refDistance = value;\n return this;\n } },\n {\n key: \"getRolloffFactor\",\n value: function getRolloffFactor() {\n return this.panner.rolloffFactor;\n } },\n {\n key: \"setRolloffFactor\",\n value: function setRolloffFactor(value) {\n this.panner.rolloffFactor = value;\n return this;\n } },\n {\n key: \"getDistanceModel\",\n value: function getDistanceModel() {\n return this.panner.distanceModel;\n } },\n {\n key: \"setDistanceModel\",\n value: function setDistanceModel(value) {\n this.panner.distanceModel = value;\n return this;\n } },\n {\n key: \"getMaxDistance\",\n value: function getMaxDistance() {\n return this.panner.maxDistance;\n } },\n {\n key: \"setMaxDistance\",\n value: function setMaxDistance(value) {\n this.panner.maxDistance = value;\n return this;\n } },\n {\n key: \"setDirectionalCone\",\n value: function setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) {\n this.panner.coneInnerAngle = coneInnerAngle;\n this.panner.coneOuterAngle = coneOuterAngle;\n this.panner.coneOuterGain = coneOuterGain;\n return this;\n } },\n {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(PositionalAudio.prototype), \"updateMatrixWorld\", this).call(this, force);\n if (this.hasPlaybackControl === true && this.isPlaying === false) return;\n this.matrixWorld.decompose(_position, _quaternion, _scale);\n _orientation.set(0, 0, 1).applyQuaternion(_quaternion);\n var panner = this.panner;\n if (panner.positionX) {\n var endTime = this.context.currentTime + this.listener.timeDelta;\n panner.positionX.linearRampToValueAtTime(_position.x, endTime);\n panner.positionY.linearRampToValueAtTime(_position.y, endTime);\n panner.positionZ.linearRampToValueAtTime(_position.z, endTime);\n panner.orientationX.linearRampToValueAtTime(_orientation.x, endTime);\n panner.orientationY.linearRampToValueAtTime(_orientation.y, endTime);\n panner.orientationZ.linearRampToValueAtTime(_orientation.z, endTime);\n } else {\n panner.setPosition(_position.x, _position.y, _position.z);\n panner.setOrientation(_orientation.x, _orientation.y, _orientation.z);\n }\n } }]);\n\n return PositionalAudio;\n }(_Audio2.Audio);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/Quaternion.js", "pandav:/src/audio/Audio.js" ], "buildLevel": 39, "outputDir": "/com/three/0.145.0/src/audio", "outputPath": "/com/three/0.145.0/src/audio/PositionalAudio.js", "fileName": "/src/audio/PositionalAudio.js" }, "pandav:/src/cameras/ArrayCamera.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/cameras/ArrayCamera\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ArrayCamera = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _PerspectiveCamera2 = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n var ArrayCamera = exports.ArrayCamera = function (_PerspectiveCamera) {\n (0, _inherits2.default)(ArrayCamera, _PerspectiveCamera);\n var _super = (0, _createSuper2.default)(ArrayCamera);\n function ArrayCamera() {\n var _this;\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n (0, _classCallCheck2.default)(this, ArrayCamera);\n _this = _super.call(this);\n _this.isArrayCamera = true;\n _this.cameras = array;\n return _this;\n }\n return (0, _createClass2.default)(ArrayCamera);\n }(_PerspectiveCamera2.PerspectiveCamera);return module.exports;});", "requires": [ "pandav:/src/cameras/PerspectiveCamera.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/cameras", "outputPath": "/com/three/0.145.0/src/cameras/ArrayCamera.js", "fileName": "/src/cameras/ArrayCamera.js" }, "pandav:/src/audio/AudioContext.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/audio/AudioContext\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AudioContext = void 0;\n var _context;\n var AudioContext = exports.AudioContext = {\n getContext: function getContext() {\n if (_context === undefined) {\n _context = new (window.AudioContext || window.webkitAudioContext)();\n }\n return _context;\n },\n setContext: function setContext(value) {\n _context = value;\n } };return module.exports;});", "requires": [], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/audio", "outputPath": "/com/three/0.145.0/src/audio/AudioContext.js", "fileName": "/src/audio/AudioContext.js" }, "pandav:/src/animation/PropertyBinding.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/animation/PropertyBinding\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PropertyBinding = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\n var _reservedRe = new RegExp('[' + _RESERVED_CHARS_RE + ']', 'g');\n var _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\n var _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace('\\\\.', '') + ']';\n var _directoryRe = /((?:WC+[\\/:])*)/.source.replace('WC', _wordChar);\n var _nodeRe = /(WCOD+)?/.source.replace('WCOD', _wordCharOrDot);\n var _objectRe = /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace('WC', _wordChar);\n var _propertyRe = /\\.(WC+)(?:\\[(.+)\\])?/.source.replace('WC', _wordChar);\n var _trackRe = new RegExp('' + '^' + _directoryRe + _nodeRe + _objectRe + _propertyRe + '$');\n var _supportedObjectNames = ['material', 'materials', 'bones', 'map'];\n var Composite = function () {\n function Composite(targetGroup, path, optionalParsedPath) {\n (0, _classCallCheck2.default)(this, Composite);\n var parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path);\n this._targetGroup = targetGroup;\n this._bindings = targetGroup.subscribe_(path, parsedPath);\n }\n (0, _createClass2.default)(Composite, [{\n key: \"getValue\",\n value: function getValue(array, offset) {\n this.bind();\n var firstValidIndex = this._targetGroup.nCachedObjects_,\n binding = this._bindings[firstValidIndex];\n if (binding !== undefined) binding.getValue(array, offset);\n } },\n {\n key: \"setValue\",\n value: function setValue(array, offset) {\n var bindings = this._bindings;\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].setValue(array, offset);\n }\n } },\n {\n key: \"bind\",\n value: function bind() {\n var bindings = this._bindings;\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].bind();\n }\n } },\n {\n key: \"unbind\",\n value: function unbind() {\n var bindings = this._bindings;\n for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n bindings[i].unbind();\n }\n } }]);\n\n return Composite;\n }();\n var PropertyBinding = exports.PropertyBinding = function () {\n function PropertyBinding(rootNode, path, parsedPath) {\n (0, _classCallCheck2.default)(this, PropertyBinding);\n this.path = path;\n this.parsedPath = parsedPath || PropertyBinding.parseTrackName(path);\n this.node = PropertyBinding.findNode(rootNode, this.parsedPath.nodeName) || rootNode;\n this.rootNode = rootNode;\n this.getValue = this._getValue_unbound;\n this.setValue = this._setValue_unbound;\n }\n (0, _createClass2.default)(PropertyBinding, [{\n key: \"_getValue_unavailable\",\n value: function _getValue_unavailable() {} },\n {\n key: \"_setValue_unavailable\",\n value: function _setValue_unavailable() {} },\n {\n key: \"_getValue_direct\",\n value: function _getValue_direct(buffer, offset) {\n buffer[offset] = this.targetObject[this.propertyName];\n } },\n {\n key: \"_getValue_array\",\n value: function _getValue_array(buffer, offset) {\n var source = this.resolvedProperty;\n for (var i = 0, n = source.length; i !== n; ++i) {\n buffer[offset++] = source[i];\n }\n } },\n {\n key: \"_getValue_arrayElement\",\n value: function _getValue_arrayElement(buffer, offset) {\n buffer[offset] = this.resolvedProperty[this.propertyIndex];\n } },\n {\n key: \"_getValue_toArray\",\n value: function _getValue_toArray(buffer, offset) {\n this.resolvedProperty.toArray(buffer, offset);\n } },\n {\n key: \"_setValue_direct\",\n value: function _setValue_direct(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n } },\n {\n key: \"_setValue_direct_setNeedsUpdate\",\n value: function _setValue_direct_setNeedsUpdate(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n this.targetObject.needsUpdate = true;\n } },\n {\n key: \"_setValue_direct_setMatrixWorldNeedsUpdate\",\n value: function _setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.targetObject[this.propertyName] = buffer[offset];\n this.targetObject.matrixWorldNeedsUpdate = true;\n } },\n {\n key: \"_setValue_array\",\n value: function _setValue_array(buffer, offset) {\n var dest = this.resolvedProperty;\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n } },\n {\n key: \"_setValue_array_setNeedsUpdate\",\n value: function _setValue_array_setNeedsUpdate(buffer, offset) {\n var dest = this.resolvedProperty;\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n this.targetObject.needsUpdate = true;\n } },\n {\n key: \"_setValue_array_setMatrixWorldNeedsUpdate\",\n value: function _setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) {\n var dest = this.resolvedProperty;\n for (var i = 0, n = dest.length; i !== n; ++i) {\n dest[i] = buffer[offset++];\n }\n this.targetObject.matrixWorldNeedsUpdate = true;\n } },\n {\n key: \"_setValue_arrayElement\",\n value: function _setValue_arrayElement(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n } },\n {\n key: \"_setValue_arrayElement_setNeedsUpdate\",\n value: function _setValue_arrayElement_setNeedsUpdate(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n this.targetObject.needsUpdate = true;\n } },\n {\n key: \"_setValue_arrayElement_setMatrixWorldNeedsUpdate\",\n value: function _setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.resolvedProperty[this.propertyIndex] = buffer[offset];\n this.targetObject.matrixWorldNeedsUpdate = true;\n } },\n {\n key: \"_setValue_fromArray\",\n value: function _setValue_fromArray(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n } },\n {\n key: \"_setValue_fromArray_setNeedsUpdate\",\n value: function _setValue_fromArray_setNeedsUpdate(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n this.targetObject.needsUpdate = true;\n } },\n {\n key: \"_setValue_fromArray_setMatrixWorldNeedsUpdate\",\n value: function _setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) {\n this.resolvedProperty.fromArray(buffer, offset);\n this.targetObject.matrixWorldNeedsUpdate = true;\n } },\n {\n key: \"_getValue_unbound\",\n value: function _getValue_unbound(targetArray, offset) {\n this.bind();\n this.getValue(targetArray, offset);\n } },\n {\n key: \"_setValue_unbound\",\n value: function _setValue_unbound(sourceArray, offset) {\n this.bind();\n this.setValue(sourceArray, offset);\n } },\n {\n key: \"bind\",\n value: function bind() {\n var targetObject = this.node;\n var parsedPath = this.parsedPath;\n var objectName = parsedPath.objectName;\n var propertyName = parsedPath.propertyName;\n var propertyIndex = parsedPath.propertyIndex;\n if (!targetObject) {\n targetObject = PropertyBinding.findNode(this.rootNode, parsedPath.nodeName) || this.rootNode;\n this.node = targetObject;\n }\n this.getValue = this._getValue_unavailable;\n this.setValue = this._setValue_unavailable;\n if (!targetObject) {\n console.error('THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\\'t found.');\n return;\n }\n if (objectName) {\n var objectIndex = parsedPath.objectIndex;\n switch (objectName) {\n case 'materials':\n if (!targetObject.material) {\n console.error('THREE.PropertyBinding: Can not bind to material as node does not have a material.', this);\n return;\n }\n if (!targetObject.material.materials) {\n console.error('THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this);\n return;\n }\n targetObject = targetObject.material.materials;\n break;\n case 'bones':\n if (!targetObject.skeleton) {\n console.error('THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this);\n return;\n }\n targetObject = targetObject.skeleton.bones;\n for (var i = 0; i < targetObject.length; i++) {\n if (targetObject[i].name === objectIndex) {\n objectIndex = i;\n break;\n }\n }\n break;\n case 'map':\n if ('map' in targetObject) {\n targetObject = targetObject.map;\n break;\n }\n if (!targetObject.material) {\n console.error('THREE.PropertyBinding: Can not bind to material as node does not have a material.', this);\n return;\n }\n if (!targetObject.material.map) {\n console.error('THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.', this);\n return;\n }\n targetObject = targetObject.material.map;\n break;\n default:\n if (targetObject[objectName] === undefined) {\n console.error('THREE.PropertyBinding: Can not bind to objectName of node undefined.', this);\n return;\n }\n targetObject = targetObject[objectName];}\n\n if (objectIndex !== undefined) {\n if (targetObject[objectIndex] === undefined) {\n console.error('THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject);\n return;\n }\n targetObject = targetObject[objectIndex];\n }\n }\n var nodeProperty = targetObject[propertyName];\n if (nodeProperty === undefined) {\n var nodeName = parsedPath.nodeName;\n console.error('THREE.PropertyBinding: Trying to update property for track: ' + nodeName + '.' + propertyName + ' but it wasn\\'t found.', targetObject);\n return;\n }\n var versioning = this.Versioning.None;\n this.targetObject = targetObject;\n if (targetObject.needsUpdate !== undefined) {\n versioning = this.Versioning.NeedsUpdate;\n } else if (targetObject.matrixWorldNeedsUpdate !== undefined) {\n versioning = this.Versioning.MatrixWorldNeedsUpdate;\n }\n var bindingType = this.BindingType.Direct;\n if (propertyIndex !== undefined) {\n if (propertyName === 'morphTargetInfluences') {\n if (!targetObject.geometry) {\n console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this);\n return;\n }\n if (!targetObject.geometry.morphAttributes) {\n console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this);\n return;\n }\n if (targetObject.morphTargetDictionary[propertyIndex] !== undefined) {\n propertyIndex = targetObject.morphTargetDictionary[propertyIndex];\n }\n }\n bindingType = this.BindingType.ArrayElement;\n this.resolvedProperty = nodeProperty;\n this.propertyIndex = propertyIndex;\n } else if (nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined) {\n bindingType = this.BindingType.HasFromToArray;\n this.resolvedProperty = nodeProperty;\n } else if (Array.isArray(nodeProperty)) {\n bindingType = this.BindingType.EntireArray;\n this.resolvedProperty = nodeProperty;\n } else {\n this.propertyName = propertyName;\n }\n this.getValue = this.GetterByBindingType[bindingType];\n this.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning];\n } },\n {\n key: \"unbind\",\n value: function unbind() {\n this.node = null;\n this.getValue = this._getValue_unbound;\n this.setValue = this._setValue_unbound;\n } }],\n [{\n key: \"create\",\n value: function create(root, path, parsedPath) {\n if (!(root && root.isAnimationObjectGroup)) {\n return new PropertyBinding(root, path, parsedPath);\n } else {\n return new PropertyBinding.Composite(root, path, parsedPath);\n }\n } },\n {\n key: \"sanitizeNodeName\",\n value: function sanitizeNodeName(name) {\n return name.replace(/\\s/g, '_').replace(_reservedRe, '');\n } },\n {\n key: \"parseTrackName\",\n value: function parseTrackName(trackName) {\n var matches = _trackRe.exec(trackName);\n if (matches === null) {\n throw new Error('PropertyBinding: Cannot parse trackName: ' + trackName);\n }\n var results = {\n nodeName: matches[2],\n objectName: matches[3],\n objectIndex: matches[4],\n propertyName: matches[5],\n propertyIndex: matches[6] };\n\n var lastDot = results.nodeName && results.nodeName.lastIndexOf('.');\n if (lastDot !== undefined && lastDot !== -1) {\n var objectName = results.nodeName.substring(lastDot + 1);\n if (_supportedObjectNames.indexOf(objectName) !== -1) {\n results.nodeName = results.nodeName.substring(0, lastDot);\n results.objectName = objectName;\n }\n }\n if (results.propertyName === null || results.propertyName.length === 0) {\n throw new Error('PropertyBinding: can not parse propertyName from trackName: ' + trackName);\n }\n return results;\n } },\n {\n key: \"findNode\",\n value: function findNode(root, nodeName) {\n if (nodeName === undefined || nodeName === '' || nodeName === '.' || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) {\n return root;\n }\n if (root.skeleton) {\n var bone = root.skeleton.getBoneByName(nodeName);\n if (bone !== undefined) {\n return bone;\n }\n }\n if (root.children) {\n var searchNodeSubtree = function searchNodeSubtree(children) {\n for (var i = 0; i < children.length; i++) {\n var childNode = children[i];\n if (childNode.name === nodeName || childNode.uuid === nodeName) {\n return childNode;\n }\n var result = searchNodeSubtree(childNode.children);\n if (result) return result;\n }\n return null;\n };\n var subTreeNode = searchNodeSubtree(root.children);\n if (subTreeNode) {\n return subTreeNode;\n }\n }\n return null;\n } }]);\n\n return PropertyBinding;\n }();\n PropertyBinding.Composite = Composite;\n PropertyBinding.prototype.BindingType = {\n Direct: 0,\n EntireArray: 1,\n ArrayElement: 2,\n HasFromToArray: 3 };\n\n PropertyBinding.prototype.Versioning = {\n None: 0,\n NeedsUpdate: 1,\n MatrixWorldNeedsUpdate: 2 };\n\n PropertyBinding.prototype.GetterByBindingType = [PropertyBinding.prototype._getValue_direct, PropertyBinding.prototype._getValue_array, PropertyBinding.prototype._getValue_arrayElement, PropertyBinding.prototype._getValue_toArray];\n PropertyBinding.prototype.SetterByBindingTypeAndVersioning = [[PropertyBinding.prototype._setValue_direct, PropertyBinding.prototype._setValue_direct_setNeedsUpdate, PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate], [PropertyBinding.prototype._setValue_array, PropertyBinding.prototype._setValue_array_setNeedsUpdate, PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate], [PropertyBinding.prototype._setValue_arrayElement, PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate, PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate], [PropertyBinding.prototype._setValue_fromArray, PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate, PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];return module.exports;});", "requires": [], "buildLevel": 42, "outputDir": "/com/three/0.145.0/src/animation", "outputPath": "/com/three/0.145.0/src/animation/PropertyBinding.js", "fileName": "/src/animation/PropertyBinding.js" }, "pandav:/src/cameras/Camera.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/cameras/Camera\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Camera = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var Camera = exports.Camera = function (_Object3D) {\n (0, _inherits2.default)(Camera, _Object3D);\n var _super = (0, _createSuper2.default)(Camera);\n function Camera() {\n var _this;\n (0, _classCallCheck2.default)(this, Camera);\n _this = _super.call(this);\n _this.isCamera = true;\n _this.type = 'Camera';\n _this.matrixWorldInverse = new _Matrix.Matrix4();\n _this.projectionMatrix = new _Matrix.Matrix4();\n _this.projectionMatrixInverse = new _Matrix.Matrix4();\n _this.near = 0.1;\n _this.far = 1000.0;\n var _direcion = new _Vector.Vector3();\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'direction', {\n enumerable: true,\n configurable: false,\n get: function get() {\n _direcion.set(0, 0, -1).applyQuaternion(this.quaternion);\n return _direcion;\n } });\n\n return _this;\n }\n (0, _createClass2.default)(Camera, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Camera.prototype), \"copy\", this).call(this, source, recursive);\n this.matrixWorldInverse.copy(source.matrixWorldInverse);\n this.projectionMatrix.copy(source.projectionMatrix);\n this.projectionMatrixInverse.copy(source.projectionMatrixInverse);\n return this;\n } },\n {\n key: \"getWorldDirection\",\n value: function getWorldDirection(target) {\n this.updateWorldMatrix(true, false);\n var e = this.matrixWorld.elements;\n return target.set(-e[8], -e[9], -e[10]).normalize();\n } },\n {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Camera.prototype), \"updateMatrixWorld\", this).call(this, force);\n this.matrixWorldInverse.copy(this.matrixWorld).invert();\n } },\n {\n key: \"updateWorldMatrix\",\n value: function updateWorldMatrix(updateParents, updateChildren) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Camera.prototype), \"updateWorldMatrix\", this).call(this, updateParents, updateChildren);\n this.matrixWorldInverse.copy(this.matrixWorld).invert();\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Camera;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/math/Matrix4.js", "pandav:/src/core/Object3D.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 13, "outputDir": "/com/three/0.145.0/src/cameras", "outputPath": "/com/three/0.145.0/src/cameras/Camera.js", "fileName": "/src/cameras/Camera.js" }, "pandav:/src/cameras/CubeCamera.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/cameras/CubeCamera\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/slicedToArray\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CubeCamera = void 0;\n var _slicedToArray2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/slicedToArray'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n var fov = 90,\n aspect = 1;\n var CubeCamera = exports.CubeCamera = function (_Object3D) {\n (0, _inherits2.default)(CubeCamera, _Object3D);\n var _super = (0, _createSuper2.default)(CubeCamera);\n function CubeCamera(near, far, renderTarget) {\n var _this;\n (0, _classCallCheck2.default)(this, CubeCamera);\n _this = _super.call(this);\n _this.type = 'CubeCamera';\n _this.renderTarget = renderTarget;\n var cameraPX = new _PerspectiveCamera.PerspectiveCamera(fov, aspect, near, far);\n cameraPX.layers = _this.layers;\n cameraPX.up.set(0, -1, 0);\n cameraPX.lookAt(new _Vector.Vector3(1, 0, 0));\n _this.add(cameraPX);\n var cameraNX = new _PerspectiveCamera.PerspectiveCamera(fov, aspect, near, far);\n cameraNX.layers = _this.layers;\n cameraNX.up.set(0, -1, 0);\n cameraNX.lookAt(new _Vector.Vector3(-1, 0, 0));\n _this.add(cameraNX);\n var cameraPY = new _PerspectiveCamera.PerspectiveCamera(fov, aspect, near, far);\n cameraPY.layers = _this.layers;\n cameraPY.up.set(0, 0, 1);\n cameraPY.lookAt(new _Vector.Vector3(0, 1, 0));\n _this.add(cameraPY);\n var cameraNY = new _PerspectiveCamera.PerspectiveCamera(fov, aspect, near, far);\n cameraNY.layers = _this.layers;\n cameraNY.up.set(0, 0, -1);\n cameraNY.lookAt(new _Vector.Vector3(0, -1, 0));\n _this.add(cameraNY);\n var cameraPZ = new _PerspectiveCamera.PerspectiveCamera(fov, aspect, near, far);\n cameraPZ.layers = _this.layers;\n cameraPZ.up.set(0, -1, 0);\n cameraPZ.lookAt(new _Vector.Vector3(0, 0, 1));\n _this.add(cameraPZ);\n var cameraNZ = new _PerspectiveCamera.PerspectiveCamera(fov, aspect, near, far);\n cameraNZ.layers = _this.layers;\n cameraNZ.up.set(0, -1, 0);\n cameraNZ.lookAt(new _Vector.Vector3(0, 0, -1));\n _this.add(cameraNZ);\n return _this;\n }\n (0, _createClass2.default)(CubeCamera, [{\n key: \"update\",\n value: function update(renderer, scene) {\n if (this.parent === null) this.updateMatrixWorld();\n var renderTarget = this.renderTarget;\n var _this$children = (0, _slicedToArray2.default)(this.children, 6),\n cameraPX = _this$children[0],\n cameraNX = _this$children[1],\n cameraPY = _this$children[2],\n cameraNY = _this$children[3],\n cameraPZ = _this$children[4],\n cameraNZ = _this$children[5];\n var currentRenderTarget = renderer.getRenderTarget();\n var currentToneMapping = renderer.toneMapping;\n var currentXrEnabled = renderer.xr.enabled;\n renderer.toneMapping = _constants.NoToneMapping;\n renderer.xr.enabled = false;\n var generateMipmaps = renderTarget.texture.generateMipmaps;\n renderTarget.texture.generateMipmaps = false;\n renderer.setRenderTarget(renderTarget, 0);\n renderer.render(scene, cameraPX);\n renderer.setRenderTarget(renderTarget, 1);\n renderer.render(scene, cameraNX);\n renderer.setRenderTarget(renderTarget, 2);\n renderer.render(scene, cameraPY);\n renderer.setRenderTarget(renderTarget, 3);\n renderer.render(scene, cameraNY);\n renderer.setRenderTarget(renderTarget, 4);\n renderer.render(scene, cameraPZ);\n renderTarget.texture.generateMipmaps = generateMipmaps;\n renderer.setRenderTarget(renderTarget, 5);\n renderer.render(scene, cameraNZ);\n renderer.setRenderTarget(currentRenderTarget);\n renderer.toneMapping = currentToneMapping;\n renderer.xr.enabled = currentXrEnabled;\n renderTarget.texture.needsPMREMUpdate = true;\n } }]);\n\n return CubeCamera;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/core/Object3D.js", "pandav:/src/math/Vector3.js", "pandav:/src/cameras/PerspectiveCamera.js" ], "buildLevel": 11, "outputDir": "/com/three/0.145.0/src/cameras", "outputPath": "/com/three/0.145.0/src/cameras/CubeCamera.js", "fileName": "/src/cameras/CubeCamera.js" }, "pandav:/src/cameras/PerspectiveCamera.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/cameras/Camera\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PerspectiveCamera = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Camera2 = require('pandav:/com/three/0.145.0/src/cameras/Camera');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var PerspectiveCamera = exports.PerspectiveCamera = function (_Camera) {\n (0, _inherits2.default)(PerspectiveCamera, _Camera);\n var _super = (0, _createSuper2.default)(PerspectiveCamera);\n function PerspectiveCamera() {\n var _this;\n var fov = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;\n var aspect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var near = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.1;\n var far = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 2000;\n (0, _classCallCheck2.default)(this, PerspectiveCamera);\n _this = _super.call(this);\n _this.isPerspectiveCamera = true;\n _this.type = 'PerspectiveCamera';\n _this.fov = fov;\n _this.zoom = 1;\n _this.near = near;\n _this.far = far;\n _this.focus = 10;\n _this.aspect = aspect;\n _this.view = null;\n _this.filmGauge = 35;\n _this.filmOffset = 0;\n _this.updateProjectionMatrix();\n return _this;\n }\n (0, _createClass2.default)(PerspectiveCamera, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(PerspectiveCamera.prototype), \"copy\", this).call(this, source, recursive);\n this.fov = source.fov;\n this.zoom = source.zoom;\n this.near = source.near;\n this.far = source.far;\n this.focus = source.focus;\n this.aspect = source.aspect;\n this.view = source.view === null ? null : Object.assign({}, source.view);\n this.filmGauge = source.filmGauge;\n this.filmOffset = source.filmOffset;\n return this;\n } },\n {\n key: \"setFocalLength\",\n value: function setFocalLength(focalLength) {\n var vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n this.fov = MathUtils.RAD2DEG * 2 * Math.atan(vExtentSlope);\n this.updateProjectionMatrix();\n } },\n {\n key: \"getFocalLength\",\n value: function getFocalLength() {\n var vExtentSlope = Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov);\n return 0.5 * this.getFilmHeight() / vExtentSlope;\n } },\n {\n key: \"getEffectiveFOV\",\n value: function getEffectiveFOV() {\n return MathUtils.RAD2DEG * 2 * Math.atan(Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov) / this.zoom);\n } },\n {\n key: \"getFilmWidth\",\n value: function getFilmWidth() {\n return this.filmGauge * Math.min(this.aspect, 1);\n } },\n {\n key: \"getFilmHeight\",\n value: function getFilmHeight() {\n return this.filmGauge / Math.max(this.aspect, 1);\n } },\n {\n key: \"setViewOffset\",\n value: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n this.aspect = fullWidth / fullHeight;\n if (this.view === null) {\n this.view = {\n enabled: true,\n fullWidth: 1,\n fullHeight: 1,\n offsetX: 0,\n offsetY: 0,\n width: 1,\n height: 1 };\n\n }\n this.view.enabled = true;\n this.view.fullWidth = fullWidth;\n this.view.fullHeight = fullHeight;\n this.view.offsetX = x;\n this.view.offsetY = y;\n this.view.width = width;\n this.view.height = height;\n this.updateProjectionMatrix();\n } },\n {\n key: \"clearViewOffset\",\n value: function clearViewOffset() {\n if (this.view !== null) {\n this.view.enabled = false;\n }\n this.updateProjectionMatrix();\n } },\n {\n key: \"updateProjectionMatrix\",\n value: function updateProjectionMatrix() {\n var near = this.near;\n var top = near * Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov) / this.zoom;\n var height = 2 * top;\n var width = this.aspect * height;\n var left = -0.5 * width;\n var view = this.view;\n if (this.view !== null && this.view.enabled) {\n var fullWidth = view.fullWidth,\n fullHeight = view.fullHeight;\n left += view.offsetX * width / fullWidth;\n top -= view.offsetY * height / fullHeight;\n width *= view.width / fullWidth;\n height *= view.height / fullHeight;\n }\n var skew = this.filmOffset;\n if (skew !== 0) left += near * skew / this.getFilmWidth();\n this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far);\n this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(PerspectiveCamera.prototype), \"toJSON\", this).call(this, meta);\n data.object.fov = this.fov;\n data.object.zoom = this.zoom;\n data.object.near = this.near;\n data.object.far = this.far;\n data.object.focus = this.focus;\n data.object.aspect = this.aspect;\n if (this.view !== null) data.object.view = Object.assign({}, this.view);\n data.object.filmGauge = this.filmGauge;\n data.object.filmOffset = this.filmOffset;\n return data;\n } }]);\n\n return PerspectiveCamera;\n }(_Camera2.Camera);return module.exports;});", "requires": [ "pandav:/src/cameras/Camera.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 12, "outputDir": "/com/three/0.145.0/src/cameras", "outputPath": "/com/three/0.145.0/src/cameras/PerspectiveCamera.js", "fileName": "/src/cameras/PerspectiveCamera.js" }, "pandav:/src/cameras/StereoCamera.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/cameras/StereoCamera\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.StereoCamera = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var _eyeRight = new _Matrix.Matrix4();\n var _eyeLeft = new _Matrix.Matrix4();\n var _projectionMatrix = new _Matrix.Matrix4();\n var StereoCamera = exports.StereoCamera = function () {\n function StereoCamera() {\n (0, _classCallCheck2.default)(this, StereoCamera);\n this.type = 'StereoCamera';\n this.aspect = 1;\n this.eyeSep = 0.064;\n this.cameraL = new _PerspectiveCamera.PerspectiveCamera();\n this.cameraL.layers.enable(1);\n this.cameraL.matrixAutoUpdate = false;\n this.cameraR = new _PerspectiveCamera.PerspectiveCamera();\n this.cameraR.layers.enable(2);\n this.cameraR.matrixAutoUpdate = false;\n this._cache = {\n focus: null,\n fov: null,\n aspect: null,\n near: null,\n far: null,\n zoom: null,\n eyeSep: null };\n\n }\n (0, _createClass2.default)(StereoCamera, [{\n key: \"update\",\n value: function update(camera) {\n var cache = this._cache;\n var needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n if (needsUpdate) {\n cache.focus = camera.focus;\n cache.fov = camera.fov;\n cache.aspect = camera.aspect * this.aspect;\n cache.near = camera.near;\n cache.far = camera.far;\n cache.zoom = camera.zoom;\n cache.eyeSep = this.eyeSep;\n _projectionMatrix.copy(camera.projectionMatrix);\n var eyeSepHalf = cache.eyeSep / 2;\n var eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n var ymax = cache.near * Math.tan(MathUtils.DEG2RAD * cache.fov * 0.5) / cache.zoom;\n var xmin, xmax;\n _eyeLeft.elements[12] = -eyeSepHalf;\n _eyeRight.elements[12] = eyeSepHalf;\n xmin = -ymax * cache.aspect + eyeSepOnProjection;\n xmax = ymax * cache.aspect + eyeSepOnProjection;\n _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n this.cameraL.projectionMatrix.copy(_projectionMatrix);\n xmin = -ymax * cache.aspect - eyeSepOnProjection;\n xmax = ymax * cache.aspect - eyeSepOnProjection;\n _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n this.cameraR.projectionMatrix.copy(_projectionMatrix);\n }\n this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);\n this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight);\n } }]);\n\n return StereoCamera;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Matrix4.js", "pandav:/src/math/MathUtils.js", "pandav:/src/cameras/PerspectiveCamera.js" ], "buildLevel": 37, "outputDir": "/com/three/0.145.0/src/cameras", "outputPath": "/com/three/0.145.0/src/cameras/StereoCamera.js", "fileName": "/src/cameras/StereoCamera.js" }, "pandav:/src/cameras/OrthographicCamera.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/cameras/OrthographicCamera\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/cameras/Camera\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.OrthographicCamera = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Camera2 = require('pandav:/com/three/0.145.0/src/cameras/Camera');\n var OrthographicCamera = exports.OrthographicCamera = function (_Camera) {\n (0, _inherits2.default)(OrthographicCamera, _Camera);\n var _super = (0, _createSuper2.default)(OrthographicCamera);\n function OrthographicCamera() {\n var _this;\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var right = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var bottom = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var near = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.1;\n var far = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2000;\n (0, _classCallCheck2.default)(this, OrthographicCamera);\n _this = _super.call(this);\n _this.isOrthographicCamera = true;\n _this.type = 'OrthographicCamera';\n _this.zoom = 1;\n _this.view = null;\n _this.left = left;\n _this.right = right;\n _this.top = top;\n _this.bottom = bottom;\n _this.near = near;\n _this.far = far;\n _this.updateProjectionMatrix();\n return _this;\n }\n (0, _createClass2.default)(OrthographicCamera, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(OrthographicCamera.prototype), \"copy\", this).call(this, source, recursive);\n this.left = source.left;\n this.right = source.right;\n this.top = source.top;\n this.bottom = source.bottom;\n this.near = source.near;\n this.far = source.far;\n this.zoom = source.zoom;\n this.view = source.view === null ? null : Object.assign({}, source.view);\n return this;\n } },\n {\n key: \"set\",\n value: function set() {\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var right = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var bottom = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var near = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.1;\n var far = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2000;\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n this.near = near;\n this.far = far;\n this.updateProjectionMatrix();\n } },\n {\n key: \"setProjectionMatrix\",\n value: function setProjectionMatrix(matrix) {\n this.projectionMatrix.copy(matrix);\n this.projectionMatrixInverse.copy(matrix).invert();\n var te = matrix.elements;\n this.left = -(te[12] + 1) / te[0];\n this.right = this.left + 2 / te[0];\n this.bottom = -(te[13] + 1) / te[5];\n this.top = this.bottom + 2 / te[5];\n this.near = (te[14] + 1) / te[10];\n this.far = this.near - 2 / te[10];\n this.zoom = 1;\n } },\n {\n key: \"setViewOffset\",\n value: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n if (this.view === null) {\n this.view = {\n enabled: true,\n fullWidth: 1,\n fullHeight: 1,\n offsetX: 0,\n offsetY: 0,\n width: 1,\n height: 1 };\n\n }\n this.view.enabled = true;\n this.view.fullWidth = fullWidth;\n this.view.fullHeight = fullHeight;\n this.view.offsetX = x;\n this.view.offsetY = y;\n this.view.width = width;\n this.view.height = height;\n this.updateProjectionMatrix();\n } },\n {\n key: \"clearViewOffset\",\n value: function clearViewOffset() {\n if (this.view !== null) {\n this.view.enabled = false;\n }\n this.updateProjectionMatrix();\n } },\n {\n key: \"updateProjectionMatrix\",\n value: function updateProjectionMatrix() {\n var dx = (this.right - this.left) / (2 * this.zoom);\n var dy = (this.top - this.bottom) / (2 * this.zoom);\n var cx = (this.right + this.left) / 2;\n var cy = (this.top + this.bottom) / 2;\n var left = cx - dx;\n var right = cx + dx;\n var top = cy + dy;\n var bottom = cy - dy;\n if (this.view !== null && this.view.enabled) {\n var scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom;\n var scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom;\n left += scaleW * this.view.offsetX;\n right = left + scaleW * this.view.width;\n top -= scaleH * this.view.offsetY;\n bottom = top - scaleH * this.view.height;\n }\n this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far);\n this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(OrthographicCamera.prototype), \"toJSON\", this).call(this, meta);\n data.object.zoom = this.zoom;\n data.object.left = this.left;\n data.object.right = this.right;\n data.object.top = this.top;\n data.object.bottom = this.bottom;\n data.object.near = this.near;\n data.object.far = this.far;\n if (this.view !== null) data.object.view = Object.assign({}, this.view);\n return data;\n } }]);\n\n return OrthographicCamera;\n }(_Camera2.Camera);return module.exports;});", "requires": [ "pandav:/src/cameras/Camera.js" ], "buildLevel": 20, "outputDir": "/com/three/0.145.0/src/cameras", "outputPath": "/com/three/0.145.0/src/cameras/OrthographicCamera.js", "fileName": "/src/cameras/OrthographicCamera.js" }, "pandav:/src/collider/Collision.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/collider/Collision\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Collision = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var Collision = exports.Collision = (0, _createClass2.default)(function Collision(object, point) {\n (0, _classCallCheck2.default)(this, Collision);\n this.collider = object;\n this.point = point;\n this.direction = null;\n this.priority = 0;\n });return module.exports;});", "requires": [], "buildLevel": 75, "outputDir": "/com/three/0.145.0/src/collider", "outputPath": "/com/three/0.145.0/src/collider/Collision.js", "fileName": "/src/collider/Collision.js" }, "pandav:/src/collider/ColliderUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/collider/ColliderUtils\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/objects/Line\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/geometries/SphereGeometry\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BoundingSphere = exports.BoundingBox = void 0;\n exports.isPointInPolygon = isPointInPolygon;\n exports.isPointInRect = isPointInRect;\n exports.rayCollidePlane = rayCollidePlane;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Object3D = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Line = require('pandav:/com/three/0.145.0/src/objects/Line');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _SphereGeometry = require('pandav:/com/three/0.145.0/src/geometries/SphereGeometry');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var tmpVec3_8 = [0, 0, 0];\n var tmpVec3_9 = [0, 0, 0];\n var tmpVec3_10 = new _Vector.Vector3();\n var tmpNum_0 = 0;\n var tmpNum_1 = 0;\n var tmpNum_2 = 0;\n function getArrayVector(v) {\n return [v.x, v.y, v.z];\n }\n function rayCollidePlane(_p, _n, _pos, _dir) {\n var p = getArrayVector(_p);\n var n = getArrayVector(_n);\n var pos = getArrayVector(_pos);\n var dir = getArrayVector(_dir);\n tmpNum_0 = n[0] * dir[0] + n[1] * dir[1] + n[2] * dir[2];\n if (tmpNum_0 == 0) {\n return null;\n }\n tmpNum_1 = ((p[0] - pos[0]) * n[0] + (p[1] - pos[1]) * n[1] + (p[2] - pos[2]) * n[2]) / tmpNum_0;\n tmpVec3_9[0] = pos[0] + dir[0] * tmpNum_1;\n tmpVec3_9[1] = pos[1] + dir[1] * tmpNum_1;\n tmpVec3_9[2] = pos[2] + dir[2] * tmpNum_1;\n tmpVec3_8[0] = tmpVec3_9[0] - pos[0];\n tmpVec3_8[1] = tmpVec3_9[1] - pos[1];\n tmpVec3_8[2] = tmpVec3_9[2] - pos[2];\n tmpNum_2 = dir[0] * tmpVec3_8[0] + dir[1] * tmpVec3_8[1] + dir[2] * tmpVec3_8[2];\n if (tmpNum_2 < 0) {\n return null;\n }\n return tmpVec3_10.set(tmpVec3_9[0], tmpVec3_9[1], tmpVec3_9[2]);\n }\n var tmpVec3_4 = new _Vector.Vector3();\n var tmpVec3_5 = new _Vector.Vector3();\n var MIN_POLYGON_EDGE_COUNT = 3;\n function isPointInPolygon(point, polygonPoints, polygonEdges, baseVector) {\n if (polygonEdges.length < MIN_POLYGON_EDGE_COUNT) {\n return false;\n }\n var base = baseVector;\n var count = 0;\n for (var i = 0, len = polygonPoints.length; i < len; i++) {\n var p1 = polygonPoints[i];\n tmpVec3_4.subVectors(point, p1);\n tmpVec3_5.copy(point).sub(p1).sub(polygonEdges[i]);\n if (isInSameSide(polygonEdges[i], tmpVec3_4, baseVector, true)) {\n continue;\n } else {\n if (!isInSameSide(base, tmpVec3_4, tmpVec3_5, false)) {\n count++;\n }\n }\n }\n if (count % 2 == 1) {\n return true;\n } else {\n return false;\n }\n }\n var tmpVec3_6 = new _Vector.Vector3();\n var tmpVec3_7 = new _Vector.Vector3();\n function isInSameSide(base, v1, v2, parallelResult) {\n tmpVec3_6.crossVectors(base, v1);\n tmpVec3_7.crossVectors(base, v2);\n var dot = tmpVec3_7.dot(tmpVec3_6);\n if (dot == 0) {\n return parallelResult;\n } else if (dot > 0) {\n return true;\n } else {\n return false;\n }\n }\n var tmpVec3_0 = new _Vector.Vector3();\n var tmpVec3_2 = new _Vector.Vector3();\n function isPointInRect(point, rectPoint, rectEdges) {\n var firstCross = null;\n for (var i = 0; i < rectPoint.length; i++) {\n var cross = tmpVec3_2.subVectors(point, rectPoint[i]);\n cross.cross(rectEdges[i]);\n if (!firstCross) {\n if (cross.length() != 0) {\n firstCross = tmpVec3_0.copy(cross);\n }\n } else {\n var dot = firstCross.dot(cross);\n if (dot < 0) {\n return false;\n }\n }\n }\n if (firstCross) {\n return true;\n } else {\n return false;\n }\n }\n var BoxFace = function () {\n function BoxFace(pi1, pi2, pi3, pi4) {\n (0, _classCallCheck2.default)(this, BoxFace);\n this.vertices = [];\n this.edges = [new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3()];\n this.normal = new _Vector.Vector3();\n this.pi1 = void 0;\n this.pi2 = void 0;\n this.pi3 = void 0;\n this.pi4 = void 0;\n this.pi1 = pi1;\n this.pi2 = pi2;\n this.pi3 = pi3;\n this.pi4 = pi4;\n }\n (0, _createClass2.default)(BoxFace, [{\n key: \"setVertices\",\n value: function setVertices(points) {\n var pi1 = this.pi1,\n pi2 = this.pi2,\n pi3 = this.pi3,\n pi4 = this.pi4,\n vertices = this.vertices;\n vertices[0] = points[pi1];\n vertices[1] = points[pi2];\n vertices[2] = points[pi3];\n vertices[3] = points[pi4];\n } },\n {\n key: \"detect\",\n value: function detect(ray) {\n var vertices = this.vertices,\n edges = this.edges,\n normal = this.normal;\n var rayPos = ray.origin,\n rayDir = ray.direction;\n var planePoint = vertices[0];\n var point = rayCollidePlane(planePoint, normal, rayPos, rayDir);\n if (!point) {\n return null;\n }\n if (isPointInRect(point, vertices, edges)) {\n return point;\n } else {\n return null;\n }\n } },\n {\n key: \"compute\",\n value: function compute() {\n var points = this.vertices,\n edges = this.edges;\n edges[0].subVectors(points[1], points[0]);\n edges[1].subVectors(points[2], points[1]);\n edges[2].subVectors(points[3], points[2]);\n edges[3].subVectors(points[0], points[3]);\n this.normal.crossVectors(edges[0], edges[1]);\n this.normal.normalize();\n } }]);\n\n return BoxFace;\n }();\n var BoundingBox = exports.BoundingBox = function () {\n function BoundingBox() {\n (0, _classCallCheck2.default)(this, BoundingBox);\n this.vertices = [new _Vector.Vector3(0.5, 0.5, 0.5), new _Vector.Vector3(0.5, 0.5, -0.5), new _Vector.Vector3(0.5, -0.5, -0.5), new _Vector.Vector3(0.5, -0.5, 0.5), new _Vector.Vector3(-0.5, 0.5, 0.5), new _Vector.Vector3(-0.5, 0.5, -0.5), new _Vector.Vector3(-0.5, -0.5, -0.5), new _Vector.Vector3(-0.5, -0.5, 0.5)];\n this.pxFace = new BoxFace(0, 1, 2, 3);\n this.nxFace = new BoxFace(4, 5, 6, 7);\n this.pyFace = new BoxFace(0, 4, 5, 1);\n this.nyFace = new BoxFace(3, 7, 6, 2);\n this.pzFace = new BoxFace(0, 3, 7, 4);\n this.nzFace = new BoxFace(1, 2, 6, 5);\n this.faceList = [this.pxFace, this.nxFace, this.pyFace, this.nyFace, this.pzFace, this.nzFace];\n }\n (0, _createClass2.default)(BoundingBox, [{\n key: \"detect\",\n value: function detect(ray) {\n var faceList = this.faceList;\n var points = [];\n for (var i = 0, len = faceList.length; i < len; i++) {\n var point = faceList[i].detect(ray);\n if (point) {\n points.push(point);\n }\n }\n return points;\n } },\n {\n key: \"updateFaces\",\n value: function updateFaces() {\n var faceList = this.faceList;\n for (var i = 0, len = faceList.length; i < len; i++) {\n faceList[i].setVertices(this.vertices);\n faceList[i].compute();\n }\n } },\n {\n key: \"createHelper\",\n value: function createHelper() {\n var out = new _Object3D.Object3D();\n var faceList = this.faceList;\n for (var i = 0, len = faceList.length; i < len; i++) {\n var points = faceList[i].vertices;\n var geo = new _BufferGeometry.BufferGeometry();\n var _points = points.slice();\n _points.push(points[0]);\n geo.setFromPoints(_points);\n var line = new _Line.Line(geo, new _LineBasicMaterial.LineBasicMaterial({\n color: 0x0000ff }));\n\n out.add(line);\n console.log(geo);\n }\n return out;\n } },\n {\n key: \"getCenter\",\n value: function getCenter(center) {\n var _this$vertices$ = this.vertices[0],\n maxX = _this$vertices$.x,\n maxY = _this$vertices$.y,\n maxZ = _this$vertices$.z;\n var _this$vertices$2 = this.vertices[6],\n minX = _this$vertices$2.x,\n minY = _this$vertices$2.y,\n minZ = _this$vertices$2.z;\n center.x = (maxX - minX) / 2 + minX;\n center.y = (maxY - minY) / 2 + minY;\n center.z = (maxZ - minZ) / 2 + minZ;\n return center;\n } }]);\n\n return BoundingBox;\n }();\n var tmpVec3_11 = new _Vector.Vector3();\n var BoundingSphere = exports.BoundingSphere = function () {\n function BoundingSphere() {\n (0, _classCallCheck2.default)(this, BoundingSphere);\n this.radius = 0;\n this.center = new _Vector.Vector3();\n }\n (0, _createClass2.default)(BoundingSphere, [{\n key: \"createHelper\",\n value: function createHelper() {\n var mesh = new _Mesh.Mesh(new _SphereGeometry.SphereGeometry(this.radius, 100, 100), new _MeshBasicMaterial.MeshBasicMaterial({\n color: \"#ffff00\",\n wireframe: true }));\n\n return mesh;\n } },\n {\n key: \"isCross\",\n value: function isCross(ray) {\n var tmp = tmpVec3_11.subVectors(this.center, ray.origin).cross(ray.direction).lengthSq();\n var d = tmp / ray.direction.lengthSq();\n return d <= this.radius * this.radius;\n } }]);\n\n return BoundingSphere;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/core/Object3D.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/objects/Line.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/objects/Mesh.js", "pandav:/src/geometries/SphereGeometry.js", "pandav:/src/materials/MeshBasicMaterial.js" ], "buildLevel": 74, "outputDir": "/com/three/0.145.0/src/collider", "outputPath": "/com/three/0.145.0/src/collider/ColliderUtils.js", "fileName": "/src/collider/ColliderUtils.js" }, "pandav:/src/collider/Helper/Helper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/collider/Helper/Helper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Helper = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var Helper = exports.Helper = (0, _createClass2.default)(function Helper() {\n (0, _classCallCheck2.default)(this, Helper);\n this.disposeList = [];\n });return module.exports;});", "requires": [], "buildLevel": 77, "outputDir": "/com/three/0.145.0/src/collider/Helper", "outputPath": "/com/three/0.145.0/src/collider/Helper/Helper.js", "fileName": "/src/collider/Helper/Helper.js" }, "pandav:/src/collider/GeometryCollider.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/collider/GeometryCollider\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/components/Collider\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/components/SceneComponent\", \"pandav:/com/three/0.145.0/src/collider/ColliderUtils\", \"pandav:/com/three/0.145.0/src/collider/Collision\", \"pandav:/com/three/0.145.0/src/collider/Helper/GeometryColliderHelper\", \"pandav:/com/three/0.145.0/src/math/Quaternion\", \"pandav:/com/three/0.145.0/src/math/Ray\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.GeometryCollider = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Collider2 = require('pandav:/com/three/0.145.0/src/components/Collider');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Matrix2 = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var _SceneComponent = require('pandav:/com/three/0.145.0/src/components/SceneComponent');\n var _ColliderUtils = require('pandav:/com/three/0.145.0/src/collider/ColliderUtils');\n var _Collision = require('pandav:/com/three/0.145.0/src/collider/Collision');\n var _GeometryColliderHelper = require('pandav:/com/three/0.145.0/src/collider/Helper/GeometryColliderHelper');\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var _Ray = require('pandav:/com/three/0.145.0/src/math/Ray');\n var POINT_DIMENSION_COUNT = 3;\n var tmpVec3_0 = new _Vector.Vector3();\n var tmpVec3_1 = new _Vector.Vector3();\n var tmpVec3_4 = new _Vector.Vector3();\n var tmpVec3_5 = new _Vector.Vector3();\n var tmpVec3_6 = new _Vector.Vector3();\n var tmpVec3_7 = new _Vector.Vector3();\n var tmpVec3_8 = new _Vector.Vector3();\n var tmpVec3_9 = new _Vector.Vector3();\n var tmpVec3_10 = new _Vector.Vector3();\n var tmpQua_0 = new _Quaternion.Quaternion();\n var localRay = new _Ray.Ray();\n var tmpMat4_0 = new _Matrix.Matrix4();\n var ZERO_VECTOR3 = new _Vector.Vector3();\n var GeometryCollider = exports.GeometryCollider = function (_Collider) {\n (0, _inherits2.default)(GeometryCollider, _Collider);\n var _super = (0, _createSuper2.default)(GeometryCollider);\n function GeometryCollider() {\n var _this;\n (0, _classCallCheck2.default)(this, GeometryCollider);\n _this = _super.call(this);\n _this.faceList = [];\n _this.inited = false;\n _this.lastMatrix = null;\n _this.modelToWorldMatrix4 = new _Matrix.Matrix4();\n _this.worldToModelMatrix4 = new _Matrix.Matrix4();\n _this.worldToModelMatrix3 = new _Matrix2.Matrix3();\n _this.boundingBox = new _ColliderUtils.BoundingBox();\n _this.boudingSphere = new _ColliderUtils.BoundingSphere();\n _this.collideType = _SceneComponent.ColliderType.Geometry;\n return _this;\n }\n (0, _createClass2.default)(GeometryCollider, [{\n key: \"detectRay\",\n value: function detectRay(ray, camera, viewHeight) {\n if (!this.owner) {\n return null;\n }\n this.validate();\n if (this.owner.matrixWorldNeedsUpdate) {\n this.owner.updateWorldMatrix(true, false);\n }\n var localRayPosition = tmpVec3_0.copy(ray.origin);\n localRayPosition.applyMatrix4(this.worldToModelMatrix4);\n var localRayDirection = tmpVec3_1.copy(ray.direction);\n localRayDirection.applyMatrix3(this.worldToModelMatrix3);\n localRay.direction = localRayDirection;\n localRay.origin = localRayPosition;\n if (!this.boudingSphere.isCross(localRay)) {\n return null;\n }\n if (this.boundingBox.detect(localRay).length === 0) {\n return null;\n }\n var faceList = this.faceList;\n for (var i = 0, len = faceList.length, crossPoint; i < len; i++) {\n crossPoint = faceList[i].detect(localRayPosition, localRayDirection);\n if (crossPoint) {\n var _crossPoint = new _Vector.Vector3();\n _crossPoint.copy(crossPoint);\n _crossPoint.applyMatrix4(this.modelToWorldMatrix4);\n var c = new _Collision.Collision(this, _crossPoint);\n c.priority = this.priority;\n return c;\n }\n }\n return null;\n } },\n {\n key: \"createHelper\",\n value: function createHelper() {\n return new _GeometryColliderHelper.GeometryColliderHelper(this);\n } },\n {\n key: \"init\",\n value: function init() {\n if (!this.owner) {\n return false;\n }\n var owner = this.owner;\n var mesh = owner;\n if (!mesh.isMesh || !mesh.geometry) {\n return false;\n }\n var i, j, k, iLen, jLen, kLen;\n var minX = Infinity;\n var minY = Infinity;\n var minZ = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n var maxZ = -Infinity;\n var v;\n function getExtremeValue(points) {\n for (k = 0, kLen = points.length; k < kLen; k++) {\n v = points[k];\n if (v.x < minX) {\n minX = v.x;\n }\n if (v.x > maxX) {\n maxX = v.x;\n }\n if (v.y < minY) {\n minY = v.y;\n }\n if (v.y > maxY) {\n maxY = v.y;\n }\n if (v.z < minZ) {\n minZ = v.z;\n }\n if (v.z > maxZ) {\n maxZ = v.z;\n }\n }\n }\n var geometry = mesh.geometry;\n var drawRange = geometry.drawRange;\n var index = geometry.index;\n var position = geometry.attributes.position;\n var faceList = [];\n var groups = geometry.groups;\n if (index !== null) {\n if (groups.length > 0) {\n for (i = 0, iLen = groups.length; i < iLen; i++) {\n var group = groups[i];\n var start = Math.max(group.start, drawRange.start);\n var end = Math.min(index.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\n for (j = start, jLen = end; j < jLen; j += POINT_DIMENSION_COUNT) {\n var face = new Face();\n position.getXYZ(index.getX(j), face.points[0]);\n position.getXYZ(index.getX(j + 1), face.points[1]);\n position.getXYZ(index.getX(j + 2), face.points[2]);\n face.compute();\n faceList.push(face);\n getExtremeValue(face.points);\n }\n }\n } else {\n var _start = Math.max(0, drawRange.start);\n var _end = Math.min(index.count, drawRange.start + drawRange.count);\n for (i = _start, iLen = _end; i < iLen; i += POINT_DIMENSION_COUNT) {\n var _face = new Face();\n position.getXYZ(index.getX(i), _face.points[0]);\n position.getXYZ(index.getX(i + 1), _face.points[1]);\n position.getXYZ(index.getX(i + 2), _face.points[2]);\n _face.compute();\n faceList.push(_face);\n getExtremeValue(_face.points);\n }\n }\n } else if (position !== undefined) {\n if (groups.length > 0) {\n for (i = 0, iLen = groups.length; i < iLen; i++) {\n var _group = groups[i];\n var _start2 = Math.max(_group.start, drawRange.start);\n var _end2 = Math.min(position.count, Math.min(_group.start + _group.count, drawRange.start + drawRange.count));\n for (j = _start2, jLen = _end2; j < jLen; j += POINT_DIMENSION_COUNT) {\n var _face2 = new Face();\n position.getXYZ(j, _face2.points[0]);\n position.getXYZ(j + 1, _face2.points[1]);\n position.getXYZ(j + 2, _face2.points[2]);\n _face2.compute();\n faceList.push(_face2);\n getExtremeValue(_face2.points);\n }\n }\n } else {\n var _start3 = Math.max(0, drawRange.start);\n var _end3 = Math.min(position.count, drawRange.start + drawRange.count);\n for (i = _start3, iLen = _end3; i < iLen; i += POINT_DIMENSION_COUNT) {\n var _face3 = new Face();\n position.getXYZ(i, _face3.points[0]);\n position.getXYZ(i + 1, _face3.points[1]);\n position.getXYZ(i + 2, _face3.points[2]);\n _face3.compute();\n faceList.push(_face3);\n getExtremeValue(_face3.points);\n }\n }\n }\n this.faceList = faceList;\n this.boundingBox.vertices[0].set(maxX, maxY, maxZ);\n this.boundingBox.vertices[1].set(maxX, minY, maxZ);\n this.boundingBox.vertices[2].set(maxX, minY, minZ);\n this.boundingBox.vertices[3].set(maxX, maxY, minZ);\n this.boundingBox.vertices[4].set(minX, maxY, maxZ);\n this.boundingBox.vertices[5].set(minX, minY, maxZ);\n this.boundingBox.vertices[6].set(minX, minY, minZ);\n this.boundingBox.vertices[7].set(minX, maxY, minZ);\n this.boundingBox.updateFaces();\n var center = this.boundingBox.getCenter(tmpVec3_8);\n var points;\n var maxSquareDistance = 0;\n var squareDistance = 0;\n for (i = 0, iLen = faceList.length; i < iLen; i++) {\n points = faceList[i].points;\n for (j = 0, jLen = points.length; j < jLen; j++) {\n squareDistance = points[j].distanceToSquared(center);\n if (squareDistance > maxSquareDistance) {\n maxSquareDistance = squareDistance;\n }\n }\n }\n this.boudingSphere.radius = Math.sqrt(maxSquareDistance);\n this.boudingSphere.center.copy(center);\n this.inited = true;\n } },\n {\n key: \"validate\",\n value: function validate() {\n if (!this.owner) {\n return false;\n }\n var owner = this.owner;\n if (owner.matrixWorldNeedsUpdate) {\n owner.updateWorldMatrix(true, false);\n }\n if (this.lastMatrix === null) {\n this.lastMatrix = new _Matrix.Matrix4();\n } else if (this.lastMatrix.equals(owner.matrixWorld)) {\n return false;\n }\n owner.matrixWorld.decompose(tmpVec3_9, tmpQua_0, tmpVec3_10);\n var o = tmpVec3_9;\n var m = tmpMat4_0;\n m.compose(ZERO_VECTOR3, tmpQua_0, tmpVec3_10);\n var x = tmpVec3_5.set(1, 0, 0).applyMatrix4(m);\n var y = tmpVec3_6.set(0, 1, 0).applyMatrix4(m);\n var z = tmpVec3_7.set(0, 0, 1).applyMatrix4(m);\n this.modelToWorldMatrix4.set(x.x, y.x, z.x, o.x, x.y, y.y, z.y, o.y, x.z, y.z, z.z, o.z, 0, 0, 0, 1);\n this.worldToModelMatrix4.copy(this.modelToWorldMatrix4);\n this.worldToModelMatrix4.invert();\n this.worldToModelMatrix3.set(x.x, y.x, z.x, x.y, y.y, z.y, x.z, y.z, z.z);\n this.worldToModelMatrix3.invert();\n this.lastMatrix.copy(owner.matrixWorld);\n if (!this.inited) {\n this.init();\n }\n return true;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n return this;\n } }]);\n\n return GeometryCollider;\n }(_Collider2.Collider);\n var Face = function () {\n function Face() {\n (0, _classCallCheck2.default)(this, Face);\n this.points = [new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3()];\n this.normal = new _Vector.Vector3();\n this.edges = [new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3()];\n }\n (0, _createClass2.default)(Face, [{\n key: \"compute\",\n value: function compute() {\n var points = this.points,\n edges = this.edges;\n edges[0].subVectors(points[1], points[0]);\n edges[1].subVectors(points[2], points[1]);\n edges[2].subVectors(points[0], points[2]);\n this.normal.crossVectors(edges[0], edges[1]);\n this.normal.normalize();\n } },\n {\n key: \"applayMatrix\",\n value: function applayMatrix(matrix) {\n var points = this.points;\n points[0].applyMatrix4(matrix);\n points[1].applyMatrix4(matrix);\n points[2].applyMatrix4(matrix);\n } },\n {\n key: \"detect\",\n value: function detect(rayPosition, rayDirection) {\n var that = this;\n var crossPoint = (0, _ColliderUtils.rayCollidePlane)(that.points[0], that.normal, rayPosition, rayDirection);\n if (!crossPoint) {\n return null;\n }\n if (!isPointInTriangle(crossPoint, that.points, that.edges)) {\n return null;\n }\n return crossPoint;\n } }]);\n\n return Face;\n }();\n var tmpVec3_3 = new _Vector.Vector3();\n var tmpVec3_2 = new _Vector.Vector3();\n function isPointInTriangle(point, rectPoint, rectEdges) {\n var firstCross = null;\n for (var i = 0; i < rectPoint.length; i++) {\n var cross = tmpVec3_2.subVectors(point, rectPoint[i]);\n cross.cross(rectEdges[i]);\n if (!firstCross) {\n if (cross.length() != 0) {\n firstCross = tmpVec3_3.copy(cross);\n }\n } else {\n var dot = firstCross.dot(cross);\n if (dot < 0) {\n return false;\n }\n }\n }\n if (firstCross) {\n return true;\n } else {\n return false;\n }\n }return module.exports;});", "requires": [ "pandav:/src/components/Collider.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Matrix3.js", "pandav:/src/components/SceneComponent.js", "pandav:/src/collider/ColliderUtils.js", "pandav:/src/collider/Collision.js", "pandav:/src/collider/Helper/GeometryColliderHelper.js", "pandav:/src/math/Quaternion.js", "pandav:/src/math/Ray.js" ], "buildLevel": 72, "outputDir": "/com/three/0.145.0/src/collider", "outputPath": "/com/three/0.145.0/src/collider/GeometryCollider.js", "fileName": "/src/collider/GeometryCollider.js" }, "pandav:/src/components/SceneComponent.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/components/SceneComponent\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SceneComponentType = exports.SceneComponent = exports.ColliderType = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var ColliderType = exports.ColliderType = {\n Null: 0,\n Box: 1,\n Geometry: 2,\n ImageSprite: 3,\n Polygon: 4 };\n\n var SceneComponentType = exports.SceneComponentType = {\n Null: 0,\n Script: 1,\n Collider: 2 };\n\n var SceneComponent = exports.SceneComponent = function () {\n function SceneComponent() {\n (0, _classCallCheck2.default)(this, SceneComponent);\n this.uuid = \"\";\n this.owner = null;\n this.type = 0;\n this.name = \"\";\n this.uuid = MathUtils.generateUUID();\n this.active = true;\n }\n (0, _createClass2.default)(SceneComponent, [{\n key: \"isActive\",\n value: function isActive() {\n return this.owner && this.active && this.owner.inheritedVisible;\n } }]);\n\n return SceneComponent;\n }();return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js" ], "buildLevel": 74, "outputDir": "/com/three/0.145.0/src/components", "outputPath": "/com/three/0.145.0/src/components/SceneComponent.js", "fileName": "/src/components/SceneComponent.js" }, "pandav:/src/collider/Helper/GeometryColliderHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/collider/Helper/GeometryColliderHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/collider/Helper/Helper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.GeometryColliderHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Helper2 = require('pandav:/com/three/0.145.0/src/collider/Helper/Helper');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var POINT_DIMENSION_COUNT = 3;\n var TRIANGLE_VERTEX_COUNT = 3;\n var tmpVec3_0 = new _Vector.Vector3();\n var GeometryColliderHelper = exports.GeometryColliderHelper = function (_Helper) {\n (0, _inherits2.default)(GeometryColliderHelper, _Helper);\n var _super = (0, _createSuper2.default)(GeometryColliderHelper);\n function GeometryColliderHelper(collider) {\n var _this;\n (0, _classCallCheck2.default)(this, GeometryColliderHelper);\n _this = _super.call(this);\n _this.collider = void 0;\n _this.geometry = void 0;\n _this.mesh = void 0;\n _this.collider = collider;\n _this.geometry = new _BufferGeometry.BufferGeometry();\n _this.disposeList.push(_this.geometry);\n var mat = new _MeshBasicMaterial.MeshBasicMaterial({\n color: 0x00ff00,\n wireframe: true });\n\n _this.disposeList.push(mat);\n var mesh = new _Mesh.Mesh(_this.geometry, mat);\n _this.mesh = mesh;\n _this.updateMesh();\n return _this;\n }\n (0, _createClass2.default)(GeometryColliderHelper, [{\n key: \"getObject\",\n value: function getObject() {\n return this.mesh;\n } },\n {\n key: \"updateGeometryAttribute\",\n value: function updateGeometryAttribute() {\n var faceList = this.collider.faceList;\n var matrixWorld = this.collider.owner.matrixWorld;\n var float32Array = new Float32Array(TRIANGLE_VERTEX_COUNT * POINT_DIMENSION_COUNT * faceList.length);\n var att = new _BufferAttribute.Float32BufferAttribute(float32Array, POINT_DIMENSION_COUNT, false);\n this.geometry.setAttribute(\"position\", att);\n for (var i = 0, len = faceList.length, points; i < len; i++) {\n points = faceList[i].points;\n tmpVec3_0.copy(points[0]).applyMatrix4(matrixWorld);\n att.setXYZ(i * POINT_DIMENSION_COUNT + 0, tmpVec3_0.x, tmpVec3_0.y, tmpVec3_0.z);\n tmpVec3_0.copy(points[1]).applyMatrix4(matrixWorld);\n att.setXYZ(i * POINT_DIMENSION_COUNT + 1, tmpVec3_0.x, tmpVec3_0.y, tmpVec3_0.z);\n tmpVec3_0.copy(points[2]).applyMatrix4(matrixWorld);\n att.setXYZ(i * POINT_DIMENSION_COUNT + 2, tmpVec3_0.x, tmpVec3_0.y, tmpVec3_0.z);\n }\n att.needsUpdate = true;\n } },\n {\n key: \"dispose\",\n value: function dispose() {} },\n {\n key: \"updateMesh\",\n value: function updateMesh() {\n var collider = this.collider;\n var needUpdate = collider.validate();\n if (needUpdate) {\n this.updateGeometryAttribute();\n }\n } },\n {\n key: \"update\",\n value: function update(camera, viewHeight) {\n if (!this.collider.active) {\n this.mesh.visible = false;\n return;\n } else {\n this.mesh.visible = true;\n }\n this.updateMesh();\n } }]);\n\n return GeometryColliderHelper;\n }(_Helper2.Helper);return module.exports;});", "requires": [ "pandav:/src/collider/Helper/Helper.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/objects/Mesh.js", "pandav:/src/math/Vector3.js", "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 76, "outputDir": "/com/three/0.145.0/src/collider/Helper", "outputPath": "/com/three/0.145.0/src/collider/Helper/GeometryColliderHelper.js", "fileName": "/src/collider/Helper/GeometryColliderHelper.js" }, "pandav:/src/components/Collider.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/components/Collider\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/components/SceneComponent\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Collider = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _SceneComponent2 = require('pandav:/com/three/0.145.0/src/components/SceneComponent');\n var Collider = exports.Collider = function (_SceneComponent) {\n (0, _inherits2.default)(Collider, _SceneComponent);\n var _super = (0, _createSuper2.default)(Collider);\n function Collider() {\n var _this;\n (0, _classCallCheck2.default)(this, Collider);\n _this = _super.call(this);\n _this.priority = 0;\n _this.isEditorMode = false;\n _this.collideType = _SceneComponent2.ColliderType.Null;\n _this.type = _SceneComponent2.SceneComponentType.Collider;\n return _this;\n }\n (0, _createClass2.default)(Collider, [{\n key: \"toJSON\",\n value: function toJSON() {\n return {\n uuid: this.uuid,\n owner: this.owner.uuid,\n type: this.type,\n colliderType: this.collideType };\n\n } },\n {\n key: \"clone\",\n value: function clone() {\n var cls = this.constructor;\n return new cls().copy(this);\n } }]);\n\n return Collider;\n }(_SceneComponent2.SceneComponent);return module.exports;});", "requires": [ "pandav:/src/components/SceneComponent.js" ], "buildLevel": 73, "outputDir": "/com/three/0.145.0/src/components", "outputPath": "/com/three/0.145.0/src/components/Collider.js", "fileName": "/src/components/Collider.js" }, "pandav:/src/core/BufferAttribute.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/BufferAttribute\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Uint8ClampedBufferAttribute = exports.Uint8BufferAttribute = exports.Uint32BufferAttribute = exports.Uint16BufferAttribute = exports.Int8BufferAttribute = exports.Int32BufferAttribute = exports.Int16BufferAttribute = exports.Float64BufferAttribute = exports.Float32BufferAttribute = exports.Float16BufferAttribute = exports.BufferAttribute = void 0;\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _MathUtils = require('pandav:/com/three/0.145.0/src/math/MathUtils');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _vector = new _Vector.Vector3();\n var _vector2 = new _Vector2.Vector2();\n var BufferAttribute = exports.BufferAttribute = function () {\n function BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, BufferAttribute);\n if (Array.isArray(array)) {\n throw new TypeError('THREE.BufferAttribute: array should be a Typed Array.');\n }\n this.isBufferAttribute = true;\n this.name = '';\n this.array = array;\n this.itemSize = itemSize;\n this.count = array !== undefined ? array.length / itemSize : 0;\n this.normalized = normalized === true;\n this.usage = _constants.StaticDrawUsage;\n this.updateRange = {\n offset: 0,\n count: -1 };\n\n this.version = 0;\n }\n (0, _createClass2.default)(BufferAttribute, [{\n key: \"onUploadCallback\",\n value: function onUploadCallback() {} },\n {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n } },\n {\n key: \"setUsage\",\n value: function setUsage(value) {\n this.usage = value;\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.array = new source.array.constructor(source.array);\n this.itemSize = source.itemSize;\n this.count = source.count;\n this.normalized = source.normalized;\n this.usage = source.usage;\n return this;\n } },\n {\n key: \"copyAt\",\n value: function copyAt(index1, attribute, index2) {\n index1 *= this.itemSize;\n index2 *= attribute.itemSize;\n for (var i = 0, l = this.itemSize; i < l; i++) {\n this.array[index1 + i] = attribute.array[index2 + i];\n }\n return this;\n } },\n {\n key: \"copyArray\",\n value: function copyArray(array) {\n this.array.set(array);\n return this;\n } },\n {\n key: \"applyMatrix3\",\n value: function applyMatrix3(m) {\n if (this.itemSize === 2) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector2.fromBufferAttribute(this, i);\n _vector2.applyMatrix3(m);\n this.setXY(i, _vector2.x, _vector2.y);\n }\n } else if (this.itemSize === 3) {\n for (var _i = 0, _l = this.count; _i < _l; _i++) {\n _vector.fromBufferAttribute(this, _i);\n _vector.applyMatrix3(m);\n this.setXYZ(_i, _vector.x, _vector.y, _vector.z);\n }\n }\n return this;\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector.fromBufferAttribute(this, i);\n _vector.applyMatrix4(m);\n this.setXYZ(i, _vector.x, _vector.y, _vector.z);\n }\n return this;\n } },\n {\n key: \"applyNormalMatrix\",\n value: function applyNormalMatrix(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector.fromBufferAttribute(this, i);\n _vector.applyNormalMatrix(m);\n this.setXYZ(i, _vector.x, _vector.y, _vector.z);\n }\n return this;\n } },\n {\n key: \"transformDirection\",\n value: function transformDirection(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector.fromBufferAttribute(this, i);\n _vector.transformDirection(m);\n this.setXYZ(i, _vector.x, _vector.y, _vector.z);\n }\n return this;\n } },\n {\n key: \"set\",\n value: function set(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.array.set(value, offset);\n return this;\n } },\n {\n key: \"getX\",\n value: function getX(index) {\n var x = this.array[index * this.itemSize];\n if (this.normalized) x = (0, _MathUtils.denormalize)(x, this.array);\n return x;\n } },\n {\n key: \"setX\",\n value: function setX(index, x) {\n if (this.normalized) x = (0, _MathUtils.normalize)(x, this.array);\n this.array[index * this.itemSize] = x;\n return this;\n } },\n {\n key: \"getY\",\n value: function getY(index) {\n var y = this.array[index * this.itemSize + 1];\n if (this.normalized) y = (0, _MathUtils.denormalize)(y, this.array);\n return y;\n } },\n {\n key: \"setY\",\n value: function setY(index, y) {\n if (this.normalized) y = (0, _MathUtils.normalize)(y, this.array);\n this.array[index * this.itemSize + 1] = y;\n return this;\n } },\n {\n key: \"getZ\",\n value: function getZ(index) {\n var z = this.array[index * this.itemSize + 2];\n if (this.normalized) z = (0, _MathUtils.denormalize)(z, this.array);\n return z;\n } },\n {\n key: \"setZ\",\n value: function setZ(index, z) {\n if (this.normalized) z = (0, _MathUtils.normalize)(z, this.array);\n this.array[index * this.itemSize + 2] = z;\n return this;\n } },\n {\n key: \"getW\",\n value: function getW(index) {\n var w = this.array[index * this.itemSize + 3];\n if (this.normalized) w = (0, _MathUtils.denormalize)(w, this.array);\n return w;\n } },\n {\n key: \"setW\",\n value: function setW(index, w) {\n if (this.normalized) w = (0, _MathUtils.normalize)(w, this.array);\n this.array[index * this.itemSize + 3] = w;\n return this;\n } },\n {\n key: \"setXY\",\n value: function setXY(index, x, y) {\n index *= this.itemSize;\n if (this.normalized) {\n x = (0, _MathUtils.normalize)(x, this.array);\n y = (0, _MathUtils.normalize)(y, this.array);\n }\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n return this;\n } },\n {\n key: \"setXYZ\",\n value: function setXYZ(index, x, y, z) {\n index *= this.itemSize;\n if (this.normalized) {\n x = (0, _MathUtils.normalize)(x, this.array);\n y = (0, _MathUtils.normalize)(y, this.array);\n z = (0, _MathUtils.normalize)(z, this.array);\n }\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n this.array[index + 2] = z;\n return this;\n } },\n {\n key: \"getXYZ\",\n value: function getXYZ(index, out) {\n var startIndex = index * this.itemSize;\n var array = this.array;\n out.x = array[startIndex + 0];\n out.y = array[startIndex + 1];\n out.z = array[startIndex + 2];\n if (this.normalized) {\n out.x = (0, _MathUtils.denormalize)(out.x, array);\n out.y = (0, _MathUtils.denormalize)(out.y, array);\n out.z = (0, _MathUtils.denormalize)(out.z, array);\n }\n return this;\n } },\n {\n key: \"setXYZW\",\n value: function setXYZW(index, x, y, z, w) {\n index *= this.itemSize;\n if (this.normalized) {\n x = (0, _MathUtils.normalize)(x, this.array);\n y = (0, _MathUtils.normalize)(y, this.array);\n z = (0, _MathUtils.normalize)(z, this.array);\n w = (0, _MathUtils.normalize)(w, this.array);\n }\n this.array[index + 0] = x;\n this.array[index + 1] = y;\n this.array[index + 2] = z;\n this.array[index + 3] = w;\n return this;\n } },\n {\n key: \"onUpload\",\n value: function onUpload(callback) {\n this.onUploadCallback = callback;\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.array, this.itemSize).copy(this);\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n itemSize: this.itemSize,\n type: this.array.constructor.name,\n array: Array.from(this.array),\n normalized: this.normalized };\n\n if (this.name !== '') data.name = this.name;\n if (this.usage !== _constants.StaticDrawUsage) data.usage = this.usage;\n if (this.updateRange.offset !== 0 || this.updateRange.count !== -1) data.updateRange = this.updateRange;\n return data;\n } },\n {\n key: \"copyColorsArray\",\n value: function copyColorsArray() {\n console.error('THREE.BufferAttribute: copyColorsArray() was removed in r144.');\n } },\n {\n key: \"copyVector2sArray\",\n value: function copyVector2sArray() {\n console.error('THREE.BufferAttribute: copyVector2sArray() was removed in r144.');\n } },\n {\n key: \"copyVector3sArray\",\n value: function copyVector3sArray() {\n console.error('THREE.BufferAttribute: copyVector3sArray() was removed in r144.');\n } },\n {\n key: \"copyVector4sArray\",\n value: function copyVector4sArray() {\n console.error('THREE.BufferAttribute: copyVector4sArray() was removed in r144.');\n } }]);\n\n return BufferAttribute;\n }();\n var Int8BufferAttribute = exports.Int8BufferAttribute = function (_BufferAttribute) {\n (0, _inherits2.default)(Int8BufferAttribute, _BufferAttribute);\n var _super = (0, _createSuper2.default)(Int8BufferAttribute);\n function Int8BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Int8BufferAttribute);\n return _super.call(this, new Int8Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Int8BufferAttribute);\n }(BufferAttribute);\n var Uint8BufferAttribute = exports.Uint8BufferAttribute = function (_BufferAttribute2) {\n (0, _inherits2.default)(Uint8BufferAttribute, _BufferAttribute2);\n var _super2 = (0, _createSuper2.default)(Uint8BufferAttribute);\n function Uint8BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Uint8BufferAttribute);\n return _super2.call(this, new Uint8Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Uint8BufferAttribute);\n }(BufferAttribute);\n var Uint8ClampedBufferAttribute = exports.Uint8ClampedBufferAttribute = function (_BufferAttribute3) {\n (0, _inherits2.default)(Uint8ClampedBufferAttribute, _BufferAttribute3);\n var _super3 = (0, _createSuper2.default)(Uint8ClampedBufferAttribute);\n function Uint8ClampedBufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Uint8ClampedBufferAttribute);\n return _super3.call(this, new Uint8ClampedArray(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Uint8ClampedBufferAttribute);\n }(BufferAttribute);\n var Int16BufferAttribute = exports.Int16BufferAttribute = function (_BufferAttribute4) {\n (0, _inherits2.default)(Int16BufferAttribute, _BufferAttribute4);\n var _super4 = (0, _createSuper2.default)(Int16BufferAttribute);\n function Int16BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Int16BufferAttribute);\n return _super4.call(this, new Int16Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Int16BufferAttribute);\n }(BufferAttribute);\n var Uint16BufferAttribute = exports.Uint16BufferAttribute = function (_BufferAttribute5) {\n (0, _inherits2.default)(Uint16BufferAttribute, _BufferAttribute5);\n var _super5 = (0, _createSuper2.default)(Uint16BufferAttribute);\n function Uint16BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Uint16BufferAttribute);\n return _super5.call(this, new Uint16Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Uint16BufferAttribute);\n }(BufferAttribute);\n var Int32BufferAttribute = exports.Int32BufferAttribute = function (_BufferAttribute6) {\n (0, _inherits2.default)(Int32BufferAttribute, _BufferAttribute6);\n var _super6 = (0, _createSuper2.default)(Int32BufferAttribute);\n function Int32BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Int32BufferAttribute);\n return _super6.call(this, new Int32Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Int32BufferAttribute);\n }(BufferAttribute);\n var Uint32BufferAttribute = exports.Uint32BufferAttribute = function (_BufferAttribute7) {\n (0, _inherits2.default)(Uint32BufferAttribute, _BufferAttribute7);\n var _super7 = (0, _createSuper2.default)(Uint32BufferAttribute);\n function Uint32BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Uint32BufferAttribute);\n return _super7.call(this, new Uint32Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Uint32BufferAttribute);\n }(BufferAttribute);\n var Float16BufferAttribute = exports.Float16BufferAttribute = function (_BufferAttribute8) {\n (0, _inherits2.default)(Float16BufferAttribute, _BufferAttribute8);\n var _super8 = (0, _createSuper2.default)(Float16BufferAttribute);\n function Float16BufferAttribute(array, itemSize, normalized) {\n var _this;\n (0, _classCallCheck2.default)(this, Float16BufferAttribute);\n _this = _super8.call(this, new Uint16Array(array), itemSize, normalized);\n _this.isFloat16BufferAttribute = true;\n return _this;\n }\n return (0, _createClass2.default)(Float16BufferAttribute);\n }(BufferAttribute);\n var Float32BufferAttribute = exports.Float32BufferAttribute = function (_BufferAttribute9) {\n (0, _inherits2.default)(Float32BufferAttribute, _BufferAttribute9);\n var _super9 = (0, _createSuper2.default)(Float32BufferAttribute);\n function Float32BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Float32BufferAttribute);\n return _super9.call(this, new Float32Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Float32BufferAttribute);\n }(BufferAttribute);\n var Float64BufferAttribute = exports.Float64BufferAttribute = function (_BufferAttribute10) {\n (0, _inherits2.default)(Float64BufferAttribute, _BufferAttribute10);\n var _super10 = (0, _createSuper2.default)(Float64BufferAttribute);\n function Float64BufferAttribute(array, itemSize, normalized) {\n (0, _classCallCheck2.default)(this, Float64BufferAttribute);\n return _super10.call(this, new Float64Array(array), itemSize, normalized);\n }\n return (0, _createClass2.default)(Float64BufferAttribute);\n }(BufferAttribute);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/MathUtils.js", "pandav:/src/constants.js" ], "buildLevel": 17, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/BufferAttribute.js", "fileName": "/src/core/BufferAttribute.js" }, "pandav:/src/core/Clock.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/Clock\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Clock = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Clock = exports.Clock = function () {\n function Clock() {\n var autoStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n (0, _classCallCheck2.default)(this, Clock);\n this.autoStart = autoStart;\n this.startTime = 0;\n this.oldTime = 0;\n this.elapsedTime = 0;\n this.running = false;\n }\n (0, _createClass2.default)(Clock, [{\n key: \"start\",\n value: function start() {\n this.startTime = now();\n this.oldTime = this.startTime;\n this.elapsedTime = 0;\n this.running = true;\n } },\n {\n key: \"stop\",\n value: function stop() {\n this.getElapsedTime();\n this.running = false;\n this.autoStart = false;\n } },\n {\n key: \"getElapsedTime\",\n value: function getElapsedTime() {\n this.getDelta();\n return this.elapsedTime;\n } },\n {\n key: \"getDelta\",\n value: function getDelta() {\n var diff = 0;\n if (this.autoStart && !this.running) {\n this.start();\n return 0;\n }\n if (this.running) {\n var newTime = now();\n diff = (newTime - this.oldTime) / 1000;\n this.oldTime = newTime;\n this.elapsedTime += diff;\n }\n return diff;\n } }]);\n\n return Clock;\n }();\n function now() {\n return (typeof performance === 'undefined' ? Date : performance).now();\n }return module.exports;});", "requires": [], "buildLevel": 43, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/Clock.js", "fileName": "/src/core/Clock.js" }, "pandav:/src/constants.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/constants\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ObjectSpaceNormalMap = exports.NotEqualStencilFunc = exports.NotEqualDepth = exports.NormalBlending = exports.NormalAnimationBlendMode = exports.NoToneMapping = exports.NoColorSpace = exports.NoBlending = exports.NeverStencilFunc = exports.NeverDepth = exports.NearestMipmapNearestFilter = exports.NearestMipmapLinearFilter = exports.NearestMipMapNearestFilter = exports.NearestMipMapLinearFilter = exports.NearestFilter = exports.MultiplyOperation = exports.MultiplyBlending = exports.MixOperation = exports.MirroredRepeatWrapping = exports.MinEquation = exports.MaxEquation = exports.MOUSE = exports.LuminanceFormat = exports.LuminanceAlphaFormat = exports.LoopRepeat = exports.LoopPingPong = exports.LoopOnce = exports.LinearToneMapping = exports.LinearSRGBColorSpace = exports.LinearMipmapNearestFilter = exports.LinearMipmapLinearFilter = exports.LinearMipMapNearestFilter = exports.LinearMipMapLinearFilter = exports.LinearFilter = exports.LinearEncoding = exports.LessStencilFunc = exports.LessEqualStencilFunc = exports.LessEqualDepth = exports.LessDepth = exports.KeepStencilOp = exports.InvertStencilOp = exports.InterpolateSmooth = exports.InterpolateLinear = exports.InterpolateDiscrete = exports.IntType = exports.IncrementWrapStencilOp = exports.IncrementStencilOp = exports.HalfFloatType = exports.GreaterStencilFunc = exports.GreaterEqualStencilFunc = exports.GreaterEqualDepth = exports.GreaterDepth = exports.GLSL3 = exports.GLSL1 = exports.FrontSide = exports.ForwardTransparentQueue = exports.ForwardTransmissiveQueue = exports.ForwardOpaqueQueue = exports.FloatType = exports.EquirectangularRefractionMapping = exports.EquirectangularReflectionMapping = exports.EqualStencilFunc = exports.EqualDepth = exports.DynamicReadUsage = exports.DynamicDrawUsage = exports.DynamicCopyUsage = exports.DstColorFactor = exports.DstAlphaFactor = exports.DoubleSide = exports.DepthStencilFormat = exports.DepthFormat = exports.DeferredTransmissiveQueue = exports.DeferredOpaqueQueue = exports.DefaultQueue = exports.DecrementWrapStencilOp = exports.DecrementStencilOp = exports.CustomToneMapping = exports.CustomBlending = exports.CullFaceNone = exports.CullFaceFrontBack = exports.CullFaceFront = exports.CullFaceBack = exports.CubeUVReflectionMapping = exports.CubeRefractionMapping = exports.CubeReflectionMapping = exports.ClampToEdgeWrapping = exports.CineonToneMapping = exports.ByteType = exports.BasicShadowMap = exports.BasicDepthPacking = exports.BackgroundQueue = exports.BackSide = exports.AlwaysStencilFunc = exports.AlwaysDepth = exports.AlphaFormat = exports.AdditiveBlending = exports.AdditiveAnimationBlendMode = exports.AddOperation = exports.AddEquation = exports.ACESFilmicToneMapping = void 0;\n exports.sRGBEncoding = exports._SRGBAFormat = exports.ZeroStencilOp = exports.ZeroSlopeEnding = exports.ZeroFactor = exports.ZeroCurvatureEnding = exports.WrapAroundEnding = exports.VSMShadowMap = exports.UnsignedShortType = exports.UnsignedShort5551Type = exports.UnsignedShort4444Type = exports.UnsignedIntType = exports.UnsignedInt248Type = exports.UnsignedByteType = exports.UVMapping = exports.TrianglesDrawMode = exports.TriangleStripDrawMode = exports.TriangleFanDrawMode = exports.TangentSpaceNormalMap = exports.TOUCH = exports.SubtractiveBlending = exports.SubtractEquation = exports.StreamReadUsage = exports.StreamDrawUsage = exports.StreamCopyUsage = exports.StaticReadUsage = exports.StaticDrawUsage = exports.StaticCopyUsage = exports.SrcColorFactor = exports.SrcAlphaSaturateFactor = exports.SrcAlphaFactor = exports.ShortType = exports.SRGBColorSpace = exports.ReverseSubtractEquation = exports.ReplaceStencilOp = exports.RepeatWrapping = exports.ReinhardToneMapping = exports.RedIntegerFormat = exports.RedFormat = exports.RGIntegerFormat = exports.RGFormat = exports.RGB_S3TC_DXT1_Format = exports.RGB_PVRTC_4BPPV1_Format = exports.RGB_PVRTC_2BPPV1_Format = exports.RGB_ETC2_Format = exports.RGB_ETC1_Format = exports.RGBFormat = exports.RGBA_S3TC_DXT5_Format = exports.RGBA_S3TC_DXT3_Format = exports.RGBA_S3TC_DXT1_Format = exports.RGBA_PVRTC_4BPPV1_Format = exports.RGBA_PVRTC_2BPPV1_Format = exports.RGBA_ETC2_EAC_Format = exports.RGBA_BPTC_Format = exports.RGBA_ASTC_8x8_Format = exports.RGBA_ASTC_8x6_Format = exports.RGBA_ASTC_8x5_Format = exports.RGBA_ASTC_6x6_Format = exports.RGBA_ASTC_6x5_Format = exports.RGBA_ASTC_5x5_Format = exports.RGBA_ASTC_5x4_Format = exports.RGBA_ASTC_4x4_Format = exports.RGBA_ASTC_12x12_Format = exports.RGBA_ASTC_12x10_Format = exports.RGBA_ASTC_10x8_Format = exports.RGBA_ASTC_10x6_Format = exports.RGBA_ASTC_10x5_Format = exports.RGBA_ASTC_10x10_Format = exports.RGBAIntegerFormat = exports.RGBAFormat = exports.RGBADepthPacking = exports.REVISION = exports.PCSSShadowMap = exports.PCFSoftShadowMap = exports.PCFShadowMap = exports.OneMinusSrcColorFactor = exports.OneMinusSrcAlphaFactor = exports.OneMinusDstColorFactor = exports.OneMinusDstAlphaFactor = exports.OneFactor = void 0;\n var REVISION = exports.REVISION = '145';\n var MOUSE = exports.MOUSE = {\n LEFT: 0,\n MIDDLE: 1,\n RIGHT: 2,\n ROTATE: 0,\n DOLLY: 1,\n PAN: 2 };\n\n var TOUCH = exports.TOUCH = {\n ROTATE: 0,\n PAN: 1,\n DOLLY_PAN: 2,\n DOLLY_ROTATE: 3 };\n\n var CullFaceNone = exports.CullFaceNone = 0;\n var CullFaceBack = exports.CullFaceBack = 1;\n var CullFaceFront = exports.CullFaceFront = 2;\n var CullFaceFrontBack = exports.CullFaceFrontBack = 3;\n var BasicShadowMap = exports.BasicShadowMap = 0;\n var PCFShadowMap = exports.PCFShadowMap = 1;\n var PCFSoftShadowMap = exports.PCFSoftShadowMap = 2;\n var VSMShadowMap = exports.VSMShadowMap = 3;\n var PCSSShadowMap = exports.PCSSShadowMap = 4;\n var FrontSide = exports.FrontSide = 0;\n var BackSide = exports.BackSide = 1;\n var DoubleSide = exports.DoubleSide = 2;\n var NoBlending = exports.NoBlending = 0;\n var NormalBlending = exports.NormalBlending = 1;\n var AdditiveBlending = exports.AdditiveBlending = 2;\n var SubtractiveBlending = exports.SubtractiveBlending = 3;\n var MultiplyBlending = exports.MultiplyBlending = 4;\n var CustomBlending = exports.CustomBlending = 5;\n var AddEquation = exports.AddEquation = 100;\n var SubtractEquation = exports.SubtractEquation = 101;\n var ReverseSubtractEquation = exports.ReverseSubtractEquation = 102;\n var MinEquation = exports.MinEquation = 103;\n var MaxEquation = exports.MaxEquation = 104;\n var ZeroFactor = exports.ZeroFactor = 200;\n var OneFactor = exports.OneFactor = 201;\n var SrcColorFactor = exports.SrcColorFactor = 202;\n var OneMinusSrcColorFactor = exports.OneMinusSrcColorFactor = 203;\n var SrcAlphaFactor = exports.SrcAlphaFactor = 204;\n var OneMinusSrcAlphaFactor = exports.OneMinusSrcAlphaFactor = 205;\n var DstAlphaFactor = exports.DstAlphaFactor = 206;\n var OneMinusDstAlphaFactor = exports.OneMinusDstAlphaFactor = 207;\n var DstColorFactor = exports.DstColorFactor = 208;\n var OneMinusDstColorFactor = exports.OneMinusDstColorFactor = 209;\n var SrcAlphaSaturateFactor = exports.SrcAlphaSaturateFactor = 210;\n var NeverDepth = exports.NeverDepth = 0;\n var AlwaysDepth = exports.AlwaysDepth = 1;\n var LessDepth = exports.LessDepth = 2;\n var LessEqualDepth = exports.LessEqualDepth = 3;\n var EqualDepth = exports.EqualDepth = 4;\n var GreaterEqualDepth = exports.GreaterEqualDepth = 5;\n var GreaterDepth = exports.GreaterDepth = 6;\n var NotEqualDepth = exports.NotEqualDepth = 7;\n var MultiplyOperation = exports.MultiplyOperation = 0;\n var MixOperation = exports.MixOperation = 1;\n var AddOperation = exports.AddOperation = 2;\n var NoToneMapping = exports.NoToneMapping = 0;\n var LinearToneMapping = exports.LinearToneMapping = 1;\n var ReinhardToneMapping = exports.ReinhardToneMapping = 2;\n var CineonToneMapping = exports.CineonToneMapping = 3;\n var ACESFilmicToneMapping = exports.ACESFilmicToneMapping = 4;\n var CustomToneMapping = exports.CustomToneMapping = 5;\n var UVMapping = exports.UVMapping = 300;\n var CubeReflectionMapping = exports.CubeReflectionMapping = 301;\n var CubeRefractionMapping = exports.CubeRefractionMapping = 302;\n var EquirectangularReflectionMapping = exports.EquirectangularReflectionMapping = 303;\n var EquirectangularRefractionMapping = exports.EquirectangularRefractionMapping = 304;\n var CubeUVReflectionMapping = exports.CubeUVReflectionMapping = 306;\n var RepeatWrapping = exports.RepeatWrapping = 1000;\n var ClampToEdgeWrapping = exports.ClampToEdgeWrapping = 1001;\n var MirroredRepeatWrapping = exports.MirroredRepeatWrapping = 1002;\n var NearestFilter = exports.NearestFilter = 1003;\n var NearestMipmapNearestFilter = exports.NearestMipmapNearestFilter = 1004;\n var NearestMipMapNearestFilter = exports.NearestMipMapNearestFilter = 1004;\n var NearestMipmapLinearFilter = exports.NearestMipmapLinearFilter = 1005;\n var NearestMipMapLinearFilter = exports.NearestMipMapLinearFilter = 1005;\n var LinearFilter = exports.LinearFilter = 1006;\n var LinearMipmapNearestFilter = exports.LinearMipmapNearestFilter = 1007;\n var LinearMipMapNearestFilter = exports.LinearMipMapNearestFilter = 1007;\n var LinearMipmapLinearFilter = exports.LinearMipmapLinearFilter = 1008;\n var LinearMipMapLinearFilter = exports.LinearMipMapLinearFilter = 1008;\n var UnsignedByteType = exports.UnsignedByteType = 1009;\n var ByteType = exports.ByteType = 1010;\n var ShortType = exports.ShortType = 1011;\n var UnsignedShortType = exports.UnsignedShortType = 1012;\n var IntType = exports.IntType = 1013;\n var UnsignedIntType = exports.UnsignedIntType = 1014;\n var FloatType = exports.FloatType = 1015;\n var HalfFloatType = exports.HalfFloatType = 1016;\n var UnsignedShort4444Type = exports.UnsignedShort4444Type = 1017;\n var UnsignedShort5551Type = exports.UnsignedShort5551Type = 1018;\n var UnsignedInt248Type = exports.UnsignedInt248Type = 1020;\n var AlphaFormat = exports.AlphaFormat = 1021;\n var RGBFormat = exports.RGBFormat = 1022;\n var RGBAFormat = exports.RGBAFormat = 1023;\n var LuminanceFormat = exports.LuminanceFormat = 1024;\n var LuminanceAlphaFormat = exports.LuminanceAlphaFormat = 1025;\n var DepthFormat = exports.DepthFormat = 1026;\n var DepthStencilFormat = exports.DepthStencilFormat = 1027;\n var RedFormat = exports.RedFormat = 1028;\n var RedIntegerFormat = exports.RedIntegerFormat = 1029;\n var RGFormat = exports.RGFormat = 1030;\n var RGIntegerFormat = exports.RGIntegerFormat = 1031;\n var RGBAIntegerFormat = exports.RGBAIntegerFormat = 1033;\n var RGB_S3TC_DXT1_Format = exports.RGB_S3TC_DXT1_Format = 33776;\n var RGBA_S3TC_DXT1_Format = exports.RGBA_S3TC_DXT1_Format = 33777;\n var RGBA_S3TC_DXT3_Format = exports.RGBA_S3TC_DXT3_Format = 33778;\n var RGBA_S3TC_DXT5_Format = exports.RGBA_S3TC_DXT5_Format = 33779;\n var RGB_PVRTC_4BPPV1_Format = exports.RGB_PVRTC_4BPPV1_Format = 35840;\n var RGB_PVRTC_2BPPV1_Format = exports.RGB_PVRTC_2BPPV1_Format = 35841;\n var RGBA_PVRTC_4BPPV1_Format = exports.RGBA_PVRTC_4BPPV1_Format = 35842;\n var RGBA_PVRTC_2BPPV1_Format = exports.RGBA_PVRTC_2BPPV1_Format = 35843;\n var RGB_ETC1_Format = exports.RGB_ETC1_Format = 36196;\n var RGB_ETC2_Format = exports.RGB_ETC2_Format = 37492;\n var RGBA_ETC2_EAC_Format = exports.RGBA_ETC2_EAC_Format = 37496;\n var RGBA_ASTC_4x4_Format = exports.RGBA_ASTC_4x4_Format = 37808;\n var RGBA_ASTC_5x4_Format = exports.RGBA_ASTC_5x4_Format = 37809;\n var RGBA_ASTC_5x5_Format = exports.RGBA_ASTC_5x5_Format = 37810;\n var RGBA_ASTC_6x5_Format = exports.RGBA_ASTC_6x5_Format = 37811;\n var RGBA_ASTC_6x6_Format = exports.RGBA_ASTC_6x6_Format = 37812;\n var RGBA_ASTC_8x5_Format = exports.RGBA_ASTC_8x5_Format = 37813;\n var RGBA_ASTC_8x6_Format = exports.RGBA_ASTC_8x6_Format = 37814;\n var RGBA_ASTC_8x8_Format = exports.RGBA_ASTC_8x8_Format = 37815;\n var RGBA_ASTC_10x5_Format = exports.RGBA_ASTC_10x5_Format = 37816;\n var RGBA_ASTC_10x6_Format = exports.RGBA_ASTC_10x6_Format = 37817;\n var RGBA_ASTC_10x8_Format = exports.RGBA_ASTC_10x8_Format = 37818;\n var RGBA_ASTC_10x10_Format = exports.RGBA_ASTC_10x10_Format = 37819;\n var RGBA_ASTC_12x10_Format = exports.RGBA_ASTC_12x10_Format = 37820;\n var RGBA_ASTC_12x12_Format = exports.RGBA_ASTC_12x12_Format = 37821;\n var RGBA_BPTC_Format = exports.RGBA_BPTC_Format = 36492;\n var LoopOnce = exports.LoopOnce = 2200;\n var LoopRepeat = exports.LoopRepeat = 2201;\n var LoopPingPong = exports.LoopPingPong = 2202;\n var InterpolateDiscrete = exports.InterpolateDiscrete = 2300;\n var InterpolateLinear = exports.InterpolateLinear = 2301;\n var InterpolateSmooth = exports.InterpolateSmooth = 2302;\n var ZeroCurvatureEnding = exports.ZeroCurvatureEnding = 2400;\n var ZeroSlopeEnding = exports.ZeroSlopeEnding = 2401;\n var WrapAroundEnding = exports.WrapAroundEnding = 2402;\n var NormalAnimationBlendMode = exports.NormalAnimationBlendMode = 2500;\n var AdditiveAnimationBlendMode = exports.AdditiveAnimationBlendMode = 2501;\n var TrianglesDrawMode = exports.TrianglesDrawMode = 0;\n var TriangleStripDrawMode = exports.TriangleStripDrawMode = 1;\n var TriangleFanDrawMode = exports.TriangleFanDrawMode = 2;\n var LinearEncoding = exports.LinearEncoding = 3000;\n var sRGBEncoding = exports.sRGBEncoding = 3001;\n var BasicDepthPacking = exports.BasicDepthPacking = 3200;\n var RGBADepthPacking = exports.RGBADepthPacking = 3201;\n var TangentSpaceNormalMap = exports.TangentSpaceNormalMap = 0;\n var ObjectSpaceNormalMap = exports.ObjectSpaceNormalMap = 1;\n var NoColorSpace = exports.NoColorSpace = '';\n var SRGBColorSpace = exports.SRGBColorSpace = 'srgb';\n var LinearSRGBColorSpace = exports.LinearSRGBColorSpace = 'srgb-linear';\n var ZeroStencilOp = exports.ZeroStencilOp = 0;\n var KeepStencilOp = exports.KeepStencilOp = 7680;\n var ReplaceStencilOp = exports.ReplaceStencilOp = 7681;\n var IncrementStencilOp = exports.IncrementStencilOp = 7682;\n var DecrementStencilOp = exports.DecrementStencilOp = 7683;\n var IncrementWrapStencilOp = exports.IncrementWrapStencilOp = 34055;\n var DecrementWrapStencilOp = exports.DecrementWrapStencilOp = 34056;\n var InvertStencilOp = exports.InvertStencilOp = 5386;\n var NeverStencilFunc = exports.NeverStencilFunc = 512;\n var LessStencilFunc = exports.LessStencilFunc = 513;\n var EqualStencilFunc = exports.EqualStencilFunc = 514;\n var LessEqualStencilFunc = exports.LessEqualStencilFunc = 515;\n var GreaterStencilFunc = exports.GreaterStencilFunc = 516;\n var NotEqualStencilFunc = exports.NotEqualStencilFunc = 517;\n var GreaterEqualStencilFunc = exports.GreaterEqualStencilFunc = 518;\n var AlwaysStencilFunc = exports.AlwaysStencilFunc = 519;\n var StaticDrawUsage = exports.StaticDrawUsage = 35044;\n var DynamicDrawUsage = exports.DynamicDrawUsage = 35048;\n var StreamDrawUsage = exports.StreamDrawUsage = 35040;\n var StaticReadUsage = exports.StaticReadUsage = 35045;\n var DynamicReadUsage = exports.DynamicReadUsage = 35049;\n var StreamReadUsage = exports.StreamReadUsage = 35041;\n var StaticCopyUsage = exports.StaticCopyUsage = 35046;\n var DynamicCopyUsage = exports.DynamicCopyUsage = 35050;\n var StreamCopyUsage = exports.StreamCopyUsage = 35042;\n var GLSL1 = exports.GLSL1 = '100';\n var GLSL3 = exports.GLSL3 = '300 es';\n var _SRGBAFormat = exports._SRGBAFormat = 1035;\n var DefaultQueue = exports.DefaultQueue = 40000;\n var BackgroundQueue = exports.BackgroundQueue = 40001;\n var DeferredOpaqueQueue = exports.DeferredOpaqueQueue = 40002;\n var DeferredTransmissiveQueue = exports.DeferredTransmissiveQueue = 40006;\n var ForwardOpaqueQueue = exports.ForwardOpaqueQueue = 40003;\n var ForwardTransmissiveQueue = exports.ForwardTransmissiveQueue = 40004;\n var ForwardTransparentQueue = exports.ForwardTransparentQueue = 40005;return module.exports;});", "requires": [], "buildLevel": 3, "outputDir": "/com/three/0.145.0/src", "outputPath": "/com/three/0.145.0/src/constants.js", "fileName": "/src/constants.js" }, "pandav:/src/core/GLBufferAttribute.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/GLBufferAttribute\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.GLBufferAttribute = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var GLBufferAttribute = exports.GLBufferAttribute = function () {\n function GLBufferAttribute(buffer, type, itemSize, elementSize, count) {\n (0, _classCallCheck2.default)(this, GLBufferAttribute);\n this.isGLBufferAttribute = true;\n this.buffer = buffer;\n this.type = type;\n this.itemSize = itemSize;\n this.elementSize = elementSize;\n this.count = count;\n this.version = 0;\n }\n (0, _createClass2.default)(GLBufferAttribute, [{\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n } },\n {\n key: \"setBuffer\",\n value: function setBuffer(buffer) {\n this.buffer = buffer;\n return this;\n } },\n {\n key: \"setType\",\n value: function setType(type, elementSize) {\n this.type = type;\n this.elementSize = elementSize;\n return this;\n } },\n {\n key: \"setItemSize\",\n value: function setItemSize(itemSize) {\n this.itemSize = itemSize;\n return this;\n } },\n {\n key: \"setCount\",\n value: function setCount(count) {\n this.count = count;\n return this;\n } }]);\n\n return GLBufferAttribute;\n }();return module.exports;});", "requires": [], "buildLevel": 48, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/GLBufferAttribute.js", "fileName": "/src/core/GLBufferAttribute.js" }, "pandav:/src/core/EventDispatcher.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/EventDispatcher\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.EventDispatcher = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var EventDispatcher = exports.EventDispatcher = function () {\n function EventDispatcher() {\n (0, _classCallCheck2.default)(this, EventDispatcher);\n }\n (0, _createClass2.default)(EventDispatcher, [{\n key: \"addEventListener\",\n value: function addEventListener(type, listener) {\n if (this._listeners === undefined) this._listeners = {};\n var listeners = this._listeners;\n if (listeners[type] === undefined) {\n listeners[type] = [];\n }\n if (listeners[type].indexOf(listener) === -1) {\n listeners[type].push(listener);\n }\n } },\n {\n key: \"hasEventListener\",\n value: function hasEventListener(type, listener) {\n if (this._listeners === undefined) return false;\n var listeners = this._listeners;\n return listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1;\n } },\n {\n key: \"removeEventListener\",\n value: function removeEventListener(type, listener) {\n if (this._listeners === undefined) return;\n var listeners = this._listeners;\n var listenerArray = listeners[type];\n if (listenerArray !== undefined) {\n var index = listenerArray.indexOf(listener);\n if (index !== -1) {\n listenerArray.splice(index, 1);\n }\n }\n } },\n {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (this._listeners === undefined) return;\n var listeners = this._listeners;\n var listenerArray = listeners[event.type];\n if (listenerArray !== undefined) {\n event.target = this;\n var array = listenerArray.slice(0);\n for (var i = 0, l = array.length; i < l; i++) {\n array[i].call(this, event);\n }\n event.target = null;\n }\n } }]);\n\n return EventDispatcher;\n }();return module.exports;});", "requires": [], "buildLevel": 6, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/EventDispatcher.js", "fileName": "/src/core/EventDispatcher.js" }, "pandav:/src/core/BufferGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/BufferGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Box3\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Sphere\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/utils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BufferGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Box = require('pandav:/com/three/0.145.0/src/math/Box3');\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Sphere = require('pandav:/com/three/0.145.0/src/math/Sphere');\n var _Object3D = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Matrix2 = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var _id = 0;\n var _m1 = new _Matrix.Matrix4();\n var _obj = new _Object3D.Object3D();\n var _offset = new _Vector.Vector3();\n var _box = new _Box.Box3();\n var _boxMorphTargets = new _Box.Box3();\n var _vector = new _Vector.Vector3();\n var BufferGeometry = exports.BufferGeometry = function (_EventDispatcher) {\n (0, _inherits2.default)(BufferGeometry, _EventDispatcher);\n var _super = (0, _createSuper2.default)(BufferGeometry);\n function BufferGeometry() {\n var _this;\n (0, _classCallCheck2.default)(this, BufferGeometry);\n _this = _super.call(this);\n _this.isBufferGeometry = true;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'id', {\n value: _id++ });\n\n _this.uuid = MathUtils.generateUUID();\n _this.name = '';\n _this.type = 'BufferGeometry';\n _this.index = null;\n _this.attributes = {};\n _this.morphAttributes = {};\n _this.morphTargetsRelative = false;\n _this.groups = [];\n _this.boundingBox = null;\n _this.boundingSphere = null;\n _this.drawRange = {\n start: 0,\n count: Infinity };\n\n _this.userData = {};\n return _this;\n }\n (0, _createClass2.default)(BufferGeometry, [{\n key: \"getIndex\",\n value: function getIndex() {\n return this.index;\n } },\n {\n key: \"setIndex\",\n value: function setIndex(index) {\n if (Array.isArray(index)) {\n this.index = new ((0, _utils.arrayNeedsUint32)(index) ? _BufferAttribute.Uint32BufferAttribute : _BufferAttribute.Uint16BufferAttribute)(index, 1);\n } else {\n this.index = index;\n }\n return this;\n } },\n {\n key: \"getAttribute\",\n value: function getAttribute(name) {\n return this.attributes[name];\n } },\n {\n key: \"setAttribute\",\n value: function setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n return this;\n } },\n {\n key: \"deleteAttribute\",\n value: function deleteAttribute(name) {\n delete this.attributes[name];\n return this;\n } },\n {\n key: \"hasAttribute\",\n value: function hasAttribute(name) {\n return this.attributes[name] !== undefined;\n } },\n {\n key: \"addGroup\",\n value: function addGroup(start, count) {\n var materialIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n this.groups.push({\n start: start,\n count: count,\n materialIndex: materialIndex });\n\n } },\n {\n key: \"clearGroups\",\n value: function clearGroups() {\n this.groups = [];\n } },\n {\n key: \"setDrawRange\",\n value: function setDrawRange(start, count) {\n this.drawRange.start = start;\n this.drawRange.count = count;\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n var position = this.attributes.position;\n if (position !== undefined) {\n position.applyMatrix4(matrix);\n position.needsUpdate = true;\n }\n var normal = this.attributes.normal;\n if (normal !== undefined) {\n var normalMatrix = new _Matrix2.Matrix3().getNormalMatrix(matrix);\n normal.applyNormalMatrix(normalMatrix);\n normal.needsUpdate = true;\n }\n var tangent = this.attributes.tangent;\n if (tangent !== undefined) {\n tangent.transformDirection(matrix);\n tangent.needsUpdate = true;\n }\n if (this.boundingBox !== null) {\n this.computeBoundingBox();\n }\n if (this.boundingSphere !== null) {\n this.computeBoundingSphere();\n }\n return this;\n } },\n {\n key: \"applyQuaternion\",\n value: function applyQuaternion(q) {\n _m1.makeRotationFromQuaternion(q);\n this.applyMatrix4(_m1);\n return this;\n } },\n {\n key: \"rotateX\",\n value: function rotateX(angle) {\n _m1.makeRotationX(angle);\n this.applyMatrix4(_m1);\n return this;\n } },\n {\n key: \"rotateY\",\n value: function rotateY(angle) {\n _m1.makeRotationY(angle);\n this.applyMatrix4(_m1);\n return this;\n } },\n {\n key: \"rotateZ\",\n value: function rotateZ(angle) {\n _m1.makeRotationZ(angle);\n this.applyMatrix4(_m1);\n return this;\n } },\n {\n key: \"translate\",\n value: function translate(x, y, z) {\n _m1.makeTranslation(x, y, z);\n this.applyMatrix4(_m1);\n return this;\n } },\n {\n key: \"scale\",\n value: function scale(x, y, z) {\n _m1.makeScale(x, y, z);\n this.applyMatrix4(_m1);\n return this;\n } },\n {\n key: \"lookAt\",\n value: function lookAt(vector) {\n _obj.lookAt(vector);\n _obj.updateMatrix();\n this.applyMatrix4(_obj.matrix);\n return this;\n } },\n {\n key: \"center\",\n value: function center() {\n this.computeBoundingBox();\n this.boundingBox.getCenter(_offset).negate();\n this.translate(_offset.x, _offset.y, _offset.z);\n return this;\n } },\n {\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n var position = [];\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n position.push(point.x, point.y, point.z || 0);\n }\n this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(position, 3));\n return this;\n } },\n {\n key: \"computeBoundingBox\",\n value: function computeBoundingBox() {\n if (this.boundingBox === null) {\n this.boundingBox = new _Box.Box3();\n }\n var position = this.attributes.position;\n var morphAttributesPosition = this.morphAttributes.position;\n if (position && position.isGLBufferAttribute) {\n console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this);\n this.boundingBox.set(new _Vector.Vector3(-Infinity, -Infinity, -Infinity), new _Vector.Vector3(+Infinity, +Infinity, +Infinity));\n return;\n }\n if (position !== undefined) {\n this.boundingBox.setFromBufferAttribute(position);\n if (morphAttributesPosition) {\n for (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\n var morphAttribute = morphAttributesPosition[i];\n _box.setFromBufferAttribute(morphAttribute);\n if (this.morphTargetsRelative) {\n _vector.addVectors(this.boundingBox.min, _box.min);\n this.boundingBox.expandByPoint(_vector);\n _vector.addVectors(this.boundingBox.max, _box.max);\n this.boundingBox.expandByPoint(_vector);\n } else {\n this.boundingBox.expandByPoint(_box.min);\n this.boundingBox.expandByPoint(_box.max);\n }\n }\n }\n } else {\n this.boundingBox.makeEmpty();\n }\n if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) {\n console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this);\n }\n } },\n {\n key: \"computeBoundingSphere\",\n value: function computeBoundingSphere() {\n if (this.boundingSphere === null) {\n this.boundingSphere = new _Sphere.Sphere();\n }\n var position = this.attributes.position;\n var morphAttributesPosition = this.morphAttributes.position;\n if (position && position.isGLBufferAttribute) {\n console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this);\n this.boundingSphere.set(new _Vector.Vector3(), Infinity);\n return;\n }\n if (position) {\n var center = this.boundingSphere.center;\n _box.setFromBufferAttribute(position);\n if (morphAttributesPosition) {\n for (var i = 0, il = morphAttributesPosition.length; i < il; i++) {\n var morphAttribute = morphAttributesPosition[i];\n _boxMorphTargets.setFromBufferAttribute(morphAttribute);\n if (this.morphTargetsRelative) {\n _vector.addVectors(_box.min, _boxMorphTargets.min);\n _box.expandByPoint(_vector);\n _vector.addVectors(_box.max, _boxMorphTargets.max);\n _box.expandByPoint(_vector);\n } else {\n _box.expandByPoint(_boxMorphTargets.min);\n _box.expandByPoint(_boxMorphTargets.max);\n }\n }\n }\n _box.getCenter(center);\n var maxRadiusSq = 0;\n for (var _i = 0, _il = position.count; _i < _il; _i++) {\n _vector.fromBufferAttribute(position, _i);\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector));\n }\n if (morphAttributesPosition) {\n for (var _i2 = 0, _il2 = morphAttributesPosition.length; _i2 < _il2; _i2++) {\n var _morphAttribute = morphAttributesPosition[_i2];\n var morphTargetsRelative = this.morphTargetsRelative;\n for (var j = 0, jl = _morphAttribute.count; j < jl; j++) {\n _vector.fromBufferAttribute(_morphAttribute, j);\n if (morphTargetsRelative) {\n _offset.fromBufferAttribute(position, j);\n _vector.add(_offset);\n }\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector));\n }\n }\n }\n this.boundingSphere.radius = Math.sqrt(maxRadiusSq);\n if (isNaN(this.boundingSphere.radius)) {\n console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this);\n }\n }\n } },\n {\n key: \"computeTangents\",\n value: function computeTangents() {\n var index = this.index;\n var attributes = this.attributes;\n if (index === null || attributes.position === undefined || attributes.normal === undefined || attributes.uv === undefined) {\n console.error('THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)');\n return;\n }\n var indices = index.array;\n var positions = attributes.position.array;\n var normals = attributes.normal.array;\n var uvs = attributes.uv.array;\n var nVertices = positions.length / 3;\n if (this.hasAttribute('tangent') === false) {\n this.setAttribute('tangent', new _BufferAttribute.BufferAttribute(new Float32Array(4 * nVertices), 4));\n }\n var tangents = this.getAttribute('tangent').array;\n var tan1 = [],\n tan2 = [];\n for (var i = 0; i < nVertices; i++) {\n tan1[i] = new _Vector.Vector3();\n tan2[i] = new _Vector.Vector3();\n }\n var vA = new _Vector.Vector3(),\n vB = new _Vector.Vector3(),\n vC = new _Vector.Vector3(),\n uvA = new _Vector2.Vector2(),\n uvB = new _Vector2.Vector2(),\n uvC = new _Vector2.Vector2(),\n sdir = new _Vector.Vector3(),\n tdir = new _Vector.Vector3();\n function handleTriangle(a, b, c) {\n vA.fromArray(positions, a * 3);\n vB.fromArray(positions, b * 3);\n vC.fromArray(positions, c * 3);\n uvA.fromArray(uvs, a * 2);\n uvB.fromArray(uvs, b * 2);\n uvC.fromArray(uvs, c * 2);\n vB.sub(vA);\n vC.sub(vA);\n uvB.sub(uvA);\n uvC.sub(uvA);\n var r = 1.0 / (uvB.x * uvC.y - uvC.x * uvB.y);\n if (!isFinite(r)) return;\n sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC, -uvB.y).multiplyScalar(r);\n tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB, -uvC.x).multiplyScalar(r);\n tan1[a].add(sdir);\n tan1[b].add(sdir);\n tan1[c].add(sdir);\n tan2[a].add(tdir);\n tan2[b].add(tdir);\n tan2[c].add(tdir);\n }\n var groups = this.groups;\n if (groups.length === 0) {\n groups = [{\n start: 0,\n count: indices.length }];\n\n }\n for (var _i3 = 0, il = groups.length; _i3 < il; ++_i3) {\n var group = groups[_i3];\n var start = group.start;\n var count = group.count;\n for (var j = start, jl = start + count; j < jl; j += 3) {\n handleTriangle(indices[j + 0], indices[j + 1], indices[j + 2]);\n }\n }\n var tmp = new _Vector.Vector3(),\n tmp2 = new _Vector.Vector3();\n var n = new _Vector.Vector3(),\n n2 = new _Vector.Vector3();\n function handleVertex(v) {\n n.fromArray(normals, v * 3);\n n2.copy(n);\n var t = tan1[v];\n tmp.copy(t);\n tmp.sub(n.multiplyScalar(n.dot(t))).normalize();\n tmp2.crossVectors(n2, t);\n var test = tmp2.dot(tan2[v]);\n var w = test < 0.0 ? -1.0 : 1.0;\n tangents[v * 4] = tmp.x;\n tangents[v * 4 + 1] = tmp.y;\n tangents[v * 4 + 2] = tmp.z;\n tangents[v * 4 + 3] = w;\n }\n for (var _i4 = 0, _il3 = groups.length; _i4 < _il3; ++_i4) {\n var _group = groups[_i4];\n var _start = _group.start;\n var _count = _group.count;\n for (var _j = _start, _jl = _start + _count; _j < _jl; _j += 3) {\n handleVertex(indices[_j + 0]);\n handleVertex(indices[_j + 1]);\n handleVertex(indices[_j + 2]);\n }\n }\n } },\n {\n key: \"computeVertexNormals\",\n value: function computeVertexNormals() {\n var index = this.index;\n var positionAttribute = this.getAttribute('position');\n if (positionAttribute !== undefined) {\n var normalAttribute = this.getAttribute('normal');\n if (normalAttribute === undefined) {\n normalAttribute = new _BufferAttribute.BufferAttribute(new Float32Array(positionAttribute.count * 3), 3);\n this.setAttribute('normal', normalAttribute);\n } else {\n for (var i = 0, il = normalAttribute.count; i < il; i++) {\n normalAttribute.setXYZ(i, 0, 0, 0);\n }\n }\n var pA = new _Vector.Vector3(),\n pB = new _Vector.Vector3(),\n pC = new _Vector.Vector3();\n var nA = new _Vector.Vector3(),\n nB = new _Vector.Vector3(),\n nC = new _Vector.Vector3();\n var cb = new _Vector.Vector3(),\n ab = new _Vector.Vector3();\n if (index) {\n for (var _i5 = 0, _il4 = index.count; _i5 < _il4; _i5 += 3) {\n var vA = index.getX(_i5 + 0);\n var vB = index.getX(_i5 + 1);\n var vC = index.getX(_i5 + 2);\n pA.fromBufferAttribute(positionAttribute, vA);\n pB.fromBufferAttribute(positionAttribute, vB);\n pC.fromBufferAttribute(positionAttribute, vC);\n cb.subVectors(pC, pB);\n ab.subVectors(pA, pB);\n cb.cross(ab);\n nA.fromBufferAttribute(normalAttribute, vA);\n nB.fromBufferAttribute(normalAttribute, vB);\n nC.fromBufferAttribute(normalAttribute, vC);\n nA.add(cb);\n nB.add(cb);\n nC.add(cb);\n normalAttribute.setXYZ(vA, nA.x, nA.y, nA.z);\n normalAttribute.setXYZ(vB, nB.x, nB.y, nB.z);\n normalAttribute.setXYZ(vC, nC.x, nC.y, nC.z);\n }\n } else {\n for (var _i6 = 0, _il5 = positionAttribute.count; _i6 < _il5; _i6 += 3) {\n pA.fromBufferAttribute(positionAttribute, _i6 + 0);\n pB.fromBufferAttribute(positionAttribute, _i6 + 1);\n pC.fromBufferAttribute(positionAttribute, _i6 + 2);\n cb.subVectors(pC, pB);\n ab.subVectors(pA, pB);\n cb.cross(ab);\n normalAttribute.setXYZ(_i6 + 0, cb.x, cb.y, cb.z);\n normalAttribute.setXYZ(_i6 + 1, cb.x, cb.y, cb.z);\n normalAttribute.setXYZ(_i6 + 2, cb.x, cb.y, cb.z);\n }\n }\n this.normalizeNormals();\n normalAttribute.needsUpdate = true;\n }\n } },\n {\n key: \"merge\",\n value: function merge() {\n console.error('THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeBufferGeometries() instead.');\n return this;\n } },\n {\n key: \"normalizeNormals\",\n value: function normalizeNormals() {\n var normals = this.attributes.normal;\n for (var i = 0, il = normals.count; i < il; i++) {\n _vector.fromBufferAttribute(normals, i);\n _vector.normalize();\n normals.setXYZ(i, _vector.x, _vector.y, _vector.z);\n }\n } },\n {\n key: \"toNonIndexed\",\n value: function toNonIndexed() {\n function convertBufferAttribute(attribute, indices) {\n var array = attribute.array;\n var itemSize = attribute.itemSize;\n var normalized = attribute.normalized;\n var array2 = new array.constructor(indices.length * itemSize);\n var index = 0,\n index2 = 0;\n for (var i = 0, l = indices.length; i < l; i++) {\n if (attribute.isInterleavedBufferAttribute) {\n index = indices[i] * attribute.data.stride + attribute.offset;\n } else {\n index = indices[i] * itemSize;\n }\n for (var j = 0; j < itemSize; j++) {\n array2[index2++] = array[index++];\n }\n }\n return new _BufferAttribute.BufferAttribute(array2, itemSize, normalized);\n }\n if (this.index === null) {\n console.warn('THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.');\n return this;\n }\n var geometry2 = new BufferGeometry();\n var indices = this.index.array;\n var attributes = this.attributes;\n for (var name in attributes) {\n var attribute = attributes[name];\n var newAttribute = convertBufferAttribute(attribute, indices);\n geometry2.setAttribute(name, newAttribute);\n }\n var morphAttributes = this.morphAttributes;\n for (var _name in morphAttributes) {\n var morphArray = [];\n var morphAttribute = morphAttributes[_name];\n for (var i = 0, il = morphAttribute.length; i < il; i++) {\n var _attribute = morphAttribute[i];\n var _newAttribute = convertBufferAttribute(_attribute, indices);\n morphArray.push(_newAttribute);\n }\n geometry2.morphAttributes[_name] = morphArray;\n }\n geometry2.morphTargetsRelative = this.morphTargetsRelative;\n var groups = this.groups;\n for (var _i7 = 0, l = groups.length; _i7 < l; _i7++) {\n var group = groups[_i7];\n geometry2.addGroup(group.start, group.count, group.materialIndex);\n }\n return geometry2;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'BufferGeometry',\n generator: 'BufferGeometry.toJSON' } };\n\n\n data.uuid = this.uuid;\n data.type = this.type;\n if (this.name !== '') data.name = this.name;\n if (Object.keys(this.userData).length > 0) data.userData = this.userData;\n if (this.parameters !== undefined) {\n var parameters = this.parameters;\n for (var key in parameters) {\n if (parameters[key] !== undefined) data[key] = parameters[key];\n }\n return data;\n }\n data.data = {\n attributes: {} };\n\n var index = this.index;\n if (index !== null) {\n data.data.index = {\n type: index.array.constructor.name,\n array: Array.prototype.slice.call(index.array) };\n\n }\n var attributes = this.attributes;\n for (var _key in attributes) {\n var attribute = attributes[_key];\n data.data.attributes[_key] = attribute.toJSON(data.data);\n }\n var morphAttributes = {};\n var hasMorphAttributes = false;\n for (var _key2 in this.morphAttributes) {\n var attributeArray = this.morphAttributes[_key2];\n var array = [];\n for (var i = 0, il = attributeArray.length; i < il; i++) {\n var _attribute2 = attributeArray[i];\n array.push(_attribute2.toJSON(data.data));\n }\n if (array.length > 0) {\n morphAttributes[_key2] = array;\n hasMorphAttributes = true;\n }\n }\n if (hasMorphAttributes) {\n data.data.morphAttributes = morphAttributes;\n data.data.morphTargetsRelative = this.morphTargetsRelative;\n }\n var groups = this.groups;\n if (groups.length > 0) {\n data.data.groups = JSON.parse(JSON.stringify(groups));\n }\n var boundingSphere = this.boundingSphere;\n if (boundingSphere !== null) {\n data.data.boundingSphere = {\n center: boundingSphere.center.toArray(),\n radius: boundingSphere.radius };\n\n }\n return data;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.index = null;\n this.attributes = {};\n this.morphAttributes = {};\n this.groups = [];\n this.boundingBox = null;\n this.boundingSphere = null;\n var data = {};\n this.name = source.name;\n var index = source.index;\n if (index !== null) {\n this.setIndex(index.clone(data));\n }\n var attributes = source.attributes;\n for (var name in attributes) {\n var attribute = attributes[name];\n this.setAttribute(name, attribute.clone(data));\n }\n var morphAttributes = source.morphAttributes;\n for (var _name2 in morphAttributes) {\n var array = [];\n var morphAttribute = morphAttributes[_name2];\n for (var i = 0, l = morphAttribute.length; i < l; i++) {\n array.push(morphAttribute[i].clone(data));\n }\n this.morphAttributes[_name2] = array;\n }\n this.morphTargetsRelative = source.morphTargetsRelative;\n var groups = source.groups;\n for (var _i8 = 0, _l = groups.length; _i8 < _l; _i8++) {\n var group = groups[_i8];\n this.addGroup(group.start, group.count, group.materialIndex);\n }\n var boundingBox = source.boundingBox;\n if (boundingBox !== null) {\n this.boundingBox = boundingBox.clone();\n }\n var boundingSphere = source.boundingSphere;\n if (boundingSphere !== null) {\n this.boundingSphere = boundingSphere.clone();\n }\n this.drawRange.start = source.drawRange.start;\n this.drawRange.count = source.drawRange.count;\n this.userData = source.userData;\n if (source.parameters !== undefined) this.parameters = Object.assign({}, source.parameters);\n return this;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose' });\n\n } }]);\n\n return BufferGeometry;\n }(_EventDispatcher2.EventDispatcher);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Box3.js", "pandav:/src/core/EventDispatcher.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Sphere.js", "pandav:/src/core/Object3D.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Matrix3.js", "pandav:/src/math/MathUtils.js", "pandav:/src/utils.js" ], "buildLevel": 16, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/BufferGeometry.js", "fileName": "/src/core/BufferGeometry.js" }, "pandav:/src/core/InstancedBufferAttribute.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.InstancedBufferAttribute = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferAttribute2 = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var InstancedBufferAttribute = exports.InstancedBufferAttribute = function (_BufferAttribute) {\n (0, _inherits2.default)(InstancedBufferAttribute, _BufferAttribute);\n var _super = (0, _createSuper2.default)(InstancedBufferAttribute);\n function InstancedBufferAttribute(array, itemSize, normalized) {\n var _this;\n var meshPerAttribute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n (0, _classCallCheck2.default)(this, InstancedBufferAttribute);\n _this = _super.call(this, array, itemSize, normalized);\n _this.isInstancedBufferAttribute = true;\n _this.meshPerAttribute = meshPerAttribute;\n return _this;\n }\n (0, _createClass2.default)(InstancedBufferAttribute, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedBufferAttribute.prototype), \"copy\", this).call(this, source);\n this.meshPerAttribute = source.meshPerAttribute;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedBufferAttribute.prototype), \"toJSON\", this).call(this);\n data.meshPerAttribute = this.meshPerAttribute;\n data.isInstancedBufferAttribute = true;\n return data;\n } }]);\n\n return InstancedBufferAttribute;\n }(_BufferAttribute2.BufferAttribute);return module.exports;});", "requires": [ "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 18, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/InstancedBufferAttribute.js", "fileName": "/src/core/InstancedBufferAttribute.js" }, "pandav:/src/core/InstancedBufferGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/InstancedBufferGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.InstancedBufferGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var InstancedBufferGeometry = exports.InstancedBufferGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(InstancedBufferGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(InstancedBufferGeometry);\n function InstancedBufferGeometry() {\n var _this;\n (0, _classCallCheck2.default)(this, InstancedBufferGeometry);\n _this = _super.call(this);\n _this.isInstancedBufferGeometry = true;\n _this.type = 'InstancedBufferGeometry';\n _this.instanceCount = Infinity;\n return _this;\n }\n (0, _createClass2.default)(InstancedBufferGeometry, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedBufferGeometry.prototype), \"copy\", this).call(this, source);\n this.instanceCount = source.instanceCount;\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedBufferGeometry.prototype), \"toJSON\", this).call(this, this);\n data.instanceCount = this.instanceCount;\n data.isInstancedBufferGeometry = true;\n return data;\n } }]);\n\n return InstancedBufferGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js" ], "buildLevel": 43, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/InstancedBufferGeometry.js", "fileName": "/src/core/InstancedBufferGeometry.js" }, "pandav:/src/core/InterleavedBuffer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/InterleavedBuffer\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.InterleavedBuffer = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var InterleavedBuffer = exports.InterleavedBuffer = function () {\n function InterleavedBuffer(array, stride) {\n (0, _classCallCheck2.default)(this, InterleavedBuffer);\n this.isInterleavedBuffer = true;\n this.array = array;\n this.stride = stride;\n this.count = array !== undefined ? array.length / stride : 0;\n this.usage = _constants.StaticDrawUsage;\n this.updateRange = {\n offset: 0,\n count: -1 };\n\n this.version = 0;\n this.uuid = MathUtils.generateUUID();\n }\n (0, _createClass2.default)(InterleavedBuffer, [{\n key: \"onUploadCallback\",\n value: function onUploadCallback() {} },\n {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n } },\n {\n key: \"setUsage\",\n value: function setUsage(value) {\n this.usage = value;\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.array = new source.array.constructor(source.array);\n this.count = source.count;\n this.stride = source.stride;\n this.usage = source.usage;\n return this;\n } },\n {\n key: \"copyAt\",\n value: function copyAt(index1, attribute, index2) {\n index1 *= this.stride;\n index2 *= attribute.stride;\n for (var i = 0, l = this.stride; i < l; i++) {\n this.array[index1 + i] = attribute.array[index2 + i];\n }\n return this;\n } },\n {\n key: \"set\",\n value: function set(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.array.set(value, offset);\n return this;\n } },\n {\n key: \"clone\",\n value: function clone(data) {\n if (data.arrayBuffers === undefined) {\n data.arrayBuffers = {};\n }\n if (this.array.buffer._uuid === undefined) {\n this.array.buffer._uuid = MathUtils.generateUUID();\n }\n if (data.arrayBuffers[this.array.buffer._uuid] === undefined) {\n data.arrayBuffers[this.array.buffer._uuid] = this.array.slice(0).buffer;\n }\n var array = new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]);\n var ib = new this.constructor(array, this.stride);\n ib.setUsage(this.usage);\n return ib;\n } },\n {\n key: \"onUpload\",\n value: function onUpload(callback) {\n this.onUploadCallback = callback;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON(data) {\n if (data.arrayBuffers === undefined) {\n data.arrayBuffers = {};\n }\n if (this.array.buffer._uuid === undefined) {\n this.array.buffer._uuid = MathUtils.generateUUID();\n }\n if (data.arrayBuffers[this.array.buffer._uuid] === undefined) {\n data.arrayBuffers[this.array.buffer._uuid] = Array.from(new Uint32Array(this.array.buffer));\n }\n return {\n uuid: this.uuid,\n buffer: this.array.buffer._uuid,\n type: this.array.constructor.name,\n stride: this.stride };\n\n } }]);\n\n return InterleavedBuffer;\n }();return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js", "pandav:/src/constants.js" ], "buildLevel": 14, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/InterleavedBuffer.js", "fileName": "/src/core/InterleavedBuffer.js" }, "pandav:/src/core/Raycaster.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/Raycaster\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Ray\", \"pandav:/com/three/0.145.0/src/core/Layers\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Raycaster = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Ray = require('pandav:/com/three/0.145.0/src/math/Ray');\n var _Layers = require('pandav:/com/three/0.145.0/src/core/Layers');\n var Raycaster = exports.Raycaster = function () {\n function Raycaster(origin, direction) {\n var near = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var far = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Infinity;\n (0, _classCallCheck2.default)(this, Raycaster);\n this.ray = new _Ray.Ray(origin, direction);\n this.near = near;\n this.far = far;\n this.camera = null;\n this.layers = new _Layers.Layers();\n this.params = {\n Mesh: {},\n Line: {\n threshold: 1 },\n\n LOD: {},\n Points: {\n threshold: 1 },\n\n Sprite: {} };\n\n }\n (0, _createClass2.default)(Raycaster, [{\n key: \"set\",\n value: function set(origin, direction) {\n this.ray.set(origin, direction);\n } },\n {\n key: \"setFromCamera\",\n value: function setFromCamera(coords, camera) {\n if (camera.isPerspectiveCamera) {\n this.ray.origin.setFromMatrixPosition(camera.matrixWorld);\n this.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize();\n this.camera = camera;\n } else if (camera.isOrthographicCamera) {\n this.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera);\n this.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld);\n this.camera = camera;\n } else {\n console.error('THREE.Raycaster: Unsupported camera type: ' + camera.type);\n }\n } },\n {\n key: \"intersectObject\",\n value: function intersectObject(object) {\n var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var intersects = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _intersectObject(object, this, intersects, recursive);\n intersects.sort(ascSort);\n return intersects;\n } },\n {\n key: \"intersectObjects\",\n value: function intersectObjects(objects) {\n var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var intersects = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n for (var i = 0, l = objects.length; i < l; i++) {\n _intersectObject(objects[i], this, intersects, recursive);\n }\n intersects.sort(ascSort);\n return intersects;\n } }]);\n\n return Raycaster;\n }();\n function ascSort(a, b) {\n return a.distance - b.distance;\n }\n function _intersectObject(object, raycaster, intersects, recursive) {\n if (object.layers.test(raycaster.layers)) {\n object.raycast(raycaster, intersects);\n }\n if (recursive === true) {\n var children = object.children;\n for (var i = 0, l = children.length; i < l; i++) {\n _intersectObject(children[i], raycaster, intersects, true);\n }\n }\n }return module.exports;});", "requires": [ "pandav:/src/math/Ray.js", "pandav:/src/core/Layers.js" ], "buildLevel": 49, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/Raycaster.js", "fileName": "/src/core/Raycaster.js" }, "pandav:/src/core/InstancedInterleavedBuffer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/InstancedInterleavedBuffer\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/InterleavedBuffer\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.InstancedInterleavedBuffer = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _InterleavedBuffer2 = require('pandav:/com/three/0.145.0/src/core/InterleavedBuffer');\n var InstancedInterleavedBuffer = exports.InstancedInterleavedBuffer = function (_InterleavedBuffer) {\n (0, _inherits2.default)(InstancedInterleavedBuffer, _InterleavedBuffer);\n var _super = (0, _createSuper2.default)(InstancedInterleavedBuffer);\n function InstancedInterleavedBuffer(array, stride) {\n var _this;\n var meshPerAttribute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n (0, _classCallCheck2.default)(this, InstancedInterleavedBuffer);\n _this = _super.call(this, array, stride);\n _this.isInstancedInterleavedBuffer = true;\n _this.meshPerAttribute = meshPerAttribute;\n return _this;\n }\n (0, _createClass2.default)(InstancedInterleavedBuffer, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedInterleavedBuffer.prototype), \"copy\", this).call(this, source);\n this.meshPerAttribute = source.meshPerAttribute;\n return this;\n } },\n {\n key: \"clone\",\n value: function clone(data) {\n var ib = (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedInterleavedBuffer.prototype), \"clone\", this).call(this, data);\n ib.meshPerAttribute = this.meshPerAttribute;\n return ib;\n } },\n {\n key: \"toJSON\",\n value: function toJSON(data) {\n var json = (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedInterleavedBuffer.prototype), \"toJSON\", this).call(this, data);\n json.isInstancedInterleavedBuffer = true;\n json.meshPerAttribute = this.meshPerAttribute;\n return json;\n } }]);\n\n return InstancedInterleavedBuffer;\n }(_InterleavedBuffer2.InterleavedBuffer);return module.exports;});", "requires": [ "pandav:/src/core/InterleavedBuffer.js" ], "buildLevel": 47, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/InstancedInterleavedBuffer.js", "fileName": "/src/core/InstancedInterleavedBuffer.js" }, "pandav:/src/core/Uniform.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/Uniform\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Uniform = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Uniform = exports.Uniform = function () {\n function Uniform(value) {\n (0, _classCallCheck2.default)(this, Uniform);\n this.value = value;\n }\n (0, _createClass2.default)(Uniform, [{\n key: \"clone\",\n value: function clone() {\n return new Uniform(this.value.clone === undefined ? this.value : this.value.clone());\n } }]);\n\n return Uniform;\n }();return module.exports;});", "requires": [], "buildLevel": 45, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/Uniform.js", "fileName": "/src/core/Uniform.js" }, "pandav:/src/core/Layers.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/Layers\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Layers = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Layers = exports.Layers = function () {\n function Layers() {\n (0, _classCallCheck2.default)(this, Layers);\n this.mask = 1 | 0;\n }\n (0, _createClass2.default)(Layers, [{\n key: \"set\",\n value: function set(channel) {\n this.mask = (1 << channel | 0) >>> 0;\n } },\n {\n key: \"enable\",\n value: function enable(channel) {\n this.mask |= 1 << channel | 0;\n } },\n {\n key: \"enableAll\",\n value: function enableAll() {\n this.mask = 0xffffffff | 0;\n } },\n {\n key: \"toggle\",\n value: function toggle(channel) {\n this.mask ^= 1 << channel | 0;\n } },\n {\n key: \"disable\",\n value: function disable(channel) {\n this.mask &= ~(1 << channel | 0);\n } },\n {\n key: \"disableAll\",\n value: function disableAll() {\n this.mask = 0;\n } },\n {\n key: \"test\",\n value: function test(layers) {\n return (this.mask & layers.mask) !== 0;\n } },\n {\n key: \"isEnabled\",\n value: function isEnabled(channel) {\n return (this.mask & (1 << channel | 0)) !== 0;\n } }]);\n\n return Layers;\n }();return module.exports;});", "requires": [], "buildLevel": 15, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/Layers.js", "fileName": "/src/core/Layers.js" }, "pandav:/src/core/Object3D.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/Object3D\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Quaternion\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/math/Euler\", \"pandav:/com/three/0.145.0/src/core/Layers\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Object3D = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _Euler = require('pandav:/com/three/0.145.0/src/math/Euler');\n var _Layers = require('pandav:/com/three/0.145.0/src/core/Layers');\n var _Matrix2 = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var _object3DId = 0;\n var _v1 = new _Vector.Vector3();\n var _q1 = new _Quaternion.Quaternion();\n var _m1 = new _Matrix.Matrix4();\n var _target = new _Vector.Vector3();\n var _position = new _Vector.Vector3();\n var _scale = new _Vector.Vector3();\n var _quaternion = new _Quaternion.Quaternion();\n var _xAxis = new _Vector.Vector3(1, 0, 0);\n var _yAxis = new _Vector.Vector3(0, 1, 0);\n var _zAxis = new _Vector.Vector3(0, 0, 1);\n var _addedEvent = {\n type: 'added' };\n\n var _removedEvent = {\n type: 'removed' };\n\n var FORWARD_VECTOR = new _Vector.Vector3(0, 0, 1);\n var Object3D = exports.Object3D = function (_EventDispatcher) {\n (0, _inherits2.default)(Object3D, _EventDispatcher);\n var _super = (0, _createSuper2.default)(Object3D);\n function Object3D() {\n var _this;\n (0, _classCallCheck2.default)(this, Object3D);\n _this = _super.call(this);\n _this._componentList = [];\n _this.isObject3D = true;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'id', {\n value: _object3DId++ });\n\n _this.uuid = MathUtils.generateUUID();\n _this.name = '';\n _this.type = 'Object3D';\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'parent', {\n enumerable: true,\n configurable: false,\n get: function get() {\n return this._parent;\n },\n set: function set(v) {\n if (v === this._parent) {\n return;\n }\n this.traverse(traverseSetInheritedVisible);\n this._parent = v;\n } });\n\n _this._parent = null;\n _this.children = [];\n _this.up = Object3D.DefaultUp.clone();\n var position = new _Vector.Vector3();\n var rotation = new _Euler.Euler();\n var quaternion = new _Quaternion.Quaternion();\n var scale = new _Vector.Vector3(1, 1, 1);\n function onRotationChange() {\n quaternion.setFromEuler(rotation, false);\n }\n function onQuaternionChange() {\n rotation.setFromQuaternion(quaternion, undefined, false);\n }\n rotation._onChange(onRotationChange);\n quaternion._onChange(onQuaternionChange);\n Object.defineProperties((0, _assertThisInitialized2.default)(_this), {\n position: {\n configurable: true,\n enumerable: true,\n value: position },\n\n rotation: {\n configurable: true,\n enumerable: true,\n value: rotation },\n\n quaternion: {\n configurable: true,\n enumerable: true,\n value: quaternion },\n\n scale: {\n configurable: true,\n enumerable: true,\n value: scale },\n\n modelViewMatrix: {\n value: new _Matrix.Matrix4() },\n\n normalMatrix: {\n value: new _Matrix2.Matrix3() } });\n\n\n _this.matrix = new _Matrix.Matrix4();\n _this.matrixWorld = new _Matrix.Matrix4();\n _this.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate;\n _this.matrixWorldNeedsUpdate = false;\n _this.matrixWorldAutoUpdate = Object3D.DefaultMatrixWorldAutoUpdate;\n _this.layers = new _Layers.Layers();\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'visible', {\n enumerable: true,\n configurable: false,\n get: function get() {\n return this._visible;\n },\n set: function set(v) {\n if (v === this._visible) {\n return;\n }\n this.traverse(traverseSetInheritedVisible);\n this._visible = v;\n } });\n\n _this.needUpdateInheritedVisible = false;\n _this._visible = true;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'inheritedVisible', {\n enumerable: true,\n configurable: false,\n get: function get() {\n this.updateInheritedVisible();\n return this._inheritedVisible;\n },\n set: function set() {\n console.warn(\"inheritedVisible is readonly\");\n } });\n\n _this._inheritedVisible = true;\n _this.castShadow = false;\n _this.receiveShadow = false;\n _this.frustumCulled = true;\n _this.renderOrder = 0;\n _this.animations = [];\n _this.userData = {};\n _this.reflectingLayers = new _Layers.Layers();\n var forward = new _Vector.Vector3(0, 0, 1);\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'forward', {\n enumerable: true,\n configurable: false,\n get: function get() {\n forward.set(0, 0, 1).applyQuaternion(quaternion);\n return forward;\n },\n set: function set(v) {\n quaternion.setFromUnitVectors(FORWARD_VECTOR, v);\n } });\n\n return _this;\n }\n (0, _createClass2.default)(Object3D, [{\n key: \"updateInheritedVisible\",\n value: function updateInheritedVisible() {\n if (!this.needUpdateInheritedVisible || !this.parent) {\n return;\n }\n this._inheritedVisible = this._visible && this.parent.inheritedVisible;\n this.needUpdateInheritedVisible = false;\n } },\n {\n key: \"onBeforeRender\",\n value: function onBeforeRender() {} },\n {\n key: \"onAfterRender\",\n value: function onAfterRender() {} },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n if (this.matrixAutoUpdate) this.updateMatrix();\n this.matrix.premultiply(matrix);\n this.matrix.decompose(this.position, this.quaternion, this.scale);\n } },\n {\n key: \"setMatrix\",\n value: function setMatrix(matrix) {\n matrix.decompose(this.position, this.quaternion, this.scale);\n this.matrix.copy(matrix);\n } },\n {\n key: \"applyQuaternion\",\n value: function applyQuaternion(q) {\n this.quaternion.premultiply(q);\n return this;\n } },\n {\n key: \"setRotationFromAxisAngle\",\n value: function setRotationFromAxisAngle(axis, angle) {\n this.quaternion.setFromAxisAngle(axis, angle);\n } },\n {\n key: \"setRotationFromEuler\",\n value: function setRotationFromEuler(euler) {\n this.quaternion.setFromEuler(euler, true);\n } },\n {\n key: \"setRotationFromMatrix\",\n value: function setRotationFromMatrix(m) {\n this.quaternion.setFromRotationMatrix(m);\n } },\n {\n key: \"setRotationFromQuaternion\",\n value: function setRotationFromQuaternion(q) {\n this.quaternion.copy(q);\n } },\n {\n key: \"rotateOnAxis\",\n value: function rotateOnAxis(axis, angle) {\n _q1.setFromAxisAngle(axis, angle);\n this.quaternion.multiply(_q1);\n return this;\n } },\n {\n key: \"rotateOnWorldAxis\",\n value: function rotateOnWorldAxis(axis, angle) {\n _q1.setFromAxisAngle(axis, angle);\n this.quaternion.premultiply(_q1);\n return this;\n } },\n {\n key: \"rotateX\",\n value: function rotateX(angle) {\n return this.rotateOnAxis(_xAxis, angle);\n } },\n {\n key: \"rotateY\",\n value: function rotateY(angle) {\n return this.rotateOnAxis(_yAxis, angle);\n } },\n {\n key: \"rotateZ\",\n value: function rotateZ(angle) {\n return this.rotateOnAxis(_zAxis, angle);\n } },\n {\n key: \"translateOnAxis\",\n value: function translateOnAxis(axis, distance) {\n _v1.copy(axis).applyQuaternion(this.quaternion);\n this.position.add(_v1.multiplyScalar(distance));\n return this;\n } },\n {\n key: \"translateX\",\n value: function translateX(distance) {\n return this.translateOnAxis(_xAxis, distance);\n } },\n {\n key: \"translateY\",\n value: function translateY(distance) {\n return this.translateOnAxis(_yAxis, distance);\n } },\n {\n key: \"translateZ\",\n value: function translateZ(distance) {\n return this.translateOnAxis(_zAxis, distance);\n } },\n {\n key: \"localToWorld\",\n value: function localToWorld(vector) {\n return vector.applyMatrix4(this.matrixWorld);\n } },\n {\n key: \"worldToLocal\",\n value: function worldToLocal(vector) {\n return vector.applyMatrix4(_m1.copy(this.matrixWorld).invert());\n } },\n {\n key: \"lookAt\",\n value: function lookAt(x, y, z) {\n if (x.isVector3) {\n _target.copy(x);\n } else {\n _target.set(x, y, z);\n }\n var parent = this.parent;\n this.updateWorldMatrix(true, false);\n _position.setFromMatrixPosition(this.matrixWorld);\n if (this.isCamera || this.isLight) {\n _m1.lookAt(_position, _target, this.up);\n } else {\n _m1.lookAt(_target, _position, this.up);\n }\n this.quaternion.setFromRotationMatrix(_m1);\n if (parent) {\n _m1.extractRotation(parent.matrixWorld);\n _q1.setFromRotationMatrix(_m1);\n this.quaternion.premultiply(_q1.invert());\n }\n } },\n {\n key: \"add\",\n value: function add(object) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n if (object === this) {\n console.error('THREE.Object3D.add: object can\\'t be added as a child of itself.', object);\n return this;\n }\n if (object && object.isObject3D) {\n if (object.parent !== null) {\n object.parent.remove(object);\n }\n object.parent = this;\n this.children.push(object);\n object.dispatchEvent(_addedEvent);\n } else {\n console.error('THREE.Object3D.add: object not an instance of THREE.Object3D.', object);\n }\n return this;\n } },\n {\n key: \"insertChild\",\n value: function insertChild(object, index) {\n if (object === this) {\n console.error('THREE.Object3D.add: object can\\'t be added as a child of itself.', object);\n return this;\n }\n if (index < 0) {\n console.error(\"index over\", index);\n return this;\n }\n if (object && object.isObject3D) {\n if (object.parent !== null) {\n object.parent.remove(object);\n }\n object.parent = this;\n if (index >= this.children.length) {\n this.children.push(object);\n } else {\n this.children.splice(index, 0, object);\n }\n object.dispatchEvent(_addedEvent);\n } else {\n console.error('THREE.Object3D.add: object not an instance of THREE.Object3D.', object);\n }\n return this;\n } },\n {\n key: \"remove\",\n value: function remove(object) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.remove(arguments[i]);\n }\n return this;\n }\n var index = this.children.indexOf(object);\n if (index !== -1) {\n object.parent = null;\n this.children.splice(index, 1);\n object.dispatchEvent(_removedEvent);\n }\n return this;\n } },\n {\n key: \"removeFromParent\",\n value: function removeFromParent() {\n var parent = this.parent;\n if (parent !== null) {\n parent.remove(this);\n }\n return this;\n } },\n {\n key: \"clear\",\n value: function clear() {\n for (var i = 0; i < this.children.length; i++) {\n var object = this.children[i];\n object.parent = null;\n object.dispatchEvent(_removedEvent);\n }\n this.children.length = 0;\n return this;\n } },\n {\n key: \"attach\",\n value: function attach(object) {\n this.updateWorldMatrix(true, false);\n _m1.copy(this.matrixWorld).invert();\n if (object.parent !== null) {\n object.parent.updateWorldMatrix(true, false);\n _m1.multiply(object.parent.matrixWorld);\n }\n object.applyMatrix4(_m1);\n this.add(object);\n object.updateWorldMatrix(false, true);\n return this;\n } },\n {\n key: \"getObjectById\",\n value: function getObjectById(id) {\n return this.getObjectByProperty('id', id);\n } },\n {\n key: \"getObjectByName\",\n value: function getObjectByName(name) {\n return this.getObjectByProperty('name', name);\n } },\n {\n key: \"getObjectByProperty\",\n value: function getObjectByProperty(name, value) {\n if (this[name] === value) return this;\n for (var i = 0, l = this.children.length; i < l; i++) {\n var child = this.children[i];\n var object = child.getObjectByProperty(name, value);\n if (object !== undefined) {\n return object;\n }\n }\n return undefined;\n } },\n {\n key: \"getChildByName\",\n value: function getChildByName(name) {\n if (!name) {\n return null;\n }\n for (var i = 0, l = this.children.length; i < l; i++) {\n var child = this.children[i];\n if (child.name === name) {\n return child;\n }\n }\n return null;\n } },\n {\n key: \"findObject\",\n value: function findObject(path) {\n var names = path.split(\"/\");\n var out = this;\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n var child = out.getChildByName(name);\n if (child === null) {\n return null;\n } else {\n out = child;\n }\n }\n return out;\n } },\n {\n key: \"getWorldPosition\",\n value: function getWorldPosition(target) {\n this.updateWorldMatrix(true, false);\n return target.setFromMatrixPosition(this.matrixWorld);\n } },\n {\n key: \"getWorldQuaternion\",\n value: function getWorldQuaternion(target) {\n this.updateWorldMatrix(true, false);\n this.matrixWorld.decompose(_position, target, _scale);\n return target;\n } },\n {\n key: \"getWorldScale\",\n value: function getWorldScale(target) {\n this.updateWorldMatrix(true, false);\n this.matrixWorld.decompose(_position, _quaternion, target);\n return target;\n } },\n {\n key: \"getWorldDirection\",\n value: function getWorldDirection(target) {\n this.updateWorldMatrix(true, false);\n var e = this.matrixWorld.elements;\n return target.set(e[8], e[9], e[10]).normalize();\n } },\n {\n key: \"raycast\",\n value: function raycast() {} },\n {\n key: \"traverse\",\n value: function traverse(callback) {\n callback(this);\n var children = this.children;\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].traverse(callback);\n }\n } },\n {\n key: \"traverseVisible\",\n value: function traverseVisible(callback) {\n if (this.visible === false) return;\n callback(this);\n var children = this.children;\n for (var i = 0, l = children.length; i < l; i++) {\n children[i].traverseVisible(callback);\n }\n } },\n {\n key: \"traverseAncestors\",\n value: function traverseAncestors(callback) {\n var parent = this.parent;\n if (parent !== null) {\n callback(parent);\n parent.traverseAncestors(callback);\n }\n } },\n {\n key: \"updateMatrix\",\n value: function updateMatrix() {\n this.matrix.compose(this.position, this.quaternion, this.scale);\n this.matrixWorldNeedsUpdate = true;\n } },\n {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n if (!this.visible && !force) {\n return;\n }\n if (this.matrixAutoUpdate) this.updateMatrix();\n if (this.matrixWorldNeedsUpdate || force) {\n if (this.parent === null) {\n this.matrixWorld.copy(this.matrix);\n } else {\n this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n }\n this.matrixWorldNeedsUpdate = false;\n force = true;\n }\n var children = this.children;\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n if (child.matrixWorldAutoUpdate === true || force === true) {\n child.updateMatrixWorld(force);\n }\n }\n } },\n {\n key: \"updateWorldMatrix\",\n value: function updateWorldMatrix(updateParents, updateChildren) {\n var parent = this.parent;\n if (updateParents === true && parent !== null && parent.matrixWorldAutoUpdate === true) {\n parent.updateWorldMatrix(true, false);\n }\n if (this.matrixAutoUpdate) this.updateMatrix();\n if (this.parent === null) {\n this.matrixWorld.copy(this.matrix);\n } else {\n this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n }\n if (updateChildren === true) {\n var children = this.children;\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n if (child.matrixWorldAutoUpdate === true) {\n child.updateWorldMatrix(false, true);\n }\n }\n }\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var self = this;\n var output = {};\n var object = {};\n object.uuid = self.uuid;\n object.type = self.type;\n if (self.name !== \"\") {\n object.name = self.name;\n }\n if (self.castShadow === true) {\n object.castShadow = true;\n }\n if (self.receiveShadow === true) {\n object.receiveShadow = true;\n }\n if (self.visible === false) {\n object.visible = false;\n }\n if (self.frustumCulled === false) {\n object.frustumCulled = false;\n }\n if (self.renderOrder !== 0) {\n object.renderOrder = self.renderOrder;\n }\n if (JSON.stringify(self.userData) !== \"{}\") {\n object.userData = self.userData;\n }\n object.layers = self.layers.mask;\n object.position = self.position.toJSON();\n object.rotation = self.rotation.toJSON();\n object.scale = self.scale.toJSON();\n if (self.matrixAutoUpdate === false) {\n object.matrixAutoUpdate = false;\n }\n if (self.isInstancedMesh) {\n object.type = \"InstancedMesh\";\n object.count = 0;\n }\n if (self.isScene) {\n if (self.background) {\n if (self.background.isColor) {\n object.background = self.background.toJSON();\n } else {\n object.background = null;\n }\n }\n if (self.environment !== undefined) {\n object.environment = null;\n }\n } else if (self.isMesh || self.isLine || self.isPoints) {\n if (self.geometry) {\n object.geometry = self.geometry.uuid;\n }\n }\n if (self.isSkinnedMesh) {\n object.bindMode = self.bindMode;\n object.bindMatrix = self.bindMatrix.toArray();\n }\n if (self.material) {\n if (Array.isArray(self.material)) {\n var uuids = [];\n for (var i = 0, l = self.material.length; i < l; i++) {\n if (!self.material[i]) {\n uuids.push(null);\n } else {\n uuids.push(self.material[i].uuid);\n }\n }\n object.material = uuids;\n } else {\n object.material = self.material.uuid;\n }\n }\n object.components = self._componentList.map(function (e) {\n return e.uuid;\n });\n object.reflectingLayers = self.reflectingLayers.mask;\n object.children = [];\n if (self.animations.length > 0) {\n object.animations = [];\n }\n output.object = object;\n return output;\n } },\n {\n key: \"clone\",\n value: function clone(recursive) {\n return new this.constructor().copy(this, recursive);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n this.name = source.name;\n this.up.copy(source.up);\n this.position.copy(source.position);\n this.rotation.order = source.rotation.order;\n this.quaternion.copy(source.quaternion);\n this.scale.copy(source.scale);\n this.matrix.copy(source.matrix);\n this.matrixWorld.copy(source.matrixWorld);\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n this.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n this.layers.mask = source.layers.mask;\n this.visible = source.visible;\n this.castShadow = source.castShadow;\n this.receiveShadow = source.receiveShadow;\n this.frustumCulled = source.frustumCulled;\n this.renderOrder = source.renderOrder;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n if (source._componentList) {\n var _componentList = [];\n for (var i = 0; i < source._componentList.length; i++) {\n _componentList.push(source._componentList[i].clone());\n }\n this._componentList = _componentList;\n }\n this.reflectingLayers.mask = source.reflectingLayers.mask;\n if (recursive === true) {\n for (var _i = 0; _i < source.children.length; _i++) {\n var child = source.children[_i];\n this.add(child.clone());\n }\n }\n return this;\n } },\n {\n key: \"componentList\",\n get: function get() {\n return this._componentList;\n } },\n {\n key: \"addComponent\",\n value: function addComponent(component) {\n if (!component) {\n console.warn(\"component is null\");\n return;\n }\n if (this._componentList.indexOf(component) >= 0) {\n return;\n }\n component.owner = this;\n this._componentList.push(component);\n } },\n {\n key: \"removeComponent\",\n value: function removeComponent(component) {\n var i = this._componentList.indexOf(component);\n if (i < 0) {\n return;\n }\n component.owner = null;\n this._componentList.splice(i, 1);\n } },\n {\n key: \"getComponent\",\n value: function getComponent(type) {\n var _componentList = this._componentList;\n for (var i = 0; i < _componentList.length; i++) {\n if (_componentList[i].type === type) {\n return _componentList[i];\n }\n }\n return null;\n } },\n {\n key: \"getComponents\",\n value: function getComponents(type) {\n return this._componentList.filter(function (e) {\n return e.type === type;\n });\n } },\n {\n key: \"traverseMaterial\",\n value: function traverseMaterial(callback) {\n if (this.isMesh || this.isPoints || this.isSprite || this.isLine) {\n if (this.material) {\n if (Array.isArray(this.material)) {\n for (var i = 0; i < this.material.length; i++) {\n callback(this.material[i]);\n }\n } else {\n callback(this.material);\n }\n }\n }\n var children = this.children;\n for (var _i2 = 0, l = children.length; _i2 < l; _i2++) {\n children[_i2].traverseMaterial(callback);\n }\n } }]);\n\n return Object3D;\n }(_EventDispatcher2.EventDispatcher);\n Object3D.DefaultUp = new _Vector.Vector3(0, 1, 0);\n Object3D.DefaultMatrixAutoUpdate = true;\n Object3D.DefaultMatrixWorldAutoUpdate = true;\n function traverseSetInheritedVisible(o) {\n o.needUpdateInheritedVisible = true;\n }return module.exports;});", "requires": [ "pandav:/src/math/Quaternion.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Matrix4.js", "pandav:/src/core/EventDispatcher.js", "pandav:/src/math/Euler.js", "pandav:/src/core/Layers.js", "pandav:/src/math/Matrix3.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 13, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/Object3D.js", "fileName": "/src/core/Object3D.js" }, "pandav:/src/core/InterleavedBufferAttribute.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/InterleavedBufferAttribute\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.InterleavedBufferAttribute = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _MathUtils = require('pandav:/com/three/0.145.0/src/math/MathUtils');\n var _vector = new _Vector.Vector3();\n var InterleavedBufferAttribute = exports.InterleavedBufferAttribute = function () {\n function InterleavedBufferAttribute(interleavedBuffer, itemSize, offset) {\n var normalized = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n (0, _classCallCheck2.default)(this, InterleavedBufferAttribute);\n this.isInterleavedBufferAttribute = true;\n this.name = '';\n this.data = interleavedBuffer;\n this.itemSize = itemSize;\n this.offset = offset;\n this.normalized = normalized === true;\n }\n (0, _createClass2.default)(InterleavedBufferAttribute, [{\n key: \"count\",\n get: function get() {\n return this.data.count;\n } },\n {\n key: \"array\",\n get: function get() {\n return this.data.array;\n } },\n {\n key: \"needsUpdate\",\n set: function set(value) {\n this.data.needsUpdate = value;\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n for (var i = 0, l = this.data.count; i < l; i++) {\n _vector.fromBufferAttribute(this, i);\n _vector.applyMatrix4(m);\n this.setXYZ(i, _vector.x, _vector.y, _vector.z);\n }\n return this;\n } },\n {\n key: \"applyNormalMatrix\",\n value: function applyNormalMatrix(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector.fromBufferAttribute(this, i);\n _vector.applyNormalMatrix(m);\n this.setXYZ(i, _vector.x, _vector.y, _vector.z);\n }\n return this;\n } },\n {\n key: \"transformDirection\",\n value: function transformDirection(m) {\n for (var i = 0, l = this.count; i < l; i++) {\n _vector.fromBufferAttribute(this, i);\n _vector.transformDirection(m);\n this.setXYZ(i, _vector.x, _vector.y, _vector.z);\n }\n return this;\n } },\n {\n key: \"setX\",\n value: function setX(index, x) {\n if (this.normalized) x = (0, _MathUtils.normalize)(x, this.array);\n this.data.array[index * this.data.stride + this.offset] = x;\n return this;\n } },\n {\n key: \"setY\",\n value: function setY(index, y) {\n if (this.normalized) y = (0, _MathUtils.normalize)(y, this.array);\n this.data.array[index * this.data.stride + this.offset + 1] = y;\n return this;\n } },\n {\n key: \"setZ\",\n value: function setZ(index, z) {\n if (this.normalized) z = (0, _MathUtils.normalize)(z, this.array);\n this.data.array[index * this.data.stride + this.offset + 2] = z;\n return this;\n } },\n {\n key: \"setW\",\n value: function setW(index, w) {\n if (this.normalized) w = (0, _MathUtils.normalize)(w, this.array);\n this.data.array[index * this.data.stride + this.offset + 3] = w;\n return this;\n } },\n {\n key: \"getX\",\n value: function getX(index) {\n var x = this.data.array[index * this.data.stride + this.offset];\n if (this.normalized) x = (0, _MathUtils.denormalize)(x, this.array);\n return x;\n } },\n {\n key: \"getY\",\n value: function getY(index) {\n var y = this.data.array[index * this.data.stride + this.offset + 1];\n if (this.normalized) y = (0, _MathUtils.denormalize)(y, this.array);\n return y;\n } },\n {\n key: \"getZ\",\n value: function getZ(index) {\n var z = this.data.array[index * this.data.stride + this.offset + 2];\n if (this.normalized) z = (0, _MathUtils.denormalize)(z, this.array);\n return z;\n } },\n {\n key: \"getW\",\n value: function getW(index) {\n var w = this.data.array[index * this.data.stride + this.offset + 3];\n if (this.normalized) w = (0, _MathUtils.denormalize)(w, this.array);\n return w;\n } },\n {\n key: \"setXY\",\n value: function setXY(index, x, y) {\n index = index * this.data.stride + this.offset;\n if (this.normalized) {\n x = (0, _MathUtils.normalize)(x, this.array);\n y = (0, _MathUtils.normalize)(y, this.array);\n }\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n return this;\n } },\n {\n key: \"setXYZ\",\n value: function setXYZ(index, x, y, z) {\n index = index * this.data.stride + this.offset;\n if (this.normalized) {\n x = (0, _MathUtils.normalize)(x, this.array);\n y = (0, _MathUtils.normalize)(y, this.array);\n z = (0, _MathUtils.normalize)(z, this.array);\n }\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n this.data.array[index + 2] = z;\n return this;\n } },\n {\n key: \"setXYZW\",\n value: function setXYZW(index, x, y, z, w) {\n index = index * this.data.stride + this.offset;\n if (this.normalized) {\n x = (0, _MathUtils.normalize)(x, this.array);\n y = (0, _MathUtils.normalize)(y, this.array);\n z = (0, _MathUtils.normalize)(z, this.array);\n w = (0, _MathUtils.normalize)(w, this.array);\n }\n this.data.array[index + 0] = x;\n this.data.array[index + 1] = y;\n this.data.array[index + 2] = z;\n this.data.array[index + 3] = w;\n return this;\n } },\n {\n key: \"clone\",\n value: function clone(data) {\n if (data === undefined) {\n console.log('THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will deinterleave buffer data.');\n var array = [];\n for (var i = 0; i < this.count; i++) {\n var index = i * this.data.stride + this.offset;\n for (var j = 0; j < this.itemSize; j++) {\n array.push(this.data.array[index + j]);\n }\n }\n return new _BufferAttribute.BufferAttribute(new this.array.constructor(array), this.itemSize, this.normalized);\n } else {\n if (data.interleavedBuffers === undefined) {\n data.interleavedBuffers = {};\n }\n if (data.interleavedBuffers[this.data.uuid] === undefined) {\n data.interleavedBuffers[this.data.uuid] = this.data.clone(data);\n }\n return new InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid], this.itemSize, this.offset, this.normalized);\n }\n } },\n {\n key: \"toJSON\",\n value: function toJSON(data) {\n if (data === undefined) {\n console.log('THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will deinterleave buffer data.');\n var array = [];\n for (var i = 0; i < this.count; i++) {\n var index = i * this.data.stride + this.offset;\n for (var j = 0; j < this.itemSize; j++) {\n array.push(this.data.array[index + j]);\n }\n }\n return {\n itemSize: this.itemSize,\n type: this.array.constructor.name,\n array: array,\n normalized: this.normalized };\n\n } else {\n if (data.interleavedBuffers === undefined) {\n data.interleavedBuffers = {};\n }\n if (data.interleavedBuffers[this.data.uuid] === undefined) {\n data.interleavedBuffers[this.data.uuid] = this.data.toJSON(data);\n }\n return {\n isInterleavedBufferAttribute: true,\n itemSize: this.itemSize,\n data: this.data.uuid,\n offset: this.offset,\n normalized: this.normalized };\n\n }\n } }]);\n\n return InterleavedBufferAttribute;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 15, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/InterleavedBufferAttribute.js", "fileName": "/src/core/InterleavedBufferAttribute.js" }, "pandav:/src/extras/core/Curve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/core/Curve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Matrix4\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Curve = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var Curve = exports.Curve = function () {\n function Curve() {\n (0, _classCallCheck2.default)(this, Curve);\n this.type = 'Curve';\n this.arcLengthDivisions = 200;\n }\n (0, _createClass2.default)(Curve, [{\n key: \"getPoint\",\n value: function getPoint() {\n console.warn('THREE.Curve: .getPoint() not implemented.');\n return null;\n } },\n {\n key: \"getPointAt\",\n value: function getPointAt(u, optionalTarget) {\n var t = this.getUtoTmapping(u);\n return this.getPoint(t, optionalTarget);\n } },\n {\n key: \"getPoints\",\n value: function getPoints() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var points = [];\n for (var d = 0; d <= divisions; d++) {\n points.push(this.getPoint(d / divisions));\n }\n return points;\n } },\n {\n key: \"getSpacedPoints\",\n value: function getSpacedPoints() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var points = [];\n for (var d = 0; d <= divisions; d++) {\n points.push(this.getPointAt(d / divisions));\n }\n return points;\n } },\n {\n key: \"getLength\",\n value: function getLength() {\n var lengths = this.getLengths();\n return lengths[lengths.length - 1];\n } },\n {\n key: \"getLengths\",\n value: function getLengths() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.arcLengthDivisions;\n if (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) {\n return this.cacheArcLengths;\n }\n this.needsUpdate = false;\n var cache = [];\n var current,\n last = this.getPoint(0);\n var sum = 0;\n cache.push(0);\n for (var p = 1; p <= divisions; p++) {\n current = this.getPoint(p / divisions);\n sum += current.distanceTo(last);\n cache.push(sum);\n last = current;\n }\n this.cacheArcLengths = cache;\n return cache;\n } },\n {\n key: \"updateArcLengths\",\n value: function updateArcLengths() {\n this.needsUpdate = true;\n this.getLengths();\n } },\n {\n key: \"getUtoTmapping\",\n value: function getUtoTmapping(u, distance) {\n var arcLengths = this.getLengths();\n var i = 0;\n var il = arcLengths.length;\n var targetArcLength;\n if (distance) {\n targetArcLength = distance;\n } else {\n targetArcLength = u * arcLengths[il - 1];\n }\n var low = 0,\n high = il - 1,\n comparison;\n while (low <= high) {\n i = Math.floor(low + (high - low) / 2);\n comparison = arcLengths[i] - targetArcLength;\n if (comparison < 0) {\n low = i + 1;\n } else if (comparison > 0) {\n high = i - 1;\n } else {\n high = i;\n break;\n }\n }\n i = high;\n if (arcLengths[i] === targetArcLength) {\n return i / (il - 1);\n }\n var lengthBefore = arcLengths[i];\n var lengthAfter = arcLengths[i + 1];\n var segmentLength = lengthAfter - lengthBefore;\n var segmentFraction = (targetArcLength - lengthBefore) / segmentLength;\n var t = (i + segmentFraction) / (il - 1);\n return t;\n } },\n {\n key: \"getTangent\",\n value: function getTangent(t, optionalTarget) {\n var delta = 0.0001;\n var t1 = t - delta;\n var t2 = t + delta;\n if (t1 < 0) t1 = 0;\n if (t2 > 1) t2 = 1;\n var pt1 = this.getPoint(t1);\n var pt2 = this.getPoint(t2);\n var tangent = optionalTarget || (pt1.isVector2 ? new _Vector.Vector2() : new _Vector2.Vector3());\n tangent.copy(pt2).sub(pt1).normalize();\n return tangent;\n } },\n {\n key: \"getTangentAt\",\n value: function getTangentAt(u, optionalTarget) {\n var t = this.getUtoTmapping(u);\n return this.getTangent(t, optionalTarget);\n } },\n {\n key: \"computeFrenetFrames\",\n value: function computeFrenetFrames(segments, closed) {\n var normal = new _Vector2.Vector3();\n var tangents = [];\n var normals = [];\n var binormals = [];\n var vec = new _Vector2.Vector3();\n var mat = new _Matrix.Matrix4();\n for (var i = 0; i <= segments; i++) {\n var u = i / segments;\n tangents[i] = this.getTangentAt(u, new _Vector2.Vector3());\n }\n normals[0] = new _Vector2.Vector3();\n binormals[0] = new _Vector2.Vector3();\n var min = Number.MAX_VALUE;\n var tx = Math.abs(tangents[0].x);\n var ty = Math.abs(tangents[0].y);\n var tz = Math.abs(tangents[0].z);\n if (tx <= min) {\n min = tx;\n normal.set(1, 0, 0);\n }\n if (ty <= min) {\n min = ty;\n normal.set(0, 1, 0);\n }\n if (tz <= min) {\n normal.set(0, 0, 1);\n }\n vec.crossVectors(tangents[0], normal).normalize();\n normals[0].crossVectors(tangents[0], vec);\n binormals[0].crossVectors(tangents[0], normals[0]);\n for (var _i = 1; _i <= segments; _i++) {\n normals[_i] = normals[_i - 1].clone();\n binormals[_i] = binormals[_i - 1].clone();\n vec.crossVectors(tangents[_i - 1], tangents[_i]);\n if (vec.length() > Number.EPSILON) {\n vec.normalize();\n var theta = Math.acos(MathUtils.clamp(tangents[_i - 1].dot(tangents[_i]), -1, 1));\n normals[_i].applyMatrix4(mat.makeRotationAxis(vec, theta));\n }\n binormals[_i].crossVectors(tangents[_i], normals[_i]);\n }\n if (closed === true) {\n var _theta = Math.acos(MathUtils.clamp(normals[0].dot(normals[segments]), -1, 1));\n _theta /= segments;\n if (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) {\n _theta = -_theta;\n }\n for (var _i2 = 1; _i2 <= segments; _i2++) {\n normals[_i2].applyMatrix4(mat.makeRotationAxis(tangents[_i2], _theta * _i2));\n binormals[_i2].crossVectors(tangents[_i2], normals[_i2]);\n }\n }\n return {\n tangents: tangents,\n normals: normals,\n binormals: binormals };\n\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.arcLengthDivisions = source.arcLengthDivisions;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'Curve',\n generator: 'Curve.toJSON' } };\n\n\n data.arcLengthDivisions = this.arcLengthDivisions;\n data.type = this.type;\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n this.arcLengthDivisions = json.arcLengthDivisions;\n return this;\n } }]);\n\n return Curve;\n }();return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Matrix4.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/extras/core", "outputPath": "/com/three/0.145.0/src/extras/core/Curve.js", "fileName": "/src/extras/core/Curve.js" }, "pandav:/src/core/UniformsGroup.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/core/UniformsGroup\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.UniformsGroup = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var id = 0;\n var UniformsGroup = exports.UniformsGroup = function (_EventDispatcher) {\n (0, _inherits2.default)(UniformsGroup, _EventDispatcher);\n var _super = (0, _createSuper2.default)(UniformsGroup);\n function UniformsGroup() {\n var _this;\n (0, _classCallCheck2.default)(this, UniformsGroup);\n _this = _super.call(this);\n _this.isUniformsGroup = true;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'id', {\n value: id++ });\n\n _this.name = '';\n _this.usage = _constants.StaticDrawUsage;\n _this.uniforms = [];\n return _this;\n }\n (0, _createClass2.default)(UniformsGroup, [{\n key: \"add\",\n value: function add(uniform) {\n this.uniforms.push(uniform);\n return this;\n } },\n {\n key: \"remove\",\n value: function remove(uniform) {\n var index = this.uniforms.indexOf(uniform);\n if (index !== -1) this.uniforms.splice(index, 1);\n return this;\n } },\n {\n key: \"setName\",\n value: function setName(name) {\n this.name = name;\n return this;\n } },\n {\n key: \"setUsage\",\n value: function setUsage(value) {\n this.usage = value;\n return this;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose' });\n\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.usage = source.usage;\n var uniformsSource = source.uniforms;\n this.uniforms.length = 0;\n for (var i = 0, l = uniformsSource.length; i < l; i++) {\n this.uniforms.push(uniformsSource[i].clone());\n }\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return UniformsGroup;\n }(_EventDispatcher2.EventDispatcher);return module.exports;});", "requires": [ "pandav:/src/core/EventDispatcher.js", "pandav:/src/constants.js" ], "buildLevel": 46, "outputDir": "/com/three/0.145.0/src/core", "outputPath": "/com/three/0.145.0/src/core/UniformsGroup.js", "fileName": "/src/core/UniformsGroup.js" }, "pandav:/src/extras/core/CurvePath.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/core/CurvePath\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/extras/curves/Curves\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CurvePath = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var Curves = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/extras/curves/Curves'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var CurvePath = exports.CurvePath = function (_Curve) {\n (0, _inherits2.default)(CurvePath, _Curve);\n var _super = (0, _createSuper2.default)(CurvePath);\n function CurvePath() {\n var _this;\n (0, _classCallCheck2.default)(this, CurvePath);\n _this = _super.call(this);\n _this.type = 'CurvePath';\n _this.curves = [];\n _this.autoClose = false;\n return _this;\n }\n (0, _createClass2.default)(CurvePath, [{\n key: \"add\",\n value: function add(curve) {\n this.curves.push(curve);\n } },\n {\n key: \"closePath\",\n value: function closePath() {\n var startPoint = this.curves[0].getPoint(0);\n var endPoint = this.curves[this.curves.length - 1].getPoint(1);\n if (!startPoint.equals(endPoint)) {\n this.curves.push(new Curves['LineCurve'](endPoint, startPoint));\n }\n } },\n {\n key: \"getPoint\",\n value: function getPoint(t, optionalTarget) {\n var d = t * this.getLength();\n var curveLengths = this.getCurveLengths();\n var i = 0;\n while (i < curveLengths.length) {\n if (curveLengths[i] >= d) {\n var diff = curveLengths[i] - d;\n var curve = this.curves[i];\n var segmentLength = curve.getLength();\n var u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n return curve.getPointAt(u, optionalTarget);\n }\n i++;\n }\n return null;\n } },\n {\n key: \"getLength\",\n value: function getLength() {\n var lens = this.getCurveLengths();\n return lens[lens.length - 1];\n } },\n {\n key: \"updateArcLengths\",\n value: function updateArcLengths() {\n this.needsUpdate = true;\n this.cacheLengths = null;\n this.getCurveLengths();\n } },\n {\n key: \"getCurveLengths\",\n value: function getCurveLengths() {\n if (this.cacheLengths && this.cacheLengths.length === this.curves.length) {\n return this.cacheLengths;\n }\n var lengths = [];\n var sums = 0;\n for (var i = 0, l = this.curves.length; i < l; i++) {\n sums += this.curves[i].getLength();\n lengths.push(sums);\n }\n this.cacheLengths = lengths;\n return lengths;\n } },\n {\n key: \"getSpacedPoints\",\n value: function getSpacedPoints() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 40;\n var points = [];\n for (var i = 0; i <= divisions; i++) {\n points.push(this.getPoint(i / divisions));\n }\n if (this.autoClose) {\n points.push(points[0]);\n }\n return points;\n } },\n {\n key: \"getPoints\",\n value: function getPoints() {\n var divisions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 12;\n var points = [];\n var last;\n for (var i = 0, curves = this.curves; i < curves.length; i++) {\n var curve = curves[i];\n var resolution = curve.isEllipseCurve ? divisions * 2 : curve.isLineCurve || curve.isLineCurve3 ? 1 : curve.isSplineCurve ? divisions * curve.points.length : divisions;\n var pts = curve.getPoints(resolution);\n for (var j = 0; j < pts.length; j++) {\n var point = pts[j];\n if (last && last.equals(point)) continue;\n points.push(point);\n last = point;\n }\n }\n if (this.autoClose && points.length > 1 && !points[points.length - 1].equals(points[0])) {\n points.push(points[0]);\n }\n return points;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CurvePath.prototype), \"copy\", this).call(this, source);\n this.curves = [];\n for (var i = 0, l = source.curves.length; i < l; i++) {\n var curve = source.curves[i];\n this.curves.push(curve.clone());\n }\n this.autoClose = source.autoClose;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(CurvePath.prototype), \"toJSON\", this).call(this);\n data.autoClose = this.autoClose;\n data.curves = [];\n for (var i = 0, l = this.curves.length; i < l; i++) {\n var curve = this.curves[i];\n data.curves.push(curve.toJSON());\n }\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CurvePath.prototype), \"fromJSON\", this).call(this, json);\n this.autoClose = json.autoClose;\n this.curves = [];\n for (var i = 0, l = json.curves.length; i < l; i++) {\n var curve = json.curves[i];\n this.curves.push(new Curves[curve.type]().fromJSON(curve));\n }\n return this;\n } }]);\n\n return CurvePath;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/extras/core/Curve.js", "pandav:/src/extras/curves/Curves.js" ], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/extras/core", "outputPath": "/com/three/0.145.0/src/extras/core/CurvePath.js", "fileName": "/src/extras/core/CurvePath.js" }, "pandav:/src/extras/core/Interpolations.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/core/Interpolations\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CatmullRom = CatmullRom;\n exports.CubicBezier = CubicBezier;\n exports.QuadraticBezier = QuadraticBezier;\n function CatmullRom(t, p0, p1, p2, p3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n }\n function QuadraticBezierP0(t, p) {\n var k = 1 - t;\n return k * k * p;\n }\n function QuadraticBezierP1(t, p) {\n return 2 * (1 - t) * t * p;\n }\n function QuadraticBezierP2(t, p) {\n return t * t * p;\n }\n function QuadraticBezier(t, p0, p1, p2) {\n return QuadraticBezierP0(t, p0) + QuadraticBezierP1(t, p1) + QuadraticBezierP2(t, p2);\n }\n function CubicBezierP0(t, p) {\n var k = 1 - t;\n return k * k * k * p;\n }\n function CubicBezierP1(t, p) {\n var k = 1 - t;\n return 3 * k * k * t * p;\n }\n function CubicBezierP2(t, p) {\n return 3 * (1 - t) * t * t * p;\n }\n function CubicBezierP3(t, p) {\n return t * t * t * p;\n }\n function CubicBezier(t, p0, p1, p2, p3) {\n return CubicBezierP0(t, p0) + CubicBezierP1(t, p1) + CubicBezierP2(t, p2) + CubicBezierP3(t, p3);\n }return module.exports;});", "requires": [], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/extras/core", "outputPath": "/com/three/0.145.0/src/extras/core/Interpolations.js", "fileName": "/src/extras/core/Interpolations.js" }, "pandav:/src/extras/core/Path.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/core/Path\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/extras/core/CurvePath\", \"pandav:/com/three/0.145.0/src/extras/curves/EllipseCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/SplineCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/LineCurve\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Path = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _CurvePath2 = require('pandav:/com/three/0.145.0/src/extras/core/CurvePath');\n var _EllipseCurve = require('pandav:/com/three/0.145.0/src/extras/curves/EllipseCurve');\n var _SplineCurve = require('pandav:/com/three/0.145.0/src/extras/curves/SplineCurve');\n var _CubicBezierCurve = require('pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve');\n var _QuadraticBezierCurve = require('pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve');\n var _LineCurve = require('pandav:/com/three/0.145.0/src/extras/curves/LineCurve');\n var Path = exports.Path = function (_CurvePath) {\n (0, _inherits2.default)(Path, _CurvePath);\n var _super = (0, _createSuper2.default)(Path);\n function Path(points) {\n var _this;\n (0, _classCallCheck2.default)(this, Path);\n _this = _super.call(this);\n _this.type = 'Path';\n _this.currentPoint = new _Vector.Vector2();\n if (points) {\n _this.setFromPoints(points);\n }\n return _this;\n }\n (0, _createClass2.default)(Path, [{\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n this.moveTo(points[0].x, points[0].y);\n for (var i = 1, l = points.length; i < l; i++) {\n this.lineTo(points[i].x, points[i].y);\n }\n return this;\n } },\n {\n key: \"moveTo\",\n value: function moveTo(x, y) {\n this.currentPoint.set(x, y);\n return this;\n } },\n {\n key: \"lineTo\",\n value: function lineTo(x, y) {\n var curve = new _LineCurve.LineCurve(this.currentPoint.clone(), new _Vector.Vector2(x, y));\n this.curves.push(curve);\n this.currentPoint.set(x, y);\n return this;\n } },\n {\n key: \"quadraticCurveTo\",\n value: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\n var curve = new _QuadraticBezierCurve.QuadraticBezierCurve(this.currentPoint.clone(), new _Vector.Vector2(aCPx, aCPy), new _Vector.Vector2(aX, aY));\n this.curves.push(curve);\n this.currentPoint.set(aX, aY);\n return this;\n } },\n {\n key: \"bezierCurveTo\",\n value: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n var curve = new _CubicBezierCurve.CubicBezierCurve(this.currentPoint.clone(), new _Vector.Vector2(aCP1x, aCP1y), new _Vector.Vector2(aCP2x, aCP2y), new _Vector.Vector2(aX, aY));\n this.curves.push(curve);\n this.currentPoint.set(aX, aY);\n return this;\n } },\n {\n key: \"splineThru\",\n value: function splineThru(pts) {\n var npts = [this.currentPoint.clone()].concat(pts);\n var curve = new _SplineCurve.SplineCurve(npts);\n this.curves.push(curve);\n this.currentPoint.copy(pts[pts.length - 1]);\n return this;\n } },\n {\n key: \"arc\",\n value: function arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n var x0 = this.currentPoint.x;\n var y0 = this.currentPoint.y;\n this.absarc(aX + x0, aY + y0, aRadius, aStartAngle, aEndAngle, aClockwise);\n return this;\n } },\n {\n key: \"absarc\",\n value: function absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n return this;\n } },\n {\n key: \"ellipse\",\n value: function ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n var x0 = this.currentPoint.x;\n var y0 = this.currentPoint.y;\n this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n return this;\n } },\n {\n key: \"absellipse\",\n value: function absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n var curve = new _EllipseCurve.EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n if (this.curves.length > 0) {\n var firstPoint = curve.getPoint(0);\n if (!firstPoint.equals(this.currentPoint)) {\n this.lineTo(firstPoint.x, firstPoint.y);\n }\n }\n this.curves.push(curve);\n var lastPoint = curve.getPoint(1);\n this.currentPoint.copy(lastPoint);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Path.prototype), \"copy\", this).call(this, source);\n this.currentPoint.copy(source.currentPoint);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(Path.prototype), \"toJSON\", this).call(this);\n data.currentPoint = this.currentPoint.toArray();\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Path.prototype), \"fromJSON\", this).call(this, json);\n this.currentPoint.fromArray(json.currentPoint);\n return this;\n } }]);\n\n return Path;\n }(_CurvePath2.CurvePath);return module.exports;});", "requires": [ "pandav:/src/math/Vector2.js", "pandav:/src/extras/core/CurvePath.js", "pandav:/src/extras/curves/EllipseCurve.js", "pandav:/src/extras/curves/SplineCurve.js", "pandav:/src/extras/curves/CubicBezierCurve.js", "pandav:/src/extras/curves/QuadraticBezierCurve.js", "pandav:/src/extras/curves/LineCurve.js" ], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/extras/core", "outputPath": "/com/three/0.145.0/src/extras/core/Path.js", "fileName": "/src/extras/core/Path.js" }, "pandav:/src/extras/core/Shape.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/core/Shape\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Path\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Shape = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Path2 = require('pandav:/com/three/0.145.0/src/extras/core/Path');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var Shape = exports.Shape = function (_Path) {\n (0, _inherits2.default)(Shape, _Path);\n var _super = (0, _createSuper2.default)(Shape);\n function Shape(points) {\n var _this;\n (0, _classCallCheck2.default)(this, Shape);\n _this = _super.call(this, points);\n _this.uuid = MathUtils.generateUUID();\n _this.type = 'Shape';\n _this.holes = [];\n return _this;\n }\n (0, _createClass2.default)(Shape, [{\n key: \"getPointsHoles\",\n value: function getPointsHoles(divisions) {\n var holesPts = [];\n for (var i = 0, l = this.holes.length; i < l; i++) {\n holesPts[i] = this.holes[i].getPoints(divisions);\n }\n return holesPts;\n } },\n {\n key: \"extractPoints\",\n value: function extractPoints(divisions) {\n return {\n shape: this.getPoints(divisions),\n holes: this.getPointsHoles(divisions) };\n\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Shape.prototype), \"copy\", this).call(this, source);\n this.holes = [];\n for (var i = 0, l = source.holes.length; i < l; i++) {\n var hole = source.holes[i];\n this.holes.push(hole.clone());\n }\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(Shape.prototype), \"toJSON\", this).call(this);\n data.uuid = this.uuid;\n data.holes = [];\n for (var i = 0, l = this.holes.length; i < l; i++) {\n var hole = this.holes[i];\n data.holes.push(hole.toJSON());\n }\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Shape.prototype), \"fromJSON\", this).call(this, json);\n this.uuid = json.uuid;\n this.holes = [];\n for (var i = 0, l = json.holes.length; i < l; i++) {\n var hole = json.holes[i];\n this.holes.push(new _Path2.Path().fromJSON(hole));\n }\n return this;\n } }]);\n\n return Shape;\n }(_Path2.Path);return module.exports;});", "requires": [ "pandav:/src/extras/core/Path.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/extras/core", "outputPath": "/com/three/0.145.0/src/extras/core/Shape.js", "fileName": "/src/extras/core/Shape.js" }, "pandav:/src/extras/curves/ArcCurve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/ArcCurve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/curves/EllipseCurve\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ArcCurve = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _EllipseCurve2 = require('pandav:/com/three/0.145.0/src/extras/curves/EllipseCurve');\n var ArcCurve = exports.ArcCurve = function (_EllipseCurve) {\n (0, _inherits2.default)(ArcCurve, _EllipseCurve);\n var _super = (0, _createSuper2.default)(ArcCurve);\n function ArcCurve(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n var _this;\n (0, _classCallCheck2.default)(this, ArcCurve);\n _this = _super.call(this, aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n _this.isArcCurve = true;\n _this.type = 'ArcCurve';\n return _this;\n }\n return (0, _createClass2.default)(ArcCurve);\n }(_EllipseCurve2.EllipseCurve);return module.exports;});", "requires": [ "pandav:/src/extras/curves/EllipseCurve.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/ArcCurve.js", "fileName": "/src/extras/curves/ArcCurve.js" }, "pandav:/src/extras/core/ShapePath.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/core/ShapePath\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/extras/core/Path\", \"pandav:/com/three/0.145.0/src/extras/core/Shape\", \"pandav:/com/three/0.145.0/src/extras/ShapeUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ShapePath = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Path = require('pandav:/com/three/0.145.0/src/extras/core/Path');\n var _Shape = require('pandav:/com/three/0.145.0/src/extras/core/Shape');\n var _ShapeUtils = require('pandav:/com/three/0.145.0/src/extras/ShapeUtils');\n var ShapePath = exports.ShapePath = function () {\n function ShapePath() {\n (0, _classCallCheck2.default)(this, ShapePath);\n this.type = 'ShapePath';\n this.color = new _Color.Color();\n this.subPaths = [];\n this.currentPath = null;\n }\n (0, _createClass2.default)(ShapePath, [{\n key: \"moveTo\",\n value: function moveTo(x, y) {\n this.currentPath = new _Path.Path();\n this.subPaths.push(this.currentPath);\n this.currentPath.moveTo(x, y);\n return this;\n } },\n {\n key: \"lineTo\",\n value: function lineTo(x, y) {\n this.currentPath.lineTo(x, y);\n return this;\n } },\n {\n key: \"quadraticCurveTo\",\n value: function quadraticCurveTo(aCPx, aCPy, aX, aY) {\n this.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY);\n return this;\n } },\n {\n key: \"bezierCurveTo\",\n value: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n this.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY);\n return this;\n } },\n {\n key: \"splineThru\",\n value: function splineThru(pts) {\n this.currentPath.splineThru(pts);\n return this;\n } },\n {\n key: \"toShapes\",\n value: function toShapes(isCCW) {\n function toShapesNoHoles(inSubpaths) {\n var shapes = [];\n for (var i = 0, l = inSubpaths.length; i < l; i++) {\n var _tmpPath = inSubpaths[i];\n var _tmpShape = new _Shape.Shape();\n _tmpShape.curves = _tmpPath.curves;\n shapes.push(_tmpShape);\n }\n return shapes;\n }\n function isPointInsidePolygon(inPt, inPolygon) {\n var polyLen = inPolygon.length;\n var inside = false;\n for (var p = polyLen - 1, q = 0; q < polyLen; p = q++) {\n var edgeLowPt = inPolygon[p];\n var edgeHighPt = inPolygon[q];\n var edgeDx = edgeHighPt.x - edgeLowPt.x;\n var edgeDy = edgeHighPt.y - edgeLowPt.y;\n if (Math.abs(edgeDy) > Number.EPSILON) {\n if (edgeDy < 0) {\n edgeLowPt = inPolygon[q];\n edgeDx = -edgeDx;\n edgeHighPt = inPolygon[p];\n edgeDy = -edgeDy;\n }\n if (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue;\n if (inPt.y === edgeLowPt.y) {\n if (inPt.x === edgeLowPt.x) return true;\n } else {\n var perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y);\n if (perpEdge === 0) return true;\n if (perpEdge < 0) continue;\n inside = !inside;\n }\n } else {\n if (inPt.y !== edgeLowPt.y) continue;\n if (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true;\n }\n }\n return inside;\n }\n var isClockWise = _ShapeUtils.ShapeUtils.isClockWise;\n var subPaths = this.subPaths;\n if (subPaths.length === 0) return [];\n var solid, tmpPath, tmpShape;\n var shapes = [];\n if (subPaths.length === 1) {\n tmpPath = subPaths[0];\n tmpShape = new _Shape.Shape();\n tmpShape.curves = tmpPath.curves;\n shapes.push(tmpShape);\n return shapes;\n }\n var holesFirst = !isClockWise(subPaths[0].getPoints());\n holesFirst = isCCW ? !holesFirst : holesFirst;\n var betterShapeHoles = [];\n var newShapes = [];\n var newShapeHoles = [];\n var mainIdx = 0;\n var tmpPoints;\n newShapes[mainIdx] = undefined;\n newShapeHoles[mainIdx] = [];\n for (var i = 0, l = subPaths.length; i < l; i++) {\n tmpPath = subPaths[i];\n tmpPoints = tmpPath.getPoints();\n solid = isClockWise(tmpPoints);\n solid = isCCW ? !solid : solid;\n if (solid) {\n if (!holesFirst && newShapes[mainIdx]) mainIdx++;\n newShapes[mainIdx] = {\n s: new _Shape.Shape(),\n p: tmpPoints };\n\n newShapes[mainIdx].s.curves = tmpPath.curves;\n if (holesFirst) mainIdx++;\n newShapeHoles[mainIdx] = [];\n } else {\n newShapeHoles[mainIdx].push({\n h: tmpPath,\n p: tmpPoints[0] });\n\n }\n }\n if (!newShapes[0]) return toShapesNoHoles(subPaths);\n if (newShapes.length > 1) {\n var ambiguous = false;\n var toChange = 0;\n for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n betterShapeHoles[sIdx] = [];\n }\n for (var _sIdx = 0, _sLen = newShapes.length; _sIdx < _sLen; _sIdx++) {\n var sho = newShapeHoles[_sIdx];\n for (var hIdx = 0; hIdx < sho.length; hIdx++) {\n var ho = sho[hIdx];\n var hole_unassigned = true;\n for (var s2Idx = 0; s2Idx < newShapes.length; s2Idx++) {\n if (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) {\n if (_sIdx !== s2Idx) toChange++;\n if (hole_unassigned) {\n hole_unassigned = false;\n betterShapeHoles[s2Idx].push(ho);\n } else {\n ambiguous = true;\n }\n }\n }\n if (hole_unassigned) {\n betterShapeHoles[_sIdx].push(ho);\n }\n }\n }\n if (toChange > 0 && ambiguous === false) {\n newShapeHoles = betterShapeHoles;\n }\n }\n var tmpHoles;\n for (var _i = 0, il = newShapes.length; _i < il; _i++) {\n tmpShape = newShapes[_i].s;\n shapes.push(tmpShape);\n tmpHoles = newShapeHoles[_i];\n for (var j = 0, jl = tmpHoles.length; j < jl; j++) {\n tmpShape.holes.push(tmpHoles[j].h);\n }\n }\n return shapes;\n } }]);\n\n return ShapePath;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Color.js", "pandav:/src/extras/core/Path.js", "pandav:/src/extras/core/Shape.js", "pandav:/src/extras/ShapeUtils.js" ], "buildLevel": 67, "outputDir": "/com/three/0.145.0/src/extras/core", "outputPath": "/com/three/0.145.0/src/extras/core/ShapePath.js", "fileName": "/src/extras/core/ShapePath.js" }, "pandav:/src/extras/curves/CubicBezierCurve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/extras/core/Interpolations\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CubicBezierCurve = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var _Interpolations = require('pandav:/com/three/0.145.0/src/extras/core/Interpolations');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var CubicBezierCurve = exports.CubicBezierCurve = function (_Curve) {\n (0, _inherits2.default)(CubicBezierCurve, _Curve);\n var _super = (0, _createSuper2.default)(CubicBezierCurve);\n function CubicBezierCurve() {\n var _this;\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector2();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _Vector.Vector2();\n var v3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new _Vector.Vector2();\n (0, _classCallCheck2.default)(this, CubicBezierCurve);\n _this = _super.call(this);\n _this.isCubicBezierCurve = true;\n _this.type = 'CubicBezierCurve';\n _this.v0 = v0;\n _this.v1 = v1;\n _this.v2 = v2;\n _this.v3 = v3;\n return _this;\n }\n (0, _createClass2.default)(CubicBezierCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2,\n v3 = this.v3;\n point.set((0, _Interpolations.CubicBezier)(t, v0.x, v1.x, v2.x, v3.x), (0, _Interpolations.CubicBezier)(t, v0.y, v1.y, v2.y, v3.y));\n return point;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CubicBezierCurve.prototype), \"copy\", this).call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n this.v3.copy(source.v3);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(CubicBezierCurve.prototype), \"toJSON\", this).call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n data.v3 = this.v3.toArray();\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CubicBezierCurve.prototype), \"fromJSON\", this).call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n this.v3.fromArray(json.v3);\n return this;\n } }]);\n\n return CubicBezierCurve;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/extras/core/Curve.js", "pandav:/src/extras/core/Interpolations.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/CubicBezierCurve.js", "fileName": "/src/extras/curves/CubicBezierCurve.js" }, "pandav:/src/extras/curves/CubicBezierCurve3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/extras/core/Interpolations\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CubicBezierCurve3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var _Interpolations = require('pandav:/com/three/0.145.0/src/extras/core/Interpolations');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var CubicBezierCurve3 = exports.CubicBezierCurve3 = function (_Curve) {\n (0, _inherits2.default)(CubicBezierCurve3, _Curve);\n var _super = (0, _createSuper2.default)(CubicBezierCurve3);\n function CubicBezierCurve3() {\n var _this;\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _Vector.Vector3();\n var v3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new _Vector.Vector3();\n (0, _classCallCheck2.default)(this, CubicBezierCurve3);\n _this = _super.call(this);\n _this.isCubicBezierCurve3 = true;\n _this.type = 'CubicBezierCurve3';\n _this.v0 = v0;\n _this.v1 = v1;\n _this.v2 = v2;\n _this.v3 = v3;\n return _this;\n }\n (0, _createClass2.default)(CubicBezierCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2,\n v3 = this.v3;\n point.set((0, _Interpolations.CubicBezier)(t, v0.x, v1.x, v2.x, v3.x), (0, _Interpolations.CubicBezier)(t, v0.y, v1.y, v2.y, v3.y), (0, _Interpolations.CubicBezier)(t, v0.z, v1.z, v2.z, v3.z));\n return point;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CubicBezierCurve3.prototype), \"copy\", this).call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n this.v3.copy(source.v3);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(CubicBezierCurve3.prototype), \"toJSON\", this).call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n data.v3 = this.v3.toArray();\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CubicBezierCurve3.prototype), \"fromJSON\", this).call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n this.v3.fromArray(json.v3);\n return this;\n } }]);\n\n return CubicBezierCurve3;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/extras/core/Curve.js", "pandav:/src/extras/core/Interpolations.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/CubicBezierCurve3.js", "fileName": "/src/extras/curves/CubicBezierCurve3.js" }, "pandav:/src/extras/curves/Curves.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/Curves\", [\"pandav:/com/three/0.145.0/src/extras/curves/ArcCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/CatmullRomCurve3\", \"pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve3\", \"pandav:/com/three/0.145.0/src/extras/curves/EllipseCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/LineCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/LineCurve3\", \"pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve\", \"pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve3\", \"pandav:/com/three/0.145.0/src/extras/curves/SplineCurve\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n Object.defineProperty(exports, \"ArcCurve\", {\n enumerable: true,\n get: function get() {\n return _ArcCurve.ArcCurve;\n } });\n\n Object.defineProperty(exports, \"CatmullRomCurve3\", {\n enumerable: true,\n get: function get() {\n return _CatmullRomCurve.CatmullRomCurve3;\n } });\n\n Object.defineProperty(exports, \"CubicBezierCurve\", {\n enumerable: true,\n get: function get() {\n return _CubicBezierCurve.CubicBezierCurve;\n } });\n\n Object.defineProperty(exports, \"CubicBezierCurve3\", {\n enumerable: true,\n get: function get() {\n return _CubicBezierCurve2.CubicBezierCurve3;\n } });\n\n Object.defineProperty(exports, \"EllipseCurve\", {\n enumerable: true,\n get: function get() {\n return _EllipseCurve.EllipseCurve;\n } });\n\n Object.defineProperty(exports, \"LineCurve\", {\n enumerable: true,\n get: function get() {\n return _LineCurve.LineCurve;\n } });\n\n Object.defineProperty(exports, \"LineCurve3\", {\n enumerable: true,\n get: function get() {\n return _LineCurve2.LineCurve3;\n } });\n\n Object.defineProperty(exports, \"QuadraticBezierCurve\", {\n enumerable: true,\n get: function get() {\n return _QuadraticBezierCurve.QuadraticBezierCurve;\n } });\n\n Object.defineProperty(exports, \"QuadraticBezierCurve3\", {\n enumerable: true,\n get: function get() {\n return _QuadraticBezierCurve2.QuadraticBezierCurve3;\n } });\n\n Object.defineProperty(exports, \"SplineCurve\", {\n enumerable: true,\n get: function get() {\n return _SplineCurve.SplineCurve;\n } });\n\n var _ArcCurve = require('pandav:/com/three/0.145.0/src/extras/curves/ArcCurve');\n var _CatmullRomCurve = require('pandav:/com/three/0.145.0/src/extras/curves/CatmullRomCurve3');\n var _CubicBezierCurve = require('pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve');\n var _CubicBezierCurve2 = require('pandav:/com/three/0.145.0/src/extras/curves/CubicBezierCurve3');\n var _EllipseCurve = require('pandav:/com/three/0.145.0/src/extras/curves/EllipseCurve');\n var _LineCurve = require('pandav:/com/three/0.145.0/src/extras/curves/LineCurve');\n var _LineCurve2 = require('pandav:/com/three/0.145.0/src/extras/curves/LineCurve3');\n var _QuadraticBezierCurve = require('pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve');\n var _QuadraticBezierCurve2 = require('pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve3');\n var _SplineCurve = require('pandav:/com/three/0.145.0/src/extras/curves/SplineCurve');return module.exports;});", "requires": [ "pandav:/src/extras/curves/ArcCurve.js", "pandav:/src/extras/curves/CatmullRomCurve3.js", "pandav:/src/extras/curves/CubicBezierCurve.js", "pandav:/src/extras/curves/CubicBezierCurve3.js", "pandav:/src/extras/curves/EllipseCurve.js", "pandav:/src/extras/curves/LineCurve.js", "pandav:/src/extras/curves/LineCurve3.js", "pandav:/src/extras/curves/QuadraticBezierCurve.js", "pandav:/src/extras/curves/QuadraticBezierCurve3.js", "pandav:/src/extras/curves/SplineCurve.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/Curves.js", "fileName": "/src/extras/curves/Curves.js" }, "pandav:/src/extras/curves/EllipseCurve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/EllipseCurve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.EllipseCurve = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var EllipseCurve = exports.EllipseCurve = function (_Curve) {\n (0, _inherits2.default)(EllipseCurve, _Curve);\n var _super = (0, _createSuper2.default)(EllipseCurve);\n function EllipseCurve() {\n var _this;\n var aX = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var aY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var xRadius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var yRadius = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var aStartAngle = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var aEndAngle = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : Math.PI * 2;\n var aClockwise = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n var aRotation = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 0;\n (0, _classCallCheck2.default)(this, EllipseCurve);\n _this = _super.call(this);\n _this.isEllipseCurve = true;\n _this.type = 'EllipseCurve';\n _this.aX = aX;\n _this.aY = aY;\n _this.xRadius = xRadius;\n _this.yRadius = yRadius;\n _this.aStartAngle = aStartAngle;\n _this.aEndAngle = aEndAngle;\n _this.aClockwise = aClockwise;\n _this.aRotation = aRotation;\n return _this;\n }\n (0, _createClass2.default)(EllipseCurve, [{\n key: \"getPoint\",\n value: function getPoint(t, optionalTarget) {\n var point = optionalTarget || new _Vector.Vector2();\n var twoPi = Math.PI * 2;\n var deltaAngle = this.aEndAngle - this.aStartAngle;\n var samePoints = Math.abs(deltaAngle) < Number.EPSILON;\n while (deltaAngle < 0) deltaAngle += twoPi;\n while (deltaAngle > twoPi) deltaAngle -= twoPi;\n if (deltaAngle < Number.EPSILON) {\n if (samePoints) {\n deltaAngle = 0;\n } else {\n deltaAngle = twoPi;\n }\n }\n if (this.aClockwise === true && !samePoints) {\n if (deltaAngle === twoPi) {\n deltaAngle = -twoPi;\n } else {\n deltaAngle = deltaAngle - twoPi;\n }\n }\n var angle = this.aStartAngle + t * deltaAngle;\n var x = this.aX + this.xRadius * Math.cos(angle);\n var y = this.aY + this.yRadius * Math.sin(angle);\n if (this.aRotation !== 0) {\n var cos = Math.cos(this.aRotation);\n var sin = Math.sin(this.aRotation);\n var tx = x - this.aX;\n var ty = y - this.aY;\n x = tx * cos - ty * sin + this.aX;\n y = tx * sin + ty * cos + this.aY;\n }\n return point.set(x, y);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(EllipseCurve.prototype), \"copy\", this).call(this, source);\n this.aX = source.aX;\n this.aY = source.aY;\n this.xRadius = source.xRadius;\n this.yRadius = source.yRadius;\n this.aStartAngle = source.aStartAngle;\n this.aEndAngle = source.aEndAngle;\n this.aClockwise = source.aClockwise;\n this.aRotation = source.aRotation;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(EllipseCurve.prototype), \"toJSON\", this).call(this);\n data.aX = this.aX;\n data.aY = this.aY;\n data.xRadius = this.xRadius;\n data.yRadius = this.yRadius;\n data.aStartAngle = this.aStartAngle;\n data.aEndAngle = this.aEndAngle;\n data.aClockwise = this.aClockwise;\n data.aRotation = this.aRotation;\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(EllipseCurve.prototype), \"fromJSON\", this).call(this, json);\n this.aX = json.aX;\n this.aY = json.aY;\n this.xRadius = json.xRadius;\n this.yRadius = json.yRadius;\n this.aStartAngle = json.aStartAngle;\n this.aEndAngle = json.aEndAngle;\n this.aClockwise = json.aClockwise;\n this.aRotation = json.aRotation;\n return this;\n } }]);\n\n return EllipseCurve;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/extras/core/Curve.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/EllipseCurve.js", "fileName": "/src/extras/curves/EllipseCurve.js" }, "pandav:/src/extras/curves/CatmullRomCurve3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/CatmullRomCurve3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CatmullRomCurve3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n function CubicPoly() {\n var c0 = 0,\n c1 = 0,\n c2 = 0,\n c3 = 0;\n function init(x0, x1, t0, t1) {\n c0 = x0;\n c1 = t0;\n c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1;\n c3 = 2 * x0 - 2 * x1 + t0 + t1;\n }\n return {\n initCatmullRom: function initCatmullRom(x0, x1, x2, x3, tension) {\n init(x1, x2, tension * (x2 - x0), tension * (x3 - x1));\n },\n initNonuniformCatmullRom: function initNonuniformCatmullRom(x0, x1, x2, x3, dt0, dt1, dt2) {\n var t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1;\n var t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2;\n t1 *= dt1;\n t2 *= dt1;\n init(x1, x2, t1, t2);\n },\n calc: function calc(t) {\n var t2 = t * t;\n var t3 = t2 * t;\n return c0 + c1 * t + c2 * t2 + c3 * t3;\n } };\n\n }\n var tmp = new _Vector.Vector3();\n var px = new CubicPoly();\n var py = new CubicPoly();\n var pz = new CubicPoly();\n var CatmullRomCurve3 = exports.CatmullRomCurve3 = function (_Curve) {\n (0, _inherits2.default)(CatmullRomCurve3, _Curve);\n var _super = (0, _createSuper2.default)(CatmullRomCurve3);\n function CatmullRomCurve3() {\n var _this;\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var closed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var curveType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'centripetal';\n var tension = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5;\n (0, _classCallCheck2.default)(this, CatmullRomCurve3);\n _this = _super.call(this);\n _this.isCatmullRomCurve3 = true;\n _this.type = 'CatmullRomCurve3';\n _this.points = points;\n _this.closed = closed;\n _this.curveType = curveType;\n _this.tension = tension;\n return _this;\n }\n (0, _createClass2.default)(CatmullRomCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n var point = optionalTarget;\n var points = this.points;\n var l = points.length;\n var p = (l - (this.closed ? 0 : 1)) * t;\n var intPoint = Math.floor(p);\n var weight = p - intPoint;\n if (this.closed) {\n intPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l;\n } else if (weight === 0 && intPoint === l - 1) {\n intPoint = l - 2;\n weight = 1;\n }\n var p0, p3;\n if (this.closed || intPoint > 0) {\n p0 = points[(intPoint - 1) % l];\n } else {\n tmp.subVectors(points[0], points[1]).add(points[0]);\n p0 = tmp;\n }\n var p1 = points[intPoint % l];\n var p2 = points[(intPoint + 1) % l];\n if (this.closed || intPoint + 2 < l) {\n p3 = points[(intPoint + 2) % l];\n } else {\n tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]);\n p3 = tmp;\n }\n if (this.curveType === 'centripetal' || this.curveType === 'chordal') {\n var pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n var dt0 = Math.pow(p0.distanceToSquared(p1), pow);\n var dt1 = Math.pow(p1.distanceToSquared(p2), pow);\n var dt2 = Math.pow(p2.distanceToSquared(p3), pow);\n if (dt1 < 1e-4) dt1 = 1.0;\n if (dt0 < 1e-4) dt0 = dt1;\n if (dt2 < 1e-4) dt2 = dt1;\n px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2);\n py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2);\n pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2);\n } else if (this.curveType === 'catmullrom') {\n px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension);\n py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension);\n pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension);\n }\n point.set(px.calc(weight), py.calc(weight), pz.calc(weight));\n return point;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CatmullRomCurve3.prototype), \"copy\", this).call(this, source);\n this.points = [];\n for (var i = 0, l = source.points.length; i < l; i++) {\n var point = source.points[i];\n this.points.push(point.clone());\n }\n this.closed = source.closed;\n this.curveType = source.curveType;\n this.tension = source.tension;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(CatmullRomCurve3.prototype), \"toJSON\", this).call(this);\n data.points = [];\n for (var i = 0, l = this.points.length; i < l; i++) {\n var point = this.points[i];\n data.points.push(point.toArray());\n }\n data.closed = this.closed;\n data.curveType = this.curveType;\n data.tension = this.tension;\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(CatmullRomCurve3.prototype), \"fromJSON\", this).call(this, json);\n this.points = [];\n for (var i = 0, l = json.points.length; i < l; i++) {\n var point = json.points[i];\n this.points.push(new _Vector.Vector3().fromArray(point));\n }\n this.closed = json.closed;\n this.curveType = json.curveType;\n this.tension = json.tension;\n return this;\n } }]);\n\n return CatmullRomCurve3;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/extras/core/Curve.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/CatmullRomCurve3.js", "fileName": "/src/extras/curves/CatmullRomCurve3.js" }, "pandav:/src/extras/curves/LineCurve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/LineCurve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineCurve = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var LineCurve = exports.LineCurve = function (_Curve) {\n (0, _inherits2.default)(LineCurve, _Curve);\n var _super = (0, _createSuper2.default)(LineCurve);\n function LineCurve() {\n var _this;\n var v1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector2();\n var v2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2();\n (0, _classCallCheck2.default)(this, LineCurve);\n _this = _super.call(this);\n _this.isLineCurve = true;\n _this.type = 'LineCurve';\n _this.v1 = v1;\n _this.v2 = v2;\n return _this;\n }\n (0, _createClass2.default)(LineCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2();\n var point = optionalTarget;\n if (t === 1) {\n point.copy(this.v2);\n } else {\n point.copy(this.v2).sub(this.v1);\n point.multiplyScalar(t).add(this.v1);\n }\n return point;\n } },\n {\n key: \"getPointAt\",\n value: function getPointAt(u, optionalTarget) {\n return this.getPoint(u, optionalTarget);\n } },\n {\n key: \"getTangent\",\n value: function getTangent(t, optionalTarget) {\n var tangent = optionalTarget || new _Vector.Vector2();\n tangent.copy(this.v2).sub(this.v1).normalize();\n return tangent;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineCurve.prototype), \"copy\", this).call(this, source);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(LineCurve.prototype), \"toJSON\", this).call(this);\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineCurve.prototype), \"fromJSON\", this).call(this, json);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n } }]);\n\n return LineCurve;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/math/Vector2.js", "pandav:/src/extras/core/Curve.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/LineCurve.js", "fileName": "/src/extras/curves/LineCurve.js" }, "pandav:/src/extras/curves/LineCurve3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/LineCurve3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineCurve3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var LineCurve3 = exports.LineCurve3 = function (_Curve) {\n (0, _inherits2.default)(LineCurve3, _Curve);\n var _super = (0, _createSuper2.default)(LineCurve3);\n function LineCurve3() {\n var _this;\n var v1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3();\n var v2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n (0, _classCallCheck2.default)(this, LineCurve3);\n _this = _super.call(this);\n _this.isLineCurve3 = true;\n _this.type = 'LineCurve3';\n _this.v1 = v1;\n _this.v2 = v2;\n return _this;\n }\n (0, _createClass2.default)(LineCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n var point = optionalTarget;\n if (t === 1) {\n point.copy(this.v2);\n } else {\n point.copy(this.v2).sub(this.v1);\n point.multiplyScalar(t).add(this.v1);\n }\n return point;\n } },\n {\n key: \"getPointAt\",\n value: function getPointAt(u, optionalTarget) {\n return this.getPoint(u, optionalTarget);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineCurve3.prototype), \"copy\", this).call(this, source);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(LineCurve3.prototype), \"toJSON\", this).call(this);\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineCurve3.prototype), \"fromJSON\", this).call(this, json);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n } }]);\n\n return LineCurve3;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/extras/core/Curve.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/LineCurve3.js", "fileName": "/src/extras/curves/LineCurve3.js" }, "pandav:/src/extras/curves/QuadraticBezierCurve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/extras/core/Interpolations\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.QuadraticBezierCurve = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var _Interpolations = require('pandav:/com/three/0.145.0/src/extras/core/Interpolations');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var QuadraticBezierCurve = exports.QuadraticBezierCurve = function (_Curve) {\n (0, _inherits2.default)(QuadraticBezierCurve, _Curve);\n var _super = (0, _createSuper2.default)(QuadraticBezierCurve);\n function QuadraticBezierCurve() {\n var _this;\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector2();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _Vector.Vector2();\n (0, _classCallCheck2.default)(this, QuadraticBezierCurve);\n _this = _super.call(this);\n _this.isQuadraticBezierCurve = true;\n _this.type = 'QuadraticBezierCurve';\n _this.v0 = v0;\n _this.v1 = v1;\n _this.v2 = v2;\n return _this;\n }\n (0, _createClass2.default)(QuadraticBezierCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2;\n point.set((0, _Interpolations.QuadraticBezier)(t, v0.x, v1.x, v2.x), (0, _Interpolations.QuadraticBezier)(t, v0.y, v1.y, v2.y));\n return point;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(QuadraticBezierCurve.prototype), \"copy\", this).call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(QuadraticBezierCurve.prototype), \"toJSON\", this).call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(QuadraticBezierCurve.prototype), \"fromJSON\", this).call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n } }]);\n\n return QuadraticBezierCurve;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/extras/core/Curve.js", "pandav:/src/extras/core/Interpolations.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 37, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve.js", "fileName": "/src/extras/curves/QuadraticBezierCurve.js" }, "pandav:/src/extras/curves/SplineCurve.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/SplineCurve\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/extras/core/Interpolations\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SplineCurve = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var _Interpolations = require('pandav:/com/three/0.145.0/src/extras/core/Interpolations');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var SplineCurve = exports.SplineCurve = function (_Curve) {\n (0, _inherits2.default)(SplineCurve, _Curve);\n var _super = (0, _createSuper2.default)(SplineCurve);\n function SplineCurve() {\n var _this;\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n (0, _classCallCheck2.default)(this, SplineCurve);\n _this = _super.call(this);\n _this.isSplineCurve = true;\n _this.type = 'SplineCurve';\n _this.points = points;\n return _this;\n }\n (0, _createClass2.default)(SplineCurve, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2();\n var point = optionalTarget;\n var points = this.points;\n var p = (points.length - 1) * t;\n var intPoint = Math.floor(p);\n var weight = p - intPoint;\n var p0 = points[intPoint === 0 ? intPoint : intPoint - 1];\n var p1 = points[intPoint];\n var p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1];\n var p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2];\n point.set((0, _Interpolations.CatmullRom)(weight, p0.x, p1.x, p2.x, p3.x), (0, _Interpolations.CatmullRom)(weight, p0.y, p1.y, p2.y, p3.y));\n return point;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(SplineCurve.prototype), \"copy\", this).call(this, source);\n this.points = [];\n for (var i = 0, l = source.points.length; i < l; i++) {\n var point = source.points[i];\n this.points.push(point.clone());\n }\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(SplineCurve.prototype), \"toJSON\", this).call(this);\n data.points = [];\n for (var i = 0, l = this.points.length; i < l; i++) {\n var point = this.points[i];\n data.points.push(point.toArray());\n }\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(SplineCurve.prototype), \"fromJSON\", this).call(this, json);\n this.points = [];\n for (var i = 0, l = json.points.length; i < l; i++) {\n var point = json.points[i];\n this.points.push(new _Vector.Vector2().fromArray(point));\n }\n return this;\n } }]);\n\n return SplineCurve;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/extras/core/Curve.js", "pandav:/src/extras/core/Interpolations.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 39, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/SplineCurve.js", "fileName": "/src/extras/curves/SplineCurve.js" }, "pandav:/src/extras/curves/QuadraticBezierCurve3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/extras/core/Interpolations\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.QuadraticBezierCurve3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Curve2 = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var _Interpolations = require('pandav:/com/three/0.145.0/src/extras/core/Interpolations');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var QuadraticBezierCurve3 = exports.QuadraticBezierCurve3 = function (_Curve) {\n (0, _inherits2.default)(QuadraticBezierCurve3, _Curve);\n var _super = (0, _createSuper2.default)(QuadraticBezierCurve3);\n function QuadraticBezierCurve3() {\n var _this;\n var v0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3();\n var v1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n var v2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _Vector.Vector3();\n (0, _classCallCheck2.default)(this, QuadraticBezierCurve3);\n _this = _super.call(this);\n _this.isQuadraticBezierCurve3 = true;\n _this.type = 'QuadraticBezierCurve3';\n _this.v0 = v0;\n _this.v1 = v1;\n _this.v2 = v2;\n return _this;\n }\n (0, _createClass2.default)(QuadraticBezierCurve3, [{\n key: \"getPoint\",\n value: function getPoint(t) {\n var optionalTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n var point = optionalTarget;\n var v0 = this.v0,\n v1 = this.v1,\n v2 = this.v2;\n point.set((0, _Interpolations.QuadraticBezier)(t, v0.x, v1.x, v2.x), (0, _Interpolations.QuadraticBezier)(t, v0.y, v1.y, v2.y), (0, _Interpolations.QuadraticBezier)(t, v0.z, v1.z, v2.z));\n return point;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(QuadraticBezierCurve3.prototype), \"copy\", this).call(this, source);\n this.v0.copy(source.v0);\n this.v1.copy(source.v1);\n this.v2.copy(source.v2);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(QuadraticBezierCurve3.prototype), \"toJSON\", this).call(this);\n data.v0 = this.v0.toArray();\n data.v1 = this.v1.toArray();\n data.v2 = this.v2.toArray();\n return data;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(QuadraticBezierCurve3.prototype), \"fromJSON\", this).call(this, json);\n this.v0.fromArray(json.v0);\n this.v1.fromArray(json.v1);\n this.v2.fromArray(json.v2);\n return this;\n } }]);\n\n return QuadraticBezierCurve3;\n }(_Curve2.Curve);return module.exports;});", "requires": [ "pandav:/src/extras/core/Curve.js", "pandav:/src/extras/core/Interpolations.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 38, "outputDir": "/com/three/0.145.0/src/extras/curves", "outputPath": "/com/three/0.145.0/src/extras/curves/QuadraticBezierCurve3.js", "fileName": "/src/extras/curves/QuadraticBezierCurve3.js" }, "pandav:/src/extras/DataUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/DataUtils\", [\"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.fromHalfFloat = fromHalfFloat;\n exports.toHalfFloat = toHalfFloat;\n var _MathUtils = require('pandav:/com/three/0.145.0/src/math/MathUtils');\n var _tables = _generateTables();\n function _generateTables() {\n var buffer = new ArrayBuffer(4);\n var floatView = new Float32Array(buffer);\n var uint32View = new Uint32Array(buffer);\n var baseTable = new Uint32Array(512);\n var shiftTable = new Uint32Array(512);\n for (var i = 0; i < 256; ++i) {\n var e = i - 127;\n if (e < -27) {\n baseTable[i] = 0x0000;\n baseTable[i | 0x100] = 0x8000;\n shiftTable[i] = 24;\n shiftTable[i | 0x100] = 24;\n } else if (e < -14) {\n baseTable[i] = 0x0400 >> -e - 14;\n baseTable[i | 0x100] = 0x0400 >> -e - 14 | 0x8000;\n shiftTable[i] = -e - 1;\n shiftTable[i | 0x100] = -e - 1;\n } else if (e <= 15) {\n baseTable[i] = e + 15 << 10;\n baseTable[i | 0x100] = e + 15 << 10 | 0x8000;\n shiftTable[i] = 13;\n shiftTable[i | 0x100] = 13;\n } else if (e < 128) {\n baseTable[i] = 0x7c00;\n baseTable[i | 0x100] = 0xfc00;\n shiftTable[i] = 24;\n shiftTable[i | 0x100] = 24;\n } else {\n baseTable[i] = 0x7c00;\n baseTable[i | 0x100] = 0xfc00;\n shiftTable[i] = 13;\n shiftTable[i | 0x100] = 13;\n }\n }\n var mantissaTable = new Uint32Array(2048);\n var exponentTable = new Uint32Array(64);\n var offsetTable = new Uint32Array(64);\n for (var _i = 1; _i < 1024; ++_i) {\n var m = _i << 13;\n var _e = 0;\n while ((m & 0x00800000) === 0) {\n m <<= 1;\n _e -= 0x00800000;\n }\n m &= ~0x00800000;\n _e += 0x38800000;\n mantissaTable[_i] = m | _e;\n }\n for (var _i2 = 1024; _i2 < 2048; ++_i2) {\n mantissaTable[_i2] = 0x38000000 + (_i2 - 1024 << 13);\n }\n for (var _i3 = 1; _i3 < 31; ++_i3) {\n exponentTable[_i3] = _i3 << 23;\n }\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n for (var _i4 = 33; _i4 < 63; ++_i4) {\n exponentTable[_i4] = 0x80000000 + (_i4 - 32 << 23);\n }\n exponentTable[63] = 0xc7800000;\n for (var _i5 = 1; _i5 < 64; ++_i5) {\n if (_i5 !== 32) {\n offsetTable[_i5] = 1024;\n }\n }\n return {\n floatView: floatView,\n uint32View: uint32View,\n baseTable: baseTable,\n shiftTable: shiftTable,\n mantissaTable: mantissaTable,\n exponentTable: exponentTable,\n offsetTable: offsetTable };\n\n }\n function toHalfFloat(val) {\n if (Math.abs(val) > 65504) console.warn('THREE.DataUtils.toHalfFloat(): Value out of range.');\n val = (0, _MathUtils.clamp)(val, -65504, 65504);\n _tables.floatView[0] = val;\n var f = _tables.uint32View[0];\n var e = f >> 23 & 0x1ff;\n return _tables.baseTable[e] + ((f & 0x007fffff) >> _tables.shiftTable[e]);\n }\n function fromHalfFloat(val) {\n var m = val >> 10;\n _tables.uint32View[0] = _tables.mantissaTable[_tables.offsetTable[m] + (val & 0x3ff)] + _tables.exponentTable[m];\n return _tables.floatView[0];\n }return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js" ], "buildLevel": 68, "outputDir": "/com/three/0.145.0/src/extras", "outputPath": "/com/three/0.145.0/src/extras/DataUtils.js", "fileName": "/src/extras/DataUtils.js" }, "pandav:/src/extras/ImageUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/ImageUtils\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/utils\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ImageUtils = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _canvas;\n var ImageUtils = exports.ImageUtils = function () {\n function ImageUtils() {\n (0, _classCallCheck2.default)(this, ImageUtils);\n }\n (0, _createClass2.default)(ImageUtils, null, [{\n key: \"getDataURL\",\n value: function getDataURL(image) {\n if (/^data:/i.test(image.src)) {\n return image.src;\n }\n if (typeof HTMLCanvasElement == 'undefined') {\n return image.src;\n }\n var canvas;\n if (image instanceof HTMLCanvasElement) {\n canvas = image;\n } else {\n if (_canvas === undefined) _canvas = (0, _utils.createElementNS)('canvas');\n _canvas.width = image.width;\n _canvas.height = image.height;\n var context = _canvas.getContext('2d');\n if (image instanceof ImageData) {\n context.putImageData(image, 0, 0);\n } else {\n context.drawImage(image, 0, 0, image.width, image.height);\n }\n canvas = _canvas;\n }\n if (canvas.width > 2048 || canvas.height > 2048) {\n console.warn('THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image);\n return canvas.toDataURL('image/jpeg', 0.6);\n } else {\n return canvas.toDataURL('image/png');\n }\n } },\n {\n key: \"sRGBToLinear\",\n value: function sRGBToLinear(image) {\n if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n var canvas = (0, _utils.createElementNS)('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var imageData = context.getImageData(0, 0, image.width, image.height);\n var data = imageData.data;\n for (var i = 0; i < data.length; i++) {\n data[i] = (0, _Color.SRGBToLinear)(data[i] / 255) * 255;\n }\n context.putImageData(imageData, 0, 0);\n return canvas;\n } else if (image.data) {\n var _data = image.data.slice(0);\n for (var _i = 0; _i < _data.length; _i++) {\n if (_data instanceof Uint8Array || _data instanceof Uint8ClampedArray) {\n _data[_i] = Math.floor((0, _Color.SRGBToLinear)(_data[_i] / 255) * 255);\n } else {\n _data[_i] = (0, _Color.SRGBToLinear)(_data[_i]);\n }\n }\n return {\n data: _data,\n width: image.width,\n height: image.height };\n\n } else {\n console.warn('THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.');\n return image;\n }\n } }]);\n\n return ImageUtils;\n }();return module.exports;});", "requires": [ "pandav:/src/utils.js", "pandav:/src/math/Color.js" ], "buildLevel": 12, "outputDir": "/com/three/0.145.0/src/extras", "outputPath": "/com/three/0.145.0/src/extras/ImageUtils.js", "fileName": "/src/extras/ImageUtils.js" }, "pandav:/src/geometries/BoxGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/BoxGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BoxGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var BoxGeometry = exports.BoxGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(BoxGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(BoxGeometry);\n function BoxGeometry() {\n var _this;\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var widthSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var heightSegments = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var depthSegments = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n (0, _classCallCheck2.default)(this, BoxGeometry);\n _this = _super.call(this);\n _this.type = 'BoxGeometry';\n _this.parameters = {\n width: width,\n height: height,\n depth: depth,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n depthSegments: depthSegments };\n\n var scope = (0, _assertThisInitialized2.default)(_this);\n widthSegments = Math.floor(widthSegments);\n heightSegments = Math.floor(heightSegments);\n depthSegments = Math.floor(depthSegments);\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var numberOfVertices = 0;\n var groupStart = 0;\n buildPlane('z', 'y', 'x', -1, -1, depth, height, width, depthSegments, heightSegments, 0);\n buildPlane('z', 'y', 'x', 1, -1, depth, height, -width, depthSegments, heightSegments, 1);\n buildPlane('x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2);\n buildPlane('x', 'z', 'y', 1, -1, width, depth, -height, widthSegments, depthSegments, 3);\n buildPlane('x', 'y', 'z', 1, -1, width, height, depth, widthSegments, heightSegments, 4);\n buildPlane('x', 'y', 'z', -1, -1, width, height, -depth, widthSegments, heightSegments, 5);\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n function buildPlane(u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex) {\n var segmentWidth = width / gridX;\n var segmentHeight = height / gridY;\n var widthHalf = width / 2;\n var heightHalf = height / 2;\n var depthHalf = depth / 2;\n var gridX1 = gridX + 1;\n var gridY1 = gridY + 1;\n var vertexCounter = 0;\n var groupCount = 0;\n var vector = new _Vector.Vector3();\n for (var iy = 0; iy < gridY1; iy++) {\n var y = iy * segmentHeight - heightHalf;\n for (var ix = 0; ix < gridX1; ix++) {\n var x = ix * segmentWidth - widthHalf;\n vector[u] = x * udir;\n vector[v] = y * vdir;\n vector[w] = depthHalf;\n vertices.push(vector.x, vector.y, vector.z);\n vector[u] = 0;\n vector[v] = 0;\n vector[w] = depth > 0 ? 1 : -1;\n normals.push(vector.x, vector.y, vector.z);\n uvs.push(ix / gridX);\n uvs.push(1 - iy / gridY);\n vertexCounter += 1;\n }\n }\n for (var _iy = 0; _iy < gridY; _iy++) {\n for (var _ix = 0; _ix < gridX; _ix++) {\n var a = numberOfVertices + _ix + gridX1 * _iy;\n var b = numberOfVertices + _ix + gridX1 * (_iy + 1);\n var c = numberOfVertices + (_ix + 1) + gridX1 * (_iy + 1);\n var d = numberOfVertices + (_ix + 1) + gridX1 * _iy;\n indices.push(a, b, d);\n indices.push(b, c, d);\n groupCount += 6;\n }\n }\n scope.addGroup(groupStart, groupCount, materialIndex);\n groupStart += groupCount;\n numberOfVertices += vertexCounter;\n }\n return _this;\n }\n (0, _createClass2.default)(BoxGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new BoxGeometry(data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments);\n } }]);\n\n return BoxGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 9, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/BoxGeometry.js", "fileName": "/src/geometries/BoxGeometry.js" }, "pandav:/src/geometries/CapsuleGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/CapsuleGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/extras/core/Path\", \"pandav:/com/three/0.145.0/src/geometries/LatheGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CapsuleGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Path = require('pandav:/com/three/0.145.0/src/extras/core/Path');\n var _LatheGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/LatheGeometry');\n var CapsuleGeometry = exports.CapsuleGeometry = function (_LatheGeometry) {\n (0, _inherits2.default)(CapsuleGeometry, _LatheGeometry);\n var _super = (0, _createSuper2.default)(CapsuleGeometry);\n function CapsuleGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var capSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 4;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;\n (0, _classCallCheck2.default)(this, CapsuleGeometry);\n var path = new _Path.Path();\n path.absarc(0, -length / 2, radius, Math.PI * 1.5, 0);\n path.absarc(0, length / 2, radius, 0, Math.PI * 0.5);\n _this = _super.call(this, path.getPoints(capSegments), radialSegments);\n _this.type = 'CapsuleGeometry';\n _this.parameters = {\n radius: radius,\n height: length,\n capSegments: capSegments,\n radialSegments: radialSegments };\n\n return _this;\n }\n (0, _createClass2.default)(CapsuleGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new CapsuleGeometry(data.radius, data.length, data.capSegments, data.radialSegments);\n } }]);\n\n return CapsuleGeometry;\n }(_LatheGeometry2.LatheGeometry);return module.exports;});", "requires": [ "pandav:/src/extras/core/Path.js", "pandav:/src/geometries/LatheGeometry.js" ], "buildLevel": 26, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/CapsuleGeometry.js", "fileName": "/src/geometries/CapsuleGeometry.js" }, "pandav:/src/extras/Earcut.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/Earcut\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Earcut = void 0;\n var Earcut = exports.Earcut = {\n triangulate: function triangulate(data, holeIndices) {\n var dim = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n var outerNode = linkedList(data, 0, outerLen, dim, true);\n var triangles = [];\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n var minX, minY, maxX, maxY, x, y, invSize;\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n return triangles;\n } };\n\n function linkedList(data, start, end, dim, clockwise) {\n var i, last;\n if (clockwise === signedArea(data, start, end, dim) > 0) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n return last;\n }\n function filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n var p = start,\n again;\n do {\n again = false;\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n return end;\n }\n function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n var stop = ear,\n prev,\n next;\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n removeNode(ear);\n ear = next.next;\n stop = next.next;\n continue;\n }\n ear = next;\n if (ear === stop) {\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n break;\n }\n }\n }\n function isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n if (area(a, b, c) >= 0) return false;\n var p = ear.next.next;\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n return true;\n }\n function isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n if (area(a, b, c) >= 0) return false;\n var minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x,\n minTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y,\n maxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x,\n maxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n var p = ear.prevZ,\n n = ear.nextZ;\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n return true;\n }\n function cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n removeNode(p);\n removeNode(p.next);\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n return filterPoints(p);\n }\n function splitEarcut(start, triangles, dim, minX, minY, invSize) {\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n var c = splitPolygon(a, b);\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n }\n function eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [];\n var i, len, start, end, list;\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n queue.sort(compareX);\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n return outerNode;\n }\n function compareX(a, b) {\n return a.x - b.x;\n }\n function eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(outerNode, outerNode.next);\n filterPoints(b, b.next);\n }\n }\n function findHoleBridge(hole, outerNode) {\n var p = outerNode;\n var hx = hole.x;\n var hy = hole.y;\n var qx = -Infinity,\n m;\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n if (!m) return null;\n if (hx === qx) return m;\n var stop = m,\n mx = m.x,\n my = m.y;\n var tanMin = Infinity,\n tan;\n p = m;\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n tan = Math.abs(hy - p.y) / (hx - p.x);\n if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n m = p;\n tanMin = tan;\n }\n }\n p = p.next;\n } while (p !== stop);\n return m;\n }\n function sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n }\n function indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n p.prevZ.nextZ = null;\n p.prevZ = null;\n sortLinked(p);\n }\n function sortLinked(list) {\n var i,\n p,\n q,\n e,\n tail,\n numMerges,\n pSize,\n qSize,\n inSize = 1;\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n while (pSize > 0 || qSize > 0 && q) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n if (tail) tail.nextZ = e;else list = e;\n e.prevZ = tail;\n tail = e;\n }\n p = q;\n }\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n return list;\n }\n function zOrder(x, y, minX, minY, invSize) {\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n x = (x | x << 8) & 0x00FF00FF;\n x = (x | x << 4) & 0x0F0F0F0F;\n x = (x | x << 2) & 0x33333333;\n x = (x | x << 1) & 0x55555555;\n y = (y | y << 8) & 0x00FF00FF;\n y = (y | y << 4) & 0x0F0F0F0F;\n y = (y | y << 2) & 0x33333333;\n y = (y | y << 1) & 0x55555555;\n return x | y << 1;\n }\n function getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p;\n p = p.next;\n } while (p !== start);\n return leftmost;\n }\n function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n }\n function isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && (area(a.prev, a, b.prev) || area(a, b.prev, b)) || equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);\n }\n function area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n }\n function equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n }\n function intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n if (o1 !== o2 && o3 !== o4) return true;\n if (o1 === 0 && onSegment(p1, p2, q1)) return true;\n if (o2 === 0 && onSegment(p1, q2, q1)) return true;\n if (o3 === 0 && onSegment(p2, p1, q2)) return true;\n if (o4 === 0 && onSegment(p2, q1, q2)) return true;\n return false;\n }\n function onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n }\n function sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n }\n function intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n return false;\n }\n function locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n }\n function middleInside(a, b) {\n var p = a,\n inside = false;\n var px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x) inside = !inside;\n p = p.next;\n } while (p !== a);\n return inside;\n }\n function splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n a.next = b;\n b.prev = a;\n a2.next = an;\n an.prev = a2;\n b2.next = a2;\n a2.prev = b2;\n bp.next = b2;\n b2.prev = bp;\n return b2;\n }\n function insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n if (!last) {\n p.prev = p;\n p.next = p;\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n }\n function removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n }\n function Node(i, x, y) {\n this.i = i;\n this.x = x;\n this.y = y;\n this.prev = null;\n this.next = null;\n this.z = null;\n this.prevZ = null;\n this.nextZ = null;\n this.steiner = false;\n }\n function signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n }return module.exports;});", "requires": [], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/extras", "outputPath": "/com/three/0.145.0/src/extras/Earcut.js", "fileName": "/src/extras/Earcut.js" }, "pandav:/src/extras/PMREMGenerator.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/PMREMGenerator\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/cameras/OrthographicCamera\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/geometries/BoxGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PMREMGenerator = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _OrthographicCamera = require('pandav:/com/three/0.145.0/src/cameras/OrthographicCamera');\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _WebGLRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _BoxGeometry = require('pandav:/com/three/0.145.0/src/geometries/BoxGeometry');\n var LOD_MIN = 4;\n var EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582];\n var MAX_SAMPLES = 20;\n var _flatCamera = new _OrthographicCamera.OrthographicCamera();\n var _clearColor = new _Color.Color();\n var _oldTarget = null;\n var PHI = (1 + Math.sqrt(5)) / 2;\n var INV_PHI = 1 / PHI;\n var _axisDirections = [new _Vector.Vector3(1, 1, 1), new _Vector.Vector3(-1, 1, 1), new _Vector.Vector3(1, 1, -1), new _Vector.Vector3(-1, 1, -1), new _Vector.Vector3(0, PHI, INV_PHI), new _Vector.Vector3(0, PHI, -INV_PHI), new _Vector.Vector3(INV_PHI, 0, PHI), new _Vector.Vector3(-INV_PHI, 0, PHI), new _Vector.Vector3(PHI, INV_PHI, 0), new _Vector.Vector3(-PHI, INV_PHI, 0)];\n var PMREMGenerator = exports.PMREMGenerator = function () {\n function PMREMGenerator(renderer) {\n (0, _classCallCheck2.default)(this, PMREMGenerator);\n this._renderer = renderer;\n this._pingPongRenderTarget = null;\n this._lodMax = 0;\n this._cubeSize = 0;\n this._lodPlanes = [];\n this._sizeLods = [];\n this._sigmas = [];\n this._blurMaterial = null;\n this._cubemapMaterial = null;\n this._equirectMaterial = null;\n this._compileMaterial(this._blurMaterial);\n }\n (0, _createClass2.default)(PMREMGenerator, [{\n key: \"fromScene\",\n value: function fromScene(scene) {\n var sigma = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var near = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.1;\n var far = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 100;\n _oldTarget = this._renderer.getRenderTarget();\n this._setSize(256);\n var cubeUVRenderTarget = this._allocateTargets();\n cubeUVRenderTarget.depthBuffer = true;\n this._sceneToCubeUV(scene, near, far, cubeUVRenderTarget);\n if (sigma > 0) {\n this._blur(cubeUVRenderTarget, 0, 0, sigma);\n }\n this._applyPMREM(cubeUVRenderTarget);\n this._cleanup(cubeUVRenderTarget);\n return cubeUVRenderTarget;\n } },\n {\n key: \"fromEquirectangular\",\n value: function fromEquirectangular(equirectangular) {\n var renderTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return this._fromTexture(equirectangular, renderTarget);\n } },\n {\n key: \"fromCubemap\",\n value: function fromCubemap(cubemap) {\n var renderTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return this._fromTexture(cubemap, renderTarget);\n } },\n {\n key: \"compileCubemapShader\",\n value: function compileCubemapShader() {\n if (this._cubemapMaterial === null) {\n this._cubemapMaterial = _getCubemapMaterial();\n this._compileMaterial(this._cubemapMaterial);\n }\n } },\n {\n key: \"compileEquirectangularShader\",\n value: function compileEquirectangularShader() {\n if (this._equirectMaterial === null) {\n this._equirectMaterial = _getEquirectMaterial();\n this._compileMaterial(this._equirectMaterial);\n }\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n if (this._cubemapMaterial !== null) this._cubemapMaterial.dispose();\n if (this._equirectMaterial !== null) this._equirectMaterial.dispose();\n } },\n {\n key: \"_setSize\",\n value: function _setSize(cubeSize) {\n this._lodMax = Math.floor(Math.log2(cubeSize));\n this._cubeSize = Math.pow(2, this._lodMax);\n } },\n {\n key: \"_dispose\",\n value: function _dispose() {\n if (this._blurMaterial !== null) this._blurMaterial.dispose();\n if (this._pingPongRenderTarget !== null) this._pingPongRenderTarget.dispose();\n for (var i = 0; i < this._lodPlanes.length; i++) {\n this._lodPlanes[i].dispose();\n }\n } },\n {\n key: \"_cleanup\",\n value: function _cleanup(outputTarget) {\n this._renderer.setRenderTarget(_oldTarget);\n outputTarget.scissorTest = false;\n _setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height);\n } },\n {\n key: \"_fromTexture\",\n value: function _fromTexture(texture, renderTarget) {\n if (texture.mapping === _constants.CubeReflectionMapping || texture.mapping === _constants.CubeRefractionMapping) {\n this._setSize(texture.image.length === 0 ? 16 : texture.image[0].width || texture.image[0].image.width);\n } else {\n this._setSize(texture.image.width / 4);\n }\n _oldTarget = this._renderer.getRenderTarget();\n var cubeUVRenderTarget = renderTarget || this._allocateTargets();\n this._textureToCubeUV(texture, cubeUVRenderTarget);\n this._applyPMREM(cubeUVRenderTarget);\n this._cleanup(cubeUVRenderTarget);\n return cubeUVRenderTarget;\n } },\n {\n key: \"_allocateTargets\",\n value: function _allocateTargets() {\n var width = 3 * Math.max(this._cubeSize, 16 * 7);\n var height = 4 * this._cubeSize;\n var params = {\n magFilter: _constants.LinearFilter,\n minFilter: _constants.LinearFilter,\n generateMipmaps: false,\n type: _constants.HalfFloatType,\n format: _constants.RGBAFormat,\n encoding: _constants.LinearEncoding,\n depthBuffer: false };\n\n var cubeUVRenderTarget = _createRenderTarget(width, height, params);\n if (this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width) {\n if (this._pingPongRenderTarget !== null) {\n this._dispose();\n }\n this._pingPongRenderTarget = _createRenderTarget(width, height, params);\n var _lodMax = this._lodMax;\n var _createPlanes2 = _createPlanes(_lodMax);\n this._sizeLods = _createPlanes2.sizeLods;\n this._lodPlanes = _createPlanes2.lodPlanes;\n this._sigmas = _createPlanes2.sigmas;\n this._blurMaterial = _getBlurShader(_lodMax, width, height);\n }\n return cubeUVRenderTarget;\n } },\n {\n key: \"_compileMaterial\",\n value: function _compileMaterial(material) {\n var tmpMesh = new _Mesh.Mesh(this._lodPlanes[0], material);\n this._renderer.compile(tmpMesh, _flatCamera);\n } },\n {\n key: \"_sceneToCubeUV\",\n value: function _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) {\n var fov = 90;\n var aspect = 1;\n var cubeCamera = new _PerspectiveCamera.PerspectiveCamera(fov, aspect, near, far);\n var upSign = [1, -1, 1, 1, 1, 1];\n var forwardSign = [1, 1, 1, -1, -1, -1];\n var renderer = this._renderer;\n var originalAutoClear = renderer.autoClear;\n var toneMapping = renderer.toneMapping;\n renderer.getClearColor(_clearColor);\n renderer.toneMapping = _constants.NoToneMapping;\n renderer.autoClear = false;\n var backgroundMaterial = new _MeshBasicMaterial.MeshBasicMaterial({\n name: 'PMREM.Background',\n side: _constants.BackSide,\n depthWrite: false,\n depthTest: false });\n\n var backgroundBox = new _Mesh.Mesh(new _BoxGeometry.BoxGeometry(), backgroundMaterial);\n var useSolidColor = false;\n var background = scene.background;\n if (background) {\n if (background.isColor) {\n backgroundMaterial.color.copy(background);\n scene.background = null;\n useSolidColor = true;\n }\n } else {\n backgroundMaterial.color.copy(_clearColor);\n useSolidColor = true;\n }\n for (var i = 0; i < 6; i++) {\n var col = i % 3;\n if (col === 0) {\n cubeCamera.up.set(0, upSign[i], 0);\n cubeCamera.lookAt(forwardSign[i], 0, 0);\n } else if (col === 1) {\n cubeCamera.up.set(0, 0, upSign[i]);\n cubeCamera.lookAt(0, forwardSign[i], 0);\n } else {\n cubeCamera.up.set(0, upSign[i], 0);\n cubeCamera.lookAt(0, 0, forwardSign[i]);\n }\n var size = this._cubeSize;\n _setViewport(cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size);\n renderer.setRenderTarget(cubeUVRenderTarget);\n if (useSolidColor) {\n renderer.render(backgroundBox, cubeCamera);\n }\n renderer.render(scene, cubeCamera);\n }\n backgroundBox.geometry.dispose();\n backgroundBox.material.dispose();\n renderer.toneMapping = toneMapping;\n renderer.autoClear = originalAutoClear;\n scene.background = background;\n } },\n {\n key: \"_textureToCubeUV\",\n value: function _textureToCubeUV(texture, cubeUVRenderTarget) {\n var renderer = this._renderer;\n var isCubeTexture = texture.mapping === _constants.CubeReflectionMapping || texture.mapping === _constants.CubeRefractionMapping;\n if (isCubeTexture) {\n if (this._cubemapMaterial === null) {\n this._cubemapMaterial = _getCubemapMaterial();\n }\n this._cubemapMaterial.uniforms.flipEnvMap.value = texture.isRenderTargetTexture === false ? -1 : 1;\n } else {\n if (this._equirectMaterial === null) {\n this._equirectMaterial = _getEquirectMaterial();\n }\n }\n var material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n var mesh = new _Mesh.Mesh(this._lodPlanes[0], material);\n var uniforms = material.uniforms;\n uniforms['envMap'].value = texture;\n var size = this._cubeSize;\n _setViewport(cubeUVRenderTarget, 0, 0, 3 * size, 2 * size);\n renderer.setRenderTarget(cubeUVRenderTarget);\n renderer.render(mesh, _flatCamera);\n } },\n {\n key: \"_applyPMREM\",\n value: function _applyPMREM(cubeUVRenderTarget) {\n var renderer = this._renderer;\n var autoClear = renderer.autoClear;\n renderer.autoClear = false;\n for (var i = 1; i < this._lodPlanes.length; i++) {\n var sigma = Math.sqrt(this._sigmas[i] * this._sigmas[i] - this._sigmas[i - 1] * this._sigmas[i - 1]);\n var poleAxis = _axisDirections[(i - 1) % _axisDirections.length];\n this._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis);\n }\n renderer.autoClear = autoClear;\n } },\n {\n key: \"_blur\",\n value: function _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) {\n var pingPongRenderTarget = this._pingPongRenderTarget;\n this._halfBlur(cubeUVRenderTarget, pingPongRenderTarget, lodIn, lodOut, sigma, 'latitudinal', poleAxis);\n this._halfBlur(pingPongRenderTarget, cubeUVRenderTarget, lodOut, lodOut, sigma, 'longitudinal', poleAxis);\n } },\n {\n key: \"_halfBlur\",\n value: function _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) {\n var renderer = this._renderer;\n var blurMaterial = this._blurMaterial;\n if (direction !== 'latitudinal' && direction !== 'longitudinal') {\n console.error('blur direction must be either latitudinal or longitudinal!');\n }\n var STANDARD_DEVIATIONS = 3;\n var blurMesh = new _Mesh.Mesh(this._lodPlanes[lodOut], blurMaterial);\n var blurUniforms = blurMaterial.uniforms;\n var pixels = this._sizeLods[lodIn] - 1;\n var radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1);\n var sigmaPixels = sigmaRadians / radiansPerPixel;\n var samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES;\n if (samples > MAX_SAMPLES) {\n console.warn(\"sigmaRadians, \".concat(sigmaRadians, \", is too large and will clip, as it requested \").concat(samples, \" samples when the maximum is set to \").concat(MAX_SAMPLES));\n }\n var weights = [];\n var sum = 0;\n for (var i = 0; i < MAX_SAMPLES; ++i) {\n var _x = i / sigmaPixels;\n var weight = Math.exp(-_x * _x / 2);\n weights.push(weight);\n if (i === 0) {\n sum += weight;\n } else if (i < samples) {\n sum += 2 * weight;\n }\n }\n for (var _i = 0; _i < weights.length; _i++) {\n weights[_i] = weights[_i] / sum;\n }\n blurUniforms['envMap'].value = targetIn.texture;\n blurUniforms['samples'].value = samples;\n blurUniforms['weights'].value = weights;\n blurUniforms['latitudinal'].value = direction === 'latitudinal';\n if (poleAxis) {\n blurUniforms['poleAxis'].value = poleAxis;\n }\n var _lodMax = this._lodMax;\n blurUniforms['dTheta'].value = radiansPerPixel;\n blurUniforms['mipInt'].value = _lodMax - lodIn;\n var outputSize = this._sizeLods[lodOut];\n var x = 3 * outputSize * (lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0);\n var y = 4 * (this._cubeSize - outputSize);\n _setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize);\n renderer.setRenderTarget(targetOut);\n renderer.render(blurMesh, _flatCamera);\n } }]);\n\n return PMREMGenerator;\n }();\n function _createPlanes(lodMax) {\n var lodPlanes = [];\n var sizeLods = [];\n var sigmas = [];\n var lod = lodMax;\n var totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n for (var i = 0; i < totalLods; i++) {\n var sizeLod = Math.pow(2, lod);\n sizeLods.push(sizeLod);\n var sigma = 1.0 / sizeLod;\n if (i > lodMax - LOD_MIN) {\n sigma = EXTRA_LOD_SIGMA[i - lodMax + LOD_MIN - 1];\n } else if (i === 0) {\n sigma = 0;\n }\n sigmas.push(sigma);\n var texelSize = 1.0 / (sizeLod - 2);\n var min = -texelSize;\n var max = 1 + texelSize;\n var uv1 = [min, min, max, min, max, max, min, min, max, max, min, max];\n var cubeFaces = 6;\n var vertices = 6;\n var positionSize = 3;\n var uvSize = 2;\n var faceIndexSize = 1;\n var position = new Float32Array(positionSize * vertices * cubeFaces);\n var uv = new Float32Array(uvSize * vertices * cubeFaces);\n var faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces);\n for (var face = 0; face < cubeFaces; face++) {\n var x = face % 3 * 2 / 3 - 1;\n var y = face > 2 ? 0 : -1;\n var coordinates = [x, y, 0, x + 2 / 3, y, 0, x + 2 / 3, y + 1, 0, x, y, 0, x + 2 / 3, y + 1, 0, x, y + 1, 0];\n position.set(coordinates, positionSize * vertices * face);\n uv.set(uv1, uvSize * vertices * face);\n var fill = [face, face, face, face, face, face];\n faceIndex.set(fill, faceIndexSize * vertices * face);\n }\n var planes = new _BufferGeometry.BufferGeometry();\n planes.setAttribute('position', new _BufferAttribute.BufferAttribute(position, positionSize));\n planes.setAttribute('uv', new _BufferAttribute.BufferAttribute(uv, uvSize));\n planes.setAttribute('faceIndex', new _BufferAttribute.BufferAttribute(faceIndex, faceIndexSize));\n lodPlanes.push(planes);\n if (lod > LOD_MIN) {\n lod--;\n }\n }\n return {\n lodPlanes: lodPlanes,\n sizeLods: sizeLods,\n sigmas: sigmas };\n\n }\n function _createRenderTarget(width, height, params) {\n var cubeUVRenderTarget = new _WebGLRenderTarget.WebGLRenderTarget(width, height, params);\n cubeUVRenderTarget.texture.mapping = _constants.CubeUVReflectionMapping;\n cubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n cubeUVRenderTarget.scissorTest = true;\n return cubeUVRenderTarget;\n }\n function _setViewport(target, x, y, width, height) {\n target.viewport.set(x, y, width, height);\n target.scissor.set(x, y, width, height);\n }\n function _getBlurShader(lodMax, width, height) {\n var weights = new Float32Array(MAX_SAMPLES);\n var poleAxis = new _Vector.Vector3(0, 1, 0);\n var shaderMaterial = new _ShaderMaterial.ShaderMaterial({\n name: 'SphericalGaussianBlur',\n defines: {\n 'n': MAX_SAMPLES,\n 'CUBEUV_TEXEL_WIDTH': 1.0 / width,\n 'CUBEUV_TEXEL_HEIGHT': 1.0 / height,\n 'CUBEUV_MAX_MIP': \"\".concat(lodMax, \".0\") },\n\n uniforms: {\n 'envMap': {\n value: null },\n\n 'samples': {\n value: 1 },\n\n 'weights': {\n value: weights },\n\n 'latitudinal': {\n value: false },\n\n 'dTheta': {\n value: 0 },\n\n 'mipInt': {\n value: 0 },\n\n 'poleAxis': {\n value: poleAxis } },\n\n\n vertexShader: _getCommonVertexShader(),\n fragmentShader: \"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include \\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\t\\t\",\n blending: _constants.NoBlending,\n depthTest: false,\n depthWrite: false });\n\n return shaderMaterial;\n }\n function _getEquirectMaterial() {\n return new _ShaderMaterial.ShaderMaterial({\n name: 'EquirectangularToCubeUV',\n uniforms: {\n 'envMap': {\n value: null } },\n\n\n vertexShader: _getCommonVertexShader(),\n fragmentShader: \"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\n\\t\\t\\t#include \\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\\n\\n\\t\\t\\t}\\n\\t\\t\",\n blending: _constants.NoBlending,\n depthTest: false,\n depthWrite: false });\n\n }\n function _getCubemapMaterial() {\n return new _ShaderMaterial.ShaderMaterial({\n name: 'CubemapToCubeUV',\n uniforms: {\n 'envMap': {\n value: null },\n\n 'flipEnvMap': {\n value: -1 } },\n\n\n vertexShader: _getCommonVertexShader(),\n fragmentShader: \"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tuniform float flipEnvMap;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\\n\\n\\t\\t\\t}\\n\\t\\t\",\n blending: _constants.NoBlending,\n depthTest: false,\n depthWrite: false });\n\n }\n function _getCommonVertexShader() {\n return \"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\";\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/objects/Mesh.js", "pandav:/src/cameras/OrthographicCamera.js", "pandav:/src/cameras/PerspectiveCamera.js", "pandav:/src/materials/ShaderMaterial.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Color.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/geometries/BoxGeometry.js" ], "buildLevel": 19, "outputDir": "/com/three/0.145.0/src/extras", "outputPath": "/com/three/0.145.0/src/extras/PMREMGenerator.js", "fileName": "/src/extras/PMREMGenerator.js" }, "pandav:/src/geometries/CircleGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/CircleGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CircleGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var CircleGeometry = exports.CircleGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(CircleGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(CircleGeometry);\n function CircleGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var segments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8;\n var thetaStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var thetaLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Math.PI * 2;\n (0, _classCallCheck2.default)(this, CircleGeometry);\n _this = _super.call(this);\n _this.type = 'CircleGeometry';\n _this.parameters = {\n radius: radius,\n segments: segments,\n thetaStart: thetaStart,\n thetaLength: thetaLength };\n\n segments = Math.max(3, segments);\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var vertex = new _Vector.Vector3();\n var uv = new _Vector2.Vector2();\n vertices.push(0, 0, 0);\n normals.push(0, 0, 1);\n uvs.push(0.5, 0.5);\n for (var s = 0, i = 3; s <= segments; s++, i += 3) {\n var segment = thetaStart + s / segments * thetaLength;\n vertex.x = radius * Math.cos(segment);\n vertex.y = radius * Math.sin(segment);\n vertices.push(vertex.x, vertex.y, vertex.z);\n normals.push(0, 0, 1);\n uv.x = (vertices[i] / radius + 1) / 2;\n uv.y = (vertices[i + 1] / radius + 1) / 2;\n uvs.push(uv.x, uv.y);\n }\n for (var _i = 1; _i <= segments; _i++) {\n indices.push(_i, _i + 1, 0);\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n return _this;\n }\n (0, _createClass2.default)(CircleGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new CircleGeometry(data.radius, data.segments, data.thetaStart, data.thetaLength);\n } }]);\n\n return CircleGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/CircleGeometry.js", "fileName": "/src/geometries/CircleGeometry.js" }, "pandav:/src/geometries/ConeGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/ConeGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/geometries/CylinderGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ConeGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _CylinderGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/CylinderGeometry');\n var ConeGeometry = exports.ConeGeometry = function (_CylinderGeometry) {\n (0, _inherits2.default)(ConeGeometry, _CylinderGeometry);\n var _super = (0, _createSuper2.default)(ConeGeometry);\n function ConeGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var radialSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;\n var heightSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var openEnded = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var thetaStart = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var thetaLength = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : Math.PI * 2;\n (0, _classCallCheck2.default)(this, ConeGeometry);\n _this = _super.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n _this.type = 'ConeGeometry';\n _this.parameters = {\n radius: radius,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength };\n\n return _this;\n }\n (0, _createClass2.default)(ConeGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new ConeGeometry(data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n } }]);\n\n return ConeGeometry;\n }(_CylinderGeometry2.CylinderGeometry);return module.exports;});", "requires": [ "pandav:/src/geometries/CylinderGeometry.js" ], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/ConeGeometry.js", "fileName": "/src/geometries/ConeGeometry.js" }, "pandav:/src/geometries/DodecahedronGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/DodecahedronGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DodecahedronGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _PolyhedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry');\n var DodecahedronGeometry = exports.DodecahedronGeometry = function (_PolyhedronGeometry) {\n (0, _inherits2.default)(DodecahedronGeometry, _PolyhedronGeometry);\n var _super = (0, _createSuper2.default)(DodecahedronGeometry);\n function DodecahedronGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n (0, _classCallCheck2.default)(this, DodecahedronGeometry);\n var t = (1 + Math.sqrt(5)) / 2;\n var r = 1 / t;\n var vertices = [-1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 0, -r, -t, 0, -r, t, 0, r, -t, 0, r, t, -r, -t, 0, -r, t, 0, r, -t, 0, r, t, 0, -t, 0, -r, t, 0, -r, -t, 0, r, t, 0, r];\n var indices = [3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, 8, 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, 18, 0, 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, 3, 13, 18, 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, 11, 9, 5, 11, 5, 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, 12, 14, 1, 14, 5, 1, 5, 9];\n _this = _super.call(this, vertices, indices, radius, detail);\n _this.type = 'DodecahedronGeometry';\n _this.parameters = {\n radius: radius,\n detail: detail };\n\n return _this;\n }\n (0, _createClass2.default)(DodecahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new DodecahedronGeometry(data.radius, data.detail);\n } }]);\n\n return DodecahedronGeometry;\n }(_PolyhedronGeometry2.PolyhedronGeometry);return module.exports;});", "requires": [ "pandav:/src/geometries/PolyhedronGeometry.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/DodecahedronGeometry.js", "fileName": "/src/geometries/DodecahedronGeometry.js" }, "pandav:/src/geometries/CylinderGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/CylinderGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CylinderGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var CylinderGeometry = exports.CylinderGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(CylinderGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(CylinderGeometry);\n function CylinderGeometry() {\n var _this;\n var radiusTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var radiusBottom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;\n var heightSegments = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var openEnded = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var thetaStart = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;\n var thetaLength = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : Math.PI * 2;\n (0, _classCallCheck2.default)(this, CylinderGeometry);\n _this = _super.call(this);\n _this.type = 'CylinderGeometry';\n _this.parameters = {\n radiusTop: radiusTop,\n radiusBottom: radiusBottom,\n height: height,\n radialSegments: radialSegments,\n heightSegments: heightSegments,\n openEnded: openEnded,\n thetaStart: thetaStart,\n thetaLength: thetaLength };\n\n var scope = (0, _assertThisInitialized2.default)(_this);\n radialSegments = Math.floor(radialSegments);\n heightSegments = Math.floor(heightSegments);\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var index = 0;\n var indexArray = [];\n var halfHeight = height / 2;\n var groupStart = 0;\n generateTorso();\n if (openEnded === false) {\n if (radiusTop > 0) generateCap(true);\n if (radiusBottom > 0) generateCap(false);\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n function generateTorso() {\n var normal = new _Vector.Vector3();\n var vertex = new _Vector.Vector3();\n var groupCount = 0;\n var slope = (radiusBottom - radiusTop) / height;\n for (var y = 0; y <= heightSegments; y++) {\n var indexRow = [];\n var v = y / heightSegments;\n var radius = v * (radiusBottom - radiusTop) + radiusTop;\n for (var x = 0; x <= radialSegments; x++) {\n var u = x / radialSegments;\n var theta = u * thetaLength + thetaStart;\n var sinTheta = Math.sin(theta);\n var cosTheta = Math.cos(theta);\n vertex.x = radius * sinTheta;\n vertex.y = -v * height + halfHeight;\n vertex.z = radius * cosTheta;\n vertices.push(vertex.x, vertex.y, vertex.z);\n normal.set(sinTheta, slope, cosTheta).normalize();\n normals.push(normal.x, normal.y, normal.z);\n uvs.push(u, 1 - v);\n indexRow.push(index++);\n }\n indexArray.push(indexRow);\n }\n for (var _x = 0; _x < radialSegments; _x++) {\n for (var _y = 0; _y < heightSegments; _y++) {\n var a = indexArray[_y][_x];\n var b = indexArray[_y + 1][_x];\n var c = indexArray[_y + 1][_x + 1];\n var d = indexArray[_y][_x + 1];\n indices.push(a, b, d);\n indices.push(b, c, d);\n groupCount += 6;\n }\n }\n scope.addGroup(groupStart, groupCount, 0);\n groupStart += groupCount;\n }\n function generateCap(top) {\n var centerIndexStart = index;\n var uv = new _Vector2.Vector2();\n var vertex = new _Vector.Vector3();\n var groupCount = 0;\n var radius = top === true ? radiusTop : radiusBottom;\n var sign = top === true ? 1 : -1;\n for (var x = 1; x <= radialSegments; x++) {\n vertices.push(0, halfHeight * sign, 0);\n normals.push(0, sign, 0);\n uvs.push(0.5, 0.5);\n index++;\n }\n var centerIndexEnd = index;\n for (var _x2 = 0; _x2 <= radialSegments; _x2++) {\n var u = _x2 / radialSegments;\n var theta = u * thetaLength + thetaStart;\n var cosTheta = Math.cos(theta);\n var sinTheta = Math.sin(theta);\n vertex.x = radius * sinTheta;\n vertex.y = halfHeight * sign;\n vertex.z = radius * cosTheta;\n vertices.push(vertex.x, vertex.y, vertex.z);\n normals.push(0, sign, 0);\n uv.x = cosTheta * 0.5 + 0.5;\n uv.y = sinTheta * 0.5 * sign + 0.5;\n uvs.push(uv.x, uv.y);\n index++;\n }\n for (var _x3 = 0; _x3 < radialSegments; _x3++) {\n var c = centerIndexStart + _x3;\n var i = centerIndexEnd + _x3;\n if (top === true) {\n indices.push(i, i + 1, c);\n } else {\n indices.push(i + 1, i, c);\n }\n groupCount += 3;\n }\n scope.addGroup(groupStart, groupCount, top === true ? 1 : 2);\n groupStart += groupCount;\n }\n return _this;\n }\n (0, _createClass2.default)(CylinderGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new CylinderGeometry(data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n } }]);\n\n return CylinderGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/CylinderGeometry.js", "fileName": "/src/geometries/CylinderGeometry.js" }, "pandav:/src/extras/ShapeUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/extras/ShapeUtils\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/extras/Earcut\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ShapeUtils = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Earcut = require('pandav:/com/three/0.145.0/src/extras/Earcut');\n var ShapeUtils = exports.ShapeUtils = function () {\n function ShapeUtils() {\n (0, _classCallCheck2.default)(this, ShapeUtils);\n }\n (0, _createClass2.default)(ShapeUtils, null, [{\n key: \"area\",\n value: function area(contour) {\n var n = contour.length;\n var a = 0.0;\n for (var p = n - 1, q = 0; q < n; p = q++) {\n a += contour[p].x * contour[q].y - contour[q].x * contour[p].y;\n }\n return a * 0.5;\n } },\n {\n key: \"isClockWise\",\n value: function isClockWise(pts) {\n return ShapeUtils.area(pts) < 0;\n } },\n {\n key: \"triangulateShape\",\n value: function triangulateShape(contour, holes) {\n var vertices = [];\n var holeIndices = [];\n var faces = [];\n removeDupEndPts(contour);\n addContour(vertices, contour);\n var holeIndex = contour.length;\n holes.forEach(removeDupEndPts);\n for (var i = 0; i < holes.length; i++) {\n holeIndices.push(holeIndex);\n holeIndex += holes[i].length;\n addContour(vertices, holes[i]);\n }\n var triangles = _Earcut.Earcut.triangulate(vertices, holeIndices);\n for (var _i = 0; _i < triangles.length; _i += 3) {\n faces.push(triangles.slice(_i, _i + 3));\n }\n return faces;\n } }]);\n\n return ShapeUtils;\n }();\n function removeDupEndPts(points) {\n var l = points.length;\n if (l > 2 && points[l - 1].equals(points[0])) {\n points.pop();\n }\n }\n function addContour(vertices, contour) {\n for (var i = 0; i < contour.length; i++) {\n vertices.push(contour[i].x);\n vertices.push(contour[i].y);\n }\n }return module.exports;});", "requires": [ "pandav:/src/extras/Earcut.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/extras", "outputPath": "/com/three/0.145.0/src/extras/ShapeUtils.js", "fileName": "/src/extras/ShapeUtils.js" }, "pandav:/src/geometries/EdgesGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/EdgesGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/math/Triangle\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.EdgesGeometry = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _Triangle = require('pandav:/com/three/0.145.0/src/math/Triangle');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var _v0 = new _Vector.Vector3();\n var _v1 = new _Vector.Vector3();\n var _normal = new _Vector.Vector3();\n var _triangle = new _Triangle.Triangle();\n var EdgesGeometry = exports.EdgesGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(EdgesGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(EdgesGeometry);\n function EdgesGeometry() {\n var _this;\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var thresholdAngle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n (0, _classCallCheck2.default)(this, EdgesGeometry);\n _this = _super.call(this);\n _this.type = 'EdgesGeometry';\n _this.parameters = {\n geometry: geometry,\n thresholdAngle: thresholdAngle };\n\n if (geometry !== null) {\n var precisionPoints = 4;\n var precision = Math.pow(10, precisionPoints);\n var thresholdDot = Math.cos(MathUtils.DEG2RAD * thresholdAngle);\n var indexAttr = geometry.getIndex();\n var positionAttr = geometry.getAttribute('position');\n var indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n var indexArr = [0, 0, 0];\n var vertKeys = ['a', 'b', 'c'];\n var hashes = new Array(3);\n var edgeData = {};\n var vertices = [];\n for (var i = 0; i < indexCount; i += 3) {\n if (indexAttr) {\n indexArr[0] = indexAttr.getX(i);\n indexArr[1] = indexAttr.getX(i + 1);\n indexArr[2] = indexAttr.getX(i + 2);\n } else {\n indexArr[0] = i;\n indexArr[1] = i + 1;\n indexArr[2] = i + 2;\n }\n var a = _triangle.a,\n b = _triangle.b,\n c = _triangle.c;\n a.fromBufferAttribute(positionAttr, indexArr[0]);\n b.fromBufferAttribute(positionAttr, indexArr[1]);\n c.fromBufferAttribute(positionAttr, indexArr[2]);\n _triangle.getNormal(_normal);\n hashes[0] = \"\".concat(Math.round(a.x * precision), \",\").concat(Math.round(a.y * precision), \",\").concat(Math.round(a.z * precision));\n hashes[1] = \"\".concat(Math.round(b.x * precision), \",\").concat(Math.round(b.y * precision), \",\").concat(Math.round(b.z * precision));\n hashes[2] = \"\".concat(Math.round(c.x * precision), \",\").concat(Math.round(c.y * precision), \",\").concat(Math.round(c.z * precision));\n if (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) {\n continue;\n }\n for (var j = 0; j < 3; j++) {\n var jNext = (j + 1) % 3;\n var vecHash0 = hashes[j];\n var vecHash1 = hashes[jNext];\n var v0 = _triangle[vertKeys[j]];\n var v1 = _triangle[vertKeys[jNext]];\n var hash = \"\".concat(vecHash0, \"_\").concat(vecHash1);\n var reverseHash = \"\".concat(vecHash1, \"_\").concat(vecHash0);\n if (reverseHash in edgeData && edgeData[reverseHash]) {\n if (_normal.dot(edgeData[reverseHash].normal) <= thresholdDot) {\n vertices.push(v0.x, v0.y, v0.z);\n vertices.push(v1.x, v1.y, v1.z);\n }\n edgeData[reverseHash] = null;\n } else if (!(hash in edgeData)) {\n edgeData[hash] = {\n index0: indexArr[j],\n index1: indexArr[jNext],\n normal: _normal.clone() };\n\n }\n }\n }\n for (var key in edgeData) {\n if (edgeData[key]) {\n var _edgeData$key = edgeData[key],\n index0 = _edgeData$key.index0,\n index1 = _edgeData$key.index1;\n _v0.fromBufferAttribute(positionAttr, index0);\n _v1.fromBufferAttribute(positionAttr, index1);\n vertices.push(_v0.x, _v0.y, _v0.z);\n vertices.push(_v1.x, _v1.y, _v1.z);\n }\n }\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n }\n return _this;\n }\n return (0, _createClass2.default)(EdgesGeometry);\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/MathUtils.js", "pandav:/src/math/Triangle.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/EdgesGeometry.js", "fileName": "/src/geometries/EdgesGeometry.js" }, "pandav:/src/geometries/Geometries.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/Geometries\", [\"pandav:/com/three/0.145.0/src/geometries/BoxGeometry\", \"pandav:/com/three/0.145.0/src/geometries/CapsuleGeometry\", \"pandav:/com/three/0.145.0/src/geometries/CircleGeometry\", \"pandav:/com/three/0.145.0/src/geometries/ConeGeometry\", \"pandav:/com/three/0.145.0/src/geometries/CylinderGeometry\", \"pandav:/com/three/0.145.0/src/geometries/DodecahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/EdgesGeometry\", \"pandav:/com/three/0.145.0/src/geometries/ExtrudeGeometry\", \"pandav:/com/three/0.145.0/src/geometries/IcosahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/LatheGeometry\", \"pandav:/com/three/0.145.0/src/geometries/OctahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/PlaneGeometry\", \"pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/RingGeometry\", \"pandav:/com/three/0.145.0/src/geometries/ShapeGeometry\", \"pandav:/com/three/0.145.0/src/geometries/SphereGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TetrahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TorusGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TorusKnotGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TubeGeometry\", \"pandav:/com/three/0.145.0/src/geometries/WireframeGeometry\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n var _BoxGeometry = require('pandav:/com/three/0.145.0/src/geometries/BoxGeometry');\n Object.keys(_BoxGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _BoxGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _BoxGeometry[key];\n } });\n\n });\n var _CapsuleGeometry = require('pandav:/com/three/0.145.0/src/geometries/CapsuleGeometry');\n Object.keys(_CapsuleGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _CapsuleGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CapsuleGeometry[key];\n } });\n\n });\n var _CircleGeometry = require('pandav:/com/three/0.145.0/src/geometries/CircleGeometry');\n Object.keys(_CircleGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _CircleGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CircleGeometry[key];\n } });\n\n });\n var _ConeGeometry = require('pandav:/com/three/0.145.0/src/geometries/ConeGeometry');\n Object.keys(_ConeGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _ConeGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ConeGeometry[key];\n } });\n\n });\n var _CylinderGeometry = require('pandav:/com/three/0.145.0/src/geometries/CylinderGeometry');\n Object.keys(_CylinderGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _CylinderGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _CylinderGeometry[key];\n } });\n\n });\n var _DodecahedronGeometry = require('pandav:/com/three/0.145.0/src/geometries/DodecahedronGeometry');\n Object.keys(_DodecahedronGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _DodecahedronGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _DodecahedronGeometry[key];\n } });\n\n });\n var _EdgesGeometry = require('pandav:/com/three/0.145.0/src/geometries/EdgesGeometry');\n Object.keys(_EdgesGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _EdgesGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _EdgesGeometry[key];\n } });\n\n });\n var _ExtrudeGeometry = require('pandav:/com/three/0.145.0/src/geometries/ExtrudeGeometry');\n Object.keys(_ExtrudeGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _ExtrudeGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ExtrudeGeometry[key];\n } });\n\n });\n var _IcosahedronGeometry = require('pandav:/com/three/0.145.0/src/geometries/IcosahedronGeometry');\n Object.keys(_IcosahedronGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _IcosahedronGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _IcosahedronGeometry[key];\n } });\n\n });\n var _LatheGeometry = require('pandav:/com/three/0.145.0/src/geometries/LatheGeometry');\n Object.keys(_LatheGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _LatheGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _LatheGeometry[key];\n } });\n\n });\n var _OctahedronGeometry = require('pandav:/com/three/0.145.0/src/geometries/OctahedronGeometry');\n Object.keys(_OctahedronGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _OctahedronGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _OctahedronGeometry[key];\n } });\n\n });\n var _PlaneGeometry = require('pandav:/com/three/0.145.0/src/geometries/PlaneGeometry');\n Object.keys(_PlaneGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _PlaneGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _PlaneGeometry[key];\n } });\n\n });\n var _PolyhedronGeometry = require('pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry');\n Object.keys(_PolyhedronGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _PolyhedronGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _PolyhedronGeometry[key];\n } });\n\n });\n var _RingGeometry = require('pandav:/com/three/0.145.0/src/geometries/RingGeometry');\n Object.keys(_RingGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _RingGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _RingGeometry[key];\n } });\n\n });\n var _ShapeGeometry = require('pandav:/com/three/0.145.0/src/geometries/ShapeGeometry');\n Object.keys(_ShapeGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _ShapeGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ShapeGeometry[key];\n } });\n\n });\n var _SphereGeometry = require('pandav:/com/three/0.145.0/src/geometries/SphereGeometry');\n Object.keys(_SphereGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _SphereGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _SphereGeometry[key];\n } });\n\n });\n var _TetrahedronGeometry = require('pandav:/com/three/0.145.0/src/geometries/TetrahedronGeometry');\n Object.keys(_TetrahedronGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _TetrahedronGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TetrahedronGeometry[key];\n } });\n\n });\n var _TorusGeometry = require('pandav:/com/three/0.145.0/src/geometries/TorusGeometry');\n Object.keys(_TorusGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _TorusGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TorusGeometry[key];\n } });\n\n });\n var _TorusKnotGeometry = require('pandav:/com/three/0.145.0/src/geometries/TorusKnotGeometry');\n Object.keys(_TorusKnotGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _TorusKnotGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TorusKnotGeometry[key];\n } });\n\n });\n var _TubeGeometry = require('pandav:/com/three/0.145.0/src/geometries/TubeGeometry');\n Object.keys(_TubeGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _TubeGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _TubeGeometry[key];\n } });\n\n });\n var _WireframeGeometry = require('pandav:/com/three/0.145.0/src/geometries/WireframeGeometry');\n Object.keys(_WireframeGeometry).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _WireframeGeometry[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _WireframeGeometry[key];\n } });\n\n });return module.exports;});", "requires": [ "pandav:/src/geometries/BoxGeometry.js", "pandav:/src/geometries/CapsuleGeometry.js", "pandav:/src/geometries/CircleGeometry.js", "pandav:/src/geometries/ConeGeometry.js", "pandav:/src/geometries/CylinderGeometry.js", "pandav:/src/geometries/DodecahedronGeometry.js", "pandav:/src/geometries/EdgesGeometry.js", "pandav:/src/geometries/ExtrudeGeometry.js", "pandav:/src/geometries/IcosahedronGeometry.js", "pandav:/src/geometries/LatheGeometry.js", "pandav:/src/geometries/OctahedronGeometry.js", "pandav:/src/geometries/PlaneGeometry.js", "pandav:/src/geometries/PolyhedronGeometry.js", "pandav:/src/geometries/RingGeometry.js", "pandav:/src/geometries/ShapeGeometry.js", "pandav:/src/geometries/SphereGeometry.js", "pandav:/src/geometries/TetrahedronGeometry.js", "pandav:/src/geometries/TorusGeometry.js", "pandav:/src/geometries/TorusKnotGeometry.js", "pandav:/src/geometries/TubeGeometry.js", "pandav:/src/geometries/WireframeGeometry.js" ], "buildLevel": 25, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/Geometries.js", "fileName": "/src/geometries/Geometries.js" }, "pandav:/src/geometries/IcosahedronGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/IcosahedronGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.IcosahedronGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _PolyhedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry');\n var IcosahedronGeometry = exports.IcosahedronGeometry = function (_PolyhedronGeometry) {\n (0, _inherits2.default)(IcosahedronGeometry, _PolyhedronGeometry);\n var _super = (0, _createSuper2.default)(IcosahedronGeometry);\n function IcosahedronGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n (0, _classCallCheck2.default)(this, IcosahedronGeometry);\n var t = (1 + Math.sqrt(5)) / 2;\n var vertices = [-1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, 0, 0, -1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, t, 0, -1, t, 0, 1, -t, 0, -1, -t, 0, 1];\n var indices = [0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1];\n _this = _super.call(this, vertices, indices, radius, detail);\n _this.type = 'IcosahedronGeometry';\n _this.parameters = {\n radius: radius,\n detail: detail };\n\n return _this;\n }\n (0, _createClass2.default)(IcosahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new IcosahedronGeometry(data.radius, data.detail);\n } }]);\n\n return IcosahedronGeometry;\n }(_PolyhedronGeometry2.PolyhedronGeometry);return module.exports;});", "requires": [ "pandav:/src/geometries/PolyhedronGeometry.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/IcosahedronGeometry.js", "fileName": "/src/geometries/IcosahedronGeometry.js" }, "pandav:/src/geometries/ExtrudeGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/ExtrudeGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/extras/curves/Curves\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/extras/core/Shape\", \"pandav:/com/three/0.145.0/src/extras/ShapeUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ExtrudeGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var Curves = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/extras/curves/Curves'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Shape = require('pandav:/com/three/0.145.0/src/extras/core/Shape');\n var _ShapeUtils = require('pandav:/com/three/0.145.0/src/extras/ShapeUtils');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var ExtrudeGeometry = exports.ExtrudeGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(ExtrudeGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(ExtrudeGeometry);\n function ExtrudeGeometry() {\n var _this;\n var shapes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Shape.Shape([new _Vector.Vector2(0.5, 0.5), new _Vector.Vector2(-0.5, 0.5), new _Vector.Vector2(-0.5, -0.5), new _Vector.Vector2(0.5, -0.5)]);\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _classCallCheck2.default)(this, ExtrudeGeometry);\n _this = _super.call(this);\n _this.type = 'ExtrudeGeometry';\n _this.parameters = {\n shapes: shapes,\n options: options };\n\n shapes = Array.isArray(shapes) ? shapes : [shapes];\n var scope = (0, _assertThisInitialized2.default)(_this);\n var verticesArray = [];\n var uvArray = [];\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n addShape(shape);\n }\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(verticesArray, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvArray, 2));\n _this.computeVertexNormals();\n function addShape(shape) {\n var placeholder = [];\n var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n var steps = options.steps !== undefined ? options.steps : 1;\n var depth = options.depth !== undefined ? options.depth : 1;\n var bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n var bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n var bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n var bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n var bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n var extrudePath = options.extrudePath;\n var uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator;\n var extrudePts,\n extrudeByPath = false;\n var splineTube, binormal, normal, position2;\n if (extrudePath) {\n extrudePts = extrudePath.getSpacedPoints(steps);\n extrudeByPath = true;\n bevelEnabled = false;\n splineTube = extrudePath.computeFrenetFrames(steps, false);\n binormal = new _Vector2.Vector3();\n normal = new _Vector2.Vector3();\n position2 = new _Vector2.Vector3();\n }\n if (!bevelEnabled) {\n bevelSegments = 0;\n bevelThickness = 0;\n bevelSize = 0;\n bevelOffset = 0;\n }\n var shapePoints = shape.extractPoints(curveSegments);\n var vertices = shapePoints.shape;\n var holes = shapePoints.holes;\n var reverse = !_ShapeUtils.ShapeUtils.isClockWise(vertices);\n if (reverse) {\n vertices = vertices.reverse();\n for (var h = 0, hl = holes.length; h < hl; h++) {\n var ahole = holes[h];\n if (_ShapeUtils.ShapeUtils.isClockWise(ahole)) {\n holes[h] = ahole.reverse();\n }\n }\n }\n var faces = _ShapeUtils.ShapeUtils.triangulateShape(vertices, holes);\n var contour = vertices;\n for (var _h = 0, _hl = holes.length; _h < _hl; _h++) {\n var _ahole = holes[_h];\n vertices = vertices.concat(_ahole);\n }\n function scalePt2(pt, vec, size) {\n if (!vec) console.error('THREE.ExtrudeGeometry: vec does not exist');\n return vec.clone().multiplyScalar(size).add(pt);\n }\n var vlen = vertices.length,\n flen = faces.length;\n function getBevelVec(inPt, inPrev, inNext) {\n var v_trans_x, v_trans_y, shrink_by;\n var v_prev_x = inPt.x - inPrev.x,\n v_prev_y = inPt.y - inPrev.y;\n var v_next_x = inNext.x - inPt.x,\n v_next_y = inNext.y - inPt.y;\n var v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y;\n var collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x;\n if (Math.abs(collinear0) > Number.EPSILON) {\n var v_prev_len = Math.sqrt(v_prev_lensq);\n var v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y);\n var ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len;\n var ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len;\n var ptNextShift_x = inNext.x - v_next_y / v_next_len;\n var ptNextShift_y = inNext.y + v_next_x / v_next_len;\n var sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x);\n v_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x;\n v_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y;\n var v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y;\n if (v_trans_lensq <= 2) {\n return new _Vector.Vector2(v_trans_x, v_trans_y);\n } else {\n shrink_by = Math.sqrt(v_trans_lensq / 2);\n }\n } else {\n var direction_eq = false;\n if (v_prev_x > Number.EPSILON) {\n if (v_next_x > Number.EPSILON) {\n direction_eq = true;\n }\n } else {\n if (v_prev_x < -Number.EPSILON) {\n if (v_next_x < -Number.EPSILON) {\n direction_eq = true;\n }\n } else {\n if (Math.sign(v_prev_y) === Math.sign(v_next_y)) {\n direction_eq = true;\n }\n }\n }\n if (direction_eq) {\n v_trans_x = -v_prev_y;\n v_trans_y = v_prev_x;\n shrink_by = Math.sqrt(v_prev_lensq);\n } else {\n v_trans_x = v_prev_x;\n v_trans_y = v_prev_y;\n shrink_by = Math.sqrt(v_prev_lensq / 2);\n }\n }\n return new _Vector.Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by);\n }\n var contourMovements = [];\n for (var _i = 0, il = contour.length, j = il - 1, k = _i + 1; _i < il; _i++, j++, k++) {\n if (j === il) j = 0;\n if (k === il) k = 0;\n contourMovements[_i] = getBevelVec(contour[_i], contour[j], contour[k]);\n }\n var holesMovements = [];\n var oneHoleMovements,\n verticesMovements = contourMovements.concat();\n for (var _h2 = 0, _hl2 = holes.length; _h2 < _hl2; _h2++) {\n var _ahole2 = holes[_h2];\n oneHoleMovements = [];\n for (var _i2 = 0, _il = _ahole2.length, _j = _il - 1, _k = _i2 + 1; _i2 < _il; _i2++, _j++, _k++) {\n if (_j === _il) _j = 0;\n if (_k === _il) _k = 0;\n oneHoleMovements[_i2] = getBevelVec(_ahole2[_i2], _ahole2[_j], _ahole2[_k]);\n }\n holesMovements.push(oneHoleMovements);\n verticesMovements = verticesMovements.concat(oneHoleMovements);\n }\n for (var b = 0; b < bevelSegments; b++) {\n var t = b / bevelSegments;\n var z = bevelThickness * Math.cos(t * Math.PI / 2);\n var _bs = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset;\n for (var _i3 = 0, _il2 = contour.length; _i3 < _il2; _i3++) {\n var vert = scalePt2(contour[_i3], contourMovements[_i3], _bs);\n v(vert.x, vert.y, -z);\n }\n for (var _h3 = 0, _hl3 = holes.length; _h3 < _hl3; _h3++) {\n var _ahole3 = holes[_h3];\n oneHoleMovements = holesMovements[_h3];\n for (var _i4 = 0, _il3 = _ahole3.length; _i4 < _il3; _i4++) {\n var _vert = scalePt2(_ahole3[_i4], oneHoleMovements[_i4], _bs);\n v(_vert.x, _vert.y, -z);\n }\n }\n }\n var bs = bevelSize + bevelOffset;\n for (var _i5 = 0; _i5 < vlen; _i5++) {\n var _vert2 = bevelEnabled ? scalePt2(vertices[_i5], verticesMovements[_i5], bs) : vertices[_i5];\n if (!extrudeByPath) {\n v(_vert2.x, _vert2.y, 0);\n } else {\n normal.copy(splineTube.normals[0]).multiplyScalar(_vert2.x);\n binormal.copy(splineTube.binormals[0]).multiplyScalar(_vert2.y);\n position2.copy(extrudePts[0]).add(normal).add(binormal);\n v(position2.x, position2.y, position2.z);\n }\n }\n for (var s = 1; s <= steps; s++) {\n for (var _i6 = 0; _i6 < vlen; _i6++) {\n var _vert3 = bevelEnabled ? scalePt2(vertices[_i6], verticesMovements[_i6], bs) : vertices[_i6];\n if (!extrudeByPath) {\n v(_vert3.x, _vert3.y, depth / steps * s);\n } else {\n normal.copy(splineTube.normals[s]).multiplyScalar(_vert3.x);\n binormal.copy(splineTube.binormals[s]).multiplyScalar(_vert3.y);\n position2.copy(extrudePts[s]).add(normal).add(binormal);\n v(position2.x, position2.y, position2.z);\n }\n }\n }\n for (var _b = bevelSegments - 1; _b >= 0; _b--) {\n var _t = _b / bevelSegments;\n var _z = bevelThickness * Math.cos(_t * Math.PI / 2);\n var _bs2 = bevelSize * Math.sin(_t * Math.PI / 2) + bevelOffset;\n for (var _i7 = 0, _il4 = contour.length; _i7 < _il4; _i7++) {\n var _vert4 = scalePt2(contour[_i7], contourMovements[_i7], _bs2);\n v(_vert4.x, _vert4.y, depth + _z);\n }\n for (var _h4 = 0, _hl4 = holes.length; _h4 < _hl4; _h4++) {\n var _ahole4 = holes[_h4];\n oneHoleMovements = holesMovements[_h4];\n for (var _i8 = 0, _il5 = _ahole4.length; _i8 < _il5; _i8++) {\n var _vert5 = scalePt2(_ahole4[_i8], oneHoleMovements[_i8], _bs2);\n if (!extrudeByPath) {\n v(_vert5.x, _vert5.y, depth + _z);\n } else {\n v(_vert5.x, _vert5.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + _z);\n }\n }\n }\n }\n buildLidFaces();\n buildSideFaces();\n function buildLidFaces() {\n var start = verticesArray.length / 3;\n if (bevelEnabled) {\n var layer = 0;\n var offset = vlen * layer;\n for (var _i9 = 0; _i9 < flen; _i9++) {\n var face = faces[_i9];\n f3(face[2] + offset, face[1] + offset, face[0] + offset);\n }\n layer = steps + bevelSegments * 2;\n offset = vlen * layer;\n for (var _i10 = 0; _i10 < flen; _i10++) {\n var _face = faces[_i10];\n f3(_face[0] + offset, _face[1] + offset, _face[2] + offset);\n }\n } else {\n for (var _i11 = 0; _i11 < flen; _i11++) {\n var _face2 = faces[_i11];\n f3(_face2[2], _face2[1], _face2[0]);\n }\n for (var _i12 = 0; _i12 < flen; _i12++) {\n var _face3 = faces[_i12];\n f3(_face3[0] + vlen * steps, _face3[1] + vlen * steps, _face3[2] + vlen * steps);\n }\n }\n scope.addGroup(start, verticesArray.length / 3 - start, 0);\n }\n function buildSideFaces() {\n var start = verticesArray.length / 3;\n var layeroffset = 0;\n sidewalls(contour, layeroffset);\n layeroffset += contour.length;\n for (var _h5 = 0, _hl5 = holes.length; _h5 < _hl5; _h5++) {\n var _ahole5 = holes[_h5];\n sidewalls(_ahole5, layeroffset);\n layeroffset += _ahole5.length;\n }\n scope.addGroup(start, verticesArray.length / 3 - start, 1);\n }\n function sidewalls(contour, layeroffset) {\n var i = contour.length;\n while (--i >= 0) {\n var _j2 = i;\n var _k2 = i - 1;\n if (_k2 < 0) _k2 = contour.length - 1;\n for (var _s = 0, sl = steps + bevelSegments * 2; _s < sl; _s++) {\n var slen1 = vlen * _s;\n var slen2 = vlen * (_s + 1);\n var a = layeroffset + _j2 + slen1,\n _b2 = layeroffset + _k2 + slen1,\n c = layeroffset + _k2 + slen2,\n d = layeroffset + _j2 + slen2;\n f4(a, _b2, c, d);\n }\n }\n }\n function v(x, y, z) {\n placeholder.push(x);\n placeholder.push(y);\n placeholder.push(z);\n }\n function f3(a, b, c) {\n addVertex(a);\n addVertex(b);\n addVertex(c);\n var nextIndex = verticesArray.length / 3;\n var uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n addUV(uvs[0]);\n addUV(uvs[1]);\n addUV(uvs[2]);\n }\n function f4(a, b, c, d) {\n addVertex(a);\n addVertex(b);\n addVertex(d);\n addVertex(b);\n addVertex(c);\n addVertex(d);\n var nextIndex = verticesArray.length / 3;\n var uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n addUV(uvs[0]);\n addUV(uvs[1]);\n addUV(uvs[3]);\n addUV(uvs[1]);\n addUV(uvs[2]);\n addUV(uvs[3]);\n }\n function addVertex(index) {\n verticesArray.push(placeholder[index * 3 + 0]);\n verticesArray.push(placeholder[index * 3 + 1]);\n verticesArray.push(placeholder[index * 3 + 2]);\n }\n function addUV(vector2) {\n uvArray.push(vector2.x);\n uvArray.push(vector2.y);\n }\n }\n return _this;\n }\n (0, _createClass2.default)(ExtrudeGeometry, [{\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(ExtrudeGeometry.prototype), \"toJSON\", this).call(this);\n var shapes = this.parameters.shapes;\n var options = this.parameters.options;\n return _toJSON(shapes, options, data);\n } }],\n [{\n key: \"fromJSON\",\n value: function fromJSON(data, shapes) {\n var geometryShapes = [];\n for (var j = 0, jl = data.shapes.length; j < jl; j++) {\n var shape = shapes[data.shapes[j]];\n geometryShapes.push(shape);\n }\n var extrudePath = data.options.extrudePath;\n if (extrudePath !== undefined) {\n data.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath);\n }\n return new ExtrudeGeometry(geometryShapes, data.options);\n } }]);\n\n return ExtrudeGeometry;\n }(_BufferGeometry2.BufferGeometry);\n var WorldUVGenerator = {\n generateTopUV: function generateTopUV(geometry, vertices, indexA, indexB, indexC) {\n var a_x = vertices[indexA * 3];\n var a_y = vertices[indexA * 3 + 1];\n var b_x = vertices[indexB * 3];\n var b_y = vertices[indexB * 3 + 1];\n var c_x = vertices[indexC * 3];\n var c_y = vertices[indexC * 3 + 1];\n return [new _Vector.Vector2(a_x, a_y), new _Vector.Vector2(b_x, b_y), new _Vector.Vector2(c_x, c_y)];\n },\n generateSideWallUV: function generateSideWallUV(geometry, vertices, indexA, indexB, indexC, indexD) {\n var a_x = vertices[indexA * 3];\n var a_y = vertices[indexA * 3 + 1];\n var a_z = vertices[indexA * 3 + 2];\n var b_x = vertices[indexB * 3];\n var b_y = vertices[indexB * 3 + 1];\n var b_z = vertices[indexB * 3 + 2];\n var c_x = vertices[indexC * 3];\n var c_y = vertices[indexC * 3 + 1];\n var c_z = vertices[indexC * 3 + 2];\n var d_x = vertices[indexD * 3];\n var d_y = vertices[indexD * 3 + 1];\n var d_z = vertices[indexD * 3 + 2];\n if (Math.abs(a_y - b_y) < Math.abs(a_x - b_x)) {\n return [new _Vector.Vector2(a_x, 1 - a_z), new _Vector.Vector2(b_x, 1 - b_z), new _Vector.Vector2(c_x, 1 - c_z), new _Vector.Vector2(d_x, 1 - d_z)];\n } else {\n return [new _Vector.Vector2(a_y, 1 - a_z), new _Vector.Vector2(b_y, 1 - b_z), new _Vector.Vector2(c_y, 1 - c_z), new _Vector.Vector2(d_y, 1 - d_z)];\n }\n } };\n\n function _toJSON(shapes, options, data) {\n data.shapes = [];\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n data.shapes.push(shape.uuid);\n }\n } else {\n data.shapes.push(shapes.uuid);\n }\n data.options = Object.assign({}, options);\n if (options.extrudePath !== undefined) data.options.extrudePath = options.extrudePath.toJSON();\n return data;\n }return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/extras/curves/Curves.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/extras/core/Shape.js", "pandav:/src/extras/ShapeUtils.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/ExtrudeGeometry.js", "fileName": "/src/geometries/ExtrudeGeometry.js" }, "pandav:/src/geometries/PlaneGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/PlaneGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PlaneGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var PlaneGeometry = exports.PlaneGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(PlaneGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(PlaneGeometry);\n function PlaneGeometry() {\n var _this;\n var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var widthSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var heightSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n (0, _classCallCheck2.default)(this, PlaneGeometry);\n _this = _super.call(this);\n _this.type = 'PlaneGeometry';\n _this.parameters = {\n width: width,\n height: height,\n widthSegments: widthSegments,\n heightSegments: heightSegments };\n\n var width_half = width / 2;\n var height_half = height / 2;\n var gridX = Math.floor(widthSegments);\n var gridY = Math.floor(heightSegments);\n var gridX1 = gridX + 1;\n var gridY1 = gridY + 1;\n var segment_width = width / gridX;\n var segment_height = height / gridY;\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n for (var iy = 0; iy < gridY1; iy++) {\n var y = iy * segment_height - height_half;\n for (var ix = 0; ix < gridX1; ix++) {\n var x = ix * segment_width - width_half;\n vertices.push(x, -y, 0);\n normals.push(0, 0, 1);\n uvs.push(ix / gridX);\n uvs.push(1 - iy / gridY);\n }\n }\n for (var _iy = 0; _iy < gridY; _iy++) {\n for (var _ix = 0; _ix < gridX; _ix++) {\n var a = _ix + gridX1 * _iy;\n var b = _ix + gridX1 * (_iy + 1);\n var c = _ix + 1 + gridX1 * (_iy + 1);\n var d = _ix + 1 + gridX1 * _iy;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n return _this;\n }\n (0, _createClass2.default)(PlaneGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new PlaneGeometry(data.width, data.height, data.widthSegments, data.heightSegments);\n } }]);\n\n return PlaneGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 13, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/PlaneGeometry.js", "fileName": "/src/geometries/PlaneGeometry.js" }, "pandav:/src/geometries/OctahedronGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/OctahedronGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.OctahedronGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _PolyhedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry');\n var OctahedronGeometry = exports.OctahedronGeometry = function (_PolyhedronGeometry) {\n (0, _inherits2.default)(OctahedronGeometry, _PolyhedronGeometry);\n var _super = (0, _createSuper2.default)(OctahedronGeometry);\n function OctahedronGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n (0, _classCallCheck2.default)(this, OctahedronGeometry);\n var vertices = [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1];\n var indices = [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2];\n _this = _super.call(this, vertices, indices, radius, detail);\n _this.type = 'OctahedronGeometry';\n _this.parameters = {\n radius: radius,\n detail: detail };\n\n return _this;\n }\n (0, _createClass2.default)(OctahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new OctahedronGeometry(data.radius, data.detail);\n } }]);\n\n return OctahedronGeometry;\n }(_PolyhedronGeometry2.PolyhedronGeometry);return module.exports;});", "requires": [ "pandav:/src/geometries/PolyhedronGeometry.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/OctahedronGeometry.js", "fileName": "/src/geometries/OctahedronGeometry.js" }, "pandav:/src/geometries/RingGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/RingGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.RingGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var RingGeometry = exports.RingGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(RingGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(RingGeometry);\n function RingGeometry() {\n var _this;\n var innerRadius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.5;\n var outerRadius = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var thetaSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;\n var phiSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var thetaStart = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var thetaLength = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : Math.PI * 2;\n (0, _classCallCheck2.default)(this, RingGeometry);\n _this = _super.call(this);\n _this.type = 'RingGeometry';\n _this.parameters = {\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n thetaSegments: thetaSegments,\n phiSegments: phiSegments,\n thetaStart: thetaStart,\n thetaLength: thetaLength };\n\n thetaSegments = Math.max(3, thetaSegments);\n phiSegments = Math.max(1, phiSegments);\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var radius = innerRadius;\n var radiusStep = (outerRadius - innerRadius) / phiSegments;\n var vertex = new _Vector2.Vector3();\n var uv = new _Vector.Vector2();\n for (var j = 0; j <= phiSegments; j++) {\n for (var i = 0; i <= thetaSegments; i++) {\n var segment = thetaStart + i / thetaSegments * thetaLength;\n vertex.x = radius * Math.cos(segment);\n vertex.y = radius * Math.sin(segment);\n vertices.push(vertex.x, vertex.y, vertex.z);\n normals.push(0, 0, 1);\n uv.x = (vertex.x / outerRadius + 1) / 2;\n uv.y = (vertex.y / outerRadius + 1) / 2;\n uvs.push(uv.x, uv.y);\n }\n radius += radiusStep;\n }\n for (var _j = 0; _j < phiSegments; _j++) {\n var thetaSegmentLevel = _j * (thetaSegments + 1);\n for (var _i = 0; _i < thetaSegments; _i++) {\n var _segment = _i + thetaSegmentLevel;\n var a = _segment;\n var b = _segment + thetaSegments + 1;\n var c = _segment + thetaSegments + 2;\n var d = _segment + 1;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n return _this;\n }\n (0, _createClass2.default)(RingGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new RingGeometry(data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength);\n } }]);\n\n return RingGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/RingGeometry.js", "fileName": "/src/geometries/RingGeometry.js" }, "pandav:/src/geometries/PolyhedronGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PolyhedronGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var PolyhedronGeometry = exports.PolyhedronGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(PolyhedronGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(PolyhedronGeometry);\n function PolyhedronGeometry() {\n var _this;\n var vertices = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var indices = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var radius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n (0, _classCallCheck2.default)(this, PolyhedronGeometry);\n _this = _super.call(this);\n _this.type = 'PolyhedronGeometry';\n _this.parameters = {\n vertices: vertices,\n indices: indices,\n radius: radius,\n detail: detail };\n\n var vertexBuffer = [];\n var uvBuffer = [];\n subdivide(detail);\n applyRadius(radius);\n generateUVs();\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertexBuffer, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(vertexBuffer.slice(), 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvBuffer, 2));\n if (detail === 0) {\n _this.computeVertexNormals();\n } else {\n _this.normalizeNormals();\n }\n function subdivide(detail) {\n var a = new _Vector.Vector3();\n var b = new _Vector.Vector3();\n var c = new _Vector.Vector3();\n for (var i = 0; i < indices.length; i += 3) {\n getVertexByIndex(indices[i + 0], a);\n getVertexByIndex(indices[i + 1], b);\n getVertexByIndex(indices[i + 2], c);\n subdivideFace(a, b, c, detail);\n }\n }\n function subdivideFace(a, b, c, detail) {\n var cols = detail + 1;\n var v = [];\n for (var i = 0; i <= cols; i++) {\n v[i] = [];\n var aj = a.clone().lerp(c, i / cols);\n var bj = b.clone().lerp(c, i / cols);\n var rows = cols - i;\n for (var j = 0; j <= rows; j++) {\n if (j === 0 && i === cols) {\n v[i][j] = aj;\n } else {\n v[i][j] = aj.clone().lerp(bj, j / rows);\n }\n }\n }\n for (var _i = 0; _i < cols; _i++) {\n for (var _j = 0; _j < 2 * (cols - _i) - 1; _j++) {\n var k = Math.floor(_j / 2);\n if (_j % 2 === 0) {\n pushVertex(v[_i][k + 1]);\n pushVertex(v[_i + 1][k]);\n pushVertex(v[_i][k]);\n } else {\n pushVertex(v[_i][k + 1]);\n pushVertex(v[_i + 1][k + 1]);\n pushVertex(v[_i + 1][k]);\n }\n }\n }\n }\n function applyRadius(radius) {\n var vertex = new _Vector.Vector3();\n for (var i = 0; i < vertexBuffer.length; i += 3) {\n vertex.x = vertexBuffer[i + 0];\n vertex.y = vertexBuffer[i + 1];\n vertex.z = vertexBuffer[i + 2];\n vertex.normalize().multiplyScalar(radius);\n vertexBuffer[i + 0] = vertex.x;\n vertexBuffer[i + 1] = vertex.y;\n vertexBuffer[i + 2] = vertex.z;\n }\n }\n function generateUVs() {\n var vertex = new _Vector.Vector3();\n for (var i = 0; i < vertexBuffer.length; i += 3) {\n vertex.x = vertexBuffer[i + 0];\n vertex.y = vertexBuffer[i + 1];\n vertex.z = vertexBuffer[i + 2];\n var u = azimuth(vertex) / 2 / Math.PI + 0.5;\n var v = inclination(vertex) / Math.PI + 0.5;\n uvBuffer.push(u, 1 - v);\n }\n correctUVs();\n correctSeam();\n }\n function correctSeam() {\n for (var i = 0; i < uvBuffer.length; i += 6) {\n var x0 = uvBuffer[i + 0];\n var x1 = uvBuffer[i + 2];\n var x2 = uvBuffer[i + 4];\n var max = Math.max(x0, x1, x2);\n var min = Math.min(x0, x1, x2);\n if (max > 0.9 && min < 0.1) {\n if (x0 < 0.2) uvBuffer[i + 0] += 1;\n if (x1 < 0.2) uvBuffer[i + 2] += 1;\n if (x2 < 0.2) uvBuffer[i + 4] += 1;\n }\n }\n }\n function pushVertex(vertex) {\n vertexBuffer.push(vertex.x, vertex.y, vertex.z);\n }\n function getVertexByIndex(index, vertex) {\n var stride = index * 3;\n vertex.x = vertices[stride + 0];\n vertex.y = vertices[stride + 1];\n vertex.z = vertices[stride + 2];\n }\n function correctUVs() {\n var a = new _Vector.Vector3();\n var b = new _Vector.Vector3();\n var c = new _Vector.Vector3();\n var centroid = new _Vector.Vector3();\n var uvA = new _Vector2.Vector2();\n var uvB = new _Vector2.Vector2();\n var uvC = new _Vector2.Vector2();\n for (var i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) {\n a.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]);\n b.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]);\n c.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]);\n uvA.set(uvBuffer[j + 0], uvBuffer[j + 1]);\n uvB.set(uvBuffer[j + 2], uvBuffer[j + 3]);\n uvC.set(uvBuffer[j + 4], uvBuffer[j + 5]);\n centroid.copy(a).add(b).add(c).divideScalar(3);\n var azi = azimuth(centroid);\n correctUV(uvA, j + 0, a, azi);\n correctUV(uvB, j + 2, b, azi);\n correctUV(uvC, j + 4, c, azi);\n }\n }\n function correctUV(uv, stride, vector, azimuth) {\n if (azimuth < 0 && uv.x === 1) {\n uvBuffer[stride] = uv.x - 1;\n }\n if (vector.x === 0 && vector.z === 0) {\n uvBuffer[stride] = azimuth / 2 / Math.PI + 0.5;\n }\n }\n function azimuth(vector) {\n return Math.atan2(vector.z, -vector.x);\n }\n function inclination(vector) {\n return Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z));\n }\n return _this;\n }\n (0, _createClass2.default)(PolyhedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new PolyhedronGeometry(data.vertices, data.indices, data.radius, data.details);\n } }]);\n\n return PolyhedronGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/PolyhedronGeometry.js", "fileName": "/src/geometries/PolyhedronGeometry.js" }, "pandav:/src/geometries/ShapeGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/ShapeGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/extras/core/Shape\", \"pandav:/com/three/0.145.0/src/extras/ShapeUtils\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ShapeGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Shape = require('pandav:/com/three/0.145.0/src/extras/core/Shape');\n var _ShapeUtils = require('pandav:/com/three/0.145.0/src/extras/ShapeUtils');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var ShapeGeometry = exports.ShapeGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(ShapeGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(ShapeGeometry);\n function ShapeGeometry() {\n var _this;\n var shapes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Shape.Shape([new _Vector.Vector2(0, 0.5), new _Vector.Vector2(-0.5, -0.5), new _Vector.Vector2(0.5, -0.5)]);\n var curveSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12;\n (0, _classCallCheck2.default)(this, ShapeGeometry);\n _this = _super.call(this);\n _this.type = 'ShapeGeometry';\n _this.parameters = {\n shapes: shapes,\n curveSegments: curveSegments };\n\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var groupStart = 0;\n var groupCount = 0;\n if (Array.isArray(shapes) === false) {\n addShape(shapes);\n } else {\n for (var i = 0; i < shapes.length; i++) {\n addShape(shapes[i]);\n _this.addGroup(groupStart, groupCount, i);\n groupStart += groupCount;\n groupCount = 0;\n }\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n function addShape(shape) {\n var indexOffset = vertices.length / 3;\n var points = shape.extractPoints(curveSegments);\n var shapeVertices = points.shape;\n var shapeHoles = points.holes;\n if (_ShapeUtils.ShapeUtils.isClockWise(shapeVertices) === false) {\n shapeVertices = shapeVertices.reverse();\n }\n for (var _i = 0, l = shapeHoles.length; _i < l; _i++) {\n var shapeHole = shapeHoles[_i];\n if (_ShapeUtils.ShapeUtils.isClockWise(shapeHole) === true) {\n shapeHoles[_i] = shapeHole.reverse();\n }\n }\n var faces = _ShapeUtils.ShapeUtils.triangulateShape(shapeVertices, shapeHoles);\n for (var _i2 = 0, _l = shapeHoles.length; _i2 < _l; _i2++) {\n var _shapeHole = shapeHoles[_i2];\n shapeVertices = shapeVertices.concat(_shapeHole);\n }\n for (var _i3 = 0, _l2 = shapeVertices.length; _i3 < _l2; _i3++) {\n var vertex = shapeVertices[_i3];\n vertices.push(vertex.x, vertex.y, 0);\n normals.push(0, 0, 1);\n uvs.push(vertex.x, vertex.y);\n }\n for (var _i4 = 0, _l3 = faces.length; _i4 < _l3; _i4++) {\n var face = faces[_i4];\n var a = face[0] + indexOffset;\n var b = face[1] + indexOffset;\n var c = face[2] + indexOffset;\n indices.push(a, b, c);\n groupCount += 3;\n }\n }\n return _this;\n }\n (0, _createClass2.default)(ShapeGeometry, [{\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(ShapeGeometry.prototype), \"toJSON\", this).call(this);\n var shapes = this.parameters.shapes;\n return _toJSON(shapes, data);\n } }],\n [{\n key: \"fromJSON\",\n value: function fromJSON(data, shapes) {\n var geometryShapes = [];\n for (var j = 0, jl = data.shapes.length; j < jl; j++) {\n var shape = shapes[data.shapes[j]];\n geometryShapes.push(shape);\n }\n return new ShapeGeometry(geometryShapes, data.curveSegments);\n } }]);\n\n return ShapeGeometry;\n }(_BufferGeometry2.BufferGeometry);\n function _toJSON(shapes, data) {\n data.shapes = [];\n if (Array.isArray(shapes)) {\n for (var i = 0, l = shapes.length; i < l; i++) {\n var shape = shapes[i];\n data.shapes.push(shape.uuid);\n }\n } else {\n data.shapes.push(shapes.uuid);\n }\n return data;\n }return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/extras/core/Shape.js", "pandav:/src/extras/ShapeUtils.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/ShapeGeometry.js", "fileName": "/src/geometries/ShapeGeometry.js" }, "pandav:/src/geometries/SphereGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/SphereGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SphereGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var SphereGeometry = exports.SphereGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(SphereGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(SphereGeometry);\n function SphereGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var widthSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32;\n var heightSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 16;\n var phiStart = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var phiLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Math.PI * 2;\n var thetaStart = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var thetaLength = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : Math.PI;\n (0, _classCallCheck2.default)(this, SphereGeometry);\n _this = _super.call(this);\n _this.type = 'SphereGeometry';\n _this.parameters = {\n radius: radius,\n widthSegments: widthSegments,\n heightSegments: heightSegments,\n phiStart: phiStart,\n phiLength: phiLength,\n thetaStart: thetaStart,\n thetaLength: thetaLength };\n\n widthSegments = Math.max(3, Math.floor(widthSegments));\n heightSegments = Math.max(2, Math.floor(heightSegments));\n var thetaEnd = Math.min(thetaStart + thetaLength, Math.PI);\n var index = 0;\n var grid = [];\n var vertex = new _Vector.Vector3();\n var normal = new _Vector.Vector3();\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n for (var iy = 0; iy <= heightSegments; iy++) {\n var verticesRow = [];\n var v = iy / heightSegments;\n var uOffset = 0;\n if (iy == 0 && thetaStart == 0) {\n uOffset = 0.5 / widthSegments;\n } else if (iy == heightSegments && thetaEnd == Math.PI) {\n uOffset = -0.5 / widthSegments;\n }\n for (var ix = 0; ix <= widthSegments; ix++) {\n var u = ix / widthSegments;\n vertex.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n vertex.y = radius * Math.cos(thetaStart + v * thetaLength);\n vertex.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n vertices.push(vertex.x, vertex.y, vertex.z);\n normal.copy(vertex).normalize();\n normals.push(normal.x, normal.y, normal.z);\n uvs.push(u + uOffset, 1 - v);\n verticesRow.push(index++);\n }\n grid.push(verticesRow);\n }\n for (var _iy = 0; _iy < heightSegments; _iy++) {\n for (var _ix = 0; _ix < widthSegments; _ix++) {\n var a = grid[_iy][_ix + 1];\n var b = grid[_iy][_ix];\n var c = grid[_iy + 1][_ix];\n var d = grid[_iy + 1][_ix + 1];\n if (_iy !== 0 || thetaStart > 0) indices.push(a, b, d);\n if (_iy !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d);\n }\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n return _this;\n }\n (0, _createClass2.default)(SphereGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new SphereGeometry(data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength);\n } }]);\n\n return SphereGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/SphereGeometry.js", "fileName": "/src/geometries/SphereGeometry.js" }, "pandav:/src/geometries/LatheGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/LatheGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LatheGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var LatheGeometry = exports.LatheGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(LatheGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(LatheGeometry);\n function LatheGeometry() {\n var _this;\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [new _Vector2.Vector2(0, -0.5), new _Vector2.Vector2(0.5, 0), new _Vector2.Vector2(0, 0.5)];\n var segments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12;\n var phiStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var phiLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Math.PI * 2;\n (0, _classCallCheck2.default)(this, LatheGeometry);\n _this = _super.call(this);\n _this.type = 'LatheGeometry';\n _this.parameters = {\n points: points,\n segments: segments,\n phiStart: phiStart,\n phiLength: phiLength };\n\n segments = Math.floor(segments);\n phiLength = MathUtils.clamp(phiLength, 0, Math.PI * 2);\n var indices = [];\n var vertices = [];\n var uvs = [];\n var initNormals = [];\n var normals = [];\n var inverseSegments = 1.0 / segments;\n var vertex = new _Vector.Vector3();\n var uv = new _Vector2.Vector2();\n var normal = new _Vector.Vector3();\n var curNormal = new _Vector.Vector3();\n var prevNormal = new _Vector.Vector3();\n var dx = 0;\n var dy = 0;\n for (var j = 0; j <= points.length - 1; j++) {\n switch (j) {\n case 0:\n dx = points[j + 1].x - points[j].x;\n dy = points[j + 1].y - points[j].y;\n normal.x = dy * 1.0;\n normal.y = -dx;\n normal.z = dy * 0.0;\n prevNormal.copy(normal);\n normal.normalize();\n initNormals.push(normal.x, normal.y, normal.z);\n break;\n case points.length - 1:\n initNormals.push(prevNormal.x, prevNormal.y, prevNormal.z);\n break;\n default:\n dx = points[j + 1].x - points[j].x;\n dy = points[j + 1].y - points[j].y;\n normal.x = dy * 1.0;\n normal.y = -dx;\n normal.z = dy * 0.0;\n curNormal.copy(normal);\n normal.x += prevNormal.x;\n normal.y += prevNormal.y;\n normal.z += prevNormal.z;\n normal.normalize();\n initNormals.push(normal.x, normal.y, normal.z);\n prevNormal.copy(curNormal);}\n\n }\n for (var i = 0; i <= segments; i++) {\n var phi = phiStart + i * inverseSegments * phiLength;\n var sin = Math.sin(phi);\n var cos = Math.cos(phi);\n for (var _j = 0; _j <= points.length - 1; _j++) {\n vertex.x = points[_j].x * sin;\n vertex.y = points[_j].y;\n vertex.z = points[_j].x * cos;\n vertices.push(vertex.x, vertex.y, vertex.z);\n uv.x = i / segments;\n uv.y = _j / (points.length - 1);\n uvs.push(uv.x, uv.y);\n var x = initNormals[3 * _j + 0] * sin;\n var y = initNormals[3 * _j + 1];\n var z = initNormals[3 * _j + 0] * cos;\n normals.push(x, y, z);\n }\n }\n for (var _i = 0; _i < segments; _i++) {\n for (var _j2 = 0; _j2 < points.length - 1; _j2++) {\n var base = _j2 + _i * points.length;\n var a = base;\n var b = base + points.length;\n var c = base + points.length + 1;\n var d = base + 1;\n indices.push(a, b, d);\n indices.push(c, d, b);\n }\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n return _this;\n }\n (0, _createClass2.default)(LatheGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new LatheGeometry(data.points, data.segments, data.phiStart, data.phiLength);\n } }]);\n\n return LatheGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/LatheGeometry.js", "fileName": "/src/geometries/LatheGeometry.js" }, "pandav:/src/geometries/TorusGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/TorusGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TorusGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var TorusGeometry = exports.TorusGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(TorusGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(TorusGeometry);\n function TorusGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var tube = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.4;\n var radialSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;\n var tubularSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 6;\n var arc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Math.PI * 2;\n (0, _classCallCheck2.default)(this, TorusGeometry);\n _this = _super.call(this);\n _this.type = 'TorusGeometry';\n _this.parameters = {\n radius: radius,\n tube: tube,\n radialSegments: radialSegments,\n tubularSegments: tubularSegments,\n arc: arc };\n\n radialSegments = Math.floor(radialSegments);\n tubularSegments = Math.floor(tubularSegments);\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var center = new _Vector.Vector3();\n var vertex = new _Vector.Vector3();\n var normal = new _Vector.Vector3();\n for (var j = 0; j <= radialSegments; j++) {\n for (var i = 0; i <= tubularSegments; i++) {\n var u = i / tubularSegments * arc;\n var v = j / radialSegments * Math.PI * 2;\n vertex.x = (radius + tube * Math.cos(v)) * Math.cos(u);\n vertex.y = (radius + tube * Math.cos(v)) * Math.sin(u);\n vertex.z = tube * Math.sin(v);\n vertices.push(vertex.x, vertex.y, vertex.z);\n center.x = radius * Math.cos(u);\n center.y = radius * Math.sin(u);\n normal.subVectors(vertex, center).normalize();\n normals.push(normal.x, normal.y, normal.z);\n uvs.push(i / tubularSegments);\n uvs.push(j / radialSegments);\n }\n }\n for (var _j = 1; _j <= radialSegments; _j++) {\n for (var _i = 1; _i <= tubularSegments; _i++) {\n var a = (tubularSegments + 1) * _j + _i - 1;\n var b = (tubularSegments + 1) * (_j - 1) + _i - 1;\n var c = (tubularSegments + 1) * (_j - 1) + _i;\n var d = (tubularSegments + 1) * _j + _i;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n return _this;\n }\n (0, _createClass2.default)(TorusGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new TorusGeometry(data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc);\n } }]);\n\n return TorusGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 38, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/TorusGeometry.js", "fileName": "/src/geometries/TorusGeometry.js" }, "pandav:/src/geometries/TubeGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/TubeGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/extras/curves/Curves\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TubeGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var Curves = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/extras/curves/Curves'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var TubeGeometry = exports.TubeGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(TubeGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(TubeGeometry);\n function TubeGeometry() {\n var _this;\n var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Curves['QuadraticBezierCurve3'](new _Vector2.Vector3(-1, -1, 0), new _Vector2.Vector3(-1, 1, 0), new _Vector2.Vector3(1, 1, 0));\n var tubularSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 64;\n var radius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;\n var closed = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n (0, _classCallCheck2.default)(this, TubeGeometry);\n _this = _super.call(this);\n _this.type = 'TubeGeometry';\n _this.parameters = {\n path: path,\n tubularSegments: tubularSegments,\n radius: radius,\n radialSegments: radialSegments,\n closed: closed };\n\n var frames = path.computeFrenetFrames(tubularSegments, closed);\n _this.tangents = frames.tangents;\n _this.normals = frames.normals;\n _this.binormals = frames.binormals;\n var vertex = new _Vector2.Vector3();\n var normal = new _Vector2.Vector3();\n var uv = new _Vector.Vector2();\n var P = new _Vector2.Vector3();\n var vertices = [];\n var normals = [];\n var uvs = [];\n var indices = [];\n generateBufferData();\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n function generateBufferData() {\n for (var i = 0; i < tubularSegments; i++) {\n generateSegment(i);\n }\n generateSegment(closed === false ? tubularSegments : 0);\n generateUVs();\n generateIndices();\n }\n function generateSegment(i) {\n P = path.getPointAt(i / tubularSegments, P);\n var N = frames.normals[i];\n var B = frames.binormals[i];\n for (var j = 0; j <= radialSegments; j++) {\n var v = j / radialSegments * Math.PI * 2;\n var sin = Math.sin(v);\n var cos = -Math.cos(v);\n normal.x = cos * N.x + sin * B.x;\n normal.y = cos * N.y + sin * B.y;\n normal.z = cos * N.z + sin * B.z;\n normal.normalize();\n normals.push(normal.x, normal.y, normal.z);\n vertex.x = P.x + radius * normal.x;\n vertex.y = P.y + radius * normal.y;\n vertex.z = P.z + radius * normal.z;\n vertices.push(vertex.x, vertex.y, vertex.z);\n }\n }\n function generateIndices() {\n for (var j = 1; j <= tubularSegments; j++) {\n for (var i = 1; i <= radialSegments; i++) {\n var a = (radialSegments + 1) * (j - 1) + (i - 1);\n var b = (radialSegments + 1) * j + (i - 1);\n var c = (radialSegments + 1) * j + i;\n var d = (radialSegments + 1) * (j - 1) + i;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n }\n function generateUVs() {\n for (var i = 0; i <= tubularSegments; i++) {\n for (var j = 0; j <= radialSegments; j++) {\n uv.x = i / tubularSegments;\n uv.y = j / radialSegments;\n uvs.push(uv.x, uv.y);\n }\n }\n }\n return _this;\n }\n (0, _createClass2.default)(TubeGeometry, [{\n key: \"toJSON\",\n value: function toJSON() {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(TubeGeometry.prototype), \"toJSON\", this).call(this);\n data.path = this.parameters.path.toJSON();\n return data;\n } }],\n [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new TubeGeometry(new Curves[data.path.type]().fromJSON(data.path), data.tubularSegments, data.radius, data.radialSegments, data.closed);\n } }]);\n\n return TubeGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/extras/curves/Curves.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 40, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/TubeGeometry.js", "fileName": "/src/geometries/TubeGeometry.js" }, "pandav:/src/geometries/TorusKnotGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/TorusKnotGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TorusKnotGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var TorusKnotGeometry = exports.TorusKnotGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(TorusKnotGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(TorusKnotGeometry);\n function TorusKnotGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var tube = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.4;\n var tubularSegments = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 64;\n var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;\n var p = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2;\n var q = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 3;\n (0, _classCallCheck2.default)(this, TorusKnotGeometry);\n _this = _super.call(this);\n _this.type = 'TorusKnotGeometry';\n _this.parameters = {\n radius: radius,\n tube: tube,\n tubularSegments: tubularSegments,\n radialSegments: radialSegments,\n p: p,\n q: q };\n\n tubularSegments = Math.floor(tubularSegments);\n radialSegments = Math.floor(radialSegments);\n var indices = [];\n var vertices = [];\n var normals = [];\n var uvs = [];\n var vertex = new _Vector.Vector3();\n var normal = new _Vector.Vector3();\n var P1 = new _Vector.Vector3();\n var P2 = new _Vector.Vector3();\n var B = new _Vector.Vector3();\n var T = new _Vector.Vector3();\n var N = new _Vector.Vector3();\n for (var i = 0; i <= tubularSegments; ++i) {\n var u = i / tubularSegments * p * Math.PI * 2;\n calculatePositionOnCurve(u, p, q, radius, P1);\n calculatePositionOnCurve(u + 0.01, p, q, radius, P2);\n T.subVectors(P2, P1);\n N.addVectors(P2, P1);\n B.crossVectors(T, N);\n N.crossVectors(B, T);\n B.normalize();\n N.normalize();\n for (var j = 0; j <= radialSegments; ++j) {\n var v = j / radialSegments * Math.PI * 2;\n var cx = -tube * Math.cos(v);\n var cy = tube * Math.sin(v);\n vertex.x = P1.x + (cx * N.x + cy * B.x);\n vertex.y = P1.y + (cx * N.y + cy * B.y);\n vertex.z = P1.z + (cx * N.z + cy * B.z);\n vertices.push(vertex.x, vertex.y, vertex.z);\n normal.subVectors(vertex, P1).normalize();\n normals.push(normal.x, normal.y, normal.z);\n uvs.push(i / tubularSegments);\n uvs.push(j / radialSegments);\n }\n }\n for (var _j = 1; _j <= tubularSegments; _j++) {\n for (var _i = 1; _i <= radialSegments; _i++) {\n var a = (radialSegments + 1) * (_j - 1) + (_i - 1);\n var b = (radialSegments + 1) * _j + (_i - 1);\n var c = (radialSegments + 1) * _j + _i;\n var d = (radialSegments + 1) * (_j - 1) + _i;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n _this.setIndex(indices);\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n _this.setAttribute('normal', new _BufferAttribute.Float32BufferAttribute(normals, 3));\n _this.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute(uvs, 2));\n function calculatePositionOnCurve(u, p, q, radius, position) {\n var cu = Math.cos(u);\n var su = Math.sin(u);\n var quOverP = q / p * u;\n var cs = Math.cos(quOverP);\n position.x = radius * (2 + cs) * 0.5 * cu;\n position.y = radius * (2 + cs) * su * 0.5;\n position.z = radius * Math.sin(quOverP) * 0.5;\n }\n return _this;\n }\n (0, _createClass2.default)(TorusKnotGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new TorusKnotGeometry(data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q);\n } }]);\n\n return TorusKnotGeometry;\n }(_BufferGeometry2.BufferGeometry);return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 39, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/TorusKnotGeometry.js", "fileName": "/src/geometries/TorusKnotGeometry.js" }, "pandav:/src/geometries/WireframeGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/WireframeGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WireframeGeometry = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferGeometry2 = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var WireframeGeometry = exports.WireframeGeometry = function (_BufferGeometry) {\n (0, _inherits2.default)(WireframeGeometry, _BufferGeometry);\n var _super = (0, _createSuper2.default)(WireframeGeometry);\n function WireframeGeometry() {\n var _this;\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n (0, _classCallCheck2.default)(this, WireframeGeometry);\n _this = _super.call(this);\n _this.type = 'WireframeGeometry';\n _this.parameters = {\n geometry: geometry };\n\n if (geometry !== null) {\n var vertices = [];\n var edges = new Set();\n var start = new _Vector.Vector3();\n var end = new _Vector.Vector3();\n if (geometry.index !== null) {\n var position = geometry.attributes.position;\n var indices = geometry.index;\n var groups = geometry.groups;\n if (groups.length === 0) {\n groups = [{\n start: 0,\n count: indices.count,\n materialIndex: 0 }];\n\n }\n for (var o = 0, ol = groups.length; o < ol; ++o) {\n var group = groups[o];\n var groupStart = group.start;\n var groupCount = group.count;\n for (var i = groupStart, l = groupStart + groupCount; i < l; i += 3) {\n for (var j = 0; j < 3; j++) {\n var index1 = indices.getX(i + j);\n var index2 = indices.getX(i + (j + 1) % 3);\n start.fromBufferAttribute(position, index1);\n end.fromBufferAttribute(position, index2);\n if (isUniqueEdge(start, end, edges) === true) {\n vertices.push(start.x, start.y, start.z);\n vertices.push(end.x, end.y, end.z);\n }\n }\n }\n }\n } else {\n var _position = geometry.attributes.position;\n for (var _i = 0, _l = _position.count / 3; _i < _l; _i++) {\n for (var _j = 0; _j < 3; _j++) {\n var _index = 3 * _i + _j;\n var _index2 = 3 * _i + (_j + 1) % 3;\n start.fromBufferAttribute(_position, _index);\n end.fromBufferAttribute(_position, _index2);\n if (isUniqueEdge(start, end, edges) === true) {\n vertices.push(start.x, start.y, start.z);\n vertices.push(end.x, end.y, end.z);\n }\n }\n }\n }\n _this.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n }\n return _this;\n }\n return (0, _createClass2.default)(WireframeGeometry);\n }(_BufferGeometry2.BufferGeometry);\n function isUniqueEdge(start, end, edges) {\n var hash1 = \"\".concat(start.x, \",\").concat(start.y, \",\").concat(start.z, \"-\").concat(end.x, \",\").concat(end.y, \",\").concat(end.z);\n var hash2 = \"\".concat(end.x, \",\").concat(end.y, \",\").concat(end.z, \"-\").concat(start.x, \",\").concat(start.y, \",\").concat(start.z);\n if (edges.has(hash1) === true || edges.has(hash2) === true) {\n return false;\n } else {\n edges.add(hash1);\n edges.add(hash2);\n return true;\n }\n }return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 41, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/WireframeGeometry.js", "fileName": "/src/geometries/WireframeGeometry.js" }, "pandav:/src/geometries/TetrahedronGeometry.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/geometries/TetrahedronGeometry\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TetrahedronGeometry = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _PolyhedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry');\n var TetrahedronGeometry = exports.TetrahedronGeometry = function (_PolyhedronGeometry) {\n (0, _inherits2.default)(TetrahedronGeometry, _PolyhedronGeometry);\n var _super = (0, _createSuper2.default)(TetrahedronGeometry);\n function TetrahedronGeometry() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n (0, _classCallCheck2.default)(this, TetrahedronGeometry);\n var vertices = [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1];\n var indices = [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1];\n _this = _super.call(this, vertices, indices, radius, detail);\n _this.type = 'TetrahedronGeometry';\n _this.parameters = {\n radius: radius,\n detail: detail };\n\n return _this;\n }\n (0, _createClass2.default)(TetrahedronGeometry, null, [{\n key: \"fromJSON\",\n value: function fromJSON(data) {\n return new TetrahedronGeometry(data.radius, data.detail);\n } }]);\n\n return TetrahedronGeometry;\n }(_PolyhedronGeometry2.PolyhedronGeometry);return module.exports;});", "requires": [ "pandav:/src/geometries/PolyhedronGeometry.js" ], "buildLevel": 37, "outputDir": "/com/three/0.145.0/src/geometries", "outputPath": "/com/three/0.145.0/src/geometries/TetrahedronGeometry.js", "fileName": "/src/geometries/TetrahedronGeometry.js" }, "pandav:/src/helpers/Box3Helper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/Box3Helper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Box3Helper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineSegments2 = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var Box3Helper = exports.Box3Helper = function (_LineSegments) {\n (0, _inherits2.default)(Box3Helper, _LineSegments);\n var _super = (0, _createSuper2.default)(Box3Helper);\n function Box3Helper(box) {\n var _this;\n var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0xffff00;\n (0, _classCallCheck2.default)(this, Box3Helper);\n var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n var positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1];\n var geometry = new _BufferGeometry.BufferGeometry();\n geometry.setIndex(new _BufferAttribute.BufferAttribute(indices, 1));\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(positions, 3));\n _this = _super.call(this, geometry, new _LineBasicMaterial.LineBasicMaterial({\n color: color,\n toneMapped: false }));\n\n _this.box = box;\n _this.type = 'Box3Helper';\n _this.geometry.computeBoundingSphere();\n return _this;\n }\n (0, _createClass2.default)(Box3Helper, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n var box = this.box;\n if (box.isEmpty()) return;\n box.getCenter(this.position);\n box.getSize(this.scale);\n this.scale.multiplyScalar(0.5);\n (0, _get2.default)((0, _getPrototypeOf2.default)(Box3Helper.prototype), \"updateMatrixWorld\", this).call(this, force);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } }]);\n\n return Box3Helper;\n }(_LineSegments2.LineSegments);return module.exports;});", "requires": [ "pandav:/src/objects/LineSegments.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js" ], "buildLevel": 63, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/Box3Helper.js", "fileName": "/src/helpers/Box3Helper.js" }, "pandav:/src/helpers/ArrowHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/ArrowHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/geometries/CylinderGeometry\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/objects/Line\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ArrowHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _CylinderGeometry = require('pandav:/com/three/0.145.0/src/geometries/CylinderGeometry');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _Line = require('pandav:/com/three/0.145.0/src/objects/Line');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _axis = new _Vector.Vector3();\n var _lineGeometry, _coneGeometry;\n var ArrowHelper = exports.ArrowHelper = function (_Object3D) {\n (0, _inherits2.default)(ArrowHelper, _Object3D);\n var _super = (0, _createSuper2.default)(ArrowHelper);\n function ArrowHelper() {\n var _this;\n var dir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3(0, 0, 1);\n var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3(0, 0, 0);\n var length = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var color = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0xffff00;\n var headLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : length * 0.2;\n var headWidth = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : headLength * 0.2;\n (0, _classCallCheck2.default)(this, ArrowHelper);\n _this = _super.call(this);\n _this.type = 'ArrowHelper';\n if (_lineGeometry === undefined) {\n _lineGeometry = new _BufferGeometry.BufferGeometry();\n _lineGeometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3));\n _coneGeometry = new _CylinderGeometry.CylinderGeometry(0, 0.5, 1, 5, 1);\n _coneGeometry.translate(0, -0.5, 0);\n }\n _this.position.copy(origin);\n _this.line = new _Line.Line(_lineGeometry, new _LineBasicMaterial.LineBasicMaterial({\n color: color,\n toneMapped: false }));\n\n _this.line.matrixAutoUpdate = false;\n _this.add(_this.line);\n _this.cone = new _Mesh.Mesh(_coneGeometry, new _MeshBasicMaterial.MeshBasicMaterial({\n color: color,\n toneMapped: false }));\n\n _this.cone.matrixAutoUpdate = false;\n _this.add(_this.cone);\n _this.setDirection(dir);\n _this.setLength(length, headLength, headWidth);\n return _this;\n }\n (0, _createClass2.default)(ArrowHelper, [{\n key: \"setDirection\",\n value: function setDirection(dir) {\n if (dir.y > 0.99999) {\n this.quaternion.set(0, 0, 0, 1);\n } else if (dir.y < -0.99999) {\n this.quaternion.set(1, 0, 0, 0);\n } else {\n _axis.set(dir.z, 0, -dir.x).normalize();\n var radians = Math.acos(dir.y);\n this.quaternion.setFromAxisAngle(_axis, radians);\n }\n } },\n {\n key: \"setLength\",\n value: function setLength(length) {\n var headLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : length * 0.2;\n var headWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : headLength * 0.2;\n this.line.scale.set(1, Math.max(0.0001, length - headLength), 1);\n this.line.updateMatrix();\n this.cone.scale.set(headWidth, headLength, headWidth);\n this.cone.position.y = length;\n this.cone.updateMatrix();\n } },\n {\n key: \"setColor\",\n value: function setColor(color) {\n this.line.material.color.set(color);\n this.cone.material.color.set(color);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(ArrowHelper.prototype), \"copy\", this).call(this, source, false);\n this.line.copy(source.line);\n this.cone.copy(source.cone);\n return this;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.line.geometry.dispose();\n this.line.material.dispose();\n this.cone.geometry.dispose();\n this.cone.material.dispose();\n } }]);\n\n return ArrowHelper;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/Object3D.js", "pandav:/src/geometries/CylinderGeometry.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/objects/Mesh.js", "pandav:/src/objects/Line.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 65, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/ArrowHelper.js", "fileName": "/src/helpers/ArrowHelper.js" }, "pandav:/src/helpers/CameraHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/CameraHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/cameras/Camera\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CameraHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Camera = require('pandav:/com/three/0.145.0/src/cameras/Camera');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _LineSegments2 = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _vector = new _Vector.Vector3();\n var _camera = new _Camera.Camera();\n var CameraHelper = exports.CameraHelper = function (_LineSegments) {\n (0, _inherits2.default)(CameraHelper, _LineSegments);\n var _super = (0, _createSuper2.default)(CameraHelper);\n function CameraHelper(camera) {\n var _this;\n (0, _classCallCheck2.default)(this, CameraHelper);\n var geometry = new _BufferGeometry.BufferGeometry();\n var material = new _LineBasicMaterial.LineBasicMaterial({\n color: 0xffffff,\n vertexColors: true,\n toneMapped: false });\n\n var vertices = [];\n var colors = [];\n var pointMap = {};\n addLine('n1', 'n2');\n addLine('n2', 'n4');\n addLine('n4', 'n3');\n addLine('n3', 'n1');\n addLine('f1', 'f2');\n addLine('f2', 'f4');\n addLine('f4', 'f3');\n addLine('f3', 'f1');\n addLine('n1', 'f1');\n addLine('n2', 'f2');\n addLine('n3', 'f3');\n addLine('n4', 'f4');\n addLine('p', 'n1');\n addLine('p', 'n2');\n addLine('p', 'n3');\n addLine('p', 'n4');\n addLine('u1', 'u2');\n addLine('u2', 'u3');\n addLine('u3', 'u1');\n addLine('c', 't');\n addLine('p', 'c');\n addLine('cn1', 'cn2');\n addLine('cn3', 'cn4');\n addLine('cf1', 'cf2');\n addLine('cf3', 'cf4');\n function addLine(a, b) {\n addPoint(a);\n addPoint(b);\n }\n function addPoint(id) {\n vertices.push(0, 0, 0);\n colors.push(0, 0, 0);\n if (pointMap[id] === undefined) {\n pointMap[id] = [];\n }\n pointMap[id].push(vertices.length / 3 - 1);\n }\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new _BufferAttribute.Float32BufferAttribute(colors, 3));\n _this = _super.call(this, geometry, material);\n _this.type = 'CameraHelper';\n _this.camera = camera;\n if (_this.camera.updateProjectionMatrix) _this.camera.updateProjectionMatrix();\n _this.matrix = camera.matrixWorld;\n _this.matrixAutoUpdate = false;\n _this.pointMap = pointMap;\n _this.update();\n var colorFrustum = new _Color.Color(0xffaa00);\n var colorCone = new _Color.Color(0xff0000);\n var colorUp = new _Color.Color(0x00aaff);\n var colorTarget = new _Color.Color(0xffffff);\n var colorCross = new _Color.Color(0x333333);\n _this.setColors(colorFrustum, colorCone, colorUp, colorTarget, colorCross);\n return _this;\n }\n (0, _createClass2.default)(CameraHelper, [{\n key: \"setColors\",\n value: function setColors(frustum, cone, up, target, cross) {\n var geometry = this.geometry;\n var colorAttribute = geometry.getAttribute('color');\n colorAttribute.setXYZ(0, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(1, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(2, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(3, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(4, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(5, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(6, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(7, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(8, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(9, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(10, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(11, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(12, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(13, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(14, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(15, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(16, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(17, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(18, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(19, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(20, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(21, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(22, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(23, frustum.r, frustum.g, frustum.b);\n colorAttribute.setXYZ(24, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(25, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(26, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(27, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(28, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(29, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(30, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(31, cone.r, cone.g, cone.b);\n colorAttribute.setXYZ(32, up.r, up.g, up.b);\n colorAttribute.setXYZ(33, up.r, up.g, up.b);\n colorAttribute.setXYZ(34, up.r, up.g, up.b);\n colorAttribute.setXYZ(35, up.r, up.g, up.b);\n colorAttribute.setXYZ(36, up.r, up.g, up.b);\n colorAttribute.setXYZ(37, up.r, up.g, up.b);\n colorAttribute.setXYZ(38, target.r, target.g, target.b);\n colorAttribute.setXYZ(39, target.r, target.g, target.b);\n colorAttribute.setXYZ(40, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(41, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(42, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(43, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(44, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(45, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(46, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(47, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(48, cross.r, cross.g, cross.b);\n colorAttribute.setXYZ(49, cross.r, cross.g, cross.b);\n colorAttribute.needsUpdate = true;\n } },\n {\n key: \"update\",\n value: function update() {\n var geometry = this.geometry;\n var pointMap = this.pointMap;\n var w = 1,\n h = 1;\n _camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);\n setPoint('c', pointMap, geometry, _camera, 0, 0, -1);\n setPoint('t', pointMap, geometry, _camera, 0, 0, 1);\n setPoint('n1', pointMap, geometry, _camera, -w, -h, -1);\n setPoint('n2', pointMap, geometry, _camera, w, -h, -1);\n setPoint('n3', pointMap, geometry, _camera, -w, h, -1);\n setPoint('n4', pointMap, geometry, _camera, w, h, -1);\n setPoint('f1', pointMap, geometry, _camera, -w, -h, 1);\n setPoint('f2', pointMap, geometry, _camera, w, -h, 1);\n setPoint('f3', pointMap, geometry, _camera, -w, h, 1);\n setPoint('f4', pointMap, geometry, _camera, w, h, 1);\n setPoint('u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, -1);\n setPoint('u2', pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1);\n setPoint('u3', pointMap, geometry, _camera, 0, h * 2, -1);\n setPoint('cf1', pointMap, geometry, _camera, -w, 0, 1);\n setPoint('cf2', pointMap, geometry, _camera, w, 0, 1);\n setPoint('cf3', pointMap, geometry, _camera, 0, -h, 1);\n setPoint('cf4', pointMap, geometry, _camera, 0, h, 1);\n setPoint('cn1', pointMap, geometry, _camera, -w, 0, -1);\n setPoint('cn2', pointMap, geometry, _camera, w, 0, -1);\n setPoint('cn3', pointMap, geometry, _camera, 0, -h, -1);\n setPoint('cn4', pointMap, geometry, _camera, 0, h, -1);\n geometry.getAttribute('position').needsUpdate = true;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } }]);\n\n return CameraHelper;\n }(_LineSegments2.LineSegments);\n function setPoint(point, pointMap, geometry, camera, x, y, z) {\n _vector.set(x, y, z).unproject(camera);\n var points = pointMap[point];\n if (points !== undefined) {\n var position = geometry.getAttribute('position');\n for (var i = 0, l = points.length; i < l; i++) {\n position.setXYZ(points[i], _vector.x, _vector.y, _vector.z);\n }\n }\n }return module.exports;});", "requires": [ "pandav:/src/cameras/Camera.js", "pandav:/src/math/Vector3.js", "pandav:/src/objects/LineSegments.js", "pandav:/src/math/Color.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 61, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/CameraHelper.js", "fileName": "/src/helpers/CameraHelper.js" }, "pandav:/src/helpers/BoxHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/BoxHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Box3\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BoxHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Box = require('pandav:/com/three/0.145.0/src/math/Box3');\n var _LineSegments2 = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _box = new _Box.Box3();\n var BoxHelper = exports.BoxHelper = function (_LineSegments) {\n (0, _inherits2.default)(BoxHelper, _LineSegments);\n var _super = (0, _createSuper2.default)(BoxHelper);\n function BoxHelper(object) {\n var _this;\n var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0xffff00;\n (0, _classCallCheck2.default)(this, BoxHelper);\n var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n var positions = new Float32Array(8 * 3);\n var geometry = new _BufferGeometry.BufferGeometry();\n geometry.setIndex(new _BufferAttribute.BufferAttribute(indices, 1));\n geometry.setAttribute('position', new _BufferAttribute.BufferAttribute(positions, 3));\n _this = _super.call(this, geometry, new _LineBasicMaterial.LineBasicMaterial({\n color: color,\n toneMapped: false }));\n\n _this.object = object;\n _this.type = 'BoxHelper';\n _this.matrixAutoUpdate = false;\n _this.update();\n return _this;\n }\n (0, _createClass2.default)(BoxHelper, [{\n key: \"update\",\n value: function update(object) {\n if (object !== undefined) {\n console.warn('THREE.BoxHelper: .update() has no longer arguments.');\n }\n if (this.object !== undefined) {\n _box.setFromObject(this.object);\n }\n if (_box.isEmpty()) return;\n var min = _box.min;\n var max = _box.max;\n var position = this.geometry.attributes.position;\n var array = position.array;\n array[0] = max.x;\n array[1] = max.y;\n array[2] = max.z;\n array[3] = min.x;\n array[4] = max.y;\n array[5] = max.z;\n array[6] = min.x;\n array[7] = min.y;\n array[8] = max.z;\n array[9] = max.x;\n array[10] = min.y;\n array[11] = max.z;\n array[12] = max.x;\n array[13] = max.y;\n array[14] = min.z;\n array[15] = min.x;\n array[16] = max.y;\n array[17] = min.z;\n array[18] = min.x;\n array[19] = min.y;\n array[20] = min.z;\n array[21] = max.x;\n array[22] = min.y;\n array[23] = min.z;\n position.needsUpdate = true;\n this.geometry.computeBoundingSphere();\n } },\n {\n key: \"setFromObject\",\n value: function setFromObject(object) {\n this.object = object;\n this.update();\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(BoxHelper.prototype), \"copy\", this).call(this, source, recursive);\n this.object = source.object;\n return this;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } }]);\n\n return BoxHelper;\n }(_LineSegments2.LineSegments);return module.exports;});", "requires": [ "pandav:/src/math/Box3.js", "pandav:/src/objects/LineSegments.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js" ], "buildLevel": 62, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/BoxHelper.js", "fileName": "/src/helpers/BoxHelper.js" }, "pandav:/src/helpers/GridHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/GridHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.GridHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineSegments2 = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var GridHelper = exports.GridHelper = function (_LineSegments) {\n (0, _inherits2.default)(GridHelper, _LineSegments);\n var _super = (0, _createSuper2.default)(GridHelper);\n function GridHelper() {\n var _this;\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var divisions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;\n var color1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0x444444;\n var color2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0x888888;\n (0, _classCallCheck2.default)(this, GridHelper);\n color1 = new _Color.Color(color1);\n color2 = new _Color.Color(color2);\n var center = divisions / 2;\n var step = size / divisions;\n var halfSize = size / 2;\n var vertices = [],\n colors = [];\n for (var i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) {\n vertices.push(-halfSize, 0, k, halfSize, 0, k);\n vertices.push(k, 0, -halfSize, k, 0, halfSize);\n var color = i === center ? color1 : color2;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n color.toArray(colors, j);\n j += 3;\n }\n var geometry = new _BufferGeometry.BufferGeometry();\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new _BufferAttribute.Float32BufferAttribute(colors, 3));\n var material = new _LineBasicMaterial.LineBasicMaterial({\n vertexColors: true,\n toneMapped: false });\n\n _this = _super.call(this, geometry, material);\n _this.type = 'GridHelper';\n return _this;\n }\n (0, _createClass2.default)(GridHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } }]);\n\n return GridHelper;\n }(_LineSegments2.LineSegments);return module.exports;});", "requires": [ "pandav:/src/objects/LineSegments.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/math/Color.js" ], "buildLevel": 58, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/GridHelper.js", "fileName": "/src/helpers/GridHelper.js" }, "pandav:/src/helpers/DirectionalLightHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/DirectionalLightHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/objects/Line\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DirectionalLightHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Line = require('pandav:/com/three/0.145.0/src/objects/Line');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _v1 = new _Vector.Vector3();\n var _v2 = new _Vector.Vector3();\n var _v3 = new _Vector.Vector3();\n var DirectionalLightHelper = exports.DirectionalLightHelper = function (_Object3D) {\n (0, _inherits2.default)(DirectionalLightHelper, _Object3D);\n var _super = (0, _createSuper2.default)(DirectionalLightHelper);\n function DirectionalLightHelper(light, size, color) {\n var _this;\n (0, _classCallCheck2.default)(this, DirectionalLightHelper);\n _this = _super.call(this);\n _this.light = light;\n _this.light.updateMatrixWorld();\n _this.matrix = light.matrixWorld;\n _this.matrixAutoUpdate = false;\n _this.color = color;\n if (size === undefined) size = 1;\n var geometry = new _BufferGeometry.BufferGeometry();\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute([-size, size, 0, size, size, 0, size, -size, 0, -size, -size, 0, -size, size, 0], 3));\n var material = new _LineBasicMaterial.LineBasicMaterial({\n fog: false,\n toneMapped: false });\n\n _this.lightPlane = new _Line.Line(geometry, material);\n _this.add(_this.lightPlane);\n geometry = new _BufferGeometry.BufferGeometry();\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3));\n _this.targetLine = new _Line.Line(geometry, material);\n _this.add(_this.targetLine);\n _this.update();\n return _this;\n }\n (0, _createClass2.default)(DirectionalLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.lightPlane.geometry.dispose();\n this.lightPlane.material.dispose();\n this.targetLine.geometry.dispose();\n this.targetLine.material.dispose();\n } },\n {\n key: \"update\",\n value: function update() {\n _v1.setFromMatrixPosition(this.light.matrixWorld);\n _v2.setFromMatrixPosition(this.light.target.matrixWorld);\n _v3.subVectors(_v2, _v1);\n this.lightPlane.lookAt(_v2);\n if (this.color !== undefined) {\n this.lightPlane.material.color.set(this.color);\n this.targetLine.material.color.set(this.color);\n } else {\n this.lightPlane.material.color.copy(this.light.color);\n this.targetLine.material.color.copy(this.light.color);\n }\n this.targetLine.lookAt(_v2);\n this.targetLine.scale.z = _v3.length();\n } }]);\n\n return DirectionalLightHelper;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/core/Object3D.js", "pandav:/src/objects/Line.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/materials/LineBasicMaterial.js" ], "buildLevel": 60, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/DirectionalLightHelper.js", "fileName": "/src/helpers/DirectionalLightHelper.js" }, "pandav:/src/helpers/HemisphereLightHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/HemisphereLightHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/geometries/OctahedronGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.HemisphereLightHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _OctahedronGeometry = require('pandav:/com/three/0.145.0/src/geometries/OctahedronGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _vector = new _Vector.Vector3();\n var _color1 = new _Color.Color();\n var _color2 = new _Color.Color();\n var HemisphereLightHelper = exports.HemisphereLightHelper = function (_Object3D) {\n (0, _inherits2.default)(HemisphereLightHelper, _Object3D);\n var _super = (0, _createSuper2.default)(HemisphereLightHelper);\n function HemisphereLightHelper(light, size, color) {\n var _this;\n (0, _classCallCheck2.default)(this, HemisphereLightHelper);\n _this = _super.call(this);\n _this.light = light;\n _this.light.updateMatrixWorld();\n _this.matrix = light.matrixWorld;\n _this.matrixAutoUpdate = false;\n _this.color = color;\n var geometry = new _OctahedronGeometry.OctahedronGeometry(size);\n geometry.rotateY(Math.PI * 0.5);\n _this.material = new _MeshBasicMaterial.MeshBasicMaterial({\n wireframe: true,\n fog: false,\n toneMapped: false });\n\n if (_this.color === undefined) _this.material.vertexColors = true;\n var position = geometry.getAttribute('position');\n var colors = new Float32Array(position.count * 3);\n geometry.setAttribute('color', new _BufferAttribute.BufferAttribute(colors, 3));\n _this.add(new _Mesh.Mesh(geometry, _this.material));\n _this.update();\n return _this;\n }\n (0, _createClass2.default)(HemisphereLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.children[0].geometry.dispose();\n this.children[0].material.dispose();\n } },\n {\n key: \"update\",\n value: function update() {\n var mesh = this.children[0];\n if (this.color !== undefined) {\n this.material.color.set(this.color);\n } else {\n var colors = mesh.geometry.getAttribute('color');\n _color1.copy(this.light.color);\n _color2.copy(this.light.groundColor);\n for (var i = 0, l = colors.count; i < l; i++) {\n var color = i < l / 2 ? _color1 : _color2;\n colors.setXYZ(i, color.r, color.g, color.b);\n }\n colors.needsUpdate = true;\n }\n mesh.lookAt(_vector.setFromMatrixPosition(this.light.matrixWorld).negate());\n } }]);\n\n return HemisphereLightHelper;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/Color.js", "pandav:/src/core/Object3D.js", "pandav:/src/objects/Mesh.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/geometries/OctahedronGeometry.js", "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 57, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/HemisphereLightHelper.js", "fileName": "/src/helpers/HemisphereLightHelper.js" }, "pandav:/src/helpers/PlaneHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/PlaneHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/Line\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PlaneHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Line2 = require('pandav:/com/three/0.145.0/src/objects/Line');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var PlaneHelper = exports.PlaneHelper = function (_Line) {\n (0, _inherits2.default)(PlaneHelper, _Line);\n var _super = (0, _createSuper2.default)(PlaneHelper);\n function PlaneHelper(plane) {\n var _this;\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var hex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0xffff00;\n (0, _classCallCheck2.default)(this, PlaneHelper);\n var color = hex;\n var positions = [1, -1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0];\n var geometry = new _BufferGeometry.BufferGeometry();\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(positions, 3));\n geometry.computeBoundingSphere();\n _this = _super.call(this, geometry, new _LineBasicMaterial.LineBasicMaterial({\n color: color,\n toneMapped: false }));\n\n _this.type = 'PlaneHelper';\n _this.plane = plane;\n _this.size = size;\n var positions2 = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0];\n var geometry2 = new _BufferGeometry.BufferGeometry();\n geometry2.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(positions2, 3));\n geometry2.computeBoundingSphere();\n _this.add(new _Mesh.Mesh(geometry2, new _MeshBasicMaterial.MeshBasicMaterial({\n color: color,\n opacity: 0.2,\n transparent: true,\n depthWrite: false,\n toneMapped: false })));\n\n return _this;\n }\n (0, _createClass2.default)(PlaneHelper, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n this.position.set(0, 0, 0);\n this.scale.set(0.5 * this.size, 0.5 * this.size, 1);\n this.lookAt(this.plane.normal);\n this.translateZ(-this.plane.constant);\n (0, _get2.default)((0, _getPrototypeOf2.default)(PlaneHelper.prototype), \"updateMatrixWorld\", this).call(this, force);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n this.children[0].geometry.dispose();\n this.children[0].material.dispose();\n } }]);\n\n return PlaneHelper;\n }(_Line2.Line);return module.exports;});", "requires": [ "pandav:/src/objects/Line.js", "pandav:/src/objects/Mesh.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js" ], "buildLevel": 64, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/PlaneHelper.js", "fileName": "/src/helpers/PlaneHelper.js" }, "pandav:/src/helpers/PointLightHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/PointLightHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/geometries/SphereGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PointLightHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Mesh2 = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _SphereGeometry = require('pandav:/com/three/0.145.0/src/geometries/SphereGeometry');\n var PointLightHelper = exports.PointLightHelper = function (_Mesh) {\n (0, _inherits2.default)(PointLightHelper, _Mesh);\n var _super = (0, _createSuper2.default)(PointLightHelper);\n function PointLightHelper(light, sphereSize, color) {\n var _this;\n (0, _classCallCheck2.default)(this, PointLightHelper);\n var geometry = new _SphereGeometry.SphereGeometry(sphereSize, 4, 2);\n var material = new _MeshBasicMaterial.MeshBasicMaterial({\n wireframe: true,\n fog: false,\n toneMapped: false });\n\n _this = _super.call(this, geometry, material);\n _this.light = light;\n _this.light.updateMatrixWorld();\n _this.color = color;\n _this.type = 'PointLightHelper';\n _this.matrix = _this.light.matrixWorld;\n _this.matrixAutoUpdate = false;\n _this.update();\n return _this;\n }\n (0, _createClass2.default)(PointLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } },\n {\n key: \"update\",\n value: function update() {\n if (this.color !== undefined) {\n this.material.color.set(this.color);\n } else {\n this.material.color.copy(this.light.color);\n }\n } }]);\n\n return PointLightHelper;\n }(_Mesh2.Mesh);return module.exports;});", "requires": [ "pandav:/src/objects/Mesh.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/geometries/SphereGeometry.js" ], "buildLevel": 56, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/PointLightHelper.js", "fileName": "/src/helpers/PointLightHelper.js" }, "pandav:/src/helpers/AxesHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/AxesHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AxesHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineSegments2 = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var AxesHelper = exports.AxesHelper = function (_LineSegments) {\n (0, _inherits2.default)(AxesHelper, _LineSegments);\n var _super = (0, _createSuper2.default)(AxesHelper);\n function AxesHelper() {\n var _this;\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n (0, _classCallCheck2.default)(this, AxesHelper);\n var vertices = [0, 0, 0, size, 0, 0, 0, 0, 0, 0, size, 0, 0, 0, 0, 0, 0, size];\n var colors = [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1];\n var geometry = new _BufferGeometry.BufferGeometry();\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new _BufferAttribute.Float32BufferAttribute(colors, 3));\n var material = new _LineBasicMaterial.LineBasicMaterial({\n vertexColors: true,\n toneMapped: false });\n\n _this = _super.call(this, geometry, material);\n _this.type = 'AxesHelper';\n return _this;\n }\n (0, _createClass2.default)(AxesHelper, [{\n key: \"setColors\",\n value: function setColors(xAxisColor, yAxisColor, zAxisColor) {\n var color = new _Color.Color();\n var array = this.geometry.attributes.color.array;\n color.set(xAxisColor);\n color.toArray(array, 0);\n color.toArray(array, 3);\n color.set(yAxisColor);\n color.toArray(array, 6);\n color.toArray(array, 9);\n color.set(zAxisColor);\n color.toArray(array, 12);\n color.toArray(array, 15);\n this.geometry.attributes.color.needsUpdate = true;\n return this;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } }]);\n\n return AxesHelper;\n }(_LineSegments2.LineSegments);return module.exports;});", "requires": [ "pandav:/src/objects/LineSegments.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/math/Color.js" ], "buildLevel": 66, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/AxesHelper.js", "fileName": "/src/helpers/AxesHelper.js" }, "pandav:/src/helpers/PolarGridHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/PolarGridHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PolarGridHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineSegments2 = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var PolarGridHelper = exports.PolarGridHelper = function (_LineSegments) {\n (0, _inherits2.default)(PolarGridHelper, _LineSegments);\n var _super = (0, _createSuper2.default)(PolarGridHelper);\n function PolarGridHelper() {\n var _this;\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var sectors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n var rings = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;\n var divisions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 64;\n var color1 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0x444444;\n var color2 = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0x888888;\n (0, _classCallCheck2.default)(this, PolarGridHelper);\n color1 = new _Color.Color(color1);\n color2 = new _Color.Color(color2);\n var vertices = [];\n var colors = [];\n if (sectors > 1) {\n for (var i = 0; i < sectors; i++) {\n var v = i / sectors * (Math.PI * 2);\n var x = Math.sin(v) * radius;\n var z = Math.cos(v) * radius;\n vertices.push(0, 0, 0);\n vertices.push(x, 0, z);\n var color = i & 1 ? color1 : color2;\n colors.push(color.r, color.g, color.b);\n colors.push(color.r, color.g, color.b);\n }\n }\n for (var _i = 0; _i < rings; _i++) {\n var _color = _i & 1 ? color1 : color2;\n var r = radius - radius / rings * _i;\n for (var j = 0; j < divisions; j++) {\n var _v = j / divisions * (Math.PI * 2);\n var _x = Math.sin(_v) * r;\n var _z = Math.cos(_v) * r;\n vertices.push(_x, 0, _z);\n colors.push(_color.r, _color.g, _color.b);\n _v = (j + 1) / divisions * (Math.PI * 2);\n _x = Math.sin(_v) * r;\n _z = Math.cos(_v) * r;\n vertices.push(_x, 0, _z);\n colors.push(_color.r, _color.g, _color.b);\n }\n }\n var geometry = new _BufferGeometry.BufferGeometry();\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new _BufferAttribute.Float32BufferAttribute(colors, 3));\n var material = new _LineBasicMaterial.LineBasicMaterial({\n vertexColors: true,\n toneMapped: false });\n\n _this = _super.call(this, geometry, material);\n _this.type = 'PolarGridHelper';\n return _this;\n }\n (0, _createClass2.default)(PolarGridHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } }]);\n\n return PolarGridHelper;\n }(_LineSegments2.LineSegments);return module.exports;});", "requires": [ "pandav:/src/objects/LineSegments.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/math/Color.js" ], "buildLevel": 59, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/PolarGridHelper.js", "fileName": "/src/helpers/PolarGridHelper.js" }, "pandav:/src/helpers/SkeletonHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/SkeletonHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SkeletonHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineSegments2 = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _vector = new _Vector.Vector3();\n var _boneMatrix = new _Matrix.Matrix4();\n var _matrixWorldInv = new _Matrix.Matrix4();\n var SkeletonHelper = exports.SkeletonHelper = function (_LineSegments) {\n (0, _inherits2.default)(SkeletonHelper, _LineSegments);\n var _super = (0, _createSuper2.default)(SkeletonHelper);\n function SkeletonHelper(object) {\n var _this;\n (0, _classCallCheck2.default)(this, SkeletonHelper);\n var bones = getBoneList(object);\n var geometry = new _BufferGeometry.BufferGeometry();\n var vertices = [];\n var colors = [];\n var color1 = new _Color.Color(0, 0, 1);\n var color2 = new _Color.Color(0, 1, 0);\n for (var i = 0; i < bones.length; i++) {\n var bone = bones[i];\n if (bone.parent && bone.parent.isBone) {\n vertices.push(0, 0, 0);\n vertices.push(0, 0, 0);\n colors.push(color1.r, color1.g, color1.b);\n colors.push(color2.r, color2.g, color2.b);\n }\n }\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(vertices, 3));\n geometry.setAttribute('color', new _BufferAttribute.Float32BufferAttribute(colors, 3));\n var material = new _LineBasicMaterial.LineBasicMaterial({\n vertexColors: true,\n depthTest: false,\n depthWrite: false,\n toneMapped: false,\n transparent: true });\n\n _this = _super.call(this, geometry, material);\n _this.isSkeletonHelper = true;\n _this.type = 'SkeletonHelper';\n _this.root = object;\n _this.bones = bones;\n _this.matrix = object.matrixWorld;\n _this.matrixAutoUpdate = false;\n return _this;\n }\n (0, _createClass2.default)(SkeletonHelper, [{\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n var bones = this.bones;\n var geometry = this.geometry;\n var position = geometry.getAttribute('position');\n _matrixWorldInv.copy(this.root.matrixWorld).invert();\n for (var i = 0, j = 0; i < bones.length; i++) {\n var bone = bones[i];\n if (bone.parent && bone.parent.isBone) {\n _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld);\n _vector.setFromMatrixPosition(_boneMatrix);\n position.setXYZ(j, _vector.x, _vector.y, _vector.z);\n _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld);\n _vector.setFromMatrixPosition(_boneMatrix);\n position.setXYZ(j + 1, _vector.x, _vector.y, _vector.z);\n j += 2;\n }\n }\n geometry.getAttribute('position').needsUpdate = true;\n (0, _get2.default)((0, _getPrototypeOf2.default)(SkeletonHelper.prototype), \"updateMatrixWorld\", this).call(this, force);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.geometry.dispose();\n this.material.dispose();\n } }]);\n\n return SkeletonHelper;\n }(_LineSegments2.LineSegments);\n function getBoneList(object) {\n var boneList = [];\n if (object.isBone === true) {\n boneList.push(object);\n }\n for (var i = 0; i < object.children.length; i++) {\n boneList.push.apply(boneList, getBoneList(object.children[i]));\n }\n return boneList;\n }return module.exports;});", "requires": [ "pandav:/src/objects/LineSegments.js", "pandav:/src/math/Matrix4.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/math/Color.js", "pandav:/src/math/Vector3.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 55, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/SkeletonHelper.js", "fileName": "/src/helpers/SkeletonHelper.js" }, "pandav:/src/lights/AmbientLightProbe.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/AmbientLightProbe\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/lights/LightProbe\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AmbientLightProbe = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _LightProbe2 = require('pandav:/com/three/0.145.0/src/lights/LightProbe');\n var AmbientLightProbe = exports.AmbientLightProbe = function (_LightProbe) {\n (0, _inherits2.default)(AmbientLightProbe, _LightProbe);\n var _super = (0, _createSuper2.default)(AmbientLightProbe);\n function AmbientLightProbe(color) {\n var _this;\n var intensity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n (0, _classCallCheck2.default)(this, AmbientLightProbe);\n _this = _super.call(this, undefined, intensity);\n _this.isAmbientLightProbe = true;\n var color1 = new _Color.Color().set(color);\n _this.sh.coefficients[0].set(color1.r, color1.g, color1.b).multiplyScalar(2 * Math.sqrt(Math.PI));\n return _this;\n }\n return (0, _createClass2.default)(AmbientLightProbe);\n }(_LightProbe2.LightProbe);return module.exports;});", "requires": [ "pandav:/src/math/Color.js", "pandav:/src/lights/LightProbe.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/AmbientLightProbe.js", "fileName": "/src/lights/AmbientLightProbe.js" }, "pandav:/src/lights/HemisphereLightProbe.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/HemisphereLightProbe\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/lights/LightProbe\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.HemisphereLightProbe = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _LightProbe2 = require('pandav:/com/three/0.145.0/src/lights/LightProbe');\n var HemisphereLightProbe = exports.HemisphereLightProbe = function (_LightProbe) {\n (0, _inherits2.default)(HemisphereLightProbe, _LightProbe);\n var _super = (0, _createSuper2.default)(HemisphereLightProbe);\n function HemisphereLightProbe(skyColor, groundColor) {\n var _this;\n var intensity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n (0, _classCallCheck2.default)(this, HemisphereLightProbe);\n _this = _super.call(this, undefined, intensity);\n _this.isHemisphereLightProbe = true;\n var color1 = new _Color.Color().set(skyColor);\n var color2 = new _Color.Color().set(groundColor);\n var sky = new _Vector.Vector3(color1.r, color1.g, color1.b);\n var ground = new _Vector.Vector3(color2.r, color2.g, color2.b);\n var c0 = Math.sqrt(Math.PI);\n var c1 = c0 * Math.sqrt(0.75);\n _this.sh.coefficients[0].copy(sky).add(ground).multiplyScalar(c0);\n _this.sh.coefficients[1].copy(sky).sub(ground).multiplyScalar(c1);\n return _this;\n }\n return (0, _createClass2.default)(HemisphereLightProbe);\n }(_LightProbe2.LightProbe);return module.exports;});", "requires": [ "pandav:/src/math/Color.js", "pandav:/src/math/Vector3.js", "pandav:/src/lights/LightProbe.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/HemisphereLightProbe.js", "fileName": "/src/lights/HemisphereLightProbe.js" }, "pandav:/src/lights/DirectionalLightShadow.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/DirectionalLightShadow\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/LightShadow\", \"pandav:/com/three/0.145.0/src/cameras/OrthographicCamera\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DirectionalLightShadow = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LightShadow2 = require('pandav:/com/three/0.145.0/src/lights/LightShadow');\n var _OrthographicCamera = require('pandav:/com/three/0.145.0/src/cameras/OrthographicCamera');\n var DirectionalLightShadow = exports.DirectionalLightShadow = function (_LightShadow) {\n (0, _inherits2.default)(DirectionalLightShadow, _LightShadow);\n var _super = (0, _createSuper2.default)(DirectionalLightShadow);\n function DirectionalLightShadow() {\n var _this;\n (0, _classCallCheck2.default)(this, DirectionalLightShadow);\n _this = _super.call(this, new _OrthographicCamera.OrthographicCamera(-5, 5, 5, -5, 0.5, 500));\n _this.isDirectionalLightShadow = true;\n return _this;\n }\n return (0, _createClass2.default)(DirectionalLightShadow);\n }(_LightShadow2.LightShadow);return module.exports;});", "requires": [ "pandav:/src/lights/LightShadow.js", "pandav:/src/cameras/OrthographicCamera.js" ], "buildLevel": 37, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/DirectionalLightShadow.js", "fileName": "/src/lights/DirectionalLightShadow.js" }, "pandav:/src/helpers/SpotLightHelper.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/helpers/SpotLightHelper\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SpotLightHelper = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _LineSegments = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _vector = new _Vector.Vector3();\n var SpotLightHelper = exports.SpotLightHelper = function (_Object3D) {\n (0, _inherits2.default)(SpotLightHelper, _Object3D);\n var _super = (0, _createSuper2.default)(SpotLightHelper);\n function SpotLightHelper(light, color) {\n var _this;\n (0, _classCallCheck2.default)(this, SpotLightHelper);\n _this = _super.call(this);\n _this.light = light;\n _this.light.updateMatrixWorld();\n _this.matrix = light.matrixWorld;\n _this.matrixAutoUpdate = false;\n _this.color = color;\n var geometry = new _BufferGeometry.BufferGeometry();\n var positions = [0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 1];\n for (var i = 0, j = 1, l = 32; i < l; i++, j++) {\n var p1 = i / l * Math.PI * 2;\n var p2 = j / l * Math.PI * 2;\n positions.push(Math.cos(p1), Math.sin(p1), 1, Math.cos(p2), Math.sin(p2), 1);\n }\n geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute(positions, 3));\n var material = new _LineBasicMaterial.LineBasicMaterial({\n fog: false,\n toneMapped: false });\n\n _this.cone = new _LineSegments.LineSegments(geometry, material);\n _this.add(_this.cone);\n _this.update();\n return _this;\n }\n (0, _createClass2.default)(SpotLightHelper, [{\n key: \"dispose\",\n value: function dispose() {\n this.cone.geometry.dispose();\n this.cone.material.dispose();\n } },\n {\n key: \"update\",\n value: function update() {\n this.light.updateMatrixWorld();\n var coneLength = this.light.distance ? this.light.distance : 1000;\n var coneWidth = coneLength * Math.tan(this.light.angle);\n this.cone.scale.set(coneWidth, coneWidth, coneLength);\n _vector.setFromMatrixPosition(this.light.target.matrixWorld);\n this.cone.lookAt(_vector);\n if (this.color !== undefined) {\n this.cone.material.color.set(this.color);\n } else {\n this.cone.material.color.copy(this.light.color);\n }\n } }]);\n\n return SpotLightHelper;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/core/Object3D.js", "pandav:/src/objects/LineSegments.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js" ], "buildLevel": 54, "outputDir": "/com/three/0.145.0/src/helpers", "outputPath": "/com/three/0.145.0/src/helpers/SpotLightHelper.js", "fileName": "/src/helpers/SpotLightHelper.js" }, "pandav:/src/lights/HemisphereLight.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/HemisphereLight\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/Light\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.HemisphereLight = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Light2 = require('pandav:/com/three/0.145.0/src/lights/Light');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Object3D = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var HemisphereLight = exports.HemisphereLight = function (_Light) {\n (0, _inherits2.default)(HemisphereLight, _Light);\n var _super = (0, _createSuper2.default)(HemisphereLight);\n function HemisphereLight(skyColor, groundColor, intensity) {\n var _this;\n (0, _classCallCheck2.default)(this, HemisphereLight);\n _this = _super.call(this, skyColor, intensity);\n _this.isHemisphereLight = true;\n _this.type = 'HemisphereLight';\n _this.position.copy(_Object3D.Object3D.DefaultUp);\n _this.updateMatrix();\n _this.groundColor = new _Color.Color(groundColor);\n return _this;\n }\n (0, _createClass2.default)(HemisphereLight, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(HemisphereLight.prototype), \"copy\", this).call(this, source, recursive);\n this.groundColor.copy(source.groundColor);\n return this;\n } }]);\n\n return HemisphereLight;\n }(_Light2.Light);return module.exports;});", "requires": [ "pandav:/src/lights/Light.js", "pandav:/src/math/Color.js", "pandav:/src/core/Object3D.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/HemisphereLight.js", "fileName": "/src/lights/HemisphereLight.js" }, "pandav:/src/lights/DirectionalLight.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/DirectionalLight\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/Light\", \"pandav:/com/three/0.145.0/src/lights/DirectionalLightShadow\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DirectionalLight = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Light2 = require('pandav:/com/three/0.145.0/src/lights/Light');\n var _DirectionalLightShadow = require('pandav:/com/three/0.145.0/src/lights/DirectionalLightShadow');\n var _Object3D = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var DirectionalLight = exports.DirectionalLight = function (_Light) {\n (0, _inherits2.default)(DirectionalLight, _Light);\n var _super = (0, _createSuper2.default)(DirectionalLight);\n function DirectionalLight(color, intensity) {\n var _this;\n (0, _classCallCheck2.default)(this, DirectionalLight);\n _this = _super.call(this, color, intensity);\n _this.isDirectionalLight = true;\n _this.type = 'DirectionalLight';\n _this.position.copy(_Object3D.Object3D.DefaultUp);\n _this.updateMatrix();\n _this.target = new _Object3D.Object3D();\n _this.shadow = new _DirectionalLightShadow.DirectionalLightShadow();\n return _this;\n }\n (0, _createClass2.default)(DirectionalLight, [{\n key: \"dispose\",\n value: function dispose() {\n this.shadow.dispose();\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(DirectionalLight.prototype), \"copy\", this).call(this, source);\n this.target = source.target.clone();\n this.shadow = source.shadow.clone();\n return this;\n } }]);\n\n return DirectionalLight;\n }(_Light2.Light);return module.exports;});", "requires": [ "pandav:/src/lights/Light.js", "pandav:/src/lights/DirectionalLightShadow.js", "pandav:/src/core/Object3D.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/DirectionalLight.js", "fileName": "/src/lights/DirectionalLight.js" }, "pandav:/src/lights/LightProbe.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/LightProbe\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/SphericalHarmonics3\", \"pandav:/com/three/0.145.0/src/lights/Light\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LightProbe = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _SphericalHarmonics = require('pandav:/com/three/0.145.0/src/math/SphericalHarmonics3');\n var _Light2 = require('pandav:/com/three/0.145.0/src/lights/Light');\n var LightProbe = exports.LightProbe = function (_Light) {\n (0, _inherits2.default)(LightProbe, _Light);\n var _super = (0, _createSuper2.default)(LightProbe);\n function LightProbe() {\n var _this;\n var sh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _SphericalHarmonics.SphericalHarmonics3();\n var intensity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n (0, _classCallCheck2.default)(this, LightProbe);\n _this = _super.call(this, undefined, intensity);\n _this.isLightProbe = true;\n _this.sh = sh;\n return _this;\n }\n (0, _createClass2.default)(LightProbe, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LightProbe.prototype), \"copy\", this).call(this, source);\n this.sh.copy(source.sh);\n return this;\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json) {\n this.intensity = json.intensity;\n this.sh.fromArray(json.sh);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(LightProbe.prototype), \"toJSON\", this).call(this, meta);\n data.object.sh = this.sh.toArray();\n return data;\n } }]);\n\n return LightProbe;\n }(_Light2.Light);return module.exports;});", "requires": [ "pandav:/src/math/SphericalHarmonics3.js", "pandav:/src/lights/Light.js" ], "buildLevel": 39, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/LightProbe.js", "fileName": "/src/lights/LightProbe.js" }, "pandav:/src/lights/Light.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/Light\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Light = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var Light = exports.Light = function (_Object3D) {\n (0, _inherits2.default)(Light, _Object3D);\n var _super = (0, _createSuper2.default)(Light);\n function Light(color) {\n var _this;\n var intensity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n (0, _classCallCheck2.default)(this, Light);\n _this = _super.call(this);\n _this.isLight = true;\n _this.type = 'Light';\n _this.color = new _Color.Color(color);\n _this.intensity = intensity;\n return _this;\n }\n (0, _createClass2.default)(Light, [{\n key: \"dispose\",\n value: function dispose() {} },\n {\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Light.prototype), \"copy\", this).call(this, source, recursive);\n this.color.copy(source.color);\n this.intensity = source.intensity;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(Light.prototype), \"toJSON\", this).call(this, meta);\n data.object.color = this.color.getHex();\n data.object.intensity = this.intensity;\n if (this.groundColor !== undefined) data.object.groundColor = this.groundColor.getHex();\n if (this.distance !== undefined) data.object.distance = this.distance;\n if (this.angle !== undefined) data.object.angle = this.angle;\n if (this.decay !== undefined) data.object.decay = this.decay;\n if (this.penumbra !== undefined) data.object.penumbra = this.penumbra;\n if (this.shadow !== undefined) data.object.shadow = this.shadow.toJSON();\n return data;\n } }]);\n\n return Light;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/core/Object3D.js", "pandav:/src/math/Color.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/Light.js", "fileName": "/src/lights/Light.js" }, "pandav:/src/lights/PointLight.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/PointLight\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/Light\", \"pandav:/com/three/0.145.0/src/lights/PointLightShadow\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PointLight = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Light2 = require('pandav:/com/three/0.145.0/src/lights/Light');\n var _PointLightShadow = require('pandav:/com/three/0.145.0/src/lights/PointLightShadow');\n var PointLight = exports.PointLight = function (_Light) {\n (0, _inherits2.default)(PointLight, _Light);\n var _super = (0, _createSuper2.default)(PointLight);\n function PointLight(color, intensity) {\n var _this;\n var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var decay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n (0, _classCallCheck2.default)(this, PointLight);\n _this = _super.call(this, color, intensity);\n _this.isPointLight = true;\n _this.type = 'PointLight';\n _this.distance = distance;\n _this.decay = decay;\n _this.shadow = new _PointLightShadow.PointLightShadow();\n return _this;\n }\n (0, _createClass2.default)(PointLight, [{\n key: \"power\",\n get: function get() {\n return this.intensity * 4 * Math.PI;\n },\n set: function set(power) {\n this.intensity = power / (4 * Math.PI);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.shadow.dispose();\n } },\n {\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(PointLight.prototype), \"copy\", this).call(this, source, recursive);\n this.distance = source.distance;\n this.decay = source.decay;\n this.shadow = source.shadow.clone();\n return this;\n } }]);\n\n return PointLight;\n }(_Light2.Light);return module.exports;});", "requires": [ "pandav:/src/lights/Light.js", "pandav:/src/lights/PointLightShadow.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/PointLight.js", "fileName": "/src/lights/PointLight.js" }, "pandav:/src/lights/LightShadow.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/LightShadow\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/math/Frustum\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LightShadow = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector3 = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _Frustum = require('pandav:/com/three/0.145.0/src/math/Frustum');\n var _projScreenMatrix = new _Matrix.Matrix4();\n var _lightPositionWorld = new _Vector2.Vector3();\n var _lookTarget = new _Vector2.Vector3();\n var LightShadow = exports.LightShadow = function () {\n function LightShadow(camera) {\n (0, _classCallCheck2.default)(this, LightShadow);\n this.camera = camera;\n this.bias = 0;\n this.normalBias = 0;\n this.radius = 1;\n this.blurSamples = 8;\n this.mapSize = new _Vector.Vector2(512, 512);\n this.map = null;\n this.mapPass = null;\n this.matrix = new _Matrix.Matrix4();\n this.autoUpdate = true;\n this.needsUpdate = false;\n this._frustum = new _Frustum.Frustum();\n this._frameExtents = new _Vector.Vector2(1, 1);\n this._viewportCount = 1;\n this._viewports = [new _Vector3.Vector4(0, 0, 1, 1)];\n }\n (0, _createClass2.default)(LightShadow, [{\n key: \"getViewportCount\",\n value: function getViewportCount() {\n return this._viewportCount;\n } },\n {\n key: \"getFrustum\",\n value: function getFrustum() {\n return this._frustum;\n } },\n {\n key: \"updateMatrices\",\n value: function updateMatrices(light) {\n var shadowCamera = this.camera;\n var shadowMatrix = this.matrix;\n _lightPositionWorld.setFromMatrixPosition(light.matrixWorld);\n shadowCamera.position.copy(_lightPositionWorld);\n _lookTarget.setFromMatrixPosition(light.target.matrixWorld);\n shadowCamera.lookAt(_lookTarget);\n shadowCamera.updateMatrixWorld();\n _projScreenMatrix.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse);\n this._frustum.setFromProjectionMatrix(_projScreenMatrix);\n shadowMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0);\n shadowMatrix.multiply(_projScreenMatrix);\n } },\n {\n key: \"getViewport\",\n value: function getViewport(viewportIndex) {\n return this._viewports[viewportIndex];\n } },\n {\n key: \"getFrameExtents\",\n value: function getFrameExtents() {\n return this._frameExtents;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n if (this.map) {\n this.map.dispose();\n }\n if (this.mapPass) {\n this.mapPass.dispose();\n }\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.camera = source.camera.clone();\n this.bias = source.bias;\n this.radius = source.radius;\n this.mapSize.copy(source.mapSize);\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var object = {};\n if (this.bias !== 0) object.bias = this.bias;\n if (this.normalBias !== 0) object.normalBias = this.normalBias;\n if (this.radius !== 1) object.radius = this.radius;\n if (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray();\n object.camera = this.camera.toJSON(false).object;\n delete object.camera.matrix;\n return object;\n } }]);\n\n return LightShadow;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Matrix4.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector4.js", "pandav:/src/math/Frustum.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/LightShadow.js", "fileName": "/src/lights/LightShadow.js" }, "pandav:/src/lights/PointLightShadow.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/PointLightShadow\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/LightShadow\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector4\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PointLightShadow = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LightShadow2 = require('pandav:/com/three/0.145.0/src/lights/LightShadow');\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector3 = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _projScreenMatrix = new _Matrix.Matrix4();\n var _lightPositionWorld = new _Vector2.Vector3();\n var _lookTarget = new _Vector2.Vector3();\n var PointLightShadow = exports.PointLightShadow = function (_LightShadow) {\n (0, _inherits2.default)(PointLightShadow, _LightShadow);\n var _super = (0, _createSuper2.default)(PointLightShadow);\n function PointLightShadow() {\n var _this;\n (0, _classCallCheck2.default)(this, PointLightShadow);\n _this = _super.call(this, new _PerspectiveCamera.PerspectiveCamera(90, 1, 0.5, 500));\n _this.isPointLightShadow = true;\n _this._frameExtents = new _Vector.Vector2(4, 2);\n _this._viewportCount = 6;\n _this._viewports = [new _Vector3.Vector4(2, 1, 1, 1), new _Vector3.Vector4(0, 1, 1, 1), new _Vector3.Vector4(3, 1, 1, 1), new _Vector3.Vector4(1, 1, 1, 1), new _Vector3.Vector4(3, 0, 1, 1), new _Vector3.Vector4(1, 0, 1, 1)];\n _this._cubeDirections = [new _Vector2.Vector3(1, 0, 0), new _Vector2.Vector3(-1, 0, 0), new _Vector2.Vector3(0, 0, 1), new _Vector2.Vector3(0, 0, -1), new _Vector2.Vector3(0, 1, 0), new _Vector2.Vector3(0, -1, 0)];\n _this._cubeUps = [new _Vector2.Vector3(0, 1, 0), new _Vector2.Vector3(0, 1, 0), new _Vector2.Vector3(0, 1, 0), new _Vector2.Vector3(0, 1, 0), new _Vector2.Vector3(0, 0, 1), new _Vector2.Vector3(0, 0, -1)];\n return _this;\n }\n (0, _createClass2.default)(PointLightShadow, [{\n key: \"updateMatrices\",\n value: function updateMatrices(light) {\n var viewportIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var camera = this.camera;\n var shadowMatrix = this.matrix;\n var far = light.distance || camera.far;\n if (far !== camera.far) {\n camera.far = far;\n camera.updateProjectionMatrix();\n }\n _lightPositionWorld.setFromMatrixPosition(light.matrixWorld);\n camera.position.copy(_lightPositionWorld);\n _lookTarget.copy(camera.position);\n _lookTarget.add(this._cubeDirections[viewportIndex]);\n camera.up.copy(this._cubeUps[viewportIndex]);\n camera.lookAt(_lookTarget);\n camera.updateMatrixWorld();\n shadowMatrix.makeTranslation(-_lightPositionWorld.x, -_lightPositionWorld.y, -_lightPositionWorld.z);\n _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n this._frustum.setFromProjectionMatrix(_projScreenMatrix);\n } }]);\n\n return PointLightShadow;\n }(_LightShadow2.LightShadow);return module.exports;});", "requires": [ "pandav:/src/lights/LightShadow.js", "pandav:/src/cameras/PerspectiveCamera.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector4.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/PointLightShadow.js", "fileName": "/src/lights/PointLightShadow.js" }, "pandav:/src/lights/RectAreaLight.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/RectAreaLight\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/Light\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.RectAreaLight = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Light2 = require('pandav:/com/three/0.145.0/src/lights/Light');\n var RectAreaLight = exports.RectAreaLight = function (_Light) {\n (0, _inherits2.default)(RectAreaLight, _Light);\n var _super = (0, _createSuper2.default)(RectAreaLight);\n function RectAreaLight(color, intensity) {\n var _this;\n var width = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;\n var height = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n (0, _classCallCheck2.default)(this, RectAreaLight);\n _this = _super.call(this, color, intensity);\n _this.isRectAreaLight = true;\n _this.type = 'RectAreaLight';\n _this.width = width;\n _this.height = height;\n return _this;\n }\n (0, _createClass2.default)(RectAreaLight, [{\n key: \"power\",\n get: function get() {\n return this.intensity * this.width * this.height * Math.PI;\n },\n set: function set(power) {\n this.intensity = power / (this.width * this.height * Math.PI);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(RectAreaLight.prototype), \"copy\", this).call(this, source);\n this.width = source.width;\n this.height = source.height;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(RectAreaLight.prototype), \"toJSON\", this).call(this, meta);\n data.object.width = this.width;\n data.object.height = this.height;\n return data;\n } }]);\n\n return RectAreaLight;\n }(_Light2.Light);return module.exports;});", "requires": [ "pandav:/src/lights/Light.js" ], "buildLevel": 38, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/RectAreaLight.js", "fileName": "/src/lights/RectAreaLight.js" }, "pandav:/src/lights/SpotLight.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/SpotLight\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/Light\", \"pandav:/com/three/0.145.0/src/lights/SpotLightShadow\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SpotLight = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Light2 = require('pandav:/com/three/0.145.0/src/lights/Light');\n var _SpotLightShadow = require('pandav:/com/three/0.145.0/src/lights/SpotLightShadow');\n var _Object3D = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var SpotLight = exports.SpotLight = function (_Light) {\n (0, _inherits2.default)(SpotLight, _Light);\n var _super = (0, _createSuper2.default)(SpotLight);\n function SpotLight(color, intensity) {\n var _this;\n var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var angle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Math.PI / 3;\n var penumbra = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var decay = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n (0, _classCallCheck2.default)(this, SpotLight);\n _this = _super.call(this, color, intensity);\n _this.isSpotLight = true;\n _this.type = 'SpotLight';\n _this.position.copy(_Object3D.Object3D.DefaultUp);\n _this.updateMatrix();\n _this.target = new _Object3D.Object3D();\n _this.distance = distance;\n _this.angle = angle;\n _this.penumbra = penumbra;\n _this.decay = decay;\n _this.map = null;\n _this.shadow = new _SpotLightShadow.SpotLightShadow();\n return _this;\n }\n (0, _createClass2.default)(SpotLight, [{\n key: \"power\",\n get: function get() {\n return this.intensity * Math.PI;\n },\n set: function set(power) {\n this.intensity = power / Math.PI;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.shadow.dispose();\n } },\n {\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(SpotLight.prototype), \"copy\", this).call(this, source, recursive);\n this.distance = source.distance;\n this.angle = source.angle;\n this.penumbra = source.penumbra;\n this.decay = source.decay;\n this.target = source.target.clone();\n this.shadow = source.shadow.clone();\n return this;\n } }]);\n\n return SpotLight;\n }(_Light2.Light);return module.exports;});", "requires": [ "pandav:/src/lights/Light.js", "pandav:/src/lights/SpotLightShadow.js", "pandav:/src/core/Object3D.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/SpotLight.js", "fileName": "/src/lights/SpotLight.js" }, "pandav:/src/lights/SpotLightShadow.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/SpotLightShadow\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/LightShadow\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SpotLightShadow = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LightShadow2 = require('pandav:/com/three/0.145.0/src/lights/LightShadow');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var SpotLightShadow = exports.SpotLightShadow = function (_LightShadow) {\n (0, _inherits2.default)(SpotLightShadow, _LightShadow);\n var _super = (0, _createSuper2.default)(SpotLightShadow);\n function SpotLightShadow() {\n var _this;\n (0, _classCallCheck2.default)(this, SpotLightShadow);\n _this = _super.call(this, new _PerspectiveCamera.PerspectiveCamera(50, 1, 0.5, 500));\n _this.isSpotLightShadow = true;\n _this.focus = 1;\n return _this;\n }\n (0, _createClass2.default)(SpotLightShadow, [{\n key: \"updateMatrices\",\n value: function updateMatrices(light) {\n var camera = this.camera;\n var fov = MathUtils.RAD2DEG * 2 * light.angle * this.focus;\n var aspect = this.mapSize.width / this.mapSize.height;\n var far = light.distance || camera.far;\n if (fov !== camera.fov || aspect !== camera.aspect || far !== camera.far) {\n camera.fov = fov;\n camera.aspect = aspect;\n camera.far = far;\n camera.updateProjectionMatrix();\n }\n (0, _get2.default)((0, _getPrototypeOf2.default)(SpotLightShadow.prototype), \"updateMatrices\", this).call(this, light);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(SpotLightShadow.prototype), \"copy\", this).call(this, source);\n this.focus = source.focus;\n return this;\n } }]);\n\n return SpotLightShadow;\n }(_LightShadow2.LightShadow);return module.exports;});", "requires": [ "pandav:/src/lights/LightShadow.js", "pandav:/src/math/MathUtils.js", "pandav:/src/cameras/PerspectiveCamera.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/SpotLightShadow.js", "fileName": "/src/lights/SpotLightShadow.js" }, "pandav:/src/loaders/AnimationLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/AnimationLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/animation/AnimationClip\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AnimationLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _AnimationClip = require('pandav:/com/three/0.145.0/src/animation/AnimationClip');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var AnimationLoader = exports.AnimationLoader = function (_Loader) {\n (0, _inherits2.default)(AnimationLoader, _Loader);\n var _super = (0, _createSuper2.default)(AnimationLoader);\n function AnimationLoader(manager) {\n (0, _classCallCheck2.default)(this, AnimationLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(AnimationLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new _FileLoader.FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (text) {\n try {\n onLoad(scope.parse(JSON.parse(text)));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n } },\n {\n key: \"parse\",\n value: function parse(json) {\n var animations = [];\n for (var i = 0; i < json.length; i++) {\n var clip = _AnimationClip.AnimationClip.parse(json[i]);\n animations.push(clip);\n }\n return animations;\n } }]);\n\n return AnimationLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/animation/AnimationClip.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/AnimationLoader.js", "fileName": "/src/loaders/AnimationLoader.js" }, "pandav:/src/lights/AmbientLight.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/lights/AmbientLight\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/lights/Light\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AmbientLight = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Light2 = require('pandav:/com/three/0.145.0/src/lights/Light');\n var AmbientLight = exports.AmbientLight = function (_Light) {\n (0, _inherits2.default)(AmbientLight, _Light);\n var _super = (0, _createSuper2.default)(AmbientLight);\n function AmbientLight(color, intensity) {\n var _this;\n (0, _classCallCheck2.default)(this, AmbientLight);\n _this = _super.call(this, color, intensity);\n _this.isAmbientLight = true;\n _this.type = 'AmbientLight';\n return _this;\n }\n return (0, _createClass2.default)(AmbientLight);\n }(_Light2.Light);return module.exports;});", "requires": [ "pandav:/src/lights/Light.js" ], "buildLevel": 37, "outputDir": "/com/three/0.145.0/src/lights", "outputPath": "/com/three/0.145.0/src/lights/AmbientLight.js", "fileName": "/src/lights/AmbientLight.js" }, "pandav:/src/loaders/AudioLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/AudioLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/audio/AudioContext\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AudioLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _AudioContext = require('pandav:/com/three/0.145.0/src/audio/AudioContext');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var AudioLoader = exports.AudioLoader = function (_Loader) {\n (0, _inherits2.default)(AudioLoader, _Loader);\n var _super = (0, _createSuper2.default)(AudioLoader);\n function AudioLoader(manager) {\n (0, _classCallCheck2.default)(this, AudioLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(AudioLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new _FileLoader.FileLoader(this.manager);\n loader.setResponseType('arraybuffer');\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (buffer) {\n try {\n var bufferCopy = buffer.slice(0);\n var context = _AudioContext.AudioContext.getContext();\n context.decodeAudioData(bufferCopy, function (audioBuffer) {\n onLoad(audioBuffer);\n });\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n } }]);\n\n return AudioLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/audio/AudioContext.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/AudioLoader.js", "fileName": "/src/loaders/AudioLoader.js" }, "pandav:/src/loaders/BufferGeometryLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/BufferGeometryLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Sphere\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/loaders/Loader\", \"pandav:/com/three/0.145.0/src/core/InstancedBufferGeometry\", \"pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute\", \"pandav:/com/three/0.145.0/src/core/InterleavedBufferAttribute\", \"pandav:/com/three/0.145.0/src/core/InterleavedBuffer\", \"pandav:/com/three/0.145.0/src/utils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.BufferGeometryLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Sphere = require('pandav:/com/three/0.145.0/src/math/Sphere');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var _InstancedBufferGeometry = require('pandav:/com/three/0.145.0/src/core/InstancedBufferGeometry');\n var _InstancedBufferAttribute = require('pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute');\n var _InterleavedBufferAttribute = require('pandav:/com/three/0.145.0/src/core/InterleavedBufferAttribute');\n var _InterleavedBuffer = require('pandav:/com/three/0.145.0/src/core/InterleavedBuffer');\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n var BufferGeometryLoader = exports.BufferGeometryLoader = function (_Loader) {\n (0, _inherits2.default)(BufferGeometryLoader, _Loader);\n var _super = (0, _createSuper2.default)(BufferGeometryLoader);\n function BufferGeometryLoader(manager) {\n (0, _classCallCheck2.default)(this, BufferGeometryLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(BufferGeometryLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new _FileLoader.FileLoader(scope.manager);\n loader.setPath(scope.path);\n loader.setRequestHeader(scope.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (text) {\n try {\n onLoad(scope.parse(JSON.parse(text)));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n } },\n {\n key: \"parse\",\n value: function parse(json) {\n var interleavedBufferMap = {};\n var arrayBufferMap = {};\n function getInterleavedBuffer(json, uuid) {\n if (interleavedBufferMap[uuid] !== undefined) return interleavedBufferMap[uuid];\n var interleavedBuffers = json.interleavedBuffers;\n var interleavedBuffer = interleavedBuffers[uuid];\n var buffer = getArrayBuffer(json, interleavedBuffer.buffer);\n var array = (0, _utils.getTypedArray)(interleavedBuffer.type, buffer);\n var ib = new _InterleavedBuffer.InterleavedBuffer(array, interleavedBuffer.stride);\n ib.uuid = interleavedBuffer.uuid;\n interleavedBufferMap[uuid] = ib;\n return ib;\n }\n function getArrayBuffer(json, uuid) {\n if (arrayBufferMap[uuid] !== undefined) return arrayBufferMap[uuid];\n var arrayBuffers = json.arrayBuffers;\n var arrayBuffer = arrayBuffers[uuid];\n var ab = new Uint32Array(arrayBuffer).buffer;\n arrayBufferMap[uuid] = ab;\n return ab;\n }\n var geometry = json.isInstancedBufferGeometry ? new _InstancedBufferGeometry.InstancedBufferGeometry() : new _BufferGeometry.BufferGeometry();\n var index = json.data.index;\n if (index !== undefined) {\n var typedArray = (0, _utils.getTypedArray)(index.type, index.array);\n geometry.setIndex(new _BufferAttribute.BufferAttribute(typedArray, 1));\n }\n var attributes = json.data.attributes;\n for (var key in attributes) {\n var attribute = attributes[key];\n var bufferAttribute = void 0;\n if (attribute.isInterleavedBufferAttribute) {\n var interleavedBuffer = getInterleavedBuffer(json.data, attribute.data);\n bufferAttribute = new _InterleavedBufferAttribute.InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized);\n } else {\n var _typedArray = (0, _utils.getTypedArray)(attribute.type, attribute.array);\n var bufferAttributeConstr = attribute.isInstancedBufferAttribute ? _InstancedBufferAttribute.InstancedBufferAttribute : _BufferAttribute.BufferAttribute;\n bufferAttribute = new bufferAttributeConstr(_typedArray, attribute.itemSize, attribute.normalized);\n }\n if (attribute.name !== undefined) bufferAttribute.name = attribute.name;\n if (attribute.usage !== undefined) bufferAttribute.setUsage(attribute.usage);\n if (attribute.updateRange !== undefined) {\n bufferAttribute.updateRange.offset = attribute.updateRange.offset;\n bufferAttribute.updateRange.count = attribute.updateRange.count;\n }\n geometry.setAttribute(key, bufferAttribute);\n }\n var morphAttributes = json.data.morphAttributes;\n if (morphAttributes) {\n for (var _key in morphAttributes) {\n var attributeArray = morphAttributes[_key];\n var array = [];\n for (var i = 0, il = attributeArray.length; i < il; i++) {\n var _attribute = attributeArray[i];\n var _bufferAttribute = void 0;\n if (_attribute.isInterleavedBufferAttribute) {\n var _interleavedBuffer = getInterleavedBuffer(json.data, _attribute.data);\n _bufferAttribute = new _InterleavedBufferAttribute.InterleavedBufferAttribute(_interleavedBuffer, _attribute.itemSize, _attribute.offset, _attribute.normalized);\n } else {\n var _typedArray2 = (0, _utils.getTypedArray)(_attribute.type, _attribute.array);\n _bufferAttribute = new _BufferAttribute.BufferAttribute(_typedArray2, _attribute.itemSize, _attribute.normalized);\n }\n if (_attribute.name !== undefined) _bufferAttribute.name = _attribute.name;\n array.push(_bufferAttribute);\n }\n geometry.morphAttributes[_key] = array;\n }\n }\n var morphTargetsRelative = json.data.morphTargetsRelative;\n if (morphTargetsRelative) {\n geometry.morphTargetsRelative = true;\n }\n var groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n if (groups !== undefined) {\n for (var _i = 0, n = groups.length; _i !== n; ++_i) {\n var group = groups[_i];\n geometry.addGroup(group.start, group.count, group.materialIndex);\n }\n }\n var boundingSphere = json.data.boundingSphere;\n if (boundingSphere !== undefined) {\n var center = new _Vector.Vector3();\n if (boundingSphere.center !== undefined) {\n center.fromArray(boundingSphere.center);\n }\n geometry.boundingSphere = new _Sphere.Sphere(center, boundingSphere.radius);\n }\n if (json.name) geometry.name = json.name;\n if (json.userData) geometry.userData = json.userData;\n return geometry;\n } }]);\n\n return BufferGeometryLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/math/Sphere.js", "pandav:/src/math/Vector3.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/loaders/Loader.js", "pandav:/src/core/InstancedBufferGeometry.js", "pandav:/src/core/InstancedBufferAttribute.js", "pandav:/src/core/InterleavedBufferAttribute.js", "pandav:/src/core/InterleavedBuffer.js", "pandav:/src/utils.js" ], "buildLevel": 42, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/BufferGeometryLoader.js", "fileName": "/src/loaders/BufferGeometryLoader.js" }, "pandav:/src/loaders/Cache.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/Cache\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Cache = void 0;\n var Cache = exports.Cache = {\n enabled: false,\n files: {},\n add: function add(key, file) {\n if (this.enabled === false) return;\n this.files[key] = file;\n },\n get: function get(key) {\n if (this.enabled === false) return;\n return this.files[key];\n },\n remove: function remove(key) {\n delete this.files[key];\n },\n clear: function clear() {\n this.files = {};\n } };return module.exports;});", "requires": [], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/Cache.js", "fileName": "/src/loaders/Cache.js" }, "pandav:/src/loaders/CompressedTextureLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/CompressedTextureLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/textures/CompressedTexture\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CompressedTextureLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var _CompressedTexture = require('pandav:/com/three/0.145.0/src/textures/CompressedTexture');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var CompressedTextureLoader = exports.CompressedTextureLoader = function (_Loader) {\n (0, _inherits2.default)(CompressedTextureLoader, _Loader);\n var _super = (0, _createSuper2.default)(CompressedTextureLoader);\n function CompressedTextureLoader(manager) {\n (0, _classCallCheck2.default)(this, CompressedTextureLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(CompressedTextureLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var images = [];\n var texture = new _CompressedTexture.CompressedTexture();\n var loader = new _FileLoader.FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setResponseType('arraybuffer');\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n var loaded = 0;\n function loadTexture(i) {\n loader.load(url[i], function (buffer) {\n var texDatas = scope.parse(buffer, true);\n images[i] = {\n width: texDatas.width,\n height: texDatas.height,\n format: texDatas.format,\n mipmaps: texDatas.mipmaps };\n\n loaded += 1;\n if (loaded === 6) {\n if (texDatas.mipmapCount === 1) texture.minFilter = _constants.LinearFilter;\n texture.image = images;\n texture.format = texDatas.format;\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }\n }, onProgress, onError);\n }\n if (Array.isArray(url)) {\n for (var i = 0, il = url.length; i < il; ++i) {\n loadTexture(i);\n }\n } else {\n loader.load(url, function (buffer) {\n var texDatas = scope.parse(buffer, true);\n if (texDatas.isCubemap) {\n var faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n for (var f = 0; f < faces; f++) {\n images[f] = {\n mipmaps: [] };\n\n for (var _i = 0; _i < texDatas.mipmapCount; _i++) {\n images[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + _i]);\n images[f].format = texDatas.format;\n images[f].width = texDatas.width;\n images[f].height = texDatas.height;\n }\n }\n texture.image = images;\n } else {\n texture.image.width = texDatas.width;\n texture.image.height = texDatas.height;\n texture.mipmaps = texDatas.mipmaps;\n }\n if (texDatas.mipmapCount === 1) {\n texture.minFilter = _constants.LinearFilter;\n }\n texture.format = texDatas.format;\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }, onProgress, onError);\n }\n return texture;\n } }]);\n\n return CompressedTextureLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/textures/CompressedTexture.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/CompressedTextureLoader.js", "fileName": "/src/loaders/CompressedTextureLoader.js" }, "pandav:/src/loaders/DataTextureLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/DataTextureLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/textures/DataTexture\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DataTextureLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var _DataTexture = require('pandav:/com/three/0.145.0/src/textures/DataTexture');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var DataTextureLoader = exports.DataTextureLoader = function (_Loader) {\n (0, _inherits2.default)(DataTextureLoader, _Loader);\n var _super = (0, _createSuper2.default)(DataTextureLoader);\n function DataTextureLoader(manager) {\n (0, _classCallCheck2.default)(this, DataTextureLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(DataTextureLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var texture = new _DataTexture.DataTexture();\n var loader = new _FileLoader.FileLoader(this.manager);\n loader.setResponseType('arraybuffer');\n loader.setRequestHeader(this.requestHeader);\n loader.setPath(this.path);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (buffer) {\n var texData = scope.parse(buffer);\n if (!texData) return;\n if (texData.image !== undefined) {\n texture.image = texData.image;\n } else if (texData.data !== undefined) {\n texture.image.width = texData.width;\n texture.image.height = texData.height;\n texture.image.data = texData.data;\n }\n texture.wrapS = texData.wrapS !== undefined ? texData.wrapS : _constants.ClampToEdgeWrapping;\n texture.wrapT = texData.wrapT !== undefined ? texData.wrapT : _constants.ClampToEdgeWrapping;\n texture.magFilter = texData.magFilter !== undefined ? texData.magFilter : _constants.LinearFilter;\n texture.minFilter = texData.minFilter !== undefined ? texData.minFilter : _constants.LinearFilter;\n texture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n if (texData.encoding !== undefined) {\n texture.encoding = texData.encoding;\n }\n if (texData.flipY !== undefined) {\n texture.flipY = texData.flipY;\n }\n if (texData.format !== undefined) {\n texture.format = texData.format;\n }\n if (texData.type !== undefined) {\n texture.type = texData.type;\n }\n if (texData.mipmaps !== undefined) {\n texture.mipmaps = texData.mipmaps;\n texture.minFilter = _constants.LinearMipmapLinearFilter;\n }\n if (texData.mipmapCount === 1) {\n texture.minFilter = _constants.LinearFilter;\n }\n if (texData.generateMipmaps !== undefined) {\n texture.generateMipmaps = texData.generateMipmaps;\n }\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture, texData);\n }, onProgress, onError);\n return texture;\n } }]);\n\n return DataTextureLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/textures/DataTexture.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/DataTextureLoader.js", "fileName": "/src/loaders/DataTextureLoader.js" }, "pandav:/src/loaders/CubeTextureLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/CubeTextureLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/loaders/ImageLoader\", \"pandav:/com/three/0.145.0/src/textures/CubeTexture\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CubeTextureLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _ImageLoader = require('pandav:/com/three/0.145.0/src/loaders/ImageLoader');\n var _CubeTexture = require('pandav:/com/three/0.145.0/src/textures/CubeTexture');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var CubeTextureLoader = exports.CubeTextureLoader = function (_Loader) {\n (0, _inherits2.default)(CubeTextureLoader, _Loader);\n var _super = (0, _createSuper2.default)(CubeTextureLoader);\n function CubeTextureLoader(manager) {\n (0, _classCallCheck2.default)(this, CubeTextureLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(CubeTextureLoader, [{\n key: \"load\",\n value: function load(urls, onLoad, onProgress, onError) {\n var texture = new _CubeTexture.CubeTexture();\n var loader = new _ImageLoader.ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n loader.setPath(this.path);\n var loaded = 0;\n function loadTexture(i) {\n loader.load(urls[i], function (image) {\n texture.images[i] = image;\n loaded++;\n if (loaded === 6) {\n texture.needsUpdate = true;\n if (onLoad) onLoad(texture);\n }\n }, undefined, onError);\n }\n for (var i = 0; i < urls.length; ++i) {\n loadTexture(i);\n }\n return texture;\n } }]);\n\n return CubeTextureLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/loaders/ImageLoader.js", "pandav:/src/textures/CubeTexture.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/CubeTextureLoader.js", "fileName": "/src/loaders/CubeTextureLoader.js" }, "pandav:/src/loaders/ImageLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/ImageLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/loaders/Cache\", \"pandav:/com/three/0.145.0/src/loaders/Loader\", \"pandav:/com/three/0.145.0/src/utils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ImageLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Cache = require('pandav:/com/three/0.145.0/src/loaders/Cache');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n var ImageLoader = exports.ImageLoader = function (_Loader) {\n (0, _inherits2.default)(ImageLoader, _Loader);\n var _super = (0, _createSuper2.default)(ImageLoader);\n function ImageLoader(manager) {\n (0, _classCallCheck2.default)(this, ImageLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(ImageLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var scope = this;\n var cached = _Cache.Cache.get(url);\n if (cached !== undefined) {\n scope.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n scope.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n var image = (0, _utils.createElementNS)('img');\n function onImageLoad() {\n removeEventListeners();\n _Cache.Cache.add(url, this);\n if (onLoad) onLoad(this);\n scope.manager.itemEnd(url);\n }\n function onImageError(event) {\n removeEventListeners();\n if (onError) onError(event);\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n }\n function removeEventListeners() {\n image.removeEventListener('load', onImageLoad, false);\n image.removeEventListener('error', onImageError, false);\n }\n image.addEventListener('load', onImageLoad, false);\n image.addEventListener('error', onImageError, false);\n if (url.slice(0, 5) !== 'data:') {\n if (this.crossOrigin !== undefined) image.crossOrigin = this.crossOrigin;\n }\n scope.manager.itemStart(url);\n image.src = url;\n return image;\n } }]);\n\n return ImageLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/loaders/Cache.js", "pandav:/src/loaders/Loader.js", "pandav:/src/utils.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/ImageLoader.js", "fileName": "/src/loaders/ImageLoader.js" }, "pandav:/src/loaders/FileLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/FileLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/wrapNativeSuper\", \"pandav:/com/three/0.145.0/src/loaders/Cache\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.FileLoader = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _wrapNativeSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/wrapNativeSuper'));\n var _Cache = require('pandav:/com/three/0.145.0/src/loaders/Cache');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var loading = {};\n var HttpError = function (_Error) {\n (0, _inherits2.default)(HttpError, _Error);\n var _super = (0, _createSuper2.default)(HttpError);\n function HttpError(message, response) {\n var _this;\n (0, _classCallCheck2.default)(this, HttpError);\n _this = _super.call(this, message);\n _this.response = response;\n return _this;\n }\n return (0, _createClass2.default)(HttpError);\n }((0, _wrapNativeSuper2.default)(Error));\n var FileLoader = exports.FileLoader = function (_Loader) {\n (0, _inherits2.default)(FileLoader, _Loader);\n var _super2 = (0, _createSuper2.default)(FileLoader);\n function FileLoader(manager) {\n (0, _classCallCheck2.default)(this, FileLoader);\n return _super2.call(this, manager);\n }\n (0, _createClass2.default)(FileLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var _this2 = this;\n if (url === undefined) url = '';\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var cached = _Cache.Cache.get(url);\n if (cached !== undefined) {\n this.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n _this2.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n if (loading[url] !== undefined) {\n loading[url].push({\n onLoad: onLoad,\n onProgress: onProgress,\n onError: onError });\n\n return;\n }\n loading[url] = [];\n loading[url].push({\n onLoad: onLoad,\n onProgress: onProgress,\n onError: onError });\n\n var req = new Request(url, {\n headers: new Headers(this.requestHeader),\n credentials: this.withCredentials ? 'include' : 'same-origin' });\n\n var mimeType = this.mimeType;\n var responseType = this.responseType;\n fetch(req).then(function (response) {\n if (response.status === 200 || response.status === 0) {\n if (response.status === 0) {\n console.warn('THREE.FileLoader: HTTP Status 0 received.');\n }\n if (typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined) {\n return response;\n }\n var callbacks = loading[url];\n var reader = response.body.getReader();\n var contentLength = response.headers.get('Content-Length');\n var total = contentLength ? parseInt(contentLength) : 0;\n var lengthComputable = total !== 0;\n var loaded = 0;\n var stream = new ReadableStream({\n start: function start(controller) {\n readData();\n function readData() {\n reader.read().then(function (_ref) {\n var done = _ref.done,\n value = _ref.value;\n if (done) {\n controller.close();\n } else {\n loaded += value.byteLength;\n var event = new ProgressEvent('progress', {\n lengthComputable: lengthComputable,\n loaded: loaded,\n total: total });\n\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onProgress) callback.onProgress(event);\n }\n controller.enqueue(value);\n readData();\n }\n });\n }\n } });\n\n return new Response(stream);\n } else {\n throw new HttpError(\"fetch for \\\"\".concat(response.url, \"\\\" responded with \").concat(response.status, \": \").concat(response.statusText), response);\n }\n }).then(function (response) {\n switch (responseType) {\n case 'arraybuffer':\n return response.arrayBuffer();\n case 'blob':\n return response.blob();\n case 'document':\n return response.text().then(function (text) {\n var parser = new DOMParser();\n return parser.parseFromString(text, mimeType);\n });\n case 'json':\n return response.json();\n default:\n if (mimeType === undefined) {\n return response.text();\n } else {\n var re = /charset=\"?([^;\"\\s]*)\"?/i;\n var exec = re.exec(mimeType);\n var label = exec && exec[1] ? exec[1].toLowerCase() : undefined;\n var decoder = new TextDecoder(label);\n return response.arrayBuffer().then(function (ab) {\n return decoder.decode(ab);\n });\n }}\n\n }).then(function (data) {\n _Cache.Cache.add(url, data);\n var callbacks = loading[url];\n delete loading[url];\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onLoad) callback.onLoad(data);\n }\n }).catch(function (err) {\n var callbacks = loading[url];\n if (callbacks === undefined) {\n _this2.manager.itemError(url);\n throw err;\n }\n delete loading[url];\n for (var i = 0, il = callbacks.length; i < il; i++) {\n var callback = callbacks[i];\n if (callback.onError) callback.onError(err);\n }\n _this2.manager.itemError(url);\n }).finally(function () {\n _this2.manager.itemEnd(url);\n });\n this.manager.itemStart(url);\n } },\n {\n key: \"setResponseType\",\n value: function setResponseType(value) {\n this.responseType = value;\n return this;\n } },\n {\n key: \"setMimeType\",\n value: function setMimeType(value) {\n this.mimeType = value;\n return this;\n } }]);\n\n return FileLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/loaders/Cache.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/FileLoader.js", "fileName": "/src/loaders/FileLoader.js" }, "pandav:/src/loaders/ImageBitmapLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/ImageBitmapLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/loaders/Cache\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ImageBitmapLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Cache = require('pandav:/com/three/0.145.0/src/loaders/Cache');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var ImageBitmapLoader = exports.ImageBitmapLoader = function (_Loader) {\n (0, _inherits2.default)(ImageBitmapLoader, _Loader);\n var _super = (0, _createSuper2.default)(ImageBitmapLoader);\n function ImageBitmapLoader(manager) {\n var _this;\n (0, _classCallCheck2.default)(this, ImageBitmapLoader);\n _this = _super.call(this, manager);\n _this.isImageBitmapLoader = true;\n if (typeof createImageBitmap === 'undefined') {\n console.warn('THREE.ImageBitmapLoader: createImageBitmap() not supported.');\n }\n if (typeof fetch === 'undefined') {\n console.warn('THREE.ImageBitmapLoader: fetch() not supported.');\n }\n _this.options = {\n premultiplyAlpha: 'none' };\n\n return _this;\n }\n (0, _createClass2.default)(ImageBitmapLoader, [{\n key: \"setOptions\",\n value: function setOptions(options) {\n this.options = options;\n return this;\n } },\n {\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n if (url === undefined) url = '';\n if (this.path !== undefined) url = this.path + url;\n url = this.manager.resolveURL(url);\n var scope = this;\n var cached = _Cache.Cache.get(url);\n if (cached !== undefined) {\n scope.manager.itemStart(url);\n setTimeout(function () {\n if (onLoad) onLoad(cached);\n scope.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n var fetchOptions = {};\n fetchOptions.credentials = this.crossOrigin === 'anonymous' ? 'same-origin' : 'include';\n fetchOptions.headers = this.requestHeader;\n fetch(url, fetchOptions).then(function (res) {\n return res.blob();\n }).then(function (blob) {\n return createImageBitmap(blob, Object.assign(scope.options, {\n colorSpaceConversion: 'none' }));\n\n }).then(function (imageBitmap) {\n _Cache.Cache.add(url, imageBitmap);\n if (onLoad) onLoad(imageBitmap);\n scope.manager.itemEnd(url);\n }).catch(function (e) {\n if (onError) onError(e);\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n });\n scope.manager.itemStart(url);\n } }]);\n\n return ImageBitmapLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/loaders/Cache.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/ImageBitmapLoader.js", "fileName": "/src/loaders/ImageBitmapLoader.js" }, "pandav:/src/loaders/LoaderUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/LoaderUtils\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LoaderUtils = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var LoaderUtils = exports.LoaderUtils = function () {\n function LoaderUtils() {\n (0, _classCallCheck2.default)(this, LoaderUtils);\n }\n (0, _createClass2.default)(LoaderUtils, null, [{\n key: \"decodeText\",\n value: function decodeText(array) {\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder().decode(array);\n }\n var s = '';\n for (var i = 0, il = array.length; i < il; i++) {\n s += String.fromCharCode(array[i]);\n }\n try {\n return decodeURIComponent(escape(s));\n } catch (e) {\n return s;\n }\n } },\n {\n key: \"extractUrlBase\",\n value: function extractUrlBase(url) {\n var index = url.lastIndexOf('/');\n if (index === -1) return './';\n return url.slice(0, index + 1);\n } },\n {\n key: \"resolveURL\",\n value: function resolveURL(url, path) {\n if (typeof url !== 'string' || url === '') return '';\n if (/^https?:\\/\\//i.test(path) && /^\\//.test(url)) {\n path = path.replace(/(^https?:\\/\\/[^\\/]+).*/i, '$1');\n }\n if (/^(https?:)?\\/\\//i.test(url)) return url;\n if (/^data:.*,.*$/i.test(url)) return url;\n if (/^blob:.*$/i.test(url)) return url;\n return path + url;\n } }]);\n\n return LoaderUtils;\n }();return module.exports;});", "requires": [], "buildLevel": 41, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/LoaderUtils.js", "fileName": "/src/loaders/LoaderUtils.js" }, "pandav:/src/loaders/LoadingManager.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/LoadingManager\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LoadingManager = exports.DefaultLoadingManager = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var LoadingManager = exports.LoadingManager = (0, _createClass2.default)(function LoadingManager(onLoad, onProgress, onError) {\n (0, _classCallCheck2.default)(this, LoadingManager);\n var scope = this;\n var isLoading = false;\n var itemsLoaded = 0;\n var itemsTotal = 0;\n var urlModifier = undefined;\n var handlers = [];\n this.onStart = undefined;\n this.onLoad = onLoad;\n this.onProgress = onProgress;\n this.onError = onError;\n this.itemStart = function (url) {\n itemsTotal++;\n if (isLoading === false) {\n if (scope.onStart !== undefined) {\n scope.onStart(url, itemsLoaded, itemsTotal);\n }\n }\n isLoading = true;\n };\n this.itemEnd = function (url) {\n itemsLoaded++;\n if (scope.onProgress !== undefined) {\n scope.onProgress(url, itemsLoaded, itemsTotal);\n }\n if (itemsLoaded === itemsTotal) {\n isLoading = false;\n if (scope.onLoad !== undefined) {\n scope.onLoad();\n }\n }\n };\n this.itemError = function (url) {\n if (scope.onError !== undefined) {\n scope.onError(url);\n }\n };\n this.resolveURL = function (url) {\n if (urlModifier) {\n return urlModifier(url);\n }\n return url;\n };\n this.setURLModifier = function (transform) {\n urlModifier = transform;\n return this;\n };\n this.addHandler = function (regex, loader) {\n handlers.push(regex, loader);\n return this;\n };\n this.removeHandler = function (regex) {\n var index = handlers.indexOf(regex);\n if (index !== -1) {\n handlers.splice(index, 2);\n }\n return this;\n };\n this.getHandler = function (file) {\n for (var i = 0, l = handlers.length; i < l; i += 2) {\n var regex = handlers[i];\n var loader = handlers[i + 1];\n if (regex.global) regex.lastIndex = 0;\n if (regex.test(file)) {\n return loader;\n }\n }\n return null;\n };\n });\n var DefaultLoadingManager = exports.DefaultLoadingManager = new LoadingManager();return module.exports;});", "requires": [], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/LoadingManager.js", "fileName": "/src/loaders/LoadingManager.js" }, "pandav:/src/loaders/Loader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/Loader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/loaders/LoadingManager\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Loader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _LoadingManager = require('pandav:/com/three/0.145.0/src/loaders/LoadingManager');\n var Loader = exports.Loader = function () {\n function Loader(manager) {\n (0, _classCallCheck2.default)(this, Loader);\n this.manager = manager !== undefined ? manager : _LoadingManager.DefaultLoadingManager;\n this.crossOrigin = 'anonymous';\n this.withCredentials = false;\n this.path = '';\n this.resourcePath = '';\n this.requestHeader = {};\n }\n (0, _createClass2.default)(Loader, [{\n key: \"load\",\n value: function load() {} },\n {\n key: \"loadAsync\",\n value: function loadAsync(url, onProgress) {\n var scope = this;\n return new Promise(function (resolve, reject) {\n scope.load(url, resolve, onProgress, reject);\n });\n } },\n {\n key: \"parse\",\n value: function parse() {} },\n {\n key: \"setCrossOrigin\",\n value: function setCrossOrigin(crossOrigin) {\n this.crossOrigin = crossOrigin;\n return this;\n } },\n {\n key: \"setWithCredentials\",\n value: function setWithCredentials(value) {\n this.withCredentials = value;\n return this;\n } },\n {\n key: \"setPath\",\n value: function setPath(path) {\n this.path = path;\n return this;\n } },\n {\n key: \"setResourcePath\",\n value: function setResourcePath(resourcePath) {\n this.resourcePath = resourcePath;\n return this;\n } },\n {\n key: \"setRequestHeader\",\n value: function setRequestHeader(requestHeader) {\n this.requestHeader = requestHeader;\n return this;\n } }]);\n\n return Loader;\n }();return module.exports;});", "requires": [ "pandav:/src/loaders/LoadingManager.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/Loader.js", "fileName": "/src/loaders/Loader.js" }, "pandav:/src/loaders/TextureLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/TextureLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/loaders/ImageLoader\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/loaders/Loader\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TextureLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _ImageLoader = require('pandav:/com/three/0.145.0/src/loaders/ImageLoader');\n var _Texture = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var TextureLoader = exports.TextureLoader = function (_Loader) {\n (0, _inherits2.default)(TextureLoader, _Loader);\n var _super = (0, _createSuper2.default)(TextureLoader);\n function TextureLoader(manager) {\n (0, _classCallCheck2.default)(this, TextureLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(TextureLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var texture = new _Texture.Texture();\n var loader = new _ImageLoader.ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n loader.setPath(this.path);\n loader.load(url, function (image) {\n texture.image = image;\n texture.needsUpdate = true;\n if (onLoad !== undefined) {\n onLoad(texture);\n }\n }, onProgress, onError);\n return texture;\n } }]);\n\n return TextureLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/loaders/ImageLoader.js", "pandav:/src/textures/Texture.js", "pandav:/src/loaders/Loader.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/TextureLoader.js", "fileName": "/src/loaders/TextureLoader.js" }, "pandav:/src/materials/LineBasicMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineBasicMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var LineBasicMaterial = exports.LineBasicMaterial = function (_Material) {\n (0, _inherits2.default)(LineBasicMaterial, _Material);\n var _super = (0, _createSuper2.default)(LineBasicMaterial);\n function LineBasicMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, LineBasicMaterial);\n _this = _super.call(this);\n _this.isLineBasicMaterial = true;\n _this.type = 'LineBasicMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.linewidth = 1;\n _this.linecap = 'round';\n _this.linejoin = 'round';\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(LineBasicMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineBasicMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.linewidth = source.linewidth;\n this.linecap = source.linecap;\n this.linejoin = source.linejoin;\n this.fog = source.fog;\n return this;\n } }]);\n\n return LineBasicMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/math/Color.js" ], "buildLevel": 20, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/LineBasicMaterial.js", "fileName": "/src/materials/LineBasicMaterial.js" }, "pandav:/src/loaders/MaterialLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/MaterialLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/loaders/Loader\", \"pandav:/com/three/0.145.0/src/materials/Materials\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MaterialLoader = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector3 = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var _Matrix2 = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var _Materials = require('pandav:/com/three/0.145.0/src/materials/Materials');\n var MaterialLoader = exports.MaterialLoader = function (_Loader) {\n (0, _inherits2.default)(MaterialLoader, _Loader);\n var _super = (0, _createSuper2.default)(MaterialLoader);\n function MaterialLoader(manager) {\n var _this;\n (0, _classCallCheck2.default)(this, MaterialLoader);\n _this = _super.call(this, manager);\n _this.textures = {};\n return _this;\n }\n (0, _createClass2.default)(MaterialLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var loader = new _FileLoader.FileLoader(scope.manager);\n loader.setPath(scope.path);\n loader.setRequestHeader(scope.requestHeader);\n loader.setWithCredentials(scope.withCredentials);\n loader.load(url, function (text) {\n try {\n onLoad(scope.parse(JSON.parse(text)));\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n console.error(e);\n }\n scope.manager.itemError(url);\n }\n }, onProgress, onError);\n } },\n {\n key: \"parse\",\n value: function parse(json) {\n var textures = this.textures;\n function getTexture(name) {\n if (textures[name] === undefined) {\n console.warn('THREE.MaterialLoader: Undefined texture', name);\n }\n return textures[name];\n }\n var material = MaterialLoader.createMaterialFromType(json.type);\n if (json.uuid !== undefined) material.uuid = json.uuid;\n if (json.name !== undefined) material.name = json.name;\n if (json.color !== undefined && material.color !== undefined) material.color.setHex(json.color);\n if (json.roughness !== undefined) material.roughness = json.roughness;\n if (json.metalness !== undefined) material.metalness = json.metalness;\n if (json.sheen !== undefined) material.sheen = json.sheen;\n if (json.sheenColor !== undefined) material.sheenColor = new _Color.Color().setHex(json.sheenColor);\n if (json.sheenRoughness !== undefined) material.sheenRoughness = json.sheenRoughness;\n if (json.emissive !== undefined && material.emissive !== undefined) material.emissive.setHex(json.emissive);\n if (json.specular !== undefined && material.specular !== undefined) material.specular.setHex(json.specular);\n if (json.specularIntensity !== undefined) material.specularIntensity = json.specularIntensity;\n if (json.specularColor !== undefined && material.specularColor !== undefined) material.specularColor.setHex(json.specularColor);\n if (json.shininess !== undefined) material.shininess = json.shininess;\n if (json.clearcoat !== undefined) material.clearcoat = json.clearcoat;\n if (json.clearcoatRoughness !== undefined) material.clearcoatRoughness = json.clearcoatRoughness;\n if (json.iridescence !== undefined) material.iridescence = json.iridescence;\n if (json.iridescenceIOR !== undefined) material.iridescenceIOR = json.iridescenceIOR;\n if (json.iridescenceThicknessRange !== undefined) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n if (json.transmission !== undefined) material.transmission = json.transmission;\n if (json.thickness !== undefined) material.thickness = json.thickness;\n if (json.attenuationDistance !== undefined) material.attenuationDistance = json.attenuationDistance;\n if (json.attenuationColor !== undefined && material.attenuationColor !== undefined) material.attenuationColor.setHex(json.attenuationColor);\n if (json.fog !== undefined) material.fog = json.fog;\n if (json.flatShading !== undefined) material.flatShading = json.flatShading;\n if (json.blending !== undefined) material.blending = json.blending;\n if (json.combine !== undefined) material.combine = json.combine;\n if (json.side !== undefined) material.side = json.side;\n if (json.shadowSide !== undefined) material.shadowSide = json.shadowSide;\n if (json.opacity !== undefined) material.opacity = json.opacity;\n if (json.transparent !== undefined) material.transparent = json.transparent;\n if (json.alphaTest !== undefined) material.alphaTest = json.alphaTest;\n if (json.depthTest !== undefined) material.depthTest = json.depthTest;\n if (json.depthWrite !== undefined) material.depthWrite = json.depthWrite;\n if (json.colorWrite !== undefined) material.colorWrite = json.colorWrite;\n if (json.stencilWrite !== undefined) material.stencilWrite = json.stencilWrite;\n if (json.stencilWriteMask !== undefined) material.stencilWriteMask = json.stencilWriteMask;\n if (json.stencilFunc !== undefined) material.stencilFunc = json.stencilFunc;\n if (json.stencilRef !== undefined) material.stencilRef = json.stencilRef;\n if (json.stencilFuncMask !== undefined) material.stencilFuncMask = json.stencilFuncMask;\n if (json.stencilFail !== undefined) material.stencilFail = json.stencilFail;\n if (json.stencilZFail !== undefined) material.stencilZFail = json.stencilZFail;\n if (json.stencilZPass !== undefined) material.stencilZPass = json.stencilZPass;\n if (json.wireframe !== undefined) material.wireframe = json.wireframe;\n if (json.wireframeLinewidth !== undefined) material.wireframeLinewidth = json.wireframeLinewidth;\n if (json.wireframeLinecap !== undefined) material.wireframeLinecap = json.wireframeLinecap;\n if (json.wireframeLinejoin !== undefined) material.wireframeLinejoin = json.wireframeLinejoin;\n if (json.rotation !== undefined) material.rotation = json.rotation;\n if (json.linewidth !== 1) material.linewidth = json.linewidth;\n if (json.dashSize !== undefined) material.dashSize = json.dashSize;\n if (json.gapSize !== undefined) material.gapSize = json.gapSize;\n if (json.scale !== undefined) material.scale = json.scale;\n if (json.polygonOffset !== undefined) material.polygonOffset = json.polygonOffset;\n if (json.polygonOffsetFactor !== undefined) material.polygonOffsetFactor = json.polygonOffsetFactor;\n if (json.polygonOffsetUnits !== undefined) material.polygonOffsetUnits = json.polygonOffsetUnits;\n if (json.dithering !== undefined) material.dithering = json.dithering;\n if (json.alphaToCoverage !== undefined) material.alphaToCoverage = json.alphaToCoverage;\n if (json.premultipliedAlpha !== undefined) material.premultipliedAlpha = json.premultipliedAlpha;\n if (json.visible !== undefined) material.visible = json.visible;\n if (json.toneMapped !== undefined) material.toneMapped = json.toneMapped;\n if (json.userData !== undefined) material.userData = json.userData;\n if (json.vertexColors !== undefined) {\n if (typeof json.vertexColors === 'number') {\n material.vertexColors = json.vertexColors > 0 ? true : false;\n } else {\n material.vertexColors = json.vertexColors;\n }\n }\n if (json.uniforms !== undefined) {\n for (var name in json.uniforms) {\n var uniform = json.uniforms[name];\n material.uniforms[name] = {};\n switch (uniform.type) {\n case 't':\n material.uniforms[name].value = getTexture(uniform.value);\n break;\n case 'c':\n material.uniforms[name].value = new _Color.Color().setHex(uniform.value);\n break;\n case 'v2':\n material.uniforms[name].value = new _Vector.Vector2().fromArray(uniform.value);\n break;\n case 'v3':\n material.uniforms[name].value = new _Vector2.Vector3().fromArray(uniform.value);\n break;\n case 'v4':\n material.uniforms[name].value = new _Vector3.Vector4().fromArray(uniform.value);\n break;\n case 'm3':\n material.uniforms[name].value = new _Matrix.Matrix3().fromArray(uniform.value);\n break;\n case 'm4':\n material.uniforms[name].value = new _Matrix2.Matrix4().fromArray(uniform.value);\n break;\n default:\n material.uniforms[name].value = uniform.value;}\n\n }\n }\n if (json.defines !== undefined) material.defines = json.defines;\n if (json.vertexShader !== undefined) material.vertexShader = json.vertexShader;\n if (json.fragmentShader !== undefined) material.fragmentShader = json.fragmentShader;\n if (json.glslVersion !== undefined) material.glslVersion = json.glslVersion;\n if (json.hsvColorCorrection !== undefined) {\n material.hsvColorCorrection.fromJSON(json.hsvColorCorrection);\n }\n if (json.brightnessContrast !== undefined) {\n material.brightnessContrast.fromJSON(json.brightnessContrast);\n }\n if (json.tag !== undefined) {\n material.tag = json.tag;\n }\n if (material.customUniformConfig !== undefined) {\n for (var _name in material.customUniformConfig) {\n if (json[_name] === undefined) {\n continue;\n }\n switch (material.customUniformConfig[_name].uniformType) {\n case 't':\n if (json[_name] !== null) {\n material[_name] = getTexture(json[_name]);\n }\n break;\n case 'c':\n material[_name] = new _Color.Color().setHex(json[_name]);\n break;\n case 'v2':\n material[_name] = new _Vector.Vector2().fromJSON(json[_name]);\n break;\n case 'v3':\n material[_name] = new _Vector2.Vector3().fromJSON(json[_name]);\n break;\n case 'v4':\n material[_name] = new _Vector3.Vector4().fromJSON(json[_name]);\n break;\n default:\n material[_name] = json[_name];}\n\n }\n }\n materialFlags.forEach(function (flag) {\n if (json[flag] !== undefined) {\n material[flag] = true;\n }\n });\n if (json.extensions !== undefined) {\n for (var key in json.extensions) {\n material.extensions[key] = json.extensions[key];\n }\n }\n if (json.size !== undefined) material.size = json.size;\n if (json.sizeAttenuation !== undefined) material.sizeAttenuation = json.sizeAttenuation;\n if (json.map !== undefined) material.map = getTexture(json.map);\n if (json.matcap !== undefined) material.matcap = getTexture(json.matcap);\n if (json.alphaMap !== undefined) material.alphaMap = getTexture(json.alphaMap);\n if (json.bumpMap !== undefined) material.bumpMap = getTexture(json.bumpMap);\n if (json.bumpScale !== undefined) material.bumpScale = json.bumpScale;\n if (json.normalMap !== undefined) material.normalMap = getTexture(json.normalMap);\n if (json.normalMapType !== undefined) material.normalMapType = json.normalMapType;\n if (json.normalScale !== undefined) {\n var normalScale = json.normalScale;\n if (Array.isArray(normalScale) === false) {\n normalScale = [normalScale, normalScale];\n }\n material.normalScale = new _Vector.Vector2().fromArray(normalScale);\n }\n if (json.displacementMap !== undefined) material.displacementMap = getTexture(json.displacementMap);\n if (json.displacementScale !== undefined) material.displacementScale = json.displacementScale;\n if (json.displacementBias !== undefined) material.displacementBias = json.displacementBias;\n if (json.roughnessMap !== undefined) material.roughnessMap = getTexture(json.roughnessMap);\n if (json.metalnessMap !== undefined) material.metalnessMap = getTexture(json.metalnessMap);\n if (json.emissiveMap !== undefined) material.emissiveMap = getTexture(json.emissiveMap);\n if (json.emissiveIntensity !== undefined) material.emissiveIntensity = json.emissiveIntensity;\n if (json.specularMap !== undefined) material.specularMap = getTexture(json.specularMap);\n if (json.specularIntensityMap !== undefined) material.specularIntensityMap = getTexture(json.specularIntensityMap);\n if (json.specularColorMap !== undefined) material.specularColorMap = getTexture(json.specularColorMap);\n if (json.envMap !== undefined) material.envMap = getTexture(json.envMap);\n if (json.reflectivity !== undefined) material.reflectivity = json.reflectivity;\n if (json.refractionRatio !== undefined) material.refractionRatio = json.refractionRatio;\n if (json.lightMap !== undefined) material.lightMap = getTexture(json.lightMap);\n if (json.lightMapIntensity !== undefined) material.lightMapIntensity = json.lightMapIntensity;\n if (json.aoMap !== undefined) material.aoMap = getTexture(json.aoMap);\n if (json.aoMapIntensity !== undefined) material.aoMapIntensity = json.aoMapIntensity;\n if (json.gradientMap !== undefined) material.gradientMap = getTexture(json.gradientMap);\n if (json.clearcoatMap !== undefined) material.clearcoatMap = getTexture(json.clearcoatMap);\n if (json.clearcoatRoughnessMap !== undefined) material.clearcoatRoughnessMap = getTexture(json.clearcoatRoughnessMap);\n if (json.clearcoatNormalMap !== undefined) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap);\n if (json.clearcoatNormalScale !== undefined) material.clearcoatNormalScale = new _Vector.Vector2().fromArray(json.clearcoatNormalScale);\n if (json.iridescenceMap !== undefined) material.iridescenceMap = getTexture(json.iridescenceMap);\n if (json.iridescenceThicknessMap !== undefined) material.iridescenceThicknessMap = getTexture(json.iridescenceThicknessMap);\n if (json.transmissionMap !== undefined) material.transmissionMap = getTexture(json.transmissionMap);\n if (json.thicknessMap !== undefined) material.thicknessMap = getTexture(json.thicknessMap);\n if (json.sheenColorMap !== undefined) material.sheenColorMap = getTexture(json.sheenColorMap);\n if (json.sheenRoughnessMap !== undefined) material.sheenRoughnessMap = getTexture(json.sheenRoughnessMap);\n return material;\n } },\n {\n key: \"setTextures\",\n value: function setTextures(value) {\n this.textures = value;\n return this;\n } }],\n [{\n key: \"createMaterialFromType\",\n value: function createMaterialFromType(type) {\n var materialLib = {\n ShadowMaterial: _Materials.ShadowMaterial,\n SpriteMaterial: _Materials.SpriteMaterial,\n RawShaderMaterial: _Materials.RawShaderMaterial,\n ShaderMaterial: _Materials.ShaderMaterial,\n PointsMaterial: _Materials.PointsMaterial,\n MeshPhysicalMaterial: _Materials.MeshPhysicalMaterial,\n MeshStandardMaterial: _Materials.MeshStandardMaterial,\n MeshPhongMaterial: _Materials.MeshPhongMaterial,\n MeshToonMaterial: _Materials.MeshToonMaterial,\n MeshNormalMaterial: _Materials.MeshNormalMaterial,\n MeshLambertMaterial: _Materials.MeshLambertMaterial,\n MeshDepthMaterial: _Materials.MeshDepthMaterial,\n MeshDistanceMaterial: _Materials.MeshDistanceMaterial,\n MeshBasicMaterial: _Materials.MeshBasicMaterial,\n MeshMatcapMaterial: _Materials.MeshMatcapMaterial,\n LineDashedMaterial: _Materials.LineDashedMaterial,\n LineBasicMaterial: _Materials.LineBasicMaterial,\n Material: _Materials.Material };\n\n return new materialLib[type]();\n } }]);\n\n return MaterialLoader;\n }(_Loader2.Loader);return module.exports;});", "requires": [ "pandav:/src/math/Color.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector4.js", "pandav:/src/math/Matrix3.js", "pandav:/src/math/Matrix4.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/loaders/Loader.js", "pandav:/src/materials/Materials.js" ], "buildLevel": 40, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/MaterialLoader.js", "fileName": "/src/loaders/MaterialLoader.js" }, "pandav:/src/materials/Materials.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/Materials\", [\"pandav:/com/three/0.145.0/src/materials/ShadowMaterial\", \"pandav:/com/three/0.145.0/src/materials/SpriteMaterial\", \"pandav:/com/three/0.145.0/src/materials/RawShaderMaterial\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\", \"pandav:/com/three/0.145.0/src/materials/PointsMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshPhysicalMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshStandardMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshPhongMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshToonMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshNormalMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshLambertMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshDepthMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshDistanceMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshMatcapMaterial\", \"pandav:/com/three/0.145.0/src/materials/LineDashedMaterial\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/materials/Material\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n Object.defineProperty(exports, \"LineBasicMaterial\", {\n enumerable: true,\n get: function get() {\n return _LineBasicMaterial.LineBasicMaterial;\n } });\n\n Object.defineProperty(exports, \"LineDashedMaterial\", {\n enumerable: true,\n get: function get() {\n return _LineDashedMaterial.LineDashedMaterial;\n } });\n\n Object.defineProperty(exports, \"Material\", {\n enumerable: true,\n get: function get() {\n return _Material.Material;\n } });\n\n Object.defineProperty(exports, \"MeshBasicMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshBasicMaterial.MeshBasicMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshDepthMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshDepthMaterial.MeshDepthMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshDistanceMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshDistanceMaterial.MeshDistanceMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshLambertMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshLambertMaterial.MeshLambertMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshMatcapMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshMatcapMaterial.MeshMatcapMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshNormalMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshNormalMaterial.MeshNormalMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshPhongMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshPhongMaterial.MeshPhongMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshPhysicalMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshPhysicalMaterial.MeshPhysicalMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshStandardMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshStandardMaterial.MeshStandardMaterial;\n } });\n\n Object.defineProperty(exports, \"MeshToonMaterial\", {\n enumerable: true,\n get: function get() {\n return _MeshToonMaterial.MeshToonMaterial;\n } });\n\n Object.defineProperty(exports, \"PointsMaterial\", {\n enumerable: true,\n get: function get() {\n return _PointsMaterial.PointsMaterial;\n } });\n\n Object.defineProperty(exports, \"RawShaderMaterial\", {\n enumerable: true,\n get: function get() {\n return _RawShaderMaterial.RawShaderMaterial;\n } });\n\n Object.defineProperty(exports, \"ShaderMaterial\", {\n enumerable: true,\n get: function get() {\n return _ShaderMaterial.ShaderMaterial;\n } });\n\n Object.defineProperty(exports, \"ShadowMaterial\", {\n enumerable: true,\n get: function get() {\n return _ShadowMaterial.ShadowMaterial;\n } });\n\n Object.defineProperty(exports, \"SpriteMaterial\", {\n enumerable: true,\n get: function get() {\n return _SpriteMaterial.SpriteMaterial;\n } });\n\n var _ShadowMaterial = require('pandav:/com/three/0.145.0/src/materials/ShadowMaterial');\n var _SpriteMaterial = require('pandav:/com/three/0.145.0/src/materials/SpriteMaterial');\n var _RawShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/RawShaderMaterial');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var _PointsMaterial = require('pandav:/com/three/0.145.0/src/materials/PointsMaterial');\n var _MeshPhysicalMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshPhysicalMaterial');\n var _MeshStandardMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshStandardMaterial');\n var _MeshPhongMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshPhongMaterial');\n var _MeshToonMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshToonMaterial');\n var _MeshNormalMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshNormalMaterial');\n var _MeshLambertMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshLambertMaterial');\n var _MeshDepthMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshDepthMaterial');\n var _MeshDistanceMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshDistanceMaterial');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _MeshMatcapMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshMatcapMaterial');\n var _LineDashedMaterial = require('pandav:/com/three/0.145.0/src/materials/LineDashedMaterial');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _Material = require('pandav:/com/three/0.145.0/src/materials/Material');return module.exports;});", "requires": [ "pandav:/src/materials/ShadowMaterial.js", "pandav:/src/materials/SpriteMaterial.js", "pandav:/src/materials/RawShaderMaterial.js", "pandav:/src/materials/ShaderMaterial.js", "pandav:/src/materials/PointsMaterial.js", "pandav:/src/materials/MeshPhysicalMaterial.js", "pandav:/src/materials/MeshStandardMaterial.js", "pandav:/src/materials/MeshPhongMaterial.js", "pandav:/src/materials/MeshToonMaterial.js", "pandav:/src/materials/MeshNormalMaterial.js", "pandav:/src/materials/MeshLambertMaterial.js", "pandav:/src/materials/MeshDepthMaterial.js", "pandav:/src/materials/MeshDistanceMaterial.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/materials/MeshMatcapMaterial.js", "pandav:/src/materials/LineDashedMaterial.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/materials/Material.js" ], "buildLevel": 26, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/Materials.js", "fileName": "/src/materials/Materials.js" }, "pandav:/src/loaders/ObjectLoader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/loaders/ObjectLoader\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/asyncToGenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/objects/Group\", \"pandav:/com/three/0.145.0/src/objects/InstancedMesh\", \"pandav:/com/three/0.145.0/src/objects/Sprite\", \"pandav:/com/three/0.145.0/src/objects/Points\", \"pandav:/com/three/0.145.0/src/objects/Line\", \"pandav:/com/three/0.145.0/src/objects/LineLoop\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/objects/LOD\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/objects/SkinnedMesh\", \"pandav:/com/three/0.145.0/src/objects/Bone\", \"pandav:/com/three/0.145.0/src/objects/Skeleton\", \"pandav:/com/three/0.145.0/src/extras/core/Shape\", \"pandav:/com/three/0.145.0/src/scenes/Fog\", \"pandav:/com/three/0.145.0/src/scenes/FogExp2\", \"pandav:/com/three/0.145.0/src/lights/HemisphereLight\", \"pandav:/com/three/0.145.0/src/lights/SpotLight\", \"pandav:/com/three/0.145.0/src/lights/PointLight\", \"pandav:/com/three/0.145.0/src/lights/DirectionalLight\", \"pandav:/com/three/0.145.0/src/lights/AmbientLight\", \"pandav:/com/three/0.145.0/src/lights/RectAreaLight\", \"pandav:/com/three/0.145.0/src/lights/LightProbe\", \"pandav:/com/three/0.145.0/src/cameras/OrthographicCamera\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\", \"pandav:/com/three/0.145.0/src/scenes/Scene\", \"pandav:/com/three/0.145.0/src/textures/CubeTexture\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/textures/Source\", \"pandav:/com/three/0.145.0/src/textures/DataTexture\", \"pandav:/com/three/0.145.0/src/loaders/ImageLoader\", \"pandav:/com/three/0.145.0/src/loaders/LoadingManager\", \"pandav:/com/three/0.145.0/src/animation/AnimationClip\", \"pandav:/com/three/0.145.0/src/loaders/MaterialLoader\", \"pandav:/com/three/0.145.0/src/loaders/LoaderUtils\", \"pandav:/com/three/0.145.0/src/loaders/BufferGeometryLoader\", \"pandav:/com/three/0.145.0/src/loaders/Loader\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/geometries/Geometries\", \"pandav:/com/three/0.145.0/src/utils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ObjectLoader = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _asyncToGenerator2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/asyncToGenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _InstancedBufferAttribute = require('pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Object3D = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Group = require('pandav:/com/three/0.145.0/src/objects/Group');\n var _InstancedMesh = require('pandav:/com/three/0.145.0/src/objects/InstancedMesh');\n var _Sprite = require('pandav:/com/three/0.145.0/src/objects/Sprite');\n var _Points = require('pandav:/com/three/0.145.0/src/objects/Points');\n var _Line = require('pandav:/com/three/0.145.0/src/objects/Line');\n var _LineLoop = require('pandav:/com/three/0.145.0/src/objects/LineLoop');\n var _LineSegments = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LOD = require('pandav:/com/three/0.145.0/src/objects/LOD');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _SkinnedMesh = require('pandav:/com/three/0.145.0/src/objects/SkinnedMesh');\n var _Bone = require('pandav:/com/three/0.145.0/src/objects/Bone');\n var _Skeleton = require('pandav:/com/three/0.145.0/src/objects/Skeleton');\n var _Shape = require('pandav:/com/three/0.145.0/src/extras/core/Shape');\n var _Fog = require('pandav:/com/three/0.145.0/src/scenes/Fog');\n var _FogExp = require('pandav:/com/three/0.145.0/src/scenes/FogExp2');\n var _HemisphereLight = require('pandav:/com/three/0.145.0/src/lights/HemisphereLight');\n var _SpotLight = require('pandav:/com/three/0.145.0/src/lights/SpotLight');\n var _PointLight = require('pandav:/com/three/0.145.0/src/lights/PointLight');\n var _DirectionalLight = require('pandav:/com/three/0.145.0/src/lights/DirectionalLight');\n var _AmbientLight = require('pandav:/com/three/0.145.0/src/lights/AmbientLight');\n var _RectAreaLight = require('pandav:/com/three/0.145.0/src/lights/RectAreaLight');\n var _LightProbe = require('pandav:/com/three/0.145.0/src/lights/LightProbe');\n var _OrthographicCamera = require('pandav:/com/three/0.145.0/src/cameras/OrthographicCamera');\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n var _Scene = require('pandav:/com/three/0.145.0/src/scenes/Scene');\n var _CubeTexture = require('pandav:/com/three/0.145.0/src/textures/CubeTexture');\n var _Texture = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _Source = require('pandav:/com/three/0.145.0/src/textures/Source');\n var _DataTexture = require('pandav:/com/three/0.145.0/src/textures/DataTexture');\n var _ImageLoader = require('pandav:/com/three/0.145.0/src/loaders/ImageLoader');\n var _LoadingManager = require('pandav:/com/three/0.145.0/src/loaders/LoadingManager');\n var _AnimationClip = require('pandav:/com/three/0.145.0/src/animation/AnimationClip');\n var _MaterialLoader = require('pandav:/com/three/0.145.0/src/loaders/MaterialLoader');\n var _LoaderUtils = require('pandav:/com/three/0.145.0/src/loaders/LoaderUtils');\n var _BufferGeometryLoader = require('pandav:/com/three/0.145.0/src/loaders/BufferGeometryLoader');\n var _Loader2 = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var Geometries = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/geometries/Geometries'));\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var ObjectLoader = exports.ObjectLoader = function (_Loader) {\n (0, _inherits2.default)(ObjectLoader, _Loader);\n var _super = (0, _createSuper2.default)(ObjectLoader);\n function ObjectLoader(manager) {\n (0, _classCallCheck2.default)(this, ObjectLoader);\n return _super.call(this, manager);\n }\n (0, _createClass2.default)(ObjectLoader, [{\n key: \"load\",\n value: function load(url, onLoad, onProgress, onError) {\n var scope = this;\n var path = this.path === '' ? _LoaderUtils.LoaderUtils.extractUrlBase(url) : this.path;\n this.resourcePath = this.resourcePath || path;\n var loader = new _FileLoader.FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n loader.load(url, function (text) {\n var json = null;\n try {\n json = JSON.parse(text);\n } catch (error) {\n if (onError !== undefined) onError(error);\n console.error('THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message);\n return;\n }\n var metadata = json.metadata;\n if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') {\n console.error('THREE.ObjectLoader: Can\\'t load ' + url);\n return;\n }\n scope.parse(json, onLoad);\n }, onProgress, onError);\n } },\n {\n key: \"loadAsync\",\n value: function () {\n var _loadAsync = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(url, onProgress) {\n var scope, path, loader, text, json, metadata;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n scope = this;\n path = this.path === '' ? _LoaderUtils.LoaderUtils.extractUrlBase(url) : this.path;\n this.resourcePath = this.resourcePath || path;\n loader = new _FileLoader.FileLoader(this.manager);\n loader.setPath(this.path);\n loader.setRequestHeader(this.requestHeader);\n loader.setWithCredentials(this.withCredentials);\n _context.next = 9;\n return loader.loadAsync(url, onProgress);\n case 9:\n text = _context.sent;\n json = JSON.parse(text);\n metadata = json.metadata;\n if (!(metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry')) {\n _context.next = 14;\n break;\n }\n throw new Error('THREE.ObjectLoader: Can\\'t load ' + url);\n case 14:\n _context.next = 16;\n return scope.parseAsync(json);\n case 16:\n return _context.abrupt(\"return\", _context.sent);\n case 17:\n case \"end\":\n return _context.stop();}\n\n }, _callee, this);\n }));\n function loadAsync(_x, _x2) {\n return _loadAsync.apply(this, arguments);\n }\n return loadAsync;\n }() },\n {\n key: \"parse\",\n value: function parse(json, onLoad) {\n var animations = this.parseAnimations(json.animations);\n var shapes = this.parseShapes(json.shapes);\n var geometries = this.parseGeometries(json.geometries, shapes);\n var images = this.parseImages(json.images, function () {\n if (onLoad !== undefined) onLoad(object);\n });\n var textures = this.parseTextures(json.textures, images);\n var materials = this.parseMaterials(json.materials, textures);\n var object = this.parseObject(json.object, geometries, materials, textures, animations);\n var skeletons = this.parseSkeletons(json.skeletons, object);\n this.bindSkeletons(object, skeletons);\n if (onLoad !== undefined) {\n var hasImages = false;\n for (var uuid in images) {\n if (images[uuid].data instanceof HTMLImageElement) {\n hasImages = true;\n break;\n }\n }\n if (hasImages === false) onLoad(object);\n }\n return object;\n } },\n {\n key: \"parseAsync\",\n value: function () {\n var _parseAsync = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(json) {\n var animations, shapes, geometries, images, textures, materials, object, skeletons;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n animations = this.parseAnimations(json.animations);\n shapes = this.parseShapes(json.shapes);\n geometries = this.parseGeometries(json.geometries, shapes);\n _context2.next = 5;\n return this.parseImagesAsync(json.images);\n case 5:\n images = _context2.sent;\n textures = this.parseTextures(json.textures, images);\n materials = this.parseMaterials(json.materials, textures);\n object = this.parseObject(json.object, geometries, materials, textures, animations);\n skeletons = this.parseSkeletons(json.skeletons, object);\n this.bindSkeletons(object, skeletons);\n return _context2.abrupt(\"return\", object);\n case 12:\n case \"end\":\n return _context2.stop();}\n\n }, _callee2, this);\n }));\n function parseAsync(_x3) {\n return _parseAsync.apply(this, arguments);\n }\n return parseAsync;\n }() },\n {\n key: \"parseShapes\",\n value: function parseShapes(json) {\n var shapes = {};\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var shape = new _Shape.Shape().fromJSON(json[i]);\n shapes[shape.uuid] = shape;\n }\n }\n return shapes;\n } },\n {\n key: \"parseSkeletons\",\n value: function parseSkeletons(json, object) {\n var skeletons = {};\n var bones = {};\n object.traverse(function (child) {\n if (child.isBone) bones[child.uuid] = child;\n });\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var skeleton = new _Skeleton.Skeleton().fromJSON(json[i], bones);\n skeletons[skeleton.uuid] = skeleton;\n }\n }\n return skeletons;\n } },\n {\n key: \"parseGeometries\",\n value: function parseGeometries(json, shapes) {\n var geometries = {};\n if (json !== undefined) {\n var bufferGeometryLoader = new _BufferGeometryLoader.BufferGeometryLoader();\n for (var i = 0, l = json.length; i < l; i++) {\n var geometry = void 0;\n var data = json[i];\n switch (data.type) {\n case 'BufferGeometry':\n case 'InstancedBufferGeometry':\n geometry = bufferGeometryLoader.parse(data);\n break;\n default:\n if (data.type in Geometries) {\n geometry = Geometries[data.type].fromJSON(data, shapes);\n } else {\n console.warn(\"THREE.ObjectLoader: Unsupported geometry type \\\"\".concat(data.type, \"\\\"\"));\n }}\n\n geometry.uuid = data.uuid;\n if (data.name !== undefined) geometry.name = data.name;\n if (geometry.isBufferGeometry === true && data.userData !== undefined) geometry.userData = data.userData;\n geometries[data.uuid] = geometry;\n }\n }\n return geometries;\n } },\n {\n key: \"parseMaterials\",\n value: function parseMaterials(json, textures) {\n var cache = {};\n var materials = {};\n if (json !== undefined) {\n var loader = new _MaterialLoader.MaterialLoader();\n loader.setTextures(textures);\n for (var i = 0, l = json.length; i < l; i++) {\n var data = json[i];\n if (cache[data.uuid] === undefined) {\n cache[data.uuid] = loader.parse(data);\n }\n materials[data.uuid] = cache[data.uuid];\n }\n }\n return materials;\n } },\n {\n key: \"parseAnimations\",\n value: function parseAnimations(json) {\n var animations = {};\n if (json !== undefined) {\n for (var i = 0; i < json.length; i++) {\n var data = json[i];\n var clip = _AnimationClip.AnimationClip.parse(data);\n animations[clip.uuid] = clip;\n }\n }\n return animations;\n } },\n {\n key: \"parseImages\",\n value: function parseImages(json, onLoad) {\n var scope = this;\n var images = {};\n var loader;\n function loadImage(url) {\n scope.manager.itemStart(url);\n return loader.load(url, function () {\n scope.manager.itemEnd(url);\n }, undefined, function () {\n scope.manager.itemError(url);\n scope.manager.itemEnd(url);\n });\n }\n function deserializeImage(image) {\n if (typeof image === 'string') {\n var url = image;\n var path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n return loadImage(path);\n } else {\n if (image.data) {\n return {\n data: (0, _utils.getTypedArray)(image.type, image.data),\n width: image.width,\n height: image.height };\n\n } else {\n return null;\n }\n }\n }\n if (json !== undefined && json.length > 0) {\n var manager = new _LoadingManager.LoadingManager(onLoad);\n loader = new _ImageLoader.ImageLoader(manager);\n loader.setCrossOrigin(this.crossOrigin);\n for (var i = 0, il = json.length; i < il; i++) {\n var image = json[i];\n var url = image.url;\n if (Array.isArray(url)) {\n var imageArray = [];\n for (var j = 0, jl = url.length; j < jl; j++) {\n var currentUrl = url[j];\n var deserializedImage = deserializeImage(currentUrl);\n if (deserializedImage !== null) {\n if (deserializedImage instanceof HTMLImageElement) {\n imageArray.push(deserializedImage);\n } else {\n imageArray.push(new _DataTexture.DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n }\n }\n }\n images[image.uuid] = new _Source.Source(imageArray);\n } else {\n var _deserializedImage = deserializeImage(image.url);\n images[image.uuid] = new _Source.Source(_deserializedImage);\n }\n }\n }\n return images;\n } },\n {\n key: \"parseImagesAsync\",\n value: function () {\n var _parseImagesAsync = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(json) {\n var scope, images, loader, deserializeImage, _deserializeImage, i, il, image, url, imageArray, j, jl, currentUrl, deserializedImage, _deserializedImage2;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _deserializeImage = function _deserializeImage3() {\n _deserializeImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(image) {\n var _url, path;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n if (!(typeof image === 'string')) {\n _context3.next = 8;\n break;\n }\n _url = image;\n path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(_url) ? _url : scope.resourcePath + _url;\n _context3.next = 5;\n return loader.loadAsync(path);\n case 5:\n return _context3.abrupt(\"return\", _context3.sent);\n case 8:\n if (!image.data) {\n _context3.next = 12;\n break;\n }\n return _context3.abrupt(\"return\", {\n data: (0, _utils.getTypedArray)(image.type, image.data),\n width: image.width,\n height: image.height });\n\n case 12:\n return _context3.abrupt(\"return\", null);\n case 13:\n case \"end\":\n return _context3.stop();}\n\n }, _callee3);\n }));\n return _deserializeImage.apply(this, arguments);\n };\n deserializeImage = function _deserializeImage2(_x5) {\n return _deserializeImage.apply(this, arguments);\n };\n scope = this;\n images = {};\n if (!(json !== undefined && json.length > 0)) {\n _context4.next = 33;\n break;\n }\n loader = new _ImageLoader.ImageLoader(this.manager);\n loader.setCrossOrigin(this.crossOrigin);\n i = 0, il = json.length;\n case 8:\n if (!(i < il)) {\n _context4.next = 33;\n break;\n }\n image = json[i];\n url = image.url;\n if (!Array.isArray(url)) {\n _context4.next = 26;\n break;\n }\n imageArray = [];\n j = 0, jl = url.length;\n case 14:\n if (!(j < jl)) {\n _context4.next = 23;\n break;\n }\n currentUrl = url[j];\n _context4.next = 18;\n return deserializeImage(currentUrl);\n case 18:\n deserializedImage = _context4.sent;\n if (deserializedImage !== null) {\n if (deserializedImage instanceof HTMLImageElement) {\n imageArray.push(deserializedImage);\n } else {\n imageArray.push(new _DataTexture.DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n }\n }\n case 20:\n j++;\n _context4.next = 14;\n break;\n case 23:\n images[image.uuid] = new _Source.Source(imageArray);\n _context4.next = 30;\n break;\n case 26:\n _context4.next = 28;\n return deserializeImage(image.url);\n case 28:\n _deserializedImage2 = _context4.sent;\n images[image.uuid] = new _Source.Source(_deserializedImage2);\n case 30:\n i++;\n _context4.next = 8;\n break;\n case 33:\n return _context4.abrupt(\"return\", images);\n case 34:\n case \"end\":\n return _context4.stop();}\n\n }, _callee4, this);\n }));\n function parseImagesAsync(_x4) {\n return _parseImagesAsync.apply(this, arguments);\n }\n return parseImagesAsync;\n }() },\n {\n key: \"parseTextures\",\n value: function parseTextures(json, images) {\n function parseConstant(value, type) {\n if (typeof value === 'number') return value;\n console.warn('THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value);\n return type[value];\n }\n var textures = {};\n if (json !== undefined) {\n for (var i = 0, l = json.length; i < l; i++) {\n var data = json[i];\n if (data.image === undefined) {\n console.warn('THREE.ObjectLoader: No \"image\" specified for', data.uuid);\n }\n if (images[data.image] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined image', data.image);\n }\n var source = images[data.image];\n var image = source.data;\n var texture = void 0;\n if (Array.isArray(image)) {\n texture = new _CubeTexture.CubeTexture();\n if (image.length === 6) texture.needsUpdate = true;\n } else {\n if (image && image.data) {\n texture = new _DataTexture.DataTexture();\n } else {\n texture = new _Texture.Texture();\n }\n if (image) texture.needsUpdate = true;\n }\n texture.source = source;\n texture.uuid = data.uuid;\n if (data.name !== undefined) texture.name = data.name;\n if (data.mapping !== undefined) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING);\n if (data.offset !== undefined) texture.offset.fromArray(data.offset);\n if (data.repeat !== undefined) texture.repeat.fromArray(data.repeat);\n if (data.center !== undefined) texture.center.fromArray(data.center);\n if (data.rotation !== undefined) texture.rotation = data.rotation;\n if (data.wrap !== undefined) {\n texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING);\n texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING);\n }\n if (data.format !== undefined) texture.format = data.format;\n if (data.type !== undefined) texture.type = data.type;\n if (data.encoding !== undefined) texture.encoding = data.encoding;\n if (data.minFilter !== undefined) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER);\n if (data.magFilter !== undefined) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER);\n if (data.anisotropy !== undefined) texture.anisotropy = data.anisotropy;\n if (data.flipY !== undefined) texture.flipY = data.flipY;\n if (data.premultiplyAlpha !== undefined) texture.premultiplyAlpha = data.premultiplyAlpha;\n if (data.unpackAlignment !== undefined) texture.unpackAlignment = data.unpackAlignment;\n if (data.userData !== undefined) texture.userData = data.userData;\n textures[data.uuid] = texture;\n }\n }\n return textures;\n } },\n {\n key: \"parseObject\",\n value: function parseObject(data, geometries, materials, textures, animations) {\n var object;\n function getGeometry(name) {\n if (geometries[name] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined geometry', name);\n }\n return geometries[name];\n }\n function getMaterial(name) {\n if (name === undefined) return undefined;\n if (Array.isArray(name)) {\n var array = [];\n for (var i = 0, l = name.length; i < l; i++) {\n var uuid = name[i];\n if (materials[uuid] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined material', uuid);\n }\n array.push(materials[uuid]);\n }\n return array;\n }\n if (materials[name] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined material', name);\n }\n return materials[name];\n }\n function getTexture(uuid) {\n if (textures[uuid] === undefined) {\n console.warn('THREE.ObjectLoader: Undefined texture', uuid);\n }\n return textures[uuid];\n }\n var geometry, material;\n switch (data.type) {\n case 'Scene':\n object = new _Scene.Scene();\n if (data.background !== undefined) {\n if (Number.isInteger(data.background)) {\n object.background = new _Color.Color(data.background);\n } else {\n object.background = getTexture(data.background);\n }\n }\n if (data.environment !== undefined) {\n object.environment = getTexture(data.environment);\n }\n if (data.fog !== undefined) {\n if (data.fog.type === 'Fog') {\n object.fog = new _Fog.Fog(data.fog.color, data.fog.near, data.fog.far);\n } else if (data.fog.type === 'FogExp2') {\n object.fog = new _FogExp.FogExp2(data.fog.color, data.fog.density);\n }\n }\n break;\n case 'PerspectiveCamera':\n object = new _PerspectiveCamera.PerspectiveCamera(data.fov, data.aspect, data.near, data.far);\n if (data.focus !== undefined) object.focus = data.focus;\n if (data.zoom !== undefined) object.zoom = data.zoom;\n if (data.filmGauge !== undefined) object.filmGauge = data.filmGauge;\n if (data.filmOffset !== undefined) object.filmOffset = data.filmOffset;\n if (data.view !== undefined) object.view = Object.assign({}, data.view);\n break;\n case 'OrthographicCamera':\n object = new _OrthographicCamera.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);\n if (data.zoom !== undefined) object.zoom = data.zoom;\n if (data.view !== undefined) object.view = Object.assign({}, data.view);\n break;\n case 'AmbientLight':\n object = new _AmbientLight.AmbientLight(data.color, data.intensity);\n break;\n case 'DirectionalLight':\n object = new _DirectionalLight.DirectionalLight(data.color, data.intensity);\n break;\n case 'PointLight':\n object = new _PointLight.PointLight(data.color, data.intensity, data.distance, data.decay);\n break;\n case 'RectAreaLight':\n object = new _RectAreaLight.RectAreaLight(data.color, data.intensity, data.width, data.height);\n break;\n case 'SpotLight':\n object = new _SpotLight.SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);\n break;\n case 'HemisphereLight':\n object = new _HemisphereLight.HemisphereLight(data.color, data.groundColor, data.intensity);\n break;\n case 'LightProbe':\n object = new _LightProbe.LightProbe().fromJSON(data);\n break;\n case 'SkinnedMesh':\n geometry = getGeometry(data.geometry);\n material = getMaterial(data.material);\n object = new _SkinnedMesh.SkinnedMesh(geometry, material);\n if (data.bindMode !== undefined) object.bindMode = data.bindMode;\n if (data.bindMatrix !== undefined) object.bindMatrix.fromArray(data.bindMatrix);\n if (data.skeleton !== undefined) object.skeleton = data.skeleton;\n break;\n case 'Mesh':\n geometry = getGeometry(data.geometry);\n material = getMaterial(data.material);\n object = new _Mesh.Mesh(geometry, material);\n break;\n case 'InstancedMesh':\n geometry = getGeometry(data.geometry);\n material = getMaterial(data.material);\n var count = data.count;\n var instanceMatrix = data.instanceMatrix;\n var instanceColor = data.instanceColor;\n object = new _InstancedMesh.InstancedMesh(geometry, material, count);\n object.instanceMatrix = new _InstancedBufferAttribute.InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);\n if (instanceColor !== undefined) object.instanceColor = new _InstancedBufferAttribute.InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);\n break;\n case 'LOD':\n object = new _LOD.LOD();\n break;\n case 'Line':\n object = new _Line.Line(getGeometry(data.geometry), getMaterial(data.material));\n break;\n case 'LineLoop':\n object = new _LineLoop.LineLoop(getGeometry(data.geometry), getMaterial(data.material));\n break;\n case 'LineSegments':\n object = new _LineSegments.LineSegments(getGeometry(data.geometry), getMaterial(data.material));\n break;\n case 'PointCloud':\n case 'Points':\n object = new _Points.Points(getGeometry(data.geometry), getMaterial(data.material));\n break;\n case 'Sprite':\n object = new _Sprite.Sprite(getMaterial(data.material));\n break;\n case 'Group':\n object = new _Group.Group();\n break;\n case 'Bone':\n object = new _Bone.Bone();\n break;\n default:\n object = new _Object3D.Object3D();}\n\n object.uuid = data.uuid;\n if (data.name !== undefined) object.name = data.name;\n if (data.matrix !== undefined) {\n object.matrix.fromArray(data.matrix);\n if (data.matrixAutoUpdate !== undefined) object.matrixAutoUpdate = data.matrixAutoUpdate;\n if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale);\n } else {\n if (data.position !== undefined) object.position.fromArray(data.position);\n if (data.rotation !== undefined) object.rotation.fromArray(data.rotation);\n if (data.quaternion !== undefined) object.quaternion.fromArray(data.quaternion);\n if (data.scale !== undefined) object.scale.fromArray(data.scale);\n }\n if (data.castShadow !== undefined) object.castShadow = data.castShadow;\n if (data.receiveShadow !== undefined) object.receiveShadow = data.receiveShadow;\n if (data.shadow) {\n if (data.shadow.bias !== undefined) object.shadow.bias = data.shadow.bias;\n if (data.shadow.normalBias !== undefined) object.shadow.normalBias = data.shadow.normalBias;\n if (data.shadow.radius !== undefined) object.shadow.radius = data.shadow.radius;\n if (data.shadow.mapSize !== undefined) object.shadow.mapSize.fromArray(data.shadow.mapSize);\n if (data.shadow.camera !== undefined) object.shadow.camera = this.parseObject(data.shadow.camera);\n }\n if (data.visible !== undefined) object.visible = data.visible;\n if (data.frustumCulled !== undefined) object.frustumCulled = data.frustumCulled;\n if (data.renderOrder !== undefined) object.renderOrder = data.renderOrder;\n if (data.userData !== undefined) object.userData = data.userData;\n if (data.layers !== undefined) object.layers.mask = data.layers;\n if (data.children !== undefined) {\n var children = data.children;\n for (var i = 0; i < children.length; i++) {\n object.add(this.parseObject(children[i], geometries, materials, textures, animations));\n }\n }\n if (data.animations !== undefined) {\n var objectAnimations = data.animations;\n for (var _i = 0; _i < objectAnimations.length; _i++) {\n var uuid = objectAnimations[_i];\n object.animations.push(animations[uuid]);\n }\n }\n if (data.type === 'LOD') {\n if (data.autoUpdate !== undefined) object.autoUpdate = data.autoUpdate;\n var levels = data.levels;\n for (var l = 0; l < levels.length; l++) {\n var level = levels[l];\n var child = object.getObjectByProperty('uuid', level.object);\n if (child !== undefined) {\n object.addLevel(child, level.distance);\n }\n }\n }\n return object;\n } },\n {\n key: \"bindSkeletons\",\n value: function bindSkeletons(object, skeletons) {\n if (Object.keys(skeletons).length === 0) return;\n object.traverse(function (child) {\n if (child.isSkinnedMesh === true && child.skeleton !== undefined) {\n var skeleton = skeletons[child.skeleton];\n if (skeleton === undefined) {\n console.warn('THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton);\n } else {\n child.bind(skeleton, child.bindMatrix);\n }\n }\n });\n } }]);\n\n return ObjectLoader;\n }(_Loader2.Loader);\n var TEXTURE_MAPPING = {\n UVMapping: _constants.UVMapping,\n CubeReflectionMapping: _constants.CubeReflectionMapping,\n CubeRefractionMapping: _constants.CubeRefractionMapping,\n EquirectangularReflectionMapping: _constants.EquirectangularReflectionMapping,\n EquirectangularRefractionMapping: _constants.EquirectangularRefractionMapping,\n CubeUVReflectionMapping: _constants.CubeUVReflectionMapping };\n\n var TEXTURE_WRAPPING = {\n RepeatWrapping: _constants.RepeatWrapping,\n ClampToEdgeWrapping: _constants.ClampToEdgeWrapping,\n MirroredRepeatWrapping: _constants.MirroredRepeatWrapping };\n\n var TEXTURE_FILTER = {\n NearestFilter: _constants.NearestFilter,\n NearestMipmapNearestFilter: _constants.NearestMipmapNearestFilter,\n NearestMipmapLinearFilter: _constants.NearestMipmapLinearFilter,\n LinearFilter: _constants.LinearFilter,\n LinearMipmapNearestFilter: _constants.LinearMipmapNearestFilter,\n LinearMipmapLinearFilter: _constants.LinearMipmapLinearFilter };return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/core/InstancedBufferAttribute.js", "pandav:/src/math/Color.js", "pandav:/src/core/Object3D.js", "pandav:/src/objects/Group.js", "pandav:/src/objects/InstancedMesh.js", "pandav:/src/objects/Sprite.js", "pandav:/src/objects/Points.js", "pandav:/src/objects/Line.js", "pandav:/src/objects/LineLoop.js", "pandav:/src/objects/LineSegments.js", "pandav:/src/objects/LOD.js", "pandav:/src/objects/Mesh.js", "pandav:/src/objects/SkinnedMesh.js", "pandav:/src/objects/Bone.js", "pandav:/src/objects/Skeleton.js", "pandav:/src/extras/core/Shape.js", "pandav:/src/scenes/Fog.js", "pandav:/src/scenes/FogExp2.js", "pandav:/src/lights/HemisphereLight.js", "pandav:/src/lights/SpotLight.js", "pandav:/src/lights/PointLight.js", "pandav:/src/lights/DirectionalLight.js", "pandav:/src/lights/AmbientLight.js", "pandav:/src/lights/RectAreaLight.js", "pandav:/src/lights/LightProbe.js", "pandav:/src/cameras/OrthographicCamera.js", "pandav:/src/cameras/PerspectiveCamera.js", "pandav:/src/scenes/Scene.js", "pandav:/src/textures/CubeTexture.js", "pandav:/src/textures/Texture.js", "pandav:/src/textures/Source.js", "pandav:/src/textures/DataTexture.js", "pandav:/src/loaders/ImageLoader.js", "pandav:/src/loaders/LoadingManager.js", "pandav:/src/animation/AnimationClip.js", "pandav:/src/loaders/MaterialLoader.js", "pandav:/src/loaders/LoaderUtils.js", "pandav:/src/loaders/BufferGeometryLoader.js", "pandav:/src/loaders/Loader.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/geometries/Geometries.js", "pandav:/src/utils.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/loaders", "outputPath": "/com/three/0.145.0/src/loaders/ObjectLoader.js", "fileName": "/src/loaders/ObjectLoader.js" }, "pandav:/src/materials/LineDashedMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/LineDashedMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineDashedMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _LineBasicMaterial2 = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var LineDashedMaterial = exports.LineDashedMaterial = function (_LineBasicMaterial) {\n (0, _inherits2.default)(LineDashedMaterial, _LineBasicMaterial);\n var _super = (0, _createSuper2.default)(LineDashedMaterial);\n function LineDashedMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, LineDashedMaterial);\n _this = _super.call(this);\n _this.isLineDashedMaterial = true;\n _this.type = 'LineDashedMaterial';\n _this.scale = 1;\n _this.dashSize = 3;\n _this.gapSize = 1;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(LineDashedMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LineDashedMaterial.prototype), \"copy\", this).call(this, source);\n this.scale = source.scale;\n this.dashSize = source.dashSize;\n this.gapSize = source.gapSize;\n return this;\n } }]);\n\n return LineDashedMaterial;\n }(_LineBasicMaterial2.LineBasicMaterial);return module.exports;});", "requires": [ "pandav:/src/materials/LineBasicMaterial.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/LineDashedMaterial.js", "fileName": "/src/materials/LineDashedMaterial.js" }, "pandav:/src/materials/MeshDepthMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshDepthMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshDepthMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var MeshDepthMaterial = exports.MeshDepthMaterial = function (_Material) {\n (0, _inherits2.default)(MeshDepthMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshDepthMaterial);\n function MeshDepthMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshDepthMaterial);\n _this = _super.call(this);\n _this.isMeshDepthMaterial = true;\n _this.type = 'MeshDepthMaterial';\n _this.depthPacking = _constants.BasicDepthPacking;\n _this.map = null;\n _this.alphaMap = null;\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshDepthMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshDepthMaterial.prototype), \"copy\", this).call(this, source);\n this.depthPacking = source.depthPacking;\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n return this;\n } }]);\n\n return MeshDepthMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/constants.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshDepthMaterial.js", "fileName": "/src/materials/MeshDepthMaterial.js" }, "pandav:/src/materials/MeshBasicMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshBasicMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var MeshBasicMaterial = exports.MeshBasicMaterial = function (_Material) {\n (0, _inherits2.default)(MeshBasicMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshBasicMaterial);\n function MeshBasicMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshBasicMaterial);\n _this = _super.call(this);\n _this.isMeshBasicMaterial = true;\n _this.type = 'MeshBasicMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.map = null;\n _this.hsvColorCorrection = new _Vector.Vector3(0, 0, 0);\n _this.brightnessContrast = new _Vector2.Vector2(0, 0);\n _this.tag = 0;\n _this.lightMap = null;\n _this.lightMapIntensity = 1.0;\n _this.aoMap = null;\n _this.aoMapIntensity = 1.0;\n _this.specularMap = null;\n _this.alphaMap = null;\n _this.envMap = null;\n _this.combine = _constants.MultiplyOperation;\n _this.reflectivity = 0;\n _this.refractionRatio = 0.98;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.wireframeLinecap = 'round';\n _this.wireframeLinejoin = 'round';\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshBasicMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshBasicMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.fog = source.fog;\n return this;\n } }]);\n\n return MeshBasicMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/constants.js", "pandav:/src/math/Color.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 15, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshBasicMaterial.js", "fileName": "/src/materials/MeshBasicMaterial.js" }, "pandav:/src/materials/MeshDistanceMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshDistanceMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshDistanceMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var MeshDistanceMaterial = exports.MeshDistanceMaterial = function (_Material) {\n (0, _inherits2.default)(MeshDistanceMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshDistanceMaterial);\n function MeshDistanceMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshDistanceMaterial);\n _this = _super.call(this);\n _this.isMeshDistanceMaterial = true;\n _this.type = 'MeshDistanceMaterial';\n _this.referencePosition = new _Vector.Vector3();\n _this.nearDistance = 1;\n _this.farDistance = 1000;\n _this.map = null;\n _this.alphaMap = null;\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshDistanceMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshDistanceMaterial.prototype), \"copy\", this).call(this, source);\n this.referencePosition.copy(source.referencePosition);\n this.nearDistance = source.nearDistance;\n this.farDistance = source.farDistance;\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n return this;\n } }]);\n\n return MeshDistanceMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshDistanceMaterial.js", "fileName": "/src/materials/MeshDistanceMaterial.js" }, "pandav:/src/materials/MeshLambertMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshLambertMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshLambertMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var MeshLambertMaterial = exports.MeshLambertMaterial = function (_Material) {\n (0, _inherits2.default)(MeshLambertMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshLambertMaterial);\n function MeshLambertMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshLambertMaterial);\n _this = _super.call(this);\n _this.isMeshLambertMaterial = true;\n _this.type = 'MeshLambertMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.map = null;\n _this.hsvColorCorrection = new _Vector2.Vector3(0, 0, 0);\n _this.brightnessContrast = new _Vector.Vector2(0, 0);\n _this.tag = 0;\n _this.lightMap = null;\n _this.lightMapIntensity = 1.0;\n _this.aoMap = null;\n _this.aoMapIntensity = 1.0;\n _this.emissive = new _Color.Color(0x000000);\n _this.emissiveIntensity = 1.0;\n _this.emissiveMap = null;\n _this.bumpMap = null;\n _this.bumpScale = 1;\n _this.normalMap = null;\n _this.normalMapType = _constants.TangentSpaceNormalMap;\n _this.normalScale = new _Vector.Vector2(1, 1);\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.specularMap = null;\n _this.alphaMap = null;\n _this.envMap = null;\n _this.combine = _constants.MultiplyOperation;\n _this.reflectivity = 1;\n _this.refractionRatio = 0.98;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.wireframeLinecap = 'round';\n _this.wireframeLinejoin = 'round';\n _this.flatShading = false;\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshLambertMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshLambertMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n } }]);\n\n return MeshLambertMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/materials/Material.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Color.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshLambertMaterial.js", "fileName": "/src/materials/MeshLambertMaterial.js" }, "pandav:/src/materials/MeshMatcapMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshMatcapMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshMatcapMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var MeshMatcapMaterial = exports.MeshMatcapMaterial = function (_Material) {\n (0, _inherits2.default)(MeshMatcapMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshMatcapMaterial);\n function MeshMatcapMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshMatcapMaterial);\n _this = _super.call(this);\n _this.isMeshMatcapMaterial = true;\n _this.defines = {\n 'MATCAP': '' };\n\n _this.type = 'MeshMatcapMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.matcap = null;\n _this.map = null;\n _this.bumpMap = null;\n _this.bumpScale = 1;\n _this.normalMap = null;\n _this.normalMapType = _constants.TangentSpaceNormalMap;\n _this.normalScale = new _Vector.Vector2(1, 1);\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.alphaMap = null;\n _this.flatShading = false;\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshMatcapMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshMatcapMaterial.prototype), \"copy\", this).call(this, source);\n this.defines = {\n 'MATCAP': '' };\n\n this.color.copy(source.color);\n this.matcap = source.matcap;\n this.map = source.map;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.alphaMap = source.alphaMap;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n } }]);\n\n return MeshMatcapMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/materials/Material.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Color.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshMatcapMaterial.js", "fileName": "/src/materials/MeshMatcapMaterial.js" }, "pandav:/src/materials/MeshNormalMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshNormalMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshNormalMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var MeshNormalMaterial = exports.MeshNormalMaterial = function (_Material) {\n (0, _inherits2.default)(MeshNormalMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshNormalMaterial);\n function MeshNormalMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshNormalMaterial);\n _this = _super.call(this);\n _this.isMeshNormalMaterial = true;\n _this.type = 'MeshNormalMaterial';\n _this.bumpMap = null;\n _this.bumpScale = 1;\n _this.normalMap = null;\n _this.normalMapType = _constants.TangentSpaceNormalMap;\n _this.normalScale = new _Vector.Vector2(1, 1);\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.flatShading = false;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshNormalMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshNormalMaterial.prototype), \"copy\", this).call(this, source);\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.flatShading = source.flatShading;\n return this;\n } }]);\n\n return MeshNormalMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/materials/Material.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshNormalMaterial.js", "fileName": "/src/materials/MeshNormalMaterial.js" }, "pandav:/src/materials/Material.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/Material\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Material = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var materialId = 0;\n var Material = exports.Material = function (_EventDispatcher) {\n (0, _inherits2.default)(Material, _EventDispatcher);\n var _super = (0, _createSuper2.default)(Material);\n function Material() {\n var _this;\n (0, _classCallCheck2.default)(this, Material);\n _this = _super.call(this);\n _this.isMaterial = true;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'id', {\n value: materialId++ });\n\n _this.uuid = MathUtils.generateUUID();\n _this.name = '';\n _this.type = 'Material';\n _this.blending = _constants.NormalBlending;\n _this.side = _constants.FrontSide;\n _this.vertexColors = false;\n _this.opacity = 1;\n _this.transparent = false;\n _this.blendSrc = _constants.SrcAlphaFactor;\n _this.blendDst = _constants.OneMinusSrcAlphaFactor;\n _this.blendEquation = _constants.AddEquation;\n _this.blendSrcAlpha = null;\n _this.blendDstAlpha = null;\n _this.blendEquationAlpha = null;\n _this.depthFunc = _constants.LessEqualDepth;\n _this.depthTest = true;\n _this.depthWrite = true;\n _this.stencilWriteMask = 0xff;\n _this.stencilFunc = _constants.AlwaysStencilFunc;\n _this.stencilRef = 0;\n _this.stencilFuncMask = 0xff;\n _this.stencilFail = _constants.KeepStencilOp;\n _this.stencilZFail = _constants.KeepStencilOp;\n _this.stencilZPass = _constants.KeepStencilOp;\n _this.stencilWrite = false;\n _this.clippingPlanes = null;\n _this.clipIntersection = false;\n _this.clipShadows = false;\n _this.shadowSide = null;\n _this.colorWrite = true;\n _this.precision = null;\n _this.polygonOffset = false;\n _this.polygonOffsetFactor = 0;\n _this.polygonOffsetUnits = 0;\n _this.dithering = false;\n _this.alphaToCoverage = false;\n _this.premultipliedAlpha = false;\n _this.visible = true;\n _this.toneMapped = true;\n _this.userData = {};\n _this.version = 0;\n _this._alphaTest = 0;\n _this.renderQueue = _constants.DefaultQueue;\n _this.deferredRender = false;\n _this.isDeferredRenderPassMaterial = false;\n return _this;\n }\n (0, _createClass2.default)(Material, [{\n key: \"alphaTest\",\n get: function get() {\n return this._alphaTest;\n },\n set: function set(value) {\n if (this._alphaTest > 0 !== value > 0) {\n this.version++;\n }\n this._alphaTest = value;\n } },\n {\n key: \"onBuild\",\n value: function onBuild() {} },\n {\n key: \"onBeforeRender\",\n value: function onBeforeRender() {} },\n {\n key: \"onBeforeCompile\",\n value: function onBeforeCompile() {} },\n {\n key: \"customProgramCacheKey\",\n value: function customProgramCacheKey() {\n return this.onBeforeCompile.toString();\n } },\n {\n key: \"setValues\",\n value: function setValues(values) {\n if (values === undefined) return;\n for (var key in values) {\n var newValue = values[key];\n if (newValue === undefined) {\n console.warn('THREE.Material: \\'' + key + '\\' parameter is undefined.');\n continue;\n }\n var currentValue = this[key];\n if (currentValue === undefined) {\n console.warn('THREE.' + this.type + ': \\'' + key + '\\' is not a property of this material.');\n continue;\n }\n if (currentValue && currentValue.isColor) {\n currentValue.set(newValue);\n } else if (currentValue && currentValue.isVector3 && newValue && newValue.isVector3) {\n currentValue.copy(newValue);\n } else {\n this[key] = newValue;\n }\n }\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var isRootObject = meta === undefined || typeof meta === 'string';\n if (isRootObject) {\n meta = {\n textures: {},\n images: {} };\n\n }\n var data = {\n metadata: {\n version: 4.5,\n type: 'Material',\n generator: 'Material.toJSON' } };\n\n\n data.uuid = this.uuid;\n data.type = this.type;\n if (this.name !== '') data.name = this.name;\n if (this.color && this.color.isColor) data.color = this.color.getHex();\n if (this.roughness !== undefined) data.roughness = this.roughness;\n if (this.metalness !== undefined) data.metalness = this.metalness;\n if (this.sheen !== undefined) data.sheen = this.sheen;\n if (this.sheenColor && this.sheenColor.isColor) data.sheenColor = this.sheenColor.getHex();\n if (this.sheenRoughness !== undefined) data.sheenRoughness = this.sheenRoughness;\n if (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex();\n if (this.emissiveIntensity && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity;\n if (this.specular && this.specular.isColor) data.specular = this.specular.getHex();\n if (this.specularIntensity !== undefined) data.specularIntensity = this.specularIntensity;\n if (this.specularColor && this.specularColor.isColor) data.specularColor = this.specularColor.getHex();\n if (this.shininess !== undefined) data.shininess = this.shininess;\n if (this.clearcoat !== undefined) data.clearcoat = this.clearcoat;\n if (this.clearcoatRoughness !== undefined) data.clearcoatRoughness = this.clearcoatRoughness;\n if (this.clearcoatMap && this.clearcoatMap.isTexture) {\n data.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid;\n }\n if (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) {\n data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid;\n }\n if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) {\n data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid;\n data.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n }\n if (this.iridescence !== undefined) data.iridescence = this.iridescence;\n if (this.iridescenceIOR !== undefined) data.iridescenceIOR = this.iridescenceIOR;\n if (this.iridescenceThicknessRange !== undefined) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n if (this.iridescenceMap && this.iridescenceMap.isTexture) {\n data.iridescenceMap = this.iridescenceMap.toJSON(meta).uuid;\n }\n if (this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture) {\n data.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON(meta).uuid;\n }\n if (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid;\n if (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid;\n if (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid;\n if (this.lightMap && this.lightMap.isTexture) {\n data.lightMap = this.lightMap.toJSON(meta).uuid;\n data.lightMapIntensity = this.lightMapIntensity;\n }\n if (this.aoMap && this.aoMap.isTexture) {\n data.aoMap = this.aoMap.toJSON(meta).uuid;\n data.aoMapIntensity = this.aoMapIntensity;\n }\n if (this.bumpMap && this.bumpMap.isTexture) {\n data.bumpMap = this.bumpMap.toJSON(meta).uuid;\n data.bumpScale = this.bumpScale;\n }\n if (this.normalMap && this.normalMap.isTexture) {\n data.normalMap = this.normalMap.toJSON(meta).uuid;\n data.normalMapType = this.normalMapType;\n data.normalScale = this.normalScale.toArray();\n }\n if (this.displacementMap && this.displacementMap.isTexture) {\n data.displacementMap = this.displacementMap.toJSON(meta).uuid;\n data.displacementScale = this.displacementScale;\n data.displacementBias = this.displacementBias;\n }\n if (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid;\n if (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid;\n if (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid;\n if (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid;\n if (this.specularIntensityMap && this.specularIntensityMap.isTexture) data.specularIntensityMap = this.specularIntensityMap.toJSON(meta).uuid;\n if (this.specularColorMap && this.specularColorMap.isTexture) data.specularColorMap = this.specularColorMap.toJSON(meta).uuid;\n if (this.envMap && this.envMap.isTexture) {\n data.envMap = this.envMap.toJSON(meta).uuid;\n if (this.combine !== undefined) data.combine = this.combine;\n }\n if (this.envMapIntensity !== undefined) data.envMapIntensity = this.envMapIntensity;\n if (this.reflectivity !== undefined) data.reflectivity = this.reflectivity;\n if (this.refractionRatio !== undefined) data.refractionRatio = this.refractionRatio;\n if (this.gradientMap && this.gradientMap.isTexture) {\n data.gradientMap = this.gradientMap.toJSON(meta).uuid;\n }\n if (this.transmission !== undefined) data.transmission = this.transmission;\n if (this.transmissionMap && this.transmissionMap.isTexture) data.transmissionMap = this.transmissionMap.toJSON(meta).uuid;\n if (this.thickness !== undefined) data.thickness = this.thickness;\n if (this.thicknessMap && this.thicknessMap.isTexture) data.thicknessMap = this.thicknessMap.toJSON(meta).uuid;\n if (this.attenuationDistance !== undefined) data.attenuationDistance = this.attenuationDistance;\n if (this.attenuationColor !== undefined) data.attenuationColor = this.attenuationColor.getHex();\n if (this.size !== undefined) data.size = this.size;\n if (this.shadowSide !== null) data.shadowSide = this.shadowSide;\n if (this.sizeAttenuation !== undefined) data.sizeAttenuation = this.sizeAttenuation;\n if (this.blending !== _constants.NormalBlending) data.blending = this.blending;\n if (this.side !== _constants.FrontSide) data.side = this.side;\n if (this.vertexColors) data.vertexColors = true;\n if (this.opacity < 1) data.opacity = this.opacity;\n if (this.transparent === true) data.transparent = this.transparent;\n data.depthFunc = this.depthFunc;\n data.depthTest = this.depthTest;\n data.depthWrite = this.depthWrite;\n data.colorWrite = this.colorWrite;\n data.stencilWrite = this.stencilWrite;\n data.stencilWriteMask = this.stencilWriteMask;\n data.stencilFunc = this.stencilFunc;\n data.stencilRef = this.stencilRef;\n data.stencilFuncMask = this.stencilFuncMask;\n data.stencilFail = this.stencilFail;\n data.stencilZFail = this.stencilZFail;\n data.stencilZPass = this.stencilZPass;\n if (this.rotation !== undefined && this.rotation !== 0) data.rotation = this.rotation;\n if (this.polygonOffset === true) data.polygonOffset = true;\n if (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor;\n if (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits;\n if (this.linewidth !== undefined && this.linewidth !== 1) data.linewidth = this.linewidth;\n if (this.dashSize !== undefined) data.dashSize = this.dashSize;\n if (this.gapSize !== undefined) data.gapSize = this.gapSize;\n if (this.scale !== undefined) data.scale = this.scale;\n if (this.dithering === true) data.dithering = true;\n if (this.alphaTest > 0) data.alphaTest = this.alphaTest;\n if (this.alphaToCoverage === true) data.alphaToCoverage = this.alphaToCoverage;\n if (this.premultipliedAlpha === true) data.premultipliedAlpha = this.premultipliedAlpha;\n if (this.wireframe === true) data.wireframe = this.wireframe;\n if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth;\n if (this.wireframeLinecap !== 'round') data.wireframeLinecap = this.wireframeLinecap;\n if (this.wireframeLinejoin !== 'round') data.wireframeLinejoin = this.wireframeLinejoin;\n if (this.flatShading === true) data.flatShading = this.flatShading;\n if (this.visible === false) data.visible = false;\n if (this.toneMapped === false) data.toneMapped = false;\n if (this.fog === false) data.fog = false;\n if (JSON.stringify(this.userData) !== '{}') data.userData = this.userData;\n if (this.customUniformConfig !== undefined) {\n for (var name in this.customUniformConfig) {\n var value = this[name];\n if (this.customUniformConfig[name].type === undefined) {\n continue;\n }\n if (value && value.isTexture) {\n data[name] = value.uuid;\n } else if (value && value.isColor) {\n data[name] = value.getHex();\n } else if (value && value.isVector2) {\n data[name] = value.toJSON();\n } else if (value && value.isVector3) {\n data[name] = value.toJSON();\n } else if (value && value.isVector4) {\n data[name] = value.toJSON();\n } else {\n data[name] = value;\n }\n }\n }\n if (this.className !== undefined) {\n data.className = this.className;\n }\n if (this.hsvColorCorrection !== undefined) {\n data.hsvColorCorrection = this.hsvColorCorrection.toJSON();\n }\n if (this.brightnessContrast !== undefined) {\n data.brightnessContrast = this.brightnessContrast.toJSON();\n }\n if (this.tag !== undefined) {\n data.tag = this.tag;\n }\n if (this.renderQueue !== undefined) {\n data.renderQueue = this.renderQueue;\n }\n if (this.deferredRender !== undefined) {\n data.deferredRender = this.deferredRender;\n }\n if (this.isDeferredRenderPassMaterial !== undefined) {\n data.isDeferredRenderPassMaterial = this.isDeferredRenderPassMaterial;\n }\n return data;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"setUniforms\",\n value: function setUniforms(unifomrs) {\n for (var k in unifomrs) {\n var newUniform = unifomrs[k];\n if (newUniform === undefined) {\n console.warn(\"unexpected\", k);\n continue;\n }\n var currentUniform = this.uniforms[k] && this.uniforms[k].value;\n if (currentUniform === undefined) {\n console.warn(\"unexpected\", k);\n continue;\n }\n if (currentUniform && currentUniform.isColor) {\n currentUniform.set(newUniform);\n } else if (currentUniform && currentUniform.isVector3 && newUniform && newUniform.isVector3) {\n currentUniform.copy(newUniform);\n } else {\n this.uniforms[k].value = newUniform;\n }\n }\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.blending = source.blending;\n this.side = source.side;\n this.vertexColors = source.vertexColors;\n this.opacity = source.opacity;\n this.transparent = source.transparent;\n this.blendSrc = source.blendSrc;\n this.blendDst = source.blendDst;\n this.blendEquation = source.blendEquation;\n this.blendSrcAlpha = source.blendSrcAlpha;\n this.blendDstAlpha = source.blendDstAlpha;\n this.blendEquationAlpha = source.blendEquationAlpha;\n if (this.hsvColorCorrection && source.hsvColorCorrection) {\n this.hsvColorCorrection.copy(source.hsvColorCorrection);\n }\n if (this.brightnessContrast && source.brightnessContrast) {\n this.brightnessContrast.copy(source.brightnessContrast);\n }\n this.tag = source.tag;\n this.renderQueue = source.renderQueue;\n this.deferredRender = source.deferredRender;\n this.isDeferredRenderPassMaterial = source.isDeferredRenderPassMaterial;\n this.depthFunc = source.depthFunc;\n this.depthTest = source.depthTest;\n this.depthWrite = source.depthWrite;\n this.stencilWriteMask = source.stencilWriteMask;\n this.stencilFunc = source.stencilFunc;\n this.stencilRef = source.stencilRef;\n this.stencilFuncMask = source.stencilFuncMask;\n this.stencilFail = source.stencilFail;\n this.stencilZFail = source.stencilZFail;\n this.stencilZPass = source.stencilZPass;\n this.stencilWrite = source.stencilWrite;\n var srcPlanes = source.clippingPlanes;\n var dstPlanes = null;\n if (srcPlanes !== null) {\n var n = srcPlanes.length;\n dstPlanes = new Array(n);\n for (var i = 0; i !== n; ++i) {\n dstPlanes[i] = srcPlanes[i].clone();\n }\n }\n this.clippingPlanes = dstPlanes;\n this.clipIntersection = source.clipIntersection;\n this.clipShadows = source.clipShadows;\n this.shadowSide = source.shadowSide;\n this.colorWrite = source.colorWrite;\n this.precision = source.precision;\n this.polygonOffset = source.polygonOffset;\n this.polygonOffsetFactor = source.polygonOffsetFactor;\n this.polygonOffsetUnits = source.polygonOffsetUnits;\n this.dithering = source.dithering;\n this.alphaTest = source.alphaTest;\n this.alphaToCoverage = source.alphaToCoverage;\n this.premultipliedAlpha = source.premultipliedAlpha;\n this.visible = source.visible;\n this.toneMapped = source.toneMapped;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n if (source.customUniformConfig !== undefined) {\n this.customUniformConfig = JSON.parse(JSON.stringify(source.customUniformConfig));\n }\n for (var name in this.customUniformConfig) {\n if (source[name] !== undefined) {\n this[name] = source[name];\n }\n }\n if (source.className !== undefined) {\n this.className = source.className;\n }\n return this;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose' });\n\n } },\n {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n } }]);\n\n return Material;\n }(_EventDispatcher2.EventDispatcher);return module.exports;});", "requires": [ "pandav:/src/core/EventDispatcher.js", "pandav:/src/constants.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 16, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/Material.js", "fileName": "/src/materials/Material.js" }, "pandav:/src/materials/MeshStandardMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshStandardMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshStandardMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var MeshStandardMaterial = exports.MeshStandardMaterial = function (_Material) {\n (0, _inherits2.default)(MeshStandardMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshStandardMaterial);\n function MeshStandardMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshStandardMaterial);\n _this = _super.call(this);\n _this.isMeshStandardMaterial = true;\n _this.defines = {\n 'STANDARD': '' };\n\n _this.type = 'MeshStandardMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.roughness = 1.0;\n _this.metalness = 0.0;\n _this.reflectivityDecay = 0.0;\n _this.map = null;\n _this.hsvColorCorrection = new _Vector2.Vector3(0, 0, 0);\n _this.brightnessContrast = new _Vector.Vector2(0, 0);\n _this.tag = 0;\n _this.lightMap = null;\n _this.lightMapIntensity = 1.0;\n _this.aoMap = null;\n _this.aoMapIntensity = 1.0;\n _this.emissive = new _Color.Color(0x000000);\n _this.emissiveIntensity = 1.0;\n _this.emissiveMap = null;\n _this.bumpMap = null;\n _this.bumpScale = 1;\n _this.normalMap = null;\n _this.normalMapType = _constants.TangentSpaceNormalMap;\n _this.normalScale = new _Vector.Vector2(1, 1);\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.roughnessMap = null;\n _this.metalnessMap = null;\n _this.alphaMap = null;\n _this.envMap = null;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.wireframeLinecap = 'round';\n _this.wireframeLinejoin = 'round';\n _this.flatShading = false;\n _this.fog = true;\n _this.deferredRender = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshStandardMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshStandardMaterial.prototype), \"copy\", this).call(this, source);\n this.defines = {\n 'STANDARD': '' };\n\n this.color.copy(source.color);\n this.roughness = source.roughness;\n this.metalness = source.metalness;\n this.reflectivityDecay = source.reflectivityDecay;\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.roughnessMap = source.roughnessMap;\n this.metalnessMap = source.metalnessMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n } }]);\n\n return MeshStandardMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/materials/Material.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Color.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshStandardMaterial.js", "fileName": "/src/materials/MeshStandardMaterial.js" }, "pandav:/src/materials/MeshPhysicalMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshPhysicalMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/toConsumableArray\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/materials/MeshStandardMaterial\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshPhysicalMaterial = void 0;\n var _toConsumableArray2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/toConsumableArray'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _MeshStandardMaterial2 = require('pandav:/com/three/0.145.0/src/materials/MeshStandardMaterial');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var MeshPhysicalMaterial = exports.MeshPhysicalMaterial = function (_MeshStandardMaterial) {\n (0, _inherits2.default)(MeshPhysicalMaterial, _MeshStandardMaterial);\n var _super = (0, _createSuper2.default)(MeshPhysicalMaterial);\n function MeshPhysicalMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshPhysicalMaterial);\n _this = _super.call(this);\n _this.isMeshPhysicalMaterial = true;\n _this.defines = {\n 'STANDARD': '',\n 'PHYSICAL': '' };\n\n _this.type = 'MeshPhysicalMaterial';\n _this.clearcoatMap = null;\n _this.clearcoatRoughness = 0.0;\n _this.clearcoatRoughnessMap = null;\n _this.clearcoatNormalScale = new _Vector.Vector2(1, 1);\n _this.clearcoatNormalMap = null;\n _this.ior = 1.5;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'reflectivity', {\n get: function get() {\n return MathUtils.clamp(2.5 * (this.ior - 1) / (this.ior + 1), 0, 1);\n },\n set: function set(reflectivity) {\n this.ior = (1 + 0.4 * reflectivity) / (1 - 0.4 * reflectivity);\n } });\n\n _this.iridescenceMap = null;\n _this.iridescenceIOR = 1.3;\n _this.iridescenceThicknessRange = [100, 400];\n _this.iridescenceThicknessMap = null;\n _this.sheenColor = new _Color.Color(0x000000);\n _this.sheenColorMap = null;\n _this.sheenRoughness = 1.0;\n _this.sheenRoughnessMap = null;\n _this.transmissionMap = null;\n _this.thickness = 0;\n _this.thicknessMap = null;\n _this.attenuationDistance = 0;\n _this.attenuationColor = new _Color.Color(1, 1, 1);\n _this.depthScatteringShallowestColor = new _Color.Color(0, 0, 0), _this.depthScatteringDeepestColor = new _Color.Color(0, 0, 0), _this.colorScatteringDistance = 0, _this.specularIntensity = 1.0;\n _this.specularIntensityMap = null;\n _this.specularColor = new _Color.Color(1, 1, 1);\n _this.specularColorMap = null;\n _this._sheen = 0.0;\n _this._clearcoat = 0;\n _this._iridescence = 0;\n _this._transmission = 0;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshPhysicalMaterial, [{\n key: \"sheen\",\n get: function get() {\n return this._sheen;\n },\n set: function set(value) {\n if (this._sheen > 0 !== value > 0) {\n this.version++;\n }\n this._sheen = value;\n } },\n {\n key: \"clearcoat\",\n get: function get() {\n return this._clearcoat;\n },\n set: function set(value) {\n if (this._clearcoat > 0 !== value > 0) {\n this.version++;\n }\n this._clearcoat = value;\n } },\n {\n key: \"iridescence\",\n get: function get() {\n return this._iridescence;\n },\n set: function set(value) {\n if (this._iridescence > 0 !== value > 0) {\n this.version++;\n }\n this._iridescence = value;\n } },\n {\n key: \"transmission\",\n get: function get() {\n return this._transmission;\n },\n set: function set(value) {\n if (this._transmission > 0 !== value > 0) {\n this.version++;\n }\n this._transmission = value;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshPhysicalMaterial.prototype), \"copy\", this).call(this, source);\n this.defines = {\n 'STANDARD': '',\n 'PHYSICAL': '' };\n\n this.clearcoat = source.clearcoat;\n this.clearcoatMap = source.clearcoatMap;\n this.clearcoatRoughness = source.clearcoatRoughness;\n this.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n this.clearcoatNormalMap = source.clearcoatNormalMap;\n this.clearcoatNormalScale.copy(source.clearcoatNormalScale);\n this.ior = source.ior;\n this.iridescence = source.iridescence;\n this.iridescenceMap = source.iridescenceMap;\n this.iridescenceIOR = source.iridescenceIOR;\n this.iridescenceThicknessRange = (0, _toConsumableArray2.default)(source.iridescenceThicknessRange);\n this.iridescenceThicknessMap = source.iridescenceThicknessMap;\n this.sheen = source.sheen;\n this.sheenColor.copy(source.sheenColor);\n this.sheenColorMap = source.sheenColorMap;\n this.sheenRoughness = source.sheenRoughness;\n this.sheenRoughnessMap = source.sheenRoughnessMap;\n this.transmission = source.transmission;\n this.transmissionMap = source.transmissionMap;\n this.thickness = source.thickness;\n this.thicknessMap = source.thicknessMap;\n this.attenuationDistance = source.attenuationDistance;\n this.attenuationColor.copy(source.attenuationColor);\n this.specularIntensity = source.specularIntensity;\n this.specularIntensityMap = source.specularIntensityMap;\n this.specularColor.copy(source.specularColor);\n this.specularColorMap = source.specularColorMap;\n return this;\n } }]);\n\n return MeshPhysicalMaterial;\n }(_MeshStandardMaterial2.MeshStandardMaterial);return module.exports;});", "requires": [ "pandav:/src/math/Vector2.js", "pandav:/src/materials/MeshStandardMaterial.js", "pandav:/src/math/Color.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshPhysicalMaterial.js", "fileName": "/src/materials/MeshPhysicalMaterial.js" }, "pandav:/src/materials/MeshPhongMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshPhongMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshPhongMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var MeshPhongMaterial = exports.MeshPhongMaterial = function (_Material) {\n (0, _inherits2.default)(MeshPhongMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshPhongMaterial);\n function MeshPhongMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshPhongMaterial);\n _this = _super.call(this);\n _this.isMeshPhongMaterial = true;\n _this.type = 'MeshPhongMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.specular = new _Color.Color(0x111111);\n _this.shininess = 30;\n _this.map = null;\n _this.lightMap = null;\n _this.lightMapIntensity = 1.0;\n _this.aoMap = null;\n _this.aoMapIntensity = 1.0;\n _this.emissive = new _Color.Color(0x000000);\n _this.emissiveIntensity = 1.0;\n _this.emissiveMap = null;\n _this.bumpMap = null;\n _this.bumpScale = 1;\n _this.normalMap = null;\n _this.normalMapType = _constants.TangentSpaceNormalMap;\n _this.normalScale = new _Vector.Vector2(1, 1);\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.specularMap = null;\n _this.alphaMap = null;\n _this.envMap = null;\n _this.combine = _constants.MultiplyOperation;\n _this.reflectivity = 1;\n _this.refractionRatio = 0.98;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.wireframeLinecap = 'round';\n _this.wireframeLinejoin = 'round';\n _this.flatShading = false;\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshPhongMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshPhongMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.specular.copy(source.specular);\n this.shininess = source.shininess;\n this.map = source.map;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.specularMap = source.specularMap;\n this.alphaMap = source.alphaMap;\n this.envMap = source.envMap;\n this.combine = source.combine;\n this.reflectivity = source.reflectivity;\n this.refractionRatio = source.refractionRatio;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.flatShading = source.flatShading;\n this.fog = source.fog;\n return this;\n } }]);\n\n return MeshPhongMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/materials/Material.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Color.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshPhongMaterial.js", "fileName": "/src/materials/MeshPhongMaterial.js" }, "pandav:/src/materials/MeshToonMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/MeshToonMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MeshToonMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var MeshToonMaterial = exports.MeshToonMaterial = function (_Material) {\n (0, _inherits2.default)(MeshToonMaterial, _Material);\n var _super = (0, _createSuper2.default)(MeshToonMaterial);\n function MeshToonMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, MeshToonMaterial);\n _this = _super.call(this);\n _this.isMeshToonMaterial = true;\n _this.defines = {\n 'TOON': '' };\n\n _this.type = 'MeshToonMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.map = null;\n _this.gradientMap = null;\n _this.lightMap = null;\n _this.lightMapIntensity = 1.0;\n _this.aoMap = null;\n _this.aoMapIntensity = 1.0;\n _this.emissive = new _Color.Color(0x000000);\n _this.emissiveIntensity = 1.0;\n _this.emissiveMap = null;\n _this.bumpMap = null;\n _this.bumpScale = 1;\n _this.normalMap = null;\n _this.normalMapType = _constants.TangentSpaceNormalMap;\n _this.normalScale = new _Vector.Vector2(1, 1);\n _this.displacementMap = null;\n _this.displacementScale = 1;\n _this.displacementBias = 0;\n _this.alphaMap = null;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.wireframeLinecap = 'round';\n _this.wireframeLinejoin = 'round';\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(MeshToonMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(MeshToonMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.gradientMap = source.gradientMap;\n this.lightMap = source.lightMap;\n this.lightMapIntensity = source.lightMapIntensity;\n this.aoMap = source.aoMap;\n this.aoMapIntensity = source.aoMapIntensity;\n this.emissive.copy(source.emissive);\n this.emissiveMap = source.emissiveMap;\n this.emissiveIntensity = source.emissiveIntensity;\n this.bumpMap = source.bumpMap;\n this.bumpScale = source.bumpScale;\n this.normalMap = source.normalMap;\n this.normalMapType = source.normalMapType;\n this.normalScale.copy(source.normalScale);\n this.displacementMap = source.displacementMap;\n this.displacementScale = source.displacementScale;\n this.displacementBias = source.displacementBias;\n this.alphaMap = source.alphaMap;\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.wireframeLinecap = source.wireframeLinecap;\n this.wireframeLinejoin = source.wireframeLinejoin;\n this.fog = source.fog;\n return this;\n } }]);\n\n return MeshToonMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/materials/Material.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Color.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/MeshToonMaterial.js", "fileName": "/src/materials/MeshToonMaterial.js" }, "pandav:/src/materials/RawShaderMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/RawShaderMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.RawShaderMaterial = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _ShaderMaterial2 = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var RawShaderMaterial = exports.RawShaderMaterial = function (_ShaderMaterial) {\n (0, _inherits2.default)(RawShaderMaterial, _ShaderMaterial);\n var _super = (0, _createSuper2.default)(RawShaderMaterial);\n function RawShaderMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, RawShaderMaterial);\n _this = _super.call(this, parameters);\n _this.isRawShaderMaterial = true;\n _this.type = 'RawShaderMaterial';\n return _this;\n }\n return (0, _createClass2.default)(RawShaderMaterial);\n }(_ShaderMaterial2.ShaderMaterial);return module.exports;});", "requires": [ "pandav:/src/materials/ShaderMaterial.js" ], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/RawShaderMaterial.js", "fileName": "/src/materials/RawShaderMaterial.js" }, "pandav:/src/materials/ShadowMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/ShadowMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ShadowMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var ShadowMaterial = exports.ShadowMaterial = function (_Material) {\n (0, _inherits2.default)(ShadowMaterial, _Material);\n var _super = (0, _createSuper2.default)(ShadowMaterial);\n function ShadowMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, ShadowMaterial);\n _this = _super.call(this);\n _this.isShadowMaterial = true;\n _this.type = 'ShadowMaterial';\n _this.color = new _Color.Color(0x000000);\n _this.transparent = true;\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(ShadowMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(ShadowMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.fog = source.fog;\n return this;\n } }]);\n\n return ShadowMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/math/Color.js" ], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/ShadowMaterial.js", "fileName": "/src/materials/ShadowMaterial.js" }, "pandav:/src/materials/PointsMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/PointsMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.PointsMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var PointsMaterial = exports.PointsMaterial = function (_Material) {\n (0, _inherits2.default)(PointsMaterial, _Material);\n var _super = (0, _createSuper2.default)(PointsMaterial);\n function PointsMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, PointsMaterial);\n _this = _super.call(this);\n _this.isPointsMaterial = true;\n _this.type = 'PointsMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.map = null;\n _this.alphaMap = null;\n _this.size = 1;\n _this.sizeAttenuation = true;\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(PointsMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(PointsMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.size = source.size;\n this.sizeAttenuation = source.sizeAttenuation;\n this.fog = source.fog;\n return this;\n } }]);\n\n return PointsMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/math/Color.js" ], "buildLevel": 21, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/PointsMaterial.js", "fileName": "/src/materials/PointsMaterial.js" }, "pandav:/src/materials/SpriteMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/SpriteMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SpriteMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var SpriteMaterial = exports.SpriteMaterial = function (_Material) {\n (0, _inherits2.default)(SpriteMaterial, _Material);\n var _super = (0, _createSuper2.default)(SpriteMaterial);\n function SpriteMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, SpriteMaterial);\n _this = _super.call(this);\n _this.isSpriteMaterial = true;\n _this.type = 'SpriteMaterial';\n _this.color = new _Color.Color(0xffffff);\n _this.map = null;\n _this.alphaMap = null;\n _this.rotation = 0;\n _this.sizeAttenuation = true;\n _this.transparent = true;\n _this.fog = true;\n _this.setValues(parameters);\n return _this;\n }\n (0, _createClass2.default)(SpriteMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(SpriteMaterial.prototype), \"copy\", this).call(this, source);\n this.color.copy(source.color);\n this.map = source.map;\n this.alphaMap = source.alphaMap;\n this.rotation = source.rotation;\n this.sizeAttenuation = source.sizeAttenuation;\n this.fog = source.fog;\n return this;\n } }]);\n\n return SpriteMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/math/Color.js" ], "buildLevel": 16, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/SpriteMaterial.js", "fileName": "/src/materials/SpriteMaterial.js" }, "pandav:/src/materials/ShaderMaterial.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/materials/Material\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_fragment.glsl\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ShaderMaterial = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Material2 = require('pandav:/com/three/0.145.0/src/materials/Material');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n var _default_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_vertex.glsl'));\n var _default_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_fragment.glsl'));\n var ShaderMaterial = exports.ShaderMaterial = function (_Material) {\n (0, _inherits2.default)(ShaderMaterial, _Material);\n var _super = (0, _createSuper2.default)(ShaderMaterial);\n function ShaderMaterial(parameters) {\n var _this;\n (0, _classCallCheck2.default)(this, ShaderMaterial);\n _this = _super.call(this);\n _this.isShaderMaterial = true;\n _this.type = 'ShaderMaterial';\n _this.defines = {};\n _this.uniforms = {};\n _this.uniformsGroups = [];\n _this.vertexShader = _default_vertexGlsl.default;\n _this.fragmentShader = _default_fragmentGlsl.default;\n _this.linewidth = 1;\n _this.wireframe = false;\n _this.wireframeLinewidth = 1;\n _this.fog = false;\n _this.lights = false;\n _this.clipping = false;\n _this.extensions = {\n derivatives: false,\n fragDepth: false,\n drawBuffers: false,\n shaderTextureLOD: false };\n\n _this.defaultAttributeValues = {\n color: [1, 1, 1],\n uv: [0, 0],\n uv2: [0, 0] };\n\n _this.index0AttributeName = undefined;\n _this.uniformsNeedUpdate = false;\n _this.glslVersion = null;\n if (parameters !== undefined) {\n _this.setValues(parameters);\n }\n return _this;\n }\n (0, _createClass2.default)(ShaderMaterial, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(ShaderMaterial.prototype), \"copy\", this).call(this, source);\n this.fragmentShader = source.fragmentShader;\n this.vertexShader = source.vertexShader;\n this.uniforms = (0, _UniformsUtils.cloneUniforms)(source.uniforms);\n this.uniformsGroups = (0, _UniformsUtils.cloneUniformsGroups)(source.uniformsGroups);\n this.defines = Object.assign({}, source.defines);\n this.wireframe = source.wireframe;\n this.wireframeLinewidth = source.wireframeLinewidth;\n this.fog = source.fog;\n this.lights = source.lights;\n this.clipping = source.clipping;\n this.extensions = Object.assign({}, source.extensions);\n this.glslVersion = source.glslVersion;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return {};\n } }]);\n\n return ShaderMaterial;\n }(_Material2.Material);return module.exports;});", "requires": [ "pandav:/src/materials/Material.js", "pandav:/src/renderers/shaders/UniformsUtils.js", "pandav:/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js" ], "buildLevel": 10, "outputDir": "/com/three/0.145.0/src/materials", "outputPath": "/com/three/0.145.0/src/materials/ShaderMaterial.js", "fileName": "/src/materials/ShaderMaterial.js" }, "pandav:/src/math/Box2.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Box2\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Box2 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _vector = new _Vector.Vector2();\n var Box2 = exports.Box2 = function () {\n function Box2() {\n var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector2(+Infinity, +Infinity);\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector2(-Infinity, -Infinity);\n (0, _classCallCheck2.default)(this, Box2);\n this.isBox2 = true;\n this.min = min;\n this.max = max;\n }\n (0, _createClass2.default)(Box2, [{\n key: \"set\",\n value: function set(min, max) {\n this.min.copy(min);\n this.max.copy(max);\n return this;\n } },\n {\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n this.makeEmpty();\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n return this;\n } },\n {\n key: \"setFromCenterAndSize\",\n value: function setFromCenterAndSize(center, size) {\n var halfSize = _vector.copy(size).multiplyScalar(0.5);\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"copy\",\n value: function copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n } },\n {\n key: \"makeEmpty\",\n value: function makeEmpty() {\n this.min.x = this.min.y = +Infinity;\n this.max.x = this.max.y = -Infinity;\n return this;\n } },\n {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.max.x < this.min.x || this.max.y < this.min.y;\n } },\n {\n key: \"getCenter\",\n value: function getCenter(target) {\n return this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n } },\n {\n key: \"getSize\",\n value: function getSize(target) {\n return this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min);\n } },\n {\n key: \"expandByPoint\",\n value: function expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n } },\n {\n key: \"expandByVector\",\n value: function expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n } },\n {\n key: \"expandByScalar\",\n value: function expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n } },\n {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y ? false : true;\n } },\n {\n key: \"containsBox\",\n value: function containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y;\n } },\n {\n key: \"getParameter\",\n value: function getParameter(point, target) {\n return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y));\n } },\n {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y ? false : true;\n } },\n {\n key: \"clampPoint\",\n value: function clampPoint(point, target) {\n return target.copy(point).clamp(this.min, this.max);\n } },\n {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n var clampedPoint = _vector.copy(point).clamp(this.min, this.max);\n return clampedPoint.sub(point).length();\n } },\n {\n key: \"intersect\",\n value: function intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max);\n return this;\n } },\n {\n key: \"union\",\n value: function union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n } },\n {\n key: \"translate\",\n value: function translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n } }]);\n\n return Box2;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector2.js" ], "buildLevel": 52, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Box2.js", "fileName": "/src/math/Box2.js" }, "pandav:/src/math/AlphaColor.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/AlphaColor\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/ColorManagement\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.AlphaColor = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _ColorManagement = require('pandav:/com/three/0.145.0/src/math/ColorManagement');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Color2 = require('pandav:/com/three/0.145.0/src/math/Color');\n var AlphaColor = exports.AlphaColor = function (_Color, _Symbol$iterator) {\n (0, _inherits2.default)(AlphaColor, _Color);\n var _super = (0, _createSuper2.default)(AlphaColor);\n function AlphaColor(r, g, b, a) {\n var _this;\n (0, _classCallCheck2.default)(this, AlphaColor);\n _this = _super.call(this, r, g, b);\n _this.a = a !== undefined ? a : 1;\n if (r === undefined && g === undefined && b === undefined) {\n _this.set(r);\n }\n return _this;\n }\n (0, _createClass2.default)(AlphaColor, [{\n key: \"setHex\",\n value: function setHex(hex) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SRGBColorSpace;\n hex = Math.floor(hex);\n this.r = (hex >> 16 & 255) / 255;\n this.g = (hex >> 8 & 255) / 255;\n this.b = (hex & 255) / 255;\n this.a = 1;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n } },\n {\n key: \"setRGBA\",\n value: function setRGBA(r, g, b, a) {\n var colorSpace = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants.LinearSRGBColorSpace;\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n } },\n {\n key: \"setStyle\",\n value: function setStyle(style) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SRGBColorSpace;\n function handleAlpha(string) {\n if (string === undefined) return 1;\n return parseFloat(string);\n }\n var m;\n if (m = /^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(style.toLowerCase())) {\n var color;\n var name = m[1];\n var components = m[2];\n switch (name) {\n case 'rgb':\n case 'rgba':\n if (color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n this.r = Math.min(255, parseInt(color[1], 10)) / 255;\n this.g = Math.min(255, parseInt(color[2], 10)) / 255;\n this.b = Math.min(255, parseInt(color[3], 10)) / 255;\n this.a = handleAlpha(color[4]);\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n }\n if (color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n this.r = Math.min(100, parseInt(color[1], 10)) / 100;\n this.g = Math.min(100, parseInt(color[2], 10)) / 100;\n this.b = Math.min(100, parseInt(color[3], 10)) / 100;\n this.a = handleAlpha(color[4]);\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n }\n break;\n case 'hsl':\n case 'hsla':\n if (color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n var h = parseFloat(color[1]) / 360;\n var s = parseFloat(color[2]) / 100;\n var l = parseFloat(color[3]) / 100;\n this.a = handleAlpha(color[4]);\n return this.setHSL(h, s, l, colorSpace);\n }\n break;}\n\n } else if (m = /^\\#([A-Fa-f\\d]+)$/.exec(style)) {\n var hex = m[1];\n var size = hex.length;\n if (size === 3) {\n this.r = parseInt(hex.charAt(0) + hex.charAt(0), 16) / 255;\n this.g = parseInt(hex.charAt(1) + hex.charAt(1), 16) / 255;\n this.b = parseInt(hex.charAt(2) + hex.charAt(2), 16) / 255;\n this.a = 1;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n } else if (size === 6) {\n this.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255;\n this.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255;\n this.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255;\n this.a = 1;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n }\n }\n if (style && style.length > 0) {\n return this.setColorName(style, colorSpace);\n }\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.r, this.g, this.b, this.a);\n } },\n {\n key: \"copy\",\n value: function copy(color) {\n this.r = color.r;\n this.g = color.g;\n this.b = color.b;\n this.a = color.a;\n return this;\n } },\n {\n key: \"copySRGBToLinear\",\n value: function copySRGBToLinear(color) {\n this.r = (0, _ColorManagement.SRGBToLinear)(color.r);\n this.g = (0, _ColorManagement.SRGBToLinear)(color.g);\n this.b = (0, _ColorManagement.SRGBToLinear)(color.b);\n this.a = color.a;\n return this;\n } },\n {\n key: \"copyLinearToSRGB\",\n value: function copyLinearToSRGB(color) {\n this.r = (0, _ColorManagement.LinearToSRGB)(color.r);\n this.g = (0, _ColorManagement.LinearToSRGB)(color.g);\n this.b = (0, _ColorManagement.LinearToSRGB)(color.b);\n this.a = color.a;\n return this;\n } },\n {\n key: \"getStyle\",\n value: function getStyle() {\n var colorSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.SRGBColorSpace;\n var str = (0, _get2.default)((0, _getPrototypeOf2.default)(AlphaColor.prototype), \"getStyle\", this).call(this, colorSpace);\n var split = colorSpace !== _constants.SRGBColorSpace ? \" \" : \",\";\n return str.slice(0, -1) + split + this.a + \")\";\n } },\n {\n key: \"add\",\n value: function add(color) {\n this.r += color.r;\n this.g += color.g;\n this.b += color.b;\n this.a += color.a;\n return this;\n } },\n {\n key: \"addColors\",\n value: function addColors(color1, color2) {\n this.r = color1.r + color2.r;\n this.g = color1.g + color2.g;\n this.b = color1.b + color2.b;\n this.a = color1.a + color2.a;\n return this;\n } },\n {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.r += s;\n this.g += s;\n this.b += s;\n this.a += s;\n return this;\n } },\n {\n key: \"sub\",\n value: function sub(color) {\n this.r = Math.max(0, this.r - color.r);\n this.g = Math.max(0, this.g - color.g);\n this.b = Math.max(0, this.b - color.b);\n this.a = Math.max(0, this.a - color.a);\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(color) {\n this.r *= color.r;\n this.g *= color.g;\n this.b *= color.b;\n this.a *= color.a;\n return this;\n } },\n {\n key: \"multiplyScalar\",\n value: function multiplyScalar(s) {\n this.r *= s;\n this.g *= s;\n this.b *= s;\n this.a *= s;\n return this;\n } },\n {\n key: \"lerp\",\n value: function lerp(color, alpha) {\n this.r += (color.r - this.r) * alpha;\n this.g += (color.g - this.g) * alpha;\n this.b += (color.b - this.b) * alpha;\n this.a += (color.a - this.a) * alpha;\n return this;\n } },\n {\n key: \"lerpColors\",\n value: function lerpColors(color1, color2, alpha) {\n this.r = color1.r + (color2.r - color1.r) * alpha;\n this.g = color1.g + (color2.g - color1.g) * alpha;\n this.b = color1.b + (color2.b - color1.b) * alpha;\n this.a = color1.a + (color2.a - color1.a) * alpha;\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(c) {\n return c.r === this.r && c.g === this.g && c.b === this.b && c.a === this.a;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.r = array[offset];\n this.g = array[offset + 1];\n this.b = array[offset + 2];\n this.a = array[offset + 3];\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n array[offset + 3] = this.a;\n return array;\n } },\n {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.r = attribute.getX(index);\n this.g = attribute.getY(index);\n this.b = attribute.getZ(index);\n this.a = 1;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return this.getStyle();\n } },\n {\n key: _Symbol$iterator,\n value: _regenerator.default.mark(function value() {\n return _regenerator.default.wrap(function value$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.r;\n case 2:\n _context.next = 4;\n return this.g;\n case 4:\n _context.next = 6;\n return this.b;\n case 6:\n _context.next = 8;\n return this.a;\n case 8:\n case \"end\":\n return _context.stop();}\n\n }, value, this);\n }) }]);\n\n return AlphaColor;\n }(_Color2.Color, Symbol.iterator);return module.exports;});", "requires": [ "pandav:/src/math/ColorManagement.js", "pandav:/src/constants.js", "pandav:/src/math/Color.js" ], "buildLevel": 70, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/AlphaColor.js", "fileName": "/src/math/AlphaColor.js" }, "pandav:/src/math/Box3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Box3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Box3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var Box3 = exports.Box3 = function () {\n function Box3() {\n var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3(+Infinity, +Infinity, +Infinity);\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3(-Infinity, -Infinity, -Infinity);\n (0, _classCallCheck2.default)(this, Box3);\n this.isBox3 = true;\n this.min = min;\n this.max = max;\n }\n (0, _createClass2.default)(Box3, [{\n key: \"set\",\n value: function set(min, max) {\n this.min.copy(min);\n this.max.copy(max);\n return this;\n } },\n {\n key: \"setFromArray\",\n value: function setFromArray(array) {\n var minX = +Infinity;\n var minY = +Infinity;\n var minZ = +Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n var maxZ = -Infinity;\n for (var i = 0, l = array.length; i < l; i += 3) {\n var x = array[i];\n var y = array[i + 1];\n var z = array[i + 2];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (z < minZ) minZ = z;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n if (z > maxZ) maxZ = z;\n }\n this.min.set(minX, minY, minZ);\n this.max.set(maxX, maxY, maxZ);\n return this;\n } },\n {\n key: \"setFromBufferAttribute\",\n value: function setFromBufferAttribute(attribute) {\n var minX = +Infinity;\n var minY = +Infinity;\n var minZ = +Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n var maxZ = -Infinity;\n for (var i = 0, l = attribute.count; i < l; i++) {\n var x = attribute.getX(i);\n var y = attribute.getY(i);\n var z = attribute.getZ(i);\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (z < minZ) minZ = z;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n if (z > maxZ) maxZ = z;\n }\n this.min.set(minX, minY, minZ);\n this.max.set(maxX, maxY, maxZ);\n return this;\n } },\n {\n key: \"setFromPoints\",\n value: function setFromPoints(points) {\n this.makeEmpty();\n for (var i = 0, il = points.length; i < il; i++) {\n this.expandByPoint(points[i]);\n }\n return this;\n } },\n {\n key: \"setFromCenterAndSize\",\n value: function setFromCenterAndSize(center, size) {\n var halfSize = _vector.copy(size).multiplyScalar(0.5);\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n } },\n {\n key: \"setFromObject\",\n value: function setFromObject(object) {\n var precise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.makeEmpty();\n return this.expandByObject(object, precise);\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"copy\",\n value: function copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n } },\n {\n key: \"makeEmpty\",\n value: function makeEmpty() {\n this.min.x = this.min.y = this.min.z = +Infinity;\n this.max.x = this.max.y = this.max.z = -Infinity;\n return this;\n } },\n {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\n } },\n {\n key: \"getCenter\",\n value: function getCenter(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n } },\n {\n key: \"getSize\",\n value: function getSize(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\n } },\n {\n key: \"expandByPoint\",\n value: function expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n } },\n {\n key: \"expandByVector\",\n value: function expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n } },\n {\n key: \"expandByScalar\",\n value: function expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n } },\n {\n key: \"expandByObject\",\n value: function expandByObject(object) {\n var precise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n object.updateWorldMatrix(false, false);\n var geometry = object.geometry;\n if (geometry !== undefined) {\n if (precise && geometry.attributes != undefined && geometry.attributes.position !== undefined) {\n var position = geometry.attributes.position;\n for (var i = 0, l = position.count; i < l; i++) {\n _vector.fromBufferAttribute(position, i).applyMatrix4(object.matrixWorld);\n this.expandByPoint(_vector);\n }\n } else {\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n _box.copy(geometry.boundingBox);\n _box.applyMatrix4(object.matrixWorld);\n this.union(_box);\n }\n }\n var children = object.children;\n for (var _i = 0, _l = children.length; _i < _l; _i++) {\n this.expandByObject(children[_i], precise);\n }\n return this;\n } },\n {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y || point.z < this.min.z || point.z > this.max.z ? false : true;\n } },\n {\n key: \"containsBox\",\n value: function containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\n } },\n {\n key: \"getParameter\",\n value: function getParameter(point, target) {\n return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y), (point.z - this.min.z) / (this.max.z - this.min.z));\n } },\n {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y || box.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n } },\n {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n this.clampPoint(sphere.center, _vector);\n return _vector.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\n } },\n {\n key: \"intersectsPlane\",\n value: function intersectsPlane(plane) {\n var min, max;\n if (plane.normal.x > 0) {\n min = plane.normal.x * this.min.x;\n max = plane.normal.x * this.max.x;\n } else {\n min = plane.normal.x * this.max.x;\n max = plane.normal.x * this.min.x;\n }\n if (plane.normal.y > 0) {\n min += plane.normal.y * this.min.y;\n max += plane.normal.y * this.max.y;\n } else {\n min += plane.normal.y * this.max.y;\n max += plane.normal.y * this.min.y;\n }\n if (plane.normal.z > 0) {\n min += plane.normal.z * this.min.z;\n max += plane.normal.z * this.max.z;\n } else {\n min += plane.normal.z * this.max.z;\n max += plane.normal.z * this.min.z;\n }\n return min <= -plane.constant && max >= -plane.constant;\n } },\n {\n key: \"intersectsTriangle\",\n value: function intersectsTriangle(triangle) {\n if (this.isEmpty()) {\n return false;\n }\n this.getCenter(_center);\n _extents.subVectors(this.max, _center);\n _v0.subVectors(triangle.a, _center);\n _v1.subVectors(triangle.b, _center);\n _v2.subVectors(triangle.c, _center);\n _f0.subVectors(_v1, _v0);\n _f1.subVectors(_v2, _v1);\n _f2.subVectors(_v0, _v2);\n var axes = [0, -_f0.z, _f0.y, 0, -_f1.z, _f1.y, 0, -_f2.z, _f2.y, _f0.z, 0, -_f0.x, _f1.z, 0, -_f1.x, _f2.z, 0, -_f2.x, -_f0.y, _f0.x, 0, -_f1.y, _f1.x, 0, -_f2.y, _f2.x, 0];\n if (!satForAxes(axes, _v0, _v1, _v2, _extents)) {\n return false;\n }\n axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n if (!satForAxes(axes, _v0, _v1, _v2, _extents)) {\n return false;\n }\n _triangleNormal.crossVectors(_f0, _f1);\n axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\n return satForAxes(axes, _v0, _v1, _v2, _extents);\n } },\n {\n key: \"clampPoint\",\n value: function clampPoint(point, target) {\n return target.copy(point).clamp(this.min, this.max);\n } },\n {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n var clampedPoint = _vector.copy(point).clamp(this.min, this.max);\n return clampedPoint.sub(point).length();\n } },\n {\n key: \"getBoundingSphere\",\n value: function getBoundingSphere(target) {\n this.getCenter(target.center);\n target.radius = this.getSize(_vector).length() * 0.5;\n return target;\n } },\n {\n key: \"intersect\",\n value: function intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max);\n if (this.isEmpty()) this.makeEmpty();\n return this;\n } },\n {\n key: \"union\",\n value: function union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n if (this.isEmpty()) return this;\n _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix);\n _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix);\n _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix);\n _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix);\n _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix);\n _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix);\n _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix);\n _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix);\n this.setFromPoints(_points);\n return this;\n } },\n {\n key: \"translate\",\n value: function translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n } }]);\n\n return Box3;\n }();\n var _points = [new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3(), new _Vector.Vector3()];\n var _vector = new _Vector.Vector3();\n var _box = new Box3();\n var _v0 = new _Vector.Vector3();\n var _v1 = new _Vector.Vector3();\n var _v2 = new _Vector.Vector3();\n var _f0 = new _Vector.Vector3();\n var _f1 = new _Vector.Vector3();\n var _f2 = new _Vector.Vector3();\n var _center = new _Vector.Vector3();\n var _extents = new _Vector.Vector3();\n var _triangleNormal = new _Vector.Vector3();\n var _testAxis = new _Vector.Vector3();\n function satForAxes(axes, v0, v1, v2, extents) {\n for (var i = 0, j = axes.length - 3; i <= j; i += 3) {\n _testAxis.fromArray(axes, i);\n var r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z);\n var p0 = v0.dot(_testAxis);\n var p1 = v1.dot(_testAxis);\n var p2 = v2.dot(_testAxis);\n if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\n return false;\n }\n }\n return true;\n }return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js" ], "buildLevel": 11, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Box3.js", "fileName": "/src/math/Box3.js" }, "pandav:/src/math/ColorManagement.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/ColorManagement\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ColorManagement = void 0;\n exports.LinearToSRGB = LinearToSRGB;\n exports.SRGBToLinear = SRGBToLinear;\n var _defineProperty2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n function SRGBToLinear(c) {\n return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\n }\n function LinearToSRGB(c) {\n return c < 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\n }\n var FN = (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.SRGBColorSpace, (0, _defineProperty2.default)({}, _constants.LinearSRGBColorSpace, SRGBToLinear)), _constants.LinearSRGBColorSpace, (0, _defineProperty2.default)({}, _constants.SRGBColorSpace, LinearToSRGB));\n var ColorManagement = exports.ColorManagement = {\n legacyMode: false,\n get workingColorSpace() {\n return _constants.LinearSRGBColorSpace;\n },\n set workingColorSpace(colorSpace) {\n console.warn('THREE.ColorManagement: .workingColorSpace is readonly.');\n },\n convert: function convert(color, sourceColorSpace, targetColorSpace) {\n if (this.legacyMode || sourceColorSpace === targetColorSpace || !sourceColorSpace || !targetColorSpace) {\n return color;\n }\n if (FN[sourceColorSpace] && FN[sourceColorSpace][targetColorSpace] !== undefined) {\n var fn = FN[sourceColorSpace][targetColorSpace];\n color.r = fn(color.r);\n color.g = fn(color.g);\n color.b = fn(color.b);\n return color;\n }\n throw new Error('Unsupported color space conversion.');\n },\n fromWorkingColorSpace: function fromWorkingColorSpace(color, targetColorSpace) {\n return this.convert(color, this.workingColorSpace, targetColorSpace);\n },\n toWorkingColorSpace: function toWorkingColorSpace(color, sourceColorSpace) {\n return this.convert(color, sourceColorSpace, this.workingColorSpace);\n } };return module.exports;});", "requires": [ "pandav:/src/constants.js" ], "buildLevel": 15, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/ColorManagement.js", "fileName": "/src/math/ColorManagement.js" }, "pandav:/src/math/Cylindrical.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Cylindrical\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Cylindrical = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Cylindrical = exports.Cylindrical = function () {\n function Cylindrical() {\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var theta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n (0, _classCallCheck2.default)(this, Cylindrical);\n this.radius = radius;\n this.theta = theta;\n this.y = y;\n return this;\n }\n (0, _createClass2.default)(Cylindrical, [{\n key: \"set\",\n value: function set(radius, theta, y) {\n this.radius = radius;\n this.theta = theta;\n this.y = y;\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(other) {\n this.radius = other.radius;\n this.theta = other.theta;\n this.y = other.y;\n return this;\n } },\n {\n key: \"setFromVector3\",\n value: function setFromVector3(v) {\n return this.setFromCartesianCoords(v.x, v.y, v.z);\n } },\n {\n key: \"setFromCartesianCoords\",\n value: function setFromCartesianCoords(x, y, z) {\n this.radius = Math.sqrt(x * x + z * z);\n this.theta = Math.atan2(x, z);\n this.y = y;\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Cylindrical;\n }();return module.exports;});", "requires": [], "buildLevel": 51, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Cylindrical.js", "fileName": "/src/math/Cylindrical.js" }, "pandav:/src/math/Euler.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Euler\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Quaternion\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Euler = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _MathUtils = require('pandav:/com/three/0.145.0/src/math/MathUtils');\n var _matrix = new _Matrix.Matrix4();\n var _quaternion = new _Quaternion.Quaternion();\n var Euler = exports.Euler = function (_Symbol$iterator) {\n function Euler() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Euler.DefaultOrder;\n (0, _classCallCheck2.default)(this, Euler);\n this.isEuler = true;\n this._x = x;\n this._y = y;\n this._z = z;\n this._order = order;\n }\n (0, _createClass2.default)(Euler, [{\n key: \"x\",\n get: function get() {\n return this._x;\n },\n set: function set(value) {\n this._x = value;\n this._onChangeCallback();\n } },\n {\n key: \"y\",\n get: function get() {\n return this._y;\n },\n set: function set(value) {\n this._y = value;\n this._onChangeCallback();\n } },\n {\n key: \"z\",\n get: function get() {\n return this._z;\n },\n set: function set(value) {\n this._z = value;\n this._onChangeCallback();\n } },\n {\n key: \"order\",\n get: function get() {\n return this._order;\n },\n set: function set(value) {\n this._order = value;\n this._onChangeCallback();\n } },\n {\n key: \"set\",\n value: function set(x, y, z) {\n var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this._order;\n this._x = x;\n this._y = y;\n this._z = z;\n this._order = order;\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._order);\n } },\n {\n key: \"copy\",\n value: function copy(euler) {\n this._x = euler._x;\n this._y = euler._y;\n this._z = euler._z;\n this._order = euler._order;\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"setFromRotationMatrix\",\n value: function setFromRotationMatrix(m) {\n var order = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._order;\n var update = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var te = m.elements;\n var m11 = te[0],\n m12 = te[4],\n m13 = te[8];\n var m21 = te[1],\n m22 = te[5],\n m23 = te[9];\n var m31 = te[2],\n m32 = te[6],\n m33 = te[10];\n switch (order) {\n case 'XYZ':\n this._y = Math.asin((0, _MathUtils.clamp)(m13, -1, 1));\n if (Math.abs(m13) < 0.9999999) {\n this._x = Math.atan2(-m23, m33);\n this._z = Math.atan2(-m12, m11);\n } else {\n this._x = Math.atan2(m32, m22);\n this._z = 0;\n }\n break;\n case 'YXZ':\n this._x = Math.asin(-(0, _MathUtils.clamp)(m23, -1, 1));\n if (Math.abs(m23) < 0.9999999) {\n this._y = Math.atan2(m13, m33);\n this._z = Math.atan2(m21, m22);\n } else {\n this._y = Math.atan2(-m31, m11);\n this._z = 0;\n }\n break;\n case 'ZXY':\n this._x = Math.asin((0, _MathUtils.clamp)(m32, -1, 1));\n if (Math.abs(m32) < 0.9999999) {\n this._y = Math.atan2(-m31, m33);\n this._z = Math.atan2(-m12, m22);\n } else {\n this._y = 0;\n this._z = Math.atan2(m21, m11);\n }\n break;\n case 'ZYX':\n this._y = Math.asin(-(0, _MathUtils.clamp)(m31, -1, 1));\n if (Math.abs(m31) < 0.9999999) {\n this._x = Math.atan2(m32, m33);\n this._z = Math.atan2(m21, m11);\n } else {\n this._x = 0;\n this._z = Math.atan2(-m12, m22);\n }\n break;\n case 'YZX':\n this._z = Math.asin((0, _MathUtils.clamp)(m21, -1, 1));\n if (Math.abs(m21) < 0.9999999) {\n this._x = Math.atan2(-m23, m22);\n this._y = Math.atan2(-m31, m11);\n } else {\n this._x = 0;\n this._y = Math.atan2(m13, m33);\n }\n break;\n case 'XZY':\n this._z = Math.asin(-(0, _MathUtils.clamp)(m12, -1, 1));\n if (Math.abs(m12) < 0.9999999) {\n this._x = Math.atan2(m32, m22);\n this._y = Math.atan2(m13, m11);\n } else {\n this._x = Math.atan2(-m23, m33);\n this._y = 0;\n }\n break;\n default:\n console.warn('THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order);}\n\n this._order = order;\n if (update === true) this._onChangeCallback();\n return this;\n } },\n {\n key: \"setFromQuaternion\",\n value: function setFromQuaternion(q, order, update) {\n _matrix.makeRotationFromQuaternion(q);\n return this.setFromRotationMatrix(_matrix, order, update);\n } },\n {\n key: \"setFromVector3\",\n value: function setFromVector3(v) {\n var order = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._order;\n return this.set(v.x, v.y, v.z, order);\n } },\n {\n key: \"reorder\",\n value: function reorder(newOrder) {\n _quaternion.setFromEuler(this);\n return this.setFromQuaternion(_quaternion, newOrder);\n } },\n {\n key: \"equals\",\n value: function equals(euler) {\n return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n this._x = array[0];\n this._y = array[1];\n this._z = array[2];\n if (array[3] !== undefined) this._order = array[3];\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this._x;\n array[offset + 1] = this._y;\n array[offset + 2] = this._z;\n array[offset + 3] = this._order;\n return array;\n } },\n {\n key: \"_onChange\",\n value: function _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n } },\n {\n key: \"_onChangeCallback\",\n value: function _onChangeCallback() {} },\n {\n key: _Symbol$iterator,\n value: _regenerator.default.mark(function value() {\n return _regenerator.default.wrap(function value$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._x;\n case 2:\n _context.next = 4;\n return this._y;\n case 4:\n _context.next = 6;\n return this._z;\n case 6:\n _context.next = 8;\n return this._order;\n case 8:\n case \"end\":\n return _context.stop();}\n\n }, value, this);\n }) },\n {\n key: \"toVector3\",\n value: function toVector3() {\n console.error('THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead');\n } }]);\n\n return Euler;\n }(Symbol.iterator);\n Euler.DefaultOrder = 'XYZ';\n Euler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX'];return module.exports;});", "requires": [ "pandav:/src/math/Quaternion.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 14, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Euler.js", "fileName": "/src/math/Euler.js" }, "pandav:/src/math/Color.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Color\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/math/ColorManagement\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Color = void 0;\n Object.defineProperty(exports, \"SRGBToLinear\", {\n enumerable: true,\n get: function get() {\n return _ColorManagement.SRGBToLinear;\n } });\n\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _MathUtils = require('pandav:/com/three/0.145.0/src/math/MathUtils');\n var _ColorManagement = require('pandav:/com/three/0.145.0/src/math/ColorManagement');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _colorKeywords = {\n 'aliceblue': 0xF0F8FF,\n 'antiquewhite': 0xFAEBD7,\n 'aqua': 0x00FFFF,\n 'aquamarine': 0x7FFFD4,\n 'azure': 0xF0FFFF,\n 'beige': 0xF5F5DC,\n 'bisque': 0xFFE4C4,\n 'black': 0x000000,\n 'blanchedalmond': 0xFFEBCD,\n 'blue': 0x0000FF,\n 'blueviolet': 0x8A2BE2,\n 'brown': 0xA52A2A,\n 'burlywood': 0xDEB887,\n 'cadetblue': 0x5F9EA0,\n 'chartreuse': 0x7FFF00,\n 'chocolate': 0xD2691E,\n 'coral': 0xFF7F50,\n 'cornflowerblue': 0x6495ED,\n 'cornsilk': 0xFFF8DC,\n 'crimson': 0xDC143C,\n 'cyan': 0x00FFFF,\n 'darkblue': 0x00008B,\n 'darkcyan': 0x008B8B,\n 'darkgoldenrod': 0xB8860B,\n 'darkgray': 0xA9A9A9,\n 'darkgreen': 0x006400,\n 'darkgrey': 0xA9A9A9,\n 'darkkhaki': 0xBDB76B,\n 'darkmagenta': 0x8B008B,\n 'darkolivegreen': 0x556B2F,\n 'darkorange': 0xFF8C00,\n 'darkorchid': 0x9932CC,\n 'darkred': 0x8B0000,\n 'darksalmon': 0xE9967A,\n 'darkseagreen': 0x8FBC8F,\n 'darkslateblue': 0x483D8B,\n 'darkslategray': 0x2F4F4F,\n 'darkslategrey': 0x2F4F4F,\n 'darkturquoise': 0x00CED1,\n 'darkviolet': 0x9400D3,\n 'deeppink': 0xFF1493,\n 'deepskyblue': 0x00BFFF,\n 'dimgray': 0x696969,\n 'dimgrey': 0x696969,\n 'dodgerblue': 0x1E90FF,\n 'firebrick': 0xB22222,\n 'floralwhite': 0xFFFAF0,\n 'forestgreen': 0x228B22,\n 'fuchsia': 0xFF00FF,\n 'gainsboro': 0xDCDCDC,\n 'ghostwhite': 0xF8F8FF,\n 'gold': 0xFFD700,\n 'goldenrod': 0xDAA520,\n 'gray': 0x808080,\n 'green': 0x008000,\n 'greenyellow': 0xADFF2F,\n 'grey': 0x808080,\n 'honeydew': 0xF0FFF0,\n 'hotpink': 0xFF69B4,\n 'indianred': 0xCD5C5C,\n 'indigo': 0x4B0082,\n 'ivory': 0xFFFFF0,\n 'khaki': 0xF0E68C,\n 'lavender': 0xE6E6FA,\n 'lavenderblush': 0xFFF0F5,\n 'lawngreen': 0x7CFC00,\n 'lemonchiffon': 0xFFFACD,\n 'lightblue': 0xADD8E6,\n 'lightcoral': 0xF08080,\n 'lightcyan': 0xE0FFFF,\n 'lightgoldenrodyellow': 0xFAFAD2,\n 'lightgray': 0xD3D3D3,\n 'lightgreen': 0x90EE90,\n 'lightgrey': 0xD3D3D3,\n 'lightpink': 0xFFB6C1,\n 'lightsalmon': 0xFFA07A,\n 'lightseagreen': 0x20B2AA,\n 'lightskyblue': 0x87CEFA,\n 'lightslategray': 0x778899,\n 'lightslategrey': 0x778899,\n 'lightsteelblue': 0xB0C4DE,\n 'lightyellow': 0xFFFFE0,\n 'lime': 0x00FF00,\n 'limegreen': 0x32CD32,\n 'linen': 0xFAF0E6,\n 'magenta': 0xFF00FF,\n 'maroon': 0x800000,\n 'mediumaquamarine': 0x66CDAA,\n 'mediumblue': 0x0000CD,\n 'mediumorchid': 0xBA55D3,\n 'mediumpurple': 0x9370DB,\n 'mediumseagreen': 0x3CB371,\n 'mediumslateblue': 0x7B68EE,\n 'mediumspringgreen': 0x00FA9A,\n 'mediumturquoise': 0x48D1CC,\n 'mediumvioletred': 0xC71585,\n 'midnightblue': 0x191970,\n 'mintcream': 0xF5FFFA,\n 'mistyrose': 0xFFE4E1,\n 'moccasin': 0xFFE4B5,\n 'navajowhite': 0xFFDEAD,\n 'navy': 0x000080,\n 'oldlace': 0xFDF5E6,\n 'olive': 0x808000,\n 'olivedrab': 0x6B8E23,\n 'orange': 0xFFA500,\n 'orangered': 0xFF4500,\n 'orchid': 0xDA70D6,\n 'palegoldenrod': 0xEEE8AA,\n 'palegreen': 0x98FB98,\n 'paleturquoise': 0xAFEEEE,\n 'palevioletred': 0xDB7093,\n 'papayawhip': 0xFFEFD5,\n 'peachpuff': 0xFFDAB9,\n 'peru': 0xCD853F,\n 'pink': 0xFFC0CB,\n 'plum': 0xDDA0DD,\n 'powderblue': 0xB0E0E6,\n 'purple': 0x800080,\n 'rebeccapurple': 0x663399,\n 'red': 0xFF0000,\n 'rosybrown': 0xBC8F8F,\n 'royalblue': 0x4169E1,\n 'saddlebrown': 0x8B4513,\n 'salmon': 0xFA8072,\n 'sandybrown': 0xF4A460,\n 'seagreen': 0x2E8B57,\n 'seashell': 0xFFF5EE,\n 'sienna': 0xA0522D,\n 'silver': 0xC0C0C0,\n 'skyblue': 0x87CEEB,\n 'slateblue': 0x6A5ACD,\n 'slategray': 0x708090,\n 'slategrey': 0x708090,\n 'snow': 0xFFFAFA,\n 'springgreen': 0x00FF7F,\n 'steelblue': 0x4682B4,\n 'tan': 0xD2B48C,\n 'teal': 0x008080,\n 'thistle': 0xD8BFD8,\n 'tomato': 0xFF6347,\n 'turquoise': 0x40E0D0,\n 'violet': 0xEE82EE,\n 'wheat': 0xF5DEB3,\n 'white': 0xFFFFFF,\n 'whitesmoke': 0xF5F5F5,\n 'yellow': 0xFFFF00,\n 'yellowgreen': 0x9ACD32 };\n\n var _rgb = {\n r: 0,\n g: 0,\n b: 0 };\n\n var _hslA = {\n h: 0,\n s: 0,\n l: 0 };\n\n var _hslB = {\n h: 0,\n s: 0,\n l: 0 };\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\n return p;\n }\n function toComponents(source, target) {\n target.r = source.r;\n target.g = source.g;\n target.b = source.b;\n return target;\n }\n var Color = exports.Color = function (_Symbol$iterator) {\n function Color(r, g, b) {\n (0, _classCallCheck2.default)(this, Color);\n this.isColor = true;\n this.r = 1;\n this.g = 1;\n this.b = 1;\n if (g === undefined && b === undefined) {\n return this.set(r);\n }\n return this.setRGB(r, g, b);\n }\n (0, _createClass2.default)(Color, [{\n key: \"set\",\n value: function set(value) {\n if (value && value.isColor) {\n this.copy(value);\n } else if (typeof value === 'number') {\n this.setHex(value);\n } else if (typeof value === 'string') {\n this.setStyle(value);\n }\n return this;\n } },\n {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.r = scalar;\n this.g = scalar;\n this.b = scalar;\n return this;\n } },\n {\n key: \"setHex\",\n value: function setHex(hex) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SRGBColorSpace;\n hex = Math.floor(hex);\n this.r = (hex >> 16 & 255) / 255;\n this.g = (hex >> 8 & 255) / 255;\n this.b = (hex & 255) / 255;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n } },\n {\n key: \"setRGB\",\n value: function setRGB(r, g, b) {\n var colorSpace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.LinearSRGBColorSpace;\n this.r = r;\n this.g = g;\n this.b = b;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n } },\n {\n key: \"setHSL\",\n value: function setHSL(h, s, l) {\n var colorSpace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.LinearSRGBColorSpace;\n h = (0, _MathUtils.euclideanModulo)(h, 1);\n s = (0, _MathUtils.clamp)(s, 0, 1);\n l = (0, _MathUtils.clamp)(l, 0, 1);\n if (s === 0) {\n this.r = this.g = this.b = l;\n } else {\n var p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n var q = 2 * l - p;\n this.r = hue2rgb(q, p, h + 1 / 3);\n this.g = hue2rgb(q, p, h);\n this.b = hue2rgb(q, p, h - 1 / 3);\n }\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n } },\n {\n key: \"setStyle\",\n value: function setStyle(style) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SRGBColorSpace;\n function handleAlpha(string) {\n if (string === undefined) return;\n if (parseFloat(string) < 1) {}\n }\n var m;\n if (m = /^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(style.toLowerCase())) {\n var color;\n var name = m[1];\n var components = m[2];\n switch (name) {\n case 'rgb':\n case 'rgba':\n if (color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n this.r = Math.min(255, parseInt(color[1], 10)) / 255;\n this.g = Math.min(255, parseInt(color[2], 10)) / 255;\n this.b = Math.min(255, parseInt(color[3], 10)) / 255;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n handleAlpha(color[4]);\n return this;\n }\n if (color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n this.r = Math.min(100, parseInt(color[1], 10)) / 100;\n this.g = Math.min(100, parseInt(color[2], 10)) / 100;\n this.b = Math.min(100, parseInt(color[3], 10)) / 100;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n handleAlpha(color[4]);\n return this;\n }\n break;\n case 'hsl':\n case 'hsla':\n if (color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n var h = parseFloat(color[1]) / 360;\n var s = parseFloat(color[2]) / 100;\n var l = parseFloat(color[3]) / 100;\n handleAlpha(color[4]);\n return this.setHSL(h, s, l, colorSpace);\n }\n break;}\n\n } else if (m = /^\\#([A-Fa-f\\d]+)$/.exec(style)) {\n var hex = m[1];\n var size = hex.length;\n if (size === 3) {\n this.r = parseInt(hex.charAt(0) + hex.charAt(0), 16) / 255;\n this.g = parseInt(hex.charAt(1) + hex.charAt(1), 16) / 255;\n this.b = parseInt(hex.charAt(2) + hex.charAt(2), 16) / 255;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n } else if (size === 6) {\n this.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255;\n this.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255;\n this.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255;\n _ColorManagement.ColorManagement.toWorkingColorSpace(this, colorSpace);\n return this;\n }\n }\n if (style && style.length > 0) {\n return this.setColorName(style, colorSpace);\n }\n return this;\n } },\n {\n key: \"setColorName\",\n value: function setColorName(style) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SRGBColorSpace;\n var hex = _colorKeywords[style.toLowerCase()];\n if (hex !== undefined) {\n this.setHex(hex, colorSpace);\n } else {\n console.warn('THREE.Color: Unknown color ' + style);\n }\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.r, this.g, this.b);\n } },\n {\n key: \"copy\",\n value: function copy(color) {\n this.r = color.r;\n this.g = color.g;\n this.b = color.b;\n return this;\n } },\n {\n key: \"copySRGBToLinear\",\n value: function copySRGBToLinear(color) {\n this.r = (0, _ColorManagement.SRGBToLinear)(color.r);\n this.g = (0, _ColorManagement.SRGBToLinear)(color.g);\n this.b = (0, _ColorManagement.SRGBToLinear)(color.b);\n return this;\n } },\n {\n key: \"copyLinearToSRGB\",\n value: function copyLinearToSRGB(color) {\n this.r = (0, _ColorManagement.LinearToSRGB)(color.r);\n this.g = (0, _ColorManagement.LinearToSRGB)(color.g);\n this.b = (0, _ColorManagement.LinearToSRGB)(color.b);\n return this;\n } },\n {\n key: \"convertSRGBToLinear\",\n value: function convertSRGBToLinear() {\n this.copySRGBToLinear(this);\n return this;\n } },\n {\n key: \"convertLinearToSRGB\",\n value: function convertLinearToSRGB() {\n this.copyLinearToSRGB(this);\n return this;\n } },\n {\n key: \"getHex\",\n value: function getHex() {\n var colorSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.SRGBColorSpace;\n _ColorManagement.ColorManagement.fromWorkingColorSpace(toComponents(this, _rgb), colorSpace);\n return (0, _MathUtils.clamp)(_rgb.r * 255, 0, 255) << 16 ^ (0, _MathUtils.clamp)(_rgb.g * 255, 0, 255) << 8 ^ (0, _MathUtils.clamp)(_rgb.b * 255, 0, 255) << 0;\n } },\n {\n key: \"getHexString\",\n value: function getHexString() {\n var colorSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.SRGBColorSpace;\n return ('000000' + this.getHex(colorSpace).toString(16)).slice(-6);\n } },\n {\n key: \"getHSL\",\n value: function getHSL(target) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.LinearSRGBColorSpace;\n _ColorManagement.ColorManagement.fromWorkingColorSpace(toComponents(this, _rgb), colorSpace);\n var r = _rgb.r,\n g = _rgb.g,\n b = _rgb.b;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var hue, saturation;\n var lightness = (min + max) / 2.0;\n if (min === max) {\n hue = 0;\n saturation = 0;\n } else {\n var delta = max - min;\n saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);\n switch (max) {\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n case g:\n hue = (b - r) / delta + 2;\n break;\n case b:\n hue = (r - g) / delta + 4;\n break;}\n\n hue /= 6;\n }\n target.h = hue;\n target.s = saturation;\n target.l = lightness;\n return target;\n } },\n {\n key: \"getRGB\",\n value: function getRGB(target) {\n var colorSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.LinearSRGBColorSpace;\n _ColorManagement.ColorManagement.fromWorkingColorSpace(toComponents(this, _rgb), colorSpace);\n target.r = _rgb.r;\n target.g = _rgb.g;\n target.b = _rgb.b;\n return target;\n } },\n {\n key: \"getStyle\",\n value: function getStyle() {\n var colorSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.SRGBColorSpace;\n _ColorManagement.ColorManagement.fromWorkingColorSpace(toComponents(this, _rgb), colorSpace);\n if (colorSpace !== _constants.SRGBColorSpace) {\n return \"color(\".concat(colorSpace, \" \").concat(_rgb.r, \" \").concat(_rgb.g, \" \").concat(_rgb.b, \")\");\n }\n return \"rgb(\".concat(_rgb.r * 255 | 0, \",\").concat(_rgb.g * 255 | 0, \",\").concat(_rgb.b * 255 | 0, \")\");\n } },\n {\n key: \"offsetHSL\",\n value: function offsetHSL(h, s, l) {\n this.getHSL(_hslA);\n _hslA.h += h;\n _hslA.s += s;\n _hslA.l += l;\n this.setHSL(_hslA.h, _hslA.s, _hslA.l);\n return this;\n } },\n {\n key: \"add\",\n value: function add(color) {\n this.r += color.r;\n this.g += color.g;\n this.b += color.b;\n return this;\n } },\n {\n key: \"addColors\",\n value: function addColors(color1, color2) {\n this.r = color1.r + color2.r;\n this.g = color1.g + color2.g;\n this.b = color1.b + color2.b;\n return this;\n } },\n {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.r += s;\n this.g += s;\n this.b += s;\n return this;\n } },\n {\n key: \"sub\",\n value: function sub(color) {\n this.r = Math.max(0, this.r - color.r);\n this.g = Math.max(0, this.g - color.g);\n this.b = Math.max(0, this.b - color.b);\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(color) {\n this.r *= color.r;\n this.g *= color.g;\n this.b *= color.b;\n return this;\n } },\n {\n key: \"multiplyScalar\",\n value: function multiplyScalar(s) {\n this.r *= s;\n this.g *= s;\n this.b *= s;\n return this;\n } },\n {\n key: \"lerp\",\n value: function lerp(color, alpha) {\n this.r += (color.r - this.r) * alpha;\n this.g += (color.g - this.g) * alpha;\n this.b += (color.b - this.b) * alpha;\n return this;\n } },\n {\n key: \"lerpColors\",\n value: function lerpColors(color1, color2, alpha) {\n this.r = color1.r + (color2.r - color1.r) * alpha;\n this.g = color1.g + (color2.g - color1.g) * alpha;\n this.b = color1.b + (color2.b - color1.b) * alpha;\n return this;\n } },\n {\n key: \"lerpHSL\",\n value: function lerpHSL(color, alpha) {\n this.getHSL(_hslA);\n color.getHSL(_hslB);\n var h = (0, _MathUtils.lerp)(_hslA.h, _hslB.h, alpha);\n var s = (0, _MathUtils.lerp)(_hslA.s, _hslB.s, alpha);\n var l = (0, _MathUtils.lerp)(_hslA.l, _hslB.l, alpha);\n this.setHSL(h, s, l);\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(c) {\n return c.r === this.r && c.g === this.g && c.b === this.b;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.r = array[offset];\n this.g = array[offset + 1];\n this.b = array[offset + 2];\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n return array;\n } },\n {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.r = attribute.getX(index);\n this.g = attribute.getY(index);\n this.b = attribute.getZ(index);\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return this.getHex();\n } },\n {\n key: _Symbol$iterator,\n value: _regenerator.default.mark(function value() {\n return _regenerator.default.wrap(function value$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.r;\n case 2:\n _context.next = 4;\n return this.g;\n case 4:\n _context.next = 6;\n return this.b;\n case 6:\n case \"end\":\n return _context.stop();}\n\n }, value, this);\n }) }]);\n\n return Color;\n }(Symbol.iterator);\n Color.NAMES = _colorKeywords;return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js", "pandav:/src/math/ColorManagement.js", "pandav:/src/constants.js" ], "buildLevel": 3, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Color.js", "fileName": "/src/math/Color.js" }, "pandav:/src/math/Frustum.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Frustum\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Sphere\", \"pandav:/com/three/0.145.0/src/math/Plane\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Frustum = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Sphere = require('pandav:/com/three/0.145.0/src/math/Sphere');\n var _Plane = require('pandav:/com/three/0.145.0/src/math/Plane');\n var _sphere = new _Sphere.Sphere();\n var _vector = new _Vector.Vector3();\n var Frustum = exports.Frustum = function () {\n function Frustum() {\n var p0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Plane.Plane();\n var p1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Plane.Plane();\n var p2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _Plane.Plane();\n var p3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new _Plane.Plane();\n var p4 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : new _Plane.Plane();\n var p5 = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : new _Plane.Plane();\n (0, _classCallCheck2.default)(this, Frustum);\n this.planes = [p0, p1, p2, p3, p4, p5];\n }\n (0, _createClass2.default)(Frustum, [{\n key: \"set\",\n value: function set(p0, p1, p2, p3, p4, p5) {\n var planes = this.planes;\n planes[0].copy(p0);\n planes[1].copy(p1);\n planes[2].copy(p2);\n planes[3].copy(p3);\n planes[4].copy(p4);\n planes[5].copy(p5);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(frustum) {\n var planes = this.planes;\n for (var i = 0; i < 6; i++) {\n planes[i].copy(frustum.planes[i]);\n }\n return this;\n } },\n {\n key: \"setFromProjectionMatrix\",\n value: function setFromProjectionMatrix(m) {\n var planes = this.planes;\n var me = m.elements;\n var me0 = me[0],\n me1 = me[1],\n me2 = me[2],\n me3 = me[3];\n var me4 = me[4],\n me5 = me[5],\n me6 = me[6],\n me7 = me[7];\n var me8 = me[8],\n me9 = me[9],\n me10 = me[10],\n me11 = me[11];\n var me12 = me[12],\n me13 = me[13],\n me14 = me[14],\n me15 = me[15];\n planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();\n planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();\n planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();\n planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();\n planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();\n planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();\n return this;\n } },\n {\n key: \"intersectsObject\",\n value: function intersectsObject(object) {\n var geometry = object.geometry;\n if (!geometry) {\n return;\n }\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n _sphere.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld);\n return this.intersectsSphere(_sphere);\n } },\n {\n key: \"intersectsSprite\",\n value: function intersectsSprite(sprite) {\n _sphere.center.set(0, 0, 0);\n _sphere.radius = 0.7071067811865476;\n _sphere.applyMatrix4(sprite.matrixWorld);\n return this.intersectsSphere(_sphere);\n } },\n {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n var planes = this.planes;\n var center = sphere.center;\n var negRadius = -sphere.radius;\n for (var i = 0; i < 6; i++) {\n var distance = planes[i].distanceToPoint(center);\n if (distance < negRadius) {\n return false;\n }\n }\n return true;\n } },\n {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n var planes = this.planes;\n for (var i = 0; i < 6; i++) {\n var plane = planes[i];\n _vector.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n _vector.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n _vector.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n if (plane.distanceToPoint(_vector) < 0) {\n return false;\n }\n }\n return true;\n } },\n {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n var planes = this.planes;\n for (var i = 0; i < 6; i++) {\n if (planes[i].distanceToPoint(point) < 0) {\n return false;\n }\n }\n return true;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Frustum;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/Sphere.js", "pandav:/src/math/Plane.js" ], "buildLevel": 9, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Frustum.js", "fileName": "/src/math/Frustum.js" }, "pandav:/src/math/Interpolant.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Interpolant\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Interpolant = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Interpolant = exports.Interpolant = function () {\n function Interpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n (0, _classCallCheck2.default)(this, Interpolant);\n this.parameterPositions = parameterPositions;\n this._cachedIndex = 0;\n this.resultBuffer = resultBuffer !== undefined ? resultBuffer : new sampleValues.constructor(sampleSize);\n this.sampleValues = sampleValues;\n this.valueSize = sampleSize;\n this.settings = null;\n this.DefaultSettings_ = {};\n }\n (0, _createClass2.default)(Interpolant, [{\n key: \"evaluate\",\n value: function evaluate(t) {\n var pp = this.parameterPositions;\n var i1 = this._cachedIndex,\n t1 = pp[i1],\n t0 = pp[i1 - 1];\n validate_interval: {\n seek: {\n var right;\n linear_scan: {\n forward_scan: if (!(t < t1)) {\n for (var giveUpAt = i1 + 2;;) {\n if (t1 === undefined) {\n if (t < t0) break forward_scan;\n i1 = pp.length;\n this._cachedIndex = i1;\n return this.copySampleValue_(i1 - 1);\n }\n if (i1 === giveUpAt) break;\n t0 = t1;\n t1 = pp[++i1];\n if (t < t1) {\n break seek;\n }\n }\n right = pp.length;\n break linear_scan;\n }\n if (!(t >= t0)) {\n var t1global = pp[1];\n if (t < t1global) {\n i1 = 2;\n t0 = t1global;\n }\n for (var _giveUpAt = i1 - 2;;) {\n if (t0 === undefined) {\n this._cachedIndex = 0;\n return this.copySampleValue_(0);\n }\n if (i1 === _giveUpAt) break;\n t1 = t0;\n t0 = pp[--i1 - 1];\n if (t >= t0) {\n break seek;\n }\n }\n right = i1;\n i1 = 0;\n break linear_scan;\n }\n break validate_interval;\n }\n while (i1 < right) {\n var mid = i1 + right >>> 1;\n if (t < pp[mid]) {\n right = mid;\n } else {\n i1 = mid + 1;\n }\n }\n t1 = pp[i1];\n t0 = pp[i1 - 1];\n if (t0 === undefined) {\n this._cachedIndex = 0;\n return this.copySampleValue_(0);\n }\n if (t1 === undefined) {\n i1 = pp.length;\n this._cachedIndex = i1;\n return this.copySampleValue_(i1 - 1);\n }\n }\n this._cachedIndex = i1;\n this.intervalChanged_(i1, t0, t1);\n }\n return this.interpolate_(i1, t0, t, t1);\n } },\n {\n key: \"getSettings_\",\n value: function getSettings_() {\n return this.settings || this.DefaultSettings_;\n } },\n {\n key: \"copySampleValue_\",\n value: function copySampleValue_(index) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n offset = index * stride;\n for (var i = 0; i !== stride; ++i) {\n result[i] = values[offset + i];\n }\n return result;\n } },\n {\n key: \"interpolate_\",\n value: function interpolate_() {\n throw new Error('call to abstract method');\n } },\n {\n key: \"intervalChanged_\",\n value: function intervalChanged_() {} }]);\n\n return Interpolant;\n }();return module.exports;});", "requires": [], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Interpolant.js", "fileName": "/src/math/Interpolant.js" }, "pandav:/src/math/interpolants/CubicInterpolant.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/interpolants/CubicInterpolant\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Interpolant\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CubicInterpolant = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Interpolant2 = require('pandav:/com/three/0.145.0/src/math/Interpolant');\n var CubicInterpolant = exports.CubicInterpolant = function (_Interpolant) {\n (0, _inherits2.default)(CubicInterpolant, _Interpolant);\n var _super = (0, _createSuper2.default)(CubicInterpolant);\n function CubicInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n var _this;\n (0, _classCallCheck2.default)(this, CubicInterpolant);\n _this = _super.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n _this._weightPrev = -0;\n _this._offsetPrev = -0;\n _this._weightNext = -0;\n _this._offsetNext = -0;\n _this.DefaultSettings_ = {\n endingStart: _constants.ZeroCurvatureEnding,\n endingEnd: _constants.ZeroCurvatureEnding };\n\n return _this;\n }\n (0, _createClass2.default)(CubicInterpolant, [{\n key: \"intervalChanged_\",\n value: function intervalChanged_(i1, t0, t1) {\n var pp = this.parameterPositions;\n var iPrev = i1 - 2,\n iNext = i1 + 1,\n tPrev = pp[iPrev],\n tNext = pp[iNext];\n if (tPrev === undefined) {\n switch (this.getSettings_().endingStart) {\n case _constants.ZeroSlopeEnding:\n iPrev = i1;\n tPrev = 2 * t0 - t1;\n break;\n case _constants.WrapAroundEnding:\n iPrev = pp.length - 2;\n tPrev = t0 + pp[iPrev] - pp[iPrev + 1];\n break;\n default:\n iPrev = i1;\n tPrev = t1;}\n\n }\n if (tNext === undefined) {\n switch (this.getSettings_().endingEnd) {\n case _constants.ZeroSlopeEnding:\n iNext = i1;\n tNext = 2 * t1 - t0;\n break;\n case _constants.WrapAroundEnding:\n iNext = 1;\n tNext = t1 + pp[1] - pp[0];\n break;\n default:\n iNext = i1 - 1;\n tNext = t0;}\n\n }\n var halfDt = (t1 - t0) * 0.5,\n stride = this.valueSize;\n this._weightPrev = halfDt / (t0 - tPrev);\n this._weightNext = halfDt / (tNext - t1);\n this._offsetPrev = iPrev * stride;\n this._offsetNext = iNext * stride;\n } },\n {\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n o1 = i1 * stride,\n o0 = o1 - stride,\n oP = this._offsetPrev,\n oN = this._offsetNext,\n wP = this._weightPrev,\n wN = this._weightNext,\n p = (t - t0) / (t1 - t0),\n pp = p * p,\n ppp = pp * p;\n var sP = -wP * ppp + 2 * wP * pp - wP * p;\n var s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1;\n var s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p;\n var sN = wN * ppp - wN * pp;\n for (var i = 0; i !== stride; ++i) {\n result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i];\n }\n return result;\n } }]);\n\n return CubicInterpolant;\n }(_Interpolant2.Interpolant);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/math/Interpolant.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/math/interpolants", "outputPath": "/com/three/0.145.0/src/math/interpolants/CubicInterpolant.js", "fileName": "/src/math/interpolants/CubicInterpolant.js" }, "pandav:/src/math/interpolants/DiscreteInterpolant.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/interpolants/DiscreteInterpolant\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Interpolant\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DiscreteInterpolant = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Interpolant2 = require('pandav:/com/three/0.145.0/src/math/Interpolant');\n var DiscreteInterpolant = exports.DiscreteInterpolant = function (_Interpolant) {\n (0, _inherits2.default)(DiscreteInterpolant, _Interpolant);\n var _super = (0, _createSuper2.default)(DiscreteInterpolant);\n function DiscreteInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n (0, _classCallCheck2.default)(this, DiscreteInterpolant);\n return _super.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n }\n (0, _createClass2.default)(DiscreteInterpolant, [{\n key: \"interpolate_\",\n value: function interpolate_(i1) {\n return this.copySampleValue_(i1 - 1);\n } }]);\n\n return DiscreteInterpolant;\n }(_Interpolant2.Interpolant);return module.exports;});", "requires": [ "pandav:/src/math/Interpolant.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/math/interpolants", "outputPath": "/com/three/0.145.0/src/math/interpolants/DiscreteInterpolant.js", "fileName": "/src/math/interpolants/DiscreteInterpolant.js" }, "pandav:/src/math/Matrix3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Matrix3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Matrix3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Matrix3 = exports.Matrix3 = function () {\n function Matrix3() {\n (0, _classCallCheck2.default)(this, Matrix3);\n Matrix3.prototype.isMatrix3 = true;\n this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n }\n (0, _createClass2.default)(Matrix3, [{\n key: \"set\",\n value: function set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n var te = this.elements;\n te[0] = n11;\n te[1] = n21;\n te[2] = n31;\n te[3] = n12;\n te[4] = n22;\n te[5] = n32;\n te[6] = n13;\n te[7] = n23;\n te[8] = n33;\n return this;\n } },\n {\n key: \"identity\",\n value: function identity() {\n this.set(1, 0, 0, 0, 1, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(m) {\n var te = this.elements;\n var me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n return this;\n } },\n {\n key: \"extractBasis\",\n value: function extractBasis(xAxis, yAxis, zAxis) {\n xAxis.setFromMatrix3Column(this, 0);\n yAxis.setFromMatrix3Column(this, 1);\n zAxis.setFromMatrix3Column(this, 2);\n return this;\n } },\n {\n key: \"setFromMatrix4\",\n value: function setFromMatrix4(m) {\n var me = m.elements;\n this.set(me[0], me[4], me[8], me[1], me[5], me[9], me[2], me[6], me[10]);\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(m) {\n return this.multiplyMatrices(this, m);\n } },\n {\n key: \"premultiply\",\n value: function premultiply(m) {\n return this.multiplyMatrices(m, this);\n } },\n {\n key: \"multiplyMatrices\",\n value: function multiplyMatrices(a, b) {\n var ae = a.elements;\n var be = b.elements;\n var te = this.elements;\n var a11 = ae[0],\n a12 = ae[3],\n a13 = ae[6];\n var a21 = ae[1],\n a22 = ae[4],\n a23 = ae[7];\n var a31 = ae[2],\n a32 = ae[5],\n a33 = ae[8];\n var b11 = be[0],\n b12 = be[3],\n b13 = be[6];\n var b21 = be[1],\n b22 = be[4],\n b23 = be[7];\n var b31 = be[2],\n b32 = be[5],\n b33 = be[8];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n return this;\n } },\n {\n key: \"multiplyScalar\",\n value: function multiplyScalar(s) {\n var te = this.elements;\n te[0] *= s;\n te[3] *= s;\n te[6] *= s;\n te[1] *= s;\n te[4] *= s;\n te[7] *= s;\n te[2] *= s;\n te[5] *= s;\n te[8] *= s;\n return this;\n } },\n {\n key: \"determinant\",\n value: function determinant() {\n var te = this.elements;\n var a = te[0],\n b = te[1],\n c = te[2],\n d = te[3],\n e = te[4],\n f = te[5],\n g = te[6],\n h = te[7],\n i = te[8];\n return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n } },\n {\n key: \"invert\",\n value: function invert() {\n var te = this.elements,\n n11 = te[0],\n n21 = te[1],\n n31 = te[2],\n n12 = te[3],\n n22 = te[4],\n n32 = te[5],\n n13 = te[6],\n n23 = te[7],\n n33 = te[8],\n t11 = n33 * n22 - n32 * n23,\n t12 = n32 * n13 - n33 * n12,\n t13 = n23 * n12 - n22 * n13,\n det = n11 * t11 + n21 * t12 + n31 * t13;\n if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n var detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n31 * n23 - n33 * n21) * detInv;\n te[2] = (n32 * n21 - n31 * n22) * detInv;\n te[3] = t12 * detInv;\n te[4] = (n33 * n11 - n31 * n13) * detInv;\n te[5] = (n31 * n12 - n32 * n11) * detInv;\n te[6] = t13 * detInv;\n te[7] = (n21 * n13 - n23 * n11) * detInv;\n te[8] = (n22 * n11 - n21 * n12) * detInv;\n return this;\n } },\n {\n key: \"transpose\",\n value: function transpose() {\n var tmp;\n var m = this.elements;\n tmp = m[1];\n m[1] = m[3];\n m[3] = tmp;\n tmp = m[2];\n m[2] = m[6];\n m[6] = tmp;\n tmp = m[5];\n m[5] = m[7];\n m[7] = tmp;\n return this;\n } },\n {\n key: \"getNormalMatrix\",\n value: function getNormalMatrix(matrix4) {\n return this.setFromMatrix4(matrix4).invert().transpose();\n } },\n {\n key: \"transposeIntoArray\",\n value: function transposeIntoArray(r) {\n var m = this.elements;\n r[0] = m[0];\n r[1] = m[3];\n r[2] = m[6];\n r[3] = m[1];\n r[4] = m[4];\n r[5] = m[7];\n r[6] = m[2];\n r[7] = m[5];\n r[8] = m[8];\n return this;\n } },\n {\n key: \"setUvTransform\",\n value: function setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n this.set(sx * c, sx * s, -sx * (c * cx + s * cy) + cx + tx, -sy * s, sy * c, -sy * (-s * cx + c * cy) + cy + ty, 0, 0, 1);\n return this;\n } },\n {\n key: \"scale\",\n value: function scale(sx, sy) {\n var te = this.elements;\n te[0] *= sx;\n te[3] *= sx;\n te[6] *= sx;\n te[1] *= sy;\n te[4] *= sy;\n te[7] *= sy;\n return this;\n } },\n {\n key: \"rotate\",\n value: function rotate(theta) {\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n var te = this.elements;\n var a11 = te[0],\n a12 = te[3],\n a13 = te[6];\n var a21 = te[1],\n a22 = te[4],\n a23 = te[7];\n te[0] = c * a11 + s * a21;\n te[3] = c * a12 + s * a22;\n te[6] = c * a13 + s * a23;\n te[1] = -s * a11 + c * a21;\n te[4] = -s * a12 + c * a22;\n te[7] = -s * a13 + c * a23;\n return this;\n } },\n {\n key: \"translate\",\n value: function translate(tx, ty) {\n var te = this.elements;\n te[0] += tx * te[2];\n te[3] += tx * te[5];\n te[6] += tx * te[8];\n te[1] += ty * te[2];\n te[4] += ty * te[5];\n te[7] += ty * te[8];\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(matrix) {\n var te = this.elements;\n var me = matrix.elements;\n for (var i = 0; i < 9; i++) {\n if (te[i] !== me[i]) return false;\n }\n return true;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n for (var i = 0; i < 9; i++) {\n this.elements[i] = array[i + offset];\n }\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n return array;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().fromArray(this.elements);\n } }]);\n\n return Matrix3;\n }();return module.exports;});", "requires": [], "buildLevel": 10, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Matrix3.js", "fileName": "/src/math/Matrix3.js" }, "pandav:/src/math/interpolants/QuaternionLinearInterpolant.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/interpolants/QuaternionLinearInterpolant\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Interpolant\", \"pandav:/com/three/0.145.0/src/math/Quaternion\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.QuaternionLinearInterpolant = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Interpolant2 = require('pandav:/com/three/0.145.0/src/math/Interpolant');\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var QuaternionLinearInterpolant = exports.QuaternionLinearInterpolant = function (_Interpolant) {\n (0, _inherits2.default)(QuaternionLinearInterpolant, _Interpolant);\n var _super = (0, _createSuper2.default)(QuaternionLinearInterpolant);\n function QuaternionLinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n (0, _classCallCheck2.default)(this, QuaternionLinearInterpolant);\n return _super.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n }\n (0, _createClass2.default)(QuaternionLinearInterpolant, [{\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n alpha = (t - t0) / (t1 - t0);\n var offset = i1 * stride;\n for (var end = offset + stride; offset !== end; offset += 4) {\n _Quaternion.Quaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha);\n }\n return result;\n } }]);\n\n return QuaternionLinearInterpolant;\n }(_Interpolant2.Interpolant);return module.exports;});", "requires": [ "pandav:/src/math/Interpolant.js", "pandav:/src/math/Quaternion.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/math/interpolants", "outputPath": "/com/three/0.145.0/src/math/interpolants/QuaternionLinearInterpolant.js", "fileName": "/src/math/interpolants/QuaternionLinearInterpolant.js" }, "pandav:/src/math/Line3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Line3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Line3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var _startP = new _Vector.Vector3();\n var _startEnd = new _Vector.Vector3();\n var Line3 = exports.Line3 = function () {\n function Line3() {\n var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3();\n var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n (0, _classCallCheck2.default)(this, Line3);\n this.start = start;\n this.end = end;\n }\n (0, _createClass2.default)(Line3, [{\n key: \"set\",\n value: function set(start, end) {\n this.start.copy(start);\n this.end.copy(end);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(line) {\n this.start.copy(line.start);\n this.end.copy(line.end);\n return this;\n } },\n {\n key: \"getCenter\",\n value: function getCenter(target) {\n return target.addVectors(this.start, this.end).multiplyScalar(0.5);\n } },\n {\n key: \"delta\",\n value: function delta(target) {\n return target.subVectors(this.end, this.start);\n } },\n {\n key: \"distanceSq\",\n value: function distanceSq() {\n return this.start.distanceToSquared(this.end);\n } },\n {\n key: \"distance\",\n value: function distance() {\n return this.start.distanceTo(this.end);\n } },\n {\n key: \"at\",\n value: function at(t, target) {\n return this.delta(target).multiplyScalar(t).add(this.start);\n } },\n {\n key: \"closestPointToPointParameter\",\n value: function closestPointToPointParameter(point, clampToLine) {\n _startP.subVectors(point, this.start);\n _startEnd.subVectors(this.end, this.start);\n var startEnd2 = _startEnd.dot(_startEnd);\n var startEnd_startP = _startEnd.dot(_startP);\n var t = startEnd_startP / startEnd2;\n if (clampToLine) {\n t = MathUtils.clamp(t, 0, 1);\n }\n return t;\n } },\n {\n key: \"closestPointToPoint\",\n value: function closestPointToPoint(point, clampToLine, target) {\n var t = this.closestPointToPointParameter(point, clampToLine);\n return this.delta(target).multiplyScalar(t).add(this.start);\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n this.start.applyMatrix4(matrix);\n this.end.applyMatrix4(matrix);\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(line) {\n return line.start.equals(this.start) && line.end.equals(this.end);\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Line3;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 53, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Line3.js", "fileName": "/src/math/Line3.js" }, "pandav:/src/math/Plane.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Plane\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Plane = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _vector1 = new _Vector.Vector3();\n var _vector2 = new _Vector.Vector3();\n var _normalMatrix = new _Matrix.Matrix3();\n var Plane = exports.Plane = function () {\n function Plane() {\n var normal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3(1, 0, 0);\n var constant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n (0, _classCallCheck2.default)(this, Plane);\n this.isPlane = true;\n this.normal = normal;\n this.constant = constant;\n }\n (0, _createClass2.default)(Plane, [{\n key: \"set\",\n value: function set(normal, constant) {\n this.normal.copy(normal);\n this.constant = constant;\n return this;\n } },\n {\n key: \"setComponents\",\n value: function setComponents(x, y, z, w) {\n this.normal.set(x, y, z);\n this.constant = w;\n return this;\n } },\n {\n key: \"setFromNormalAndCoplanarPoint\",\n value: function setFromNormalAndCoplanarPoint(normal, point) {\n this.normal.copy(normal);\n this.constant = -point.dot(this.normal);\n return this;\n } },\n {\n key: \"setFromCoplanarPoints\",\n value: function setFromCoplanarPoints(a, b, c) {\n var normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize();\n this.setFromNormalAndCoplanarPoint(normal, a);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(plane) {\n this.normal.copy(plane.normal);\n this.constant = plane.constant;\n return this;\n } },\n {\n key: \"normalize\",\n value: function normalize() {\n var inverseNormalLength = 1.0 / this.normal.length();\n this.normal.multiplyScalar(inverseNormalLength);\n this.constant *= inverseNormalLength;\n return this;\n } },\n {\n key: \"negate\",\n value: function negate() {\n this.constant *= -1;\n this.normal.negate();\n return this;\n } },\n {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return this.normal.dot(point) + this.constant;\n } },\n {\n key: \"distanceToSphere\",\n value: function distanceToSphere(sphere) {\n return this.distanceToPoint(sphere.center) - sphere.radius;\n } },\n {\n key: \"projectPoint\",\n value: function projectPoint(point, target) {\n return target.copy(this.normal).multiplyScalar(-this.distanceToPoint(point)).add(point);\n } },\n {\n key: \"intersectLine\",\n value: function intersectLine(line, target) {\n var direction = line.delta(_vector1);\n var denominator = this.normal.dot(direction);\n if (denominator === 0) {\n if (this.distanceToPoint(line.start) === 0) {\n return target.copy(line.start);\n }\n return null;\n }\n var t = -(line.start.dot(this.normal) + this.constant) / denominator;\n if (t < 0 || t > 1) {\n return null;\n }\n return target.copy(direction).multiplyScalar(t).add(line.start);\n } },\n {\n key: \"intersectsLine\",\n value: function intersectsLine(line) {\n var startSign = this.distanceToPoint(line.start);\n var endSign = this.distanceToPoint(line.end);\n return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0;\n } },\n {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.intersectsPlane(this);\n } },\n {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n return sphere.intersectsPlane(this);\n } },\n {\n key: \"coplanarPoint\",\n value: function coplanarPoint(target) {\n return target.copy(this.normal).multiplyScalar(-this.constant);\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix, optionalNormalMatrix) {\n var normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix);\n var referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix);\n var normal = this.normal.applyMatrix3(normalMatrix).normalize();\n this.constant = -referencePoint.dot(normal);\n return this;\n } },\n {\n key: \"translate\",\n value: function translate(offset) {\n this.constant -= offset.dot(this.normal);\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(plane) {\n return plane.normal.equals(this.normal) && plane.constant === this.constant;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Plane;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Matrix3.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 10, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Plane.js", "fileName": "/src/math/Plane.js" }, "pandav:/src/math/interpolants/LinearInterpolant.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/interpolants/LinearInterpolant\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Interpolant\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LinearInterpolant = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Interpolant2 = require('pandav:/com/three/0.145.0/src/math/Interpolant');\n var LinearInterpolant = exports.LinearInterpolant = function (_Interpolant) {\n (0, _inherits2.default)(LinearInterpolant, _Interpolant);\n var _super = (0, _createSuper2.default)(LinearInterpolant);\n function LinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n (0, _classCallCheck2.default)(this, LinearInterpolant);\n return _super.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer);\n }\n (0, _createClass2.default)(LinearInterpolant, [{\n key: \"interpolate_\",\n value: function interpolate_(i1, t0, t, t1) {\n var result = this.resultBuffer,\n values = this.sampleValues,\n stride = this.valueSize,\n offset1 = i1 * stride,\n offset0 = offset1 - stride,\n weight1 = (t - t0) / (t1 - t0),\n weight0 = 1 - weight1;\n for (var i = 0; i !== stride; ++i) {\n result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1;\n }\n return result;\n } }]);\n\n return LinearInterpolant;\n }(_Interpolant2.Interpolant);return module.exports;});", "requires": [ "pandav:/src/math/Interpolant.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/math/interpolants", "outputPath": "/com/three/0.145.0/src/math/interpolants/LinearInterpolant.js", "fileName": "/src/math/interpolants/LinearInterpolant.js" }, "pandav:/src/math/MathUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/MathUtils\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.RAD2DEG = exports.DEG2RAD = void 0;\n exports.ceilPowerOfTwo = ceilPowerOfTwo;\n exports.clamp = clamp;\n exports.damp = damp;\n exports.degToRad = degToRad;\n exports.denormalize = denormalize;\n exports.euclideanModulo = euclideanModulo;\n exports.floorPowerOfTwo = floorPowerOfTwo;\n exports.generateUUID = generateUUID;\n exports.inverseLerp = inverseLerp;\n exports.isPowerOfTwo = isPowerOfTwo;\n exports.lerp = lerp;\n exports.mapLinear = mapLinear;\n exports.normalize = normalize;\n exports.pingpong = pingpong;\n exports.radToDeg = radToDeg;\n exports.randFloat = randFloat;\n exports.randFloatSpread = randFloatSpread;\n exports.randInt = randInt;\n exports.seededRandom = seededRandom;\n exports.setQuaternionFromProperEuler = setQuaternionFromProperEuler;\n exports.smootherstep = smootherstep;\n exports.smoothstep = smoothstep;\n var _lut = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff'];\n var _seed = 1234567;\n var DEG2RAD = exports.DEG2RAD = Math.PI / 180;\n var RAD2DEG = exports.RAD2DEG = 180 / Math.PI;\n function generateUUID() {\n var d0 = Math.random() * 0xffffffff | 0;\n var d1 = Math.random() * 0xffffffff | 0;\n var d2 = Math.random() * 0xffffffff | 0;\n var d3 = Math.random() * 0xffffffff | 0;\n var uuid = _lut[d0 & 0xff] + _lut[d0 >> 8 & 0xff] + _lut[d0 >> 16 & 0xff] + _lut[d0 >> 24 & 0xff] + '-' + _lut[d1 & 0xff] + _lut[d1 >> 8 & 0xff] + '-' + _lut[d1 >> 16 & 0x0f | 0x40] + _lut[d1 >> 24 & 0xff] + '-' + _lut[d2 & 0x3f | 0x80] + _lut[d2 >> 8 & 0xff] + '-' + _lut[d2 >> 16 & 0xff] + _lut[d2 >> 24 & 0xff] + _lut[d3 & 0xff] + _lut[d3 >> 8 & 0xff] + _lut[d3 >> 16 & 0xff] + _lut[d3 >> 24 & 0xff];\n return uuid.toLowerCase();\n }\n function clamp(value, min, max) {\n return Math.max(min, Math.min(max, value));\n }\n function euclideanModulo(n, m) {\n return (n % m + m) % m;\n }\n function mapLinear(x, a1, a2, b1, b2) {\n return b1 + (x - a1) * (b2 - b1) / (a2 - a1);\n }\n function inverseLerp(x, y, value) {\n if (x !== y) {\n return (value - x) / (y - x);\n } else {\n return 0;\n }\n }\n function lerp(x, y, t) {\n return (1 - t) * x + t * y;\n }\n function damp(x, y, lambda, dt) {\n return lerp(x, y, 1 - Math.exp(-lambda * dt));\n }\n function pingpong(x) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return length - Math.abs(euclideanModulo(x, length * 2) - length);\n }\n function smoothstep(x, min, max) {\n if (x <= min) return 0;\n if (x >= max) return 1;\n x = (x - min) / (max - min);\n return x * x * (3 - 2 * x);\n }\n function smootherstep(x, min, max) {\n if (x <= min) return 0;\n if (x >= max) return 1;\n x = (x - min) / (max - min);\n return x * x * x * (x * (x * 6 - 15) + 10);\n }\n function randInt(low, high) {\n return low + Math.floor(Math.random() * (high - low + 1));\n }\n function randFloat(low, high) {\n return low + Math.random() * (high - low);\n }\n function randFloatSpread(range) {\n return range * (0.5 - Math.random());\n }\n function seededRandom(s) {\n if (s !== undefined) _seed = s;\n var t = _seed += 0x6D2B79F5;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n }\n function degToRad(degrees) {\n return degrees * DEG2RAD;\n }\n function radToDeg(radians) {\n return radians * RAD2DEG;\n }\n function isPowerOfTwo(value) {\n return (value & value - 1) === 0 && value !== 0;\n }\n function ceilPowerOfTwo(value) {\n return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n }\n function floorPowerOfTwo(value) {\n return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\n }\n function setQuaternionFromProperEuler(q, a, b, c, order) {\n var cos = Math.cos;\n var sin = Math.sin;\n var c2 = cos(b / 2);\n var s2 = sin(b / 2);\n var c13 = cos((a + c) / 2);\n var s13 = sin((a + c) / 2);\n var c1_3 = cos((a - c) / 2);\n var s1_3 = sin((a - c) / 2);\n var c3_1 = cos((c - a) / 2);\n var s3_1 = sin((c - a) / 2);\n switch (order) {\n case 'XYX':\n q.set(c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13);\n break;\n case 'YZY':\n q.set(s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13);\n break;\n case 'ZXZ':\n q.set(s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13);\n break;\n case 'XZX':\n q.set(c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13);\n break;\n case 'YXY':\n q.set(s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13);\n break;\n case 'ZYZ':\n q.set(s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13);\n break;\n default:\n console.warn('THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order);}\n\n }\n function denormalize(value, array) {\n switch (array.constructor) {\n case Float32Array:\n return value;\n case Uint16Array:\n return value / 65535.0;\n case Uint8Array:\n return value / 255.0;\n case Int16Array:\n return Math.max(value / 32767.0, -1.0);\n case Int8Array:\n return Math.max(value / 127.0, -1.0);\n default:\n throw new Error('Invalid component type.');}\n\n }\n function normalize(value, array) {\n switch (array.constructor) {\n case Float32Array:\n return value;\n case Uint16Array:\n return Math.round(value * 65535.0);\n case Uint8Array:\n return Math.round(value * 255.0);\n case Int16Array:\n return Math.round(value * 32767.0);\n case Int8Array:\n return Math.round(value * 127.0);\n default:\n throw new Error('Invalid component type.');}\n\n }return module.exports;});", "requires": [], "buildLevel": 8, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/MathUtils.js", "fileName": "/src/math/MathUtils.js" }, "pandav:/src/math/Quaternion.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Quaternion\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Quaternion = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var Quaternion = exports.Quaternion = function (_Symbol$iterator) {\n function Quaternion() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var w = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n (0, _classCallCheck2.default)(this, Quaternion);\n this.isQuaternion = true;\n this._x = x;\n this._y = y;\n this._z = z;\n this._w = w;\n }\n (0, _createClass2.default)(Quaternion, [{\n key: \"x\",\n get: function get() {\n return this._x;\n },\n set: function set(value) {\n this._x = value;\n this._onChangeCallback();\n } },\n {\n key: \"y\",\n get: function get() {\n return this._y;\n },\n set: function set(value) {\n this._y = value;\n this._onChangeCallback();\n } },\n {\n key: \"z\",\n get: function get() {\n return this._z;\n },\n set: function set(value) {\n this._z = value;\n this._onChangeCallback();\n } },\n {\n key: \"w\",\n get: function get() {\n return this._w;\n },\n set: function set(value) {\n this._w = value;\n this._onChangeCallback();\n } },\n {\n key: \"set\",\n value: function set(x, y, z, w) {\n this._x = x;\n this._y = y;\n this._z = z;\n this._w = w;\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._w);\n } },\n {\n key: \"copy\",\n value: function copy(quaternion) {\n this._x = quaternion.x;\n this._y = quaternion.y;\n this._z = quaternion.z;\n this._w = quaternion.w;\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"setFromEuler\",\n value: function setFromEuler(euler, update) {\n var x = euler._x,\n y = euler._y,\n z = euler._z,\n order = euler._order;\n var cos = Math.cos;\n var sin = Math.sin;\n var c1 = cos(x / 2);\n var c2 = cos(y / 2);\n var c3 = cos(z / 2);\n var s1 = sin(x / 2);\n var s2 = sin(y / 2);\n var s3 = sin(z / 2);\n switch (order) {\n case 'XYZ':\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case 'YXZ':\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n case 'ZXY':\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case 'ZYX':\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n case 'YZX':\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case 'XZY':\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n default:\n console.warn('THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order);}\n\n if (update !== false) this._onChangeCallback();\n return this;\n } },\n {\n key: \"setFromAxisAngle\",\n value: function setFromAxisAngle(axis, angle) {\n var halfAngle = angle / 2,\n s = Math.sin(halfAngle);\n this._x = axis.x * s;\n this._y = axis.y * s;\n this._z = axis.z * s;\n this._w = Math.cos(halfAngle);\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"setFromRotationMatrix\",\n value: function setFromRotationMatrix(m) {\n var te = m.elements,\n m11 = te[0],\n m12 = te[4],\n m13 = te[8],\n m21 = te[1],\n m22 = te[5],\n m23 = te[9],\n m31 = te[2],\n m32 = te[6],\n m33 = te[10],\n trace = m11 + m22 + m33;\n if (trace > 0) {\n var s = 0.5 / Math.sqrt(trace + 1.0);\n this._w = 0.25 / s;\n this._x = (m32 - m23) * s;\n this._y = (m13 - m31) * s;\n this._z = (m21 - m12) * s;\n } else if (m11 > m22 && m11 > m33) {\n var _s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);\n this._w = (m32 - m23) / _s;\n this._x = 0.25 * _s;\n this._y = (m12 + m21) / _s;\n this._z = (m13 + m31) / _s;\n } else if (m22 > m33) {\n var _s2 = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);\n this._w = (m13 - m31) / _s2;\n this._x = (m12 + m21) / _s2;\n this._y = 0.25 * _s2;\n this._z = (m23 + m32) / _s2;\n } else {\n var _s3 = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);\n this._w = (m21 - m12) / _s3;\n this._x = (m13 + m31) / _s3;\n this._y = (m23 + m32) / _s3;\n this._z = 0.25 * _s3;\n }\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"setFromUnitVectors\",\n value: function setFromUnitVectors(vFrom, vTo) {\n var r = vFrom.dot(vTo) + 1;\n if (r < Number.EPSILON) {\n r = 0;\n if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n this._x = -vFrom.y;\n this._y = vFrom.x;\n this._z = 0;\n this._w = r;\n } else {\n this._x = 0;\n this._y = -vFrom.z;\n this._z = vFrom.y;\n this._w = r;\n }\n } else {\n this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n this._w = r;\n }\n return this.normalize();\n } },\n {\n key: \"angleTo\",\n value: function angleTo(q) {\n return 2 * Math.acos(Math.abs(MathUtils.clamp(this.dot(q), -1, 1)));\n } },\n {\n key: \"angleTo2\",\n value: function angleTo2(q) {\n var angleTo = this.angleTo(q);\n return angleTo > Math.PI ? 2 * Math.PI - angleTo : angleTo;\n } },\n {\n key: \"rotateTowards\",\n value: function rotateTowards(q, step) {\n var angle = this.angleTo(q);\n if (angle === 0) return this;\n var t = Math.min(1, step / angle);\n this.slerp(q, t);\n return this;\n } },\n {\n key: \"identity\",\n value: function identity() {\n return this.set(0, 0, 0, 1);\n } },\n {\n key: \"invert\",\n value: function invert() {\n return this.conjugate();\n } },\n {\n key: \"conjugate\",\n value: function conjugate() {\n this._x *= -1;\n this._y *= -1;\n this._z *= -1;\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"dot\",\n value: function dot(v) {\n return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n } },\n {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n } },\n {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n } },\n {\n key: \"normalize\",\n value: function normalize() {\n var l = this.length();\n if (l === 0) {\n this._x = 0;\n this._y = 0;\n this._z = 0;\n this._w = 1;\n } else {\n l = 1 / l;\n this._x = this._x * l;\n this._y = this._y * l;\n this._z = this._z * l;\n this._w = this._w * l;\n }\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(q) {\n return this.multiplyQuaternions(this, q);\n } },\n {\n key: \"premultiply\",\n value: function premultiply(q) {\n return this.multiplyQuaternions(q, this);\n } },\n {\n key: \"multiplyQuaternions\",\n value: function multiplyQuaternions(a, b) {\n var qax = a._x,\n qay = a._y,\n qaz = a._z,\n qaw = a._w;\n var qbx = b._x,\n qby = b._y,\n qbz = b._z,\n qbw = b._w;\n this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"slerp\",\n value: function slerp(qb, t) {\n if (t === 0) return this;\n if (t === 1) return this.copy(qb);\n var x = this._x,\n y = this._y,\n z = this._z,\n w = this._w;\n var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n if (cosHalfTheta < 0) {\n this._w = -qb._w;\n this._x = -qb._x;\n this._y = -qb._y;\n this._z = -qb._z;\n cosHalfTheta = -cosHalfTheta;\n } else {\n this.copy(qb);\n }\n if (cosHalfTheta >= 1.0) {\n this._w = w;\n this._x = x;\n this._y = y;\n this._z = z;\n return this;\n }\n var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n if (sqrSinHalfTheta <= Number.EPSILON) {\n var s = 1 - t;\n this._w = s * w + t * this._w;\n this._x = s * x + t * this._x;\n this._y = s * y + t * this._y;\n this._z = s * z + t * this._z;\n this.normalize();\n this._onChangeCallback();\n return this;\n }\n var sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta,\n ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n this._w = w * ratioA + this._w * ratioB;\n this._x = x * ratioA + this._x * ratioB;\n this._y = y * ratioA + this._y * ratioB;\n this._z = z * ratioA + this._z * ratioB;\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"slerpQuaternions\",\n value: function slerpQuaternions(qa, qb, t) {\n return this.copy(qa).slerp(qb, t);\n } },\n {\n key: \"random\",\n value: function random() {\n var u1 = Math.random();\n var sqrt1u1 = Math.sqrt(1 - u1);\n var sqrtu1 = Math.sqrt(u1);\n var u2 = 2 * Math.PI * Math.random();\n var u3 = 2 * Math.PI * Math.random();\n return this.set(sqrt1u1 * Math.cos(u2), sqrtu1 * Math.sin(u3), sqrtu1 * Math.cos(u3), sqrt1u1 * Math.sin(u2));\n } },\n {\n key: \"equals\",\n value: function equals(quaternion) {\n return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this._x = array[offset];\n this._y = array[offset + 1];\n this._z = array[offset + 2];\n this._w = array[offset + 3];\n this._onChangeCallback();\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this._x;\n array[offset + 1] = this._y;\n array[offset + 2] = this._z;\n array[offset + 3] = this._w;\n return array;\n } },\n {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this._x = attribute.getX(index);\n this._y = attribute.getY(index);\n this._z = attribute.getZ(index);\n this._w = attribute.getW(index);\n return this;\n } },\n {\n key: \"_onChange\",\n value: function _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n } },\n {\n key: \"_onChangeCallback\",\n value: function _onChangeCallback() {} },\n {\n key: _Symbol$iterator,\n value: _regenerator.default.mark(function value() {\n return _regenerator.default.wrap(function value$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._x;\n case 2:\n _context.next = 4;\n return this._y;\n case 4:\n _context.next = 6;\n return this._z;\n case 6:\n _context.next = 8;\n return this._w;\n case 8:\n case \"end\":\n return _context.stop();}\n\n }, value, this);\n }) }],\n [{\n key: \"slerpFlat\",\n value: function slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n var x0 = src0[srcOffset0 + 0],\n y0 = src0[srcOffset0 + 1],\n z0 = src0[srcOffset0 + 2],\n w0 = src0[srcOffset0 + 3];\n var x1 = src1[srcOffset1 + 0],\n y1 = src1[srcOffset1 + 1],\n z1 = src1[srcOffset1 + 2],\n w1 = src1[srcOffset1 + 3];\n if (t === 0) {\n dst[dstOffset + 0] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n return;\n }\n if (t === 1) {\n dst[dstOffset + 0] = x1;\n dst[dstOffset + 1] = y1;\n dst[dstOffset + 2] = z1;\n dst[dstOffset + 3] = w1;\n return;\n }\n if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n var s = 1 - t;\n var cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n dir = cos >= 0 ? 1 : -1,\n sqrSin = 1 - cos * cos;\n if (sqrSin > Number.EPSILON) {\n var sin = Math.sqrt(sqrSin),\n len = Math.atan2(sin, cos * dir);\n s = Math.sin(s * len) / sin;\n t = Math.sin(t * len) / sin;\n }\n var tDir = t * dir;\n x0 = x0 * s + x1 * tDir;\n y0 = y0 * s + y1 * tDir;\n z0 = z0 * s + z1 * tDir;\n w0 = w0 * s + w1 * tDir;\n if (s === 1 - t) {\n var f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n x0 *= f;\n y0 *= f;\n z0 *= f;\n w0 *= f;\n }\n }\n dst[dstOffset] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n } },\n {\n key: \"multiplyQuaternionsFlat\",\n value: function multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\n var x0 = src0[srcOffset0];\n var y0 = src0[srcOffset0 + 1];\n var z0 = src0[srcOffset0 + 2];\n var w0 = src0[srcOffset0 + 3];\n var x1 = src1[srcOffset1];\n var y1 = src1[srcOffset1 + 1];\n var z1 = src1[srcOffset1 + 2];\n var w1 = src1[srcOffset1 + 3];\n dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n return dst;\n } }]);\n\n return Quaternion;\n }(Symbol.iterator);return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js" ], "buildLevel": 10, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Quaternion.js", "fileName": "/src/math/Quaternion.js" }, "pandav:/src/math/Sphere.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Sphere\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Box3\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Sphere = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Box = require('pandav:/com/three/0.145.0/src/math/Box3');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _box = new _Box.Box3();\n var _v1 = new _Vector.Vector3();\n var _toFarthestPoint = new _Vector.Vector3();\n var _toPoint = new _Vector.Vector3();\n var Sphere = exports.Sphere = function () {\n function Sphere() {\n var center = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3();\n var radius = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n (0, _classCallCheck2.default)(this, Sphere);\n this.center = center;\n this.radius = radius;\n }\n (0, _createClass2.default)(Sphere, [{\n key: \"set\",\n value: function set(center, radius) {\n this.center.copy(center);\n this.radius = radius;\n return this;\n } },\n {\n key: \"setFromPoints\",\n value: function setFromPoints(points, optionalCenter) {\n var center = this.center;\n if (optionalCenter !== undefined) {\n center.copy(optionalCenter);\n } else {\n _box.setFromPoints(points).getCenter(center);\n }\n var maxRadiusSq = 0;\n for (var i = 0, il = points.length; i < il; i++) {\n maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i]));\n }\n this.radius = Math.sqrt(maxRadiusSq);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(sphere) {\n this.center.copy(sphere.center);\n this.radius = sphere.radius;\n return this;\n } },\n {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.radius < 0;\n } },\n {\n key: \"makeEmpty\",\n value: function makeEmpty() {\n this.center.set(0, 0, 0);\n this.radius = -1;\n return this;\n } },\n {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return point.distanceToSquared(this.center) <= this.radius * this.radius;\n } },\n {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return point.distanceTo(this.center) - this.radius;\n } },\n {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n var radiusSum = this.radius + sphere.radius;\n return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum;\n } },\n {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.intersectsSphere(this);\n } },\n {\n key: \"intersectsPlane\",\n value: function intersectsPlane(plane) {\n return Math.abs(plane.distanceToPoint(this.center)) <= this.radius;\n } },\n {\n key: \"clampPoint\",\n value: function clampPoint(point, target) {\n var deltaLengthSq = this.center.distanceToSquared(point);\n target.copy(point);\n if (deltaLengthSq > this.radius * this.radius) {\n target.sub(this.center).normalize();\n target.multiplyScalar(this.radius).add(this.center);\n }\n return target;\n } },\n {\n key: \"getBoundingBox\",\n value: function getBoundingBox(target) {\n if (this.isEmpty()) {\n target.makeEmpty();\n return target;\n }\n target.set(this.center, this.center);\n target.expandByScalar(this.radius);\n return target;\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix) {\n this.center.applyMatrix4(matrix);\n this.radius = this.radius * matrix.getMaxScaleOnAxis();\n return this;\n } },\n {\n key: \"translate\",\n value: function translate(offset) {\n this.center.add(offset);\n return this;\n } },\n {\n key: \"expandByPoint\",\n value: function expandByPoint(point) {\n if (this.isEmpty()) {\n this.center.copy(point);\n this.radius = 0;\n return this;\n }\n _toPoint.subVectors(point, this.center);\n var lengthSq = _toPoint.lengthSq();\n if (lengthSq > this.radius * this.radius) {\n var length = Math.sqrt(lengthSq);\n var missingRadiusHalf = (length - this.radius) * 0.5;\n this.center.add(_toPoint.multiplyScalar(missingRadiusHalf / length));\n this.radius += missingRadiusHalf;\n }\n return this;\n } },\n {\n key: \"union\",\n value: function union(sphere) {\n if (sphere.isEmpty()) {\n return this;\n } else if (this.isEmpty()) {\n this.copy(sphere);\n return this;\n }\n if (this.center.equals(sphere.center) === true) {\n _toFarthestPoint.set(0, 0, 1).multiplyScalar(sphere.radius);\n } else {\n _toFarthestPoint.subVectors(sphere.center, this.center).normalize().multiplyScalar(sphere.radius);\n }\n this.expandByPoint(_v1.copy(sphere.center).add(_toFarthestPoint));\n this.expandByPoint(_v1.copy(sphere.center).sub(_toFarthestPoint));\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(sphere) {\n return sphere.center.equals(this.center) && sphere.radius === this.radius;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Sphere;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Box3.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 10, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Sphere.js", "fileName": "/src/math/Sphere.js" }, "pandav:/src/math/Ray.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Ray\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Ray = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _vector = new _Vector.Vector3();\n var _segCenter = new _Vector.Vector3();\n var _segDir = new _Vector.Vector3();\n var _diff = new _Vector.Vector3();\n var _edge1 = new _Vector.Vector3();\n var _edge2 = new _Vector.Vector3();\n var _normal = new _Vector.Vector3();\n var Ray = exports.Ray = function () {\n function Ray() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3();\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3(0, 0, -1);\n (0, _classCallCheck2.default)(this, Ray);\n this.origin = origin;\n this.direction = direction;\n }\n (0, _createClass2.default)(Ray, [{\n key: \"set\",\n value: function set(origin, direction) {\n this.origin.copy(origin);\n this.direction.copy(direction);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(ray) {\n this.origin.copy(ray.origin);\n this.direction.copy(ray.direction);\n return this;\n } },\n {\n key: \"at\",\n value: function at(t, target) {\n return target.copy(this.direction).multiplyScalar(t).add(this.origin);\n } },\n {\n key: \"lookAt\",\n value: function lookAt(v) {\n this.direction.copy(v).sub(this.origin).normalize();\n return this;\n } },\n {\n key: \"recast\",\n value: function recast(t) {\n this.origin.copy(this.at(t, _vector));\n return this;\n } },\n {\n key: \"closestPointToPoint\",\n value: function closestPointToPoint(point, target) {\n target.subVectors(point, this.origin);\n var directionDistance = target.dot(this.direction);\n if (directionDistance < 0) {\n return target.copy(this.origin);\n }\n return target.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\n } },\n {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return Math.sqrt(this.distanceSqToPoint(point));\n } },\n {\n key: \"distanceSqToPoint\",\n value: function distanceSqToPoint(point) {\n var directionDistance = _vector.subVectors(point, this.origin).dot(this.direction);\n if (directionDistance < 0) {\n return this.origin.distanceToSquared(point);\n }\n _vector.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\n return _vector.distanceToSquared(point);\n } },\n {\n key: \"distanceSqToSegment\",\n value: function distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {\n _segCenter.copy(v0).add(v1).multiplyScalar(0.5);\n _segDir.copy(v1).sub(v0).normalize();\n _diff.copy(this.origin).sub(_segCenter);\n var segExtent = v0.distanceTo(v1) * 0.5;\n var a01 = -this.direction.dot(_segDir);\n var b0 = _diff.dot(this.direction);\n var b1 = -_diff.dot(_segDir);\n var c = _diff.lengthSq();\n var det = Math.abs(1 - a01 * a01);\n var s0, s1, sqrDist, extDet;\n if (det > 0) {\n s0 = a01 * b1 - b0;\n s1 = a01 * b0 - b1;\n extDet = segExtent * det;\n if (s0 >= 0) {\n if (s1 >= -extDet) {\n if (s1 <= extDet) {\n var invDet = 1 / det;\n s0 *= invDet;\n s1 *= invDet;\n sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;\n } else {\n s1 = segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n } else {\n s1 = -segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n } else {\n if (s1 <= -extDet) {\n s0 = Math.max(0, -(-a01 * segExtent + b0));\n s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n } else if (s1 <= extDet) {\n s0 = 0;\n s1 = Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = s1 * (s1 + 2 * b1) + c;\n } else {\n s0 = Math.max(0, -(a01 * segExtent + b0));\n s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n }\n } else {\n s1 = a01 > 0 ? -segExtent : segExtent;\n s0 = Math.max(0, -(a01 * s1 + b0));\n sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n }\n if (optionalPointOnRay) {\n optionalPointOnRay.copy(this.direction).multiplyScalar(s0).add(this.origin);\n }\n if (optionalPointOnSegment) {\n optionalPointOnSegment.copy(_segDir).multiplyScalar(s1).add(_segCenter);\n }\n return sqrDist;\n } },\n {\n key: \"intersectSphere\",\n value: function intersectSphere(sphere, target) {\n _vector.subVectors(sphere.center, this.origin);\n var tca = _vector.dot(this.direction);\n var d2 = _vector.dot(_vector) - tca * tca;\n var radius2 = sphere.radius * sphere.radius;\n if (d2 > radius2) return null;\n var thc = Math.sqrt(radius2 - d2);\n var t0 = tca - thc;\n var t1 = tca + thc;\n if (t0 < 0 && t1 < 0) return null;\n if (t0 < 0) return this.at(t1, target);\n return this.at(t0, target);\n } },\n {\n key: \"intersectsSphere\",\n value: function intersectsSphere(sphere) {\n return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;\n } },\n {\n key: \"distanceToPlane\",\n value: function distanceToPlane(plane) {\n var denominator = plane.normal.dot(this.direction);\n if (denominator === 0) {\n if (plane.distanceToPoint(this.origin) === 0) {\n return 0;\n }\n return null;\n }\n var t = -(this.origin.dot(plane.normal) + plane.constant) / denominator;\n return t >= 0 ? t : null;\n } },\n {\n key: \"intersectPlane\",\n value: function intersectPlane(plane, target) {\n var t = this.distanceToPlane(plane);\n if (t === null) {\n return null;\n }\n return this.at(t, target);\n } },\n {\n key: \"intersectsPlane\",\n value: function intersectsPlane(plane) {\n var distToPoint = plane.distanceToPoint(this.origin);\n if (distToPoint === 0) {\n return true;\n }\n var denominator = plane.normal.dot(this.direction);\n if (denominator * distToPoint < 0) {\n return true;\n }\n return false;\n } },\n {\n key: \"intersectBox\",\n value: function intersectBox(box, target) {\n var tmin, tmax, tymin, tymax, tzmin, tzmax;\n var invdirx = 1 / this.direction.x,\n invdiry = 1 / this.direction.y,\n invdirz = 1 / this.direction.z;\n var origin = this.origin;\n if (invdirx >= 0) {\n tmin = (box.min.x - origin.x) * invdirx;\n tmax = (box.max.x - origin.x) * invdirx;\n } else {\n tmin = (box.max.x - origin.x) * invdirx;\n tmax = (box.min.x - origin.x) * invdirx;\n }\n if (invdiry >= 0) {\n tymin = (box.min.y - origin.y) * invdiry;\n tymax = (box.max.y - origin.y) * invdiry;\n } else {\n tymin = (box.max.y - origin.y) * invdiry;\n tymax = (box.min.y - origin.y) * invdiry;\n }\n if (tmin > tymax || tymin > tmax) return null;\n if (tymin > tmin || tmin !== tmin) tmin = tymin;\n if (tymax < tmax || tmax !== tmax) tmax = tymax;\n if (invdirz >= 0) {\n tzmin = (box.min.z - origin.z) * invdirz;\n tzmax = (box.max.z - origin.z) * invdirz;\n } else {\n tzmin = (box.max.z - origin.z) * invdirz;\n tzmax = (box.min.z - origin.z) * invdirz;\n }\n if (tmin > tzmax || tzmin > tmax) return null;\n if (tzmin > tmin || tmin !== tmin) tmin = tzmin;\n if (tzmax < tmax || tmax !== tmax) tmax = tzmax;\n if (tmax < 0) return null;\n return this.at(tmin >= 0 ? tmin : tmax, target);\n } },\n {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return this.intersectBox(box, _vector) !== null;\n } },\n {\n key: \"intersectTriangle\",\n value: function intersectTriangle(a, b, c, backfaceCulling, target) {\n _edge1.subVectors(b, a);\n _edge2.subVectors(c, a);\n _normal.crossVectors(_edge1, _edge2);\n var DdN = this.direction.dot(_normal);\n var sign;\n if (DdN > 0) {\n if (backfaceCulling) return null;\n sign = 1;\n } else if (DdN < 0) {\n sign = -1;\n DdN = -DdN;\n } else {\n return null;\n }\n _diff.subVectors(this.origin, a);\n var DdQxE2 = sign * this.direction.dot(_edge2.crossVectors(_diff, _edge2));\n if (DdQxE2 < 0) {\n return null;\n }\n var DdE1xQ = sign * this.direction.dot(_edge1.cross(_diff));\n if (DdE1xQ < 0) {\n return null;\n }\n if (DdQxE2 + DdE1xQ > DdN) {\n return null;\n }\n var QdN = -sign * _diff.dot(_normal);\n if (QdN < 0) {\n return null;\n }\n return this.at(QdN / DdN, target);\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(matrix4) {\n this.origin.applyMatrix4(matrix4);\n this.direction.transformDirection(matrix4);\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(ray) {\n return ray.origin.equals(this.origin) && ray.direction.equals(this.direction);\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Ray;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js" ], "buildLevel": 11, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Ray.js", "fileName": "/src/math/Ray.js" }, "pandav:/src/math/Spherical.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Spherical\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Spherical = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var Spherical = exports.Spherical = function () {\n function Spherical() {\n var radius = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var phi = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var theta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n (0, _classCallCheck2.default)(this, Spherical);\n this.radius = radius;\n this.phi = phi;\n this.theta = theta;\n return this;\n }\n (0, _createClass2.default)(Spherical, [{\n key: \"set\",\n value: function set(radius, phi, theta) {\n this.radius = radius;\n this.phi = phi;\n this.theta = theta;\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(other) {\n this.radius = other.radius;\n this.phi = other.phi;\n this.theta = other.theta;\n return this;\n } },\n {\n key: \"makeSafe\",\n value: function makeSafe() {\n var EPS = 0.000001;\n this.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi));\n return this;\n } },\n {\n key: \"setFromVector3\",\n value: function setFromVector3(v) {\n return this.setFromCartesianCoords(v.x, v.y, v.z);\n } },\n {\n key: \"setFromCartesianCoords\",\n value: function setFromCartesianCoords(x, y, z) {\n this.radius = Math.sqrt(x * x + y * y + z * z);\n if (this.radius === 0) {\n this.theta = 0;\n this.phi = 0;\n } else {\n this.theta = Math.atan2(x, z);\n this.phi = Math.acos(MathUtils.clamp(y / this.radius, -1, 1));\n }\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } }]);\n\n return Spherical;\n }();return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js" ], "buildLevel": 50, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Spherical.js", "fileName": "/src/math/Spherical.js" }, "pandav:/src/math/Matrix4.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Matrix4\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Matrix4 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var Matrix4 = exports.Matrix4 = function () {\n function Matrix4() {\n (0, _classCallCheck2.default)(this, Matrix4);\n Matrix4.prototype.isMatrix4 = true;\n this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n }\n (0, _createClass2.default)(Matrix4, [{\n key: \"set\",\n value: function set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n var te = this.elements;\n te[0] = n11;\n te[4] = n12;\n te[8] = n13;\n te[12] = n14;\n te[1] = n21;\n te[5] = n22;\n te[9] = n23;\n te[13] = n24;\n te[2] = n31;\n te[6] = n32;\n te[10] = n33;\n te[14] = n34;\n te[3] = n41;\n te[7] = n42;\n te[11] = n43;\n te[15] = n44;\n return this;\n } },\n {\n key: \"identity\",\n value: function identity() {\n this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new Matrix4().fromArray(this.elements);\n } },\n {\n key: \"copy\",\n value: function copy(m) {\n var te = this.elements;\n var me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n te[9] = me[9];\n te[10] = me[10];\n te[11] = me[11];\n te[12] = me[12];\n te[13] = me[13];\n te[14] = me[14];\n te[15] = me[15];\n return this;\n } },\n {\n key: \"copyPosition\",\n value: function copyPosition(m) {\n var te = this.elements,\n me = m.elements;\n te[12] = me[12];\n te[13] = me[13];\n te[14] = me[14];\n return this;\n } },\n {\n key: \"setFromMatrix3\",\n value: function setFromMatrix3(m) {\n var me = m.elements;\n this.set(me[0], me[3], me[6], 0, me[1], me[4], me[7], 0, me[2], me[5], me[8], 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"extractBasis\",\n value: function extractBasis(xAxis, yAxis, zAxis) {\n xAxis.setFromMatrixColumn(this, 0);\n yAxis.setFromMatrixColumn(this, 1);\n zAxis.setFromMatrixColumn(this, 2);\n return this;\n } },\n {\n key: \"makeBasis\",\n value: function makeBasis(xAxis, yAxis, zAxis) {\n this.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"extractRotation\",\n value: function extractRotation(m) {\n var te = this.elements;\n var me = m.elements;\n var scaleX = 1 / _v1.setFromMatrixColumn(m, 0).length();\n var scaleY = 1 / _v1.setFromMatrixColumn(m, 1).length();\n var scaleZ = 1 / _v1.setFromMatrixColumn(m, 2).length();\n te[0] = me[0] * scaleX;\n te[1] = me[1] * scaleX;\n te[2] = me[2] * scaleX;\n te[3] = 0;\n te[4] = me[4] * scaleY;\n te[5] = me[5] * scaleY;\n te[6] = me[6] * scaleY;\n te[7] = 0;\n te[8] = me[8] * scaleZ;\n te[9] = me[9] * scaleZ;\n te[10] = me[10] * scaleZ;\n te[11] = 0;\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return this;\n } },\n {\n key: \"makeRotationFromEuler\",\n value: function makeRotationFromEuler(euler) {\n var te = this.elements;\n var x = euler.x,\n y = euler.y,\n z = euler.z;\n var a = Math.cos(x),\n b = Math.sin(x);\n var c = Math.cos(y),\n d = Math.sin(y);\n var e = Math.cos(z),\n f = Math.sin(z);\n if (euler.order === 'XYZ') {\n var ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = -c * f;\n te[8] = d;\n te[1] = af + be * d;\n te[5] = ae - bf * d;\n te[9] = -b * c;\n te[2] = bf - ae * d;\n te[6] = be + af * d;\n te[10] = a * c;\n } else if (euler.order === 'YXZ') {\n var ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce + df * b;\n te[4] = de * b - cf;\n te[8] = a * d;\n te[1] = a * f;\n te[5] = a * e;\n te[9] = -b;\n te[2] = cf * b - de;\n te[6] = df + ce * b;\n te[10] = a * c;\n } else if (euler.order === 'ZXY') {\n var _ce = c * e,\n _cf = c * f,\n _de = d * e,\n _df = d * f;\n te[0] = _ce - _df * b;\n te[4] = -a * f;\n te[8] = _de + _cf * b;\n te[1] = _cf + _de * b;\n te[5] = a * e;\n te[9] = _df - _ce * b;\n te[2] = -a * d;\n te[6] = b;\n te[10] = a * c;\n } else if (euler.order === 'ZYX') {\n var _ae = a * e,\n _af = a * f,\n _be = b * e,\n _bf = b * f;\n te[0] = c * e;\n te[4] = _be * d - _af;\n te[8] = _ae * d + _bf;\n te[1] = c * f;\n te[5] = _bf * d + _ae;\n te[9] = _af * d - _be;\n te[2] = -d;\n te[6] = b * c;\n te[10] = a * c;\n } else if (euler.order === 'YZX') {\n var ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = bd - ac * f;\n te[8] = bc * f + ad;\n te[1] = f;\n te[5] = a * e;\n te[9] = -b * e;\n te[2] = -d * e;\n te[6] = ad * f + bc;\n te[10] = ac - bd * f;\n } else if (euler.order === 'XZY') {\n var _ac = a * c,\n _ad = a * d,\n _bc = b * c,\n _bd = b * d;\n te[0] = c * e;\n te[4] = -f;\n te[8] = d * e;\n te[1] = _ac * f + _bd;\n te[5] = a * e;\n te[9] = _ad * f - _bc;\n te[2] = _bc * f - _ad;\n te[6] = b * e;\n te[10] = _bd * f + _ac;\n }\n te[3] = 0;\n te[7] = 0;\n te[11] = 0;\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return this;\n } },\n {\n key: \"makeRotationFromQuaternion\",\n value: function makeRotationFromQuaternion(q) {\n return this.compose(_zero, q, _one);\n } },\n {\n key: \"lookAt\",\n value: function lookAt(eye, target, up) {\n var te = this.elements;\n _z.subVectors(eye, target);\n if (_z.lengthSq() === 0) {\n _z.z = 1;\n }\n _z.normalize();\n _x.crossVectors(up, _z);\n if (_x.lengthSq() === 0) {\n if (Math.abs(up.z) === 1) {\n _z.x += 0.0001;\n } else {\n _z.z += 0.0001;\n }\n _z.normalize();\n _x.crossVectors(up, _z);\n }\n _x.normalize();\n _y.crossVectors(_z, _x);\n te[0] = _x.x;\n te[4] = _y.x;\n te[8] = _z.x;\n te[1] = _x.y;\n te[5] = _y.y;\n te[9] = _z.y;\n te[2] = _x.z;\n te[6] = _y.z;\n te[10] = _z.z;\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(m) {\n return this.multiplyMatrices(this, m);\n } },\n {\n key: \"premultiply\",\n value: function premultiply(m) {\n return this.multiplyMatrices(m, this);\n } },\n {\n key: \"multiplyMatrices\",\n value: function multiplyMatrices(a, b) {\n var ae = a.elements;\n var be = b.elements;\n var te = this.elements;\n var a11 = ae[0],\n a12 = ae[4],\n a13 = ae[8],\n a14 = ae[12];\n var a21 = ae[1],\n a22 = ae[5],\n a23 = ae[9],\n a24 = ae[13];\n var a31 = ae[2],\n a32 = ae[6],\n a33 = ae[10],\n a34 = ae[14];\n var a41 = ae[3],\n a42 = ae[7],\n a43 = ae[11],\n a44 = ae[15];\n var b11 = be[0],\n b12 = be[4],\n b13 = be[8],\n b14 = be[12];\n var b21 = be[1],\n b22 = be[5],\n b23 = be[9],\n b24 = be[13];\n var b31 = be[2],\n b32 = be[6],\n b33 = be[10],\n b34 = be[14];\n var b41 = be[3],\n b42 = be[7],\n b43 = be[11],\n b44 = be[15];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n return this;\n } },\n {\n key: \"multiplyScalar\",\n value: function multiplyScalar(s) {\n var te = this.elements;\n te[0] *= s;\n te[4] *= s;\n te[8] *= s;\n te[12] *= s;\n te[1] *= s;\n te[5] *= s;\n te[9] *= s;\n te[13] *= s;\n te[2] *= s;\n te[6] *= s;\n te[10] *= s;\n te[14] *= s;\n te[3] *= s;\n te[7] *= s;\n te[11] *= s;\n te[15] *= s;\n return this;\n } },\n {\n key: \"determinant\",\n value: function determinant() {\n var te = this.elements;\n var n11 = te[0],\n n12 = te[4],\n n13 = te[8],\n n14 = te[12];\n var n21 = te[1],\n n22 = te[5],\n n23 = te[9],\n n24 = te[13];\n var n31 = te[2],\n n32 = te[6],\n n33 = te[10],\n n34 = te[14];\n var n41 = te[3],\n n42 = te[7],\n n43 = te[11],\n n44 = te[15];\n return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\n } },\n {\n key: \"transpose\",\n value: function transpose() {\n var te = this.elements;\n var tmp;\n tmp = te[1];\n te[1] = te[4];\n te[4] = tmp;\n tmp = te[2];\n te[2] = te[8];\n te[8] = tmp;\n tmp = te[6];\n te[6] = te[9];\n te[9] = tmp;\n tmp = te[3];\n te[3] = te[12];\n te[12] = tmp;\n tmp = te[7];\n te[7] = te[13];\n te[13] = tmp;\n tmp = te[11];\n te[11] = te[14];\n te[14] = tmp;\n return this;\n } },\n {\n key: \"setPosition\",\n value: function setPosition(x, y, z) {\n var te = this.elements;\n if (x.isVector3) {\n te[12] = x.x;\n te[13] = x.y;\n te[14] = x.z;\n } else {\n te[12] = x;\n te[13] = y;\n te[14] = z;\n }\n return this;\n } },\n {\n key: \"invert\",\n value: function invert() {\n var te = this.elements,\n n11 = te[0],\n n21 = te[1],\n n31 = te[2],\n n41 = te[3],\n n12 = te[4],\n n22 = te[5],\n n32 = te[6],\n n42 = te[7],\n n13 = te[8],\n n23 = te[9],\n n33 = te[10],\n n43 = te[11],\n n14 = te[12],\n n24 = te[13],\n n34 = te[14],\n n44 = te[15],\n t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n var detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\n te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\n te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\n te[4] = t12 * detInv;\n te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\n te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\n te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\n te[8] = t13 * detInv;\n te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\n te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\n te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\n te[12] = t14 * detInv;\n te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\n te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\n te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\n return this;\n } },\n {\n key: \"scale\",\n value: function scale(v) {\n var te = this.elements;\n var x = v.x,\n y = v.y,\n z = v.z;\n te[0] *= x;\n te[4] *= y;\n te[8] *= z;\n te[1] *= x;\n te[5] *= y;\n te[9] *= z;\n te[2] *= x;\n te[6] *= y;\n te[10] *= z;\n te[3] *= x;\n te[7] *= y;\n te[11] *= z;\n return this;\n } },\n {\n key: \"getMaxScaleOnAxis\",\n value: function getMaxScaleOnAxis() {\n var te = this.elements;\n var scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\n var scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\n var scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\n return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n } },\n {\n key: \"makeTranslation\",\n value: function makeTranslation(x, y, z) {\n this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"makeRotationX\",\n value: function makeRotationX(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"makeRotationY\",\n value: function makeRotationY(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"makeRotationZ\",\n value: function makeRotationZ(theta) {\n var c = Math.cos(theta),\n s = Math.sin(theta);\n this.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"makeRotationAxis\",\n value: function makeRotationAxis(axis, angle) {\n var c = Math.cos(angle);\n var s = Math.sin(angle);\n var t = 1 - c;\n var x = axis.x,\n y = axis.y,\n z = axis.z;\n var tx = t * x,\n ty = t * y;\n this.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"makeScale\",\n value: function makeScale(x, y, z) {\n this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"makeShear\",\n value: function makeShear(xy, xz, yx, yz, zx, zy) {\n this.set(1, yx, zx, 0, xy, 1, zy, 0, xz, yz, 1, 0, 0, 0, 0, 1);\n return this;\n } },\n {\n key: \"compose\",\n value: function compose(position, quaternion, scale) {\n var te = this.elements;\n var x = quaternion._x,\n y = quaternion._y,\n z = quaternion._z,\n w = quaternion._w;\n var x2 = x + x,\n y2 = y + y,\n z2 = z + z;\n var xx = x * x2,\n xy = x * y2,\n xz = x * z2;\n var yy = y * y2,\n yz = y * z2,\n zz = z * z2;\n var wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n var sx = scale.x,\n sy = scale.y,\n sz = scale.z;\n te[0] = (1 - (yy + zz)) * sx;\n te[1] = (xy + wz) * sx;\n te[2] = (xz - wy) * sx;\n te[3] = 0;\n te[4] = (xy - wz) * sy;\n te[5] = (1 - (xx + zz)) * sy;\n te[6] = (yz + wx) * sy;\n te[7] = 0;\n te[8] = (xz + wy) * sz;\n te[9] = (yz - wx) * sz;\n te[10] = (1 - (xx + yy)) * sz;\n te[11] = 0;\n te[12] = position.x;\n te[13] = position.y;\n te[14] = position.z;\n te[15] = 1;\n return this;\n } },\n {\n key: \"decompose\",\n value: function decompose(position, quaternion, scale) {\n var te = this.elements;\n var sx = _v1.set(te[0], te[1], te[2]).length();\n var sy = _v1.set(te[4], te[5], te[6]).length();\n var sz = _v1.set(te[8], te[9], te[10]).length();\n var det = this.determinant();\n if (det < 0) sx = -sx;\n position.x = te[12];\n position.y = te[13];\n position.z = te[14];\n _m1.copy(this);\n var invSX = 1 / sx;\n var invSY = 1 / sy;\n var invSZ = 1 / sz;\n _m1.elements[0] *= invSX;\n _m1.elements[1] *= invSX;\n _m1.elements[2] *= invSX;\n _m1.elements[4] *= invSY;\n _m1.elements[5] *= invSY;\n _m1.elements[6] *= invSY;\n _m1.elements[8] *= invSZ;\n _m1.elements[9] *= invSZ;\n _m1.elements[10] *= invSZ;\n quaternion.setFromRotationMatrix(_m1);\n scale.x = sx;\n scale.y = sy;\n scale.z = sz;\n return this;\n } },\n {\n key: \"makePerspective\",\n value: function makePerspective(left, right, top, bottom, near, far) {\n var te = this.elements;\n var x = 2 * near / (right - left);\n var y = 2 * near / (top - bottom);\n var a = (right + left) / (right - left);\n var b = (top + bottom) / (top - bottom);\n var c = -(far + near) / (far - near);\n var d = -2 * far * near / (far - near);\n te[0] = x;\n te[4] = 0;\n te[8] = a;\n te[12] = 0;\n te[1] = 0;\n te[5] = y;\n te[9] = b;\n te[13] = 0;\n te[2] = 0;\n te[6] = 0;\n te[10] = c;\n te[14] = d;\n te[3] = 0;\n te[7] = 0;\n te[11] = -1;\n te[15] = 0;\n return this;\n } },\n {\n key: \"makeOrthographic\",\n value: function makeOrthographic(left, right, top, bottom, near, far) {\n var te = this.elements;\n var w = 1.0 / (right - left);\n var h = 1.0 / (top - bottom);\n var p = 1.0 / (far - near);\n var x = (right + left) * w;\n var y = (top + bottom) * h;\n var z = (far + near) * p;\n te[0] = 2 * w;\n te[4] = 0;\n te[8] = 0;\n te[12] = -x;\n te[1] = 0;\n te[5] = 2 * h;\n te[9] = 0;\n te[13] = -y;\n te[2] = 0;\n te[6] = 0;\n te[10] = -2 * p;\n te[14] = -z;\n te[3] = 0;\n te[7] = 0;\n te[11] = 0;\n te[15] = 1;\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(matrix) {\n var te = this.elements;\n var me = matrix.elements;\n for (var i = 0; i < 16; i++) {\n if (te[i] !== me[i]) return false;\n }\n return true;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n for (var i = 0; i < 16; i++) {\n this.elements[i] = array[i + offset];\n }\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n array[offset + 9] = te[9];\n array[offset + 10] = te[10];\n array[offset + 11] = te[11];\n array[offset + 12] = te[12];\n array[offset + 13] = te[13];\n array[offset + 14] = te[14];\n array[offset + 15] = te[15];\n return array;\n } }]);\n\n return Matrix4;\n }();\n var _v1 = new _Vector.Vector3();\n var _m1 = new Matrix4();\n var _zero = new _Vector.Vector3(0, 0, 0);\n var _one = new _Vector.Vector3(1, 1, 1);\n var _x = new _Vector.Vector3();\n var _y = new _Vector.Vector3();\n var _z = new _Vector.Vector3();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js" ], "buildLevel": 12, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Matrix4.js", "fileName": "/src/math/Matrix4.js" }, "pandav:/src/math/SphericalHarmonics3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/SphericalHarmonics3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SphericalHarmonics3 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var SphericalHarmonics3 = exports.SphericalHarmonics3 = function () {\n function SphericalHarmonics3() {\n (0, _classCallCheck2.default)(this, SphericalHarmonics3);\n this.isSphericalHarmonics3 = true;\n this.coefficients = [];\n for (var i = 0; i < 9; i++) {\n this.coefficients.push(new _Vector.Vector3());\n }\n }\n (0, _createClass2.default)(SphericalHarmonics3, [{\n key: \"set\",\n value: function set(coefficients) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].copy(coefficients[i]);\n }\n return this;\n } },\n {\n key: \"zero\",\n value: function zero() {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].set(0, 0, 0);\n }\n return this;\n } },\n {\n key: \"getAt\",\n value: function getAt(normal, target) {\n var x = normal.x,\n y = normal.y,\n z = normal.z;\n var coeff = this.coefficients;\n target.copy(coeff[0]).multiplyScalar(0.282095);\n target.addScaledVector(coeff[1], 0.488603 * y);\n target.addScaledVector(coeff[2], 0.488603 * z);\n target.addScaledVector(coeff[3], 0.488603 * x);\n target.addScaledVector(coeff[4], 1.092548 * (x * y));\n target.addScaledVector(coeff[5], 1.092548 * (y * z));\n target.addScaledVector(coeff[6], 0.315392 * (3.0 * z * z - 1.0));\n target.addScaledVector(coeff[7], 1.092548 * (x * z));\n target.addScaledVector(coeff[8], 0.546274 * (x * x - y * y));\n return target;\n } },\n {\n key: \"getIrradianceAt\",\n value: function getIrradianceAt(normal, target) {\n var x = normal.x,\n y = normal.y,\n z = normal.z;\n var coeff = this.coefficients;\n target.copy(coeff[0]).multiplyScalar(0.886227);\n target.addScaledVector(coeff[1], 2.0 * 0.511664 * y);\n target.addScaledVector(coeff[2], 2.0 * 0.511664 * z);\n target.addScaledVector(coeff[3], 2.0 * 0.511664 * x);\n target.addScaledVector(coeff[4], 2.0 * 0.429043 * x * y);\n target.addScaledVector(coeff[5], 2.0 * 0.429043 * y * z);\n target.addScaledVector(coeff[6], 0.743125 * z * z - 0.247708);\n target.addScaledVector(coeff[7], 2.0 * 0.429043 * x * z);\n target.addScaledVector(coeff[8], 0.429043 * (x * x - y * y));\n return target;\n } },\n {\n key: \"add\",\n value: function add(sh) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].add(sh.coefficients[i]);\n }\n return this;\n } },\n {\n key: \"addScaledSH\",\n value: function addScaledSH(sh, s) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].addScaledVector(sh.coefficients[i], s);\n }\n return this;\n } },\n {\n key: \"scale\",\n value: function scale(s) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].multiplyScalar(s);\n }\n return this;\n } },\n {\n key: \"lerp\",\n value: function lerp(sh, alpha) {\n for (var i = 0; i < 9; i++) {\n this.coefficients[i].lerp(sh.coefficients[i], alpha);\n }\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(sh) {\n for (var i = 0; i < 9; i++) {\n if (!this.coefficients[i].equals(sh.coefficients[i])) {\n return false;\n }\n }\n return true;\n } },\n {\n key: \"copy\",\n value: function copy(sh) {\n return this.set(sh.coefficients);\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var coefficients = this.coefficients;\n for (var i = 0; i < 9; i++) {\n coefficients[i].fromArray(array, offset + i * 3);\n }\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var coefficients = this.coefficients;\n for (var i = 0; i < 9; i++) {\n coefficients[i].toArray(array, offset + i * 3);\n }\n return array;\n } }],\n [{\n key: \"getBasisAt\",\n value: function getBasisAt(normal, shBasis) {\n var x = normal.x,\n y = normal.y,\n z = normal.z;\n shBasis[0] = 0.282095;\n shBasis[1] = 0.488603 * y;\n shBasis[2] = 0.488603 * z;\n shBasis[3] = 0.488603 * x;\n shBasis[4] = 1.092548 * x * y;\n shBasis[5] = 1.092548 * y * z;\n shBasis[6] = 0.315392 * (3 * z * z - 1);\n shBasis[7] = 1.092548 * x * z;\n shBasis[8] = 0.546274 * (x * x - y * y);\n } }]);\n\n return SphericalHarmonics3;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js" ], "buildLevel": 40, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/SphericalHarmonics3.js", "fileName": "/src/math/SphericalHarmonics3.js" }, "pandav:/src/math/Triangle.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Triangle\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Triangle = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _v0 = new _Vector.Vector3();\n var _v1 = new _Vector.Vector3();\n var _v2 = new _Vector.Vector3();\n var _v3 = new _Vector.Vector3();\n var _vab = new _Vector.Vector3();\n var _vac = new _Vector.Vector3();\n var _vbc = new _Vector.Vector3();\n var _vap = new _Vector.Vector3();\n var _vbp = new _Vector.Vector3();\n var _vcp = new _Vector.Vector3();\n var Triangle = exports.Triangle = function () {\n function Triangle() {\n var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _Vector.Vector3();\n var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Vector.Vector3();\n var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _Vector.Vector3();\n (0, _classCallCheck2.default)(this, Triangle);\n this.a = a;\n this.b = b;\n this.c = c;\n }\n (0, _createClass2.default)(Triangle, [{\n key: \"set\",\n value: function set(a, b, c) {\n this.a.copy(a);\n this.b.copy(b);\n this.c.copy(c);\n return this;\n } },\n {\n key: \"setFromPointsAndIndices\",\n value: function setFromPointsAndIndices(points, i0, i1, i2) {\n this.a.copy(points[i0]);\n this.b.copy(points[i1]);\n this.c.copy(points[i2]);\n return this;\n } },\n {\n key: \"setFromAttributeAndIndices\",\n value: function setFromAttributeAndIndices(attribute, i0, i1, i2) {\n this.a.fromBufferAttribute(attribute, i0);\n this.b.fromBufferAttribute(attribute, i1);\n this.c.fromBufferAttribute(attribute, i2);\n return this;\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"copy\",\n value: function copy(triangle) {\n this.a.copy(triangle.a);\n this.b.copy(triangle.b);\n this.c.copy(triangle.c);\n return this;\n } },\n {\n key: \"getArea\",\n value: function getArea() {\n _v0.subVectors(this.c, this.b);\n _v1.subVectors(this.a, this.b);\n return _v0.cross(_v1).length() * 0.5;\n } },\n {\n key: \"getMidpoint\",\n value: function getMidpoint(target) {\n return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\n } },\n {\n key: \"getNormal\",\n value: function getNormal(target) {\n return Triangle.getNormal(this.a, this.b, this.c, target);\n } },\n {\n key: \"getPlane\",\n value: function getPlane(target) {\n return target.setFromCoplanarPoints(this.a, this.b, this.c);\n } },\n {\n key: \"getBarycoord\",\n value: function getBarycoord(point, target) {\n return Triangle.getBarycoord(point, this.a, this.b, this.c, target);\n } },\n {\n key: \"getUV\",\n value: function getUV(point, uv1, uv2, uv3, target) {\n return Triangle.getUV(point, this.a, this.b, this.c, uv1, uv2, uv3, target);\n } },\n {\n key: \"containsPoint\",\n value: function containsPoint(point) {\n return Triangle.containsPoint(point, this.a, this.b, this.c);\n } },\n {\n key: \"isFrontFacing\",\n value: function isFrontFacing(direction) {\n return Triangle.isFrontFacing(this.a, this.b, this.c, direction);\n } },\n {\n key: \"intersectsBox\",\n value: function intersectsBox(box) {\n return box.intersectsTriangle(this);\n } },\n {\n key: \"closestPointToPoint\",\n value: function closestPointToPoint(p, target) {\n var a = this.a,\n b = this.b,\n c = this.c;\n var v, w;\n _vab.subVectors(b, a);\n _vac.subVectors(c, a);\n _vap.subVectors(p, a);\n var d1 = _vab.dot(_vap);\n var d2 = _vac.dot(_vap);\n if (d1 <= 0 && d2 <= 0) {\n return target.copy(a);\n }\n _vbp.subVectors(p, b);\n var d3 = _vab.dot(_vbp);\n var d4 = _vac.dot(_vbp);\n if (d3 >= 0 && d4 <= d3) {\n return target.copy(b);\n }\n var vc = d1 * d4 - d3 * d2;\n if (vc <= 0 && d1 >= 0 && d3 <= 0) {\n v = d1 / (d1 - d3);\n return target.copy(a).addScaledVector(_vab, v);\n }\n _vcp.subVectors(p, c);\n var d5 = _vab.dot(_vcp);\n var d6 = _vac.dot(_vcp);\n if (d6 >= 0 && d5 <= d6) {\n return target.copy(c);\n }\n var vb = d5 * d2 - d1 * d6;\n if (vb <= 0 && d2 >= 0 && d6 <= 0) {\n w = d2 / (d2 - d6);\n return target.copy(a).addScaledVector(_vac, w);\n }\n var va = d3 * d6 - d5 * d4;\n if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\n _vbc.subVectors(c, b);\n w = (d4 - d3) / (d4 - d3 + (d5 - d6));\n return target.copy(b).addScaledVector(_vbc, w);\n }\n var denom = 1 / (va + vb + vc);\n v = vb * denom;\n w = vc * denom;\n return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w);\n } },\n {\n key: \"equals\",\n value: function equals(triangle) {\n return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c);\n } }],\n [{\n key: \"getNormal\",\n value: function getNormal(a, b, c, target) {\n target.subVectors(c, b);\n _v0.subVectors(a, b);\n target.cross(_v0);\n var targetLengthSq = target.lengthSq();\n if (targetLengthSq > 0) {\n return target.multiplyScalar(1 / Math.sqrt(targetLengthSq));\n }\n return target.set(0, 0, 0);\n } },\n {\n key: \"getBarycoord\",\n value: function getBarycoord(point, a, b, c, target) {\n _v0.subVectors(c, a);\n _v1.subVectors(b, a);\n _v2.subVectors(point, a);\n var dot00 = _v0.dot(_v0);\n var dot01 = _v0.dot(_v1);\n var dot02 = _v0.dot(_v2);\n var dot11 = _v1.dot(_v1);\n var dot12 = _v1.dot(_v2);\n var denom = dot00 * dot11 - dot01 * dot01;\n if (denom === 0) {\n return target.set(-2, -1, -1);\n }\n var invDenom = 1 / denom;\n var u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n var v = (dot00 * dot12 - dot01 * dot02) * invDenom;\n return target.set(1 - u - v, v, u);\n } },\n {\n key: \"containsPoint\",\n value: function containsPoint(point, a, b, c) {\n this.getBarycoord(point, a, b, c, _v3);\n return _v3.x >= 0 && _v3.y >= 0 && _v3.x + _v3.y <= 1;\n } },\n {\n key: \"getUV\",\n value: function getUV(point, p1, p2, p3, uv1, uv2, uv3, target) {\n this.getBarycoord(point, p1, p2, p3, _v3);\n target.set(0, 0);\n target.addScaledVector(uv1, _v3.x);\n target.addScaledVector(uv2, _v3.y);\n target.addScaledVector(uv3, _v3.z);\n return target;\n } },\n {\n key: \"isFrontFacing\",\n value: function isFrontFacing(a, b, c, direction) {\n _v0.subVectors(c, b);\n _v1.subVectors(a, b);\n return _v0.cross(_v1).dot(direction) < 0 ? true : false;\n } }]);\n\n return Triangle;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js" ], "buildLevel": 14, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Triangle.js", "fileName": "/src/math/Triangle.js" }, "pandav:/src/objects/Bone.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/Bone\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Bone = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var Bone = exports.Bone = function (_Object3D) {\n (0, _inherits2.default)(Bone, _Object3D);\n var _super = (0, _createSuper2.default)(Bone);\n function Bone() {\n var _this;\n (0, _classCallCheck2.default)(this, Bone);\n _this = _super.call(this);\n _this.isBone = true;\n _this.type = 'Bone';\n return _this;\n }\n return (0, _createClass2.default)(Bone);\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/core/Object3D.js" ], "buildLevel": 17, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/Bone.js", "fileName": "/src/objects/Bone.js" }, "pandav:/src/math/Vector2.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Vector2\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Vector2 = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Vector2 = exports.Vector2 = function (_Symbol$iterator) {\n function Vector2() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n (0, _classCallCheck2.default)(this, Vector2);\n Vector2.prototype.isVector2 = true;\n this.x = x;\n this.y = y;\n }\n (0, _createClass2.default)(Vector2, [{\n key: \"width\",\n get: function get() {\n return this.x;\n },\n set: function set(value) {\n this.x = value;\n } },\n {\n key: \"height\",\n get: function get() {\n return this.y;\n },\n set: function set(value) {\n this.y = value;\n } },\n {\n key: \"set\",\n value: function set(x, y) {\n this.x = x;\n this.y = y;\n return this;\n } },\n {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n return this;\n } },\n {\n key: \"setX\",\n value: function setX(x) {\n this.x = x;\n return this;\n } },\n {\n key: \"setY\",\n value: function setY(y) {\n this.y = y;\n return this;\n } },\n {\n key: \"setComponent\",\n value: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n default:\n throw new Error('index is out of range: ' + index);}\n\n return this;\n } },\n {\n key: \"getComponent\",\n value: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n case 1:\n return this.y;\n default:\n throw new Error('index is out of range: ' + index);}\n\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.x, this.y);\n } },\n {\n key: \"copy\",\n value: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n return this;\n } },\n {\n key: \"add\",\n value: function add(v) {\n this.x += v.x;\n this.y += v.y;\n return this;\n } },\n {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.x += s;\n this.y += s;\n return this;\n } },\n {\n key: \"addVectors\",\n value: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n return this;\n } },\n {\n key: \"addScaledVector\",\n value: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n return this;\n } },\n {\n key: \"sub\",\n value: function sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n return this;\n } },\n {\n key: \"subScalar\",\n value: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n return this;\n } },\n {\n key: \"subVectors\",\n value: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n return this;\n } },\n {\n key: \"multiplyScalar\",\n value: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n return this;\n } },\n {\n key: \"divide\",\n value: function divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n return this;\n } },\n {\n key: \"divideScalar\",\n value: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n } },\n {\n key: \"applyMatrix3\",\n value: function applyMatrix3(m) {\n var x = this.x,\n y = this.y;\n var e = m.elements;\n this.x = e[0] * x + e[3] * y + e[6];\n this.y = e[1] * x + e[4] * y + e[7];\n return this;\n } },\n {\n key: \"min\",\n value: function min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n return this;\n } },\n {\n key: \"max\",\n value: function max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n return this;\n } },\n {\n key: \"clamp\",\n value: function clamp(min, max) {\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n return this;\n } },\n {\n key: \"clampScalar\",\n value: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n return this;\n } },\n {\n key: \"clampLength\",\n value: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n } },\n {\n key: \"floor\",\n value: function floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n return this;\n } },\n {\n key: \"ceil\",\n value: function ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n return this;\n } },\n {\n key: \"round\",\n value: function round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n } },\n {\n key: \"roundToZero\",\n value: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n return this;\n } },\n {\n key: \"negate\",\n value: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n } },\n {\n key: \"dot\",\n value: function dot(v) {\n return this.x * v.x + this.y * v.y;\n } },\n {\n key: \"cross\",\n value: function cross(v) {\n return this.x * v.y - this.y * v.x;\n } },\n {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this.x * this.x + this.y * this.y;\n } },\n {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n } },\n {\n key: \"manhattanLength\",\n value: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y);\n } },\n {\n key: \"normalize\",\n value: function normalize() {\n return this.divideScalar(this.length() || 1);\n } },\n {\n key: \"angle\",\n value: function angle() {\n var angle = Math.atan2(-this.y, -this.x) + Math.PI;\n return angle;\n } },\n {\n key: \"distanceTo\",\n value: function distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n } },\n {\n key: \"distanceToSquared\",\n value: function distanceToSquared(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y;\n return dx * dx + dy * dy;\n } },\n {\n key: \"manhattanDistanceTo\",\n value: function manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y);\n } },\n {\n key: \"setLength\",\n value: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n } },\n {\n key: \"lerp\",\n value: function lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n return this;\n } },\n {\n key: \"lerpVectors\",\n value: function lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(v) {\n return v.x === this.x && v.y === this.y;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n return array;\n } },\n {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n return this;\n } },\n {\n key: \"rotateAround\",\n value: function rotateAround(center, angle) {\n var c = Math.cos(angle),\n s = Math.sin(angle);\n var x = this.x - center.x;\n var y = this.y - center.y;\n this.x = x * c - y * s + center.x;\n this.y = x * s + y * c + center.y;\n return this;\n } },\n {\n key: \"random\",\n value: function random() {\n this.x = Math.random();\n this.y = Math.random();\n return this;\n } },\n {\n key: _Symbol$iterator,\n value: _regenerator.default.mark(function value() {\n return _regenerator.default.wrap(function value$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.x;\n case 2:\n _context.next = 4;\n return this.y;\n case 4:\n case \"end\":\n return _context.stop();}\n\n }, value, this);\n }) }]);\n\n return Vector2;\n }(Symbol.iterator);return module.exports;});", "requires": [], "buildLevel": 9, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Vector2.js", "fileName": "/src/math/Vector2.js" }, "pandav:/src/objects/Group.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/Group\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Group = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var Group = exports.Group = function (_Object3D) {\n (0, _inherits2.default)(Group, _Object3D);\n var _super = (0, _createSuper2.default)(Group);\n function Group() {\n var _this;\n (0, _classCallCheck2.default)(this, Group);\n _this = _super.call(this);\n _this.isGroup = true;\n _this.type = 'Group';\n return _this;\n }\n return (0, _createClass2.default)(Group);\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/core/Object3D.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/Group.js", "fileName": "/src/objects/Group.js" }, "pandav:/src/math/Vector3.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Vector3\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/math/Quaternion\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Vector3 = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var Vector3 = exports.Vector3 = function (_Symbol$iterator) {\n function Vector3() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n (0, _classCallCheck2.default)(this, Vector3);\n Vector3.prototype.isVector3 = true;\n this.x = x;\n this.y = y;\n this.z = z;\n }\n (0, _createClass2.default)(Vector3, [{\n key: \"set\",\n value: function set(x, y, z) {\n if (z === undefined) z = this.z;\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n } },\n {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n return this;\n } },\n {\n key: \"setX\",\n value: function setX(x) {\n this.x = x;\n return this;\n } },\n {\n key: \"setY\",\n value: function setY(y) {\n this.y = y;\n return this;\n } },\n {\n key: \"setZ\",\n value: function setZ(z) {\n this.z = z;\n return this;\n } },\n {\n key: \"setComponent\",\n value: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n default:\n throw new Error('index is out of range: ' + index);}\n\n return this;\n } },\n {\n key: \"getComponent\",\n value: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n case 1:\n return this.y;\n case 2:\n return this.z;\n default:\n throw new Error('index is out of range: ' + index);}\n\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.x, this.y, this.z);\n } },\n {\n key: \"copy\",\n value: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n } },\n {\n key: \"add\",\n value: function add(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n return this;\n } },\n {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n return this;\n } },\n {\n key: \"addVectors\",\n value: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n return this;\n } },\n {\n key: \"addScaledVector\",\n value: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n return this;\n } },\n {\n key: \"sub\",\n value: function sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n return this;\n } },\n {\n key: \"subScalar\",\n value: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n return this;\n } },\n {\n key: \"subVectors\",\n value: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n this.z *= v.z;\n return this;\n } },\n {\n key: \"multiplyScalar\",\n value: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n return this;\n } },\n {\n key: \"multiplyVectors\",\n value: function multiplyVectors(a, b) {\n this.x = a.x * b.x;\n this.y = a.y * b.y;\n this.z = a.z * b.z;\n return this;\n } },\n {\n key: \"applyEuler\",\n value: function applyEuler(euler) {\n return this.applyQuaternion(_quaternion.setFromEuler(euler));\n } },\n {\n key: \"applyAxisAngle\",\n value: function applyAxisAngle(axis, angle) {\n return this.applyQuaternion(_quaternion.setFromAxisAngle(axis, angle));\n } },\n {\n key: \"applyMatrix3\",\n value: function applyMatrix3(m) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n this.x = e[0] * x + e[3] * y + e[6] * z;\n this.y = e[1] * x + e[4] * y + e[7] * z;\n this.z = e[2] * x + e[5] * y + e[8] * z;\n return this;\n } },\n {\n key: \"applyNormalMatrix\",\n value: function applyNormalMatrix(m) {\n return this.applyMatrix3(m).normalize();\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n var w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\n this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\n this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\n this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\n return this;\n } },\n {\n key: \"applyQuaternion\",\n value: function applyQuaternion(q) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var qx = q.x,\n qy = q.y,\n qz = q.z,\n qw = q.w;\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z;\n this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return this;\n } },\n {\n key: \"project\",\n value: function project(camera) {\n return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n } },\n {\n key: \"unproject\",\n value: function unproject(camera) {\n return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n } },\n {\n key: \"transformDirection\",\n value: function transformDirection(m) {\n var x = this.x,\n y = this.y,\n z = this.z;\n var e = m.elements;\n this.x = e[0] * x + e[4] * y + e[8] * z;\n this.y = e[1] * x + e[5] * y + e[9] * z;\n this.z = e[2] * x + e[6] * y + e[10] * z;\n return this.normalize();\n } },\n {\n key: \"divide\",\n value: function divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n this.z /= v.z;\n return this;\n } },\n {\n key: \"divideScalar\",\n value: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n } },\n {\n key: \"min\",\n value: function min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n return this;\n } },\n {\n key: \"max\",\n value: function max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n return this;\n } },\n {\n key: \"clamp\",\n value: function clamp(min, max) {\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n this.z = Math.max(min.z, Math.min(max.z, this.z));\n return this;\n } },\n {\n key: \"clampScalar\",\n value: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n this.z = Math.max(minVal, Math.min(maxVal, this.z));\n return this;\n } },\n {\n key: \"clampLength\",\n value: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n } },\n {\n key: \"floor\",\n value: function floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n return this;\n } },\n {\n key: \"ceil\",\n value: function ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n return this;\n } },\n {\n key: \"round\",\n value: function round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n return this;\n } },\n {\n key: \"roundToZero\",\n value: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\n return this;\n } },\n {\n key: \"negate\",\n value: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n } },\n {\n key: \"dot\",\n value: function dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n } },\n {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n } },\n {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n } },\n {\n key: \"manhattanLength\",\n value: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n } },\n {\n key: \"normalize\",\n value: function normalize() {\n return this.divideScalar(this.length() || 1);\n } },\n {\n key: \"setLength\",\n value: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n } },\n {\n key: \"lerp\",\n value: function lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n return this;\n } },\n {\n key: \"lerpVectors\",\n value: function lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n return this;\n } },\n {\n key: \"cross\",\n value: function cross(v) {\n return this.crossVectors(this, v);\n } },\n {\n key: \"crossVectors\",\n value: function crossVectors(a, b) {\n var ax = a.x,\n ay = a.y,\n az = a.z;\n var bx = b.x,\n by = b.y,\n bz = b.z;\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n return this;\n } },\n {\n key: \"projectOnVector\",\n value: function projectOnVector(v) {\n var denominator = v.lengthSq();\n if (denominator === 0) return this.set(0, 0, 0);\n var scalar = v.dot(this) / denominator;\n return this.copy(v).multiplyScalar(scalar);\n } },\n {\n key: \"projectOnPlane\",\n value: function projectOnPlane(planeNormal) {\n _vector.copy(this).projectOnVector(planeNormal);\n return this.sub(_vector);\n } },\n {\n key: \"reflect\",\n value: function reflect(normal) {\n return this.sub(_vector.copy(normal).multiplyScalar(2 * this.dot(normal)));\n } },\n {\n key: \"angleTo\",\n value: function angleTo(v) {\n var denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n if (denominator === 0) return Math.PI / 2;\n var theta = this.dot(v) / denominator;\n return Math.acos(MathUtils.clamp(theta, -1, 1));\n } },\n {\n key: \"distanceTo\",\n value: function distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n } },\n {\n key: \"distanceToSquared\",\n value: function distanceToSquared(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y,\n dz = this.z - v.z;\n return dx * dx + dy * dy + dz * dz;\n } },\n {\n key: \"manhattanDistanceTo\",\n value: function manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n } },\n {\n key: \"setFromSpherical\",\n value: function setFromSpherical(s) {\n return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n } },\n {\n key: \"setFromSphericalCoords\",\n value: function setFromSphericalCoords(radius, phi, theta) {\n var sinPhiRadius = Math.sin(phi) * radius;\n this.x = sinPhiRadius * Math.sin(theta);\n this.y = Math.cos(phi) * radius;\n this.z = sinPhiRadius * Math.cos(theta);\n return this;\n } },\n {\n key: \"setFromCylindrical\",\n value: function setFromCylindrical(c) {\n return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n } },\n {\n key: \"setFromCylindricalCoords\",\n value: function setFromCylindricalCoords(radius, theta, y) {\n this.x = radius * Math.sin(theta);\n this.y = y;\n this.z = radius * Math.cos(theta);\n return this;\n } },\n {\n key: \"setFromMatrixPosition\",\n value: function setFromMatrixPosition(m) {\n var e = m.elements;\n this.x = e[12];\n this.y = e[13];\n this.z = e[14];\n return this;\n } },\n {\n key: \"setFromMatrixScale\",\n value: function setFromMatrixScale(m) {\n var sx = this.setFromMatrixColumn(m, 0).length();\n var sy = this.setFromMatrixColumn(m, 1).length();\n var sz = this.setFromMatrixColumn(m, 2).length();\n this.x = sx;\n this.y = sy;\n this.z = sz;\n return this;\n } },\n {\n key: \"setFromMatrixColumn\",\n value: function setFromMatrixColumn(m, index) {\n return this.fromArray(m.elements, index * 4);\n } },\n {\n key: \"setFromMatrix3Column\",\n value: function setFromMatrix3Column(m, index) {\n return this.fromArray(m.elements, index * 3);\n } },\n {\n key: \"setFromEuler\",\n value: function setFromEuler(e) {\n this.x = e._x;\n this.y = e._y;\n this.z = e._z;\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n return array;\n } },\n {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n return this;\n } },\n {\n key: \"random\",\n value: function random() {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n return this;\n } },\n {\n key: \"randomDirection\",\n value: function randomDirection() {\n var u = (Math.random() - 0.5) * 2;\n var t = Math.random() * Math.PI * 2;\n var f = Math.sqrt(1 - Math.pow(u, 2));\n this.x = f * Math.cos(t);\n this.y = f * Math.sin(t);\n this.z = u;\n return this;\n } },\n {\n key: _Symbol$iterator,\n value: _regenerator.default.mark(function value() {\n return _regenerator.default.wrap(function value$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.x;\n case 2:\n _context.next = 4;\n return this.y;\n case 4:\n _context.next = 6;\n return this.z;\n case 6:\n case \"end\":\n return _context.stop();}\n\n }, value, this);\n }) }]);\n\n return Vector3;\n }(Symbol.iterator);\n var _vector = new Vector3();\n var _quaternion = new _Quaternion.Quaternion();return module.exports;});", "requires": [ "pandav:/src/math/MathUtils.js", "pandav:/src/math/Quaternion.js" ], "buildLevel": 9, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Vector3.js", "fileName": "/src/math/Vector3.js" }, "pandav:/src/objects/HTMLObject.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/HTMLObject\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.HTMLObject = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var HTMLObject = exports.HTMLObject = function (_Object3D) {\n (0, _inherits2.default)(HTMLObject, _Object3D);\n var _super = (0, _createSuper2.default)(HTMLObject);\n function HTMLObject(element) {\n var _this;\n (0, _classCallCheck2.default)(this, HTMLObject);\n _this = _super.call(this);\n _this._element = null;\n _this.anchor = new _Vector.Vector2(0.5, 0.5);\n _this.isHTMLObject = true;\n _this.type = \"HTMLObject\";\n _this.element = element;\n return _this;\n }\n (0, _createClass2.default)(HTMLObject, [{\n key: \"element\",\n get: function get() {\n return this._element;\n },\n set: function set(v) {\n this._element = v;\n if (v) {\n v.style.position = \"absolute\";\n v.style.left = \"0\";\n v.style.top = \"0\";\n }\n } },\n {\n key: \"init\",\n value: function init() {} },\n {\n key: \"update\",\n value: function update(position, zIndex) {\n var anchorStr = \"translate(-\".concat(this.anchor.x * 100, \"%, -\").concat(this.anchor.y * 100, \"%)\");\n var transform = \"translate(\".concat(position.x, \"px, \").concat(position.y, \"px) \").concat(anchorStr);\n this._element.style.transform = transform;\n this._element.style.zIndex = String(zIndex);\n } },\n {\n key: \"dispose\",\n value: function dispose() {} }]);\n\n return HTMLObject;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/core/Object3D.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 71, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/HTMLObject.js", "fileName": "/src/objects/HTMLObject.js" }, "pandav:/src/math/Vector4.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/math/Vector4\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Vector4 = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var Vector4 = exports.Vector4 = function (_Symbol$iterator) {\n function Vector4() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var w = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n (0, _classCallCheck2.default)(this, Vector4);\n Vector4.prototype.isVector4 = true;\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n }\n (0, _createClass2.default)(Vector4, [{\n key: \"width\",\n get: function get() {\n return this.z;\n },\n set: function set(value) {\n this.z = value;\n } },\n {\n key: \"height\",\n get: function get() {\n return this.w;\n },\n set: function set(value) {\n this.w = value;\n } },\n {\n key: \"set\",\n value: function set(x, y, z, w) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n return this;\n } },\n {\n key: \"setScalar\",\n value: function setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n this.w = scalar;\n return this;\n } },\n {\n key: \"setX\",\n value: function setX(x) {\n this.x = x;\n return this;\n } },\n {\n key: \"setY\",\n value: function setY(y) {\n this.y = y;\n return this;\n } },\n {\n key: \"setZ\",\n value: function setZ(z) {\n this.z = z;\n return this;\n } },\n {\n key: \"setW\",\n value: function setW(w) {\n this.w = w;\n return this;\n } },\n {\n key: \"setComponent\",\n value: function setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n case 3:\n this.w = value;\n break;\n default:\n throw new Error('index is out of range: ' + index);}\n\n return this;\n } },\n {\n key: \"getComponent\",\n value: function getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n case 1:\n return this.y;\n case 2:\n return this.z;\n case 3:\n return this.w;\n default:\n throw new Error('index is out of range: ' + index);}\n\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.x, this.y, this.z, this.w);\n } },\n {\n key: \"copy\",\n value: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n this.w = v.w !== undefined ? v.w : 1;\n return this;\n } },\n {\n key: \"add\",\n value: function add(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n this.w += v.w;\n return this;\n } },\n {\n key: \"addScalar\",\n value: function addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n this.w += s;\n return this;\n } },\n {\n key: \"addVectors\",\n value: function addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n this.w = a.w + b.w;\n return this;\n } },\n {\n key: \"addScaledVector\",\n value: function addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n this.w += v.w * s;\n return this;\n } },\n {\n key: \"sub\",\n value: function sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n this.w -= v.w;\n return this;\n } },\n {\n key: \"subScalar\",\n value: function subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n this.w -= s;\n return this;\n } },\n {\n key: \"subVectors\",\n value: function subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n this.w = a.w - b.w;\n return this;\n } },\n {\n key: \"multiply\",\n value: function multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n this.z *= v.z;\n this.w *= v.w;\n return this;\n } },\n {\n key: \"multiplyScalar\",\n value: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n this.w *= scalar;\n return this;\n } },\n {\n key: \"applyMatrix4\",\n value: function applyMatrix4(m) {\n var x = this.x,\n y = this.y,\n z = this.z,\n w = this.w;\n var e = m.elements;\n this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\n this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\n this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\n this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\n return this;\n } },\n {\n key: \"divideScalar\",\n value: function divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n } },\n {\n key: \"setAxisAngleFromQuaternion\",\n value: function setAxisAngleFromQuaternion(q) {\n this.w = 2 * Math.acos(q.w);\n var s = Math.sqrt(1 - q.w * q.w);\n if (s < 0.0001) {\n this.x = 1;\n this.y = 0;\n this.z = 0;\n } else {\n this.x = q.x / s;\n this.y = q.y / s;\n this.z = q.z / s;\n }\n return this;\n } },\n {\n key: \"setAxisAngleFromRotationMatrix\",\n value: function setAxisAngleFromRotationMatrix(m) {\n var angle, x, y, z;\n var epsilon = 0.01,\n epsilon2 = 0.1,\n te = m.elements,\n m11 = te[0],\n m12 = te[4],\n m13 = te[8],\n m21 = te[1],\n m22 = te[5],\n m23 = te[9],\n m31 = te[2],\n m32 = te[6],\n m33 = te[10];\n if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) {\n if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) {\n this.set(1, 0, 0, 0);\n return this;\n }\n angle = Math.PI;\n var xx = (m11 + 1) / 2;\n var yy = (m22 + 1) / 2;\n var zz = (m33 + 1) / 2;\n var xy = (m12 + m21) / 4;\n var xz = (m13 + m31) / 4;\n var yz = (m23 + m32) / 4;\n if (xx > yy && xx > zz) {\n if (xx < epsilon) {\n x = 0;\n y = 0.707106781;\n z = 0.707106781;\n } else {\n x = Math.sqrt(xx);\n y = xy / x;\n z = xz / x;\n }\n } else if (yy > zz) {\n if (yy < epsilon) {\n x = 0.707106781;\n y = 0;\n z = 0.707106781;\n } else {\n y = Math.sqrt(yy);\n x = xy / y;\n z = yz / y;\n }\n } else {\n if (zz < epsilon) {\n x = 0.707106781;\n y = 0.707106781;\n z = 0;\n } else {\n z = Math.sqrt(zz);\n x = xz / z;\n y = yz / z;\n }\n }\n this.set(x, y, z, angle);\n return this;\n }\n var s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12));\n if (Math.abs(s) < 0.001) s = 1;\n this.x = (m32 - m23) / s;\n this.y = (m13 - m31) / s;\n this.z = (m21 - m12) / s;\n this.w = Math.acos((m11 + m22 + m33 - 1) / 2);\n return this;\n } },\n {\n key: \"min\",\n value: function min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n this.w = Math.min(this.w, v.w);\n return this;\n } },\n {\n key: \"max\",\n value: function max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n this.w = Math.max(this.w, v.w);\n return this;\n } },\n {\n key: \"clamp\",\n value: function clamp(min, max) {\n this.x = Math.max(min.x, Math.min(max.x, this.x));\n this.y = Math.max(min.y, Math.min(max.y, this.y));\n this.z = Math.max(min.z, Math.min(max.z, this.z));\n this.w = Math.max(min.w, Math.min(max.w, this.w));\n return this;\n } },\n {\n key: \"clampScalar\",\n value: function clampScalar(minVal, maxVal) {\n this.x = Math.max(minVal, Math.min(maxVal, this.x));\n this.y = Math.max(minVal, Math.min(maxVal, this.y));\n this.z = Math.max(minVal, Math.min(maxVal, this.z));\n this.w = Math.max(minVal, Math.min(maxVal, this.w));\n return this;\n } },\n {\n key: \"clampLength\",\n value: function clampLength(min, max) {\n var length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n } },\n {\n key: \"floor\",\n value: function floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n this.w = Math.floor(this.w);\n return this;\n } },\n {\n key: \"ceil\",\n value: function ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n this.w = Math.ceil(this.w);\n return this;\n } },\n {\n key: \"round\",\n value: function round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n this.w = Math.round(this.w);\n return this;\n } },\n {\n key: \"roundToZero\",\n value: function roundToZero() {\n this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\n this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\n this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\n this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w);\n return this;\n } },\n {\n key: \"negate\",\n value: function negate() {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n this.w = -this.w;\n return this;\n } },\n {\n key: \"dot\",\n value: function dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n } },\n {\n key: \"lengthSq\",\n value: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n } },\n {\n key: \"length\",\n value: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n } },\n {\n key: \"manhattanLength\",\n value: function manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\n } },\n {\n key: \"normalize\",\n value: function normalize() {\n return this.divideScalar(this.length() || 1);\n } },\n {\n key: \"setLength\",\n value: function setLength(length) {\n return this.normalize().multiplyScalar(length);\n } },\n {\n key: \"lerp\",\n value: function lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n this.w += (v.w - this.w) * alpha;\n return this;\n } },\n {\n key: \"lerpVectors\",\n value: function lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n this.w = v1.w + (v2.w - v1.w) * alpha;\n return this;\n } },\n {\n key: \"equals\",\n value: function equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\n } },\n {\n key: \"fromArray\",\n value: function fromArray(array) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n this.w = array[offset + 3];\n return this;\n } },\n {\n key: \"toArray\",\n value: function toArray() {\n var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n array[offset + 3] = this.w;\n return array;\n } },\n {\n key: \"fromBufferAttribute\",\n value: function fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n this.w = attribute.getW(index);\n return this;\n } },\n {\n key: \"random\",\n value: function random() {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n this.w = Math.random();\n return this;\n } },\n {\n key: _Symbol$iterator,\n value: _regenerator.default.mark(function value() {\n return _regenerator.default.wrap(function value$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.x;\n case 2:\n _context.next = 4;\n return this.y;\n case 4:\n _context.next = 6;\n return this.z;\n case 6:\n _context.next = 8;\n return this.w;\n case 8:\n case \"end\":\n return _context.stop();}\n\n }, value, this);\n }) }]);\n\n return Vector4;\n }(Symbol.iterator);return module.exports;});", "requires": [], "buildLevel": 8, "outputDir": "/com/three/0.145.0/src/math", "outputPath": "/com/three/0.145.0/src/math/Vector4.js", "fileName": "/src/math/Vector4.js" }, "pandav:/src/objects/InstancedMesh.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/InstancedMesh\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/math/Matrix4\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.InstancedMesh = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _InstancedBufferAttribute = require('pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute');\n var _Mesh2 = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _instanceLocalMatrix = new _Matrix.Matrix4();\n var _instanceWorldMatrix = new _Matrix.Matrix4();\n var _instanceIntersects = [];\n var _mesh = new _Mesh2.Mesh();\n var InstancedMesh = exports.InstancedMesh = function (_Mesh) {\n (0, _inherits2.default)(InstancedMesh, _Mesh);\n var _super = (0, _createSuper2.default)(InstancedMesh);\n function InstancedMesh(geometry, material, count) {\n var _this;\n (0, _classCallCheck2.default)(this, InstancedMesh);\n _this = _super.call(this, geometry, material);\n _this.isInstancedMesh = true;\n _this.instanceMatrix = new _InstancedBufferAttribute.InstancedBufferAttribute(new Float32Array(count * 16), 16);\n _this.instanceColor = null;\n _this.count = count;\n _this.frustumCulled = false;\n return _this;\n }\n (0, _createClass2.default)(InstancedMesh, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(InstancedMesh.prototype), \"copy\", this).call(this, source, recursive);\n this.instanceMatrix.copy(source.instanceMatrix);\n if (source.instanceColor !== null) this.instanceColor = source.instanceColor.clone();\n this.count = source.count;\n return this;\n } },\n {\n key: \"getColorAt\",\n value: function getColorAt(index, color) {\n color.fromArray(this.instanceColor.array, index * 3);\n } },\n {\n key: \"getMatrixAt\",\n value: function getMatrixAt(index, matrix) {\n matrix.fromArray(this.instanceMatrix.array, index * 16);\n } },\n {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var matrixWorld = this.matrixWorld;\n var raycastTimes = this.count;\n _mesh.geometry = this.geometry;\n _mesh.material = this.material;\n if (_mesh.material === undefined) return;\n for (var instanceId = 0; instanceId < raycastTimes; instanceId++) {\n this.getMatrixAt(instanceId, _instanceLocalMatrix);\n _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);\n _mesh.matrixWorld = _instanceWorldMatrix;\n _mesh.raycast(raycaster, _instanceIntersects);\n for (var i = 0, l = _instanceIntersects.length; i < l; i++) {\n var intersect = _instanceIntersects[i];\n intersect.instanceId = instanceId;\n intersect.object = this;\n intersects.push(intersect);\n }\n _instanceIntersects.length = 0;\n }\n } },\n {\n key: \"setColorAt\",\n value: function setColorAt(index, color) {\n if (this.instanceColor === null) {\n this.instanceColor = new _InstancedBufferAttribute.InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count * 3), 3);\n }\n color.toArray(this.instanceColor.array, index * 3);\n } },\n {\n key: \"setMatrixAt\",\n value: function setMatrixAt(index, matrix) {\n matrix.toArray(this.instanceMatrix.array, index * 16);\n } },\n {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {} },\n {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose' });\n\n } }]);\n\n return InstancedMesh;\n }(_Mesh2.Mesh);return module.exports;});", "requires": [ "pandav:/src/core/InstancedBufferAttribute.js", "pandav:/src/objects/Mesh.js", "pandav:/src/math/Matrix4.js" ], "buildLevel": 17, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/InstancedMesh.js", "fileName": "/src/objects/InstancedMesh.js" }, "pandav:/src/objects/HTMLObjectMgr.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/HTMLObjectMgr\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.HTMLObjectMgr = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var tmpVec4 = new _Vector.Vector4();\n var tmpVec2 = new _Vector2.Vector2();\n var HTMLObjectMgr = exports.HTMLObjectMgr = function () {\n function HTMLObjectMgr(domContainerRoot) {\n (0, _classCallCheck2.default)(this, HTMLObjectMgr);\n this.objectMap = new Map();\n this.domContainer = undefined;\n this.lastObjectMap = new Map();\n this.width = 0;\n this.height = 0;\n var domContainer = document.createElement(\"div\");\n domContainer.style.transformStyle = \"preserve-3d\";\n domContainer.style.overflow = \"hidden\";\n domContainer.style.pointerEvents = \"none\";\n domContainerRoot.appendChild(domContainer);\n this.domContainer = domContainer;\n }\n (0, _createClass2.default)(HTMLObjectMgr, [{\n key: \"init\",\n value: function init() {\n this.lastObjectMap = this.objectMap;\n this.objectMap = new Map();\n } },\n {\n key: \"push\",\n value: function push(object, groupOrder, z) {\n if (this.objectMap.has(object.uuid)) {\n return;\n }\n this.objectMap.set(object.uuid, {\n object: object,\n groupOrder: groupOrder,\n z: z,\n renderOrder: object.renderOrder });\n\n if (!this.lastObjectMap.has(object.uuid)) {\n this.domContainer.appendChild(object.element);\n object.init();\n }\n } },\n {\n key: \"setSize\",\n value: function setSize(width, height) {\n this.domContainer.style.width = width + \"px\";\n this.domContainer.style.height = height + \"px\";\n this.width = width;\n this.height = height;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n var _this = this;\n this.objectMap.forEach(function (info) {\n info.object.dispose();\n _this.domContainer.removeChild(info.object.element);\n });\n this.objectMap.clear();\n } },\n {\n key: \"render\",\n value: function render(camera) {\n var that = this;\n this.lastObjectMap.forEach(function (info, uuid) {\n if (!that.objectMap.has(uuid)) {\n that.domContainer.removeChild(info.object.element);\n info.object.dispose();\n }\n });\n var viewMatrix = camera.matrixWorldInverse;\n var projectionMatrix = camera.projectionMatrix;\n var width = this.width,\n height = this.height;\n var infos = Array.from(this.objectMap.values());\n infos.sort(sort);\n var info;\n for (var i = 0, len = infos.length; i < len; i++) {\n info = infos[i];\n tmpVec4.set(info.object.matrixWorld.elements[12], info.object.matrixWorld.elements[13], info.object.matrixWorld.elements[14], 1);\n tmpVec4.applyMatrix4(viewMatrix);\n tmpVec4.applyMatrix4(projectionMatrix);\n tmpVec2.set(tmpVec4.x / tmpVec4.w, tmpVec4.y / tmpVec4.w);\n tmpVec2.multiplyScalar(0.5);\n tmpVec2.x += 0.5;\n tmpVec2.y += 0.5;\n tmpVec2.y = 1 - tmpVec2.y;\n tmpVec2.x *= width;\n tmpVec2.y *= height;\n info.object.update(tmpVec2, i);\n }\n } }]);\n\n return HTMLObjectMgr;\n }();\n function sort(a, b) {\n if (a.groupOrder !== b.groupOrder) {\n return a.groupOrder - b.groupOrder;\n } else if (a.renderOrder !== b.renderOrder) {\n return a.renderOrder - b.renderOrder;\n } else {\n return b.z - a.z;\n }\n }return module.exports;});", "requires": [ "pandav:/src/math/Vector4.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/HTMLObjectMgr.js", "fileName": "/src/objects/HTMLObjectMgr.js" }, "pandav:/src/objects/LineLoop.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/LineLoop\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/Line\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineLoop = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Line2 = require('pandav:/com/three/0.145.0/src/objects/Line');\n var LineLoop = exports.LineLoop = function (_Line) {\n (0, _inherits2.default)(LineLoop, _Line);\n var _super = (0, _createSuper2.default)(LineLoop);\n function LineLoop(geometry, material) {\n var _this;\n (0, _classCallCheck2.default)(this, LineLoop);\n _this = _super.call(this, geometry, material);\n _this.isLineLoop = true;\n _this.type = 'LineLoop';\n return _this;\n }\n return (0, _createClass2.default)(LineLoop);\n }(_Line2.Line);return module.exports;});", "requires": [ "pandav:/src/objects/Line.js" ], "buildLevel": 19, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/LineLoop.js", "fileName": "/src/objects/LineLoop.js" }, "pandav:/src/objects/Line.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/Line\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Sphere\", \"pandav:/com/three/0.145.0/src/math/Ray\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/materials/LineBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Line = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Sphere = require('pandav:/com/three/0.145.0/src/math/Sphere');\n var _Ray = require('pandav:/com/three/0.145.0/src/math/Ray');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _LineBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/LineBasicMaterial');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _start = new _Vector.Vector3();\n var _end = new _Vector.Vector3();\n var _inverseMatrix = new _Matrix.Matrix4();\n var _ray = new _Ray.Ray();\n var _sphere = new _Sphere.Sphere();\n var Line = exports.Line = function (_Object3D) {\n (0, _inherits2.default)(Line, _Object3D);\n var _super = (0, _createSuper2.default)(Line);\n function Line() {\n var _this;\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _BufferGeometry.BufferGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _LineBasicMaterial.LineBasicMaterial();\n (0, _classCallCheck2.default)(this, Line);\n _this = _super.call(this);\n _this.isLine = true;\n _this.type = 'Line';\n _this.geometry = geometry;\n _this.material = material;\n _this.updateMorphTargets();\n return _this;\n }\n (0, _createClass2.default)(Line, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Line.prototype), \"copy\", this).call(this, source, recursive);\n this.material = source.material;\n this.geometry = source.geometry;\n return this;\n } },\n {\n key: \"computeLineDistances\",\n value: function computeLineDistances() {\n var geometry = this.geometry;\n if (geometry.index === null) {\n var positionAttribute = geometry.attributes.position;\n var lineDistances = [0];\n for (var i = 1, l = positionAttribute.count; i < l; i++) {\n _start.fromBufferAttribute(positionAttribute, i - 1);\n _end.fromBufferAttribute(positionAttribute, i);\n lineDistances[i] = lineDistances[i - 1];\n lineDistances[i] += _start.distanceTo(_end);\n }\n geometry.setAttribute('lineDistance', new _BufferAttribute.Float32BufferAttribute(lineDistances, 1));\n } else {\n console.warn('THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\n }\n return this;\n } },\n {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var matrixWorld = this.matrixWorld;\n var threshold = raycaster.params.Line.threshold;\n var drawRange = geometry.drawRange;\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n _sphere.copy(geometry.boundingSphere);\n _sphere.applyMatrix4(matrixWorld);\n _sphere.radius += threshold;\n if (raycaster.ray.intersectsSphere(_sphere) === false) return;\n _inverseMatrix.copy(matrixWorld).invert();\n _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);\n var localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n var localThresholdSq = localThreshold * localThreshold;\n var vStart = new _Vector.Vector3();\n var vEnd = new _Vector.Vector3();\n var interSegment = new _Vector.Vector3();\n var interRay = new _Vector.Vector3();\n var step = this.isLineSegments ? 2 : 1;\n var index = geometry.index;\n var attributes = geometry.attributes;\n var positionAttribute = attributes.position;\n if (index !== null) {\n var start = Math.max(0, drawRange.start);\n var end = Math.min(index.count, drawRange.start + drawRange.count);\n for (var i = start, l = end - 1; i < l; i += step) {\n var a = index.getX(i);\n var b = index.getX(i + 1);\n vStart.fromBufferAttribute(positionAttribute, a);\n vEnd.fromBufferAttribute(positionAttribute, b);\n var distSq = _ray.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\n if (distSq > localThresholdSq) continue;\n interRay.applyMatrix4(this.matrixWorld);\n var distance = raycaster.ray.origin.distanceTo(interRay);\n if (distance < raycaster.near || distance > raycaster.far) continue;\n intersects.push({\n distance: distance,\n point: interSegment.clone().applyMatrix4(this.matrixWorld),\n index: i,\n face: null,\n faceIndex: null,\n object: this });\n\n }\n } else {\n var _start2 = Math.max(0, drawRange.start);\n var _end2 = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n for (var _i = _start2, _l = _end2 - 1; _i < _l; _i += step) {\n vStart.fromBufferAttribute(positionAttribute, _i);\n vEnd.fromBufferAttribute(positionAttribute, _i + 1);\n var _distSq = _ray.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\n if (_distSq > localThresholdSq) continue;\n interRay.applyMatrix4(this.matrixWorld);\n var _distance = raycaster.ray.origin.distanceTo(interRay);\n if (_distance < raycaster.near || _distance > raycaster.far) continue;\n intersects.push({\n distance: _distance,\n point: interSegment.clone().applyMatrix4(this.matrixWorld),\n index: _i,\n face: null,\n faceIndex: null,\n object: this });\n\n }\n }\n } },\n {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {\n var geometry = this.geometry;\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n for (var m = 0, ml = morphAttribute.length; m < ml; m++) {\n var name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n } }]);\n\n return Line;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/math/Sphere.js", "pandav:/src/math/Ray.js", "pandav:/src/math/Matrix4.js", "pandav:/src/core/Object3D.js", "pandav:/src/math/Vector3.js", "pandav:/src/materials/LineBasicMaterial.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 19, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/Line.js", "fileName": "/src/objects/Line.js" }, "pandav:/src/objects/LineSegments.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/LineSegments\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/Line\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LineSegments = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Line2 = require('pandav:/com/three/0.145.0/src/objects/Line');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _start = new _Vector.Vector3();\n var _end = new _Vector.Vector3();\n var LineSegments = exports.LineSegments = function (_Line) {\n (0, _inherits2.default)(LineSegments, _Line);\n var _super = (0, _createSuper2.default)(LineSegments);\n function LineSegments(geometry, material) {\n var _this;\n (0, _classCallCheck2.default)(this, LineSegments);\n _this = _super.call(this, geometry, material);\n _this.isLineSegments = true;\n _this.type = 'LineSegments';\n return _this;\n }\n (0, _createClass2.default)(LineSegments, [{\n key: \"computeLineDistances\",\n value: function computeLineDistances() {\n var geometry = this.geometry;\n if (geometry.index === null) {\n var positionAttribute = geometry.attributes.position;\n var lineDistances = [];\n for (var i = 0, l = positionAttribute.count; i < l; i += 2) {\n _start.fromBufferAttribute(positionAttribute, i);\n _end.fromBufferAttribute(positionAttribute, i + 1);\n lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\n lineDistances[i + 1] = lineDistances[i] + _start.distanceTo(_end);\n }\n geometry.setAttribute('lineDistance', new _BufferAttribute.Float32BufferAttribute(lineDistances, 1));\n } else {\n console.warn('THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.');\n }\n return this;\n } }]);\n\n return LineSegments;\n }(_Line2.Line);return module.exports;});", "requires": [ "pandav:/src/objects/Line.js", "pandav:/src/math/Vector3.js", "pandav:/src/core/BufferAttribute.js" ], "buildLevel": 18, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/LineSegments.js", "fileName": "/src/objects/LineSegments.js" }, "pandav:/src/objects/Skeleton.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/Skeleton\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/objects/Bone\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/textures/DataTexture\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Skeleton = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Bone = require('pandav:/com/three/0.145.0/src/objects/Bone');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _DataTexture = require('pandav:/com/three/0.145.0/src/textures/DataTexture');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var _offsetMatrix = new _Matrix.Matrix4();\n var _identityMatrix = new _Matrix.Matrix4();\n var Skeleton = exports.Skeleton = function () {\n function Skeleton() {\n var bones = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var boneInverses = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n (0, _classCallCheck2.default)(this, Skeleton);\n this.uuid = MathUtils.generateUUID();\n this.bones = bones.slice(0);\n this.boneInverses = boneInverses;\n this.boneMatrices = null;\n this.boneTexture = null;\n this.boneTextureSize = 0;\n this.frame = -1;\n this.init();\n }\n (0, _createClass2.default)(Skeleton, [{\n key: \"init\",\n value: function init() {\n var bones = this.bones;\n var boneInverses = this.boneInverses;\n this.boneMatrices = new Float32Array(bones.length * 16);\n if (boneInverses.length === 0) {\n this.calculateInverses();\n } else {\n if (bones.length !== boneInverses.length) {\n console.warn('THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.');\n this.boneInverses = [];\n for (var i = 0, il = this.bones.length; i < il; i++) {\n this.boneInverses.push(new _Matrix.Matrix4());\n }\n }\n }\n } },\n {\n key: \"calculateInverses\",\n value: function calculateInverses() {\n this.boneInverses.length = 0;\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var inverse = new _Matrix.Matrix4();\n if (this.bones[i]) {\n inverse.copy(this.bones[i].matrixWorld).invert();\n }\n this.boneInverses.push(inverse);\n }\n } },\n {\n key: \"pose\",\n value: function pose() {\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var bone = this.bones[i];\n if (bone) {\n bone.matrixWorld.copy(this.boneInverses[i]).invert();\n }\n }\n for (var _i = 0, _il = this.bones.length; _i < _il; _i++) {\n var _bone = this.bones[_i];\n if (_bone) {\n if (_bone.parent && _bone.parent.isBone) {\n _bone.matrix.copy(_bone.parent.matrixWorld).invert();\n _bone.matrix.multiply(_bone.matrixWorld);\n } else {\n _bone.matrix.copy(_bone.matrixWorld);\n }\n _bone.matrix.decompose(_bone.position, _bone.quaternion, _bone.scale);\n }\n }\n } },\n {\n key: \"update\",\n value: function update() {\n var bones = this.bones;\n var boneInverses = this.boneInverses;\n var boneMatrices = this.boneMatrices;\n var boneTexture = this.boneTexture;\n for (var i = 0, il = bones.length; i < il; i++) {\n var matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix;\n _offsetMatrix.multiplyMatrices(matrix, boneInverses[i]);\n _offsetMatrix.toArray(boneMatrices, i * 16);\n }\n if (boneTexture !== null) {\n boneTexture.needsUpdate = true;\n }\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new Skeleton(this.bones, this.boneInverses);\n } },\n {\n key: \"computeBoneTexture\",\n value: function computeBoneTexture() {\n var size = Math.sqrt(this.bones.length * 4);\n size = MathUtils.ceilPowerOfTwo(size);\n size = Math.max(size, 4);\n var boneMatrices = new Float32Array(size * size * 4);\n boneMatrices.set(this.boneMatrices);\n var boneTexture = new _DataTexture.DataTexture(boneMatrices, size, size, _constants.RGBAFormat, _constants.FloatType);\n boneTexture.needsUpdate = true;\n this.boneMatrices = boneMatrices;\n this.boneTexture = boneTexture;\n this.boneTextureSize = size;\n return this;\n } },\n {\n key: \"getBoneByName\",\n value: function getBoneByName(name) {\n for (var i = 0, il = this.bones.length; i < il; i++) {\n var bone = this.bones[i];\n if (bone.name === name) {\n return bone;\n }\n }\n return undefined;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n if (this.boneTexture !== null) {\n this.boneTexture.dispose();\n this.boneTexture = null;\n }\n } },\n {\n key: \"fromJSON\",\n value: function fromJSON(json, bones) {\n this.uuid = json.uuid;\n for (var i = 0, l = json.bones.length; i < l; i++) {\n var uuid = json.bones[i];\n var bone = bones[uuid];\n if (bone === undefined) {\n console.warn('THREE.Skeleton: No bone found with UUID:', uuid);\n bone = new _Bone.Bone();\n }\n this.bones.push(bone);\n this.boneInverses.push(new _Matrix.Matrix4().fromArray(json.boneInverses[i]));\n }\n this.init();\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var data = {\n metadata: {\n version: 4.5,\n type: 'Skeleton',\n generator: 'Skeleton.toJSON' },\n\n bones: [],\n boneInverses: [] };\n\n data.uuid = this.uuid;\n var bones = this.bones;\n var boneInverses = this.boneInverses;\n for (var i = 0, l = bones.length; i < l; i++) {\n var bone = bones[i];\n data.bones.push(bone.uuid);\n var boneInverse = boneInverses[i];\n data.boneInverses.push(boneInverse.toArray());\n }\n return data;\n } }]);\n\n return Skeleton;\n }();return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/objects/Bone.js", "pandav:/src/math/Matrix4.js", "pandav:/src/textures/DataTexture.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 16, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/Skeleton.js", "fileName": "/src/objects/Skeleton.js" }, "pandav:/src/objects/LOD.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/LOD\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.LOD = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _v1 = new _Vector.Vector3();\n var _v2 = new _Vector.Vector3();\n var LOD = exports.LOD = function (_Object3D) {\n (0, _inherits2.default)(LOD, _Object3D);\n var _super = (0, _createSuper2.default)(LOD);\n function LOD() {\n var _this;\n (0, _classCallCheck2.default)(this, LOD);\n _this = _super.call(this);\n _this._currentLevel = 0;\n _this.type = 'LOD';\n Object.defineProperties((0, _assertThisInitialized2.default)(_this), {\n levels: {\n enumerable: true,\n value: [] },\n\n isLOD: {\n value: true } });\n\n\n _this.autoUpdate = true;\n return _this;\n }\n (0, _createClass2.default)(LOD, [{\n key: \"copy\",\n value: function copy(source) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(LOD.prototype), \"copy\", this).call(this, source, false);\n var levels = source.levels;\n for (var i = 0, l = levels.length; i < l; i++) {\n var level = levels[i];\n this.addLevel(level.object.clone(), level.distance);\n }\n this.autoUpdate = source.autoUpdate;\n return this;\n } },\n {\n key: \"addLevel\",\n value: function addLevel(object) {\n var distance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n distance = Math.abs(distance);\n var levels = this.levels;\n var l;\n for (l = 0; l < levels.length; l++) {\n if (distance < levels[l].distance) {\n break;\n }\n }\n levels.splice(l, 0, {\n distance: distance,\n object: object });\n\n this.add(object);\n return this;\n } },\n {\n key: \"getCurrentLevel\",\n value: function getCurrentLevel() {\n return this._currentLevel;\n } },\n {\n key: \"getObjectForDistance\",\n value: function getObjectForDistance(distance) {\n var levels = this.levels;\n if (levels.length > 0) {\n var i, l;\n for (i = 1, l = levels.length; i < l; i++) {\n if (distance < levels[i].distance) {\n break;\n }\n }\n return levels[i - 1].object;\n }\n return null;\n } },\n {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var levels = this.levels;\n if (levels.length > 0) {\n _v1.setFromMatrixPosition(this.matrixWorld);\n var distance = raycaster.ray.origin.distanceTo(_v1);\n this.getObjectForDistance(distance).raycast(raycaster, intersects);\n }\n } },\n {\n key: \"update\",\n value: function update(camera) {\n var levels = this.levels;\n if (levels.length > 1) {\n _v1.setFromMatrixPosition(camera.matrixWorld);\n _v2.setFromMatrixPosition(this.matrixWorld);\n var distance = _v1.distanceTo(_v2) / camera.zoom;\n levels[0].object.visible = true;\n var i, l;\n for (i = 1, l = levels.length; i < l; i++) {\n if (distance >= levels[i].distance) {\n levels[i - 1].object.visible = false;\n levels[i].object.visible = true;\n } else {\n break;\n }\n }\n this._currentLevel = i - 1;\n for (; i < l; i++) {\n levels[i].object.visible = false;\n }\n }\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(LOD.prototype), \"toJSON\", this).call(this, meta);\n if (this.autoUpdate === false) data.object.autoUpdate = false;\n data.object.levels = [];\n var levels = this.levels;\n for (var i = 0, l = levels.length; i < l; i++) {\n var level = levels[i];\n data.object.levels.push({\n object: level.object.uuid,\n distance: level.distance });\n\n }\n return data;\n } }]);\n\n return LOD;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/core/Object3D.js" ], "buildLevel": 14, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/LOD.js", "fileName": "/src/objects/LOD.js" }, "pandav:/src/postprocessing/CopyDeferredPassToForward.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/CopyDeferredPassToForward\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/postprocessing/Pass\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CopyDeferredPassToForward = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Pass2 = require('pandav:/com/three/0.145.0/src/postprocessing/Pass');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var CopyDeferredPassToForward = exports.CopyDeferredPassToForward = function (_Pass) {\n (0, _inherits2.default)(CopyDeferredPassToForward, _Pass);\n var _super = (0, _createSuper2.default)(CopyDeferredPassToForward);\n function CopyDeferredPassToForward(context) {\n var _this;\n (0, _classCallCheck2.default)(this, CopyDeferredPassToForward);\n _this = _super.call(this);\n _this.context = void 0;\n _this.material = new _ShaderMaterial.ShaderMaterial({\n uniforms: {\n tDiffuse: {\n value: null },\n\n tNormalDepth: {\n value: null } },\n\n\n vertexShader: \"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",\n fragmentShader: \"\\n\\n\\t\\tuniform float opacity;\\n\\n\\t\\tuniform sampler2D tDiffuse;\\n uniform sampler2D tNormalDepth;\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tgl_FragColor = texture2D( tDiffuse, vUv );\\n gl_FragDepth = texture2D( tNormalDepth, vUv ).w;\\n\\n\\t\\t}\" });\n\n _this.fsQuard = new _Pass2.FullScreenQuad(_this.material);\n _this.context = context;\n return _this;\n }\n (0, _createClass2.default)(CopyDeferredPassToForward, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer) {\n var gBuffer = renderer.renderProcesser.gBuffer;\n if (!gBuffer) {\n return;\n }\n this.material.uniforms.tDiffuse.value = readBuffer.texture;\n this.material.uniforms.tNormalDepth.value = gBuffer.normalDepthBuffer;\n renderer.setRenderTarget(this.context.forwardRenderTarget);\n renderer.clear();\n this.fsQuard.render(renderer);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.material.dispose();\n } }]);\n\n return CopyDeferredPassToForward;\n }(_Pass2.Pass);return module.exports;});", "requires": [ "pandav:/src/postprocessing/Pass.js", "pandav:/src/materials/ShaderMaterial.js" ], "buildLevel": 40, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/CopyDeferredPassToForward.js", "fileName": "/src/postprocessing/CopyDeferredPassToForward.js" }, "pandav:/src/objects/Points.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/Points\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Sphere\", \"pandav:/com/three/0.145.0/src/math/Ray\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/materials/PointsMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Points = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Sphere = require('pandav:/com/three/0.145.0/src/math/Sphere');\n var _Ray = require('pandav:/com/three/0.145.0/src/math/Ray');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _PointsMaterial = require('pandav:/com/three/0.145.0/src/materials/PointsMaterial');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _inverseMatrix = new _Matrix.Matrix4();\n var _ray = new _Ray.Ray();\n var _sphere = new _Sphere.Sphere();\n var _position = new _Vector.Vector3();\n var Points = exports.Points = function (_Object3D) {\n (0, _inherits2.default)(Points, _Object3D);\n var _super = (0, _createSuper2.default)(Points);\n function Points() {\n var _this;\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _BufferGeometry.BufferGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _PointsMaterial.PointsMaterial();\n (0, _classCallCheck2.default)(this, Points);\n _this = _super.call(this);\n _this.isPoints = true;\n _this.type = 'Points';\n _this.geometry = geometry;\n _this.material = material;\n _this.updateMorphTargets();\n return _this;\n }\n (0, _createClass2.default)(Points, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Points.prototype), \"copy\", this).call(this, source, recursive);\n this.material = source.material;\n this.geometry = source.geometry;\n return this;\n } },\n {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var matrixWorld = this.matrixWorld;\n var threshold = raycaster.params.Points.threshold;\n var drawRange = geometry.drawRange;\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n _sphere.copy(geometry.boundingSphere);\n _sphere.applyMatrix4(matrixWorld);\n _sphere.radius += threshold;\n if (raycaster.ray.intersectsSphere(_sphere) === false) return;\n _inverseMatrix.copy(matrixWorld).invert();\n _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);\n var localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n var localThresholdSq = localThreshold * localThreshold;\n var index = geometry.index;\n var attributes = geometry.attributes;\n var positionAttribute = attributes.position;\n if (index !== null) {\n var start = Math.max(0, drawRange.start);\n var end = Math.min(index.count, drawRange.start + drawRange.count);\n for (var i = start, il = end; i < il; i++) {\n var a = index.getX(i);\n _position.fromBufferAttribute(positionAttribute, a);\n testPoint(_position, a, localThresholdSq, matrixWorld, raycaster, intersects, this);\n }\n } else {\n var _start = Math.max(0, drawRange.start);\n var _end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n for (var _i = _start, l = _end; _i < l; _i++) {\n _position.fromBufferAttribute(positionAttribute, _i);\n testPoint(_position, _i, localThresholdSq, matrixWorld, raycaster, intersects, this);\n }\n }\n } },\n {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {\n var geometry = this.geometry;\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n for (var m = 0, ml = morphAttribute.length; m < ml; m++) {\n var name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n } }]);\n\n return Points;\n }(_Object3D2.Object3D);\n function testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects, object) {\n var rayPointDistanceSq = _ray.distanceSqToPoint(point);\n if (rayPointDistanceSq < localThresholdSq) {\n var intersectPoint = new _Vector.Vector3();\n _ray.closestPointToPoint(point, intersectPoint);\n intersectPoint.applyMatrix4(matrixWorld);\n var distance = raycaster.ray.origin.distanceTo(intersectPoint);\n if (distance < raycaster.near || distance > raycaster.far) return;\n intersects.push({\n distance: distance,\n distanceToRay: Math.sqrt(rayPointDistanceSq),\n point: intersectPoint,\n index: index,\n face: null,\n object: object });\n\n }\n }return module.exports;});", "requires": [ "pandav:/src/math/Sphere.js", "pandav:/src/math/Ray.js", "pandav:/src/math/Matrix4.js", "pandav:/src/core/Object3D.js", "pandav:/src/math/Vector3.js", "pandav:/src/materials/PointsMaterial.js", "pandav:/src/core/BufferGeometry.js" ], "buildLevel": 20, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/Points.js", "fileName": "/src/objects/Points.js" }, "pandav:/src/objects/Sprite.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/Sprite\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Triangle\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/InterleavedBuffer\", \"pandav:/com/three/0.145.0/src/core/InterleavedBufferAttribute\", \"pandav:/com/three/0.145.0/src/materials/SpriteMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Sprite = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Triangle = require('pandav:/com/three/0.145.0/src/math/Triangle');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _InterleavedBuffer = require('pandav:/com/three/0.145.0/src/core/InterleavedBuffer');\n var _InterleavedBufferAttribute = require('pandav:/com/three/0.145.0/src/core/InterleavedBufferAttribute');\n var _SpriteMaterial = require('pandav:/com/three/0.145.0/src/materials/SpriteMaterial');\n var _geometry;\n var _intersectPoint = new _Vector2.Vector3();\n var _worldScale = new _Vector2.Vector3();\n var _mvPosition = new _Vector2.Vector3();\n var _alignedPosition = new _Vector.Vector2();\n var _rotatedPosition = new _Vector.Vector2();\n var _viewWorldMatrix = new _Matrix.Matrix4();\n var _vA = new _Vector2.Vector3();\n var _vB = new _Vector2.Vector3();\n var _vC = new _Vector2.Vector3();\n var _uvA = new _Vector.Vector2();\n var _uvB = new _Vector.Vector2();\n var _uvC = new _Vector.Vector2();\n var Sprite = exports.Sprite = function (_Object3D) {\n (0, _inherits2.default)(Sprite, _Object3D);\n var _super = (0, _createSuper2.default)(Sprite);\n function Sprite(material) {\n var _this;\n (0, _classCallCheck2.default)(this, Sprite);\n _this = _super.call(this);\n _this.isSprite = true;\n _this.type = 'Sprite';\n if (_geometry === undefined) {\n _geometry = new _BufferGeometry.BufferGeometry();\n var float32Array = new Float32Array([-0.5, -0.5, 0, 0, 0, 0.5, -0.5, 0, 1, 0, 0.5, 0.5, 0, 1, 1, -0.5, 0.5, 0, 0, 1]);\n var interleavedBuffer = new _InterleavedBuffer.InterleavedBuffer(float32Array, 5);\n _geometry.setIndex([0, 1, 2, 0, 2, 3]);\n _geometry.setAttribute('position', new _InterleavedBufferAttribute.InterleavedBufferAttribute(interleavedBuffer, 3, 0, false));\n _geometry.setAttribute('uv', new _InterleavedBufferAttribute.InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));\n }\n _this.geometry = _geometry;\n _this.material = material !== undefined ? material : new _SpriteMaterial.SpriteMaterial();\n _this.center = new _Vector.Vector2(0.5, 0.5);\n return _this;\n }\n (0, _createClass2.default)(Sprite, [{\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n if (raycaster.camera === null) {\n console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');\n }\n _worldScale.setFromMatrixScale(this.matrixWorld);\n _viewWorldMatrix.copy(raycaster.camera.matrixWorld);\n this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld);\n _mvPosition.setFromMatrixPosition(this.modelViewMatrix);\n if (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) {\n _worldScale.multiplyScalar(-_mvPosition.z);\n }\n var rotation = this.material.rotation;\n var sin, cos;\n if (rotation !== 0) {\n cos = Math.cos(rotation);\n sin = Math.sin(rotation);\n }\n var center = this.center;\n transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n _uvA.set(0, 0);\n _uvB.set(1, 0);\n _uvC.set(1, 1);\n var intersect = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint);\n if (intersect === null) {\n transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n _uvB.set(0, 1);\n intersect = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint);\n if (intersect === null) {\n return;\n }\n }\n var distance = raycaster.ray.origin.distanceTo(_intersectPoint);\n if (distance < raycaster.near || distance > raycaster.far) return;\n intersects.push({\n distance: distance,\n point: _intersectPoint.clone(),\n uv: _Triangle.Triangle.getUV(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new _Vector.Vector2()),\n face: null,\n object: this });\n\n } },\n {\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Sprite.prototype), \"copy\", this).call(this, source, recursive);\n if (source.center !== undefined) this.center.copy(source.center);\n this.material = source.material;\n return this;\n } }]);\n\n return Sprite;\n }(_Object3D2.Object3D);\n function transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) {\n _alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale);\n if (sin !== undefined) {\n _rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y;\n _rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y;\n } else {\n _rotatedPosition.copy(_alignedPosition);\n }\n vertexPosition.copy(mvPosition);\n vertexPosition.x += _rotatedPosition.x;\n vertexPosition.y += _rotatedPosition.y;\n vertexPosition.applyMatrix4(_viewWorldMatrix);\n }return module.exports;});", "requires": [ "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Triangle.js", "pandav:/src/core/Object3D.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/InterleavedBuffer.js", "pandav:/src/core/InterleavedBufferAttribute.js", "pandav:/src/materials/SpriteMaterial.js" ], "buildLevel": 13, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/Sprite.js", "fileName": "/src/objects/Sprite.js" }, "pandav:/src/objects/SkinnedMesh.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/SkinnedMesh\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector4\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.SkinnedMesh = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Mesh2 = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _basePosition = new _Vector.Vector3();\n var _skinIndex = new _Vector2.Vector4();\n var _skinWeight = new _Vector2.Vector4();\n var _vector = new _Vector.Vector3();\n var _matrix = new _Matrix.Matrix4();\n var SkinnedMesh = exports.SkinnedMesh = function (_Mesh) {\n (0, _inherits2.default)(SkinnedMesh, _Mesh);\n var _super = (0, _createSuper2.default)(SkinnedMesh);\n function SkinnedMesh(geometry, material) {\n var _this;\n (0, _classCallCheck2.default)(this, SkinnedMesh);\n _this = _super.call(this, geometry, material);\n _this.isSkinnedMesh = true;\n _this.type = 'SkinnedMesh';\n _this.bindMode = 'attached';\n _this.bindMatrix = new _Matrix.Matrix4();\n _this.bindMatrixInverse = new _Matrix.Matrix4();\n return _this;\n }\n (0, _createClass2.default)(SkinnedMesh, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(SkinnedMesh.prototype), \"copy\", this).call(this, source, recursive);\n this.bindMode = source.bindMode;\n this.bindMatrix.copy(source.bindMatrix);\n this.bindMatrixInverse.copy(source.bindMatrixInverse);\n this.skeleton = source.skeleton;\n return this;\n } },\n {\n key: \"bind\",\n value: function bind(skeleton, bindMatrix) {\n this.skeleton = skeleton;\n if (bindMatrix === undefined) {\n this.updateMatrixWorld(true);\n this.skeleton.calculateInverses();\n bindMatrix = this.matrixWorld;\n }\n this.bindMatrix.copy(bindMatrix);\n this.bindMatrixInverse.copy(bindMatrix).invert();\n } },\n {\n key: \"pose\",\n value: function pose() {\n this.skeleton.pose();\n } },\n {\n key: \"normalizeSkinWeights\",\n value: function normalizeSkinWeights() {\n var vector = new _Vector2.Vector4();\n var skinWeight = this.geometry.attributes.skinWeight;\n for (var i = 0, l = skinWeight.count; i < l; i++) {\n vector.fromBufferAttribute(skinWeight, i);\n var scale = 1.0 / vector.manhattanLength();\n if (scale !== Infinity) {\n vector.multiplyScalar(scale);\n } else {\n vector.set(1, 0, 0, 0);\n }\n skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w);\n }\n } },\n {\n key: \"updateMatrixWorld\",\n value: function updateMatrixWorld(force) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(SkinnedMesh.prototype), \"updateMatrixWorld\", this).call(this, force);\n if (this.bindMode === 'attached') {\n this.bindMatrixInverse.copy(this.matrixWorld).invert();\n } else if (this.bindMode === 'detached') {\n this.bindMatrixInverse.copy(this.bindMatrix).invert();\n } else {\n console.warn('THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode);\n }\n } },\n {\n key: \"boneTransform\",\n value: function boneTransform(index, target) {\n var skeleton = this.skeleton;\n var geometry = this.geometry;\n _skinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index);\n _skinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index);\n _basePosition.copy(target).applyMatrix4(this.bindMatrix);\n target.set(0, 0, 0);\n for (var i = 0; i < 4; i++) {\n var weight = _skinWeight.getComponent(i);\n if (weight !== 0) {\n var boneIndex = _skinIndex.getComponent(i);\n _matrix.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]);\n target.addScaledVector(_vector.copy(_basePosition).applyMatrix4(_matrix), weight);\n }\n }\n return target.applyMatrix4(this.bindMatrixInverse);\n } }]);\n\n return SkinnedMesh;\n }(_Mesh2.Mesh);return module.exports;});", "requires": [ "pandav:/src/objects/Mesh.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector4.js" ], "buildLevel": 15, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/SkinnedMesh.js", "fileName": "/src/objects/SkinnedMesh.js" }, "pandav:/src/postprocessing/CopyPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/CopyPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/postprocessing/Pass\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CopyPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Pass2 = require('pandav:/com/three/0.145.0/src/postprocessing/Pass');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var CopyPass = exports.CopyPass = function (_Pass) {\n (0, _inherits2.default)(CopyPass, _Pass);\n var _super = (0, _createSuper2.default)(CopyPass);\n function CopyPass() {\n var _this;\n (0, _classCallCheck2.default)(this, CopyPass);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.material = new _ShaderMaterial.ShaderMaterial({\n uniforms: {\n tDiffuse: {\n value: null } },\n\n\n vertexShader: \"\\n\\n varying vec2 vUv;\\n \\n void main() {\\n \\n vUv = uv;\\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n \\n }\",\n fragmentShader: \"\\n\\n uniform sampler2D tDiffuse;\\n \\n varying vec2 vUv;\\n \\n void main() {\\n \\n gl_FragColor = texture2D( tDiffuse, vUv );\\n \\n }\" });\n\n _this.material_sRGBToLinear = new _ShaderMaterial.ShaderMaterial({\n uniforms: {\n tDiffuse: {\n value: null } },\n\n\n vertexShader: \"\\n\\n varying vec2 vUv;\\n \\n void main() {\\n \\n vUv = uv;\\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n \\n }\",\n fragmentShader: \"\\n\\n uniform float opacity;\\n \\n uniform sampler2D tDiffuse;\\n \\n varying vec2 vUv;\\n \\n void main() {\\n \\n gl_FragColor = texture2D( tDiffuse, vUv );\\n gl_FragColor = sRGBToLinear( gl_FragColor );\\n \\n }\" });\n\n _this.fsQuard = new _Pass2.FullScreenQuad(_this.material);\n return _this;\n }\n (0, _createClass2.default)(CopyPass, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer) {\n this.copy(renderer, readBuffer.texture, this.getOutput(readBuffer, writeBuffer));\n } },\n {\n key: \"copy\",\n value: function copy(renderer, texture, target) {\n var clear = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var sRGBToLinear = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var transparent = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var blending = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : _constants.NormalBlending;\n var preRenderTarget = renderer.getRenderTarget();\n var material = sRGBToLinear ? this.material_sRGBToLinear : this.material;\n material.transparent = transparent;\n material.blending = blending;\n this.fsQuard.material = material;\n material.uniforms.tDiffuse.value = texture;\n renderer.setRenderTarget(target);\n if (clear) {\n renderer.clear();\n }\n this.fsQuard.render(renderer);\n renderer.setRenderTarget(preRenderTarget);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.material.dispose();\n this.fsQuard.dispose();\n this.material_sRGBToLinear.dispose();\n } }]);\n\n return CopyPass;\n }(_Pass2.Pass);return module.exports;});", "requires": [ "pandav:/src/postprocessing/Pass.js", "pandav:/src/constants.js", "pandav:/src/materials/ShaderMaterial.js" ], "buildLevel": 38, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/CopyPass.js", "fileName": "/src/postprocessing/CopyPass.js" }, "pandav:/src/postprocessing/DeferredRenderPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/DeferredRenderPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/objectSpread2\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/postprocessing/Pass\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Vector3\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DeferredRenderPass = void 0;\n Object.defineProperty(exports, \"UniformsLib\", {\n enumerable: true,\n get: function get() {\n return _UniformsLib.UniformsLib;\n } });\n\n var _objectSpread2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/objectSpread2'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Pass2 = require('pandav:/com/three/0.145.0/src/postprocessing/Pass');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n var _UniformsLib = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var CONSTANT_DEFINES = {\n DEFERRED_RENDER_PASS: \"\" };\n\n var DeferredRenderPass = exports.DeferredRenderPass = function (_Pass) {\n (0, _inherits2.default)(DeferredRenderPass, _Pass);\n var _super = (0, _createSuper2.default)(DeferredRenderPass);\n function DeferredRenderPass() {\n var _this;\n (0, _classCallCheck2.default)(this, DeferredRenderPass);\n _this = _super.call(this);\n _this.material = new _ShaderMaterial.ShaderMaterial({\n lights: true,\n isDeferredRenderPassMaterial: true,\n defines: {},\n uniforms: _UniformsUtils.UniformsUtils.merge([UniformsLib.envmap, UniformsLib.lights, {\n tDiffuse: {\n value: null },\n\n tTRMA: {\n value: null },\n\n tNormalDepth: {\n value: null },\n\n tPositionID: {\n value: null },\n\n envMapIntensity: {\n value: 1 },\n\n cameraViewMatrix: {\n value: new _Matrix.Matrix4() },\n\n sceneCameraPosition: {\n value: new _Vector.Vector3() } }]),\n\n\n vertexShader: \"\\n varying vec2 vUv;\\n void main() {\\n vUv = uv;\\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n }\\n \",\n fragmentShader: \"\\n varying vec2 vUv;\\n\\n uniform sampler2D tDiffuse;\\n uniform sampler2D tTRMA;\\n uniform sampler2D tNormalDepth;\\n uniform sampler2D tPositionID;\\n uniform mat4 cameraViewMatrix;\\n uniform vec3 sceneCameraPosition;\\n\\n vec3 vViewPosition;\\n vec4 worldPosition;\\n vec3 normal;\\n\\n #include \\n #include \\n #include \\n #include \\n #include \\n #include \\n #include \\n #include \\n #include \\n\\n void initShadowmap() {\\n //\\u521D\\u59CB\\u9634\\u5F71\\u76F8\\u5173\\u7684\\u53D8\\u91CF\\n vec3 transformedNormal = normal;\\n mat4 viewMatrix = cameraViewMatrix;\\n //\\u501F\\u7528vertex\\u7684\\u4EE3\\u7801\\u7247\\u6BB5\\u6765\\u521D\\u59CB\\u5316\\n #include \\n }\\n\\n void main() {\\n //\\u4E0D\\u652F\\u6301\\u7684\\u5B9A\\u4E49\\uFF1AIOR\\u3001SPECULAR\\u3001USE_CLEARCOAT\\u3001USE_IRIDESCENCE\\u3001USE_SHEEN\\u3001USE_LIGHTMAP\\u3001USE_TRANSMISSION\\u3001NUM_RECT_AREA_LIGHTS\\u3001USE_LIGHTMAP\\u3001USE_EMISSIVEMAP\\n \\n //\\u91C7\\u6837GBuffer\\n vec4 diffuseColor = texture2D( tDiffuse, vUv);\\n vec4 positionID = texture2D( tPositionID, vUv);\\n float id = positionID.w;\\n\\n if( id <= 0.0 ) {\\n gl_FragColor = diffuseColor;\\n return;\\n }\\n\\n vViewPosition = positionID.xyz;\\n normal = texture2D( tNormalDepth, vUv).xyz;\\n vec4 trma = texture2D( tTRMA, vUv);\\n\\n //\\u521D\\u59CB\\u5316\\u4E16\\u754C\\u5750\\u6807\\n vec3 mvPosition = -vViewPosition;\\n worldPosition = inverse( cameraViewMatrix ) * vec4( mvPosition, 1.0 );\\n\\n #if defined( USE_ENVMAP )\\n //\\u521D\\u59CB\\u5316vEnvMapWorldPosition\\n vEnvMapWorldPosition = worldPosition.xyz;\\n #endif\\n\\n //\\u521D\\u59CB\\u5316\\u7C97\\u7CD9\\u5EA6\\u3001\\u91D1\\u5C5E\\u5EA6\\n float metalnessFactor = trma.z, roughnessFactor = trma.y, ambientOcclusion = 1.0 - trma.w; //\\u62B5\\u6D88gbuffer\\u5199\\u5165\\u7684\\u65F6\\u5019\\u76841.0-\\n //\\u521D\\u59CB\\u5316geometryNormal\\n vec3 geometryNormal = normal;\\n //TODO:\\u672A\\u5B9E\\u73B0\\n float reflectivityDecay = 0.0;\\n //\\u5B9A\\u4E49\\u5149\\u7167\\u7ED3\\u679C\\u53D8\\u91CF\\n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n //TODO: \\u81EA\\u53D1\\u5149\\u672A\\u5B9E\\u73B0\\n vec3 totalEmissiveRadiance = vec3( 0.0 );\\n //\\u521D\\u59CB\\u5316\\u9634\\u5F71\\u76F8\\u5173\\u53D8\\u91CF\\n initShadowmap();\\n\\n #include \\n #include \\n #include \\n #include \\n\\n #include \\n\\n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\n vec3 outgoingLight = totalDiffuse + totalSpecular * (1.0 - reflectivityDecay) + totalEmissiveRadiance;\\n\\n gl_FragColor = vec4( outgoingLight, 1.0 );\\n\\n }\\n \" });\n\n _this.fsQuard = new DeferredFullScreenQuad();\n _this.scene = null;\n _this.camera = null;\n _this.envMapIntensity = 1;\n _this.envMapRotateY = 0;\n _this.fsQuard.material = _this.material;\n _this.material.isDeferredRenderPassMaterial = true;\n return _this;\n }\n (0, _createClass2.default)(DeferredRenderPass, [{\n key: \"dispose\",\n value: function dispose() {\n this.material.dispose();\n this.fsQuard.dispose();\n } },\n {\n key: \"setSize\",\n value: function setSize(width, height) {} },\n {\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer) {\n var gBuffer = renderer.renderProcesser.gBuffer;\n if (!gBuffer || !this.scene || !this.camera) {\n return;\n }\n var uniforms = this.material.uniforms;\n var defines = (0, _objectSpread2.default)({}, CONSTANT_DEFINES);\n uniforms.tDiffuse.value = gBuffer.colorBuffer;\n uniforms.tTRMA.value = gBuffer.trmBuffer;\n uniforms.tNormalDepth.value = gBuffer.normalDepthBuffer;\n uniforms.tPositionID.value = gBuffer.positionIDBuffer;\n uniforms.cameraViewMatrix.value = this.camera.matrixWorldInverse;\n uniforms.sceneCameraPosition.value.setFromMatrixPosition(this.camera.matrixWorld);\n if (!isEqual(this.material.defines, defines)) {\n this.material.defines = defines;\n this.material.needsUpdate = true;\n }\n renderer.setRenderTarget(this.getOutput(readBuffer, writeBuffer));\n this.fsQuard.deferredScene = this.scene;\n this.fsQuard.render(renderer);\n } }]);\n\n return DeferredRenderPass;\n }(_Pass2.Pass);\n function isEqual(a, b) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (var i = 0; i < keysA.length; i++) {\n if (a[keysA[i]] !== b[keysA[i]]) {\n return false;\n }\n }\n return true;\n }\n var DeferredFullScreenQuad = function (_FullScreenQuad) {\n (0, _inherits2.default)(DeferredFullScreenQuad, _FullScreenQuad);\n var _super2 = (0, _createSuper2.default)(DeferredFullScreenQuad);\n function DeferredFullScreenQuad() {\n var _this2;\n (0, _classCallCheck2.default)(this, DeferredFullScreenQuad);\n _this2 = _super2.call(this);\n _this2.deferredScene = undefined;\n _this2._mesh.receiveShadow = true;\n return _this2;\n }\n (0, _createClass2.default)(DeferredFullScreenQuad, [{\n key: \"render\",\n value: function render(renderer) {\n renderer.render(this._mesh, this._camera, {\n deferredScene: this.deferredScene });\n\n } }]);\n\n return DeferredFullScreenQuad;\n }(_Pass2.FullScreenQuad);return module.exports;});", "requires": [ "pandav:/src/postprocessing/Pass.js", "pandav:/src/materials/ShaderMaterial.js", "pandav:/src/renderers/shaders/UniformsUtils.js", "pandav:/src/renderers/shaders/UniformsLib.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Vector3.js" ], "buildLevel": 41, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/DeferredRenderPass.js", "fileName": "/src/postprocessing/DeferredRenderPass.js" }, "pandav:/src/postprocessing/MaskPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/MaskPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/postprocessing/Pass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.MaskPass = exports.ClearMaskPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Pass3 = require('pandav:/com/three/0.145.0/src/postprocessing/Pass');\n var MaskPass = exports.MaskPass = function (_Pass) {\n (0, _inherits2.default)(MaskPass, _Pass);\n var _super = (0, _createSuper2.default)(MaskPass);\n function MaskPass(scene, camera) {\n var _this;\n (0, _classCallCheck2.default)(this, MaskPass);\n _this = _super.call(this);\n _this.scene = scene;\n _this.camera = camera;\n _this.clear = true;\n _this.needsSwap = false;\n _this.inverse = false;\n return _this;\n }\n (0, _createClass2.default)(MaskPass, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer) {\n var context = renderer.getContext();\n var state = renderer.state;\n state.buffers.color.setMask(false);\n state.buffers.depth.setMask(false);\n state.buffers.color.setLocked(true);\n state.buffers.depth.setLocked(true);\n var writeValue, clearValue;\n if (this.inverse) {\n writeValue = 0;\n clearValue = 1;\n } else {\n writeValue = 1;\n clearValue = 0;\n }\n state.buffers.stencil.setTest(true);\n state.buffers.stencil.setOp(context.REPLACE, context.REPLACE, context.REPLACE);\n state.buffers.stencil.setFunc(context.ALWAYS, writeValue, 0xffffffff);\n state.buffers.stencil.setClear(clearValue);\n state.buffers.stencil.setLocked(true);\n renderer.setRenderTarget(readBuffer);\n if (this.clear) renderer.clear();\n renderer.render(this.scene, this.camera);\n renderer.setRenderTarget(writeBuffer);\n if (this.clear) renderer.clear();\n renderer.render(this.scene, this.camera);\n state.buffers.color.setLocked(false);\n state.buffers.depth.setLocked(false);\n state.buffers.stencil.setLocked(false);\n state.buffers.stencil.setFunc(context.EQUAL, 1, 0xffffffff);\n state.buffers.stencil.setOp(context.KEEP, context.KEEP, context.KEEP);\n state.buffers.stencil.setLocked(true);\n } }]);\n\n return MaskPass;\n }(_Pass3.Pass);\n var ClearMaskPass = exports.ClearMaskPass = function (_Pass2) {\n (0, _inherits2.default)(ClearMaskPass, _Pass2);\n var _super2 = (0, _createSuper2.default)(ClearMaskPass);\n function ClearMaskPass() {\n var _this2;\n (0, _classCallCheck2.default)(this, ClearMaskPass);\n _this2 = _super2.call(this);\n _this2.needsSwap = false;\n return _this2;\n }\n (0, _createClass2.default)(ClearMaskPass, [{\n key: \"render\",\n value: function render(renderer) {\n renderer.state.buffers.stencil.setLocked(false);\n renderer.state.buffers.stencil.setTest(false);\n } }]);\n\n return ClearMaskPass;\n }(_Pass3.Pass);return module.exports;});", "requires": [ "pandav:/src/postprocessing/Pass.js" ], "buildLevel": 44, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/MaskPass.js", "fileName": "/src/postprocessing/MaskPass.js" }, "pandav:/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ALPHAMAP\\n\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 16, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js" }, "pandav:/src/postprocessing/ReadSceneRenderBufferPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/ReadSceneRenderBufferPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/postprocessing/Pass\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ReadSceneRenderBufferPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Pass2 = require('pandav:/com/three/0.145.0/src/postprocessing/Pass');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var ReadSceneRenderBufferPass = exports.ReadSceneRenderBufferPass = function (_Pass) {\n (0, _inherits2.default)(ReadSceneRenderBufferPass, _Pass);\n var _super = (0, _createSuper2.default)(ReadSceneRenderBufferPass);\n function ReadSceneRenderBufferPass() {\n var _this;\n (0, _classCallCheck2.default)(this, ReadSceneRenderBufferPass);\n _this = _super.call(this);\n _this.material = undefined;\n _this.fsQuad = undefined;\n _this.material = new _ShaderMaterial.ShaderMaterial({\n uniforms: {\n tDiffuse: {\n value: null } },\n\n\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n depthTest: false,\n depthWrite: false });\n\n _this.needsSwap = false;\n _this.fsQuad = new _Pass2.FullScreenQuad(_this.material);\n return _this;\n }\n (0, _createClass2.default)(ReadSceneRenderBufferPass, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer, deltaTime, maskActive) {\n if (!renderer.renderProcesser.gBuffer) {\n return;\n }\n this.material.uniforms.tDiffuse.value = renderer.renderProcesser.gBuffer.colorBuffer;\n renderer.setRenderTarget(this.getOutput(readBuffer, writeBuffer));\n this.fsQuad.render(renderer);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.material.dispose();\n } }]);\n\n return ReadSceneRenderBufferPass;\n }(_Pass2.Pass);\n var vertexShader = \"\\n\\nvarying vec2 vUv;\\n\\nvoid main() {\\n\\n vUv = uv;\\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n}\";\n var fragmentShader = \"\\nuniform sampler2D tDiffuse;\\nvarying vec2 vUv;\\n\\nvoid main() {\\n\\n gl_FragColor = texture2D( tDiffuse, vUv );\\n\\n #ifdef SRGB_SAPCE\\n gl_FragColor = sRGBToLinear(gl_FragColor);\\n #endif\\n\\n}\";return module.exports;});", "requires": [ "pandav:/src/postprocessing/Pass.js", "pandav:/src/materials/ShaderMaterial.js" ], "buildLevel": 39, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/ReadSceneRenderBufferPass.js", "fileName": "/src/postprocessing/ReadSceneRenderBufferPass.js" }, "pandav:/src/objects/Mesh.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/objects/Mesh\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Sphere\", \"pandav:/com/three/0.145.0/src/math/Ray\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/math/Triangle\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Mesh = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Sphere = require('pandav:/com/three/0.145.0/src/math/Sphere');\n var _Ray = require('pandav:/com/three/0.145.0/src/math/Ray');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Triangle = require('pandav:/com/three/0.145.0/src/math/Triangle');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _MeshBasicMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshBasicMaterial');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _inverseMatrix = new _Matrix.Matrix4();\n var _ray = new _Ray.Ray();\n var _sphere = new _Sphere.Sphere();\n var _vA = new _Vector.Vector3();\n var _vB = new _Vector.Vector3();\n var _vC = new _Vector.Vector3();\n var _tempA = new _Vector.Vector3();\n var _tempB = new _Vector.Vector3();\n var _tempC = new _Vector.Vector3();\n var _morphA = new _Vector.Vector3();\n var _morphB = new _Vector.Vector3();\n var _morphC = new _Vector.Vector3();\n var _uvA = new _Vector2.Vector2();\n var _uvB = new _Vector2.Vector2();\n var _uvC = new _Vector2.Vector2();\n var _intersectionPoint = new _Vector.Vector3();\n var _intersectionPointWorld = new _Vector.Vector3();\n var Mesh = exports.Mesh = function (_Object3D) {\n (0, _inherits2.default)(Mesh, _Object3D);\n var _super = (0, _createSuper2.default)(Mesh);\n function Mesh() {\n var _this;\n var geometry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _BufferGeometry.BufferGeometry();\n var material = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _MeshBasicMaterial.MeshBasicMaterial();\n (0, _classCallCheck2.default)(this, Mesh);\n _this = _super.call(this);\n _this.isMesh = true;\n _this.type = 'Mesh';\n _this.geometry = geometry;\n _this.material = material;\n _this.updateMorphTargets();\n return _this;\n }\n (0, _createClass2.default)(Mesh, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Mesh.prototype), \"copy\", this).call(this, source, recursive);\n if (source.morphTargetInfluences !== undefined) {\n this.morphTargetInfluences = source.morphTargetInfluences.slice();\n }\n if (source.morphTargetDictionary !== undefined) {\n this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary);\n }\n this.material = source.material;\n this.geometry = source.geometry;\n return this;\n } },\n {\n key: \"updateMorphTargets\",\n value: function updateMorphTargets() {\n var geometry = this.geometry;\n var morphAttributes = geometry.morphAttributes;\n var keys = Object.keys(morphAttributes);\n if (keys.length > 0) {\n var morphAttribute = morphAttributes[keys[0]];\n if (morphAttribute !== undefined) {\n this.morphTargetInfluences = [];\n this.morphTargetDictionary = {};\n for (var m = 0, ml = morphAttribute.length; m < ml; m++) {\n var name = morphAttribute[m].name || String(m);\n this.morphTargetInfluences.push(0);\n this.morphTargetDictionary[name] = m;\n }\n }\n }\n } },\n {\n key: \"raycast\",\n value: function raycast(raycaster, intersects) {\n var geometry = this.geometry;\n var material = this.material;\n var matrixWorld = this.matrixWorld;\n if (material === undefined) return;\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n _sphere.copy(geometry.boundingSphere);\n _sphere.applyMatrix4(matrixWorld);\n if (raycaster.ray.intersectsSphere(_sphere) === false) return;\n _inverseMatrix.copy(matrixWorld).invert();\n _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);\n if (geometry.boundingBox !== null) {\n if (_ray.intersectsBox(geometry.boundingBox) === false) return;\n }\n var intersection;\n var index = geometry.index;\n var position = geometry.attributes.position;\n var morphPosition = geometry.morphAttributes.position;\n var morphTargetsRelative = geometry.morphTargetsRelative;\n var uv = geometry.attributes.uv;\n var uv2 = geometry.attributes.uv2;\n var groups = geometry.groups;\n var drawRange = geometry.drawRange;\n if (index !== null) {\n if (Array.isArray(material)) {\n for (var i = 0, il = groups.length; i < il; i++) {\n var group = groups[i];\n var groupMaterial = material[group.materialIndex];\n var start = Math.max(group.start, drawRange.start);\n var end = Math.min(index.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\n for (var j = start, jl = end; j < jl; j += 3) {\n var a = index.getX(j);\n var b = index.getX(j + 1);\n var c = index.getX(j + 2);\n intersection = checkBufferGeometryIntersection(this, groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c);\n if (intersection) {\n intersection.faceIndex = Math.floor(j / 3);\n intersection.face.materialIndex = group.materialIndex;\n intersects.push(intersection);\n }\n }\n }\n } else {\n var _start = Math.max(0, drawRange.start);\n var _end = Math.min(index.count, drawRange.start + drawRange.count);\n for (var _i = _start, _il = _end; _i < _il; _i += 3) {\n var _a = index.getX(_i);\n var _b = index.getX(_i + 1);\n var _c = index.getX(_i + 2);\n intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a, _b, _c);\n if (intersection) {\n intersection.faceIndex = Math.floor(_i / 3);\n intersects.push(intersection);\n }\n }\n }\n } else if (position !== undefined) {\n if (Array.isArray(material)) {\n for (var _i2 = 0, _il2 = groups.length; _i2 < _il2; _i2++) {\n var _group = groups[_i2];\n var _groupMaterial = material[_group.materialIndex];\n var _start2 = Math.max(_group.start, drawRange.start);\n var _end2 = Math.min(position.count, Math.min(_group.start + _group.count, drawRange.start + drawRange.count));\n for (var _j = _start2, _jl = _end2; _j < _jl; _j += 3) {\n var _a2 = _j;\n var _b2 = _j + 1;\n var _c2 = _j + 2;\n intersection = checkBufferGeometryIntersection(this, _groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a2, _b2, _c2);\n if (intersection) {\n intersection.faceIndex = Math.floor(_j / 3);\n intersection.face.materialIndex = _group.materialIndex;\n intersects.push(intersection);\n }\n }\n }\n } else {\n var _start3 = Math.max(0, drawRange.start);\n var _end3 = Math.min(position.count, drawRange.start + drawRange.count);\n for (var _i3 = _start3, _il3 = _end3; _i3 < _il3; _i3 += 3) {\n var _a3 = _i3;\n var _b3 = _i3 + 1;\n var _c3 = _i3 + 2;\n intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a3, _b3, _c3);\n if (intersection) {\n intersection.faceIndex = Math.floor(_i3 / 3);\n intersects.push(intersection);\n }\n }\n }\n }\n } }]);\n\n return Mesh;\n }(_Object3D2.Object3D);\n function checkIntersection(object, material, raycaster, ray, pA, pB, pC, point) {\n var intersect;\n if (material.side === _constants.BackSide) {\n intersect = ray.intersectTriangle(pC, pB, pA, true, point);\n } else {\n intersect = ray.intersectTriangle(pA, pB, pC, material.side !== _constants.DoubleSide, point);\n }\n if (intersect === null) return null;\n _intersectionPointWorld.copy(point);\n _intersectionPointWorld.applyMatrix4(object.matrixWorld);\n var distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld);\n if (distance < raycaster.near || distance > raycaster.far) return null;\n return {\n distance: distance,\n point: _intersectionPointWorld.clone(),\n object: object };\n\n }\n function checkBufferGeometryIntersection(object, material, raycaster, ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c) {\n _vA.fromBufferAttribute(position, a);\n _vB.fromBufferAttribute(position, b);\n _vC.fromBufferAttribute(position, c);\n var morphInfluences = object.morphTargetInfluences;\n if (morphPosition && morphInfluences) {\n _morphA.set(0, 0, 0);\n _morphB.set(0, 0, 0);\n _morphC.set(0, 0, 0);\n for (var i = 0, il = morphPosition.length; i < il; i++) {\n var influence = morphInfluences[i];\n var morphAttribute = morphPosition[i];\n if (influence === 0) continue;\n _tempA.fromBufferAttribute(morphAttribute, a);\n _tempB.fromBufferAttribute(morphAttribute, b);\n _tempC.fromBufferAttribute(morphAttribute, c);\n if (morphTargetsRelative) {\n _morphA.addScaledVector(_tempA, influence);\n _morphB.addScaledVector(_tempB, influence);\n _morphC.addScaledVector(_tempC, influence);\n } else {\n _morphA.addScaledVector(_tempA.sub(_vA), influence);\n _morphB.addScaledVector(_tempB.sub(_vB), influence);\n _morphC.addScaledVector(_tempC.sub(_vC), influence);\n }\n }\n _vA.add(_morphA);\n _vB.add(_morphB);\n _vC.add(_morphC);\n }\n if (object.isSkinnedMesh) {\n object.boneTransform(a, _vA);\n object.boneTransform(b, _vB);\n object.boneTransform(c, _vC);\n }\n var intersection = checkIntersection(object, material, raycaster, ray, _vA, _vB, _vC, _intersectionPoint);\n if (intersection) {\n if (uv) {\n _uvA.fromBufferAttribute(uv, a);\n _uvB.fromBufferAttribute(uv, b);\n _uvC.fromBufferAttribute(uv, c);\n intersection.uv = _Triangle.Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new _Vector2.Vector2());\n }\n if (uv2) {\n _uvA.fromBufferAttribute(uv2, a);\n _uvB.fromBufferAttribute(uv2, b);\n _uvC.fromBufferAttribute(uv2, c);\n intersection.uv2 = _Triangle.Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new _Vector2.Vector2());\n }\n var face = {\n a: a,\n b: b,\n c: c,\n normal: new _Vector.Vector3(),\n materialIndex: 0 };\n\n _Triangle.Triangle.getNormal(_vA, _vB, _vC, face.normal);\n intersection.face = face;\n }\n return intersection;\n }return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Sphere.js", "pandav:/src/math/Ray.js", "pandav:/src/math/Matrix4.js", "pandav:/src/core/Object3D.js", "pandav:/src/math/Triangle.js", "pandav:/src/constants.js", "pandav:/src/materials/MeshBasicMaterial.js", "pandav:/src/core/BufferGeometry.js" ], "buildLevel": 8, "outputDir": "/com/three/0.145.0/src/objects", "outputPath": "/com/three/0.145.0/src/objects/Mesh.js", "fileName": "/src/objects/Mesh.js" }, "pandav:/src/postprocessing/Pass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/Pass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/cameras/OrthographicCamera\", \"pandav:/com/three/0.145.0/src/objects/Mesh\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Pass = exports.FullScreenQuad = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _OrthographicCamera = require('pandav:/com/three/0.145.0/src/cameras/OrthographicCamera');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var Pass = exports.Pass = function () {\n function Pass() {\n (0, _classCallCheck2.default)(this, Pass);\n this.enabled = true;\n this.needsSwap = true;\n this.clear = false;\n this.renderToScreen = false;\n this.tag = 0;\n this.directlyInvoke = false;\n this.screenRenderTarget = null;\n }\n (0, _createClass2.default)(Pass, [{\n key: \"setSize\",\n value: function setSize() {} },\n {\n key: \"render\",\n value: function render() {\n console.error('THREE.Pass: .render() must be implemented in derived pass.');\n } },\n {\n key: \"getOutput\",\n value: function getOutput(readBuffer, writeBuffer) {\n if (this.renderToScreen) {\n return this.screenRenderTarget;\n } else if (this.directlyInvoke) {\n return writeBuffer;\n } else if (this.needsSwap) {\n return writeBuffer;\n } else {\n return readBuffer;\n }\n } }]);\n\n return Pass;\n }();\n var _camera = new _OrthographicCamera.OrthographicCamera(-1, 1, 1, -1, 0, 1);\n var FullScreenQuad = exports.FullScreenQuad = function () {\n function FullScreenQuad(material) {\n (0, _classCallCheck2.default)(this, FullScreenQuad);\n var _geometry = new _BufferGeometry.BufferGeometry();\n _geometry.setAttribute('position', new _BufferAttribute.Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3));\n _geometry.setAttribute('uv', new _BufferAttribute.Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));\n this._mesh = new _Mesh.Mesh(_geometry, material);\n this._camera = _camera;\n }\n (0, _createClass2.default)(FullScreenQuad, [{\n key: \"dispose\",\n value: function dispose() {\n this._mesh.geometry.dispose();\n } },\n {\n key: \"render\",\n value: function render(renderer) {\n renderer.render(this._mesh, this._camera);\n } },\n {\n key: \"material\",\n get: function get() {\n return this._mesh.material;\n },\n set: function set(value) {\n this._mesh.material = value;\n } }]);\n\n return FullScreenQuad;\n }();return module.exports;});", "requires": [ "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/cameras/OrthographicCamera.js", "pandav:/src/objects/Mesh.js" ], "buildLevel": 2, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/Pass.js", "fileName": "/src/postprocessing/Pass.js" }, "pandav:/src/postprocessing/TAAPass.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/TAAPass\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/postprocessing/Pass\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.TAAPass = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Pass2 = require('pandav:/com/three/0.145.0/src/postprocessing/Pass');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _WebGLRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var TAAPass = exports.TAAPass = function (_Pass) {\n (0, _inherits2.default)(TAAPass, _Pass);\n var _super = (0, _createSuper2.default)(TAAPass);\n function TAAPass(resolution) {\n var _this;\n (0, _classCallCheck2.default)(this, TAAPass);\n _this = _super.call(this);\n _this.lastFrameRT = void 0;\n _this.accumulateRT = void 0;\n _this.accumulateMaterial = void 0;\n _this.fsQuad = void 0;\n _this.camera = null;\n _this.lastViewMatrix = new _Matrix.Matrix4();\n _this.mixAlpha = 0.04;\n _this.varianceClipGamma = 1;\n _this.lastFrameRT = new _WebGLRenderTarget.WebGLRenderTarget(resolution.x, resolution.y);\n _this.accumulateRT = new _WebGLRenderTarget.WebGLRenderTarget(resolution.x, resolution.y);\n _this.fsQuad = new _Pass2.FullScreenQuad();\n _this.accumulateMaterial = new _ShaderMaterial.ShaderMaterial({\n uniforms: {\n tDiffuse: {\n value: null },\n\n lastFrameRT: {\n value: null },\n\n resolution: {\n value: resolution },\n\n sceneProjectionMatrix: {\n value: new _Matrix.Matrix4() },\n\n curFrameViewMatrixInverse: {\n value: new _Matrix.Matrix4() },\n\n lastFrameViewMatrix: {\n value: new _Matrix.Matrix4() },\n\n tCurFrameDepth: {\n value: null },\n\n mixAlpha: {\n value: 0.04 },\n\n varianceClipGamma: {\n value: 1 } },\n\n\n vertexShader: vertexShader,\n fragmentShader: fragmentShader });\n\n return _this;\n }\n (0, _createClass2.default)(TAAPass, [{\n key: \"render\",\n value: function render(renderer, writeBuffer, readBuffer, deltaTime, maskActive) {\n var gBuffer = renderer.renderProcesser.gBuffer;\n if (!gBuffer || !this.camera) {\n return;\n }\n var uniforms = this.accumulateMaterial.uniforms;\n uniforms.tDiffuse.value = readBuffer.texture;\n uniforms.lastFrameRT.value = this.lastFrameRT.texture;\n uniforms.sceneProjectionMatrix.value.copy(this.camera.projectionMatrix);\n uniforms.curFrameViewMatrixInverse.value.copy(this.camera.matrixWorld);\n uniforms.lastFrameViewMatrix.value = this.lastViewMatrix;\n uniforms.tCurFrameDepth.value = gBuffer.normalDepthBuffer;\n uniforms.mixAlpha.value = this.mixAlpha;\n uniforms.varianceClipGamma.value = this.varianceClipGamma;\n renderer.setRenderTarget(this.accumulateRT);\n renderer.clear();\n this.fsQuad.material = this.accumulateMaterial;\n this.fsQuad.render(renderer);\n renderer.copyTextureToRenderTarget(this.accumulateRT.texture, this.getOutput(readBuffer, writeBuffer));\n var gl = renderer.getContext();\n renderer.blitRenderTarget(this.accumulateRT, this.lastFrameRT, gl.COLOR_BUFFER_BIT, gl.LINEAR);\n this.lastViewMatrix.copy(this.camera.matrixWorldInverse);\n } },\n {\n key: \"setSize\",\n value: function setSize(width, height) {\n this.accumulateRT.setSize(width, height);\n this.accumulateMaterial.uniforms.resolution.value.set(width, height);\n this.lastFrameRT.setSize(width, height);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.accumulateRT.dispose();\n this.lastFrameRT.dispose();\n this.accumulateMaterial.dispose();\n this.fsQuad.dispose();\n } }]);\n\n return TAAPass;\n }(_Pass2.Pass);\n var vertexShader = \"\\n\\nvarying vec2 vUv;\\n\\nvoid main() {\\n\\n vUv = uv;\\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n}\";\n var fragmentShader = \"\\n//\\u5F53\\u524D\\u6700\\u65B0\\u6E32\\u67D3\\u51FA\\u6765\\u7684\\u989C\\u8272 \\u65E0TAA\\u6DF7\\u5408\\nuniform sampler2D tDiffuse;\\n//\\u4E0A\\u4E00\\u5E27\\u7684\\u989C\\u8272 \\u6DF7\\u5408\\u4E86TAA\\u7684\\u7ED3\\u679C\\nuniform sampler2D lastFrameRT;\\n//\\u6E32\\u67D3\\u5206\\u8FA8\\u7387\\nuniform vec2 resolution;\\n//\\u573A\\u666F\\u4E2D\\u6295\\u5F71\\u77E9\\u9635 \\u5047\\u8BBE\\u5176\\u4E0D\\u53D8\\nuniform mat4 sceneProjectionMatrix;\\n//\\u5F53\\u524D\\u5E27\\u7684\\u89C6\\u56FE\\u77E9\\u9635\\nuniform mat4 curFrameViewMatrixInverse;\\n//\\u4E0A\\u4E00\\u5E27\\u7684\\u89C6\\u56FE\\u77E9\\u9635\\nuniform mat4 lastFrameViewMatrix;\\n//\\u5F53\\u524D\\u5E27\\u7684\\u6DF1\\u5EA6\\u7F13\\u5B58\\nuniform sampler2D tCurFrameDepth;\\nuniform float varianceClipGamma;\\nuniform float mixAlpha;\\n\\nvarying vec2 vUv;\\n\\n//RBG\\u4E0EYCoCg\\u4E92\\u76F8\\u8F6C\\u6362\\u7684\\u77E9\\u9635\\nconst mat3 RGBToYCoCgMatrix = mat3(0.25, 0.5, -0.25, 0.5, 0.0, 0.5, 0.25, -0.5, -0.25);\\nconst mat3 YCoCgToRGBMatrix = mat3(1.0, 1.0, 1.0, 1.0, 0.0, -1.0, -1.0, 1.0, -1.0);\\n\\n//\\u6839\\u636E\\u5C4F\\u5E55UV\\u5750\\u6807\\u548C\\u6DF1\\u5EA6\\u503C\\u53CD\\u7B97\\u89C6\\u56FE\\u5750\\u6807\\nvec4 getWorldPosition( const in vec2 screenUv, const in float depth, const in mat4 projectionMatrixInverse, const in mat4 viewMatrixInverse ) {\\n\\tvec4 ndc = vec4( screenUv * 2.0 - 1.0, depth * 2.0 - 1.0, 1.0);\\n\\tndc = projectionMatrixInverse * ndc;\\n\\tvec3 view = ndc.xyz / ndc.w;\\n return viewMatrixInverse * vec4( view, 1.0 );\\n}\\n\\nvec4 rgbToYCoCg( const in vec4 rgb ) {\\n return vec4( RGBToYCoCgMatrix * rgb.rgb, rgb.a );\\n}\\n\\nvec4 YCoCgToRGB( const in vec4 YCoCg ) {\\n return vec4( YCoCgToRGBMatrix * YCoCg.rgb, YCoCg.a );\\n}\\n\\n//\\u82F1\\u4F1F\\u8FBE\\u7684Variance Clip\\nvec4 clampLastFrame( const in vec4 curFrame, const in vec4 lastFrame ) {\\n vec3 m1 = vec3(0.0), m2 = vec3(0.0);\\n\\n // \\u53D6\\u5F97YCoCg\\u8272\\u5F69\\u7A7A\\u95F4\\u4E0B\\uFF0CClip\\u7684\\u8303\\u56F4\\n vec2 perPixel = 1.0 / resolution;\\n for ( int i = -1; i <=1 ; i++ ) {\\n for ( int j = -1; j <= 1; j++ ) {\\n vec4 c = rgbToYCoCg( texture2D( tDiffuse, vUv + vec2( i, j ) * perPixel ) );\\n m1 += c.rgb;\\n m2 += c.rgb * c.rgb;\\n }\\n }\\n\\n // \\u9700\\u8981 Clip\\u5904\\u7406\\u7684\\u5386\\u53F2\\u6570\\u636E\\n vec4 lastFrameYCoCg = rgbToYCoCg( lastFrame );\\n\\n // Variance clip\\n const float N = 9.0;\\n // const float varianceClipGamma = 2.0f;\\n vec3 mu = m1 / N;\\n vec3 sigma = sqrt(abs(m2 / N - mu * mu));\\n vec3 aabbMin = mu - varianceClipGamma * sigma;\\n vec3 aabbMax = mu + varianceClipGamma * sigma;\\n\\n // clip to center\\n vec3 p_clip = 0.5 * (aabbMax + aabbMin);\\n vec3 e_clip = 0.5 * (aabbMax - aabbMin);\\n\\n vec3 v_clip = lastFrameYCoCg.rgb - p_clip;\\n vec3 v_unit = v_clip.xyz / e_clip;\\n vec3 a_unit = abs(v_unit);\\n float ma_unit = max(a_unit.x, max(a_unit.y, a_unit.z));\\n\\n vec3 resultYCoCg = ma_unit > 1.0 ? p_clip + v_clip / ma_unit : lastFrameYCoCg.rgb;\\n float resultAlpha = lastFrame.a; //\\u672A\\u4FEE\\u6B63alpha\\n \\n //\\u8FD8\\u539F\\u5230RGB\\u8272\\u5F69\\u7A7A\\u95F4\\uFF0C\\u5F97\\u5230\\u6700\\u7EC8\\u7ED3\\u679C\\n return YCoCgToRGB( vec4( resultYCoCg, resultAlpha ) );\\n}\\n\\n//\\u7B80\\u5355\\u7684clip\\n// vec4 clampLastFrame2( const in vec4 curFrame, const in vec4 lastFrame ) {\\n// vec4 maxColor, minColor;\\n// maxColor = minColor = curFrame;\\n\\n// // \\u53D6\\u5F97YCoCg\\u8272\\u5F69\\u7A7A\\u95F4\\u4E0B\\uFF0CClip\\u7684\\u8303\\u56F4\\n// vec2 perPixel = 1.0 / resolution;\\n// for ( int i = -1; i <= 1; i++ ) {\\n// for ( int j = -1; j <= 1; j++ ) {\\n// vec4 c = texture2D( tDiffuse, vUv + vec2( i, j ) * perPixel );\\n// minColor.x = min(minColor.x, c.x);\\n// minColor.y = min(minColor.y, c.y);\\n// minColor.z = min(minColor.z, c.z);\\n\\n// maxColor.x = max(maxColor.x, c.x);\\n// maxColor.y = max(maxColor.y, c.y);\\n// maxColor.z = max(maxColor.z, c.z);\\n// }\\n// }\\n\\n// // \\u9700\\u8981 Clip\\u5904\\u7406\\u7684\\u5386\\u53F2\\u6570\\u636E\\n// vec4 lastFrameYCoCg = lastFrame;\\n\\n// // \\u7B80\\u5355\\u5730\\u8FDB\\u884CClmap\\n// vec4 resultYCoCg = clamp( lastFrameYCoCg, minColor, maxColor );\\n\\n// //\\u8FD8\\u539F\\u5230RGB\\u8272\\u5F69\\u7A7A\\u95F4\\uFF0C\\u5F97\\u5230\\u6700\\u7EC8\\u7ED3\\u679C\\n// return resultYCoCg;\\n// }\\n\\n//clamp\\n// vec4 clampLastFrame3( const in vec4 curFrame, const in vec4 lastFrame ) {\\n// vec4 maxColor, minColor;\\n// maxColor = minColor = rgbToYCoCg( curFrame );\\n\\n// // \\u53D6\\u5F97YCoCg\\u8272\\u5F69\\u7A7A\\u95F4\\u4E0B\\uFF0CClip\\u7684\\u8303\\u56F4\\n// vec2 perPixel = 1.0 / resolution;\\n// for ( int i = -1; i <= 1; i++ ) {\\n// for ( int j = -1; j <= 1; j++ ) {\\n// vec4 c = rgbToYCoCg( texture2D( tDiffuse, vUv + vec2( i, j ) * perPixel ) );\\n// minColor = min(minColor, c);\\n// maxColor = max(maxColor, c);\\n// }\\n// }\\n\\n// vec4 lastFrameYCoCg = rgbToYCoCg( lastFrame );\\n\\n// vec3 p_clip = 0.5 * (maxColor.rgb + minColor.rgb);\\n// vec3 e_clip = 0.5 * (maxColor.rgb - minColor.rgb);\\n\\n// vec3 v_clip = lastFrameYCoCg.rgb - p_clip;\\n// vec3 v_unit = v_clip / e_clip;\\n\\n// vec3 a_unit = abs(v_unit);\\n// float ma_unit = max(a_unit.x, max(a_unit.y, a_unit.z));\\n\\n// vec4 resultYCoCg;\\n// if (ma_unit > 10.0)\\n// resultYCoCg.rgb = p_clip + v_clip / ma_unit;\\n// else \\n// resultYCoCg.rgb = lastFrameYCoCg.rgb;\\n\\n// // resultYCoCg.a = clamp(lastFrameYCoCg.a, minColor.a, maxColor.a);\\n// resultYCoCg.a = 1.0;\\n\\n// return YCoCgToRGB( resultYCoCg );\\n// }\\n\\n// float HistoryClip(vec3 History, vec3 Filtered, vec3 NeighborMin, vec3 NeighborMax) {\\n// vec3 BoxMin = NeighborMin;\\n// vec3 BoxMax = NeighborMax;\\n// //vec3 BoxMin = min( Filtered, NeighborMin );\\n// //vec3 BoxMax = max( Filtered, NeighborMax );\\n\\n// vec3 RayOrigin = History;\\n// vec3 RayDir = Filtered - History;\\n// RayDir.x = abs( RayDir.x ) < (1.0/65536.0) ? (1.0/65536.0) : RayDir.x; //\\u53EF\\u80FD\\u662F32\\u6D6E\\u70B9\\u6570\\u7684\\u4E0A\\u9650\\n// RayDir.y = abs( RayDir.y ) < (1.0/65536.0) ? (1.0/65536.0) : RayDir.y;\\n// RayDir.z = abs( RayDir.z ) < (1.0/65536.0) ? (1.0/65536.0) : RayDir.z;\\n// vec3 InvRayDir = 1.0 / RayDir;\\n\\n// vec3 MinIntersect = (BoxMin - RayOrigin) * InvRayDir;\\n// vec3 MaxIntersect = (BoxMax - RayOrigin) * InvRayDir;\\n// vec3 EnterIntersect = min( MinIntersect, MaxIntersect );\\n// return max( max(EnterIntersect.x, EnterIntersect.y), EnterIntersect.z );\\n// }\\n\\n// vec4 ClampHistory(vec4 HistoryColor, vec4 NeighborMin, vec4 NeighborMax) {\\n// // Clip history, this uses color AABB intersection for tighter fit.\\n// vec4 TargetColor = 0.5 * ( NeighborMin + NeighborMax );\\n// // vec4 TargetColor = IntermediaryResult.FilteredColor;\\n\\n// float ClipBlend = HistoryClip( HistoryColor.rgb, TargetColor.rgb, NeighborMin.rgb, NeighborMax.rgb );\\n\\n// ClipBlend = clamp( ClipBlend, 0.0, 1.0 );\\n// HistoryColor.a = clamp( HistoryColor.a, NeighborMin.a, NeighborMax.a );\\n\\n// HistoryColor = mix( HistoryColor, TargetColor, ClipBlend );\\n\\n// return HistoryColor;\\n// }\\n\\n// vec4 clampLastFrame4( const in vec4 curFrame, const in vec4 lastFrame ) {\\n// vec4 maxColor, minColor;\\n// maxColor = minColor = rgbToYCoCg( curFrame );\\n\\n// // \\u53D6\\u5F97YCoCg\\u8272\\u5F69\\u7A7A\\u95F4\\u4E0B\\uFF0CClip\\u7684\\u8303\\u56F4\\n// vec2 perPixel = 1.0 / resolution;\\n// for ( int i = -1; i <= 1; i++ ) {\\n// for ( int j = -1; j <= 1; j++ ) {\\n// vec4 c = rgbToYCoCg( texture2D( tDiffuse, vUv + vec2( i, j ) * perPixel ) );\\n// minColor = min(minColor, c);\\n// maxColor = max(maxColor, c);\\n// }\\n// }\\n\\n// vec4 lastFrameYCoCg = rgbToYCoCg( lastFrame );\\n\\n// return YCoCgToRGB( ClampHistory(lastFrameYCoCg, minColor, maxColor) );\\n// }\\n\\nfloat luma( const in vec3 color ) {\\n return dot( color, vec3( 0.299, 0.587, 0.114 ) );\\n}\\n\\nvec3 simpleToneMapping( vec3 color ){\\n return color / ( 1.0 + luma(color) );\\n}\\n\\nvec3 simpleToneMappingInverse( vec3 color ){\\n return color / ( 1.0 - luma(color) );\\n}\\n\\nvoid main() {\\n //\\u83B7\\u53D6\\u5F53\\u524D\\u5E27\\u7684\\u6DF1\\u5EA6\\n float curFrameDepth = texture2D( tCurFrameDepth, vUv ).w;\\n //\\u53CD\\u7B97\\u51FA\\u4E16\\u754C\\u5750\\u6807\\n vec4 worldPos = getWorldPosition( vUv, curFrameDepth, inverse( sceneProjectionMatrix ), curFrameViewMatrixInverse );\\n\\n //\\u4E0A\\u4E00\\u5E27\\u7684clip\\u5750\\u6807\\n vec4 lastClip = sceneProjectionMatrix * lastFrameViewMatrix * worldPos;\\n //\\u4E0A\\u4E00\\u5E27\\u7684NDC\\u5750\\u6807\\n vec3 lastNDC = lastClip.xyz / lastClip.w;\\n //\\u4E0A\\u4E00\\u5E27\\u7684\\u5C4F\\u5E55UV\\u5750\\u6807\\n vec2 lastScreenUv = lastNDC.xy * 0.5 + 0.5;\\n\\n //\\u91C7\\u6837\\u4E0A\\u4E00\\u5E27\\n vec4 last = texture2D( lastFrameRT, lastScreenUv );\\n //\\u91C7\\u6837\\u5F53\\u524D\\u5E27\\n vec4 cur = texture2D( tDiffuse, vUv );\\n \\n //\\u4FEE\\u6B63\\u5386\\u53F2\\u5E27\\uFF1A\\u4F7F\\u7528\\u82F1\\u4F1F\\u8FBE\\u7684\\u65B9\\u5DEE\\u7B97\\u6CD5\\n last = clampLastFrame( cur, last );\\n\\n //\\u5148\\u8FDB\\u884C\\u7B80\\u5355\\u7684\\u8272\\u8C03\\u6620\\u5C04\\uFF0C\\u4EE5\\u6D88\\u9664\\u4E00\\u4E9B\\u95EA\\u70C1\\n cur.rgb = simpleToneMapping(cur.rgb);\\n last.rgb = simpleToneMapping(last.rgb);\\n \\n //\\u7528UE\\u7684luma\\u6DF7\\u5408\\u516C\\u5F0F\\n // const float mixAlpha = 0.04;\\n float w0 = ( 1.0 - mixAlpha ) * luma( last.rgb );\\n float w1 = mixAlpha * luma( cur.rgb );\\n gl_FragColor = ( last * w0 + cur * w1 ) / ( w0 + w1 );\\n // gl_FragColor = cur;\\n\\n //\\u8FD8\\u539F\\u8272\\u8C03\\u6620\\u5C04\\n gl_FragColor.rgb = simpleToneMappingInverse(gl_FragColor.rgb);\\n}\";return module.exports;});", "requires": [ "pandav:/src/postprocessing/Pass.js", "pandav:/src/math/Matrix4.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/materials/ShaderMaterial.js" ], "buildLevel": 43, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/TAAPass.js", "fileName": "/src/postprocessing/TAAPass.js" }, "pandav:/src/postprocessing/EffectComposer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/postprocessing/EffectComposer\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/core/Clock\", \"pandav:/com/three/0.145.0/src/postprocessing/MaskPass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.EffectComposer = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _WebGLRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _Clock = require('pandav:/com/three/0.145.0/src/core/Clock');\n var _MaskPass = require('pandav:/com/three/0.145.0/src/postprocessing/MaskPass');\n var EffectComposer = exports.EffectComposer = function () {\n function EffectComposer(renderer, renderTarget, encoding, renderTarget2) {\n (0, _classCallCheck2.default)(this, EffectComposer);\n this.renderer = renderer;\n this.screenRenderTarget = null;\n if (renderTarget === undefined) {\n var size = renderer.getSize(new _Vector.Vector2());\n this._pixelRatio = renderer.getPixelRatio();\n this._width = size.width;\n this._height = size.height;\n renderTarget = new _WebGLRenderTarget.WebGLRenderTarget(this._width * this._pixelRatio, this._height * this._pixelRatio, {\n encoding: encoding });\n\n renderTarget.texture.name = 'EffectComposer.rt1';\n this.createdRenderTarget = true;\n } else {\n this._pixelRatio = 1;\n this._width = renderTarget.width;\n this._height = renderTarget.height;\n }\n this.renderTarget1 = renderTarget;\n if (renderTarget2 === undefined) {\n this.renderTarget2 = renderTarget.clone();\n } else {\n this.renderTarget2 = renderTarget2;\n }\n this.renderTarget2.texture.name = 'EffectComposer.rt2';\n this.writeBuffer = this.renderTarget1;\n this.readBuffer = this.renderTarget2;\n this.renderToScreen = true;\n this.passes = [];\n this.clock = new _Clock.Clock();\n }\n (0, _createClass2.default)(EffectComposer, [{\n key: \"swapBuffers\",\n value: function swapBuffers() {\n var tmp = this.readBuffer;\n this.readBuffer = this.writeBuffer;\n this.writeBuffer = tmp;\n } },\n {\n key: \"addPass\",\n value: function addPass(pass) {\n pass.screenRenderTarget = this.screenRenderTarget;\n this.passes.push(pass);\n pass.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);\n } },\n {\n key: \"insertPass\",\n value: function insertPass(pass, index) {\n this.passes.splice(index, 0, pass);\n pass.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);\n } },\n {\n key: \"removePass\",\n value: function removePass(pass) {\n var index = this.passes.indexOf(pass);\n if (index !== -1) {\n this.passes.splice(index, 1);\n }\n } },\n {\n key: \"isLastEnabledPass\",\n value: function isLastEnabledPass(passIndex) {\n for (var i = passIndex + 1; i < this.passes.length; i++) {\n if (this.passes[i].enabled) {\n return false;\n }\n }\n return true;\n } },\n {\n key: \"render\",\n value: function render(deltaTime) {\n if (deltaTime === undefined) {\n deltaTime = this.clock.getDelta();\n }\n var currentRenderTarget = this.renderer.getRenderTarget();\n var maskActive = false;\n for (var i = 0, il = this.passes.length; i < il; i++) {\n var pass = this.passes[i];\n if (pass.enabled === false) continue;\n pass.renderToScreen = this.renderToScreen && this.isLastEnabledPass(i);\n pass.render(this.renderer, this.writeBuffer, this.readBuffer, deltaTime, maskActive);\n if (pass.needsSwap) {\n if (maskActive) {\n var context = this.renderer.getContext();\n var stencil = this.renderer.state.buffers.stencil;\n stencil.setFunc(context.NOTEQUAL, 1, 0xffffffff);\n this.renderer.copyTextureToRenderTarget(this.readBuffer.texture, this.writeBuffer);\n stencil.setFunc(context.EQUAL, 1, 0xffffffff);\n }\n this.swapBuffers();\n }\n if (_MaskPass.MaskPass !== undefined) {\n if (pass instanceof _MaskPass.MaskPass) {\n maskActive = true;\n } else if (pass instanceof _MaskPass.ClearMaskPass) {\n maskActive = false;\n }\n }\n }\n this.renderer.setRenderTarget(currentRenderTarget);\n } },\n {\n key: \"reset\",\n value: function reset(renderTarget, renderTarget2) {\n if (renderTarget === undefined) {\n var size = this.renderer.getSize(new _Vector.Vector2());\n this._pixelRatio = this.renderer.getPixelRatio();\n this._width = size.width;\n this._height = size.height;\n renderTarget = this.renderTarget1.clone();\n renderTarget.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);\n }\n this.renderTarget1.dispose();\n this.renderTarget2.dispose();\n this.renderTarget1 = renderTarget;\n if (renderTarget2 === undefined) {\n this.renderTarget2 = renderTarget.clone();\n } else {\n this.renderTarget2 = renderTarget2;\n }\n this.writeBuffer = this.renderTarget1;\n this.readBuffer = this.renderTarget2;\n } },\n {\n key: \"setSize\",\n value: function setSize(width, height) {\n this._width = width;\n this._height = height;\n var effectiveWidth = this._width * this._pixelRatio;\n var effectiveHeight = this._height * this._pixelRatio;\n this.renderTarget1.setSize(effectiveWidth, effectiveHeight);\n this.renderTarget2.setSize(effectiveWidth, effectiveHeight);\n for (var i = 0; i < this.passes.length; i++) {\n this.passes[i].setSize(effectiveWidth, effectiveHeight);\n }\n } },\n {\n key: \"setPixelRatio\",\n value: function setPixelRatio(pixelRatio) {\n this._pixelRatio = pixelRatio;\n this.setSize(this._width, this._height);\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n if (this.createdRenderTarget) {\n this.renderTarget1.dispose();\n }\n this.renderTarget2.dispose();\n } }]);\n\n return EffectComposer;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector2.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/core/Clock.js", "pandav:/src/postprocessing/MaskPass.js" ], "buildLevel": 42, "outputDir": "/com/three/0.145.0/src/postprocessing", "outputPath": "/com/three/0.145.0/src/postprocessing/EffectComposer.js", "fileName": "/src/postprocessing/EffectComposer.js" }, "pandav:/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_ALPHATEST\\n\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 18, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_ALPHAMAP\\n\\n\\tuniform sampler2D alphaMap;\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 17, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#if defined( USE_AOMAP ) || defined( DEFERRED_RENDER_PASS )\\n\\n\\t#ifndef DEFERRED_RENDER_PASS //\\u5EF6\\u8FDF\\u6E32\\u67D3Pass\\u4E0B\\u4E0D\\u91C7\\u6837\\uFF0CambientOcclusion\\u4E3A\\u63D0\\u524D\\u58F0\\u660E\\u7684\\u5C40\\u90E8\\u53D8\\u91CF\\n\\n\\t// reads channel R, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\n\\t#endif\\n\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\n\\t#if defined( USE_ENVMAP ) && ( defined( STANDARD ) || defined( DEFERRED_RENDER_PASS ) )\\n\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\n\\t#endif\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 20, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js" }, "pandav:/src/renderers/GBuffer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/GBuffer\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/renderers/WebGLMultipleRenderTargets\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.GBuffer = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _WebGLMultipleRenderTargets = require('pandav:/com/three/0.145.0/src/renderers/WebGLMultipleRenderTargets');\n var GBuffer = exports.GBuffer = function () {\n function GBuffer(width, height, samples) {\n (0, _classCallCheck2.default)(this, GBuffer);\n this.renderTarget = void 0;\n this.size = new _Vector.Vector2(1, 1);\n this._samples = 0;\n this._samples = samples;\n this.size.set(width, height);\n this.createRenderTarget();\n }\n (0, _createClass2.default)(GBuffer, [{\n key: \"setSize\",\n value: function setSize(width, height) {\n this.size.set(width, height);\n this.renderTarget.setSize(width, height);\n } },\n {\n key: \"samples\",\n get: function get() {\n return this._samples;\n },\n set: function set(v) {\n if (this.samples === v) {\n return;\n }\n this._samples = v;\n this.renderTarget.dispose();\n this.createRenderTarget();\n } },\n {\n key: \"createRenderTarget\",\n value: function createRenderTarget() {\n var renderTarget = new _WebGLMultipleRenderTargets.WebGLMultipleRenderTargets(this.size.width, this.size.height, 4, {\n samples: 0,\n stencilBuffer: false });\n\n renderTarget.outputEncoding = _constants.LinearEncoding;\n this.renderTarget = renderTarget;\n for (var i = 0, il = renderTarget.texture.length; i < il; i++) {\n renderTarget.texture[i].minFilter = _constants.NearestFilter;\n renderTarget.texture[i].magFilter = _constants.NearestFilter;\n renderTarget.texture[i].encoding = _constants.LinearEncoding;\n renderTarget.texture[i].generateMipmaps = false;\n }\n var gColorTexture = renderTarget.texture[0];\n gColorTexture.format = _constants.RGBAFormat;\n gColorTexture.type = _constants.HalfFloatType;\n gColorTexture.internalFormat = \"RGBA16F\";\n gColorTexture.needsUpdate = true;\n var trmTexture = renderTarget.texture[1];\n trmTexture.format = _constants.RGBAFormat;\n trmTexture.needsUpdate = true;\n var gNormalDepthTexture = renderTarget.texture[2];\n gNormalDepthTexture.type = _constants.HalfFloatType;\n gNormalDepthTexture.format = _constants.RGBAFormat;\n gNormalDepthTexture.internalFormat = \"RGBA16F\";\n gNormalDepthTexture.needsUpdate = true;\n var positionIDTexture = renderTarget.texture[3];\n positionIDTexture.type = _constants.FloatType;\n positionIDTexture.format = _constants.RGBAFormat;\n positionIDTexture.internalFormat = \"RGBA16F\";\n positionIDTexture.needsUpdate = true;\n } },\n {\n key: \"colorBuffer\",\n get: function get() {\n return this.renderTarget.texture[0];\n } },\n {\n key: \"trmBuffer\",\n get: function get() {\n return this.renderTarget.texture[1];\n } },\n {\n key: \"normalDepthBuffer\",\n get: function get() {\n return this.renderTarget.texture[2];\n } },\n {\n key: \"positionIDBuffer\",\n get: function get() {\n return this.renderTarget.texture[3];\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.renderTarget.dispose();\n } }]);\n\n return GBuffer;\n }();return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/math/Vector2.js", "pandav:/src/renderers/WebGLMultipleRenderTargets.js" ], "buildLevel": 3, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/GBuffer.js", "fileName": "/src/renderers/GBuffer.js" }, "pandav:/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 19, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\nvec3 objectNormal = vec3( normal );\\n\\n#ifdef USE_TANGENT\\n\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 23, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/begin_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\nvec3 transformed = vec3( position );\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 22, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_AOMAP\\n\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 21, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_BUMPMAP\\n\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\n\\t// Bump Mapping Unparametrized Surfaces on the GPU by Morten S. Mikkelsen\\n\\t// https://mmikk.github.io/papers3d/mm_sfgrad_bump.pdf\\n\\n\\t// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)\\n\\n\\tvec2 dHdxy_fwd() {\\n\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\n\\t\\treturn vec2( dBx, dBy );\\n\\n\\t}\\n\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\n\\t\\tvec3 vSigmaX = dFdx( surf_pos.xyz );\\n\\t\\tvec3 vSigmaY = dFdy( surf_pos.xyz );\\n\\t\\tvec3 vN = surf_norm; // normalized\\n\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\n\\t}\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 26, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_CLEARCOAT\\n\\n\\tvec3 clearcoatNormal = geometryNormal;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 91, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bsdfs.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n\\n} // validated\\n\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\n\\t// Original approximation by Christophe Schlick '94\\n\\t// float fresnel = pow( 1.0 - dotVH, 5.0 );\\n\\n\\t// Optimized variant (presented by Epic at SIGGRAPH '13)\\n\\t// https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n\\n} // validated\\n\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\n\\t// Original approximation by Christophe Schlick '94\\n\\t// float fresnel = pow( 1.0 - dotVH, 5.0 );\\n\\n\\t// Optimized variant (presented by Epic at SIGGRAPH '13)\\n\\t// https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n\\n} // validated\\n\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\n\\n// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2\\n// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\n\\tfloat a2 = pow2( alpha );\\n\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n\\n}\\n\\n// Microfacet Models for Refraction through Rough Surfaces - equation (33)\\n// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html\\n// alpha is \\\"roughness squared\\\" in Disney\\u2019s reparameterization\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\n\\tfloat a2 = pow2( alpha );\\n\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; // avoid alpha = 0 with dotNH = 1\\n\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n\\n}\\n\\n// GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\\n\\n\\tfloat alpha = pow2( roughness ); // UE4's roughness\\n\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\n\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\n\\treturn F * ( V * D );\\n\\n}\\n\\n#ifdef USE_IRIDESCENCE\\n\\n\\tvec3 BRDF_GGX_Iridescence( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float iridescence, const in vec3 iridescenceFresnel, const in float roughness ) {\\n\\n\\t\\tfloat alpha = pow2( roughness ); // UE4's roughness\\n\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\n\\t\\tvec3 F = mix( F_Schlick( f0, f90, dotVH ), iridescenceFresnel, iridescence );\\n\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\n\\t\\treturn F * ( V * D );\\n\\n\\t}\\n\\n#endif\\n\\n// Rect Area Light\\n\\n// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines\\n// by Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt\\n// code: https://github.com/selfshadow/ltc_code/\\n\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\n\\t// texture parameterized by sqrt( GGX alpha ) and sqrt( 1 - cos( theta ) )\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\n\\treturn uv;\\n\\n}\\n\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\n\\t// Real-Time Area Lighting: a Journey from Research to Production (p.102)\\n\\t// An approximation of the form factor of a horizon-clipped rectangle.\\n\\n\\tfloat l = length( f );\\n\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n\\n}\\n\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\n\\tfloat x = dot( v1, v2 );\\n\\n\\tfloat y = abs( x );\\n\\n\\t// rational polynomial approximation to theta / sin( theta ) / 2PI\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n\\n}\\n\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\n\\t// bail if point is on back side of plane of light\\n\\t// assumes ccw winding order of light vertices\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\n\\t// construct orthonormal basis around N\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 ); // negated from paper; possibly due to a different handedness of world coordinate system\\n\\n\\t// compute transform\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\n\\t// transform rect\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\n\\t// project rect onto sphere\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\n\\t// calculate vector form factor\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\n\\t// adjust for horizon clipping\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\n/*\\n\\t// alternate method of adjusting for horizon clipping (see referece)\\n\\t// refactoring required\\n\\tfloat len = length( vectorFormFactor );\\n\\tfloat z = vectorFormFactor.z / len;\\n\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\n\\t// tabulated horizon-clipped sphere, apparently...\\n\\tvec2 uv = vec2( z * 0.5 + 0.5, len );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\n\\tfloat scale = texture2D( ltc_2, uv ).w;\\n\\n\\tfloat result = len * scale;\\n*/\\n\\n\\treturn vec3( result );\\n\\n}\\n\\n// End Rect Area Light\\n\\n\\nfloat G_BlinnPhong_Implicit( /* const in float dotNL, const in float dotNV */ ) {\\n\\n\\t// geometry term is (n dot l)(n dot v) / 4(n dot l)(n dot v)\\n\\treturn 0.25;\\n\\n}\\n\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n\\n}\\n\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\n\\tfloat G = G_BlinnPhong_Implicit( /* dotNL, dotNV */ );\\n\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\n\\treturn F * ( G * D );\\n\\n} // validated\\n\\n#if defined( USE_SHEEN )\\n\\n// https://github.com/google/filament/blob/master/shaders/src/brdf.fs\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\n\\tfloat alpha = pow2( roughness );\\n\\n\\t// Estevez and Kulla 2017, \\\"Production Friendly Microfacet Sheen BRDF\\\"\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 ); // 2^(-14/2), so sin2h^2 > 0 in fp16\\n\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n\\n}\\n\\n// https://github.com/google/filament/blob/master/shaders/src/brdf.fs\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\n\\t// Neubelt and Pettineo 2013, \\\"Crafting a Next-gen Material Pipeline for The Order: 1886\\\"\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n\\n}\\n\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\n\\treturn sheenColor * ( D * V );\\n\\n}\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 24, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_CLEARCOATMAP\\n\\n\\tuniform sampler2D clearcoatMap;\\n\\n#endif\\n\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n\\n#endif\\n\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 93, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\n\\t#else\\n\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 92, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvec4 plane;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\n\\t\\tbool clipped = true;\\n\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\n\\t\\tif ( clipped ) discard;\\n\\n\\t#endif\\n\\n#endif\\n\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvarying vec3 vClipPosition;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvarying vec3 vClipPosition;\\n\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tdiffuseColor *= vColor;\\n\\n#elif defined( USE_COLOR )\\n\\n\\tdiffuseColor.rgb *= vColor;\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tvColor = vec4( 1.0 );\\n\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\n\\tvColor = vec3( 1.0 );\\n\\n#endif\\n\\n#ifdef USE_COLOR\\n\\n\\tvColor *= color;\\n\\n#endif\\n\\n#ifdef USE_INSTANCING_COLOR\\n\\n\\tvColor.xyz *= instanceColor.xyz;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tvarying vec4 vColor;\\n\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\n\\tvarying vec3 vColor;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvClipPosition = - mvPosition.xyz;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tvarying vec4 vColor;\\n\\n#elif defined( USE_COLOR )\\n\\n\\tvarying vec3 vColor;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef ENVMAP_TYPE_CUBE_UV\\n\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\n\\t// These shader functions convert between the UV coordinates of a single face of\\n\\t// a cubemap, the 0-5 integer index of a cube face, and the direction vector for\\n\\t// sampling a textureCube (not generally normalized ).\\n\\n\\tfloat getFace( vec3 direction ) {\\n\\n\\t\\tvec3 absDirection = abs( direction );\\n\\n\\t\\tfloat face = - 1.0;\\n\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\n\\t\\t\\telse\\n\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\n\\t\\t\\telse\\n\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\n\\t\\t}\\n\\n\\t\\treturn face;\\n\\n\\t}\\n\\n\\t// RH coordinate system; PMREM face-indexing convention\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\n\\t\\tvec2 uv;\\n\\n\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x ); // pos x\\n\\n\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y ); // pos y\\n\\n\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z ); // pos z\\n\\n\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x ); // neg x\\n\\n\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y ); // neg y\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z ); // neg z\\n\\n\\t\\t}\\n\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\n\\t}\\n\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\n\\t\\tfloat face = getFace( direction );\\n\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\n\\t\\tif ( face > 2.0 ) {\\n\\n\\t\\t\\tuv.y += faceSize;\\n\\n\\t\\t\\tface -= 3.0;\\n\\n\\t\\t}\\n\\n\\t\\tuv.x += face * faceSize;\\n\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\n\\t\\t#ifdef texture2DGradEXT\\n\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; // disable anisotropic filtering\\n\\n\\t\\t#else\\n\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n\\t// These defines must match with PMREMGenerator\\n\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_v0 0.339\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_v1 0.276\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_v4 0.046\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_v5 0.016\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_v6 0.0038\\n\\t#define cubeUV_m6 4.0\\n\\n\\tfloat roughnessToMip( float roughness ) {\\n\\n\\t\\tfloat mip = 0.0;\\n\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness ); // 1.16 = 1.79^0.25\\n\\t\\t}\\n\\n\\t\\treturn mip;\\n\\n\\t}\\n\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\n\\t\\tfloat mipF = fract( mip );\\n\\n\\t\\tfloat mipInt = floor( mip );\\n\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\n\\t\\tif ( mipF == 0.0 ) {\\n\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\n\\t\\t}\\n\\n\\t}\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvoid main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 13, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvec3 transformedNormal = objectNormal;\\n\\n#ifdef USE_INSTANCING\\n\\n\\t// this is in lieu of a per-instance normal-matrix\\n\\t// shear transforms in the instance matrix are not supported\\n\\n\\tmat3 m = mat3( instanceMatrix );\\n\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\n\\ttransformedNormal = m * transformedNormal;\\n\\n#endif\\n\\ntransformedNormal = normalMatrix * transformedNormal;\\n\\n#ifdef FLIP_SIDED\\n\\n\\ttransformedNormal = - transformedNormal;\\n\\n#endif\\n\\n#ifdef USE_TANGENT\\n\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\n\\t#ifdef FLIP_SIDED\\n\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 37, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_DISPLACEMENTMAP\\n\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 39, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/common.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/common.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n\\n#ifndef saturate\\n// may have defined saturate() already\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\n\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\n\\n// expects values in the range of [0,1]x[0,1], returns values in the [0,1] range.\\n// do not collapse into a single function per: http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/\\nhighp float rand( const in vec2 uv ) {\\n\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\n\\treturn fract( sin( sn ) * c );\\n\\n}\\n\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\n\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\n\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\n\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n}\\n\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t// dir can be either a direction vector or a normal vector\\n\\t// upper-left 3x3 of matrix is assumed to be orthogonal\\n\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n\\n}\\n\\nmat3 transposeMat3( const in mat3 m ) {\\n\\n\\tmat3 tmp;\\n\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\n\\treturn tmp;\\n\\n}\\n\\nfloat luminance( const in vec3 rgb ) {\\n\\n\\t// assumes rgb is in linear color space with sRGB primaries and D65 white point\\n\\n\\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\\n\\n\\treturn dot( weights, rgb );\\n\\n}\\n\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n\\n}\\n\\nvec2 equirectUv( in vec3 dir ) {\\n\\n\\t// dir is assumed to be unit length\\n\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\n\\treturn vec2( u, v );\\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/common.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/common.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvoid main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 12, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_DISPLACEMENTMAP\\n\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 38, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef DITHERING\\n\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 99, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_EMISSIVEMAP\\n\\n\\tuniform sampler2D emissiveMap;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 41, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef DITHERING\\n\\n\\t// based on https://www.shadertoy.com/view/MslGR8\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\t//Calculate grid position\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\n\\t\\t//Shift the individual colors differently, thus making it even harder to see the dithering pattern\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\n\\t\\t//modify shift according to grid position.\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\n\\t\\t//shift the color by dither_shift\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 100, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n//\\u56E0\\u4E3A\\u67D0\\u4E9B\\u7F8E\\u672F\\u6548\\u679C\\u5982\\u53E0\\u52A0\\u6DF7\\u5408\\u9700\\u8981\\u5728gamma\\u7A7A\\u95F4\\u4E0B\\u8FDB\\u884C\\u4F1A\\u6BD4\\u8F83\\u7B26\\u5408\\u4EBA\\u7C7B\\u89C6\\u89C9\\uFF0C\\u624D\\u80FD\\u6709\\u66F4\\u597D\\u7684\\u8868\\u73B0\\u6548\\u679C\\uFF0C\\u6240\\u4EE5\\u524D\\u5411\\u6E32\\u67D3\\u9700\\u8981\\u8F93\\u51FAsRGB\\u7A7A\\u95F4\\u7684\\u989C\\u8272\\n//\\u800C\\u56E0\\u4E3A\\u5EF6\\u8FDF\\u6E32\\u67D3\\u9700\\u8981\\u5728\\u540E\\u5904\\u7406\\u4E2D\\u8FDB\\u884C\\u5149\\u7167\\u8BA1\\u7B97\\uFF0C\\u5FC5\\u987B\\u5728\\u7EBF\\u6027\\u7A7A\\u95F4\\u4E0B\\u8FDB\\u884C\\uFF0C\\u6240\\u4EE5\\u5EF6\\u8FDF\\u6E32\\u67D3\\u540E\\u5904\\u7406\\u7ED3\\u675F\\u540E\\u9700\\u8981\\u8FDB\\u884C\\u4E00\\u6B21gamma\\u6821\\u6B63\\u7684\\u540E\\u5904\\u7406\\n//\\u6240\\u4EE5\\u6700\\u7EC8\\u7684\\u540E\\u5904\\u7406\\u90FD\\u662F\\u5728gamma\\u7A7A\\u95F4\\u4E0B\\u8FDB\\u884C\\u7684\\uFF0C\\u5E94\\u8BE5\\u4F1A\\u6709\\u66F4\\u597D\\u7684\\u89C6\\u89C9\\u6548\\u679C\\u3002\\n// gl_FragColor = linearToOutputTexel( gl_FragColor );\\ngl_FragColor = LinearTosRGB(gl_FragColor);\\ngl_FragColor = max(gl_FragColor, 0.0); //\\u7ECF\\u8FC7gamma\\u6821\\u6B63\\u540E\\u53EF\\u80FD\\u4F1A\\u51FA\\u73B0\\u989C\\u8272\\u503C\\u5C0F\\u4E8E0\\u7684\\u60C5\\u51B5\\uFF0C\\u5BFC\\u81F4\\u540E\\u9762\\u989C\\u8272\\u4E0D\\u6B63\\u786E\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 42, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_EMISSIVEMAP\\n\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 40, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\n\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\n\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + 0.0521327014, vec3(2.4 )), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\n\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 43, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ENVMAP\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\n\\t\\tvec3 cameraToFrag;\\n\\n\\t\\tif ( isOrthographic ) {\\n\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\n\\t\\t}\\n\\n\\t\\t// Transforming Normal Vectors with the Inverse Transformation\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\n\\t\\t#else\\n\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\n\\t\\t#endif\\n\\n\\t#else\\n\\n\\t\\tvec3 reflectVec = vReflect;\\n\\n\\t#endif\\n\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\n\\t#else\\n\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\n\\t#endif\\n\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 44, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ENVMAP\\n\\n\\tuniform float reflectivity;\\n\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\n\\t\\t#define ENV_WORLDPOS\\n\\n\\t#endif\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 46, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ENVMAP\\n\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\n\\t\\t#define ENV_WORLDPOS\\n\\n\\t#endif\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\n\\t#else\\n\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 47, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ENVMAP\\n\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 45, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#if defined( USE_ENVMAP )\\n\\tuniform float envMapRotateY;\\n\\n\\t#ifdef DEFERRED_RENDER_PASS\\n\\tvec3 vEnvMapWorldPosition;\\n\\t#else\\n\\tvarying vec3 vEnvMapWorldPosition;\\n\\t#endif\\n\\n\\tmat4 getEnvMapRotationMatrix() {\\n\\t\\tfloat c = cos( envMapRotateY ), s = sin( envMapRotateY );\\t\\n\\t\\treturn mat4(\\n\\t\\t\\tc, 0.0, -s, 0.0,\\n\\t\\t\\t0, 1.0, 0.0, 0.0,\\n\\t\\t\\ts, 0.0, c, 0.0,\\n\\t\\t\\t0.0, 0.0, 0.0, 1.0\\n\\t\\t);\\n\\t}\\n\\n\\tvec3 getEnvMapViewDirection() {\\n\\n\\t\\t#ifdef DEFERRED_RENDER_PASS\\n\\t\\tvec3 cameraPosition = sceneCameraPosition;\\n\\t\\tmat4 viewMatrix = cameraViewMatrix;\\n\\t\\t#endif\\n\\t\\t\\n\\t\\tvec4 _cameraPosition = vec4(cameraPosition, 1.0);\\n\\t\\t_cameraPosition.xyz -= vEnvMapWorldPosition;\\n\\t\\t// _cameraPosition = getEnvMapRotationMatrix() * _cameraPosition;\\n\\t\\t_cameraPosition.xyz += vEnvMapWorldPosition;\\n\\n\\t\\treturn normalize( _cameraPosition - vec4(vEnvMapWorldPosition, 1.0) ).xyz;\\n\\t}\\n\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\t\\t#ifdef DEFERRED_RENDER_PASS\\n\\t\\t\\tmat4 viewMatrix = cameraViewMatrix;\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tvec3 dir = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tdir = ( getEnvMapRotationMatrix() * vec4( dir, 1.0) ).xyz;\\n\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, dir, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\n\\t\\t#else\\n\\n\\t\\t\\treturn vec3( 0.0 );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\t\\t#ifdef DEFERRED_RENDER_PASS\\n\\t\\t\\tmat4 viewMatrix = cameraViewMatrix;\\n\\t\\t\\t#endif\\n\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\n\\t\\t\\tvec3 reflectVec = reflect( -viewDir, worldNormal );\\n\\n\\t\\t\\t// Mixing the reflection with the normal is more accurate and keeps rough objects from gathering light from behind their tangent plane.\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, worldNormal, roughness * roughness) );\\n\\n\\t\\t\\treflectVec = ( getEnvMapRotationMatrix() * vec4( reflectVec, 1.0) ).xyz;\\n\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\n\\t\\t#else\\n\\n\\t\\t\\treturn vec3( 0.0 );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 61, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_physical_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_ENVMAP )\\n\\nvarying vec3 vEnvMapWorldPosition;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 49, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_physical_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_physical_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_ENVMAP )\\n\\n\\tvEnvMapWorldPosition = worldPosition.xyz;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 50, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_physical_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ENVMAP\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\n\\t#else\\n\\n\\t\\tvec3 cameraToVertex;\\n\\n\\t\\tif ( isOrthographic ) {\\n\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\n\\t\\t}\\n\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\n\\t\\t#else\\n\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 48, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_FOG\\n\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\n\\t#ifdef FOG_EXP2\\n\\n\\t\\tuniform float fogDensity;\\n\\n\\t#else\\n\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 54, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_FOG\\n\\n\\t#ifdef FOG_EXP2\\n\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\n\\t#else\\n\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\n\\t#endif\\n\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 53, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_FOG\\n\\n\\tvFogDepth = - mvPosition.z;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 51, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_FOG\\n\\n\\tvarying float vFogDepth;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 52, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/gbuffer_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef DEFERRED_RENDER\\nlayout(location = 1) out vec4 gTRMA; //T\\uFF1ATag\\u6807\\u7B7E R\\uFF1A\\u7C97\\u7CD9\\u5EA6 M\\uFF1A\\u91D1\\u5C5E\\u5EA6 A\\uFF1AAO\\u8D34\\u56FE\\u6570\\u503C\\nlayout(location = 2) out vec4 gNormalDepth;\\nlayout(location = 3) out vec4 gPositionID;\\n#endif\\n\\nuniform float tag;\\n\";return module.exports;});", "requires": [], "buildLevel": 124, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/gbuffer_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_GRADIENTMAP\\n\\n\\tuniform sampler2D gradientMap;\\n\\n#endif\\n\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\n\\t// dotNL will be from -1.0 to 1.0\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\n\\t#ifdef USE_GRADIENTMAP\\n\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\n\\t#else\\n\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\n\\t#endif\\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 55, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/gbuffer_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef DEFERRED_RENDER\\n \\n#ifdef STANDARD\\n gTRMA = vec4( tag/255.0, roughnessFactor, metalnessFactor, 0.0);\\n\\n #ifdef USE_AOMAP\\n // reads channel R, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\n gTRMA.w = 1.0 - ( ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0 ); //\\u548CMeshStandardMaterial\\u7684\\u4EE3\\u7801\\u76F8\\u6BD4\\uFF0C\\u524D\\u9762\\u591A\\u51CF\\u4E86\\u4E2A1.0\\n #endif\\n\\n gNormalDepth = vec4( normal, gl_FragCoord.z ); //\\u672A\\u652F\\u6301logdepth\\n gPositionID = vec4(vViewPosition, 0.0 ); //\\u5B9E\\u9645\\u4E0AvViewPosition\\u662FmvPosition\\u7684\\u53CD\\u5411\\u91CF\\n gPositionID.w = 1.0;\\n\\n#else\\n gTRMA = vec4( tag/255.0, 0.0, 0.0, 0.0 );\\n gNormalDepth = vec4( 0.0, 0.0, 0.0, 1.0); //\\u975EPBR\\u6750\\u8D28\\u7684\\u6DF1\\u5EA6\\u9ED8\\u8BA4\\u662F\\u65E0\\u9650\\u8FDC\\u7684\\uFF0C\\u4F8B\\u5982\\u80CC\\u666F\\n gPositionID = vec4(0.0, 0.0, 0.0, 0.0);\\n#endif\\n\\n#endif\\n\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 125, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/gbuffer_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n\\n#ifdef USE_IRIDESCENCE\\n\\n\\t// XYZ to linear-sRGB color space\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\n\\t// Assume air interface for top\\n\\t// Note: We don't handle the case fresnel0 == 1\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\n\\t}\\n\\n\\t// Conversion FO/IOR\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\n\\t}\\n\\n\\t// ior is a value between 1.0 and 3.0. 1.0 is air interface\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\n\\t}\\n\\n\\t// Fresnel equations for dielectric/dielectric interfaces.\\n\\t// Ref: https://belcour.github.io/blog/research/2017/05/01/brdf-thin-film.html\\n\\t// Evaluation XYZ sensitivity curves in Fourier space\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\n\\t}\\n\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\n\\t\\tvec3 I;\\n\\n\\t\\t// Force iridescenceIOR -> outsideIOR when thinFilmThickness -> 0.0\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\t// Evaluate the cosTheta on the base layer (Snell law)\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\n\\t\\t// Handle TIR:\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\n\\t\\t\\t return vec3( 1.0 );\\n\\n\\t\\t}\\n\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\n\\t\\t// First interface\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat R21 = R12;\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\n\\t\\t// Second interface\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); // guard against 1.0\\n\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\n\\t\\t// Phase shift\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\n\\t\\t// Compound terms\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\n\\t\\t// Reflectance term for m = 0 (DC term amplitude)\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\n\\t\\t// Reflectance term for m > 0 (pairs of diracs)\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\n\\t\\t}\\n\\n\\t\\t// Since out of gamut colors might be produced, negative color values are clamped to 0.\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\n\\t}\\n\\n#endif\\n\\n\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 25, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_IRIDESCENCEMAP\\n\\n\\tuniform sampler2D iridescenceMap;\\n\\n#endif\\n\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\n\\tuniform sampler2D iridescenceThicknessMap;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 94, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n/**\\n * This is a template that can be used to light a material, it uses pluggable\\n * RenderEquations (RE)for specific lighting scenarios.\\n *\\n * Instructions for use:\\n * - Ensure that both RE_Direct, RE_IndirectDiffuse and RE_IndirectSpecular are defined\\n * - If you have defined an RE_IndirectSpecular, you need to also provide a Material_LightProbeLOD. <---- ???\\n * - Create a material parameter that is to be passed as the third parameter to your lighting functions.\\n *\\n * TODO:\\n * - Add area light support.\\n * - Add sphere light support.\\n * - Add diffuse light probe (irradiance cubemap) support.\\n */\\n\\nGeometricContext geometry;\\n\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n\\n#ifdef USE_CLEARCOAT\\n\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n\\n#endif\\n\\n#ifdef USE_IRIDESCENCE\\n\\n\\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\\n\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\n\\t\\tmaterial.iridescence = 0.0;\\n\\n\\t} else {\\n\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\n\\t}\\n\\n\\tif ( material.iridescence > 0.0 ) {\\n\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\n\\t\\t// Iridescence F0 approximation\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\n\\t}\\n\\n#endif\\n\\nIncidentLight directLight;\\n\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\n\\t\\tpointLight = pointLights[ i ];\\n\\n\\t\\tgetPointLightInfo( pointLight, geometry, directLight );\\n\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\n\\t\\tspotLight = spotLights[ i ];\\n\\n\\t\\tgetSpotLightInfo( spotLight, geometry, directLight );\\n\\n\\t\\t// spot lights are ordered [shadows with maps, shadows without maps, maps without shadows, none]\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\n\\t\\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\\n\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\n\\tRectAreaLight rectAreaLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if defined( RE_IndirectDiffuse )\\n\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\n\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n#endif\\n\\n#if defined( RE_IndirectSpecular )\\n\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 68, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_LIGHTMAP\\n\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 57, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( RE_IndirectDiffuse )\\n\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n\\n#endif\\n\\n#if defined( RE_IndirectSpecular )\\n\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 70, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_LIGHTMAP\\n\\n\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 56, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#if defined( RE_IndirectDiffuse )\\n\\n\\t#ifdef USE_LIGHTMAP\\n\\n\\t\\t//TODO: \\u5149\\u7167\\u8D34\\u56FE\\u6682\\u65F6\\u4E0D\\u751F\\u6548\\n\\t\\t// #ifdef DEFERRED_RENDER_PASS\\n\\t\\t// vec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\t\\t// vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\n\\t\\t// irradiance = lightMapIrradiance;\\n\\t\\t// #endif\\n\\n\\t#endif\\n\\n\\t#if defined( USE_ENVMAP ) && ( defined( STANDARD ) || defined( DEFERRED_RENDER_PASS ) ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\n\\n\\t#endif\\n\\n#endif\\n\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\n\\tvec3 envMapViewDirection = getEnvMapViewDirection();\\n\\n\\tradiance += getIBLRadiance( envMapViewDirection, geometry.normal, material.roughness );\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tclearcoatRadiance += getIBLRadiance( envMapViewDirection, geometry.clearcoatNormal, material.clearcoatRoughness );\\n\\n\\t#endif\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 69, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvarying vec3 vViewPosition;\\n\\nstruct LambertMaterial {\\n\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n\\n};\\n\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\\n\\n#define Material_LightProbeLOD( material )\\t(0)\\n\";return module.exports;});", "requires": [], "buildLevel": 59, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nLambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\\n\";return module.exports;});", "requires": [], "buildLevel": 58, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvarying vec3 vViewPosition;\\n\\nstruct BlinnPhongMaterial {\\n\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n\\n};\\n\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n\\n}\\n\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n\\n#define Material_LightProbeLOD( material )\\t(0)\\n\";return module.exports;});", "requires": [], "buildLevel": 65, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nuniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\n\\n// get the irradiance (radiance convolved with cosine lobe) at the point 'normal' on the unit sphere\\n// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\n\\t// normal is assumed to have unit length\\n\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\n\\t// band 0\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\n\\t// band 1\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\n\\t// band 2\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\n\\treturn result;\\n\\n}\\n\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\n\\treturn irradiance;\\n\\n}\\n\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\n\\tvec3 irradiance = ambientLightColor;\\n\\n\\treturn irradiance;\\n\\n}\\n\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\n\\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\n\\t\\t// based upon Frostbite 3 Moving to Physically-based Rendering\\n\\t\\t// page 32, equation 26: E[window1]\\n\\t\\t// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\n\\t\\t}\\n\\n\\t\\treturn distanceFalloff;\\n\\n\\t#else\\n\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\n\\t\\t}\\n\\n\\t\\treturn 1.0;\\n\\n\\t#endif\\n\\n}\\n\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n\\n}\\n\\n#if NUM_DIR_LIGHTS > 0\\n\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\n\\t}\\n\\n#endif\\n\\n\\n#if NUM_POINT_LIGHTS > 0\\n\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\n\\t// light is an out parameter as having it as a return value caused compiler errors on some devices\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\n\\t\\tlight.direction = normalize( lVector );\\n\\n\\t\\tfloat lightDistance = length( lVector );\\n\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\n\\t}\\n\\n#endif\\n\\n\\n#if NUM_SPOT_LIGHTS > 0\\n\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\n\\t// light is an out parameter as having it as a return value caused compiler errors on some devices\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\n\\t\\tlight.direction = normalize( lVector );\\n\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\n\\t\\t}\\n\\n\\t}\\n\\n#endif\\n\\n\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\n\\t// Pre-computed values of LinearTransformedCosine approximation of BRDF\\n\\t// BRDF approximation Texture is 64x64\\n\\tuniform sampler2D ltc_1; // RGBA Float\\n\\tuniform sampler2D ltc_2; // RGBA Float\\n\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n\\n#endif\\n\\n\\n#if NUM_HEMI_LIGHTS > 0\\n\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\n\\t\\treturn irradiance;\\n\\n\\t}\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 60, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nBlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\\n\";return module.exports;});", "requires": [], "buildLevel": 64, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nPhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\n\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\n\\nmaterial.roughness = max( roughnessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.\\nmaterial.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n\\n#ifdef IOR\\n\\n\\tmaterial.ior = ior;\\n\\n\\t#ifdef SPECULAR\\n\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\n\\t\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\\n\\n\\t\\t#endif\\n\\n\\t\\t#ifdef USE_SPECULARCOLORMAP\\n\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\\n\\n\\t\\t#endif\\n\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\n\\t#else\\n\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\n\\t#endif\\n\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n\\n#else\\n\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n\\n#endif\\n\\n#ifdef USE_CLEARCOAT\\n\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\n\\t#ifdef USE_CLEARCOATMAP\\n\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\n\\t#endif\\n\\n\\tmaterial.clearcoat = saturate( material.clearcoat ); // Burley clearcoat model\\n\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n\\n#endif\\n\\n#ifdef USE_IRIDESCENCE\\n\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vUv ).r;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum;\\n\\n\\t#else\\n\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\n\\t#endif\\n\\n#endif\\n\\n#ifdef USE_SHEEN\\n\\n\\tmaterial.sheenColor = sheenColor;\\n\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\\n\\n\\t#endif\\n\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 66, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nstruct PhysicalMaterial {\\n\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\n};\\n\\n// temporary\\nvec3 clearcoatSpecular = vec3( 0.0 );\\nvec3 sheenSpecular = vec3( 0.0 );\\n\\n// This is a curve-fit approxmation to the \\\"Charlie sheen\\\" BRDF integrated over the hemisphere from \\n// Estevez and Kulla 2017, \\\"Production Friendly Microfacet Sheen BRDF\\\". The analysis can be found\\n// in the Sheen section of https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\n\\tfloat r2 = roughness * roughness;\\n\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n\\n}\\n\\n// Analytical approximation of the DFG LUT, one half of the\\n// split-sum approximation used in indirect specular lighting.\\n// via 'environmentBRDF' from \\\"Physically Based Shading on Mobile\\\"\\n// https://www.unrealengine.com/blog/physically-based-shading-on-mobile\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\n\\tvec4 r = roughness * c0 + c1;\\n\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\n\\treturn fab;\\n\\n}\\n\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n\\n}\\n\\n// Fdez-Ag\\xFCera's \\\"Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting\\\"\\n// Approximates multiscattering in order to preserve energy.\\n// http://www.jcgt.org/published/0008/01/03/\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\n\\t#ifdef USE_IRIDESCENCE\\n\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\n\\t#else\\n\\n\\t\\tvec3 Fr = specularColor;\\n\\n\\t#endif\\n\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; // 1/21\\n\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n\\n}\\n\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight; // counterclockwise; light shines in local neg z direction\\n\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\n\\t\\t// LTC Fresnel Approximation by Stephen Hill\\n\\t\\t// http://blog.selfshadow.com/publications/s2016-advances/s2016_ltc_fresnel.pdf\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\n\\t}\\n\\n#endif\\n\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\n\\t\\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\n\\t#endif\\n\\n\\t#ifdef USE_SHEEN\\n\\n\\t\\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\\n\\n\\t#endif\\n\\n\\t#ifdef USE_IRIDESCENCE\\n\\n\\t\\treflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness );\\n\\n\\t#else\\n\\n\\t\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\\n\\n\\t#endif\\n\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\n\\t#endif\\n\\n\\t#ifdef USE_SHEEN\\n\\n\\t\\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\\n\\n\\t#endif\\n\\n\\t// Both indirect specular and indirect diffuse light accumulate here\\n\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\n\\t#ifdef USE_IRIDESCENCE\\n\\n\\t\\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\n\\t#else\\n\\n\\t\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\n\\t#endif\\n\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n\\n}\\n\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\n\\n// ref: https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 67, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\n\\t// Doing a strict comparison with == 1.0 can cause noise artifacts\\n\\t// on some platforms. See issue #17623.\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 71, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\n\";return module.exports;});", "requires": [], "buildLevel": 62, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvarying vec3 vViewPosition;\\n\\nstruct ToonMaterial {\\n\\n\\tvec3 diffuseColor;\\n\\n};\\n\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n\\n#define Material_LightProbeLOD( material )\\t(0)\\n\";return module.exports;});", "requires": [], "buildLevel": 63, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_LOGDEPTHBUF\\n\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\n\\t#else\\n\\n\\t\\tuniform float logDepthBufFC;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 73, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 72, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_LOGDEPTHBUF\\n\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\n\\t#else\\n\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\n\\t\\t}\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 74, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_METALNESSMAP\\n\\n\\tuniform sampler2D metalnessMap;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 80, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_MAP\\n\\n\\tvec4 sampledDiffuseColor = texture2D( map, vUv );\\n\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\n\\t\\t// inline sRGB decode (TODO: Remove this code when https://crbug.com/1256340 is solved)\\n\\n\\t\\t// sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\\t\\tsampledDiffuseColor = sRGBToLinear(sampledDiffuseColor);\\n\\n\\t#endif\\n\\n\\thsvColorCorrectionFunc(sampledDiffuseColor, hsvColorCorrection);\\n\\tbrightnessContrastFunc(sampledDiffuseColor, brightnessContrast); //\\u8BA9\\u7F16\\u8F91\\u5668\\u754C\\u9762\\u8C03\\u6574\\u5E45\\u5EA6\\u66F4\\u7F13\\u548C\\n\\n\\tdiffuseColor *= sampledDiffuseColor;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 75, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nfloat metalnessFactor = metalness;\\n\\n#ifdef USE_METALNESSMAP\\n\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\n\\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\n\\tmetalnessFactor *= texelMetalness.b;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 79, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\n\\tuniform mat3 uvTransform;\\n\\n#endif\\n\\n#ifdef USE_MAP\\n\\n\\tuniform sampler2D map;\\n\\n#endif\\n\\n#ifdef USE_ALPHAMAP\\n\\n\\tuniform sampler2D alphaMap;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 78, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_MORPHNORMALS\\n\\n\\t// morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:\\n\\t// When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in normal = sum((target - base) * influence)\\n\\t// When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\n\\t\\t}\\n\\n\\t#else\\n\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 82, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\\n\\n\\t// morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:\\n\\t// When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in normal = sum((target - base) * influence)\\n\\t// When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting\\n\\tvColor *= morphTargetBaseInfluence;\\n\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\n\\t\\t#elif defined( USE_COLOR )\\n\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 81, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_MORPHTARGETS\\n\\n\\tuniform float morphTargetBaseInfluence;\\n\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform ivec2 morphTargetsTextureSize;\\n\\n\\t\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\n\\t\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\n\\t\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\n\\t\\t}\\n\\n\\t#else\\n\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\n\\t\\t#else\\n\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 83, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_MAP\\n\\n\\tuniform sampler2D map;\\n\\n\\tuniform vec3 hsvColorCorrection;\\n\\tuniform vec2 brightnessContrast;\\n\\n\\t//\\u5BF9\\u6BD4\\u5EA6\\u6821\\u6B63\\n\\tvoid contrastCorrection( inout vec4 color, const in float contrast ) {\\n\\t\\tcolor.rgb = color.rgb * contrast + (0.5 - contrast * 0.5);\\n\\t}\\n\\n\\t//\\u9971\\u548C\\u5EA6\\u77E9\\u9635\\n\\tmat4 saturationMatrix(const in float saturation ) {\\n\\t\\tvec3 luminance = vec3( 0.3086, 0.6094, 0.0820 );\\n\\t\\tfloat oneMinusSat = 1.0 - saturation;\\n\\t\\tvec3 red = vec3( luminance.x * oneMinusSat );\\n\\t\\tred.r += saturation;\\n\\t\\t\\n\\t\\tvec3 green = vec3( luminance.y * oneMinusSat );\\n\\t\\tgreen.g += saturation;\\n\\t\\t\\n\\t\\tvec3 blue = vec3( luminance.z * oneMinusSat );\\n\\t\\tblue.b += saturation;\\n\\t\\t\\n\\t\\treturn mat4( \\n\\t\\t\\tred, 0,\\n\\t\\t\\tgreen, 0,\\n\\t\\t\\tblue, 0,\\n\\t\\t\\t0, 0, 0, 1 );\\n\\t}\\n\\t//\\u9971\\u548C\\u5EA6\\u8C03\\u8282\\n\\tvoid saturationCorrection( inout vec4 color, const in float saturation ) {\\n\\t\\tcolor = saturationMatrix(saturation) * color;\\n\\t}\\n\\n\\t//\\u8272\\u76F8\\u6821\\u6B63\\n\\tvoid hueCorrection(inout vec4 color,const in float hue) {\\n\\t vec3 p = vec3(0.55735) * dot(vec3(0.55735), color.rgb);\\n\\t vec3 u = color.rgb - p;\\n\\t vec3 v = cross(vec3(0.55735), u); \\n\\t color.rgb = u * cos(hue * 6.2832) + v * sin(hue * 6.2832) + p;\\n\\t}\\n\\t\\n\\t//\\u4EAE\\u5EA6\\u6821\\u6B63\\n\\tvoid brightnessCorrection( inout vec4 color, const in float brightness) {\\n\\t\\tcolor.rgb *= 1.0 + brightness;\\n\\t}\\n\\n\\t//\\u660E\\u5EA6\\u6821\\u6B63\\n\\tvoid lightnessCorrection( inout vec4 color, const in float lightness ) {\\n\\t\\tif(lightness>0.0) {\\n\\t\\t\\tcolor.rgb = mix(color.rgb, vec3(1.0), lightness);\\n\\t\\t}else {\\n\\t\\t\\tcolor.rgb = mix(color.rgb, vec3(0.0), -lightness);\\n\\t\\t}\\n\\t}\\n\\n\\tvoid hsvColorCorrectionFunc( inout vec4 color, const in vec3 hsv ) {\\n\\t\\thueCorrection(color, hsv.x/2.0);\\n\\t\\tsaturationCorrection(color, hsv.y + 1.0);\\n\\t\\tlightnessCorrection(color, hsv.z);\\n\\t}\\n\\n\\tvoid brightnessContrastFunc( inout vec4 color, const in vec2 brightnessContrast ) {\\n\\t\\tbrightnessCorrection(color, brightnessContrast.x);\\n\\t\\tcontrastCorrection(color, brightnessContrast.y +1.0);\\n\\t}\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 76, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nfloat faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n\\n#ifdef FLAT_SHADED\\n\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n\\n#else\\n\\n\\tvec3 normal = normalize( vNormal );\\n\\n\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\tnormal = normal * faceDirection;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\n\\t\\t#endif\\n\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n\\n// non perturbed normal for clearcoat among others\\n\\nvec3 geometryNormal = normal;\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 85, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_NORMALMAP\\n\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\n#endif\\n\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\n\\tuniform mat3 normalMatrix;\\n\\n#endif\\n\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\n\\t// Normal Mapping Without Precomputed Tangents\\n\\t// http://www.thetenthplanet.de/archives/1180\\n\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\n\\t\\tvec3 N = surf_norm; // normalized\\n\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\n\\t}\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 90, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_MORPHTARGETS\\n\\n\\t// morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:\\n\\t// When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in position = sum((target - base) * influence)\\n\\t// When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\n\\t\\t}\\n\\n\\t#else\\n\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 84, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\n#endif\\n\\n#ifdef USE_MAP\\n\\n\\tdiffuseColor *= texture2D( map, uv );\\n\\n#endif\\n\\n#ifdef USE_ALPHAMAP\\n\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 77, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals\\n\\n\\t#ifdef FLIP_SIDED\\n\\n\\t\\tnormal = - normal;\\n\\n\\t#endif\\n\\n\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\tnormal = normal * faceDirection;\\n\\n\\t#endif\\n\\n\\tnormal = normalize( normalMatrix * normal );\\n\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\n\\t#else\\n\\n\\t\\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\\n\\n\\t#endif\\n\\n#elif defined( USE_BUMPMAP )\\n\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 86, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifndef FLAT_SHADED\\n\\n\\tvarying vec3 vNormal;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 88, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifndef FLAT_SHADED\\n\\n\\tvarying vec3 vNormal;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 87, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifndef FLAT_SHADED // normal is computed with derivatives when FLAT_SHADED\\n\\n\\tvNormal = normalize( transformedNormal );\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 89, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef PREMULTIPLIED_ALPHA\\n\\n\\t// Get get normal blending with premultipled, use with CustomBlending, OneFactor, OneMinusSrcAlphaFactor, AddEquation.\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 97, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/output_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n\\n// https://github.com/mrdoob/three.js/pull/22425\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\\n#endif\\n\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\";return module.exports;});", "requires": [], "buildLevel": 95, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/project_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvec4 mvPosition = vec4( transformed, 1.0 );\\n\\n#ifdef USE_INSTANCING\\n\\n\\tmvPosition = instanceMatrix * mvPosition;\\n\\n#endif\\n\\nmvPosition = modelViewMatrix * mvPosition;\\n\\ngl_Position = projectionMatrix * mvPosition;\\n\";return module.exports;});", "requires": [], "buildLevel": 98, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/packing.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/packing.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nvec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\n\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\n\\nconst float PackUpscale = 256. / 255.; // fraction -> 0..1 (including 1)\\nconst float UnpackDownscale = 255. / 256.; // 0..1 -> fraction (excluding 1)\\n\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\n\\nconst float ShiftRight8 = 1. / 256.;\\n\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8; // tidy overflow\\n\\treturn r * PackUpscale;\\n}\\n\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\n\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\n\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\n\\n// NOTE: viewZ/eyeZ is < 0 when in front of the camera per OpenGL conventions\\n\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\n\\n// NOTE: https://twitter.com/gonnavis/status/1377183786949959682\\n\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 96, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/packing.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/packing.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nfloat roughnessFactor = roughness;\\n\\n#ifdef USE_ROUGHNESSMAP\\n\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\n\\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\n\\troughnessFactor *= texelRoughness.g;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 101, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_ROUGHNESSMAP\\n\\n\\tuniform sampler2D roughnessMap;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 102, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n\\n#endif\\n\\n#ifdef USE_SHADOWMAP\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): uniforms for area light shadows\\n\\n\\t#endif\\n\\t*/\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 104, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n\\n#endif\\n\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n\\n#endif\\n\\n#ifdef USE_SHADOWMAP\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): create uniforms for area light shadows\\n\\n\\t#endif\\n\\t*/\\n\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\n\\t}\\n\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\n\\t}\\n\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\n\\t\\tfloat occlusion = 1.0;\\n\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\n\\t\\tfloat hard_shadow = step( compare , distribution.x ); // Hard Shadow\\n\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance ); // Chebeyshevs inequality\\n\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); // 0.3 reduces light bleed\\n\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\n\\t}\\n\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\n\\t\\tfloat shadow = 1.0;\\n\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\n\\t\\t// if ( something && something ) breaks ATI OpenGL shader compiler\\n\\t\\t// if ( all( something, something ) ) using this instead\\n\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\n\\t\\tif ( frustumTest ) {\\n\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\n\\t\\t#else // no percentage-closer filtering:\\n\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\n\\t\\t#endif\\n\\n\\t\\t}\\n\\n\\t\\treturn shadow;\\n\\n\\t}\\n\\n\\t// cubeToUV() maps a 3D direction vector suitable for cube texture mapping to a 2D\\n\\t// vector suitable for 2D texture mapping. This code uses the following layout for the\\n\\t// 2D texture:\\n\\t//\\n\\t// xzXZ\\n\\t// y Y\\n\\t//\\n\\t// Y - Positive y direction\\n\\t// y - Negative y direction\\n\\t// X - Positive x direction\\n\\t// x - Negative x direction\\n\\t// Z - Positive z direction\\n\\t// z - Negative z direction\\n\\t//\\n\\t// Source and test bed:\\n\\t// https://gist.github.com/tschw/da10c43c467ce8afd0c4\\n\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\n\\t\\t// Number of texels to avoid at the edge of each square\\n\\n\\t\\tvec3 absV = abs( v );\\n\\n\\t\\t// Intersect unit cube\\n\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\n\\t\\t// Apply scale to avoid seams\\n\\n\\t\\t// two texels less per square (one texel will do for NEAREST)\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\n\\t\\t// Unwrap\\n\\n\\t\\t// space: -1 ... 1 range for each square\\n\\t\\t//\\n\\t\\t// #X##\\t\\tdim := ( 4 , 2 )\\n\\t\\t// # #\\t\\tcenter := ( 1 , 1 )\\n\\n\\t\\tvec2 planar = v.xy;\\n\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\n\\t\\t}\\n\\n\\t\\t// Transform to UV space\\n\\n\\t\\t// scale := 0.5 / dim\\n\\t\\t// translate := ( center + 0.5 ) / dim\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\n\\t}\\n\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\n\\t\\t// for point lights, the uniform @vShadowCoord is re-purposed to hold\\n\\t\\t// the vector from the light to the world-space position of the fragment.\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\n\\t\\t// dp = normalized distance from light to fragment position\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); // need to clamp?\\n\\t\\tdp += shadowBias;\\n\\n\\t\\t// bd3D = base direction 3D\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\n\\t\\t#else // no percentage-closer filtering\\n\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 103, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nfloat getShadowMask() {\\n\\n\\tfloat shadow = 1.0;\\n\\n\\t#ifdef USE_SHADOWMAP\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\tDirectionalLightShadow directionalLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\n\\tSpotLightShadow spotLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\tPointLightShadow pointLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): update shadow for Area light\\n\\n\\t#endif\\n\\t*/\\n\\n\\t#endif\\n\\n\\treturn shadow;\\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 106, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_SHADOWMAP ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_COORDS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t\\t// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\n\\t#endif\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_COORDS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): update vAreaShadowCoord with area light info\\n\\n\\t#endif\\n\\t*/\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 105, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_SKINNING\\n\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 107, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_SKINNING\\n\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\n\\tuniform highp sampler2D boneTexture;\\n\\tuniform int boneTextureSize;\\n\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\n\\t\\tfloat j = i * 4.0;\\n\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\n\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\n\\t\\ty = dy * ( y + 0.5 );\\n\\n\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\n\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\n\\t\\treturn bone;\\n\\n\\t}\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 108, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_SKINNING\\n\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 109, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_SPECULARMAP\\n\\n\\tuniform sampler2D specularMap;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 112, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\nfloat specularStrength;\\n\\n#ifdef USE_SPECULARMAP\\n\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n\\n#else\\n\\n\\tspecularStrength = 1.0;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 111, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_TRANSMISSION\\n\\n\\tmaterial.transmission = transmission;\\n\\t// material.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vUv ).r;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_THICKNESSMAP\\n\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\\n\\n\\t#endif\\n\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\n\\tvec4 transmission = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\n\\t// material.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\\n\\n\\t#ifndef DEFERRED_RENDER\\n\\t\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\\n\\t#endif\\n\\n#endif\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 115, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifndef saturate\\n// may have defined saturate() already\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n\\nuniform float toneMappingExposure;\\n\\n// exposure only\\nvec3 LinearToneMapping( vec3 color ) {\\n\\n\\treturn toneMappingExposure * color;\\n\\n}\\n\\n// source: https://www.cs.utah.edu/docs/techreports/2002/pdf/UUCS-02-001.pdf\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n\\n}\\n\\n// source: http://filmicworlds.com/blog/filmic-tonemapping-operators/\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\n\\t// optimized filmic operator by Jim Hejl and Richard Burgess-Dawson\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n\\n}\\n\\n// source: https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n\\n}\\n\\n// this implementation of ACES is modified to accommodate a brighter viewing environment.\\n// the scale factor of 1/0.6 is subjective. see discussion in #19621.\\n\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\n\\t// sRGB => XYZ => D65_2_D60 => AP1 => RRT_SAT\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ), // transposed from source\\n\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\n\\t// ODT_SAT => XYZ => D60_2_D65 => sRGB\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ), // transposed from source\\n\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\n\\tcolor = ACESInputMat * color;\\n\\n\\t// Apply RRT and ODT\\n\\tcolor = RRTAndODTFit( color );\\n\\n\\tcolor = ACESOutputMat * color;\\n\\n\\t// Clamp to [0, 1]\\n\\treturn saturate( color );\\n\\n}\\n\\nvec3 CustomToneMapping( vec3 color ) { return color; }\\n\";return module.exports;});", "requires": [], "buildLevel": 114, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n\\n#ifdef USE_TRANSMISSION\\n\\n\\t// Transmission code is based on glTF-Sampler-Viewer\\n\\t// https://github.com/KhronosGroup/glTF-Sample-Viewer\\n\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\n\\t\\tuniform sampler2D transmissionMap;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_THICKNESSMAP\\n\\n\\t\\tuniform sampler2D thicknessMap;\\n\\n\\t#endif\\n\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform sampler2D transmissionSamplerDepthMap;\\n\\tuniform vec3 depthScatteringShallowestColor;\\n\\tuniform vec3 depthScatteringDeepestColor;\\n\\tuniform float colorScatteringDistance;\\n\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\n\\tvarying vec3 vWorldPosition;\\n\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\n\\t\\t// Direction of refracted light.\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\n\\t\\t// Compute rotation-independant scaling of the model matrix.\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\n\\t\\t// The thickness is specified in local space.\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\n\\t}\\n\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\n\\t\\t// Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and\\n\\t\\t// an IOR of 1.5 results in the default amount of microfacet refraction.\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\n\\t}\\n\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\n\\t\\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\n\\t\\t#ifdef texture2DLodEXT\\n\\n\\t\\t\\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\n\\t\\t#else\\n\\n\\t\\t\\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n\\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\n\\t\\tif ( attenuationDistance == 0.0 ) {\\n\\n\\t\\t\\t// Attenuation distance is +\\u221E (which we indicate by zero), i.e. the transmitted color is not attenuated at all.\\n\\t\\t\\treturn radiance;\\n\\n\\t\\t} else {\\n\\n\\t\\t\\t// Compute light attenuation using Beer's law.\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); // Beer's law\\n\\t\\t\\treturn transmittance * radiance;\\n\\n\\t\\t}\\n\\n\\t}\\n\\n\\tfloat getTransmissionDepthScatteringDistance(\\n\\t\\tconst in vec3 n,\\n\\t\\tconst in vec3 v,\\n\\t\\tconst in vec3 position,\\n\\t\\tconst in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix,\\n\\t\\tconst in mat4 projMatrix,\\n\\t\\tconst in float ior,\\n\\t\\tconst in float thickness\\n\\t) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, 0.0, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\n\\t\\t// Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\n\\t\\tfloat near = (projectionMatrix[3][2]) / (projectionMatrix[2][2] - 1.0);\\n\\t\\tfloat far = (projectionMatrix[3][2]) / (projectionMatrix[2][2] + 1.0);\\n\\n\\t\\tfloat transmissionDepth = texture(transmissionSamplerDepthMap, refractionCoords).r;\\n\\t\\tfloat transmissionViewZ = perspectiveDepthToViewZ(transmissionDepth, near, far);\\n\\t\\tfloat viewZ = perspectiveDepthToViewZ(gl_FragCoord.z, near, far);\\n\\n\\t\\treturn (-transmissionViewZ) - (-viewZ);\\n\\n\\t\\t// float ratio = clamp( ( (-transmissionViewZ) - (-viewZ) ) / thickness, 0.0, 1.0 );\\n\\t\\t// return pow( ratio, 1.0 / 2.0 );\\n\\t}\\n\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\n\\t\\t\\t\\n\\t\\t#ifdef WATER\\n\\n\\t\\tfloat scatteringDistance = getTransmissionDepthScatteringDistance( n, v, position, modelMatrix, viewMatrix, projMatrix, ior, thickness );\\n\\t\\tfloat thicknessScatteringRatio = clamp( scatteringDistance / thickness, 0.0, 1.0 );\\n\\t\\tthicknessScatteringRatio = pow( thicknessScatteringRatio, 1.0 / 2.0 );\\n\\n\\t\\tfloat _thickness = thickness * thicknessScatteringRatio;\\n\\n\\t\\t#else\\n\\n\\t\\tfloat _thickness = thickness;\\n\\n\\t\\t#endif\\n\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, _thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\n\\t\\t// Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\n\\t\\t// Sample framebuffer to get pixel the refracted ray hits.\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\t\\n\\t\\t#ifdef WATER\\n\\t\\tfloat colorScatteringRatio = clamp( scatteringDistance / colorScatteringDistance, 0.0, 1.0 );\\n\\t\\tcolorScatteringRatio = pow( colorScatteringRatio, 1.0 / 2.0 );\\n\\t\\tvec3 _diffuseColor = mix( depthScatteringShallowestColor, depthScatteringDeepestColor, colorScatteringRatio );\\n\\n\\t\\tattenuatedColor = mix(attenuatedColor, _diffuseColor, colorScatteringRatio);\\n\\t\\t#else\\n\\t\\tattenuatedColor *= diffuseColor;\\n\\t\\t#endif\\n\\n\\t\\t// Get the specular component.\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, transmittedLight.a );\\n\\n\\t}\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 116, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( TONE_MAPPING )\\n\\n\\t //gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 113, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\n\\tvarying vec2 vUv2;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 120, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_SKINNING\\n\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\n\\t#endif\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 110, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\n\\tuniform mat3 uv2Transform;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 121, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 122, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\n\\t#ifdef USE_INSTANCING\\n\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\n\\t#endif\\n\\n\\tworldPosition = modelMatrix * worldPosition;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 123, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\n\\tvarying vec2 vUv;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 117, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/background.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/background.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\nvarying vec2 vUv;\\nuniform mat3 uvTransform;\\n\\nvoid main() {\\n\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#include \\n\\nuniform sampler2D t2D;\\n\\nvarying vec2 vUv;\\n\\nvoid main() {\\n\\n\\tgl_FragColor = texture2D( t2D, vUv );\\n\\n\\t// #ifdef DECODE_VIDEO_TEXTURE\\n\\n\\t// \\t// inline sRGB decode (TODO: Remove this code when https://crbug.com/1256340 is solved)\\n\\n\\t// \\tgl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );\\n\\n\\t// #endif\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t//\\u975E\\u5EF6\\u8FDF\\u6E32\\u67D3\\u4E0B\\u8986\\u76D6gbuffer_fragment\\u4E2D\\u5BF9\\u6DF1\\u5EA6\\u7684\\u5199\\u5165\\uFF0C\\u4F7F\\u7528\\u56FA\\u5B9A\\u7684\\u6570\\u503C1\\uFF0C\\u6BD4\\u8F83\\u51C6\\u786E\\n\\t#ifndef DEFERRED_RENDER\\n\\tgDepth.r = 1.0;\\n\\t#endif\\n\\t\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 126, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/background.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/background.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/cube.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/cube.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\nvarying vec3 vWorldDirection;\\n\\n#include \\n\\nvoid main() {\\n\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t#include \\n\\t#include \\n\\n\\tgl_Position.z = gl_Position.w; // set z to camera.far\\n\\n}\\n\";\n var fragment = exports.fragment = \"\\n#define PI 3.141592653589793\\n#include \\nuniform float opacity;\\nuniform float envMapRotateY;\\n\\nvarying vec3 vWorldDirection;\\n\\n#include \\n\\nmat4 makeRotationY( const in float theta ) {\\n\\n\\tfloat c = cos( theta ), s = sin( theta );\\n\\n\\treturn mat4(\\n\\t\\tc, 0.0, -s, 0.0,\\n\\t\\t0, 1.0, 0.0, 0.0,\\n\\t\\ts, 0.0, c, 0.0,\\n\\t\\t0.0, 0.0, 0.0, 1.0\\n\\t);\\n\\n}\\n\\nvoid main() {\\n\\n\\tmat4 m = makeRotationY(envMapRotateY);\\n\\n\\tvec4 _viewDir = vec4(vWorldDirection, 1.0);\\n\\t_viewDir = m * _viewDir;\\n\\n\\tvec3 vReflect = _viewDir.xyz;\\n\\t#include \\n\\n\\tgl_FragColor = envColor * envMapIntensity;\\n\\tgl_FragColor.a *= opacity;\\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 127, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/cube.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/cube.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_UV\\n\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 119, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.default = void 0;\n var _default = exports.default = \"\\n#ifdef USE_UV\\n\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\n\\t\\tvec2 vUv;\\n\\n\\t#else\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t#endif\\n\\n\\tuniform mat3 uvTransform;\\n\\n#endif\\n\";return module.exports;});", "requires": [], "buildLevel": 118, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js", "fileName": "/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/distanceRGBA.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#define DISTANCE\\n\\nvarying vec3 vWorldPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\t#include \\n\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\n\\t#endif\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tvWorldPosition = worldPosition.xyz;\\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#define DISTANCE\\n\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main () {\\n\\n\\t#include \\n\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist ); // clamp to [ 0, 1 ]\\n\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n\\t#include \\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 129, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/depth.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/depth.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\\nvarying vec2 vHighPrecisionZW;\\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\t#include \\n\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\n\\t#endif\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t//\\u9634\\u5F71\\u8D34\\u56FE\\u4E0D\\u9700\\u8981TAA\\u7684\\u6296\\u52A8\\n\\t// #include \\n\\tvec4 mvPosition = vec4( transformed, 1.0 );\\n\\n\\t#ifdef USE_INSTANCING\\n\\n\\t\\tmvPosition = instanceMatrix * mvPosition;\\n\\n\\t#endif\\n\\n\\tmvPosition = modelViewMatrix * mvPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\n\\t#include \\n\\t#include \\n\\n\\tvHighPrecisionZW = gl_Position.zw;\\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#if DEPTH_PACKING == 3200\\n\\n\\tuniform float opacity;\\n\\n#endif\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvarying vec2 vHighPrecisionZW;\\n\\nvoid main() {\\n\\n\\t// #include \\n\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\n\\t#if DEPTH_PACKING == 3200\\n\\n\\t\\tdiffuseColor.a = opacity;\\n\\n\\t#endif\\n\\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n\\t#include \\n\\n\\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\n\\t#if DEPTH_PACKING == 3200\\n\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\n\\t#elif DEPTH_PACKING == 3201\\n\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\n\\t#endif\\n\\n\\t// #include \\n\\t#ifdef DEFERRED_RENDER\\n\\tgTRMA = vec4( tag/255.0, 0.0, 0.0, 0.0 );\\n gNormalDepth = vec4( 0.0, 0.0, 0.0, 1.0); //\\u975EPBR\\u6750\\u8D28\\u7684\\u6DF1\\u5EA6\\u9ED8\\u8BA4\\u662F\\u65E0\\u9650\\u8FDC\\u7684\\uFF0C\\u4F8B\\u5982\\u80CC\\u666F\\n gPositionID = vec4(0.0, 0.0, 0.0, 0.0);\\n\\t#endif\\n\\t//\\u4E0D\\u8FDB\\u884C\\u989C\\u8272\\u7A7A\\u95F4\\u8F6C\\u6362\\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 128, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/depth.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/depth.glsl.js" }, "pandav:/src/renderers/shaders/ShaderChunk.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/begin_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bsdfs.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/common.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/output_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/packing.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/project_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_pars_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_fragment.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/background.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/cube.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/depth.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/distanceRGBA.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/equirect.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/linedashed.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshbasic.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshlambert.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshmatcap.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshnormal.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphong.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphysical.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshtoon.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/points.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/shadow.glsl\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/sprite.glsl\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ShaderChunk = void 0;\n var _alphamap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl'));\n var _alphamap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl'));\n var _alphatest_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl'));\n var _alphatest_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl'));\n var _aomap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl'));\n var _aomap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl'));\n var _begin_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/begin_vertex.glsl'));\n var _beginnormal_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl'));\n var _bsdfsGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bsdfs.glsl'));\n var _iridescence_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl'));\n var _bumpmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl'));\n var _clipping_planes_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl'));\n var _clipping_planes_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl'));\n var _clipping_planes_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl'));\n var _clipping_planes_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl'));\n var _color_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_fragment.glsl'));\n var _color_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl'));\n var _color_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl'));\n var _color_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/color_vertex.glsl'));\n var _commonGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/common.glsl'));\n var _cube_uv_reflection_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl'));\n var _defaultnormal_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl'));\n var _displacementmap_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl'));\n var _displacementmap_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl'));\n var _emissivemap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl'));\n var _emissivemap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl'));\n var _encodings_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl'));\n var _encodings_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl'));\n var _envmap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl'));\n var _envmap_common_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl'));\n var _envmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl'));\n var _envmap_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl'));\n var _envmap_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl'));\n var _envmap_physical_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_vertex.glsl'));\n var _envmap_physical_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_vertex.glsl'));\n var _fog_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_vertex.glsl'));\n var _fog_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl'));\n var _fog_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_fragment.glsl'));\n var _fog_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl'));\n var _gradientmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl'));\n var _lightmap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl'));\n var _lightmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl'));\n var _lights_lambert_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl'));\n var _lights_lambert_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl'));\n var _lights_pars_beginGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl'));\n var _envmap_physical_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl'));\n var _lights_toon_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl'));\n var _lights_toon_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl'));\n var _lights_phong_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl'));\n var _lights_phong_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl'));\n var _lights_physical_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl'));\n var _lights_physical_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl'));\n var _lights_fragment_beginGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl'));\n var _lights_fragment_mapsGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl'));\n var _lights_fragment_endGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl'));\n var _logdepthbuf_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl'));\n var _logdepthbuf_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl'));\n var _logdepthbuf_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl'));\n var _logdepthbuf_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl'));\n var _map_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_fragment.glsl'));\n var _map_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl'));\n var _map_particle_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl'));\n var _map_particle_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl'));\n var _metalnessmap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl'));\n var _metalnessmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl'));\n var _morphcolor_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl'));\n var _morphnormal_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl'));\n var _morphtarget_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl'));\n var _morphtarget_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl'));\n var _normal_fragment_beginGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl'));\n var _normal_fragment_mapsGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl'));\n var _normal_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl'));\n var _normal_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl'));\n var _normal_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normal_vertex.glsl'));\n var _normalmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl'));\n var _clearcoat_normal_fragment_beginGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl'));\n var _clearcoat_normal_fragment_mapsGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl'));\n var _clearcoat_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl'));\n var _iridescence_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl'));\n var _output_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/output_fragment.glsl'));\n var _packingGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/packing.glsl'));\n var _premultiplied_alpha_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl'));\n var _project_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/project_vertex.glsl'));\n var _dithering_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl'));\n var _dithering_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl'));\n var _roughnessmap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl'));\n var _roughnessmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl'));\n var _shadowmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl'));\n var _shadowmap_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl'));\n var _shadowmap_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl'));\n var _shadowmask_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl'));\n var _skinbase_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl'));\n var _skinning_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl'));\n var _skinning_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl'));\n var _skinnormal_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl'));\n var _specularmap_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl'));\n var _specularmap_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl'));\n var _tonemapping_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl'));\n var _tonemapping_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl'));\n var _transmission_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl'));\n var _transmission_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl'));\n var _uv_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl'));\n var _uv_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl'));\n var _uv_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv_vertex.glsl'));\n var _uv2_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl'));\n var _uv2_pars_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl'));\n var _uv2_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl'));\n var _worldpos_vertexGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl'));\n var _gbuffer_pars_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_pars_fragment.glsl'));\n var _gbuffer_fragmentGlsl = _interopRequireDefault(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk/gbuffer_fragment.glsl'));\n var background = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/background.glsl'));\n var cube = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/cube.glsl'));\n var depth = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/depth.glsl'));\n var distanceRGBA = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/distanceRGBA.glsl'));\n var equirect = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/equirect.glsl'));\n var linedashed = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/linedashed.glsl'));\n var meshbasic = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshbasic.glsl'));\n var meshlambert = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshlambert.glsl'));\n var meshmatcap = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshmatcap.glsl'));\n var meshnormal = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshnormal.glsl'));\n var meshphong = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphong.glsl'));\n var meshphysical = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphysical.glsl'));\n var meshtoon = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshtoon.glsl'));\n var points = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/points.glsl'));\n var shadow = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/shadow.glsl'));\n var sprite = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/sprite.glsl'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var ShaderChunk = exports.ShaderChunk = {\n alphamap_fragment: _alphamap_fragmentGlsl.default,\n alphamap_pars_fragment: _alphamap_pars_fragmentGlsl.default,\n alphatest_fragment: _alphatest_fragmentGlsl.default,\n alphatest_pars_fragment: _alphatest_pars_fragmentGlsl.default,\n aomap_fragment: _aomap_fragmentGlsl.default,\n aomap_pars_fragment: _aomap_pars_fragmentGlsl.default,\n begin_vertex: _begin_vertexGlsl.default,\n beginnormal_vertex: _beginnormal_vertexGlsl.default,\n bsdfs: _bsdfsGlsl.default,\n iridescence_fragment: _iridescence_fragmentGlsl.default,\n bumpmap_pars_fragment: _bumpmap_pars_fragmentGlsl.default,\n clipping_planes_fragment: _clipping_planes_fragmentGlsl.default,\n clipping_planes_pars_fragment: _clipping_planes_pars_fragmentGlsl.default,\n clipping_planes_pars_vertex: _clipping_planes_pars_vertexGlsl.default,\n clipping_planes_vertex: _clipping_planes_vertexGlsl.default,\n color_fragment: _color_fragmentGlsl.default,\n color_pars_fragment: _color_pars_fragmentGlsl.default,\n color_pars_vertex: _color_pars_vertexGlsl.default,\n color_vertex: _color_vertexGlsl.default,\n common: _commonGlsl.default,\n cube_uv_reflection_fragment: _cube_uv_reflection_fragmentGlsl.default,\n defaultnormal_vertex: _defaultnormal_vertexGlsl.default,\n displacementmap_pars_vertex: _displacementmap_pars_vertexGlsl.default,\n displacementmap_vertex: _displacementmap_vertexGlsl.default,\n emissivemap_fragment: _emissivemap_fragmentGlsl.default,\n emissivemap_pars_fragment: _emissivemap_pars_fragmentGlsl.default,\n encodings_fragment: _encodings_fragmentGlsl.default,\n encodings_pars_fragment: _encodings_pars_fragmentGlsl.default,\n envmap_fragment: _envmap_fragmentGlsl.default,\n envmap_common_pars_fragment: _envmap_common_pars_fragmentGlsl.default,\n envmap_pars_fragment: _envmap_pars_fragmentGlsl.default,\n envmap_pars_vertex: _envmap_pars_vertexGlsl.default,\n envmap_physical_pars_fragment: _envmap_physical_pars_fragmentGlsl.default,\n envmap_vertex: _envmap_vertexGlsl.default,\n envmap_physical_pars_vertex: _envmap_physical_pars_vertexGlsl.default,\n envmap_physical_vertex: _envmap_physical_vertexGlsl.default,\n fog_vertex: _fog_vertexGlsl.default,\n fog_pars_vertex: _fog_pars_vertexGlsl.default,\n fog_fragment: _fog_fragmentGlsl.default,\n fog_pars_fragment: _fog_pars_fragmentGlsl.default,\n gradientmap_pars_fragment: _gradientmap_pars_fragmentGlsl.default,\n lightmap_fragment: _lightmap_fragmentGlsl.default,\n lightmap_pars_fragment: _lightmap_pars_fragmentGlsl.default,\n lights_lambert_fragment: _lights_lambert_fragmentGlsl.default,\n lights_lambert_pars_fragment: _lights_lambert_pars_fragmentGlsl.default,\n lights_pars_begin: _lights_pars_beginGlsl.default,\n lights_toon_fragment: _lights_toon_fragmentGlsl.default,\n lights_toon_pars_fragment: _lights_toon_pars_fragmentGlsl.default,\n lights_phong_fragment: _lights_phong_fragmentGlsl.default,\n lights_phong_pars_fragment: _lights_phong_pars_fragmentGlsl.default,\n lights_physical_fragment: _lights_physical_fragmentGlsl.default,\n lights_physical_pars_fragment: _lights_physical_pars_fragmentGlsl.default,\n lights_fragment_begin: _lights_fragment_beginGlsl.default,\n lights_fragment_maps: _lights_fragment_mapsGlsl.default,\n lights_fragment_end: _lights_fragment_endGlsl.default,\n logdepthbuf_fragment: _logdepthbuf_fragmentGlsl.default,\n logdepthbuf_pars_fragment: _logdepthbuf_pars_fragmentGlsl.default,\n logdepthbuf_pars_vertex: _logdepthbuf_pars_vertexGlsl.default,\n logdepthbuf_vertex: _logdepthbuf_vertexGlsl.default,\n map_fragment: _map_fragmentGlsl.default,\n map_pars_fragment: _map_pars_fragmentGlsl.default,\n map_particle_fragment: _map_particle_fragmentGlsl.default,\n map_particle_pars_fragment: _map_particle_pars_fragmentGlsl.default,\n metalnessmap_fragment: _metalnessmap_fragmentGlsl.default,\n metalnessmap_pars_fragment: _metalnessmap_pars_fragmentGlsl.default,\n morphcolor_vertex: _morphcolor_vertexGlsl.default,\n morphnormal_vertex: _morphnormal_vertexGlsl.default,\n morphtarget_pars_vertex: _morphtarget_pars_vertexGlsl.default,\n morphtarget_vertex: _morphtarget_vertexGlsl.default,\n normal_fragment_begin: _normal_fragment_beginGlsl.default,\n normal_fragment_maps: _normal_fragment_mapsGlsl.default,\n normal_pars_fragment: _normal_pars_fragmentGlsl.default,\n normal_pars_vertex: _normal_pars_vertexGlsl.default,\n normal_vertex: _normal_vertexGlsl.default,\n normalmap_pars_fragment: _normalmap_pars_fragmentGlsl.default,\n clearcoat_normal_fragment_begin: _clearcoat_normal_fragment_beginGlsl.default,\n clearcoat_normal_fragment_maps: _clearcoat_normal_fragment_mapsGlsl.default,\n clearcoat_pars_fragment: _clearcoat_pars_fragmentGlsl.default,\n iridescence_pars_fragment: _iridescence_pars_fragmentGlsl.default,\n output_fragment: _output_fragmentGlsl.default,\n packing: _packingGlsl.default,\n premultiplied_alpha_fragment: _premultiplied_alpha_fragmentGlsl.default,\n project_vertex: _project_vertexGlsl.default,\n dithering_fragment: _dithering_fragmentGlsl.default,\n dithering_pars_fragment: _dithering_pars_fragmentGlsl.default,\n roughnessmap_fragment: _roughnessmap_fragmentGlsl.default,\n roughnessmap_pars_fragment: _roughnessmap_pars_fragmentGlsl.default,\n shadowmap_pars_fragment: _shadowmap_pars_fragmentGlsl.default,\n shadowmap_pars_vertex: _shadowmap_pars_vertexGlsl.default,\n shadowmap_vertex: _shadowmap_vertexGlsl.default,\n shadowmask_pars_fragment: _shadowmask_pars_fragmentGlsl.default,\n skinbase_vertex: _skinbase_vertexGlsl.default,\n skinning_pars_vertex: _skinning_pars_vertexGlsl.default,\n skinning_vertex: _skinning_vertexGlsl.default,\n skinnormal_vertex: _skinnormal_vertexGlsl.default,\n specularmap_fragment: _specularmap_fragmentGlsl.default,\n specularmap_pars_fragment: _specularmap_pars_fragmentGlsl.default,\n tonemapping_fragment: _tonemapping_fragmentGlsl.default,\n tonemapping_pars_fragment: _tonemapping_pars_fragmentGlsl.default,\n transmission_fragment: _transmission_fragmentGlsl.default,\n transmission_pars_fragment: _transmission_pars_fragmentGlsl.default,\n uv_pars_fragment: _uv_pars_fragmentGlsl.default,\n uv_pars_vertex: _uv_pars_vertexGlsl.default,\n uv_vertex: _uv_vertexGlsl.default,\n uv2_pars_fragment: _uv2_pars_fragmentGlsl.default,\n uv2_pars_vertex: _uv2_pars_vertexGlsl.default,\n uv2_vertex: _uv2_vertexGlsl.default,\n worldpos_vertex: _worldpos_vertexGlsl.default,\n background_vert: background.vertex,\n background_frag: background.fragment,\n cube_vert: cube.vertex,\n cube_frag: cube.fragment,\n depth_vert: depth.vertex,\n depth_frag: depth.fragment,\n distanceRGBA_vert: distanceRGBA.vertex,\n distanceRGBA_frag: distanceRGBA.fragment,\n equirect_vert: equirect.vertex,\n equirect_frag: equirect.fragment,\n linedashed_vert: linedashed.vertex,\n linedashed_frag: linedashed.fragment,\n meshbasic_vert: meshbasic.vertex,\n meshbasic_frag: meshbasic.fragment,\n meshlambert_vert: meshlambert.vertex,\n meshlambert_frag: meshlambert.fragment,\n meshmatcap_vert: meshmatcap.vertex,\n meshmatcap_frag: meshmatcap.fragment,\n meshnormal_vert: meshnormal.vertex,\n meshnormal_frag: meshnormal.fragment,\n meshphong_vert: meshphong.vertex,\n meshphong_frag: meshphong.fragment,\n meshphysical_vert: meshphysical.vertex,\n meshphysical_frag: meshphysical.fragment,\n meshtoon_vert: meshtoon.vertex,\n meshtoon_frag: meshtoon.fragment,\n points_vert: points.vertex,\n points_frag: points.fragment,\n shadow_vert: shadow.vertex,\n shadow_frag: shadow.fragment,\n sprite_vert: sprite.vertex,\n sprite_frag: sprite.fragment,\n gbuffer_pars_fragment: _gbuffer_pars_fragmentGlsl.default,\n gbuffer_fragment: _gbuffer_fragmentGlsl.default };return module.exports;});", "requires": [ "pandav:/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/common.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_physical_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_physical_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/packing.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/gbuffer_pars_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderChunk/gbuffer_fragment.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/background.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/cube.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/depth.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/equirect.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/linedashed.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/meshbasic.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/meshlambert.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/meshnormal.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/meshphong.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/meshphysical.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/meshtoon.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/points.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/shadow.glsl.js", "pandav:/src/renderers/shaders/ShaderLib/sprite.glsl.js" ], "buildLevel": 15, "outputDir": "/com/three/0.145.0/src/renderers/shaders", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderChunk.js", "fileName": "/src/renderers/shaders/ShaderChunk.js" }, "pandav:/src/renderers/shaders/ShaderLib/meshbasic.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshbasic.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\n\\t#endif\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\";\n var fragment = exports.fragment = \"\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\n#ifndef FLAT_SHADED\\n\\n\\tvarying vec3 vNormal;\\n\\n#endif\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\n\\t// accumulation (baked indirect lighting only)\\n\\t#ifdef USE_LIGHTMAP\\n\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\n\\t#else\\n\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\n\\t#endif\\n\\n\\t// modulation\\n\\t#include \\n\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 132, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshbasic.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/meshbasic.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/linedashed.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/linedashed.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\nuniform float scale;\\nattribute float lineDistance;\\n\\nvarying float vLineDistance;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\tvLineDistance = scale * lineDistance;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\nuniform float dashSize;\\nuniform float totalSize;\\n\\nvarying float vLineDistance;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\n\\t\\tdiscard;\\n\\n\\t}\\n\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include \\n\\t#include \\n\\n\\toutgoingLight = diffuseColor.rgb; // simple shader\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 131, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/linedashed.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/linedashed.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/equirect.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/equirect.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\nvarying vec3 vWorldDirection;\\n\\n#include \\n\\nvoid main() {\\n\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\nuniform sampler2D tEquirect;\\n\\nvarying vec3 vWorldDirection;\\n\\n#include \\n#include \\n\\nvoid main() {\\n\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 130, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/equirect.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/equirect.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/meshlambert.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshlambert.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#define LAMBERT\\n\\nvarying vec3 vViewPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#define LAMBERT\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t// accumulation\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t// modulation\\n\\t#include \\n\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 133, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshlambert.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/meshlambert.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/meshphong.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphong.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#define PHONG\\n\\nvarying vec3 vViewPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#define PHONG\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t// accumulation\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t// modulation\\n\\t#include \\n\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 136, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphong.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/meshphong.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshmatcap.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#define MATCAP\\n\\nvarying vec3 vViewPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#define MATCAP\\n\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\n\\nvarying vec3 vViewPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; // 0.495 to remove artifacts caused by undersized matcap disks\\n\\n\\t#ifdef USE_MATCAP\\n\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\n\\t#else\\n\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); // default if matcap is missing\\n\\n\\t#endif\\n\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 134, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/meshphysical.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphysical.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#define STANDARD\\n\\nvarying vec3 vViewPosition;\\n\\n#ifdef USE_TRANSMISSION\\n\\n\\tvarying vec3 vWorldPosition;\\n\\n#endif\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n\\t#endif\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#define STANDARD\\n\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define SPECULAR\\n#endif\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float reflectivityDecay;\\nuniform float opacity;\\n\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n\\n#ifdef SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\n\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n\\n\\t#ifdef USE_SPECULARCOLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n#endif\\n\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\n\\nvarying vec3 vViewPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\n#ifndef DEFERRED_RENDER\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#endif\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#ifndef DEFERRED_RENDER\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#endif\\n\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#ifndef DEFERRED_RENDER\\n\\n\\t// accumulation\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t// modulation\\n\\t#include \\n\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\n\\t#include \\n\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular * (1.0 - reflectivityDecay) + totalEmissiveRadiance;\\n\\n\\t#ifdef USE_SHEEN\\n\\n\\t\\t// Sheen energy compensation approximation calculation can be found at the end of\\n\\t\\t// https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\\n\\n\\t#endif\\n\\n\\t#else\\n\\n\\tvec3 outgoingLight = diffuseColor.rgb;\\n\\n\\t#endif\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n\\t// if(vCSMIndex == 0){\\n\\t// \\tgl_FragColor.rgb *= vec3(1.0,0.0,0.0);\\n\\t// }else if(vCSMIndex == 1){\\n\\t// \\tgl_FragColor.rgb *= vec3(0.0,1.0,0.0);\\n\\t// }else if(vCSMIndex == 2){\\n\\t// \\tgl_FragColor.rgb *= vec3(0.0,0.0,1.0);\\n\\t// }else if(vCSMIndex == 3){\\n\\t// \\tgl_FragColor.rgb *= vec3(1.0,1.0,0.0);\\n\\t// }\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 137, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshphysical.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/meshphysical.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/meshtoon.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshtoon.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#define TOON\\n\\nvarying vec3 vViewPosition;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#define TOON\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t// accumulation\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t// modulation\\n\\t#include \\n\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 138, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshtoon.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/meshtoon.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/meshnormal.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshnormal.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n\\n#define NORMAL\\n\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvarying vec3 vViewPosition;\\n\\n#endif\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n#endif\\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\n\\n#define NORMAL\\n\\nuniform float opacity;\\n\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvarying vec3 vViewPosition;\\n\\n#endif\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n\\n\\t#ifdef OPAQUE\\n\\n\\t\\tgl_FragColor.a = 1.0;\\n\\n\\t#endif\\n\\n\\t#include \\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 135, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/meshnormal.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/meshnormal.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/points.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/points.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\nuniform float size;\\nuniform float scale;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\tgl_PointSize = size;\\n\\n\\t#ifdef USE_SIZEATTENUATION\\n\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\n\\t#endif\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\";\n var fragment = exports.fragment = \"\\n\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\toutgoingLight = diffuseColor.rgb;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 139, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/points.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/points.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/vsm.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/vsm.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\nvoid main() {\\n\\n\\tgl_Position = vec4( position, 1.0 );\\n\\n}\\n\";\n var fragment = exports.fragment = \"\\n\\nuniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n\\n#include \\n#include \\n\\nvoid main() {\\n\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\n\\t// This seems totally useless but it's a crazy work around for a Adreno compiler bug\\n\\t// float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\n\\t\\t#else\\n\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n\\t#include \\n\\n}\\n\\n\";return module.exports;});", "requires": [], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/vsm.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/vsm.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/shadow.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/shadow.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\";\n var fragment = exports.fragment = \"\\nuniform vec3 color;\\nuniform float opacity;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 140, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/shadow.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/shadow.glsl.js" }, "pandav:/src/renderers/shaders/ShaderLib/sprite.glsl.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/sprite.glsl\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.vertex = exports.fragment = void 0;\n var vertex = exports.vertex = \"\\nuniform float rotation;\\nuniform vec2 center;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\n\\t#ifndef USE_SIZEATTENUATION\\n\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\n\\t#endif\\n\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\n\\tmvPosition.xy += rotatedPosition;\\n\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\n}\\n\\n\";\n var fragment = exports.fragment = \"\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\nvoid main() {\\n\\n\\t#include \\n\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\n\\toutgoingLight = diffuseColor.rgb;\\n\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t// #include \\n\\t#include \\n\\n}\\n\";return module.exports;});", "requires": [], "buildLevel": 141, "outputDir": "/com/three/0.145.0/src/renderers/shaders/ShaderLib", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib/sprite.glsl.js", "fileName": "/src/renderers/shaders/ShaderLib/sprite.glsl.js" }, "pandav:/src/renderers/webgl/WebGLAnimation.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAnimation\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLAnimation = WebGLAnimation;\n function WebGLAnimation() {\n var context = null;\n var isAnimating = false;\n var animationLoop = null;\n var requestId = null;\n function onAnimationFrame(time, frame) {\n animationLoop(time, frame);\n requestId = context.requestAnimationFrame(onAnimationFrame);\n }\n return {\n start: function start() {\n if (isAnimating === true) return;\n if (animationLoop === null) return;\n requestId = context.requestAnimationFrame(onAnimationFrame);\n isAnimating = true;\n },\n stop: function stop() {\n context.cancelAnimationFrame(requestId);\n isAnimating = false;\n },\n setAnimationLoop: function setAnimationLoop(callback) {\n animationLoop = callback;\n },\n setContext: function setContext(value) {\n context = value;\n } };\n\n }return module.exports;});", "requires": [], "buildLevel": 10, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLAnimation.js", "fileName": "/src/renderers/webgl/WebGLAnimation.js" }, "pandav:/src/renderers/shaders/UniformsUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.UniformsUtils = void 0;\n exports.cloneUniforms = cloneUniforms;\n exports.cloneUniformsGroups = cloneUniformsGroups;\n exports.mergeUniforms = mergeUniforms;\n function cloneUniforms(src) {\n var dst = {};\n for (var u in src) {\n dst[u] = {};\n for (var p in src[u]) {\n var property = src[u][p];\n if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture || property.isQuaternion)) {\n dst[u][p] = property.clone();\n } else if (Array.isArray(property)) {\n dst[u][p] = property.slice();\n } else {\n dst[u][p] = property;\n }\n }\n }\n return dst;\n }\n function mergeUniforms(uniforms) {\n var merged = {};\n for (var u = 0; u < uniforms.length; u++) {\n var tmp = cloneUniforms(uniforms[u]);\n for (var p in tmp) {\n merged[p] = tmp[p];\n }\n }\n return merged;\n }\n function cloneUniformsGroups(src) {\n var dst = [];\n for (var u = 0; u < src.length; u++) {\n dst.push(src[u].clone());\n }\n return dst;\n }\n var UniformsUtils = exports.UniformsUtils = {\n clone: cloneUniforms,\n merge: mergeUniforms };return module.exports;});", "requires": [], "buildLevel": 11, "outputDir": "/com/three/0.145.0/src/renderers/shaders", "outputPath": "/com/three/0.145.0/src/renderers/shaders/UniformsUtils.js", "fileName": "/src/renderers/shaders/UniformsUtils.js" }, "pandav:/src/renderers/shaders/ShaderLib.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib\", [\"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/Matrix3\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.ShaderLib = void 0;\n var _ShaderChunk = require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _UniformsLib = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var ShaderLib = exports.ShaderLib = {\n basic: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.specularmap, _UniformsLib.UniformsLib.envmap, _UniformsLib.UniformsLib.aomap, _UniformsLib.UniformsLib.lightmap, _UniformsLib.UniformsLib.fog]),\n vertexShader: _ShaderChunk.ShaderChunk.meshbasic_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshbasic_frag },\n\n lambert: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.specularmap, _UniformsLib.UniformsLib.envmap, _UniformsLib.UniformsLib.aomap, _UniformsLib.UniformsLib.lightmap, _UniformsLib.UniformsLib.emissivemap, _UniformsLib.UniformsLib.bumpmap, _UniformsLib.UniformsLib.normalmap, _UniformsLib.UniformsLib.displacementmap, _UniformsLib.UniformsLib.fog, _UniformsLib.UniformsLib.lights, {\n emissive: {\n value: new _Color.Color(0x000000) } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.meshlambert_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshlambert_frag },\n\n phong: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.specularmap, _UniformsLib.UniformsLib.envmap, _UniformsLib.UniformsLib.aomap, _UniformsLib.UniformsLib.lightmap, _UniformsLib.UniformsLib.emissivemap, _UniformsLib.UniformsLib.bumpmap, _UniformsLib.UniformsLib.normalmap, _UniformsLib.UniformsLib.displacementmap, _UniformsLib.UniformsLib.fog, _UniformsLib.UniformsLib.lights, {\n emissive: {\n value: new _Color.Color(0x000000) },\n\n specular: {\n value: new _Color.Color(0x111111) },\n\n shininess: {\n value: 30 } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.meshphong_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshphong_frag },\n\n standard: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.envmap, _UniformsLib.UniformsLib.aomap, _UniformsLib.UniformsLib.lightmap, _UniformsLib.UniformsLib.emissivemap, _UniformsLib.UniformsLib.bumpmap, _UniformsLib.UniformsLib.normalmap, _UniformsLib.UniformsLib.displacementmap, _UniformsLib.UniformsLib.roughnessmap, _UniformsLib.UniformsLib.metalnessmap, _UniformsLib.UniformsLib.fog, _UniformsLib.UniformsLib.lights, {\n emissive: {\n value: new _Color.Color(0x000000) },\n\n roughness: {\n value: 1.0 },\n\n metalness: {\n value: 0.0 },\n\n reflectivityDecay: {\n value: 0.0 },\n\n envMapIntensity: {\n value: 1 } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.meshphysical_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshphysical_frag },\n\n toon: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.aomap, _UniformsLib.UniformsLib.lightmap, _UniformsLib.UniformsLib.emissivemap, _UniformsLib.UniformsLib.bumpmap, _UniformsLib.UniformsLib.normalmap, _UniformsLib.UniformsLib.displacementmap, _UniformsLib.UniformsLib.gradientmap, _UniformsLib.UniformsLib.fog, _UniformsLib.UniformsLib.lights, {\n emissive: {\n value: new _Color.Color(0x000000) } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.meshtoon_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshtoon_frag },\n\n matcap: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.bumpmap, _UniformsLib.UniformsLib.normalmap, _UniformsLib.UniformsLib.displacementmap, _UniformsLib.UniformsLib.fog, {\n matcap: {\n value: null } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.meshmatcap_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshmatcap_frag },\n\n points: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.points, _UniformsLib.UniformsLib.fog]),\n vertexShader: _ShaderChunk.ShaderChunk.points_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.points_frag },\n\n dashed: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.fog, {\n scale: {\n value: 1 },\n\n dashSize: {\n value: 1 },\n\n totalSize: {\n value: 2 } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.linedashed_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.linedashed_frag },\n\n depth: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.displacementmap]),\n vertexShader: _ShaderChunk.ShaderChunk.depth_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.depth_frag },\n\n normal: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.bumpmap, _UniformsLib.UniformsLib.normalmap, _UniformsLib.UniformsLib.displacementmap, {\n opacity: {\n value: 1.0 } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.meshnormal_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshnormal_frag },\n\n sprite: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.sprite, _UniformsLib.UniformsLib.fog]),\n vertexShader: _ShaderChunk.ShaderChunk.sprite_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.sprite_frag },\n\n background: {\n uniforms: {\n uvTransform: {\n value: new _Matrix.Matrix3() },\n\n t2D: {\n value: null } },\n\n\n vertexShader: _ShaderChunk.ShaderChunk.background_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.background_frag },\n\n cube: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.envmap, {\n opacity: {\n value: 1.0 },\n\n envMapIntensity: {\n value: 1.0 } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.cube_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.cube_frag },\n\n equirect: {\n uniforms: {\n tEquirect: {\n value: null } },\n\n\n vertexShader: _ShaderChunk.ShaderChunk.equirect_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.equirect_frag },\n\n distanceRGBA: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.common, _UniformsLib.UniformsLib.displacementmap, {\n referencePosition: {\n value: new _Vector2.Vector3() },\n\n nearDistance: {\n value: 1 },\n\n farDistance: {\n value: 1000 } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.distanceRGBA_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.distanceRGBA_frag },\n\n shadow: {\n uniforms: (0, _UniformsUtils.mergeUniforms)([_UniformsLib.UniformsLib.lights, _UniformsLib.UniformsLib.fog, {\n color: {\n value: new _Color.Color(0x00000) },\n\n opacity: {\n value: 1.0 } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.shadow_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.shadow_frag } };\n\n\n ShaderLib.physical = {\n uniforms: (0, _UniformsUtils.mergeUniforms)([ShaderLib.standard.uniforms, {\n clearcoat: {\n value: 0 },\n\n clearcoatMap: {\n value: null },\n\n clearcoatRoughness: {\n value: 0 },\n\n clearcoatRoughnessMap: {\n value: null },\n\n clearcoatNormalScale: {\n value: new _Vector.Vector2(1, 1) },\n\n clearcoatNormalMap: {\n value: null },\n\n iridescence: {\n value: 0 },\n\n iridescenceMap: {\n value: null },\n\n iridescenceIOR: {\n value: 1.3 },\n\n iridescenceThicknessMinimum: {\n value: 100 },\n\n iridescenceThicknessMaximum: {\n value: 400 },\n\n iridescenceThicknessMap: {\n value: null },\n\n sheen: {\n value: 0 },\n\n sheenColor: {\n value: new _Color.Color(0x000000) },\n\n sheenColorMap: {\n value: null },\n\n sheenRoughness: {\n value: 1 },\n\n sheenRoughnessMap: {\n value: null },\n\n transmission: {\n value: 0 },\n\n transmissionMap: {\n value: null },\n\n transmissionSamplerSize: {\n value: new _Vector.Vector2() },\n\n transmissionSamplerMap: {\n value: null },\n\n thickness: {\n value: 0 },\n\n thicknessMap: {\n value: null },\n\n attenuationDistance: {\n value: 0 },\n\n attenuationColor: {\n value: new _Color.Color(0x000000) },\n\n specularIntensity: {\n value: 1 },\n\n specularIntensityMap: {\n value: null },\n\n specularColor: {\n value: new _Color.Color(1, 1, 1) },\n\n specularColorMap: {\n value: null } }]),\n\n\n vertexShader: _ShaderChunk.ShaderChunk.meshphysical_vert,\n fragmentShader: _ShaderChunk.ShaderChunk.meshphysical_frag };return module.exports;});", "requires": [ "pandav:/src/renderers/shaders/ShaderChunk.js", "pandav:/src/renderers/shaders/UniformsUtils.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/renderers/shaders/UniformsLib.js", "pandav:/src/math/Color.js", "pandav:/src/math/Matrix3.js" ], "buildLevel": 14, "outputDir": "/com/three/0.145.0/src/renderers/shaders", "outputPath": "/com/three/0.145.0/src/renderers/shaders/ShaderLib.js", "fileName": "/src/renderers/shaders/ShaderLib.js" }, "pandav:/src/renderers/webgl/WebGLBufferRenderer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBufferRenderer\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLBufferRenderer = WebGLBufferRenderer;\n function WebGLBufferRenderer(gl, extensions, info, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var mode;\n function setMode(value) {\n mode = value;\n }\n function render(start, count) {\n gl.drawArrays(mode, start, count);\n info.update(count, mode, 1);\n }\n function renderInstances(start, count, primcount) {\n if (primcount === 0) return;\n var extension, methodName;\n if (isWebGL2) {\n extension = gl;\n methodName = 'drawArraysInstanced';\n } else {\n extension = extensions.get('ANGLE_instanced_arrays');\n methodName = 'drawArraysInstancedANGLE';\n if (extension === null) {\n console.error('THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\n return;\n }\n }\n extension[methodName](mode, start, count, primcount);\n info.update(count, mode, primcount);\n }\n this.setMode = setMode;\n this.render = render;\n this.renderInstances = renderInstances;\n }return module.exports;});", "requires": [], "buildLevel": 14, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLBufferRenderer.js", "fileName": "/src/renderers/webgl/WebGLBufferRenderer.js" }, "pandav:/src/renderers/webgl/WebGLBackground.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBackground\", [\"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/geometries/BoxGeometry\", \"pandav:/com/three/0.145.0/src/geometries/PlaneGeometry\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLBackground = WebGLBackground;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _BoxGeometry = require('pandav:/com/three/0.145.0/src/geometries/BoxGeometry');\n var _PlaneGeometry = require('pandav:/com/three/0.145.0/src/geometries/PlaneGeometry');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _ShaderLib = require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n function WebGLBackground(renderer, cubemaps, state, objects, alpha, premultipliedAlpha) {\n var clearColor = new _Color.Color(0x000000);\n var clearAlpha = alpha === true ? 0 : 1;\n var planeMesh;\n var boxMesh;\n var currentBackground = null;\n var currentBackgroundVersion = 0;\n var currentTonemapping = null;\n function render(renderList, scene) {\n var forceClear = false;\n var background = scene.isScene === true ? scene.background : null;\n if (background && background.isTexture) {\n background = cubemaps.get(background);\n }\n var xr = renderer.xr;\n var session = xr.getSession && xr.getSession();\n if (session && session.environmentBlendMode === 'additive') {\n background = null;\n }\n if (background === null) {\n setClear(clearColor, clearAlpha);\n } else if (background && background.isColor) {\n setClear(background, 1);\n forceClear = true;\n }\n if (renderer.autoClear || forceClear) {\n renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\n }\n if (background && (background.isCubeTexture || background.mapping === _constants.CubeUVReflectionMapping)) {\n if (boxMesh === undefined) {\n var material = new _ShaderMaterial.ShaderMaterial({\n name: 'BackgroundCubeMaterial',\n uniforms: (0, _UniformsUtils.cloneUniforms)(_ShaderLib.ShaderLib.cube.uniforms),\n vertexShader: _ShaderLib.ShaderLib.cube.vertexShader,\n fragmentShader: _ShaderLib.ShaderLib.cube.fragmentShader,\n side: _constants.BackSide,\n depthTest: true,\n depthWrite: false,\n fog: false,\n defines: {\n BACKGROUND: '' } });\n\n\n boxMesh = new _Mesh.Mesh(new _BoxGeometry.BoxGeometry(1, 1, 1), material);\n boxMesh.geometry.deleteAttribute('normal');\n boxMesh.geometry.deleteAttribute('uv');\n boxMesh.onBeforeRender = function (renderer, scene, camera) {\n this.matrixWorld.copyPosition(camera.matrixWorld);\n };\n Object.defineProperty(boxMesh.material, 'envMap', {\n get: function get() {\n return this.uniforms.envMap.value;\n } });\n\n objects.update(boxMesh);\n }\n boxMesh.material.uniforms.envMap.value = background;\n boxMesh.material.uniforms.flipEnvMap.value = background.isCubeTexture && background.isRenderTargetTexture === false ? -1 : 1;\n boxMesh.material.uniforms.envMapRotateY.value = scene.backgroundRotateY;\n boxMesh.material.uniforms.envMapIntensity.value = scene.backgroundIntensity;\n if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n boxMesh.material.needsUpdate = true;\n currentBackground = background;\n currentBackgroundVersion = background.version;\n currentTonemapping = renderer.toneMapping;\n }\n boxMesh.layers.enableAll();\n renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null, 0);\n } else if (background && background.isTexture) {\n if (planeMesh === undefined) {\n planeMesh = new _Mesh.Mesh(new _PlaneGeometry.PlaneGeometry(2, 2), new _ShaderMaterial.ShaderMaterial({\n name: 'BackgroundMaterial',\n uniforms: (0, _UniformsUtils.cloneUniforms)(_ShaderLib.ShaderLib.background.uniforms),\n vertexShader: _ShaderLib.ShaderLib.background.vertexShader,\n fragmentShader: _ShaderLib.ShaderLib.background.fragmentShader,\n side: _constants.FrontSide,\n depthTest: true,\n depthWrite: false,\n fog: false,\n defines: {\n BACKGROUND: '' } }));\n\n\n planeMesh.geometry.deleteAttribute('normal');\n Object.defineProperty(planeMesh.material, 'map', {\n get: function get() {\n return this.uniforms.t2D.value;\n } });\n\n objects.update(planeMesh);\n }\n planeMesh.material.uniforms.t2D.value = background;\n if (background.matrixAutoUpdate === true) {\n background.updateMatrix();\n }\n planeMesh.material.uniforms.uvTransform.value.copy(background.matrix);\n if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n planeMesh.material.needsUpdate = true;\n currentBackground = background;\n currentBackgroundVersion = background.version;\n currentTonemapping = renderer.toneMapping;\n }\n planeMesh.layers.enableAll();\n renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null, 0);\n }\n }\n function setClear(color, alpha) {\n state.buffers.color.setClear(color.r, color.g, color.b, alpha, premultipliedAlpha);\n }\n return {\n getClearColor: function getClearColor() {\n return clearColor;\n },\n setClearColor: function setClearColor(color) {\n var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n clearColor.set(color);\n clearAlpha = alpha;\n setClear(clearColor, clearAlpha);\n },\n getClearAlpha: function getClearAlpha() {\n return clearAlpha;\n },\n setClearAlpha: function setClearAlpha(alpha) {\n clearAlpha = alpha;\n setClear(clearColor, clearAlpha);\n },\n render: render };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/geometries/BoxGeometry.js", "pandav:/src/geometries/PlaneGeometry.js", "pandav:/src/materials/ShaderMaterial.js", "pandav:/src/math/Color.js", "pandav:/src/objects/Mesh.js", "pandav:/src/renderers/shaders/ShaderLib.js", "pandav:/src/renderers/shaders/UniformsUtils.js" ], "buildLevel": 12, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLBackground.js", "fileName": "/src/renderers/webgl/WebGLBackground.js" }, "pandav:/src/renderers/shaders/UniformsLib.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib\", [\"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.UniformsLib = void 0;\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n var UniformsLib = exports.UniformsLib = {\n common: {\n diffuse: {\n value: new _Color.Color(0xffffff) },\n\n opacity: {\n value: 1.0 },\n\n map: {\n value: null },\n\n hsvColorCorrection: {\n value: new _Vector2.Vector3() },\n\n brightnessContrast: {\n value: new _Vector.Vector2() },\n\n uvTransform: {\n value: new _Matrix.Matrix3() },\n\n uv2Transform: {\n value: new _Matrix.Matrix3() },\n\n alphaMap: {\n value: null },\n\n alphaTest: {\n value: 0 },\n\n tag: {\n value: 0 } },\n\n\n specularmap: {\n specularMap: {\n value: null } },\n\n\n envmap: {\n envMap: {\n value: null },\n\n flipEnvMap: {\n value: -1 },\n\n envMapRotateY: {\n value: 0 },\n\n reflectivity: {\n value: 1.0 },\n\n ior: {\n value: 1.5 },\n\n refractionRatio: {\n value: 0.98 } },\n\n\n aomap: {\n aoMap: {\n value: null },\n\n aoMapIntensity: {\n value: 1 } },\n\n\n lightmap: {\n lightMap: {\n value: null },\n\n lightMapIntensity: {\n value: 1 } },\n\n\n emissivemap: {\n emissiveMap: {\n value: null } },\n\n\n bumpmap: {\n bumpMap: {\n value: null },\n\n bumpScale: {\n value: 1 } },\n\n\n normalmap: {\n normalMap: {\n value: null },\n\n normalScale: {\n value: new _Vector.Vector2(1, 1) } },\n\n\n displacementmap: {\n displacementMap: {\n value: null },\n\n displacementScale: {\n value: 1 },\n\n displacementBias: {\n value: 0 } },\n\n\n roughnessmap: {\n roughnessMap: {\n value: null } },\n\n\n metalnessmap: {\n metalnessMap: {\n value: null } },\n\n\n gradientmap: {\n gradientMap: {\n value: null } },\n\n\n fog: {\n fogDensity: {\n value: 0.00025 },\n\n fogNear: {\n value: 1 },\n\n fogFar: {\n value: 2000 },\n\n fogColor: {\n value: new _Color.Color(0xffffff) } },\n\n\n lights: {\n ambientLightColor: {\n value: [] },\n\n lightProbe: {\n value: [] },\n\n directionalLights: {\n value: [],\n properties: {\n direction: {},\n color: {} } },\n\n\n directionalLightShadows: {\n value: [],\n properties: {\n shadowBias: {},\n shadowNormalBias: {},\n shadowRadius: {},\n shadowMapSize: {} } },\n\n\n directionalShadowMap: {\n value: [] },\n\n directionalShadowMatrix: {\n value: [] },\n\n spotLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n direction: {},\n distance: {},\n coneCos: {},\n penumbraCos: {},\n decay: {} } },\n\n\n spotLightShadows: {\n value: [],\n properties: {\n shadowBias: {},\n shadowNormalBias: {},\n shadowRadius: {},\n shadowMapSize: {} } },\n\n\n spotLightMap: {\n value: [] },\n\n spotShadowMap: {\n value: [] },\n\n spotLightMatrix: {\n value: [] },\n\n pointLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n decay: {},\n distance: {} } },\n\n\n pointLightShadows: {\n value: [],\n properties: {\n shadowBias: {},\n shadowNormalBias: {},\n shadowRadius: {},\n shadowMapSize: {},\n shadowCameraNear: {},\n shadowCameraFar: {} } },\n\n\n pointShadowMap: {\n value: [] },\n\n pointShadowMatrix: {\n value: [] },\n\n hemisphereLights: {\n value: [],\n properties: {\n direction: {},\n skyColor: {},\n groundColor: {} } },\n\n\n rectAreaLights: {\n value: [],\n properties: {\n color: {},\n position: {},\n width: {},\n height: {} } },\n\n\n ltc_1: {\n value: null },\n\n ltc_2: {\n value: null } },\n\n\n points: {\n diffuse: {\n value: new _Color.Color(0xffffff) },\n\n opacity: {\n value: 1.0 },\n\n size: {\n value: 1.0 },\n\n scale: {\n value: 1.0 },\n\n map: {\n value: null },\n\n alphaMap: {\n value: null },\n\n alphaTest: {\n value: 0 },\n\n uvTransform: {\n value: new _Matrix.Matrix3() } },\n\n\n sprite: {\n diffuse: {\n value: new _Color.Color(0xffffff) },\n\n opacity: {\n value: 1.0 },\n\n center: {\n value: new _Vector.Vector2(0.5, 0.5) },\n\n rotation: {\n value: 0.0 },\n\n map: {\n value: null },\n\n alphaMap: {\n value: null },\n\n alphaTest: {\n value: 0 },\n\n uvTransform: {\n value: new _Matrix.Matrix3() },\n\n viewHeight: {\n value: 1.0 } } };\n\n\n\n UniformsLib.standard = (0, _UniformsUtils.mergeUniforms)([UniformsLib.common, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.roughnessmap, UniformsLib.metalnessmap, UniformsLib.fog, UniformsLib.lights, {\n emissive: {\n value: new _Color.Color(0) },\n\n roughness: {\n value: 1 },\n\n metalness: {\n value: 0 },\n\n reflectivityDecay: {\n value: 0 },\n\n envMapIntensity: {\n value: 1 } }]);\n\n\n UniformsLib.physical = (0, _UniformsUtils.mergeUniforms)([UniformsLib.standard, {\n clearcoat: {\n value: 0 },\n\n clearcoatMap: {\n value: null },\n\n clearcoatRoughness: {\n value: 0 },\n\n clearcoatRoughnessMap: {\n value: null },\n\n clearcoatNormalScale: {\n value: new _Vector.Vector2(1, 1) },\n\n clearcoatNormalMap: {\n value: null },\n\n iridescence: {\n value: 0 },\n\n iridescenceMap: {\n value: null },\n\n iridescenceIOR: {\n value: 1.3 },\n\n iridescenceThicknessMinimum: {\n value: 100 },\n\n iridescenceThicknessMaximum: {\n value: 400 },\n\n iridescenceThicknessMap: {\n value: null },\n\n sheen: {\n value: 0 },\n\n sheenColor: {\n value: new _Color.Color(0) },\n\n sheenColorMap: {\n value: null },\n\n sheenRoughness: {\n value: 1 },\n\n sheenRoughnessMap: {\n value: null },\n\n transmission: {\n value: 0 },\n\n transmissionMap: {\n value: null },\n\n transmissionSamplerSize: {\n value: new _Vector.Vector2() },\n\n transmissionSamplerMap: {\n value: null },\n\n transmissionSamplerDepthMap: {\n value: null },\n\n depthScatteringShallowestColor: {\n value: new _Color.Color(0) },\n\n depthScatteringDeepestColor: {\n value: new _Color.Color(0) },\n\n colorScatteringDistance: {\n value: 0 },\n\n thickness: {\n value: 0 },\n\n thicknessMap: {\n value: null },\n\n attenuationDistance: {\n value: 0 },\n\n attenuationColor: {\n value: new _Color.Color(0) },\n\n specularIntensity: {\n value: 1 },\n\n specularIntensityMap: {\n value: null },\n\n specularColor: {\n value: new _Color.Color(1, 1, 1) },\n\n specularColorMap: {\n value: null } }]);return module.exports;});", "requires": [ "pandav:/src/math/Color.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Matrix3.js", "pandav:/src/renderers/shaders/UniformsUtils.js" ], "buildLevel": 16, "outputDir": "/com/three/0.145.0/src/renderers/shaders", "outputPath": "/com/three/0.145.0/src/renderers/shaders/UniformsLib.js", "fileName": "/src/renderers/shaders/UniformsLib.js" }, "pandav:/src/renderers/webgl/WebGLAttributes.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAttributes\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLAttributes = WebGLAttributes;\n function WebGLAttributes(gl, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var buffers = new WeakMap();\n function createBuffer(attribute, bufferType) {\n var array = attribute.array;\n var usage = attribute.usage;\n var buffer = gl.createBuffer();\n gl.bindBuffer(bufferType, buffer);\n gl.bufferData(bufferType, array, usage);\n attribute.onUploadCallback();\n var type;\n if (array instanceof Float32Array) {\n type = gl.FLOAT;\n } else if (array instanceof Uint16Array) {\n if (attribute.isFloat16BufferAttribute) {\n if (isWebGL2) {\n type = gl.HALF_FLOAT;\n } else {\n throw new Error('THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.');\n }\n } else {\n type = gl.UNSIGNED_SHORT;\n }\n } else if (array instanceof Int16Array) {\n type = gl.SHORT;\n } else if (array instanceof Uint32Array) {\n type = gl.UNSIGNED_INT;\n } else if (array instanceof Int32Array) {\n type = gl.INT;\n } else if (array instanceof Int8Array) {\n type = gl.BYTE;\n } else if (array instanceof Uint8Array) {\n type = gl.UNSIGNED_BYTE;\n } else if (array instanceof Uint8ClampedArray) {\n type = gl.UNSIGNED_BYTE;\n } else {\n throw new Error('THREE.WebGLAttributes: Unsupported buffer data format: ' + array);\n }\n return {\n buffer: buffer,\n type: type,\n bytesPerElement: array.BYTES_PER_ELEMENT,\n version: attribute.version };\n\n }\n function updateBuffer(buffer, attribute, bufferType) {\n var array = attribute.array;\n var updateRange = attribute.updateRange;\n gl.bindBuffer(bufferType, buffer);\n if (updateRange.count === -1) {\n gl.bufferSubData(bufferType, 0, array);\n } else {\n if (isWebGL2) {\n gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array, updateRange.offset, updateRange.count);\n } else {\n gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array.subarray(updateRange.offset, updateRange.offset + updateRange.count));\n }\n updateRange.count = -1;\n }\n }\n function get(attribute) {\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n return buffers.get(attribute);\n }\n function remove(attribute) {\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n var data = buffers.get(attribute);\n if (data) {\n gl.deleteBuffer(data.buffer);\n buffers[\"delete\"](attribute);\n }\n }\n function update(attribute, bufferType) {\n if (attribute.isGLBufferAttribute) {\n var cached = buffers.get(attribute);\n if (!cached || cached.version < attribute.version) {\n buffers.set(attribute, {\n buffer: attribute.buffer,\n type: attribute.type,\n bytesPerElement: attribute.elementSize,\n version: attribute.version });\n\n }\n return;\n }\n if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n var data = buffers.get(attribute);\n if (data === undefined) {\n buffers.set(attribute, createBuffer(attribute, bufferType));\n } else if (data.version < attribute.version) {\n updateBuffer(data.buffer, attribute, bufferType);\n data.version = attribute.version;\n }\n }\n return {\n get: get,\n remove: remove,\n update: update };\n\n }return module.exports;});", "requires": [], "buildLevel": 11, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLAttributes.js", "fileName": "/src/renderers/webgl/WebGLAttributes.js" }, "pandav:/src/renderers/webgl/WebGLBindingStates.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBindingStates\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLBindingStates = WebGLBindingStates;\n function WebGLBindingStates(gl, extensions, attributes, capabilities) {\n var maxVertexAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n var extension = capabilities.isWebGL2 ? null : extensions.get('OES_vertex_array_object');\n var vaoAvailable = capabilities.isWebGL2 || extension !== null;\n var bindingStates = {};\n var defaultState = createBindingState(null);\n var currentState = defaultState;\n var forceUpdate = false;\n function setup(object, material, program, geometry, index) {\n var updateBuffers = false;\n if (vaoAvailable) {\n var state = getBindingState(geometry, program, material);\n if (currentState !== state) {\n currentState = state;\n bindVertexArrayObject(currentState.object);\n }\n updateBuffers = needsUpdate(object, geometry, program, index);\n if (updateBuffers) saveCache(object, geometry, program, index);\n } else {\n var wireframe = material.wireframe === true;\n if (currentState.geometry !== geometry.id || currentState.program !== program.id || currentState.wireframe !== wireframe) {\n currentState.geometry = geometry.id;\n currentState.program = program.id;\n currentState.wireframe = wireframe;\n updateBuffers = true;\n }\n }\n if (index !== null) {\n attributes.update(index, gl.ELEMENT_ARRAY_BUFFER);\n }\n if (updateBuffers || forceUpdate) {\n forceUpdate = false;\n setupVertexAttributes(object, material, program, geometry);\n if (index !== null) {\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, attributes.get(index).buffer);\n }\n }\n }\n function createVertexArrayObject() {\n if (capabilities.isWebGL2) return gl.createVertexArray();\n return extension.createVertexArrayOES();\n }\n function bindVertexArrayObject(vao) {\n if (capabilities.isWebGL2) return gl.bindVertexArray(vao);\n return extension.bindVertexArrayOES(vao);\n }\n function deleteVertexArrayObject(vao) {\n if (capabilities.isWebGL2) return gl.deleteVertexArray(vao);\n return extension.deleteVertexArrayOES(vao);\n }\n function getBindingState(geometry, program, material) {\n var wireframe = material.wireframe === true;\n var programMap = bindingStates[geometry.id];\n if (programMap === undefined) {\n programMap = {};\n bindingStates[geometry.id] = programMap;\n }\n var stateMap = programMap[program.id];\n if (stateMap === undefined) {\n stateMap = {};\n programMap[program.id] = stateMap;\n }\n var state = stateMap[wireframe];\n if (state === undefined) {\n state = createBindingState(createVertexArrayObject());\n stateMap[wireframe] = state;\n }\n return state;\n }\n function createBindingState(vao) {\n var newAttributes = [];\n var enabledAttributes = [];\n var attributeDivisors = [];\n for (var i = 0; i < maxVertexAttributes; i++) {\n newAttributes[i] = 0;\n enabledAttributes[i] = 0;\n attributeDivisors[i] = 0;\n }\n return {\n geometry: null,\n program: null,\n wireframe: false,\n newAttributes: newAttributes,\n enabledAttributes: enabledAttributes,\n attributeDivisors: attributeDivisors,\n object: vao,\n attributes: {},\n index: null };\n\n }\n function needsUpdate(object, geometry, program, index) {\n var cachedAttributes = currentState.attributes;\n var geometryAttributes = geometry.attributes;\n var attributesNum = 0;\n var programAttributes = program.getAttributes();\n for (var name in programAttributes) {\n var programAttribute = programAttributes[name];\n if (programAttribute.location >= 0) {\n var cachedAttribute = cachedAttributes[name];\n var geometryAttribute = geometryAttributes[name];\n if (geometryAttribute === undefined) {\n if (name === 'instanceMatrix' && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n if (name === 'instanceColor' && object.instanceColor) geometryAttribute = object.instanceColor;\n }\n if (cachedAttribute === undefined) return true;\n if (cachedAttribute.attribute !== geometryAttribute) return true;\n if (geometryAttribute && cachedAttribute.data !== geometryAttribute.data) return true;\n attributesNum++;\n }\n }\n if (currentState.attributesNum !== attributesNum) return true;\n if (currentState.index !== index) return true;\n return false;\n }\n function saveCache(object, geometry, program, index) {\n var cache = {};\n var attributes = geometry.attributes;\n var attributesNum = 0;\n var programAttributes = program.getAttributes();\n for (var name in programAttributes) {\n var programAttribute = programAttributes[name];\n if (programAttribute.location >= 0) {\n var attribute = attributes[name];\n if (attribute === undefined) {\n if (name === 'instanceMatrix' && object.instanceMatrix) attribute = object.instanceMatrix;\n if (name === 'instanceColor' && object.instanceColor) attribute = object.instanceColor;\n }\n var data = {};\n data.attribute = attribute;\n if (attribute && attribute.data) {\n data.data = attribute.data;\n }\n cache[name] = data;\n attributesNum++;\n }\n }\n currentState.attributes = cache;\n currentState.attributesNum = attributesNum;\n currentState.index = index;\n }\n function initAttributes() {\n var newAttributes = currentState.newAttributes;\n for (var i = 0, il = newAttributes.length; i < il; i++) {\n newAttributes[i] = 0;\n }\n }\n function enableAttribute(attribute) {\n enableAttributeAndDivisor(attribute, 0);\n }\n function enableAttributeAndDivisor(attribute, meshPerAttribute) {\n var newAttributes = currentState.newAttributes;\n var enabledAttributes = currentState.enabledAttributes;\n var attributeDivisors = currentState.attributeDivisors;\n newAttributes[attribute] = 1;\n if (enabledAttributes[attribute] === 0) {\n gl.enableVertexAttribArray(attribute);\n enabledAttributes[attribute] = 1;\n }\n if (attributeDivisors[attribute] !== meshPerAttribute) {\n var _extension = capabilities.isWebGL2 ? gl : extensions.get('ANGLE_instanced_arrays');\n _extension[capabilities.isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE'](attribute, meshPerAttribute);\n attributeDivisors[attribute] = meshPerAttribute;\n }\n }\n function disableUnusedAttributes() {\n var newAttributes = currentState.newAttributes;\n var enabledAttributes = currentState.enabledAttributes;\n for (var i = 0, il = enabledAttributes.length; i < il; i++) {\n if (enabledAttributes[i] !== newAttributes[i]) {\n gl.disableVertexAttribArray(i);\n enabledAttributes[i] = 0;\n }\n }\n }\n function vertexAttribPointer(index, size, type, normalized, stride, offset) {\n if (capabilities.isWebGL2 === true && (type === gl.INT || type === gl.UNSIGNED_INT)) {\n gl.vertexAttribIPointer(index, size, type, stride, offset);\n } else {\n gl.vertexAttribPointer(index, size, type, normalized, stride, offset);\n }\n }\n function setupVertexAttributes(object, material, program, geometry) {\n if (capabilities.isWebGL2 === false && (object.isInstancedMesh || geometry.isInstancedBufferGeometry)) {\n if (extensions.get('ANGLE_instanced_arrays') === null) return;\n }\n initAttributes();\n var geometryAttributes = geometry.attributes;\n var programAttributes = program.getAttributes();\n var materialDefaultAttributeValues = material.defaultAttributeValues;\n for (var name in programAttributes) {\n var programAttribute = programAttributes[name];\n if (programAttribute.location >= 0) {\n var geometryAttribute = geometryAttributes[name];\n if (geometryAttribute === undefined) {\n if (name === 'instanceMatrix' && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n if (name === 'instanceColor' && object.instanceColor) geometryAttribute = object.instanceColor;\n }\n if (geometryAttribute !== undefined) {\n var normalized = geometryAttribute.normalized;\n var size = geometryAttribute.itemSize;\n var attribute = attributes.get(geometryAttribute);\n if (attribute === undefined) continue;\n var buffer = attribute.buffer;\n var type = attribute.type;\n var bytesPerElement = attribute.bytesPerElement;\n if (geometryAttribute.isInterleavedBufferAttribute) {\n var data = geometryAttribute.data;\n var stride = data.stride;\n var offset = geometryAttribute.offset;\n if (data.isInstancedInterleavedBuffer) {\n for (var i = 0; i < programAttribute.locationSize; i++) {\n enableAttributeAndDivisor(programAttribute.location + i, data.meshPerAttribute);\n }\n if (object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined) {\n geometry._maxInstanceCount = data.meshPerAttribute * data.count;\n }\n } else {\n for (var _i = 0; _i < programAttribute.locationSize; _i++) {\n enableAttribute(programAttribute.location + _i);\n }\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n for (var _i2 = 0; _i2 < programAttribute.locationSize; _i2++) {\n vertexAttribPointer(programAttribute.location + _i2, size / programAttribute.locationSize, type, normalized, stride * bytesPerElement, (offset + size / programAttribute.locationSize * _i2) * bytesPerElement);\n }\n } else {\n if (geometryAttribute.isInstancedBufferAttribute) {\n for (var _i3 = 0; _i3 < programAttribute.locationSize; _i3++) {\n enableAttributeAndDivisor(programAttribute.location + _i3, geometryAttribute.meshPerAttribute);\n }\n if (object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined) {\n geometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n }\n } else {\n for (var _i4 = 0; _i4 < programAttribute.locationSize; _i4++) {\n enableAttribute(programAttribute.location + _i4);\n }\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n for (var _i5 = 0; _i5 < programAttribute.locationSize; _i5++) {\n vertexAttribPointer(programAttribute.location + _i5, size / programAttribute.locationSize, type, normalized, size * bytesPerElement, size / programAttribute.locationSize * _i5 * bytesPerElement);\n }\n }\n } else if (materialDefaultAttributeValues !== undefined) {\n var value = materialDefaultAttributeValues[name];\n if (value !== undefined) {\n switch (value.length) {\n case 2:\n gl.vertexAttrib2fv(programAttribute.location, value);\n break;\n case 3:\n gl.vertexAttrib3fv(programAttribute.location, value);\n break;\n case 4:\n gl.vertexAttrib4fv(programAttribute.location, value);\n break;\n default:\n gl.vertexAttrib1fv(programAttribute.location, value);}\n\n }\n }\n }\n }\n disableUnusedAttributes();\n }\n function dispose() {\n reset();\n for (var geometryId in bindingStates) {\n var programMap = bindingStates[geometryId];\n for (var programId in programMap) {\n var stateMap = programMap[programId];\n for (var wireframe in stateMap) {\n deleteVertexArrayObject(stateMap[wireframe].object);\n delete stateMap[wireframe];\n }\n delete programMap[programId];\n }\n delete bindingStates[geometryId];\n }\n }\n function releaseStatesOfGeometry(geometry) {\n if (bindingStates[geometry.id] === undefined) return;\n var programMap = bindingStates[geometry.id];\n for (var programId in programMap) {\n var stateMap = programMap[programId];\n for (var wireframe in stateMap) {\n deleteVertexArrayObject(stateMap[wireframe].object);\n delete stateMap[wireframe];\n }\n delete programMap[programId];\n }\n delete bindingStates[geometry.id];\n }\n function releaseStatesOfProgram(program) {\n for (var geometryId in bindingStates) {\n var programMap = bindingStates[geometryId];\n if (programMap[program.id] === undefined) continue;\n var stateMap = programMap[program.id];\n for (var wireframe in stateMap) {\n deleteVertexArrayObject(stateMap[wireframe].object);\n delete stateMap[wireframe];\n }\n delete programMap[program.id];\n }\n }\n function reset() {\n resetDefaultState();\n forceUpdate = true;\n if (currentState === defaultState) return;\n currentState = defaultState;\n bindVertexArrayObject(currentState.object);\n }\n function resetDefaultState() {\n defaultState.geometry = null;\n defaultState.program = null;\n defaultState.wireframe = false;\n }\n return {\n setup: setup,\n reset: reset,\n resetDefaultState: resetDefaultState,\n dispose: dispose,\n releaseStatesOfGeometry: releaseStatesOfGeometry,\n releaseStatesOfProgram: releaseStatesOfProgram,\n initAttributes: initAttributes,\n enableAttribute: enableAttribute,\n disableUnusedAttributes: disableUnusedAttributes };\n\n }return module.exports;});", "requires": [], "buildLevel": 13, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLBindingStates.js", "fileName": "/src/renderers/webgl/WebGLBindingStates.js" }, "pandav:/src/renderers/webgl/WebGLCapabilities.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCapabilities\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLCapabilities = WebGLCapabilities;\n function WebGLCapabilities(gl, extensions, parameters) {\n var maxAnisotropy;\n function getMaxAnisotropy() {\n if (maxAnisotropy !== undefined) return maxAnisotropy;\n if (extensions.has('EXT_texture_filter_anisotropic') === true) {\n var extension = extensions.get('EXT_texture_filter_anisotropic');\n maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n } else {\n maxAnisotropy = 0;\n }\n return maxAnisotropy;\n }\n function getMaxPrecision(precision) {\n if (precision === 'highp') {\n if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision > 0) {\n return 'highp';\n }\n precision = 'mediump';\n }\n if (precision === 'mediump') {\n if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).precision > 0) {\n return 'mediump';\n }\n }\n return 'lowp';\n }\n var isWebGL2 = typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext || typeof WebGL2ComputeRenderingContext !== 'undefined' && gl instanceof WebGL2ComputeRenderingContext;\n var precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n var maxPrecision = getMaxPrecision(precision);\n if (maxPrecision !== precision) {\n console.warn('THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.');\n precision = maxPrecision;\n }\n var drawBuffers = isWebGL2 || extensions.has('WEBGL_draw_buffers');\n var logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n var maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n var maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\n var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n var maxCubemapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n var maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n var maxVertexUniforms = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);\n var maxletyings = gl.getParameter(gl.MAX_letYING_VECTORS);\n var maxFragmentUniforms = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);\n var vertexTextures = maxVertexTextures > 0;\n var floatFragmentTextures = isWebGL2 || extensions.has('OES_texture_float');\n var floatVertexTextures = vertexTextures && floatFragmentTextures;\n var maxSamples = isWebGL2 ? gl.getParameter(gl.MAX_SAMPLES) : 0;\n return {\n isWebGL2: isWebGL2,\n drawBuffers: drawBuffers,\n getMaxAnisotropy: getMaxAnisotropy,\n getMaxPrecision: getMaxPrecision,\n precision: precision,\n logarithmicDepthBuffer: logarithmicDepthBuffer,\n maxTextures: maxTextures,\n maxVertexTextures: maxVertexTextures,\n maxTextureSize: maxTextureSize,\n maxCubemapSize: maxCubemapSize,\n maxAttributes: maxAttributes,\n maxVertexUniforms: maxVertexUniforms,\n maxletyings: maxletyings,\n maxFragmentUniforms: maxFragmentUniforms,\n vertexTextures: vertexTextures,\n floatFragmentTextures: floatFragmentTextures,\n floatVertexTextures: floatVertexTextures,\n maxSamples: maxSamples };\n\n }return module.exports;});", "requires": [], "buildLevel": 15, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLCapabilities.js", "fileName": "/src/renderers/webgl/WebGLCapabilities.js" }, "pandav:/src/renderers/webgl/WebGLClipping.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLClipping\", [\"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/math/Plane\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLClipping = WebGLClipping;\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var _Plane = require('pandav:/com/three/0.145.0/src/math/Plane');\n function WebGLClipping(properties) {\n var scope = this;\n var globalState = null,\n numGlobalPlanes = 0,\n localClippingEnabled = false,\n renderingShadows = false;\n var plane = new _Plane.Plane(),\n viewNormalMatrix = new _Matrix.Matrix3(),\n uniform = {\n value: null,\n needsUpdate: false };\n\n this.uniform = uniform;\n this.numPlanes = 0;\n this.numIntersection = 0;\n this.init = function (planes, enableLocalClipping, camera) {\n var enabled = planes.length !== 0 || enableLocalClipping || numGlobalPlanes !== 0 || localClippingEnabled;\n localClippingEnabled = enableLocalClipping;\n globalState = projectPlanes(planes, camera, 0);\n numGlobalPlanes = planes.length;\n return enabled;\n };\n this.beginShadows = function () {\n renderingShadows = true;\n projectPlanes(null);\n };\n this.endShadows = function () {\n renderingShadows = false;\n resetGlobalState();\n };\n this.setState = function (material, camera, useCache) {\n var planes = material.clippingPlanes,\n clipIntersection = material.clipIntersection,\n clipShadows = material.clipShadows;\n var materialProperties = properties.get(material);\n if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) {\n if (renderingShadows) {\n projectPlanes(null);\n } else {\n resetGlobalState();\n }\n } else {\n var nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n lGlobal = nGlobal * 4;\n var dstArray = materialProperties.clippingState || null;\n uniform.value = dstArray;\n dstArray = projectPlanes(planes, camera, lGlobal, useCache);\n for (var i = 0; i !== lGlobal; ++i) {\n dstArray[i] = globalState[i];\n }\n materialProperties.clippingState = dstArray;\n this.numIntersection = clipIntersection ? this.numPlanes : 0;\n this.numPlanes += nGlobal;\n }\n };\n function resetGlobalState() {\n if (uniform.value !== globalState) {\n uniform.value = globalState;\n uniform.needsUpdate = numGlobalPlanes > 0;\n }\n scope.numPlanes = numGlobalPlanes;\n scope.numIntersection = 0;\n }\n function projectPlanes(planes, camera, dstOffset, skipTransform) {\n var nPlanes = planes !== null ? planes.length : 0;\n var dstArray = null;\n if (nPlanes !== 0) {\n dstArray = uniform.value;\n if (skipTransform !== true || dstArray === null) {\n var flatSize = dstOffset + nPlanes * 4,\n viewMatrix = camera.matrixWorldInverse;\n viewNormalMatrix.getNormalMatrix(viewMatrix);\n if (dstArray === null || dstArray.length < flatSize) {\n dstArray = new Float32Array(flatSize);\n }\n for (var i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) {\n plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix);\n plane.normal.toArray(dstArray, i4);\n dstArray[i4 + 3] = plane.constant;\n }\n }\n uniform.value = dstArray;\n uniform.needsUpdate = true;\n }\n scope.numPlanes = nPlanes;\n scope.numIntersection = 0;\n return dstArray;\n }\n }return module.exports;});", "requires": [ "pandav:/src/math/Matrix3.js", "pandav:/src/math/Plane.js" ], "buildLevel": 16, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLClipping.js", "fileName": "/src/renderers/webgl/WebGLClipping.js" }, "pandav:/src/renderers/webgl/WebGLCubeUVMaps.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCubeUVMaps\", [\"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/extras/PMREMGenerator\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLCubeUVMaps = WebGLCubeUVMaps;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _PMREMGenerator = require('pandav:/com/three/0.145.0/src/extras/PMREMGenerator');\n function WebGLCubeUVMaps(renderer) {\n var cubeUVmaps = new WeakMap();\n var pmremGenerator = null;\n function get(texture) {\n if (texture && texture.isTexture) {\n var mapping = texture.mapping;\n var isEquirectMap = mapping === _constants.EquirectangularReflectionMapping || mapping === _constants.EquirectangularRefractionMapping;\n var isCubeMap = mapping === _constants.CubeReflectionMapping || mapping === _constants.CubeRefractionMapping;\n if (isEquirectMap || isCubeMap) {\n if (texture.isRenderTargetTexture && texture.needsPMREMUpdate === true) {\n texture.needsPMREMUpdate = false;\n var renderTarget = cubeUVmaps.get(texture);\n if (pmremGenerator === null) pmremGenerator = new _PMREMGenerator.PMREMGenerator(renderer);\n renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture, renderTarget) : pmremGenerator.fromCubemap(texture, renderTarget);\n cubeUVmaps.set(texture, renderTarget);\n return renderTarget.texture;\n } else {\n if (cubeUVmaps.has(texture)) {\n return cubeUVmaps.get(texture).texture;\n } else {\n var image = texture.image;\n if (isEquirectMap && image && image.height > 0 || isCubeMap && image && isCubeTextureComplete(image)) {\n if (pmremGenerator === null) pmremGenerator = new _PMREMGenerator.PMREMGenerator(renderer);\n var _renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture) : pmremGenerator.fromCubemap(texture);\n cubeUVmaps.set(texture, _renderTarget);\n texture.addEventListener('dispose', onTextureDispose);\n return _renderTarget.texture;\n } else {\n return null;\n }\n }\n }\n }\n }\n return texture;\n }\n function isCubeTextureComplete(image) {\n var count = 0;\n var length = 6;\n for (var i = 0; i < length; i++) {\n if (image[i] !== undefined) count++;\n }\n return count === length;\n }\n function onTextureDispose(event) {\n var texture = event.target;\n texture.removeEventListener('dispose', onTextureDispose);\n var cubemapUV = cubeUVmaps.get(texture);\n if (cubemapUV !== undefined) {\n cubeUVmaps[\"delete\"](texture);\n cubemapUV.dispose();\n }\n }\n function dispose() {\n cubeUVmaps = new WeakMap();\n if (pmremGenerator !== null) {\n pmremGenerator.dispose();\n pmremGenerator = null;\n }\n }\n return {\n get: get,\n dispose: dispose };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/extras/PMREMGenerator.js" ], "buildLevel": 18, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLCubeUVMaps.js", "fileName": "/src/renderers/webgl/WebGLCubeUVMaps.js" }, "pandav:/src/renderers/webgl/WebGLGeometries.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLGeometries\", [\"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/utils\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLGeometries = WebGLGeometries;\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n function WebGLGeometries(gl, attributes, info, bindingStates) {\n var geometries = {};\n var wireframeAttributes = new WeakMap();\n function onGeometryDispose(event) {\n var geometry = event.target;\n if (geometry.index !== null) {\n attributes.remove(geometry.index);\n }\n for (var name in geometry.attributes) {\n attributes.remove(geometry.attributes[name]);\n }\n geometry.removeEventListener('dispose', onGeometryDispose);\n delete geometries[geometry.id];\n var attribute = wireframeAttributes.get(geometry);\n if (attribute) {\n attributes.remove(attribute);\n wireframeAttributes[\"delete\"](geometry);\n }\n bindingStates.releaseStatesOfGeometry(geometry);\n if (geometry.isInstancedBufferGeometry === true) {\n delete geometry._maxInstanceCount;\n }\n info.memory.geometries--;\n }\n function get(object, geometry) {\n if (geometries[geometry.id] === true) return geometry;\n geometry.addEventListener('dispose', onGeometryDispose);\n geometries[geometry.id] = true;\n info.memory.geometries++;\n return geometry;\n }\n function update(geometry) {\n var geometryAttributes = geometry.attributes;\n for (var name in geometryAttributes) {\n attributes.update(geometryAttributes[name], gl.ARRAY_BUFFER);\n }\n var morphAttributes = geometry.morphAttributes;\n for (var _name in morphAttributes) {\n var array = morphAttributes[_name];\n for (var i = 0, l = array.length; i < l; i++) {\n attributes.update(array[i], gl.ARRAY_BUFFER);\n }\n }\n }\n function updateWireframeAttribute(geometry) {\n var indices = [];\n var geometryIndex = geometry.index;\n var geometryPosition = geometry.attributes.position;\n var version = 0;\n if (geometryIndex !== null) {\n var array = geometryIndex.array;\n version = geometryIndex.version;\n for (var i = 0, l = array.length; i < l; i += 3) {\n var a = array[i + 0];\n var b = array[i + 1];\n var c = array[i + 2];\n indices.push(a, b, b, c, c, a);\n }\n } else {\n var _array = geometryPosition.array;\n version = geometryPosition.version;\n for (var _i = 0, _l = _array.length / 3 - 1; _i < _l; _i += 3) {\n var _a = _i + 0;\n var _b = _i + 1;\n var _c = _i + 2;\n indices.push(_a, _b, _b, _c, _c, _a);\n }\n }\n var attribute = new ((0, _utils.arrayNeedsUint32)(indices) ? _BufferAttribute.Uint32BufferAttribute : _BufferAttribute.Uint16BufferAttribute)(indices, 1);\n attribute.version = version;\n var previousAttribute = wireframeAttributes.get(geometry);\n if (previousAttribute) attributes.remove(previousAttribute);\n wireframeAttributes.set(geometry, attribute);\n }\n function getWireframeAttribute(geometry) {\n var currentAttribute = wireframeAttributes.get(geometry);\n if (currentAttribute) {\n var geometryIndex = geometry.index;\n if (geometryIndex !== null) {\n if (currentAttribute.version < geometryIndex.version) {\n updateWireframeAttribute(geometry);\n }\n }\n } else {\n updateWireframeAttribute(geometry);\n }\n return wireframeAttributes.get(geometry);\n }\n return {\n get: get,\n update: update,\n getWireframeAttribute: getWireframeAttribute };\n\n }return module.exports;});", "requires": [ "pandav:/src/core/BufferAttribute.js", "pandav:/src/utils.js" ], "buildLevel": 20, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLGeometries.js", "fileName": "/src/renderers/webgl/WebGLGeometries.js" }, "pandav:/src/renderers/webgl/WebGLCubeMaps.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCubeMaps\", [\"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/renderers/WebGLCubeRenderTarget\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLCubeMaps = WebGLCubeMaps;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _WebGLCubeRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLCubeRenderTarget');\n function WebGLCubeMaps(renderer) {\n var cubemaps = new WeakMap();\n function mapTextureMapping(texture, mapping) {\n if (mapping === _constants.EquirectangularReflectionMapping) {\n texture.mapping = _constants.CubeReflectionMapping;\n } else if (mapping === _constants.EquirectangularRefractionMapping) {\n texture.mapping = _constants.CubeRefractionMapping;\n }\n return texture;\n }\n function get(texture) {\n if (texture && texture.isTexture && texture.isRenderTargetTexture === false) {\n var mapping = texture.mapping;\n if (mapping === _constants.EquirectangularReflectionMapping || mapping === _constants.EquirectangularRefractionMapping) {\n if (cubemaps.has(texture)) {\n var cubemap = cubemaps.get(texture).texture;\n return mapTextureMapping(cubemap, texture.mapping);\n } else {\n var image = texture.image;\n if (image && image.height > 0) {\n var renderTarget = new _WebGLCubeRenderTarget.WebGLCubeRenderTarget(image.height / 2);\n renderTarget.fromEquirectangularTexture(renderer, texture);\n cubemaps.set(texture, renderTarget);\n texture.addEventListener('dispose', onTextureDispose);\n return mapTextureMapping(renderTarget.texture, texture.mapping);\n } else {\n return null;\n }\n }\n }\n }\n return texture;\n }\n function onTextureDispose(event) {\n var texture = event.target;\n texture.removeEventListener('dispose', onTextureDispose);\n var cubemap = cubemaps.get(texture);\n if (cubemap !== undefined) {\n cubemaps[\"delete\"](texture);\n cubemap.dispose();\n }\n }\n function dispose() {\n cubemaps = new WeakMap();\n }\n return {\n get: get,\n dispose: dispose };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/renderers/WebGLCubeRenderTarget.js" ], "buildLevel": 17, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLCubeMaps.js", "fileName": "/src/renderers/webgl/WebGLCubeMaps.js" }, "pandav:/src/renderers/webgl/WebGLIndexedBufferRenderer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLIndexedBufferRenderer\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLIndexedBufferRenderer = WebGLIndexedBufferRenderer;\n function WebGLIndexedBufferRenderer(gl, extensions, info, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n var mode;\n function setMode(value) {\n mode = value;\n }\n var type, bytesPerElement;\n function setIndex(value) {\n type = value.type;\n bytesPerElement = value.bytesPerElement;\n }\n function render(start, count) {\n gl.drawElements(mode, count, type, start * bytesPerElement);\n info.update(count, mode, 1);\n }\n function renderInstances(start, count, primcount) {\n if (primcount === 0) return;\n var extension, methodName;\n if (isWebGL2) {\n extension = gl;\n methodName = 'drawElementsInstanced';\n } else {\n extension = extensions.get('ANGLE_instanced_arrays');\n methodName = 'drawElementsInstancedANGLE';\n if (extension === null) {\n console.error('THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.');\n return;\n }\n }\n extension[methodName](mode, count, type, start * bytesPerElement, primcount);\n info.update(count, mode, primcount);\n }\n this.setMode = setMode;\n this.setIndex = setIndex;\n this.render = render;\n this.renderInstances = renderInstances;\n }return module.exports;});", "requires": [], "buildLevel": 21, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLIndexedBufferRenderer.js", "fileName": "/src/renderers/webgl/WebGLIndexedBufferRenderer.js" }, "pandav:/src/renderers/webgl/WebGLObjects.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLObjects\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLObjects = WebGLObjects;\n function WebGLObjects(gl, geometries, attributes, info) {\n var updateMap = new WeakMap();\n function update(object) {\n var frame = info.render.frame;\n var geometry = object.geometry;\n var buffergeometry = geometries.get(object, geometry);\n if (updateMap.get(buffergeometry) !== frame) {\n geometries.update(buffergeometry);\n updateMap.set(buffergeometry, frame);\n }\n if (object.isInstancedMesh) {\n if (object.hasEventListener('dispose', onInstancedMeshDispose) === false) {\n object.addEventListener('dispose', onInstancedMeshDispose);\n }\n attributes.update(object.instanceMatrix, gl.ARRAY_BUFFER);\n if (object.instanceColor !== null) {\n attributes.update(object.instanceColor, gl.ARRAY_BUFFER);\n }\n }\n return buffergeometry;\n }\n function dispose() {\n updateMap = new WeakMap();\n }\n function onInstancedMeshDispose(event) {\n var instancedMesh = event.target;\n instancedMesh.removeEventListener('dispose', onInstancedMeshDispose);\n attributes.remove(instancedMesh.instanceMatrix);\n if (instancedMesh.instanceColor !== null) attributes.remove(instancedMesh.instanceColor);\n }\n return {\n update: update,\n dispose: dispose };\n\n }return module.exports;});", "requires": [], "buildLevel": 24, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLObjects.js", "fileName": "/src/renderers/webgl/WebGLObjects.js" }, "pandav:/src/renderers/webgl/WebGLLights.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLLights\", [\"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLLights = WebGLLights;\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _UniformsLib = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib');\n function UniformsCache() {\n var lights = {};\n return {\n get: function get(light) {\n if (lights[light.id] !== undefined) {\n return lights[light.id];\n }\n var uniforms;\n switch (light.type) {\n case 'DirectionalLight':\n uniforms = {\n direction: new _Vector2.Vector3(),\n color: new _Color.Color() };\n\n break;\n case 'SpotLight':\n uniforms = {\n position: new _Vector2.Vector3(),\n direction: new _Vector2.Vector3(),\n color: new _Color.Color(),\n distance: 0,\n coneCos: 0,\n penumbraCos: 0,\n decay: 0 };\n\n break;\n case 'PointLight':\n uniforms = {\n position: new _Vector2.Vector3(),\n color: new _Color.Color(),\n distance: 0,\n decay: 0 };\n\n break;\n case 'HemisphereLight':\n uniforms = {\n direction: new _Vector2.Vector3(),\n skyColor: new _Color.Color(),\n groundColor: new _Color.Color() };\n\n break;\n case 'RectAreaLight':\n uniforms = {\n color: new _Color.Color(),\n position: new _Vector2.Vector3(),\n halfWidth: new _Vector2.Vector3(),\n halfHeight: new _Vector2.Vector3() };\n\n break;}\n\n lights[light.id] = uniforms;\n return uniforms;\n } };\n\n }\n function ShadowUniformsCache() {\n var lights = {};\n return {\n get: function get(light) {\n if (lights[light.id] !== undefined) {\n return lights[light.id];\n }\n var uniforms;\n switch (light.type) {\n case 'DirectionalLight':\n uniforms = {\n shadowBias: 0,\n shadowNormalBias: 0,\n shadowRadius: 1,\n shadowMapSize: new _Vector.Vector2() };\n\n break;\n case 'SpotLight':\n uniforms = {\n shadowBias: 0,\n shadowNormalBias: 0,\n shadowRadius: 1,\n shadowMapSize: new _Vector.Vector2() };\n\n break;\n case 'PointLight':\n uniforms = {\n shadowBias: 0,\n shadowNormalBias: 0,\n shadowRadius: 1,\n shadowMapSize: new _Vector.Vector2(),\n shadowCameraNear: 1,\n shadowCameraFar: 1000 };\n\n break;}\n\n lights[light.id] = uniforms;\n return uniforms;\n } };\n\n }\n var nextVersion = 0;\n function shadowCastingAndTexturingLightsFirst(lightA, lightB) {\n return (lightB.castShadow ? 2 : 0) - (lightA.castShadow ? 2 : 0) + (lightB.map ? 1 : 0) - (lightA.map ? 1 : 0);\n }\n function WebGLLights(extensions, capabilities) {\n var cache = new UniformsCache();\n var shadowCache = ShadowUniformsCache();\n var state = {\n version: 0,\n hash: {\n directionalLength: -1,\n pointLength: -1,\n spotLength: -1,\n rectAreaLength: -1,\n hemiLength: -1,\n numDirectionalShadows: -1,\n numPointShadows: -1,\n numSpotShadows: -1,\n numSpotMaps: -1 },\n\n ambient: [0, 0, 0],\n probe: [],\n directional: [],\n directionalShadow: [],\n directionalShadowMap: [],\n directionalShadowMatrix: [],\n spot: [],\n spotLightMap: [],\n spotShadow: [],\n spotShadowMap: [],\n spotLightMatrix: [],\n rectArea: [],\n rectAreaLTC1: null,\n rectAreaLTC2: null,\n point: [],\n pointShadow: [],\n pointShadowMap: [],\n pointShadowMatrix: [],\n hemi: [],\n numSpotLightShadowsWithMaps: 0 };\n\n for (var i = 0; i < 9; i++) state.probe.push(new _Vector2.Vector3());\n var vector3 = new _Vector2.Vector3();\n var matrix4 = new _Matrix.Matrix4();\n var matrix42 = new _Matrix.Matrix4();\n function setup(lights, physicallyCorrectLights) {\n var r = 0,\n g = 0,\n b = 0;\n for (var _i = 0; _i < 9; _i++) state.probe[_i].set(0, 0, 0);\n var directionalLength = 0;\n var pointLength = 0;\n var spotLength = 0;\n var rectAreaLength = 0;\n var hemiLength = 0;\n var numDirectionalShadows = 0;\n var numPointShadows = 0;\n var numSpotShadows = 0;\n var numSpotMaps = 0;\n var numSpotShadowsWithMaps = 0;\n lights.sort(shadowCastingAndTexturingLightsFirst);\n var scaleFactor = physicallyCorrectLights !== true ? Math.PI : 1;\n for (var _i2 = 0, l = lights.length; _i2 < l; _i2++) {\n var light = lights[_i2];\n var color = light.color;\n var intensity = light.intensity;\n var distance = light.distance;\n var shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null;\n if (light.isAmbientLight) {\n r += color.r * intensity * scaleFactor;\n g += color.g * intensity * scaleFactor;\n b += color.b * intensity * scaleFactor;\n } else if (light.isLightProbe) {\n for (var j = 0; j < 9; j++) {\n state.probe[j].addScaledVector(light.sh.coefficients[j], intensity);\n }\n } else if (light.isDirectionalLight) {\n var uniforms = cache.get(light);\n uniforms.color.copy(light.color).multiplyScalar(light.intensity * scaleFactor);\n if (light.castShadow) {\n var shadow = light.shadow;\n var shadowUniforms = shadowCache.get(light);\n shadowUniforms.shadowBias = shadow.bias;\n shadowUniforms.shadowNormalBias = shadow.normalBias;\n shadowUniforms.shadowRadius = shadow.radius;\n shadowUniforms.shadowMapSize = shadow.mapSize;\n state.directionalShadow[directionalLength] = shadowUniforms;\n state.directionalShadowMap[directionalLength] = shadowMap;\n state.directionalShadowMatrix[directionalLength] = light.shadow.matrix;\n numDirectionalShadows++;\n }\n state.directional[directionalLength] = uniforms;\n directionalLength++;\n } else if (light.isSpotLight) {\n var _uniforms = cache.get(light);\n _uniforms.position.setFromMatrixPosition(light.matrixWorld);\n _uniforms.color.copy(color).multiplyScalar(intensity * scaleFactor);\n _uniforms.distance = distance;\n _uniforms.coneCos = Math.cos(light.angle);\n _uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra));\n _uniforms.decay = light.decay;\n state.spot[spotLength] = _uniforms;\n var _shadow = light.shadow;\n if (light.map) {\n state.spotLightMap[numSpotMaps] = light.map;\n numSpotMaps++;\n _shadow.updateMatrices(light);\n if (light.castShadow) numSpotShadowsWithMaps++;\n }\n state.spotLightMatrix[spotLength] = _shadow.matrix;\n if (light.castShadow) {\n var _shadowUniforms = shadowCache.get(light);\n _shadowUniforms.shadowBias = _shadow.bias;\n _shadowUniforms.shadowNormalBias = _shadow.normalBias;\n _shadowUniforms.shadowRadius = _shadow.radius;\n _shadowUniforms.shadowMapSize = _shadow.mapSize;\n state.spotShadow[spotLength] = _shadowUniforms;\n state.spotShadowMap[spotLength] = shadowMap;\n numSpotShadows++;\n }\n spotLength++;\n } else if (light.isRectAreaLight) {\n var _uniforms2 = cache.get(light);\n _uniforms2.color.copy(color).multiplyScalar(intensity);\n _uniforms2.halfWidth.set(light.width * 0.5, 0.0, 0.0);\n _uniforms2.halfHeight.set(0.0, light.height * 0.5, 0.0);\n state.rectArea[rectAreaLength] = _uniforms2;\n rectAreaLength++;\n } else if (light.isPointLight) {\n var _uniforms3 = cache.get(light);\n _uniforms3.color.copy(light.color).multiplyScalar(light.intensity * scaleFactor);\n _uniforms3.distance = light.distance;\n _uniforms3.decay = light.decay;\n if (light.castShadow) {\n var _shadow2 = light.shadow;\n var _shadowUniforms2 = shadowCache.get(light);\n _shadowUniforms2.shadowBias = _shadow2.bias;\n _shadowUniforms2.shadowNormalBias = _shadow2.normalBias;\n _shadowUniforms2.shadowRadius = _shadow2.radius;\n _shadowUniforms2.shadowMapSize = _shadow2.mapSize;\n _shadowUniforms2.shadowCameraNear = _shadow2.camera.near;\n _shadowUniforms2.shadowCameraFar = _shadow2.camera.far;\n state.pointShadow[pointLength] = _shadowUniforms2;\n state.pointShadowMap[pointLength] = shadowMap;\n state.pointShadowMatrix[pointLength] = light.shadow.matrix;\n numPointShadows++;\n }\n state.point[pointLength] = _uniforms3;\n pointLength++;\n } else if (light.isHemisphereLight) {\n var _uniforms4 = cache.get(light);\n _uniforms4.skyColor.copy(light.color).multiplyScalar(intensity * scaleFactor);\n _uniforms4.groundColor.copy(light.groundColor).multiplyScalar(intensity * scaleFactor);\n state.hemi[hemiLength] = _uniforms4;\n hemiLength++;\n }\n }\n if (rectAreaLength > 0) {\n if (capabilities.isWebGL2) {\n state.rectAreaLTC1 = _UniformsLib.UniformsLib.LTC_FLOAT_1;\n state.rectAreaLTC2 = _UniformsLib.UniformsLib.LTC_FLOAT_2;\n } else {\n if (extensions.has('OES_texture_float_linear') === true) {\n state.rectAreaLTC1 = _UniformsLib.UniformsLib.LTC_FLOAT_1;\n state.rectAreaLTC2 = _UniformsLib.UniformsLib.LTC_FLOAT_2;\n } else if (extensions.has('OES_texture_half_float_linear') === true) {\n state.rectAreaLTC1 = _UniformsLib.UniformsLib.LTC_HALF_1;\n state.rectAreaLTC2 = _UniformsLib.UniformsLib.LTC_HALF_2;\n } else {\n console.error('THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.');\n }\n }\n }\n state.ambient[0] = r;\n state.ambient[1] = g;\n state.ambient[2] = b;\n var hash = state.hash;\n if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows || hash.numSpotMaps !== numSpotMaps) {\n state.directional.length = directionalLength;\n state.spot.length = spotLength;\n state.rectArea.length = rectAreaLength;\n state.point.length = pointLength;\n state.hemi.length = hemiLength;\n state.directionalShadow.length = numDirectionalShadows;\n state.directionalShadowMap.length = numDirectionalShadows;\n state.pointShadow.length = numPointShadows;\n state.pointShadowMap.length = numPointShadows;\n state.spotShadow.length = numSpotShadows;\n state.spotShadowMap.length = numSpotShadows;\n state.directionalShadowMatrix.length = numDirectionalShadows;\n state.pointShadowMatrix.length = numPointShadows;\n state.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n state.spotLightMap.length = numSpotMaps;\n state.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n hash.directionalLength = directionalLength;\n hash.pointLength = pointLength;\n hash.spotLength = spotLength;\n hash.rectAreaLength = rectAreaLength;\n hash.hemiLength = hemiLength;\n hash.numDirectionalShadows = numDirectionalShadows;\n hash.numPointShadows = numPointShadows;\n hash.numSpotShadows = numSpotShadows;\n hash.numSpotMaps = numSpotMaps;\n state.version = nextVersion++;\n }\n }\n function setupView(lights, camera) {\n var directionalLength = 0;\n var pointLength = 0;\n var spotLength = 0;\n var rectAreaLength = 0;\n var hemiLength = 0;\n var viewMatrix = camera.matrixWorldInverse;\n for (var _i3 = 0, l = lights.length; _i3 < l; _i3++) {\n var light = lights[_i3];\n if (light.isDirectionalLight) {\n var uniforms = state.directional[directionalLength];\n uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n vector3.setFromMatrixPosition(light.target.matrixWorld);\n uniforms.direction.sub(vector3);\n uniforms.direction.transformDirection(viewMatrix);\n directionalLength++;\n } else if (light.isSpotLight) {\n var _uniforms5 = state.spot[spotLength];\n _uniforms5.position.setFromMatrixPosition(light.matrixWorld);\n _uniforms5.position.applyMatrix4(viewMatrix);\n _uniforms5.direction.setFromMatrixPosition(light.matrixWorld);\n vector3.setFromMatrixPosition(light.target.matrixWorld);\n _uniforms5.direction.sub(vector3);\n _uniforms5.direction.transformDirection(viewMatrix);\n spotLength++;\n } else if (light.isRectAreaLight) {\n var _uniforms6 = state.rectArea[rectAreaLength];\n _uniforms6.position.setFromMatrixPosition(light.matrixWorld);\n _uniforms6.position.applyMatrix4(viewMatrix);\n matrix42.identity();\n matrix4.copy(light.matrixWorld);\n matrix4.premultiply(viewMatrix);\n matrix42.extractRotation(matrix4);\n _uniforms6.halfWidth.set(light.width * 0.5, 0.0, 0.0);\n _uniforms6.halfHeight.set(0.0, light.height * 0.5, 0.0);\n _uniforms6.halfWidth.applyMatrix4(matrix42);\n _uniforms6.halfHeight.applyMatrix4(matrix42);\n rectAreaLength++;\n } else if (light.isPointLight) {\n var _uniforms7 = state.point[pointLength];\n _uniforms7.position.setFromMatrixPosition(light.matrixWorld);\n _uniforms7.position.applyMatrix4(viewMatrix);\n pointLength++;\n } else if (light.isHemisphereLight) {\n var _uniforms8 = state.hemi[hemiLength];\n _uniforms8.direction.setFromMatrixPosition(light.matrixWorld);\n _uniforms8.direction.transformDirection(viewMatrix);\n hemiLength++;\n }\n }\n }\n return {\n setup: setup,\n setupView: setupView,\n state: state };\n\n }return module.exports;});", "requires": [ "pandav:/src/math/Color.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/renderers/shaders/UniformsLib.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLLights.js", "fileName": "/src/renderers/webgl/WebGLLights.js" }, "pandav:/src/renderers/webgl/WebGLInfo.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLInfo\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLInfo = WebGLInfo;\n function WebGLInfo(gl) {\n var memory = {\n geometries: 0,\n textures: 0 };\n\n var render = {\n frame: 0,\n calls: 0,\n triangles: 0,\n points: 0,\n lines: 0 };\n\n function update(count, mode, instanceCount) {\n render.calls++;\n switch (mode) {\n case gl.TRIANGLES:\n render.triangles += instanceCount * (count / 3);\n break;\n case gl.LINES:\n render.lines += instanceCount * (count / 2);\n break;\n case gl.LINE_STRIP:\n render.lines += instanceCount * (count - 1);\n break;\n case gl.LINE_LOOP:\n render.lines += instanceCount * count;\n break;\n case gl.POINTS:\n render.points += instanceCount * count;\n break;\n default:\n console.error('THREE.WebGLInfo: Unknown draw mode:', mode);\n break;}\n\n }\n function reset() {\n render.frame++;\n render.calls = 0;\n render.triangles = 0;\n render.points = 0;\n render.lines = 0;\n }\n return {\n memory: memory,\n render: render,\n programs: null,\n autoReset: true,\n reset: reset,\n update: update };\n\n }return module.exports;});", "requires": [], "buildLevel": 22, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLInfo.js", "fileName": "/src/renderers/webgl/WebGLInfo.js" }, "pandav:/src/renderers/webgl/WebGLExtensions.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLExtensions\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLExtensions = WebGLExtensions;\n function WebGLExtensions(gl) {\n var extensions = {};\n function getExtension(name) {\n if (extensions[name] !== undefined) {\n return extensions[name];\n }\n var extension;\n switch (name) {\n case 'WEBGL_depth_texture':\n extension = gl.getExtension('WEBGL_depth_texture') || gl.getExtension('MOZ_WEBGL_depth_texture') || gl.getExtension('WEBKIT_WEBGL_depth_texture');\n break;\n case 'EXT_texture_filter_anisotropic':\n extension = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('MOZ_EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic');\n break;\n case 'WEBGL_compressed_texture_s3tc':\n extension = gl.getExtension('WEBGL_compressed_texture_s3tc') || gl.getExtension('MOZ_WEBGL_compressed_texture_s3tc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc');\n break;\n case 'WEBGL_compressed_texture_pvrtc':\n extension = gl.getExtension('WEBGL_compressed_texture_pvrtc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\n break;\n default:\n extension = gl.getExtension(name);}\n\n extensions[name] = extension;\n return extension;\n }\n return {\n has: function has(name) {\n return getExtension(name) !== null;\n },\n init: function init(capabilities) {\n if (capabilities.isWebGL2) {\n getExtension('EXT_color_buffer_float');\n } else {\n getExtension('WEBGL_depth_texture');\n getExtension('OES_texture_float');\n getExtension('OES_texture_half_float');\n getExtension('OES_texture_half_float_linear');\n getExtension('OES_standard_derivatives');\n getExtension('OES_element_index_uint');\n getExtension('OES_vertex_array_object');\n getExtension('ANGLE_instanced_arrays');\n }\n getExtension('OES_texture_float_linear');\n getExtension('EXT_color_buffer_half_float');\n getExtension('WEBGL_multisampled_render_to_texture');\n },\n get: function get(name) {\n var extension = getExtension(name);\n if (extension === null) {\n console.warn('THREE.WebGLRenderer: ' + name + ' extension not supported.');\n }\n return extension;\n } };\n\n }return module.exports;});", "requires": [], "buildLevel": 19, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLExtensions.js", "fileName": "/src/renderers/webgl/WebGLExtensions.js" }, "pandav:/src/renderers/webgl/WebGLMaterials.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLMaterials\", [\"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLMaterials = WebGLMaterials;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n function WebGLMaterials(renderer, properties) {\n function refreshFogUniforms(uniforms, fog) {\n uniforms.fogColor.value.copy(fog.color);\n if (fog.isFog) {\n uniforms.fogNear.value = fog.near;\n uniforms.fogFar.value = fog.far;\n } else if (fog.isFogExp2) {\n uniforms.fogDensity.value = fog.density;\n }\n }\n function refreshMaterialUniforms(uniforms, material, pixelRatio, height, transmissionRenderTarget, transmissionDepthRenderTarget, envMapRotateY, envMapIntensity) {\n if (material.isMeshBasicMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isMeshLambertMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isMeshToonMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsToon(uniforms, material);\n } else if (material.isMeshPhongMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsPhong(uniforms, material);\n } else if (material.isMeshStandardMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsStandard(uniforms, material, envMapRotateY, envMapIntensity);\n if (material.isMeshPhysicalMaterial) {\n refreshUniformsPhysical(uniforms, material, transmissionRenderTarget, transmissionDepthRenderTarget);\n }\n } else if (material.isMeshMatcapMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsMatcap(uniforms, material);\n } else if (material.isMeshDepthMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isMeshDistanceMaterial) {\n refreshUniformsCommon(uniforms, material);\n refreshUniformsDistance(uniforms, material);\n } else if (material.isMeshNormalMaterial) {\n refreshUniformsCommon(uniforms, material);\n } else if (material.isLineBasicMaterial) {\n refreshUniformsLine(uniforms, material);\n if (material.isLineDashedMaterial) {\n refreshUniformsDash(uniforms, material);\n }\n } else if (material.isPointsMaterial) {\n refreshUniformsPoints(uniforms, material, pixelRatio, height);\n } else if (material.isSpriteMaterial) {\n refreshUniformsSprites(uniforms, material);\n if (material.isUIMaterial) {\n uniforms.viewHeight.value = height;\n }\n } else if (material.isShadowMaterial) {\n uniforms.color.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n } else if (material.isShaderMaterial) {\n material.uniformsNeedUpdate = false;\n }\n if (material.isDeferredRenderPassMaterial) {\n var envMap = properties.get(material).envMap;\n if (envMap) {\n uniforms.envMapRotateY.value = envMapRotateY;\n uniforms.envMapIntensity.value = envMapIntensity;\n uniforms.envMap.value = envMap;\n uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n }\n }\n if (material.customUniformConfig) {\n for (var name in material.customUniformConfig) {\n var value = material[name];\n if (value === undefined) {\n console.warn(\"customUniformConfig define the field, but not in class instance\");\n continue;\n }\n uniforms[name].value = value;\n }\n }\n }\n function refreshUniformsCommon(uniforms, material) {\n uniforms.opacity.value = material.opacity;\n if (material.color) {\n uniforms.diffuse.value.copy(material.color);\n }\n if (material.emissive) {\n uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity);\n }\n if (material.map) {\n uniforms.map.value = material.map;\n }\n if (material.hsvColorCorrection) {\n uniforms.hsvColorCorrection.value = material.hsvColorCorrection;\n }\n if (material.brightnessContrast) {\n uniforms.brightnessContrast.value = material.brightnessContrast;\n }\n if (material.tag !== undefined) {\n uniforms.tag.value = material.tag;\n }\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n }\n if (material.bumpMap) {\n uniforms.bumpMap.value = material.bumpMap;\n uniforms.bumpScale.value = material.bumpScale;\n if (material.side === _constants.BackSide) uniforms.bumpScale.value *= -1;\n }\n if (material.displacementMap) {\n uniforms.displacementMap.value = material.displacementMap;\n uniforms.displacementScale.value = material.displacementScale;\n uniforms.displacementBias.value = material.displacementBias;\n }\n if (material.emissiveMap) {\n uniforms.emissiveMap.value = material.emissiveMap;\n }\n if (material.normalMap) {\n uniforms.normalMap.value = material.normalMap;\n uniforms.normalScale.value.copy(material.normalScale);\n if (material.side === _constants.BackSide) uniforms.normalScale.value.negate();\n }\n if (material.specularMap) {\n uniforms.specularMap.value = material.specularMap;\n }\n if (material.alphaTest > 0) {\n uniforms.alphaTest.value = material.alphaTest;\n }\n var envMap = properties.get(material).envMap;\n if (envMap && !material.isDeferredRenderPassMaterial) {\n uniforms.envMap.value = envMap;\n uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n uniforms.reflectivity.value = material.reflectivity;\n uniforms.ior.value = material.ior;\n uniforms.refractionRatio.value = material.refractionRatio;\n }\n if (material.lightMap) {\n uniforms.lightMap.value = material.lightMap;\n var scaleFactor = renderer.physicallyCorrectLights !== true ? Math.PI : 1;\n uniforms.lightMapIntensity.value = material.lightMapIntensity * scaleFactor;\n }\n if (material.aoMap) {\n uniforms.aoMap.value = material.aoMap;\n uniforms.aoMapIntensity.value = material.aoMapIntensity;\n }\n var uvScaleMap;\n if (material.map) {\n uvScaleMap = material.map;\n } else if (material.specularMap) {\n uvScaleMap = material.specularMap;\n } else if (material.displacementMap) {\n uvScaleMap = material.displacementMap;\n } else if (material.normalMap) {\n uvScaleMap = material.normalMap;\n } else if (material.bumpMap) {\n uvScaleMap = material.bumpMap;\n } else if (material.roughnessMap) {\n uvScaleMap = material.roughnessMap;\n } else if (material.metalnessMap) {\n uvScaleMap = material.metalnessMap;\n } else if (material.alphaMap) {\n uvScaleMap = material.alphaMap;\n } else if (material.emissiveMap) {\n uvScaleMap = material.emissiveMap;\n } else if (material.clearcoatMap) {\n uvScaleMap = material.clearcoatMap;\n } else if (material.clearcoatNormalMap) {\n uvScaleMap = material.clearcoatNormalMap;\n } else if (material.clearcoatRoughnessMap) {\n uvScaleMap = material.clearcoatRoughnessMap;\n } else if (material.iridescenceMap) {\n uvScaleMap = material.iridescenceMap;\n } else if (material.iridescenceThicknessMap) {\n uvScaleMap = material.iridescenceThicknessMap;\n } else if (material.specularIntensityMap) {\n uvScaleMap = material.specularIntensityMap;\n } else if (material.specularColorMap) {\n uvScaleMap = material.specularColorMap;\n } else if (material.transmissionMap) {\n uvScaleMap = material.transmissionMap;\n } else if (material.thicknessMap) {\n uvScaleMap = material.thicknessMap;\n } else if (material.sheenColorMap) {\n uvScaleMap = material.sheenColorMap;\n } else if (material.sheenRoughnessMap) {\n uvScaleMap = material.sheenRoughnessMap;\n }\n if (uvScaleMap !== undefined) {\n if (uvScaleMap.isWebGLRenderTarget) {\n uvScaleMap = uvScaleMap.texture;\n }\n if (uvScaleMap.matrixAutoUpdate === true) {\n uvScaleMap.updateMatrix();\n }\n uniforms.uvTransform.value.copy(uvScaleMap.matrix);\n }\n var uv2ScaleMap;\n if (material.aoMap) {\n uv2ScaleMap = material.aoMap;\n } else if (material.lightMap) {\n uv2ScaleMap = material.lightMap;\n }\n if (uv2ScaleMap !== undefined) {\n if (uv2ScaleMap.isWebGLRenderTarget) {\n uv2ScaleMap = uv2ScaleMap.texture;\n }\n if (uv2ScaleMap.matrixAutoUpdate === true) {\n uv2ScaleMap.updateMatrix();\n }\n uniforms.uv2Transform.value.copy(uv2ScaleMap.matrix);\n }\n }\n function refreshUniformsLine(uniforms, material) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n }\n function refreshUniformsDash(uniforms, material) {\n uniforms.dashSize.value = material.dashSize;\n uniforms.totalSize.value = material.dashSize + material.gapSize;\n uniforms.scale.value = material.scale;\n }\n function refreshUniformsPoints(uniforms, material, pixelRatio, height) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n uniforms.size.value = material.size * pixelRatio;\n uniforms.scale.value = height * 0.5;\n if (material.map) {\n uniforms.map.value = material.map;\n }\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n }\n if (material.alphaTest > 0) {\n uniforms.alphaTest.value = material.alphaTest;\n }\n var uvScaleMap;\n if (material.map) {\n uvScaleMap = material.map;\n } else if (material.alphaMap) {\n uvScaleMap = material.alphaMap;\n }\n if (uvScaleMap !== undefined) {\n if (uvScaleMap.matrixAutoUpdate === true) {\n uvScaleMap.updateMatrix();\n }\n uniforms.uvTransform.value.copy(uvScaleMap.matrix);\n }\n }\n function refreshUniformsSprites(uniforms, material) {\n uniforms.diffuse.value.copy(material.color);\n uniforms.opacity.value = material.opacity;\n uniforms.rotation.value = material.rotation;\n if (material.map) {\n uniforms.map.value = material.map;\n }\n if (material.alphaMap) {\n uniforms.alphaMap.value = material.alphaMap;\n }\n if (material.alphaTest > 0) {\n uniforms.alphaTest.value = material.alphaTest;\n }\n var uvScaleMap;\n if (material.map) {\n uvScaleMap = material.map;\n } else if (material.alphaMap) {\n uvScaleMap = material.alphaMap;\n }\n if (uvScaleMap !== undefined) {\n if (uvScaleMap.matrixAutoUpdate === true) {\n uvScaleMap.updateMatrix();\n }\n uniforms.uvTransform.value.copy(uvScaleMap.matrix);\n }\n }\n function refreshUniformsPhong(uniforms, material) {\n uniforms.specular.value.copy(material.specular);\n uniforms.shininess.value = Math.max(material.shininess, 1e-4);\n }\n function refreshUniformsToon(uniforms, material) {\n if (material.gradientMap) {\n uniforms.gradientMap.value = material.gradientMap;\n }\n }\n function refreshUniformsStandard(uniforms, material, envMapRotateY, envMapIntensity) {\n uniforms.roughness.value = material.roughness;\n uniforms.metalness.value = material.metalness;\n uniforms.reflectivityDecay.value = material.reflectivityDecay;\n if (material.roughnessMap) {\n uniforms.roughnessMap.value = material.roughnessMap;\n }\n if (material.metalnessMap) {\n uniforms.metalnessMap.value = material.metalnessMap;\n }\n var envMap = properties.get(material).envMap;\n if (envMap) {\n uniforms.envMapRotateY.value = envMapRotateY;\n uniforms.envMapIntensity.value = envMapIntensity;\n }\n }\n function refreshUniformsPhysical(uniforms, material, transmissionRenderTarget, transmissionDepthRenderTarget) {\n uniforms.ior.value = material.ior;\n if (material.sheen > 0) {\n uniforms.sheenColor.value.copy(material.sheenColor).multiplyScalar(material.sheen);\n uniforms.sheenRoughness.value = material.sheenRoughness;\n if (material.sheenColorMap) {\n uniforms.sheenColorMap.value = material.sheenColorMap;\n }\n if (material.sheenRoughnessMap) {\n uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n }\n }\n if (material.clearcoat > 0) {\n uniforms.clearcoat.value = material.clearcoat;\n uniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n if (material.clearcoatMap) {\n uniforms.clearcoatMap.value = material.clearcoatMap;\n }\n if (material.clearcoatRoughnessMap) {\n uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n }\n if (material.clearcoatNormalMap) {\n uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);\n uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n if (material.side === _constants.BackSide) {\n uniforms.clearcoatNormalScale.value.negate();\n }\n }\n }\n if (material.iridescence > 0) {\n uniforms.iridescence.value = material.iridescence;\n uniforms.iridescenceIOR.value = material.iridescenceIOR;\n uniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[0];\n uniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[1];\n if (material.iridescenceMap) {\n uniforms.iridescenceMap.value = material.iridescenceMap;\n }\n if (material.iridescenceThicknessMap) {\n uniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n }\n }\n if (material.transmission > 0) {\n uniforms.transmission.value = material.transmission;\n uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width, transmissionRenderTarget.height);\n uniforms.transmissionSamplerDepthMap.value = transmissionDepthRenderTarget.texture;\n if (material.transmissionMap) {\n uniforms.transmissionMap.value = material.transmissionMap;\n }\n uniforms.thickness.value = material.thickness;\n if (material.thicknessMap) {\n uniforms.thicknessMap.value = material.thicknessMap;\n }\n uniforms.attenuationDistance.value = material.attenuationDistance;\n uniforms.attenuationColor.value.copy(material.attenuationColor);\n uniforms.depthScatteringShallowestColor.value.copy(material.depthScatteringShallowestColor);\n uniforms.depthScatteringDeepestColor.value.copy(material.depthScatteringDeepestColor);\n uniforms.colorScatteringDistance.value = material.colorScatteringDistance;\n }\n uniforms.specularIntensity.value = material.specularIntensity;\n uniforms.specularColor.value.copy(material.specularColor);\n if (material.specularIntensityMap) {\n uniforms.specularIntensityMap.value = material.specularIntensityMap;\n }\n if (material.specularColorMap) {\n uniforms.specularColorMap.value = material.specularColorMap;\n }\n }\n function refreshUniformsMatcap(uniforms, material) {\n if (material.matcap) {\n uniforms.matcap.value = material.matcap;\n }\n }\n function refreshUniformsDistance(uniforms, material) {\n uniforms.referencePosition.value.copy(material.referencePosition);\n uniforms.nearDistance.value = material.nearDistance;\n uniforms.farDistance.value = material.farDistance;\n }\n return {\n refreshFogUniforms: refreshFogUniforms,\n refreshMaterialUniforms: refreshMaterialUniforms };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js" ], "buildLevel": 34, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLMaterials.js", "fileName": "/src/renderers/webgl/WebGLMaterials.js" }, "pandav:/src/renderers/webgl/WebGLMorphtargets.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLMorphtargets\", [\"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/textures/DataArrayTexture\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/math/Vector2\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLMorphtargets = WebGLMorphtargets;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _DataArrayTexture = require('pandav:/com/three/0.145.0/src/textures/DataArrayTexture');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n function numericalSort(a, b) {\n return a[0] - b[0];\n }\n function absNumericalSort(a, b) {\n return Math.abs(b[1]) - Math.abs(a[1]);\n }\n function WebGLMorphtargets(gl, capabilities, textures) {\n var influencesList = {};\n var morphInfluences = new Float32Array(8);\n var morphTextures = new WeakMap();\n var morph = new _Vector.Vector4();\n var workInfluences = [];\n for (var i = 0; i < 8; i++) {\n workInfluences[i] = [i, 0];\n }\n function update(object, geometry, material, program) {\n var objectInfluences = object.morphTargetInfluences;\n if (capabilities.isWebGL2 === true) {\n var morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n var morphTargetsCount = morphAttribute !== undefined ? morphAttribute.length : 0;\n var entry = morphTextures.get(geometry);\n if (entry === undefined || entry.count !== morphTargetsCount) {\n var disposeTexture = function disposeTexture() {\n texture.dispose();\n morphTextures[\"delete\"](geometry);\n geometry.removeEventListener('dispose', disposeTexture);\n };\n if (entry !== undefined) entry.texture.dispose();\n var hasMorphPosition = geometry.morphAttributes.position !== undefined;\n var hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n var hasMorphColors = geometry.morphAttributes.color !== undefined;\n var morphTargets = geometry.morphAttributes.position || [];\n var morphNormals = geometry.morphAttributes.normal || [];\n var morphColors = geometry.morphAttributes.color || [];\n var vertexDataCount = 0;\n if (hasMorphPosition === true) vertexDataCount = 1;\n if (hasMorphNormals === true) vertexDataCount = 2;\n if (hasMorphColors === true) vertexDataCount = 3;\n var width = geometry.attributes.position.count * vertexDataCount;\n var height = 1;\n if (width > capabilities.maxTextureSize) {\n height = Math.ceil(width / capabilities.maxTextureSize);\n width = capabilities.maxTextureSize;\n }\n var buffer = new Float32Array(width * height * 4 * morphTargetsCount);\n var texture = new _DataArrayTexture.DataArrayTexture(buffer, width, height, morphTargetsCount);\n texture.type = _constants.FloatType;\n texture.needsUpdate = true;\n var vertexDataStride = vertexDataCount * 4;\n for (var _i = 0; _i < morphTargetsCount; _i++) {\n var morphTarget = morphTargets[_i];\n var morphNormal = morphNormals[_i];\n var morphColor = morphColors[_i];\n var offset = width * height * 4 * _i;\n for (var j = 0; j < morphTarget.count; j++) {\n var stride = j * vertexDataStride;\n if (hasMorphPosition === true) {\n morph.fromBufferAttribute(morphTarget, j);\n buffer[offset + stride + 0] = morph.x;\n buffer[offset + stride + 1] = morph.y;\n buffer[offset + stride + 2] = morph.z;\n buffer[offset + stride + 3] = 0;\n }\n if (hasMorphNormals === true) {\n morph.fromBufferAttribute(morphNormal, j);\n buffer[offset + stride + 4] = morph.x;\n buffer[offset + stride + 5] = morph.y;\n buffer[offset + stride + 6] = morph.z;\n buffer[offset + stride + 7] = 0;\n }\n if (hasMorphColors === true) {\n morph.fromBufferAttribute(morphColor, j);\n buffer[offset + stride + 8] = morph.x;\n buffer[offset + stride + 9] = morph.y;\n buffer[offset + stride + 10] = morph.z;\n buffer[offset + stride + 11] = morphColor.itemSize === 4 ? morph.w : 1;\n }\n }\n }\n entry = {\n count: morphTargetsCount,\n texture: texture,\n size: new _Vector2.Vector2(width, height) };\n\n morphTextures.set(geometry, entry);\n geometry.addEventListener('dispose', disposeTexture);\n }\n var morphInfluencesSum = 0;\n for (var _i2 = 0; _i2 < objectInfluences.length; _i2++) {\n morphInfluencesSum += objectInfluences[_i2];\n }\n var morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n program.getUniforms().setValue(gl, 'morphTargetBaseInfluence', morphBaseInfluence);\n program.getUniforms().setValue(gl, 'morphTargetInfluences', objectInfluences);\n program.getUniforms().setValue(gl, 'morphTargetsTexture', entry.texture, textures);\n program.getUniforms().setValue(gl, 'morphTargetsTextureSize', entry.size);\n } else {\n var length = objectInfluences === undefined ? 0 : objectInfluences.length;\n var influences = influencesList[geometry.id];\n if (influences === undefined || influences.length !== length) {\n influences = [];\n for (var _i3 = 0; _i3 < length; _i3++) {\n influences[_i3] = [_i3, 0];\n }\n influencesList[geometry.id] = influences;\n }\n for (var _i4 = 0; _i4 < length; _i4++) {\n var influence = influences[_i4];\n influence[0] = _i4;\n influence[1] = objectInfluences[_i4];\n }\n influences.sort(absNumericalSort);\n for (var _i5 = 0; _i5 < 8; _i5++) {\n if (_i5 < length && influences[_i5][1]) {\n workInfluences[_i5][0] = influences[_i5][0];\n workInfluences[_i5][1] = influences[_i5][1];\n } else {\n workInfluences[_i5][0] = Number.MAX_SAFE_INTEGER;\n workInfluences[_i5][1] = 0;\n }\n }\n workInfluences.sort(numericalSort);\n var _morphTargets = geometry.morphAttributes.position;\n var _morphNormals = geometry.morphAttributes.normal;\n var _morphInfluencesSum = 0;\n for (var _i6 = 0; _i6 < 8; _i6++) {\n var _influence = workInfluences[_i6];\n var index = _influence[0];\n var value = _influence[1];\n if (index !== Number.MAX_SAFE_INTEGER && value) {\n if (_morphTargets && geometry.getAttribute('morphTarget' + _i6) !== _morphTargets[index]) {\n geometry.setAttribute('morphTarget' + _i6, _morphTargets[index]);\n }\n if (_morphNormals && geometry.getAttribute('morphNormal' + _i6) !== _morphNormals[index]) {\n geometry.setAttribute('morphNormal' + _i6, _morphNormals[index]);\n }\n morphInfluences[_i6] = value;\n _morphInfluencesSum += value;\n } else {\n if (_morphTargets && geometry.hasAttribute('morphTarget' + _i6) === true) {\n geometry.deleteAttribute('morphTarget' + _i6);\n }\n if (_morphNormals && geometry.hasAttribute('morphNormal' + _i6) === true) {\n geometry.deleteAttribute('morphNormal' + _i6);\n }\n morphInfluences[_i6] = 0;\n }\n }\n var _morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - _morphInfluencesSum;\n program.getUniforms().setValue(gl, 'morphTargetBaseInfluence', _morphBaseInfluence);\n program.getUniforms().setValue(gl, 'morphTargetInfluences', morphInfluences);\n }\n }\n return {\n update: update };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/textures/DataArrayTexture.js", "pandav:/src/math/Vector4.js", "pandav:/src/math/Vector2.js" ], "buildLevel": 23, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLMorphtargets.js", "fileName": "/src/renderers/webgl/WebGLMorphtargets.js" }, "pandav:/src/renderers/webgl/WebGLProperties.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLProperties\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLProperties = WebGLProperties;\n function WebGLProperties() {\n var properties = new WeakMap();\n function get(object) {\n var map = properties.get(object);\n if (map === undefined) {\n map = {};\n properties.set(object, map);\n }\n return map;\n }\n function remove(object) {\n properties[\"delete\"](object);\n }\n function update(object, key, value) {\n properties.get(object)[key] = value;\n }\n function dispose() {\n properties = new WeakMap();\n }\n return {\n get: get,\n remove: remove,\n update: update,\n dispose: dispose };\n\n }return module.exports;});", "requires": [], "buildLevel": 26, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLProperties.js", "fileName": "/src/renderers/webgl/WebGLProperties.js" }, "pandav:/src/renderers/webgl/WebGLProgram.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLProgram\", [\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniforms\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShader\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLProgram = WebGLProgram;\n var _WebGLUniforms = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniforms');\n var _WebGLShader = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShader');\n var _ShaderChunk = require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var programIdCount = 0;\n function handleSource(string, errorLine) {\n var lines = string.split('\\n');\n var lines2 = [];\n var from = Math.max(errorLine - 6, 0);\n var to = Math.min(errorLine + 6, lines.length);\n for (var i = from; i < to; i++) {\n var line = i + 1;\n lines2.push(\"\".concat(line === errorLine ? '>' : ' ', \" \").concat(line, \": \").concat(lines[i]));\n }\n return lines2.join('\\n');\n }\n function getEncodingComponents(encoding) {\n switch (encoding) {\n case _constants.LinearEncoding:\n return ['Linear', '( value )'];\n case _constants.sRGBEncoding:\n return ['sRGB', '( value )'];\n default:\n console.warn('THREE.WebGLProgram: Unsupported encoding:', encoding);\n return ['Linear', '( value )'];}\n\n }\n function getShaderErrors(gl, shader, type) {\n var status = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n var errors = gl.getShaderInfoLog(shader).trim();\n if (status && errors === '') return '';\n var errorMatches = /ERROR: 0:(\\d+)/.exec(errors);\n if (errorMatches) {\n var errorLine = parseInt(errorMatches[1]);\n return type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + handleSource(gl.getShaderSource(shader), errorLine);\n } else {\n return errors;\n }\n }\n function getTexelEncodingFunction(functionName, encoding) {\n var components = getEncodingComponents(encoding);\n return 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[0] + components[1] + '; }';\n }\n function getToneMappingFunction(functionName, toneMapping) {\n var toneMappingName;\n switch (toneMapping) {\n case _constants.LinearToneMapping:\n toneMappingName = 'Linear';\n break;\n case _constants.ReinhardToneMapping:\n toneMappingName = 'Reinhard';\n break;\n case _constants.CineonToneMapping:\n toneMappingName = 'OptimizedCineon';\n break;\n case _constants.ACESFilmicToneMapping:\n toneMappingName = 'ACESFilmic';\n break;\n case _constants.CustomToneMapping:\n toneMappingName = 'Custom';\n break;\n default:\n console.warn('THREE.WebGLProgram: Unsupported toneMapping:', toneMapping);\n toneMappingName = 'Linear';}\n\n return 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n }\n function generateExtensions(parameters) {\n var chunks = [parameters.extensionDerivatives || !!parameters.envMapCubeUVHeight || parameters.bumpMap || parameters.tangentSpaceNormalMap || parameters.clearcoatNormalMap || parameters.flatShading || parameters.shaderID === 'physical' ? '#extension GL_OES_standard_derivatives : enable' : '', (parameters.extensionFragDepth || parameters.logarithmicDepthBuffer) && parameters.rendererExtensionFragDepth ? '#extension GL_EXT_frag_depth : enable' : '', parameters.extensionDrawBuffers && parameters.rendererExtensionDrawBuffers ? '#extension GL_EXT_draw_buffers : require' : '', (parameters.extensionShaderTextureLOD || parameters.envMap || parameters.transmission) && parameters.rendererExtensionShaderTextureLod ? '#extension GL_EXT_shader_texture_lod : enable' : ''];\n return chunks.filter(filterEmptyLine).join('\\n');\n }\n function generateDefines(defines) {\n var chunks = [];\n for (var name in defines) {\n var value = defines[name];\n if (value === false) continue;\n chunks.push('#define ' + name + ' ' + value);\n }\n return chunks.join('\\n');\n }\n function fetchAttributeLocations(gl, program) {\n var attributes = {};\n var n = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n for (var i = 0; i < n; i++) {\n var info = gl.getActiveAttrib(program, i);\n var name = info.name;\n var locationSize = 1;\n if (info.type === gl.FLOAT_MAT2) locationSize = 2;\n if (info.type === gl.FLOAT_MAT3) locationSize = 3;\n if (info.type === gl.FLOAT_MAT4) locationSize = 4;\n attributes[name] = {\n type: info.type,\n location: gl.getAttribLocation(program, name),\n locationSize: locationSize };\n\n }\n return attributes;\n }\n function filterEmptyLine(string) {\n return string !== '';\n }\n function replaceLightNums(string, parameters) {\n var numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows);\n }\n function replaceClippingPlaneNums(string, parameters) {\n return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection);\n }\n var includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n function resolveIncludes(string) {\n return string.replace(includePattern, includeReplacer);\n }\n function includeReplacer(match, include) {\n var string = _ShaderChunk.ShaderChunk[include];\n if (string === undefined) {\n throw new Error('Can not resolve #include <' + include + '>');\n }\n return resolveIncludes(string);\n }\n var unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\n function unrollLoops(string) {\n return string.replace(unrollLoopPattern, loopReplacer);\n }\n function loopReplacer(match, start, end, snippet) {\n var string = '';\n for (var i = parseInt(start); i < parseInt(end); i++) {\n string += snippet.replace(/\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]').replace(/UNROLLED_LOOP_INDEX/g, i);\n }\n return string;\n }\n function generatePrecision(parameters) {\n var precisionstring = 'precision ' + parameters.precision + ' float;\\nprecision ' + parameters.precision + ' int;';\n if (parameters.precision === 'highp') {\n precisionstring += '\\n#define HIGH_PRECISION';\n } else if (parameters.precision === 'mediump') {\n precisionstring += '\\n#define MEDIUM_PRECISION';\n } else if (parameters.precision === 'lowp') {\n precisionstring += '\\n#define LOW_PRECISION';\n }\n return precisionstring;\n }\n function generateShadowMapTypeDefine(parameters) {\n var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n if (parameters.shadowMapType === _constants.PCFShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n } else if (parameters.shadowMapType === _constants.PCFSoftShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n } else if (parameters.shadowMapType === _constants.VSMShadowMap) {\n shadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n }\n return shadowMapTypeDefine;\n }\n function generatePCSSDefine(parameters) {\n var defines = [\"#define PCSS_LIGHT_WORLD_SIZE \" + toFloat(parameters.pcssDefines.PCSS_LIGHT_WORLD_SIZE), \"#define PCSS_LIGHT_FRUSTUM_WIDTH \" + toFloat(parameters.pcssDefines.PCSS_LIGHT_FRUSTUM_WIDTH), \"#define PCSS_NEAR_PLANE \" + toFloat(parameters.pcssDefines.PCSS_NEAR_PLANE), \"#define PCSS_NUM_SAMPLES \" + Math.floor(parameters.pcssDefines.PCSS_NUM_SAMPLES), \"#define PCSS_NUM_RINGS \" + Math.floor(parameters.pcssDefines.PCSS_NUM_RINGS)];\n return defines.join(\"\\n\");\n }\n function toFloat(n) {\n if (Math.floor(n) === n) {\n return n.toFixed(1);\n } else {\n return n;\n }\n }\n function generateEnvMapTypeDefine(parameters) {\n var envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n if (parameters.envMap) {\n switch (parameters.envMapMode) {\n case _constants.CubeReflectionMapping:\n case _constants.CubeRefractionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n break;\n case _constants.CubeUVReflectionMapping:\n envMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n break;}\n\n }\n return envMapTypeDefine;\n }\n function generateEnvMapModeDefine(parameters) {\n var envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n if (parameters.envMap) {\n switch (parameters.envMapMode) {\n case _constants.CubeRefractionMapping:\n envMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n break;}\n\n }\n return envMapModeDefine;\n }\n function generateEnvMapBlendingDefine(parameters) {\n var envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n if (parameters.envMap) {\n switch (parameters.combine) {\n case _constants.MultiplyOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n break;\n case _constants.MixOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n break;\n case _constants.AddOperation:\n envMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n break;}\n\n }\n return envMapBlendingDefine;\n }\n function generateCubeUVSize(parameters) {\n var imageHeight = parameters.envMapCubeUVHeight;\n if (imageHeight === null) return null;\n var maxMip = Math.log2(imageHeight) - 2;\n var texelHeight = 1.0 / imageHeight;\n var texelWidth = 1.0 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16));\n return {\n texelWidth: texelWidth,\n texelHeight: texelHeight,\n maxMip: maxMip };\n\n }\n function WebGLProgram(renderer, cacheKey, parameters, bindingStates) {\n var gl = renderer.getContext();\n var defines = parameters.defines;\n var vertexShader = parameters.vertexShader;\n var fragmentShader = parameters.fragmentShader;\n var shadowMapTypeDefine = generateShadowMapTypeDefine(parameters);\n var pcssDefines = generatePCSSDefine(parameters);\n var envMapTypeDefine = generateEnvMapTypeDefine(parameters);\n var envMapModeDefine = generateEnvMapModeDefine(parameters);\n var envMapBlendingDefine = generateEnvMapBlendingDefine(parameters);\n var envMapCubeUVSize = generateCubeUVSize(parameters);\n var customExtensions = parameters.isWebGL2 ? '' : generateExtensions(parameters);\n var customDefines = generateDefines(defines);\n var program = gl.createProgram();\n var prefixVertex, prefixFragment;\n var versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n if (parameters.isRawShaderMaterial) {\n prefixVertex = [customDefines].filter(filterEmptyLine).join('\\n');\n if (prefixVertex.length > 0) {\n prefixVertex += '\\n';\n }\n prefixFragment = [customExtensions, customDefines].filter(filterEmptyLine).join('\\n');\n if (prefixFragment.length > 0) {\n prefixFragment += '\\n';\n }\n } else {\n prefixVertex = [generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, parameters.instancing ? '#define USE_INSTANCING' : '', parameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '', parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '', parameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '', parameters.displacementMap && parameters.supportsVertexTextures ? '#define USE_DISPLACEMENTMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '', parameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.transmission ? '#define USE_TRANSMISSION' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '', parameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '', parameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.skinning ? '#define USE_SKINNING' : '', parameters.morphTargets ? '#define USE_MORPHTARGETS' : '', parameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '', parameters.morphColors && parameters.isWebGL2 ? '#define USE_MORPHCOLORS' : '', parameters.morphTargetsCount > 0 && parameters.isWebGL2 ? '#define MORPHTARGETS_TEXTURE' : '', parameters.morphTargetsCount > 0 && parameters.isWebGL2 ? '#define MORPHTARGETS_TEXTURE_STRIDE ' + parameters.morphTextureStride : '', parameters.morphTargetsCount > 0 && parameters.isWebGL2 ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', parameters.deferredRender ? '#define DEFERRED_RENDER' : '', 'uniform mat4 modelMatrix;', 'uniform mat4 modelViewMatrix;', 'uniform mat4 projectionMatrix;', 'uniform vec2 projectionJitter;', 'uniform mat4 viewMatrix;', 'uniform mat3 normalMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', '#ifdef USE_INSTANCING', '\tattribute mat4 instanceMatrix;', '#endif', '#ifdef USE_INSTANCING_COLOR', '\tattribute vec3 instanceColor;', '#endif', 'attribute vec3 position;', 'attribute vec3 normal;', 'attribute vec2 uv;', '#ifdef USE_TANGENT', '\tattribute vec4 tangent;', '#endif', '#if defined( USE_COLOR_ALPHA )', '\tattribute vec4 color;', '#elif defined( USE_COLOR )', '\tattribute vec3 color;', '#endif', '#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )', '\tattribute vec3 morphTarget0;', '\tattribute vec3 morphTarget1;', '\tattribute vec3 morphTarget2;', '\tattribute vec3 morphTarget3;', '\t#ifdef USE_MORPHNORMALS', '\t\tattribute vec3 morphNormal0;', '\t\tattribute vec3 morphNormal1;', '\t\tattribute vec3 morphNormal2;', '\t\tattribute vec3 morphNormal3;', '\t#else', '\t\tattribute vec3 morphTarget4;', '\t\tattribute vec3 morphTarget5;', '\t\tattribute vec3 morphTarget6;', '\t\tattribute vec3 morphTarget7;', '\t#endif', '#endif', '#ifdef USE_SKINNING', '\tattribute vec4 skinIndex;', '\tattribute vec4 skinWeight;', '#endif', '\\n'].filter(filterEmptyLine).join('\\n');\n prefixFragment = [customExtensions, generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, pcssDefines, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.matcap ? '#define USE_MATCAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapTypeDefine : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.envMap ? '#define ' + envMapBlendingDefine : '', envMapCubeUVSize ? '#define CUBEUV_TEXEL_WIDTH ' + envMapCubeUVSize.texelWidth : '', envMapCubeUVSize ? '#define CUBEUV_TEXEL_HEIGHT ' + envMapCubeUVSize.texelHeight : '', envMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.iridescence ? '#define USE_IRIDESCENCE' : '', parameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '', parameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '', parameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.alphaTest ? '#define USE_ALPHATEST' : '', parameters.sheen ? '#define USE_SHEEN' : '', parameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '', parameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '', parameters.transmission ? '#define USE_TRANSMISSION' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '', parameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors || parameters.instancingColor ? '#define USE_COLOR' : '', parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.gradientMap ? '#define USE_GRADIENTMAP' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '', parameters.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', 'uniform mat4 viewMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', parameters.toneMapping !== _constants.NoToneMapping ? '#define TONE_MAPPING' : '', parameters.toneMapping !== _constants.NoToneMapping ? _ShaderChunk.ShaderChunk.tonemapping_pars_fragment : '', parameters.toneMapping !== _constants.NoToneMapping ? getToneMappingFunction('toneMapping', parameters.toneMapping) : '', parameters.dithering ? '#define DITHERING' : '', parameters.opaque && parameters.alphaTest <= 0 ? '#define OPAQUE' : '', _ShaderChunk.ShaderChunk.encodings_pars_fragment, getTexelEncodingFunction('linearToOutputTexel', parameters.outputEncoding), parameters.useDepthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '', 'layout(location = 0) out highp vec4 pc_fragColor;', '#define gl_FragColor pc_fragColor', parameters.deferredRender ? '#define DEFERRED_RENDER' : '', '\\n'].filter(filterEmptyLine).join('\\n');\n }\n vertexShader = resolveIncludes(vertexShader);\n vertexShader = replaceLightNums(vertexShader, parameters);\n vertexShader = replaceClippingPlaneNums(vertexShader, parameters);\n fragmentShader = resolveIncludes(fragmentShader);\n fragmentShader = replaceLightNums(fragmentShader, parameters);\n fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters);\n vertexShader = unrollLoops(vertexShader);\n fragmentShader = unrollLoops(fragmentShader);\n if (parameters.isWebGL2 && parameters.isRawShaderMaterial !== true) {\n versionString = '#version 300 es\\n';\n prefixVertex = ['precision mediump sampler2DArray;', '#define attribute in', '#define varying out', '#define texture2D texture'].join('\\n') + '\\n' + prefixVertex;\n prefixFragment = ['#define varying in', '#define gl_FragDepthEXT gl_FragDepth', '#define texture2D texture', '#define textureCube texture', '#define texture2DProj textureProj', '#define texture2DLodEXT textureLod', '#define texture2DProjLodEXT textureProjLod', '#define textureCubeLodEXT textureLod', '#define texture2DGradEXT textureGrad', '#define texture2DProjGradEXT textureProjGrad', '#define textureCubeGradEXT textureGrad'].join('\\n') + '\\n' + prefixFragment;\n }\n var vertexGlsl = versionString + prefixVertex + vertexShader;\n var fragmentGlsl = versionString + prefixFragment + fragmentShader;\n var glVertexShader = (0, _WebGLShader.WebGLShader)(gl, gl.VERTEX_SHADER, vertexGlsl);\n var glFragmentShader = (0, _WebGLShader.WebGLShader)(gl, gl.FRAGMENT_SHADER, fragmentGlsl);\n gl.attachShader(program, glVertexShader);\n gl.attachShader(program, glFragmentShader);\n if (parameters.index0AttributeName !== undefined) {\n gl.bindAttribLocation(program, 0, parameters.index0AttributeName);\n } else if (parameters.morphTargets === true) {\n gl.bindAttribLocation(program, 0, 'position');\n }\n gl.linkProgram(program);\n if (renderer.debug.checkShaderErrors) {\n var programLog = gl.getProgramInfoLog(program).trim();\n var vertexLog = gl.getShaderInfoLog(glVertexShader).trim();\n var fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim();\n var runnable = true;\n var haveDiagnostics = true;\n if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) {\n runnable = false;\n var vertexErrors = getShaderErrors(gl, glVertexShader, 'vertex');\n var fragmentErrors = getShaderErrors(gl, glFragmentShader, 'fragment');\n console.error('THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' + 'VALIDATE_STATUS ' + gl.getProgramParameter(program, gl.VALIDATE_STATUS) + '\\n\\n' + 'Program Info Log: ' + programLog + '\\n' + vertexErrors + '\\n' + fragmentErrors);\n } else if (programLog !== '') {\n console.warn('THREE.WebGLProgram: Program Info Log:', programLog);\n } else if (vertexLog === '' || fragmentLog === '') {\n haveDiagnostics = false;\n }\n if (haveDiagnostics) {\n this.diagnostics = {\n runnable: runnable,\n programLog: programLog,\n vertexShader: {\n log: vertexLog,\n prefix: prefixVertex },\n\n fragmentShader: {\n log: fragmentLog,\n prefix: prefixFragment } };\n\n\n }\n }\n gl.deleteShader(glVertexShader);\n gl.deleteShader(glFragmentShader);\n var cachedUniforms;\n this.getUniforms = function () {\n if (cachedUniforms === undefined) {\n cachedUniforms = new _WebGLUniforms.WebGLUniforms(gl, program);\n }\n return cachedUniforms;\n };\n var cachedAttributes;\n this.getAttributes = function () {\n if (cachedAttributes === undefined) {\n cachedAttributes = fetchAttributeLocations(gl, program);\n }\n return cachedAttributes;\n };\n this.destroy = function () {\n bindingStates.releaseStatesOfProgram(this);\n gl.deleteProgram(program);\n this.program = undefined;\n };\n this.name = parameters.shaderName;\n this.id = programIdCount++;\n this.cacheKey = cacheKey;\n this.usedTimes = 1;\n this.program = program;\n this.vertexShader = glVertexShader;\n this.fragmentShader = glFragmentShader;\n return this;\n }return module.exports;});", "requires": [ "pandav:/src/renderers/webgl/WebGLUniforms.js", "pandav:/src/renderers/webgl/WebGLShader.js", "pandav:/src/renderers/shaders/ShaderChunk.js", "pandav:/src/constants.js" ], "buildLevel": 26, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLProgram.js", "fileName": "/src/renderers/webgl/WebGLProgram.js" }, "pandav:/src/renderers/webgl/WebGLShader.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShader\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLShader = WebGLShader;\n function WebGLShader(gl, type, string) {\n var shader = gl.createShader(type);\n gl.shaderSource(shader, string);\n gl.compileShader(shader);\n return shader;\n }return module.exports;});", "requires": [], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLShader.js", "fileName": "/src/renderers/webgl/WebGLShader.js" }, "pandav:/src/renderers/webgl/WebGLShaderCache.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShaderCache\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLShaderCache = void 0;\n var _createForOfIteratorHelper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _id = 0;\n var WebGLShaderCache = exports.WebGLShaderCache = function () {\n function WebGLShaderCache() {\n (0, _classCallCheck2.default)(this, WebGLShaderCache);\n this.shaderCache = new Map();\n this.materialCache = new Map();\n }\n (0, _createClass2.default)(WebGLShaderCache, [{\n key: \"update\",\n value: function update(material) {\n var vertexShader = material.vertexShader;\n var fragmentShader = material.fragmentShader;\n var vertexShaderStage = this._getShaderStage(vertexShader);\n var fragmentShaderStage = this._getShaderStage(fragmentShader);\n var materialShaders = this._getShaderCacheForMaterial(material);\n if (materialShaders.has(vertexShaderStage) === false) {\n materialShaders.add(vertexShaderStage);\n vertexShaderStage.usedTimes++;\n }\n if (materialShaders.has(fragmentShaderStage) === false) {\n materialShaders.add(fragmentShaderStage);\n fragmentShaderStage.usedTimes++;\n }\n return this;\n } },\n {\n key: \"remove\",\n value: function remove(material) {\n var materialShaders = this.materialCache.get(material);\n var _iterator = (0, _createForOfIteratorHelper2.default)(materialShaders),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var shaderStage = _step.value;\n shaderStage.usedTimes--;\n if (shaderStage.usedTimes === 0) this.shaderCache.delete(shaderStage.code);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n this.materialCache.delete(material);\n return this;\n } },\n {\n key: \"getVertexShaderID\",\n value: function getVertexShaderID(material) {\n return this._getShaderStage(material.vertexShader).id;\n } },\n {\n key: \"getFragmentShaderID\",\n value: function getFragmentShaderID(material) {\n return this._getShaderStage(material.fragmentShader).id;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.shaderCache.clear();\n this.materialCache.clear();\n } },\n {\n key: \"_getShaderCacheForMaterial\",\n value: function _getShaderCacheForMaterial(material) {\n var cache = this.materialCache;\n var set = cache.get(material);\n if (set === undefined) {\n set = new Set();\n cache.set(material, set);\n }\n return set;\n } },\n {\n key: \"_getShaderStage\",\n value: function _getShaderStage(code) {\n var cache = this.shaderCache;\n var stage = cache.get(code);\n if (stage === undefined) {\n stage = new WebGLShaderStage(code);\n cache.set(code, stage);\n }\n return stage;\n } }]);\n\n return WebGLShaderCache;\n }();\n var WebGLShaderStage = (0, _createClass2.default)(function WebGLShaderStage(code) {\n (0, _classCallCheck2.default)(this, WebGLShaderStage);\n this.id = _id++;\n this.code = code;\n this.usedTimes = 0;\n });return module.exports;});", "requires": [], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLShaderCache.js", "fileName": "/src/renderers/webgl/WebGLShaderCache.js" }, "pandav:/src/renderers/webgl/WebGLPrograms.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLPrograms\", [\"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/core/Layers\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLProgram\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShaderCache\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLPrograms = WebGLPrograms;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Layers = require('pandav:/com/three/0.145.0/src/core/Layers');\n var _WebGLProgram = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLProgram');\n var _WebGLShaderCache = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShaderCache');\n var _ShaderLib = require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n function WebGLPrograms(renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping) {\n var _programLayers = new _Layers.Layers();\n var _customShaders = new _WebGLShaderCache.WebGLShaderCache();\n var programs = [];\n var isWebGL2 = capabilities.isWebGL2;\n var logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n var vertexTextures = capabilities.vertexTextures;\n var precision = capabilities.precision;\n var shaderIDs = {\n MeshDepthMaterial: 'depth',\n MeshDistanceMaterial: 'distanceRGBA',\n MeshNormalMaterial: 'normal',\n MeshBasicMaterial: 'basic',\n MeshLambertMaterial: 'lambert',\n MeshPhongMaterial: 'phong',\n MeshToonMaterial: 'toon',\n MeshStandardMaterial: 'physical',\n MeshPhysicalMaterial: 'physical',\n MeshMatcapMaterial: 'matcap',\n LineBasicMaterial: 'basic',\n LineDashedMaterial: 'dashed',\n PointsMaterial: 'points',\n ShadowMaterial: 'shadow',\n SpriteMaterial: 'sprite' };\n\n function getEnvMap(material, environment) {\n if (material.isMeshStandardMaterial) {\n return cubeuvmaps.get(material.envMap || environment);\n } else if (material.isDeferredRenderPassMaterial) {\n return cubeuvmaps.get(environment);\n } else {\n return cubemaps.get(material.envMap || environment);\n }\n }\n function getParameters(material, lights, shadows, scene, object) {\n var fog = scene.fog;\n var geometry = object.geometry;\n var envMap = getEnvMap(material, scene.environment);\n var envMapCubeUVHeight = !!envMap && envMap.mapping === _constants.CubeUVReflectionMapping ? envMap.image.height : null;\n var shaderID = shaderIDs[material.type];\n if (material.precision !== null) {\n precision = capabilities.getMaxPrecision(material.precision);\n if (precision !== material.precision) {\n console.warn('THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.');\n }\n }\n var morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n var morphTargetsCount = morphAttribute !== undefined ? morphAttribute.length : 0;\n var morphTextureStride = 0;\n if (geometry.morphAttributes.position !== undefined) morphTextureStride = 1;\n if (geometry.morphAttributes.normal !== undefined) morphTextureStride = 2;\n if (geometry.morphAttributes.color !== undefined) morphTextureStride = 3;\n var vertexShader, fragmentShader;\n var customVertexShaderID, customFragmentShaderID;\n if (shaderID && !material.customUniformConfig) {\n var shader = _ShaderLib.ShaderLib[shaderID];\n vertexShader = shader.vertexShader;\n fragmentShader = shader.fragmentShader;\n } else {\n vertexShader = material.vertexShader;\n fragmentShader = material.fragmentShader;\n _customShaders.update(material);\n customVertexShaderID = _customShaders.getVertexShaderID(material);\n customFragmentShaderID = _customShaders.getFragmentShaderID(material);\n }\n renderer.getRenderTarget();\n var useAlphaTest = material.alphaTest > 0;\n var useClearcoat = material.clearcoat > 0;\n var useIridescence = material.iridescence > 0;\n var parameters = {\n uuid: material.uuid,\n isWebGL2: isWebGL2,\n shaderID: shaderID,\n shaderName: material.type,\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n defines: material.defines,\n customVertexShaderID: customVertexShaderID,\n customFragmentShaderID: customFragmentShaderID,\n isRawShaderMaterial: material.isRawShaderMaterial === true,\n glslVersion: material.glslVersion,\n precision: precision,\n instancing: object.isInstancedMesh === true,\n instancingColor: object.isInstancedMesh === true && object.instanceColor !== null,\n supportsVertexTextures: vertexTextures,\n outputEncoding: renderer.getOutputEncoding(),\n map: !!material.map,\n matcap: !!material.matcap,\n envMap: !!envMap,\n envMapMode: envMap && envMap.mapping,\n envMapCubeUVHeight: envMapCubeUVHeight,\n lightMap: !!material.lightMap,\n aoMap: !!material.aoMap,\n emissiveMap: !!material.emissiveMap,\n bumpMap: !!material.bumpMap,\n normalMap: !!material.normalMap,\n objectSpaceNormalMap: material.normalMapType === _constants.ObjectSpaceNormalMap,\n tangentSpaceNormalMap: material.normalMapType === _constants.TangentSpaceNormalMap,\n decodeVideoTexture: !!material.map && material.map.isVideoTexture === true && material.map.encoding === _constants.sRGBEncoding,\n clearcoat: useClearcoat,\n clearcoatMap: useClearcoat && !!material.clearcoatMap,\n clearcoatRoughnessMap: useClearcoat && !!material.clearcoatRoughnessMap,\n clearcoatNormalMap: useClearcoat && !!material.clearcoatNormalMap,\n iridescence: useIridescence,\n iridescenceMap: useIridescence && !!material.iridescenceMap,\n iridescenceThicknessMap: useIridescence && !!material.iridescenceThicknessMap,\n displacementMap: !!material.displacementMap,\n roughnessMap: !!material.roughnessMap,\n metalnessMap: !!material.metalnessMap,\n specularMap: !!material.specularMap,\n specularIntensityMap: !!material.specularIntensityMap,\n specularColorMap: !!material.specularColorMap,\n opaque: material.transparent === false && material.blending === _constants.NormalBlending,\n alphaMap: !!material.alphaMap,\n alphaTest: useAlphaTest,\n gradientMap: !!material.gradientMap,\n sheen: material.sheen > 0,\n sheenColorMap: !!material.sheenColorMap,\n sheenRoughnessMap: !!material.sheenRoughnessMap,\n transmission: material.transmission > 0,\n transmissionMap: !!material.transmissionMap,\n thicknessMap: !!material.thicknessMap,\n combine: material.combine,\n vertexTangents: !!material.normalMap && !!geometry.attributes.tangent,\n vertexColors: material.vertexColors,\n vertexAlphas: material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n vertexUvs: !!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatMap || !!material.clearcoatRoughnessMap || !!material.clearcoatNormalMap || !!material.iridescenceMap || !!material.iridescenceThicknessMap || !!material.displacementMap || !!material.transmissionMap || !!material.thicknessMap || !!material.specularIntensityMap || !!material.specularColorMap || !!material.sheenColorMap || !!material.sheenRoughnessMap,\n uvsVertexOnly: !(!!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatNormalMap || !!material.iridescenceMap || !!material.iridescenceThicknessMap || material.transmission > 0 || !!material.transmissionMap || !!material.thicknessMap || !!material.specularIntensityMap || !!material.specularColorMap || material.sheen > 0 || !!material.sheenColorMap || !!material.sheenRoughnessMap) && !!material.displacementMap,\n fog: !!fog,\n useFog: material.fog === true,\n fogExp2: fog && fog.isFogExp2,\n flatShading: !!material.flatShading,\n sizeAttenuation: material.sizeAttenuation,\n logarithmicDepthBuffer: logarithmicDepthBuffer,\n skinning: object.isSkinnedMesh === true,\n morphTargets: geometry.morphAttributes.position !== undefined,\n morphNormals: geometry.morphAttributes.normal !== undefined,\n morphColors: geometry.morphAttributes.color !== undefined,\n morphTargetsCount: morphTargetsCount,\n morphTextureStride: morphTextureStride,\n numDirLights: lights.directional.length,\n numPointLights: lights.point.length,\n numSpotLights: lights.spot.length,\n numSpotLightMaps: lights.spotLightMap.length,\n numRectAreaLights: lights.rectArea.length,\n numHemiLights: lights.hemi.length,\n numDirLightShadows: lights.directionalShadowMap.length,\n numPointLightShadows: lights.pointShadowMap.length,\n numSpotLightShadows: lights.spotShadowMap.length,\n numSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n numClippingPlanes: clipping.numPlanes,\n numClipIntersection: clipping.numIntersection,\n dithering: material.dithering,\n shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n shadowMapType: renderer.shadowMap.type,\n pcssDefines: renderer.pcssDefines,\n toneMapping: material.toneMapped ? renderer.toneMapping : _constants.NoToneMapping,\n physicallyCorrectLights: renderer.physicallyCorrectLights,\n premultipliedAlpha: material.premultipliedAlpha,\n doubleSided: material.side === _constants.DoubleSide,\n flipSided: material.side === _constants.BackSide,\n useDepthPacking: !!material.depthPacking,\n depthPacking: material.depthPacking || 0,\n index0AttributeName: material.index0AttributeName,\n extensionDerivatives: material.extensions && material.extensions.derivatives,\n extensionFragDepth: material.extensions && material.extensions.fragDepth,\n extensionDrawBuffers: material.extensions && material.extensions.drawBuffers,\n extensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,\n rendererExtensionFragDepth: isWebGL2 || extensions.has('EXT_frag_depth'),\n rendererExtensionDrawBuffers: isWebGL2 || extensions.has('WEBGL_draw_buffers'),\n rendererExtensionShaderTextureLod: isWebGL2 || extensions.has('EXT_shader_texture_lod'),\n customProgramCacheKey: material.customProgramCacheKey(),\n customUniformConfig: !!material.customUniformConfig,\n deferredRender: renderer._deferredRenderEnabled && material.deferredRender && !material.transparent,\n isDeferredRenderPassMaterial: !!material.isDeferredRenderPassMaterial };\n\n return parameters;\n }\n function getProgramCacheKey(parameters) {\n var array = [];\n if (parameters.shaderID) {\n array.push(parameters.shaderID);\n } else {\n array.push(parameters.customVertexShaderID);\n array.push(parameters.customFragmentShaderID);\n }\n if (parameters.defines !== undefined) {\n for (var name in parameters.defines) {\n array.push(name);\n array.push(parameters.defines[name]);\n }\n }\n if (parameters.pcssDefines !== undefined) {\n for (var _name in parameters.pcssDefines) {\n array.push(_name);\n array.push(parameters.pcssDefines[_name]);\n }\n }\n if (parameters.isRawShaderMaterial === false) {\n getProgramCacheKeyParameters(array, parameters);\n getProgramCacheKeyBooleans(array, parameters);\n array.push(renderer.outputEncoding);\n }\n array.push(parameters.customProgramCacheKey);\n return array.join();\n }\n function getProgramCacheKeyParameters(array, parameters) {\n array.push(parameters.precision);\n array.push(parameters.outputEncoding);\n array.push(parameters.envMapMode);\n array.push(parameters.envMapCubeUVHeight);\n array.push(parameters.combine);\n array.push(parameters.vertexUvs);\n array.push(parameters.fogExp2);\n array.push(parameters.sizeAttenuation);\n array.push(parameters.morphTargetsCount);\n array.push(parameters.morphAttributeCount);\n array.push(parameters.numDirLights);\n array.push(parameters.numPointLights);\n array.push(parameters.numSpotLights);\n array.push(parameters.numSpotLightMaps);\n array.push(parameters.numHemiLights);\n array.push(parameters.numRectAreaLights);\n array.push(parameters.numDirLightShadows);\n array.push(parameters.numPointLightShadows);\n array.push(parameters.numSpotLightShadows);\n array.push(parameters.numSpotLightShadowsWithMaps);\n array.push(parameters.shadowMapType);\n array.push(parameters.toneMapping);\n array.push(parameters.numClippingPlanes);\n array.push(parameters.numClipIntersection);\n array.push(parameters.depthPacking);\n }\n function getProgramCacheKeyBooleans(array, parameters) {\n _programLayers.disableAll();\n if (parameters.isWebGL2) _programLayers.enable(0);\n if (parameters.supportsVertexTextures) _programLayers.enable(1);\n if (parameters.instancing) _programLayers.enable(2);\n if (parameters.instancingColor) _programLayers.enable(3);\n if (parameters.map) _programLayers.enable(4);\n if (parameters.matcap) _programLayers.enable(5);\n if (parameters.envMap) _programLayers.enable(6);\n if (parameters.lightMap) _programLayers.enable(7);\n if (parameters.aoMap) _programLayers.enable(8);\n if (parameters.emissiveMap) _programLayers.enable(9);\n if (parameters.bumpMap) _programLayers.enable(10);\n if (parameters.normalMap) _programLayers.enable(11);\n if (parameters.objectSpaceNormalMap) _programLayers.enable(12);\n if (parameters.tangentSpaceNormalMap) _programLayers.enable(13);\n if (parameters.clearcoat) _programLayers.enable(14);\n if (parameters.clearcoatMap) _programLayers.enable(15);\n if (parameters.clearcoatRoughnessMap) _programLayers.enable(16);\n if (parameters.clearcoatNormalMap) _programLayers.enable(17);\n if (parameters.iridescence) _programLayers.enable(18);\n if (parameters.iridescenceMap) _programLayers.enable(19);\n if (parameters.iridescenceThicknessMap) _programLayers.enable(20);\n if (parameters.displacementMap) _programLayers.enable(21);\n if (parameters.specularMap) _programLayers.enable(22);\n if (parameters.roughnessMap) _programLayers.enable(23);\n if (parameters.metalnessMap) _programLayers.enable(24);\n if (parameters.gradientMap) _programLayers.enable(25);\n if (parameters.alphaMap) _programLayers.enable(26);\n if (parameters.alphaTest) _programLayers.enable(27);\n if (parameters.vertexColors) _programLayers.enable(28);\n if (parameters.vertexAlphas) _programLayers.enable(29);\n if (parameters.vertexUvs) _programLayers.enable(30);\n if (parameters.vertexTangents) _programLayers.enable(31);\n if (parameters.uvsVertexOnly) _programLayers.enable(32);\n array.push(_programLayers.mask);\n _programLayers.disableAll();\n if (parameters.fog) _programLayers.enable(0);\n if (parameters.useFog) _programLayers.enable(1);\n if (parameters.flatShading) _programLayers.enable(2);\n if (parameters.logarithmicDepthBuffer) _programLayers.enable(3);\n if (parameters.skinning) _programLayers.enable(4);\n if (parameters.morphTargets) _programLayers.enable(5);\n if (parameters.morphNormals) _programLayers.enable(6);\n if (parameters.morphColors) _programLayers.enable(7);\n if (parameters.premultipliedAlpha) _programLayers.enable(8);\n if (parameters.shadowMapEnabled) _programLayers.enable(9);\n if (parameters.physicallyCorrectLights) _programLayers.enable(10);\n if (parameters.doubleSided) _programLayers.enable(11);\n if (parameters.flipSided) _programLayers.enable(12);\n if (parameters.useDepthPacking) _programLayers.enable(13);\n if (parameters.dithering) _programLayers.enable(14);\n if (parameters.specularIntensityMap) _programLayers.enable(15);\n if (parameters.specularColorMap) _programLayers.enable(16);\n if (parameters.transmission) _programLayers.enable(17);\n if (parameters.transmissionMap) _programLayers.enable(18);\n if (parameters.thicknessMap) _programLayers.enable(19);\n if (parameters.sheen) _programLayers.enable(20);\n if (parameters.sheenColorMap) _programLayers.enable(21);\n if (parameters.sheenRoughnessMap) _programLayers.enable(22);\n if (parameters.decodeVideoTexture) _programLayers.enable(23);\n if (parameters.opaque) _programLayers.enable(24);\n if (parameters.deferredRender) _programLayers.enable(25);\n if (parameters.isDeferredRenderPassMaterial) _programLayers.enable(26);\n array.push(_programLayers.mask);\n }\n function getUniforms(material) {\n var shaderID = shaderIDs[material.type];\n var uniforms;\n if (shaderID) {\n var shader = _ShaderLib.ShaderLib[shaderID];\n uniforms = _UniformsUtils.UniformsUtils.clone(shader.uniforms);\n if (material.customUniformConfig) {\n for (var name in material.customUniformConfig) {\n var type = material.customUniformConfig[name].uniformType;\n var value = material[name];\n if (value === undefined) {\n console.warn(\"customUniformConfig define the field, but not in class instance\");\n continue;\n }\n uniforms[name] = {\n type: type,\n value: value };\n\n }\n }\n } else {\n uniforms = material.uniforms;\n }\n return uniforms;\n }\n function acquireProgram(parameters, cacheKey) {\n var program;\n for (var p = 0, pl = programs.length; p < pl; p++) {\n var preexistingProgram = programs[p];\n if (preexistingProgram.cacheKey === cacheKey) {\n program = preexistingProgram;\n ++program.usedTimes;\n break;\n }\n }\n if (program === undefined) {\n program = new _WebGLProgram.WebGLProgram(renderer, cacheKey, parameters, bindingStates);\n programs.push(program);\n }\n return program;\n }\n function releaseProgram(program) {\n if (--program.usedTimes === 0) {\n var i = programs.indexOf(program);\n programs[i] = programs[programs.length - 1];\n programs.pop();\n program.destroy();\n }\n }\n function releaseShaderCache(material) {\n _customShaders.remove(material);\n }\n function dispose() {\n _customShaders.dispose();\n }\n return {\n getParameters: getParameters,\n getProgramCacheKey: getProgramCacheKey,\n getUniforms: getUniforms,\n acquireProgram: acquireProgram,\n releaseProgram: releaseProgram,\n releaseShaderCache: releaseShaderCache,\n programs: programs,\n dispose: dispose };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/core/Layers.js", "pandav:/src/renderers/webgl/WebGLProgram.js", "pandav:/src/renderers/webgl/WebGLShaderCache.js", "pandav:/src/renderers/shaders/ShaderLib.js", "pandav:/src/renderers/shaders/UniformsUtils.js" ], "buildLevel": 2, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLPrograms.js", "fileName": "/src/renderers/webgl/WebGLPrograms.js" }, "pandav:/src/renderers/webgl/WebGLRenderStates.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLRenderStates\", [\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLLights\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLRenderStates = WebGLRenderStates;\n var _WebGLLights = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLLights');\n function WebGLRenderState(extensions, capabilities) {\n var lights = new _WebGLLights.WebGLLights(extensions, capabilities);\n var lightsArray = [];\n var shadowsArray = [];\n function init() {\n lightsArray.length = 0;\n shadowsArray.length = 0;\n }\n function pushLight(light) {\n lightsArray.push(light);\n }\n function pushShadow(shadowLight) {\n shadowsArray.push(shadowLight);\n }\n function setupLights(physicallyCorrectLights) {\n lights.setup(lightsArray, physicallyCorrectLights);\n }\n function setupLightsView(camera) {\n lights.setupView(lightsArray, camera);\n }\n var state = {\n lightsArray: lightsArray,\n shadowsArray: shadowsArray,\n lights: lights };\n\n return {\n init: init,\n state: state,\n setupLights: setupLights,\n setupLightsView: setupLightsView,\n pushLight: pushLight,\n pushShadow: pushShadow };\n\n }\n function WebGLRenderStates(extensions, capabilities) {\n var renderStates = new WeakMap();\n function get(scene) {\n var renderCallDepth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var renderStateArray = renderStates.get(scene);\n var renderState;\n if (renderStateArray === undefined) {\n renderState = new WebGLRenderState(extensions, capabilities);\n renderStates.set(scene, [renderState]);\n } else {\n if (renderCallDepth >= renderStateArray.length) {\n renderState = new WebGLRenderState(extensions, capabilities);\n renderStateArray.push(renderState);\n } else {\n renderState = renderStateArray[renderCallDepth];\n }\n }\n return renderState;\n }\n function dispose() {\n renderStates = new WeakMap();\n }\n return {\n get: get,\n dispose: dispose };\n\n }return module.exports;});", "requires": [ "pandav:/src/renderers/webgl/WebGLLights.js" ], "buildLevel": 28, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLRenderStates.js", "fileName": "/src/renderers/webgl/WebGLRenderStates.js" }, "pandav:/src/renderers/webgl/WebGLShadowMap.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShadowMap\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/materials/MeshDepthMaterial\", \"pandav:/com/three/0.145.0/src/materials/MeshDistanceMaterial\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Frustum\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/vsm.glsl\"], function (module, exports, require, load, process, global) {\n\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLShadowMap = WebGLShadowMap;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _WebGLRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _MeshDepthMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshDepthMaterial');\n var _MeshDistanceMaterial = require('pandav:/com/three/0.145.0/src/materials/MeshDistanceMaterial');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Frustum = require('pandav:/com/three/0.145.0/src/math/Frustum');\n var vsm = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib/vsm.glsl'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n function WebGLShadowMap(_renderer, _objects, _capabilities) {\n var _frustum = new _Frustum.Frustum();\n var _shadowMapSize = new _Vector2.Vector2(),\n _viewportSize = new _Vector2.Vector2(),\n _viewport = new _Vector.Vector4(),\n _depthMaterial = new _MeshDepthMaterial.MeshDepthMaterial({\n depthPacking: _constants.RGBADepthPacking }),\n\n _distanceMaterial = new _MeshDistanceMaterial.MeshDistanceMaterial(),\n _materialCache = {},\n _maxTextureSize = _capabilities.maxTextureSize;\n var shadowSide = {\n 1: _constants.BackSide,\n 0: _constants.FrontSide,\n 2: _constants.DoubleSide };\n\n var shadowMaterialVertical = new _ShaderMaterial.ShaderMaterial({\n defines: {\n VSM_SAMPLES: 8 },\n\n uniforms: {\n shadow_pass: {\n value: null },\n\n resolution: {\n value: new _Vector2.Vector2() },\n\n radius: {\n value: 4.0 } },\n\n\n vertexShader: vsm.vertex,\n fragmentShader: vsm.fragment });\n\n var shadowMaterialHorizontal = shadowMaterialVertical.clone();\n shadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n var fullScreenTri = new _BufferGeometry.BufferGeometry();\n fullScreenTri.setAttribute('position', new _BufferAttribute.BufferAttribute(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3));\n var fullScreenMesh = new _Mesh.Mesh(fullScreenTri, shadowMaterialVertical);\n var scope = this;\n this.enabled = false;\n this.autoUpdate = true;\n this.needsUpdate = false;\n this.type = _constants.PCFShadowMap;\n this.render = function (lights, scene, camera) {\n if (scope.enabled === false) return;\n if (scope.autoUpdate === false && scope.needsUpdate === false) return;\n if (lights.length === 0) return;\n var currentRenderTarget = _renderer.getRenderTarget();\n var activeCubeFace = _renderer.getActiveCubeFace();\n var activeMipmapLevel = _renderer.getActiveMipmapLevel();\n var _state = _renderer.state;\n _state.setBlending(_constants.NoBlending);\n _state.buffers.color.setClear(1, 1, 1, 1);\n _state.buffers.depth.setTest(true);\n _state.setScissorTest(false);\n for (var i = 0, il = lights.length; i < il; i++) {\n var light = lights[i];\n var shadow = light.shadow;\n if (shadow === undefined) {\n console.warn('THREE.WebGLShadowMap:', light, 'has no shadow.');\n continue;\n }\n if (shadow.autoUpdate === false && shadow.needsUpdate === false) continue;\n _shadowMapSize.copy(shadow.mapSize);\n var shadowFrameExtents = shadow.getFrameExtents();\n _shadowMapSize.multiply(shadowFrameExtents);\n _viewportSize.copy(shadow.mapSize);\n if (_shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize) {\n if (_shadowMapSize.x > _maxTextureSize) {\n _viewportSize.x = Math.floor(_maxTextureSize / shadowFrameExtents.x);\n _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n shadow.mapSize.x = _viewportSize.x;\n }\n if (_shadowMapSize.y > _maxTextureSize) {\n _viewportSize.y = Math.floor(_maxTextureSize / shadowFrameExtents.y);\n _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n shadow.mapSize.y = _viewportSize.y;\n }\n }\n if (shadow.map === null) {\n var pars = this.type !== _constants.VSMShadowMap ? {\n minFilter: _constants.NearestFilter,\n magFilter: _constants.NearestFilter } :\n {};\n shadow.map = new _WebGLRenderTarget.WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\n shadow.map.texture.name = light.name + '.shadowMap';\n shadow.camera.updateProjectionMatrix();\n } else {\n shadow.map.setSize(_shadowMapSize.x, _shadowMapSize.y);\n }\n _renderer.setRenderTarget(shadow.map);\n _renderer.clear();\n var viewportCount = shadow.getViewportCount();\n for (var vp = 0; vp < viewportCount; vp++) {\n var viewport = shadow.getViewport(vp);\n _viewport.set(_viewportSize.x * viewport.x, _viewportSize.y * viewport.y, _viewportSize.x * viewport.z, _viewportSize.y * viewport.w);\n _state.viewport(_viewport);\n shadow.updateMatrices(light, vp);\n _frustum = shadow.getFrustum();\n renderObject(scene, camera, shadow.camera, light, this.type);\n }\n if (shadow.isPointLightShadow !== true && this.type === _constants.VSMShadowMap) {\n VSMPass(shadow, camera);\n }\n shadow.needsUpdate = false;\n }\n scope.needsUpdate = false;\n _renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel);\n };\n this.dispose = function () {\n _depthMaterial.dispose();\n _distanceMaterial.dispose();\n shadowMaterialVertical.dispose();\n fullScreenTri.dispose();\n };\n function VSMPass(shadow, camera) {\n var geometry = _objects.update(fullScreenMesh);\n if (shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples) {\n shadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n shadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n shadowMaterialVertical.needsUpdate = true;\n shadowMaterialHorizontal.needsUpdate = true;\n }\n if (shadow.mapPass === null) {\n shadow.mapPass = new _WebGLRenderTarget.WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y);\n }\n shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n shadowMaterialVertical.uniforms.radius.value = shadow.radius;\n _renderer.setRenderTarget(shadow.mapPass);\n _renderer.clear();\n _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null);\n shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n _renderer.setRenderTarget(shadow.map);\n _renderer.clear();\n _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null);\n }\n function getDepthMaterial(object, material, light, shadowCameraNear, shadowCameraFar, type) {\n var result = null;\n var customMaterial = light.isPointLight === true ? object.customDistanceMaterial : object.customDepthMaterial;\n if (customMaterial !== undefined) {\n result = customMaterial;\n } else {\n result = light.isPointLight === true ? _distanceMaterial : _depthMaterial;\n }\n if (_renderer.localClippingEnabled && material.clipShadows === true && Array.isArray(material.clippingPlanes) && material.clippingPlanes.length !== 0 || material.displacementMap && material.displacementScale !== 0 || material.alphaMap && material.alphaTest > 0) {\n var keyA = result.uuid,\n keyB = material.uuid;\n var materialsForletiant = _materialCache[keyA];\n if (materialsForletiant === undefined) {\n materialsForletiant = {};\n _materialCache[keyA] = materialsForletiant;\n }\n var cachedMaterial = materialsForletiant[keyB];\n if (cachedMaterial === undefined) {\n cachedMaterial = result.clone();\n materialsForletiant[keyB] = cachedMaterial;\n }\n result = cachedMaterial;\n }\n result.visible = material.visible;\n result.wireframe = material.wireframe;\n if (type === _constants.VSMShadowMap) {\n result.side = material.shadowSide !== null ? material.shadowSide : material.side;\n } else {\n result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side];\n }\n result.map = material.map;\n result.alphaMap = material.alphaMap;\n result.alphaTest = material.alphaTest;\n result.clipShadows = material.clipShadows;\n result.clippingPlanes = material.clippingPlanes;\n result.clipIntersection = material.clipIntersection;\n result.displacementMap = material.displacementMap;\n result.displacementScale = material.displacementScale;\n result.displacementBias = material.displacementBias;\n result.wireframeLinewidth = material.wireframeLinewidth;\n result.linewidth = material.linewidth;\n if (light.isPointLight === true && result.isMeshDistanceMaterial === true) {\n result.referencePosition.setFromMatrixPosition(light.matrixWorld);\n result.nearDistance = shadowCameraNear;\n result.farDistance = shadowCameraFar;\n }\n return result;\n }\n function renderObject(object, camera, shadowCamera, light, type) {\n if (object.visible === false) return;\n var visible = object.layers.test(camera.layers);\n if (visible && (object.isMesh || object.isLine || object.isPoints)) {\n if ((object.castShadow || object.receiveShadow && type === _constants.VSMShadowMap) && (!object.frustumCulled || _frustum.intersectsObject(object))) {\n object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld);\n var geometry = _objects.update(object);\n var material = object.material;\n if (material) {\n if (Array.isArray(material)) {\n var groups = geometry.groups;\n for (var k = 0, kl = groups.length; k < kl; k++) {\n var group = groups[k];\n var groupMaterial = material[group.materialIndex];\n if (groupMaterial && groupMaterial.visible) {\n var depthMaterial = getDepthMaterial(object, groupMaterial, light, shadowCamera.near, shadowCamera.far, type);\n _renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group);\n }\n }\n } else if (material.visible) {\n var _depthMaterial2 = getDepthMaterial(object, material, light, shadowCamera.near, shadowCamera.far, type);\n _renderer.renderBufferDirect(shadowCamera, null, geometry, _depthMaterial2, object, null);\n }\n }\n }\n }\n var children = object.children;\n for (var i = 0, l = children.length; i < l; i++) {\n renderObject(children[i], camera, shadowCamera, light, type);\n }\n }\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/materials/MeshDepthMaterial.js", "pandav:/src/materials/MeshDistanceMaterial.js", "pandav:/src/materials/ShaderMaterial.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/objects/Mesh.js", "pandav:/src/math/Vector4.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Frustum.js", "pandav:/src/renderers/shaders/ShaderLib/vsm.glsl.js" ], "buildLevel": 29, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLShadowMap.js", "fileName": "/src/renderers/webgl/WebGLShadowMap.js" }, "pandav:/src/renderers/webgl/WebGLRenderLists.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLRenderLists\", [\"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLRenderList = WebGLRenderList;\n exports.WebGLRenderLists = WebGLRenderLists;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n function painterSortStable(a, b) {\n var renderOrderA = a.groupOrder === null ? a.renderOrder : a.groupOrder;\n var renderOrderB = b.groupOrder === null ? b.renderOrder : b.groupOrder;\n if (renderOrderA !== renderOrderB) {\n return renderOrderA - renderOrderB;\n } else if (a.material.id !== b.material.id) {\n return a.material.id - b.material.id;\n } else if (a.z !== b.z) {\n return a.z - b.z;\n } else {\n return a.id - b.id;\n }\n }\n function reversePainterSortStable(a, b) {\n var renderOrderA = a.groupOrder === null ? a.renderOrder : a.groupOrder;\n var renderOrderB = b.groupOrder === null ? b.renderOrder : b.groupOrder;\n if (renderOrderA !== renderOrderB) {\n return renderOrderA - renderOrderB;\n } else if (a.z !== b.z) {\n return b.z - a.z;\n } else {\n return a.id - b.id;\n }\n }\n function WebGLRenderList(renderer) {\n var renderItems = [];\n var renderItemsIndex = 0;\n var background = [];\n var deferredOpaque = [];\n var deferredTransmissive = [];\n var forwardOpaque = [];\n var forwardTransmissive = [];\n var forwardTransparent = [];\n function init() {\n renderItemsIndex = 0;\n background.length = 0;\n deferredOpaque.length = 0;\n deferredTransmissive.length = 0;\n forwardOpaque.length = 0;\n forwardTransmissive.length = 0;\n forwardTransparent.length = 0;\n }\n function getNextRenderItem(object, geometry, material, groupOrder, z, group) {\n var renderItem = renderItems[renderItemsIndex];\n if (renderItem === undefined) {\n renderItem = {\n id: object.id,\n object: object,\n geometry: geometry,\n material: material,\n groupOrder: groupOrder,\n renderOrder: object.renderOrder,\n z: z,\n group: group };\n\n renderItems[renderItemsIndex] = renderItem;\n } else {\n renderItem.id = object.id;\n renderItem.object = object;\n renderItem.geometry = geometry;\n renderItem.material = material;\n renderItem.groupOrder = groupOrder;\n renderItem.renderOrder = object.renderOrder;\n renderItem.z = z;\n renderItem.group = group;\n }\n renderItemsIndex++;\n return renderItem;\n }\n function push(object, geometry, material, groupOrder, z, group) {\n var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n var renderQueue = material.renderQueue;\n if (material.renderQueue === _constants.DefaultQueue) {\n if (renderer.deferredRenderEnabled && material.deferredRender && !material.transparent) {\n if (material.isMeshPhysicalMaterial && material._transmission > 0) {\n renderQueue = _constants.DeferredOpaqueQueue;\n } else {\n renderQueue = _constants.DeferredOpaqueQueue;\n }\n } else {\n if (material.transmission > 0.0) {\n renderQueue = _constants.ForwardTransmissiveQueue;\n } else if (material.transparent === true) {\n renderQueue = _constants.ForwardTransparentQueue;\n } else {\n renderQueue = _constants.ForwardOpaqueQueue;\n }\n }\n }\n switch (renderQueue) {\n case _constants.BackgroundQueue:\n background.push(renderItem);\n break;\n case _constants.DeferredOpaqueQueue:\n deferredOpaque.push(renderItem);\n break;\n case _constants.DeferredTransmissiveQueue:\n deferredTransmissive.push(renderItem);\n break;\n case _constants.ForwardOpaqueQueue:\n forwardOpaque.push(renderItem);\n break;\n case _constants.ForwardTransmissiveQueue:\n forwardTransmissive.push(renderItem);\n break;\n case _constants.ForwardTransparentQueue:\n forwardTransparent.push(renderItem);\n break;}\n\n }\n function unshift(object, geometry, material, groupOrder, z, group) {\n var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n background.push(renderItem);\n }\n function sort(customOpaqueSort, customTransparentSort) {\n if (deferredOpaque.length > 1) deferredOpaque.sort(customOpaqueSort || painterSortStable);\n if (deferredTransmissive.length > 1) deferredTransmissive.sort(customTransparentSort || reversePainterSortStable);\n if (forwardOpaque.length > 1) forwardOpaque.sort(customOpaqueSort || painterSortStable);\n if (forwardTransmissive.length > 1) forwardTransmissive.sort(customTransparentSort || reversePainterSortStable);\n if (forwardTransparent.length > 1) forwardTransparent.sort(customTransparentSort || reversePainterSortStable);\n }\n function finish() {\n for (var i = renderItemsIndex, il = renderItems.length; i < il; i++) {\n var renderItem = renderItems[i];\n if (renderItem.id === null) break;\n renderItem.id = null;\n renderItem.object = null;\n renderItem.geometry = null;\n renderItem.material = null;\n renderItem.group = null;\n }\n }\n return {\n background: background,\n deferredOpaque: deferredOpaque,\n deferredTransmissive: deferredTransmissive,\n forwardOpaque: forwardOpaque,\n forwardTransmissive: forwardTransmissive,\n forwardTransparent: forwardTransparent,\n init: init,\n push: push,\n unshift: unshift,\n finish: finish,\n sort: sort,\n getNextRenderItem: getNextRenderItem };\n\n }\n function WebGLRenderLists(renderer) {\n var lists = new WeakMap();\n function get(scene, renderCallDepth) {\n var listArray = lists.get(scene);\n var list;\n if (listArray === undefined) {\n list = new WebGLRenderList(renderer);\n lists.set(scene, [list]);\n } else {\n if (renderCallDepth >= listArray.length) {\n list = new WebGLRenderList(renderer);\n listArray.push(list);\n } else {\n list = listArray[renderCallDepth];\n }\n }\n return list;\n }\n function dispose() {\n lists = new WeakMap();\n }\n return {\n get: get,\n dispose: dispose };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js" ], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLRenderLists.js", "fileName": "/src/renderers/webgl/WebGLRenderLists.js" }, "pandav:/src/renderers/webgl/WebGLUniforms.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniforms\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/com/three/0.145.0/src/textures/CubeTexture\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/textures/DataArrayTexture\", \"pandav:/com/three/0.145.0/src/textures/Data3DTexture\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLUniforms = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _CubeTexture = require('pandav:/com/three/0.145.0/src/textures/CubeTexture');\n var _Texture = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _DataArrayTexture = require('pandav:/com/three/0.145.0/src/textures/DataArrayTexture');\n var _Data3DTexture = require('pandav:/com/three/0.145.0/src/textures/Data3DTexture');\n var emptyTexture = new _Texture.Texture();\n var emptyArrayTexture = new _DataArrayTexture.DataArrayTexture();\n var empty3dTexture = new _Data3DTexture.Data3DTexture();\n var emptyCubeTexture = new _CubeTexture.CubeTexture();\n var arrayCacheF32 = [];\n var arrayCacheI32 = [];\n var mat4array = new Float32Array(16);\n var mat3array = new Float32Array(9);\n var mat2array = new Float32Array(4);\n function flatten(array, nBlocks, blockSize) {\n var firstElem = array[0];\n if (firstElem <= 0 || firstElem > 0) return array;\n var n = nBlocks * blockSize;\n var r = arrayCacheF32[n];\n if (r === undefined) {\n r = new Float32Array(n);\n arrayCacheF32[n] = r;\n }\n if (nBlocks !== 0) {\n firstElem.toArray(r, 0);\n for (var i = 1, offset = 0; i !== nBlocks; ++i) {\n offset += blockSize;\n array[i].toArray(r, offset);\n }\n }\n return r;\n }\n function arraysEqual(a, b) {\n if (a.length !== b.length) return false;\n for (var i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n function copyArray(a, b) {\n for (var i = 0, l = b.length; i < l; i++) {\n a[i] = b[i];\n }\n }\n function allocTexUnits(textures, n) {\n var r = arrayCacheI32[n];\n if (r === undefined) {\n r = new Int32Array(n);\n arrayCacheI32[n] = r;\n }\n for (var i = 0; i !== n; ++i) {\n r[i] = textures.allocateTextureUnit();\n }\n return r;\n }\n function setValueV1f(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1f(this.addr, v);\n cache[0] = v;\n }\n function setValueV2f(gl, v) {\n var cache = this.cache;\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y) {\n gl.uniform2f(this.addr, v.x, v.y);\n cache[0] = v.x;\n cache[1] = v.y;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform2fv(this.addr, v);\n copyArray(cache, v);\n }\n }\n function setValueV3f(gl, v) {\n var cache = this.cache;\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n gl.uniform3f(this.addr, v.x, v.y, v.z);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n }\n } else if (v.r !== undefined) {\n if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) {\n gl.uniform3f(this.addr, v.r, v.g, v.b);\n cache[0] = v.r;\n cache[1] = v.g;\n cache[2] = v.b;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform3fv(this.addr, v);\n copyArray(cache, v);\n }\n }\n function setValueV4f(gl, v) {\n var cache = this.cache;\n if (v.x !== undefined) {\n if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n gl.uniform4f(this.addr, v.x, v.y, v.z, v.w);\n cache[0] = v.x;\n cache[1] = v.y;\n cache[2] = v.z;\n cache[3] = v.w;\n }\n } else if (v.r !== undefined) {\n if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b || cache[3] !== v.a) {\n gl.uniform4f(this.addr, v.r, v.g, v.b, v.a);\n cache[0] = v.r;\n cache[1] = v.g;\n cache[2] = v.b;\n cache[3] = v.a;\n }\n } else {\n if (arraysEqual(cache, v)) return;\n gl.uniform4fv(this.addr, v);\n copyArray(cache, v);\n }\n }\n function setValueM2(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix2fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat2array.set(elements);\n gl.uniformMatrix2fv(this.addr, false, mat2array);\n copyArray(cache, elements);\n }\n }\n function setValueM3(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix3fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat3array.set(elements);\n gl.uniformMatrix3fv(this.addr, false, mat3array);\n copyArray(cache, elements);\n }\n }\n function setValueM4(gl, v) {\n var cache = this.cache;\n var elements = v.elements;\n if (elements === undefined) {\n if (arraysEqual(cache, v)) return;\n gl.uniformMatrix4fv(this.addr, false, v);\n copyArray(cache, v);\n } else {\n if (arraysEqual(cache, elements)) return;\n mat4array.set(elements);\n gl.uniformMatrix4fv(this.addr, false, mat4array);\n copyArray(cache, elements);\n }\n }\n function setValueV1i(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1i(this.addr, v);\n cache[0] = v;\n }\n function setValueV2i(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform2iv(this.addr, v);\n copyArray(cache, v);\n }\n function setValueV3i(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform3iv(this.addr, v);\n copyArray(cache, v);\n }\n function setValueV4i(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform4iv(this.addr, v);\n copyArray(cache, v);\n }\n function setValueV1ui(gl, v) {\n var cache = this.cache;\n if (cache[0] === v) return;\n gl.uniform1ui(this.addr, v);\n cache[0] = v;\n }\n function setValueV2ui(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform2uiv(this.addr, v);\n copyArray(cache, v);\n }\n function setValueV3ui(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform3uiv(this.addr, v);\n copyArray(cache, v);\n }\n function setValueV4ui(gl, v) {\n var cache = this.cache;\n if (arraysEqual(cache, v)) return;\n gl.uniform4uiv(this.addr, v);\n copyArray(cache, v);\n }\n function setValueT1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n textures.setTexture2D(v || emptyTexture, unit);\n }\n function setValueT3D1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n textures.setTexture3D(v || empty3dTexture, unit);\n }\n function setValueT6(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n textures.setTextureCube(v || emptyCubeTexture, unit);\n }\n function setValueT2DArray1(gl, v, textures) {\n var cache = this.cache;\n var unit = textures.allocateTextureUnit();\n if (cache[0] !== unit) {\n gl.uniform1i(this.addr, unit);\n cache[0] = unit;\n }\n textures.setTexture2DArray(v || emptyArrayTexture, unit);\n }\n function getSingularSetter(type) {\n switch (type) {\n case 0x1406:\n return setValueV1f;\n case 0x8b50:\n return setValueV2f;\n case 0x8b51:\n return setValueV3f;\n case 0x8b52:\n return setValueV4f;\n case 0x8b5a:\n return setValueM2;\n case 0x8b5b:\n return setValueM3;\n case 0x8b5c:\n return setValueM4;\n case 0x1404:\n case 0x8b56:\n return setValueV1i;\n case 0x8b53:\n case 0x8b57:\n return setValueV2i;\n case 0x8b54:\n case 0x8b58:\n return setValueV3i;\n case 0x8b55:\n case 0x8b59:\n return setValueV4i;\n case 0x1405:\n return setValueV1ui;\n case 0x8dc6:\n return setValueV2ui;\n case 0x8dc7:\n return setValueV3ui;\n case 0x8dc8:\n return setValueV4ui;\n case 0x8b5e:\n case 0x8d66:\n case 0x8dca:\n case 0x8dd2:\n case 0x8b62:\n return setValueT1;\n case 0x8b5f:\n case 0x8dcb:\n case 0x8dd3:\n return setValueT3D1;\n case 0x8b60:\n case 0x8dcc:\n case 0x8dd4:\n case 0x8dc5:\n return setValueT6;\n case 0x8dc1:\n case 0x8dcf:\n case 0x8dd7:\n case 0x8dc4:\n return setValueT2DArray1;}\n\n }\n function setValueV1fArray(gl, v) {\n gl.uniform1fv(this.addr, v);\n }\n function setValueV2fArray(gl, v) {\n var data = flatten(v, this.size, 2);\n gl.uniform2fv(this.addr, data);\n }\n function setValueV3fArray(gl, v) {\n var data = flatten(v, this.size, 3);\n gl.uniform3fv(this.addr, data);\n }\n function setValueV4fArray(gl, v) {\n var data = flatten(v, this.size, 4);\n gl.uniform4fv(this.addr, data);\n }\n function setValueM2Array(gl, v) {\n var data = flatten(v, this.size, 4);\n gl.uniformMatrix2fv(this.addr, false, data);\n }\n function setValueM3Array(gl, v) {\n var data = flatten(v, this.size, 9);\n gl.uniformMatrix3fv(this.addr, false, data);\n }\n function setValueM4Array(gl, v) {\n var data = flatten(v, this.size, 16);\n gl.uniformMatrix4fv(this.addr, false, data);\n }\n function setValueV1iArray(gl, v) {\n gl.uniform1iv(this.addr, v);\n }\n function setValueV2iArray(gl, v) {\n gl.uniform2iv(this.addr, v);\n }\n function setValueV3iArray(gl, v) {\n gl.uniform3iv(this.addr, v);\n }\n function setValueV4iArray(gl, v) {\n gl.uniform4iv(this.addr, v);\n }\n function setValueV1uiArray(gl, v) {\n gl.uniform1uiv(this.addr, v);\n }\n function setValueV2uiArray(gl, v) {\n gl.uniform2uiv(this.addr, v);\n }\n function setValueV3uiArray(gl, v) {\n gl.uniform3uiv(this.addr, v);\n }\n function setValueV4uiArray(gl, v) {\n gl.uniform4uiv(this.addr, v);\n }\n function setValueT1Array(gl, v, textures) {\n var n = v.length;\n var units = allocTexUnits(textures, n);\n gl.uniform1iv(this.addr, units);\n for (var i = 0; i !== n; ++i) {\n textures.setTexture2D(v[i] || emptyTexture, units[i]);\n }\n }\n function setValueT3DArray(gl, v, textures) {\n var n = v.length;\n var units = allocTexUnits(textures, n);\n gl.uniform1iv(this.addr, units);\n for (var i = 0; i !== n; ++i) {\n textures.setTexture3D(v[i] || empty3dTexture, units[i]);\n }\n }\n function setValueT6Array(gl, v, textures) {\n var n = v.length;\n var units = allocTexUnits(textures, n);\n gl.uniform1iv(this.addr, units);\n for (var i = 0; i !== n; ++i) {\n textures.setTextureCube(v[i] || emptyCubeTexture, units[i]);\n }\n }\n function setValueT2DArrayArray(gl, v, textures) {\n var n = v.length;\n var units = allocTexUnits(textures, n);\n gl.uniform1iv(this.addr, units);\n for (var i = 0; i !== n; ++i) {\n textures.setTexture2DArray(v[i] || emptyArrayTexture, units[i]);\n }\n }\n function getPureArraySetter(type) {\n switch (type) {\n case 0x1406:\n return setValueV1fArray;\n case 0x8b50:\n return setValueV2fArray;\n case 0x8b51:\n return setValueV3fArray;\n case 0x8b52:\n return setValueV4fArray;\n case 0x8b5a:\n return setValueM2Array;\n case 0x8b5b:\n return setValueM3Array;\n case 0x8b5c:\n return setValueM4Array;\n case 0x1404:\n case 0x8b56:\n return setValueV1iArray;\n case 0x8b53:\n case 0x8b57:\n return setValueV2iArray;\n case 0x8b54:\n case 0x8b58:\n return setValueV3iArray;\n case 0x8b55:\n case 0x8b59:\n return setValueV4iArray;\n case 0x1405:\n return setValueV1uiArray;\n case 0x8dc6:\n return setValueV2uiArray;\n case 0x8dc7:\n return setValueV3uiArray;\n case 0x8dc8:\n return setValueV4uiArray;\n case 0x8b5e:\n case 0x8d66:\n case 0x8dca:\n case 0x8dd2:\n case 0x8b62:\n return setValueT1Array;\n case 0x8b5f:\n case 0x8dcb:\n case 0x8dd3:\n return setValueT3DArray;\n case 0x8b60:\n case 0x8dcc:\n case 0x8dd4:\n case 0x8dc5:\n return setValueT6Array;\n case 0x8dc1:\n case 0x8dcf:\n case 0x8dd7:\n case 0x8dc4:\n return setValueT2DArrayArray;}\n\n }\n var SingleUniform = (0, _createClass2.default)(function SingleUniform(id, activeInfo, addr) {\n (0, _classCallCheck2.default)(this, SingleUniform);\n this.id = id;\n this.addr = addr;\n this.cache = [];\n this.setValue = getSingularSetter(activeInfo.type);\n });\n var PureArrayUniform = (0, _createClass2.default)(function PureArrayUniform(id, activeInfo, addr) {\n (0, _classCallCheck2.default)(this, PureArrayUniform);\n this.id = id;\n this.addr = addr;\n this.cache = [];\n this.size = activeInfo.size;\n this.setValue = getPureArraySetter(activeInfo.type);\n });\n var StructuredUniform = function () {\n function StructuredUniform(id) {\n (0, _classCallCheck2.default)(this, StructuredUniform);\n this.id = id;\n this.seq = [];\n this.map = {};\n }\n (0, _createClass2.default)(StructuredUniform, [{\n key: \"setValue\",\n value: function setValue(gl, value, textures) {\n var seq = this.seq;\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i];\n u.setValue(gl, value[u.id], textures);\n }\n } }]);\n\n return StructuredUniform;\n }();\n var RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\n function addUniform(container, uniformObject) {\n container.seq.push(uniformObject);\n container.map[uniformObject.id] = uniformObject;\n }\n function parseUniform(activeInfo, addr, container) {\n var path = activeInfo.name,\n pathLength = path.length;\n RePathPart.lastIndex = 0;\n while (true) {\n var match = RePathPart.exec(path),\n matchEnd = RePathPart.lastIndex;\n var id = match[1];\n var idIsIndex = match[2] === ']',\n subscript = match[3];\n if (idIsIndex) id = id | 0;\n if (subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength) {\n addUniform(container, subscript === undefined ? new SingleUniform(id, activeInfo, addr) : new PureArrayUniform(id, activeInfo, addr));\n break;\n } else {\n var map = container.map;\n var next = map[id];\n if (next === undefined) {\n next = new StructuredUniform(id);\n addUniform(container, next);\n }\n container = next;\n }\n }\n }\n var WebGLUniforms = exports.WebGLUniforms = function () {\n function WebGLUniforms(gl, program) {\n (0, _classCallCheck2.default)(this, WebGLUniforms);\n this.seq = [];\n this.map = {};\n var n = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n for (var i = 0; i < n; ++i) {\n var info = gl.getActiveUniform(program, i),\n addr = gl.getUniformLocation(program, info.name);\n parseUniform(info, addr, this);\n }\n }\n (0, _createClass2.default)(WebGLUniforms, [{\n key: \"setValue\",\n value: function setValue(gl, name, value, textures) {\n var u = this.map[name];\n if (u !== undefined) u.setValue(gl, value, textures);\n } },\n {\n key: \"setOptional\",\n value: function setOptional(gl, object, name) {\n var v = object[name];\n if (v !== undefined) this.setValue(gl, name, v);\n } }],\n [{\n key: \"upload\",\n value: function upload(gl, seq, values, textures) {\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i],\n v = values[u.id];\n if (v.needsUpdate !== false) {\n u.setValue(gl, v.value, textures);\n }\n }\n } },\n {\n key: \"seqWithValue\",\n value: function seqWithValue(seq, values) {\n var r = [];\n for (var i = 0, n = seq.length; i !== n; ++i) {\n var u = seq[i];\n if (u.id in values) r.push(u);\n }\n return r;\n } }]);\n\n return WebGLUniforms;\n }();return module.exports;});", "requires": [ "pandav:/src/textures/CubeTexture.js", "pandav:/src/textures/Texture.js", "pandav:/src/textures/DataArrayTexture.js", "pandav:/src/textures/Data3DTexture.js" ], "buildLevel": 27, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLUniforms.js", "fileName": "/src/renderers/webgl/WebGLUniforms.js" }, "pandav:/src/renderers/webgl/WebGLUniformsGroups.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniformsGroups\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLUniformsGroups = WebGLUniformsGroups;\n function WebGLUniformsGroups(gl, info, capabilities, state) {\n var buffers = {};\n var updateList = {};\n var allocatedBindingPoints = [];\n var maxBindingPoints = capabilities.isWebGL2 ? gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS) : 0;\n function bind(uniformsGroup, program) {\n var webglProgram = program.program;\n state.uniformBlockBinding(uniformsGroup, webglProgram);\n }\n function update(uniformsGroup, program) {\n var buffer = buffers[uniformsGroup.id];\n if (buffer === undefined) {\n prepareUniformsGroup(uniformsGroup);\n buffer = createBuffer(uniformsGroup);\n buffers[uniformsGroup.id] = buffer;\n uniformsGroup.addEventListener('dispose', onUniformsGroupsDispose);\n }\n var webglProgram = program.program;\n state.updateUBOMapping(uniformsGroup, webglProgram);\n var frame = info.render.frame;\n if (updateList[uniformsGroup.id] !== frame) {\n updateBufferData(uniformsGroup);\n updateList[uniformsGroup.id] = frame;\n }\n }\n function createBuffer(uniformsGroup) {\n var bindingPointIndex = allocateBindingPointIndex();\n uniformsGroup.__bindingPointIndex = bindingPointIndex;\n var buffer = gl.createBuffer();\n var size = uniformsGroup.__size;\n var usage = uniformsGroup.usage;\n gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n gl.bufferData(gl.UNIFORM_BUFFER, size, usage);\n gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPointIndex, buffer);\n return buffer;\n }\n function allocateBindingPointIndex() {\n for (var i = 0; i < maxBindingPoints; i++) {\n if (allocatedBindingPoints.indexOf(i) === -1) {\n allocatedBindingPoints.push(i);\n return i;\n }\n }\n console.error('THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.');\n return 0;\n }\n function updateBufferData(uniformsGroup) {\n var buffer = buffers[uniformsGroup.id];\n var uniforms = uniformsGroup.uniforms;\n var cache = uniformsGroup.__cache;\n gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n for (var i = 0, il = uniforms.length; i < il; i++) {\n var uniform = uniforms[i];\n if (hasUniformChanged(uniform, i, cache) === true) {\n var value = uniform.value;\n var offset = uniform.__offset;\n if (typeof value === 'number') {\n uniform.__data[0] = value;\n gl.bufferSubData(gl.UNIFORM_BUFFER, offset, uniform.__data);\n } else {\n if (uniform.value.isMatrix3) {\n uniform.__data[0] = uniform.value.elements[0];\n uniform.__data[1] = uniform.value.elements[1];\n uniform.__data[2] = uniform.value.elements[2];\n uniform.__data[3] = uniform.value.elements[0];\n uniform.__data[4] = uniform.value.elements[3];\n uniform.__data[5] = uniform.value.elements[4];\n uniform.__data[6] = uniform.value.elements[5];\n uniform.__data[7] = uniform.value.elements[0];\n uniform.__data[8] = uniform.value.elements[6];\n uniform.__data[9] = uniform.value.elements[7];\n uniform.__data[10] = uniform.value.elements[8];\n uniform.__data[11] = uniform.value.elements[0];\n } else {\n value.toArray(uniform.__data);\n }\n gl.bufferSubData(gl.UNIFORM_BUFFER, offset, uniform.__data);\n }\n }\n }\n gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n }\n function hasUniformChanged(uniform, index, cache) {\n var value = uniform.value;\n if (cache[index] === undefined) {\n if (typeof value === 'number') {\n cache[index] = value;\n } else {\n cache[index] = value.clone();\n }\n return true;\n } else {\n if (typeof value === 'number') {\n if (cache[index] !== value) {\n cache[index] = value;\n return true;\n }\n } else {\n var cachedObject = cache[index];\n if (cachedObject.equals(value) === false) {\n cachedObject.copy(value);\n return true;\n }\n }\n }\n return false;\n }\n function prepareUniformsGroup(uniformsGroup) {\n var uniforms = uniformsGroup.uniforms;\n var offset = 0;\n var chunkSize = 16;\n var chunkOffset = 0;\n for (var i = 0, l = uniforms.length; i < l; i++) {\n var uniform = uniforms[i];\n var _info = getUniformSize(uniform);\n uniform.__data = new Float32Array(_info.storage / Float32Array.BYTES_PER_ELEMENT);\n uniform.__offset = offset;\n if (i > 0) {\n chunkOffset = offset % chunkSize;\n var remainingSizeInChunk = chunkSize - chunkOffset;\n if (chunkOffset !== 0 && remainingSizeInChunk - _info.boundary < 0) {\n offset += chunkSize - chunkOffset;\n uniform.__offset = offset;\n }\n }\n offset += _info.storage;\n }\n chunkOffset = offset % chunkSize;\n if (chunkOffset > 0) offset += chunkSize - chunkOffset;\n uniformsGroup.__size = offset;\n uniformsGroup.__cache = {};\n return this;\n }\n function getUniformSize(uniform) {\n var value = uniform.value;\n var info = {\n boundary: 0,\n storage: 0 };\n\n if (typeof value === 'number') {\n info.boundary = 4;\n info.storage = 4;\n } else if (value.isVector2) {\n info.boundary = 8;\n info.storage = 8;\n } else if (value.isVector3 || value.isColor) {\n info.boundary = 16;\n info.storage = 12;\n } else if (value.isVector4) {\n info.boundary = 16;\n info.storage = 16;\n } else if (value.isMatrix3) {\n info.boundary = 48;\n info.storage = 48;\n } else if (value.isMatrix4) {\n info.boundary = 64;\n info.storage = 64;\n } else if (value.isTexture) {\n console.warn('THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.');\n } else {\n console.warn('THREE.WebGLRenderer: Unsupported uniform value type.', value);\n }\n return info;\n }\n function onUniformsGroupsDispose(event) {\n var uniformsGroup = event.target;\n uniformsGroup.removeEventListener('dispose', onUniformsGroupsDispose);\n var index = allocatedBindingPoints.indexOf(uniformsGroup.__bindingPointIndex);\n allocatedBindingPoints.splice(index, 1);\n gl.deleteBuffer(buffers[uniformsGroup.id]);\n delete buffers[uniformsGroup.id];\n delete updateList[uniformsGroup.id];\n }\n function dispose() {\n for (var id in buffers) {\n gl.deleteBuffer(buffers[id]);\n }\n allocatedBindingPoints = [];\n buffers = {};\n updateList = {};\n }\n return {\n bind: bind,\n update: update,\n dispose: dispose };\n\n }return module.exports;});", "requires": [], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLUniformsGroups.js", "fileName": "/src/renderers/webgl/WebGLUniformsGroups.js" }, "pandav:/src/renderers/webgl/WebGLState.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLState\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Vector4\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLState = WebGLState;\n var _defineProperty2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector4');\n function WebGLState(gl, extensions, capabilities) {\n var _factorToGL2;\n var _factorToGL;\n var isWebGL2 = capabilities.isWebGL2;\n function ColorBuffer() {\n var locked = false;\n var color = new _Vector.Vector4();\n var currentColorMask = null;\n var currentColorClear = new _Vector.Vector4(0, 0, 0, 0);\n return {\n setMask: function setMask(colorMask) {\n if (currentColorMask !== colorMask && !locked) {\n gl.colorMask(colorMask, colorMask, colorMask, colorMask);\n currentColorMask = colorMask;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(r, g, b, a, premultipliedAlpha) {\n if (premultipliedAlpha === true) {\n r *= a;\n g *= a;\n b *= a;\n }\n color.set(r, g, b, a);\n if (currentColorClear.equals(color) === false) {\n gl.clearColor(r, g, b, a);\n currentColorClear.copy(color);\n }\n },\n reset: function reset() {\n locked = false;\n currentColorMask = null;\n currentColorClear.set(-1, 0, 0, 0);\n } };\n\n }\n function DepthBuffer() {\n var locked = false;\n var currentDepthMask = null;\n var currentDepthFunc = null;\n var currentDepthClear = null;\n return {\n setTest: function setTest(depthTest) {\n if (depthTest) {\n enable(gl.DEPTH_TEST);\n } else {\n disable(gl.DEPTH_TEST);\n }\n },\n setMask: function setMask(depthMask) {\n if (currentDepthMask !== depthMask && !locked) {\n gl.depthMask(depthMask);\n currentDepthMask = depthMask;\n }\n },\n setFunc: function setFunc(depthFunc) {\n if (currentDepthFunc !== depthFunc) {\n if (depthFunc) {\n switch (depthFunc) {\n case _constants.NeverDepth:\n gl.depthFunc(gl.NEVER);\n break;\n case _constants.AlwaysDepth:\n gl.depthFunc(gl.ALWAYS);\n break;\n case _constants.LessDepth:\n gl.depthFunc(gl.LESS);\n break;\n case _constants.LessEqualDepth:\n gl.depthFunc(gl.LEQUAL);\n break;\n case _constants.EqualDepth:\n gl.depthFunc(gl.EQUAL);\n break;\n case _constants.GreaterEqualDepth:\n gl.depthFunc(gl.GEQUAL);\n break;\n case _constants.GreaterDepth:\n gl.depthFunc(gl.GREATER);\n break;\n case _constants.NotEqualDepth:\n gl.depthFunc(gl.NOTEQUAL);\n break;\n default:\n gl.depthFunc(gl.LEQUAL);}\n\n } else {\n gl.depthFunc(gl.LEQUAL);\n }\n currentDepthFunc = depthFunc;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(depth) {\n if (currentDepthClear !== depth) {\n gl.clearDepth(depth);\n currentDepthClear = depth;\n }\n },\n reset: function reset() {\n locked = false;\n currentDepthMask = null;\n currentDepthFunc = null;\n currentDepthClear = null;\n } };\n\n }\n function StencilBuffer() {\n var locked = false;\n var currentStencilMask = null;\n var currentStencilFunc = null;\n var currentStencilRef = null;\n var currentStencilFuncMask = null;\n var currentStencilFail = null;\n var currentStencilZFail = null;\n var currentStencilZPass = null;\n var currentStencilClear = null;\n return {\n setTest: function setTest(stencilTest) {\n if (!locked) {\n if (stencilTest) {\n enable(gl.STENCIL_TEST);\n } else {\n disable(gl.STENCIL_TEST);\n }\n }\n },\n setMask: function setMask(stencilMask) {\n if (currentStencilMask !== stencilMask && !locked) {\n gl.stencilMask(stencilMask);\n currentStencilMask = stencilMask;\n }\n },\n setFunc: function setFunc(stencilFunc, stencilRef, stencilMask) {\n if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) {\n gl.stencilFunc(stencilFunc, stencilRef, stencilMask);\n currentStencilFunc = stencilFunc;\n currentStencilRef = stencilRef;\n currentStencilFuncMask = stencilMask;\n }\n },\n setOp: function setOp(stencilFail, stencilZFail, stencilZPass) {\n if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) {\n gl.stencilOp(stencilFail, stencilZFail, stencilZPass);\n currentStencilFail = stencilFail;\n currentStencilZFail = stencilZFail;\n currentStencilZPass = stencilZPass;\n }\n },\n setLocked: function setLocked(lock) {\n locked = lock;\n },\n setClear: function setClear(stencil) {\n if (currentStencilClear !== stencil) {\n gl.clearStencil(stencil);\n currentStencilClear = stencil;\n }\n },\n reset: function reset() {\n locked = false;\n currentStencilMask = null;\n currentStencilFunc = null;\n currentStencilRef = null;\n currentStencilFuncMask = null;\n currentStencilFail = null;\n currentStencilZFail = null;\n currentStencilZPass = null;\n currentStencilClear = null;\n } };\n\n }\n var colorBuffer = new ColorBuffer();\n var depthBuffer = new DepthBuffer();\n var stencilBuffer = new StencilBuffer();\n var uboBindings = new WeakMap();\n var uboProgamMap = new WeakMap();\n var enabledCapabilities = {};\n var currentBoundFramebuffers = {};\n var currentDrawbuffers = new WeakMap();\n var defaultDrawbuffers = [];\n var currentProgram = null;\n var currentBlendingEnabled = false;\n var currentBlending = null;\n var currentBlendEquation = null;\n var currentBlendSrc = null;\n var currentBlendDst = null;\n var currentBlendEquationAlpha = null;\n var currentBlendSrcAlpha = null;\n var currentBlendDstAlpha = null;\n var currentPremultipledAlpha = false;\n var currentFlipSided = null;\n var currentCullFace = null;\n var currentLineWidth = null;\n var currentPolygonOffsetFactor = null;\n var currentPolygonOffsetUnits = null;\n var maxTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n var lineWidthAvailable = false;\n var version = 0;\n var glVersion = gl.getParameter(gl.VERSION);\n if (glVersion.indexOf('WebGL') !== -1) {\n version = parseFloat(/^WebGL (\\d)/.exec(glVersion)[1]);\n lineWidthAvailable = version >= 1.0;\n } else if (glVersion.indexOf('OpenGL ES') !== -1) {\n version = parseFloat(/^OpenGL ES (\\d)/.exec(glVersion)[1]);\n lineWidthAvailable = version >= 2.0;\n }\n var currentTextureSlot = null;\n var currentBoundTextures = {};\n var scissorParam = gl.getParameter(gl.SCISSOR_BOX);\n var viewportParam = gl.getParameter(gl.VIEWPORT);\n var currentScissor = new _Vector.Vector4().fromArray(scissorParam);\n var currentViewport = new _Vector.Vector4().fromArray(viewportParam);\n function createTexture(type, target, count) {\n var data = new Uint8Array(4);\n var texture = gl.createTexture();\n gl.bindTexture(type, texture);\n gl.texParameteri(type, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(type, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n for (var i = 0; i < count; i++) {\n gl.texImage2D(target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\n }\n return texture;\n }\n var emptyTextures = {};\n emptyTextures[gl.TEXTURE_2D] = createTexture(gl.TEXTURE_2D, gl.TEXTURE_2D, 1);\n emptyTextures[gl.TEXTURE_CUBE_MAP] = createTexture(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6);\n colorBuffer.setClear(0, 0, 0, 1);\n depthBuffer.setClear(1);\n stencilBuffer.setClear(0);\n enable(gl.DEPTH_TEST);\n depthBuffer.setFunc(_constants.LessEqualDepth);\n setFlipSided(false);\n setCullFace(_constants.CullFaceBack);\n enable(gl.CULL_FACE);\n setBlending(_constants.NoBlending);\n function enable(id) {\n if (enabledCapabilities[id] !== true) {\n gl.enable(id);\n enabledCapabilities[id] = true;\n }\n }\n function disable(id) {\n if (enabledCapabilities[id] !== false) {\n gl.disable(id);\n enabledCapabilities[id] = false;\n }\n }\n function bindFramebuffer(target, framebuffer) {\n if (currentBoundFramebuffers[target] !== framebuffer) {\n gl.bindFramebuffer(target, framebuffer);\n currentBoundFramebuffers[target] = framebuffer;\n if (isWebGL2) {\n if (target === gl.DRAW_FRAMEBUFFER) {\n currentBoundFramebuffers[gl.FRAMEBUFFER] = framebuffer;\n }\n if (target === gl.FRAMEBUFFER) {\n currentBoundFramebuffers[gl.DRAW_FRAMEBUFFER] = framebuffer;\n }\n }\n return true;\n }\n return false;\n }\n function drawBuffers(renderTarget, framebuffer) {\n var drawBuffers = defaultDrawbuffers;\n var needsUpdate = false;\n if (renderTarget) {\n drawBuffers = currentDrawbuffers.get(framebuffer);\n if (drawBuffers === undefined) {\n drawBuffers = [];\n currentDrawbuffers.set(framebuffer, drawBuffers);\n }\n if (renderTarget.isWebGLMultipleRenderTargets) {\n var textures = renderTarget.texture;\n if (drawBuffers.length !== textures.length || drawBuffers[0] !== gl.COLOR_ATTACHMENT0) {\n for (var i = 0, il = textures.length; i < il; i++) {\n drawBuffers[i] = gl.COLOR_ATTACHMENT0 + i;\n }\n drawBuffers.length = textures.length;\n needsUpdate = true;\n }\n } else {\n if (drawBuffers[0] !== gl.COLOR_ATTACHMENT0) {\n drawBuffers[0] = gl.COLOR_ATTACHMENT0;\n needsUpdate = true;\n }\n }\n } else {\n if (drawBuffers[0] !== gl.BACK) {\n drawBuffers[0] = gl.BACK;\n needsUpdate = true;\n }\n }\n if (needsUpdate) {\n if (capabilities.isWebGL2) {\n gl.drawBuffers(drawBuffers);\n } else {\n extensions.get('WEBGL_draw_buffers').drawBuffersWEBGL(drawBuffers);\n }\n }\n }\n function useProgram(program) {\n if (currentProgram !== program) {\n gl.useProgram(program);\n currentProgram = program;\n return true;\n }\n return false;\n }\n var equationToGL = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.AddEquation, gl.FUNC_ADD), _constants.SubtractEquation, gl.FUNC_SUBTRACT), _constants.ReverseSubtractEquation, gl.FUNC_REVERSE_SUBTRACT);\n if (isWebGL2) {\n equationToGL[_constants.MinEquation] = gl.MIN;\n equationToGL[_constants.MaxEquation] = gl.MAX;\n } else {\n var extension = extensions.get('EXT_blend_minmax');\n if (extension !== null) {\n equationToGL[_constants.MinEquation] = extension.MIN_EXT;\n equationToGL[_constants.MaxEquation] = extension.MAX_EXT;\n }\n }\n var factorToGL = (_factorToGL2 = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_factorToGL2, _constants.ZeroFactor, gl.ZERO), _constants.OneFactor, gl.ONE), _constants.SrcColorFactor, gl.SRC_COLOR), _constants.SrcAlphaFactor, gl.SRC_ALPHA), _constants.SrcAlphaSaturateFactor, gl.SRC_ALPHA_SATURATE), _constants.DstColorFactor, gl.DST_COLOR), _constants.DstAlphaFactor, gl.DST_ALPHA), _constants.OneMinusSrcColorFactor, gl.ONE_MINUS_SRC_COLOR), _constants.OneMinusSrcAlphaFactor, gl.ONE_MINUS_SRC_ALPHA), _constants.OneMinusDstColorFactor, gl.ONE_MINUS_DST_COLOR), (0, _defineProperty2.default)(_factorToGL2, _constants.OneMinusDstAlphaFactor, gl.ONE_MINUS_DST_ALPHA));\n function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha) {\n if (blending === _constants.NoBlending) {\n if (currentBlendingEnabled === true) {\n disable(gl.BLEND);\n currentBlendingEnabled = false;\n }\n return;\n }\n if (currentBlendingEnabled === false) {\n enable(gl.BLEND);\n currentBlendingEnabled = true;\n }\n if (blending !== _constants.CustomBlending) {\n if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) {\n if (currentBlendEquation !== _constants.AddEquation || currentBlendEquationAlpha !== _constants.AddEquation) {\n gl.blendEquation(gl.FUNC_ADD);\n currentBlendEquation = _constants.AddEquation;\n currentBlendEquationAlpha = _constants.AddEquation;\n }\n if (premultipliedAlpha) {\n switch (blending) {\n case _constants.NormalBlending:\n gl.blendFuncSeparate(gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n break;\n case _constants.AdditiveBlending:\n gl.blendFunc(gl.ONE, gl.ONE);\n break;\n case _constants.SubtractiveBlending:\n gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n break;\n case _constants.MultiplyBlending:\n gl.blendFuncSeparate(gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA);\n break;\n default:\n console.error('THREE.WebGLState: Invalid blending: ', blending);\n break;}\n\n } else {\n switch (blending) {\n case _constants.NormalBlending:\n gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n break;\n case _constants.AdditiveBlending:\n gl.blendFunc(gl.SRC_ALPHA, gl.ONE);\n break;\n case _constants.SubtractiveBlending:\n gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n break;\n case _constants.MultiplyBlending:\n gl.blendFunc(gl.ZERO, gl.SRC_COLOR);\n break;\n default:\n console.error('THREE.WebGLState: Invalid blending: ', blending);\n break;}\n\n }\n currentBlendSrc = null;\n currentBlendDst = null;\n currentBlendSrcAlpha = null;\n currentBlendDstAlpha = null;\n currentBlending = blending;\n currentPremultipledAlpha = premultipliedAlpha;\n }\n return;\n }\n blendEquationAlpha = blendEquationAlpha || blendEquation;\n blendSrcAlpha = blendSrcAlpha || blendSrc;\n blendDstAlpha = blendDstAlpha || blendDst;\n if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) {\n gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]);\n currentBlendEquation = blendEquation;\n currentBlendEquationAlpha = blendEquationAlpha;\n }\n if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) {\n gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]);\n currentBlendSrc = blendSrc;\n currentBlendDst = blendDst;\n currentBlendSrcAlpha = blendSrcAlpha;\n currentBlendDstAlpha = blendDstAlpha;\n }\n currentBlending = blending;\n currentPremultipledAlpha = null;\n }\n function setMaterial(material, frontFaceCW) {\n material.side === _constants.DoubleSide ? disable(gl.CULL_FACE) : enable(gl.CULL_FACE);\n var flipSided = material.side === _constants.BackSide;\n if (frontFaceCW) flipSided = !flipSided;\n setFlipSided(flipSided);\n material.blending === _constants.NormalBlending && material.transparent === false ? setBlending(_constants.NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha);\n depthBuffer.setFunc(material.depthFunc);\n depthBuffer.setTest(material.depthTest);\n depthBuffer.setMask(material.depthWrite);\n colorBuffer.setMask(material.colorWrite);\n var stencilWrite = material.stencilWrite;\n stencilBuffer.setTest(stencilWrite);\n if (stencilWrite) {\n stencilBuffer.setMask(material.stencilWriteMask);\n stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask);\n stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass);\n }\n setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits);\n material.alphaToCoverage === true ? enable(gl.SAMPLE_ALPHA_TO_COVERAGE) : disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n }\n function setFlipSided(flipSided) {\n if (currentFlipSided !== flipSided) {\n if (flipSided) {\n gl.frontFace(gl.CW);\n } else {\n gl.frontFace(gl.CCW);\n }\n currentFlipSided = flipSided;\n }\n }\n function setCullFace(cullFace) {\n if (cullFace !== _constants.CullFaceNone) {\n enable(gl.CULL_FACE);\n if (cullFace !== currentCullFace) {\n if (cullFace === _constants.CullFaceBack) {\n gl.cullFace(gl.BACK);\n } else if (cullFace === _constants.CullFaceFront) {\n gl.cullFace(gl.FRONT);\n } else {\n gl.cullFace(gl.FRONT_AND_BACK);\n }\n }\n } else {\n disable(gl.CULL_FACE);\n }\n currentCullFace = cullFace;\n }\n function setLineWidth(width) {\n if (width !== currentLineWidth) {\n if (lineWidthAvailable) gl.lineWidth(width);\n currentLineWidth = width;\n }\n }\n function setPolygonOffset(polygonOffset, factor, units) {\n if (polygonOffset) {\n enable(gl.POLYGON_OFFSET_FILL);\n if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) {\n gl.polygonOffset(factor, units);\n currentPolygonOffsetFactor = factor;\n currentPolygonOffsetUnits = units;\n }\n } else {\n disable(gl.POLYGON_OFFSET_FILL);\n }\n }\n function setScissorTest(scissorTest) {\n if (scissorTest) {\n enable(gl.SCISSOR_TEST);\n } else {\n disable(gl.SCISSOR_TEST);\n }\n }\n function activeTexture(webglSlot) {\n if (webglSlot === undefined) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n if (currentTextureSlot !== webglSlot) {\n gl.activeTexture(webglSlot);\n currentTextureSlot = webglSlot;\n }\n }\n function bindTexture(webglType, webglTexture) {\n if (currentTextureSlot === null) {\n activeTexture();\n }\n var boundTexture = currentBoundTextures[currentTextureSlot];\n if (boundTexture === undefined) {\n boundTexture = {\n type: undefined,\n texture: undefined };\n\n currentBoundTextures[currentTextureSlot] = boundTexture;\n }\n if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) {\n gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]);\n boundTexture.type = webglType;\n boundTexture.texture = webglTexture;\n }\n }\n function unbindTexture() {\n var boundTexture = currentBoundTextures[currentTextureSlot];\n if (boundTexture !== undefined && boundTexture.type !== undefined) {\n gl.bindTexture(boundTexture.type, null);\n boundTexture.type = undefined;\n boundTexture.texture = undefined;\n }\n }\n function compressedTexImage2D() {\n try {\n gl.compressedTexImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function texSubImage2D() {\n try {\n gl.texSubImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function texSubImage3D() {\n try {\n gl.texSubImage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function compressedTexSubImage2D() {\n try {\n gl.compressedTexSubImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function texStorage2D() {\n try {\n gl.texStorage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function texStorage3D() {\n try {\n gl.texStorage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function texImage2D() {\n try {\n gl.texImage2D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function texImage3D() {\n try {\n gl.texImage3D.apply(gl, arguments);\n } catch (error) {\n console.error('THREE.WebGLState:', error);\n }\n }\n function scissor(scissor) {\n if (currentScissor.equals(scissor) === false) {\n gl.scissor(scissor.x, scissor.y, scissor.z, scissor.w);\n currentScissor.copy(scissor);\n }\n }\n function viewport(viewport) {\n if (currentViewport.equals(viewport) === false) {\n gl.viewport(viewport.x, viewport.y, viewport.z, viewport.w);\n currentViewport.copy(viewport);\n }\n }\n function updateUBOMapping(uniformsGroup, program) {\n var mapping = uboProgamMap.get(program);\n if (mapping === undefined) {\n mapping = new WeakMap();\n uboProgamMap.set(program, mapping);\n }\n var blockIndex = mapping.get(uniformsGroup);\n if (blockIndex === undefined) {\n blockIndex = gl.getUniformBlockIndex(program, uniformsGroup.name);\n mapping.set(uniformsGroup, blockIndex);\n }\n }\n function uniformBlockBinding(uniformsGroup, program) {\n var mapping = uboProgamMap.get(program);\n var blockIndex = mapping.get(uniformsGroup);\n if (uboBindings.get(uniformsGroup) !== blockIndex) {\n gl.uniformBlockBinding(program, blockIndex, uniformsGroup.__bindingPointIndex);\n uboBindings.set(uniformsGroup, blockIndex);\n }\n }\n function reset() {\n gl.disable(gl.BLEND);\n gl.disable(gl.CULL_FACE);\n gl.disable(gl.DEPTH_TEST);\n gl.disable(gl.POLYGON_OFFSET_FILL);\n gl.disable(gl.SCISSOR_TEST);\n gl.disable(gl.STENCIL_TEST);\n gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n gl.blendEquation(gl.FUNC_ADD);\n gl.blendFunc(gl.ONE, gl.ZERO);\n gl.blendFuncSeparate(gl.ONE, gl.ZERO, gl.ONE, gl.ZERO);\n gl.colorMask(true, true, true, true);\n gl.clearColor(0, 0, 0, 0);\n gl.depthMask(true);\n gl.depthFunc(gl.LESS);\n gl.clearDepth(1);\n gl.stencilMask(0xffffffff);\n gl.stencilFunc(gl.ALWAYS, 0, 0xffffffff);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n gl.clearStencil(0);\n gl.cullFace(gl.BACK);\n gl.frontFace(gl.CCW);\n gl.polygonOffset(0, 0);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n if (isWebGL2 === true) {\n gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\n }\n gl.useProgram(null);\n gl.lineWidth(1);\n gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);\n gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);\n enabledCapabilities = {};\n currentTextureSlot = null;\n currentBoundTextures = {};\n currentBoundFramebuffers = {};\n currentDrawbuffers = new WeakMap();\n defaultDrawbuffers = [];\n currentProgram = null;\n currentBlendingEnabled = false;\n currentBlending = null;\n currentBlendEquation = null;\n currentBlendSrc = null;\n currentBlendDst = null;\n currentBlendEquationAlpha = null;\n currentBlendSrcAlpha = null;\n currentBlendDstAlpha = null;\n currentPremultipledAlpha = false;\n currentFlipSided = null;\n currentCullFace = null;\n currentLineWidth = null;\n currentPolygonOffsetFactor = null;\n currentPolygonOffsetUnits = null;\n currentScissor.set(0, 0, gl.canvas.width, gl.canvas.height);\n currentViewport.set(0, 0, gl.canvas.width, gl.canvas.height);\n colorBuffer.reset();\n depthBuffer.reset();\n stencilBuffer.reset();\n }\n return {\n buffers: {\n color: colorBuffer,\n depth: depthBuffer,\n stencil: stencilBuffer },\n\n enable: enable,\n disable: disable,\n bindFramebuffer: bindFramebuffer,\n drawBuffers: drawBuffers,\n useProgram: useProgram,\n setBlending: setBlending,\n setMaterial: setMaterial,\n setFlipSided: setFlipSided,\n setCullFace: setCullFace,\n setLineWidth: setLineWidth,\n setPolygonOffset: setPolygonOffset,\n setScissorTest: setScissorTest,\n activeTexture: activeTexture,\n bindTexture: bindTexture,\n unbindTexture: unbindTexture,\n compressedTexImage2D: compressedTexImage2D,\n texImage2D: texImage2D,\n texImage3D: texImage3D,\n updateUBOMapping: updateUBOMapping,\n uniformBlockBinding: uniformBlockBinding,\n texStorage2D: texStorage2D,\n texStorage3D: texStorage3D,\n texSubImage2D: texSubImage2D,\n texSubImage3D: texSubImage3D,\n compressedTexSubImage2D: compressedTexSubImage2D,\n scissor: scissor,\n viewport: viewport,\n reset: reset };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/math/Vector4.js" ], "buildLevel": 30, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLState.js", "fileName": "/src/renderers/webgl/WebGLState.js" }, "pandav:/src/renderers/WebGL1Renderer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGL1Renderer\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderer\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGL1Renderer = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _WebGLRenderer2 = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderer');\n var WebGL1Renderer = exports.WebGL1Renderer = function (_WebGLRenderer) {\n (0, _inherits2.default)(WebGL1Renderer, _WebGLRenderer);\n var _super = (0, _createSuper2.default)(WebGL1Renderer);\n function WebGL1Renderer() {\n (0, _classCallCheck2.default)(this, WebGL1Renderer);\n return _super.apply(this, arguments);\n }\n return (0, _createClass2.default)(WebGL1Renderer);\n }(_WebGLRenderer2.WebGLRenderer);\n WebGL1Renderer.prototype.isWebGL1Renderer = true;return module.exports;});", "requires": [ "pandav:/src/renderers/WebGLRenderer.js" ], "buildLevel": 9, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGL1Renderer.js", "fileName": "/src/renderers/WebGL1Renderer.js" }, "pandav:/src/renderers/WebGL3DRenderTarget.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGL3DRenderTarget\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/textures/Data3DTexture\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGL3DRenderTarget = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _WebGLRenderTarget2 = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _Data3DTexture = require('pandav:/com/three/0.145.0/src/textures/Data3DTexture');\n var WebGL3DRenderTarget = exports.WebGL3DRenderTarget = function (_WebGLRenderTarget) {\n (0, _inherits2.default)(WebGL3DRenderTarget, _WebGLRenderTarget);\n var _super = (0, _createSuper2.default)(WebGL3DRenderTarget);\n function WebGL3DRenderTarget(width, height, depth) {\n var _this;\n (0, _classCallCheck2.default)(this, WebGL3DRenderTarget);\n _this = _super.call(this, width, height);\n _this.isWebGL3DRenderTarget = true;\n _this.depth = depth;\n _this.texture = new _Data3DTexture.Data3DTexture(null, width, height, depth);\n _this.texture.isRenderTargetTexture = true;\n return _this;\n }\n return (0, _createClass2.default)(WebGL3DRenderTarget);\n }(_WebGLRenderTarget2.WebGLRenderTarget);return module.exports;});", "requires": [ "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/textures/Data3DTexture.js" ], "buildLevel": 5, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGL3DRenderTarget.js", "fileName": "/src/renderers/WebGL3DRenderTarget.js" }, "pandav:/src/renderers/webgl/WebGLUtils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUtils\", [\"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLUtils = WebGLUtils;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n function WebGLUtils(gl, extensions, capabilities) {\n var isWebGL2 = capabilities.isWebGL2;\n function convert(p) {\n var encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var extension;\n if (p === _constants.UnsignedByteType) return gl.UNSIGNED_BYTE;\n if (p === _constants.UnsignedShort4444Type) return gl.UNSIGNED_SHORT_4_4_4_4;\n if (p === _constants.UnsignedShort5551Type) return gl.UNSIGNED_SHORT_5_5_5_1;\n if (p === _constants.ByteType) return gl.BYTE;\n if (p === _constants.ShortType) return gl.SHORT;\n if (p === _constants.UnsignedShortType) return gl.UNSIGNED_SHORT;\n if (p === _constants.IntType) return gl.INT;\n if (p === _constants.UnsignedIntType) return gl.UNSIGNED_INT;\n if (p === _constants.FloatType) return gl.FLOAT;\n if (p === _constants.HalfFloatType) {\n if (isWebGL2) return gl.HALF_FLOAT;\n extension = extensions.get('OES_texture_half_float');\n if (extension !== null) {\n return extension.HALF_FLOAT_OES;\n } else {\n return null;\n }\n }\n if (p === _constants.AlphaFormat) return gl.ALPHA;\n if (p === _constants.RGBAFormat) return gl.RGBA;\n if (p === _constants.LuminanceFormat) return gl.LUMINANCE;\n if (p === _constants.LuminanceAlphaFormat) return gl.LUMINANCE_ALPHA;\n if (p === _constants.DepthFormat) return gl.DEPTH_COMPONENT;\n if (p === _constants.DepthStencilFormat) return gl.DEPTH_STENCIL;\n if (p === _constants.RedFormat) return gl.RED;\n if (p === _constants.RGBFormat) {\n console.warn('THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228');\n return gl.RGBA;\n }\n if (p === _constants._SRGBAFormat) {\n extension = extensions.get('EXT_sRGB');\n if (extension !== null) {\n return extension.SRGB_ALPHA_EXT;\n } else {\n return null;\n }\n }\n if (p === _constants.RedIntegerFormat) return gl.RED_INTEGER;\n if (p === _constants.RGFormat) return gl.RG;\n if (p === _constants.RGIntegerFormat) return gl.RG_INTEGER;\n if (p === _constants.RGBAIntegerFormat) return gl.RGBA_INTEGER;\n if (p === _constants.RGB_S3TC_DXT1_Format || p === _constants.RGBA_S3TC_DXT1_Format || p === _constants.RGBA_S3TC_DXT3_Format || p === _constants.RGBA_S3TC_DXT5_Format) {\n if (encoding === _constants.sRGBEncoding) {\n extension = extensions.get('WEBGL_compressed_texture_s3tc_srgb');\n if (extension !== null) {\n if (p === _constants.RGB_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n if (p === _constants.RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n if (p === _constants.RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n if (p === _constants.RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n } else {\n return null;\n }\n } else {\n extension = extensions.get('WEBGL_compressed_texture_s3tc');\n if (extension !== null) {\n if (p === _constants.RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n if (p === _constants.RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n if (p === _constants.RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n if (p === _constants.RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n } else {\n return null;\n }\n }\n }\n if (p === _constants.RGB_PVRTC_4BPPV1_Format || p === _constants.RGB_PVRTC_2BPPV1_Format || p === _constants.RGBA_PVRTC_4BPPV1_Format || p === _constants.RGBA_PVRTC_2BPPV1_Format) {\n extension = extensions.get('WEBGL_compressed_texture_pvrtc');\n if (extension !== null) {\n if (p === _constants.RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n if (p === _constants.RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n if (p === _constants.RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n if (p === _constants.RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n } else {\n return null;\n }\n }\n if (p === _constants.RGB_ETC1_Format) {\n extension = extensions.get('WEBGL_compressed_texture_etc1');\n if (extension !== null) {\n return extension.COMPRESSED_RGB_ETC1_WEBGL;\n } else {\n return null;\n }\n }\n if (p === _constants.RGB_ETC2_Format || p === _constants.RGBA_ETC2_EAC_Format) {\n extension = extensions.get('WEBGL_compressed_texture_etc');\n if (extension !== null) {\n if (p === _constants.RGB_ETC2_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n if (p === _constants.RGBA_ETC2_EAC_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n } else {\n return null;\n }\n }\n if (p === _constants.RGBA_ASTC_4x4_Format || p === _constants.RGBA_ASTC_5x4_Format || p === _constants.RGBA_ASTC_5x5_Format || p === _constants.RGBA_ASTC_6x5_Format || p === _constants.RGBA_ASTC_6x6_Format || p === _constants.RGBA_ASTC_8x5_Format || p === _constants.RGBA_ASTC_8x6_Format || p === _constants.RGBA_ASTC_8x8_Format || p === _constants.RGBA_ASTC_10x5_Format || p === _constants.RGBA_ASTC_10x6_Format || p === _constants.RGBA_ASTC_10x8_Format || p === _constants.RGBA_ASTC_10x10_Format || p === _constants.RGBA_ASTC_12x10_Format || p === _constants.RGBA_ASTC_12x12_Format) {\n extension = extensions.get('WEBGL_compressed_texture_astc');\n if (extension !== null) {\n if (p === _constants.RGBA_ASTC_4x4_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n if (p === _constants.RGBA_ASTC_5x4_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n if (p === _constants.RGBA_ASTC_5x5_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n if (p === _constants.RGBA_ASTC_6x5_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n if (p === _constants.RGBA_ASTC_6x6_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n if (p === _constants.RGBA_ASTC_8x5_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n if (p === _constants.RGBA_ASTC_8x6_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n if (p === _constants.RGBA_ASTC_8x8_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n if (p === _constants.RGBA_ASTC_10x5_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n if (p === _constants.RGBA_ASTC_10x6_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n if (p === _constants.RGBA_ASTC_10x8_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n if (p === _constants.RGBA_ASTC_10x10_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n if (p === _constants.RGBA_ASTC_12x10_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n if (p === _constants.RGBA_ASTC_12x12_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n } else {\n return null;\n }\n }\n if (p === _constants.RGBA_BPTC_Format) {\n extension = extensions.get('EXT_texture_compression_bptc');\n if (extension !== null) {\n if (p === _constants.RGBA_BPTC_Format) return encoding === _constants.sRGBEncoding ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n } else {\n return null;\n }\n }\n if (p === _constants.UnsignedInt248Type) {\n if (isWebGL2) return gl.UNSIGNED_INT_24_8;\n extension = extensions.get('WEBGL_depth_texture');\n if (extension !== null) {\n return extension.UNSIGNED_INT_24_8_WEBGL;\n } else {\n return null;\n }\n }\n return gl[p] !== undefined ? gl[p] : null;\n }\n return {\n convert: convert };\n\n }return module.exports;});", "requires": [ "pandav:/src/constants.js" ], "buildLevel": 32, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLUtils.js", "fileName": "/src/renderers/webgl/WebGLUtils.js" }, "pandav:/src/renderers/WebGLArrayRenderTarget.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGLArrayRenderTarget\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/textures/DataArrayTexture\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLArrayRenderTarget = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _WebGLRenderTarget2 = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _DataArrayTexture = require('pandav:/com/three/0.145.0/src/textures/DataArrayTexture');\n var WebGLArrayRenderTarget = exports.WebGLArrayRenderTarget = function (_WebGLRenderTarget) {\n (0, _inherits2.default)(WebGLArrayRenderTarget, _WebGLRenderTarget);\n var _super = (0, _createSuper2.default)(WebGLArrayRenderTarget);\n function WebGLArrayRenderTarget(width, height, depth) {\n var _this;\n (0, _classCallCheck2.default)(this, WebGLArrayRenderTarget);\n _this = _super.call(this, width, height);\n _this.isWebGLArrayRenderTarget = true;\n _this.depth = depth;\n _this.texture = new _DataArrayTexture.DataArrayTexture(null, width, height, depth);\n _this.texture.isRenderTargetTexture = true;\n return _this;\n }\n return (0, _createClass2.default)(WebGLArrayRenderTarget);\n }(_WebGLRenderTarget2.WebGLRenderTarget);return module.exports;});", "requires": [ "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/textures/DataArrayTexture.js" ], "buildLevel": 4, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGLArrayRenderTarget.js", "fileName": "/src/renderers/WebGLArrayRenderTarget.js" }, "pandav:/src/renderers/WebGLMultipleRenderTargets.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGLMultipleRenderTargets\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLMultipleRenderTargets = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _WebGLRenderTarget2 = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var WebGLMultipleRenderTargets = exports.WebGLMultipleRenderTargets = function (_WebGLRenderTarget) {\n (0, _inherits2.default)(WebGLMultipleRenderTargets, _WebGLRenderTarget);\n var _super = (0, _createSuper2.default)(WebGLMultipleRenderTargets);\n function WebGLMultipleRenderTargets(width, height, count) {\n var _this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n (0, _classCallCheck2.default)(this, WebGLMultipleRenderTargets);\n _this = _super.call(this, width, height, options);\n _this.isWebGLMultipleRenderTargets = true;\n var texture = _this.texture;\n _this.texture = [];\n for (var i = 0; i < count; i++) {\n _this.texture[i] = texture.clone();\n _this.texture[i].isRenderTargetTexture = true;\n }\n return _this;\n }\n (0, _createClass2.default)(WebGLMultipleRenderTargets, [{\n key: \"setSize\",\n value: function setSize(width, height) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (this.width !== width || this.height !== height || this.depth !== depth) {\n this.width = width;\n this.height = height;\n this.depth = depth;\n for (var i = 0, il = this.texture.length; i < il; i++) {\n this.texture[i].image.width = width;\n this.texture[i].image.height = height;\n this.texture[i].image.depth = depth;\n }\n this.dispose();\n }\n this.viewport.set(0, 0, width, height);\n this.scissor.set(0, 0, width, height);\n return this;\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.dispose();\n this.width = source.width;\n this.height = source.height;\n this.depth = source.depth;\n this.viewport.set(0, 0, this.width, this.height);\n this.scissor.set(0, 0, this.width, this.height);\n this.depthBuffer = source.depthBuffer;\n this.stencilBuffer = source.stencilBuffer;\n if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone();\n this.texture.length = 0;\n for (var i = 0, il = source.texture.length; i < il; i++) {\n this.texture[i] = source.texture[i].clone();\n this.texture[i].isRenderTargetTexture = true;\n }\n return this;\n } }]);\n\n return WebGLMultipleRenderTargets;\n }(_WebGLRenderTarget2.WebGLRenderTarget);return module.exports;});", "requires": [ "pandav:/src/renderers/WebGLRenderTarget.js" ], "buildLevel": 6, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGLMultipleRenderTargets.js", "fileName": "/src/renderers/WebGLMultipleRenderTargets.js" }, "pandav:/src/renderers/WebGLCubeRenderTarget.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGLCubeRenderTarget\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/geometries/BoxGeometry\", \"pandav:/com/three/0.145.0/src/materials/ShaderMaterial\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/cameras/CubeCamera\", \"pandav:/com/three/0.145.0/src/textures/CubeTexture\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLCubeRenderTarget = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _BoxGeometry = require('pandav:/com/three/0.145.0/src/geometries/BoxGeometry');\n var _ShaderMaterial = require('pandav:/com/three/0.145.0/src/materials/ShaderMaterial');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n var _WebGLRenderTarget2 = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _CubeCamera = require('pandav:/com/three/0.145.0/src/cameras/CubeCamera');\n var _CubeTexture = require('pandav:/com/three/0.145.0/src/textures/CubeTexture');\n var WebGLCubeRenderTarget = exports.WebGLCubeRenderTarget = function (_WebGLRenderTarget) {\n (0, _inherits2.default)(WebGLCubeRenderTarget, _WebGLRenderTarget);\n var _super = (0, _createSuper2.default)(WebGLCubeRenderTarget);\n function WebGLCubeRenderTarget(size) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _classCallCheck2.default)(this, WebGLCubeRenderTarget);\n _this = _super.call(this, size, size, options);\n _this.isWebGLCubeRenderTarget = true;\n var image = {\n width: size,\n height: size,\n depth: 1 };\n\n var images = [image, image, image, image, image, image];\n _this.texture = new _CubeTexture.CubeTexture(images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding);\n _this.texture.isRenderTargetTexture = true;\n _this.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n _this.texture.minFilter = options.minFilter !== undefined ? options.minFilter : _constants.LinearFilter;\n return _this;\n }\n (0, _createClass2.default)(WebGLCubeRenderTarget, [{\n key: \"fromEquirectangularTexture\",\n value: function fromEquirectangularTexture(renderer, texture) {\n this.texture.type = texture.type;\n this.texture.encoding = texture.encoding;\n this.texture.generateMipmaps = texture.generateMipmaps;\n this.texture.minFilter = texture.minFilter;\n this.texture.magFilter = texture.magFilter;\n var shader = {\n uniforms: {\n tEquirect: {\n value: null } },\n\n\n vertexShader: \"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include \\n\\t\\t\\t\\t\\t#include \\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",\n fragmentShader: \"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include \\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\" };\n\n var geometry = new _BoxGeometry.BoxGeometry(5, 5, 5);\n var material = new _ShaderMaterial.ShaderMaterial({\n name: 'CubemapFromEquirect',\n uniforms: (0, _UniformsUtils.cloneUniforms)(shader.uniforms),\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n side: _constants.BackSide,\n blending: _constants.NoBlending });\n\n material.uniforms.tEquirect.value = texture;\n var mesh = new _Mesh.Mesh(geometry, material);\n var currentMinFilter = texture.minFilter;\n if (texture.minFilter === _constants.LinearMipmapLinearFilter) texture.minFilter = _constants.LinearFilter;\n var camera = new _CubeCamera.CubeCamera(1, 10, this);\n camera.update(renderer, mesh);\n texture.minFilter = currentMinFilter;\n mesh.geometry.dispose();\n mesh.material.dispose();\n return this;\n } },\n {\n key: \"clear\",\n value: function clear(renderer, color, depth, stencil) {\n var currentRenderTarget = renderer.getRenderTarget();\n for (var i = 0; i < 6; i++) {\n renderer.setRenderTarget(this, i);\n renderer.clear(color, depth, stencil);\n }\n renderer.setRenderTarget(currentRenderTarget);\n } }]);\n\n return WebGLCubeRenderTarget;\n }(_WebGLRenderTarget2.WebGLRenderTarget);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/objects/Mesh.js", "pandav:/src/geometries/BoxGeometry.js", "pandav:/src/materials/ShaderMaterial.js", "pandav:/src/renderers/shaders/UniformsUtils.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/cameras/CubeCamera.js", "pandav:/src/textures/CubeTexture.js" ], "buildLevel": 7, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGLCubeRenderTarget.js", "fileName": "/src/renderers/WebGLCubeRenderTarget.js" }, "pandav:/src/renderers/webgl/WebGLTextures.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLTextures\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/extras/ImageUtils\", \"pandav:/com/three/0.145.0/src/utils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLTextures = WebGLTextures;\n var _defineProperty2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/defineProperty'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _ImageUtils = require('pandav:/com/three/0.145.0/src/extras/ImageUtils');\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n function WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) {\n var isWebGL2 = capabilities.isWebGL2;\n var maxTextures = capabilities.maxTextures;\n var maxCubemapSize = capabilities.maxCubemapSize;\n var maxTextureSize = capabilities.maxTextureSize;\n var maxSamples = capabilities.maxSamples;\n var multisampledRTTExt = extensions.has('WEBGL_multisampled_render_to_texture') ? extensions.get('WEBGL_multisampled_render_to_texture') : null;\n var supportsInvalidateFramebuffer = /OculusBrowser/g.test(navigator.userAgent);\n var _videoTextures = new WeakMap();\n var _canvas;\n var _sources = new WeakMap();\n var useOffscreenCanvas = false;\n try {\n useOffscreenCanvas = typeof OffscreenCanvas !== 'undefined' && new OffscreenCanvas(1, 1).getContext('2d') !== null;\n } catch (err) {}\n function createCanvas(width, height) {\n return useOffscreenCanvas ? new OffscreenCanvas(width, height) : (0, _utils.createElementNS)('canvas');\n }\n function resizeImage(image, needsPowerOfTwo, needsNewCanvas, maxSize) {\n var scale = 1;\n if (image.width > maxSize || image.height > maxSize) {\n scale = maxSize / Math.max(image.width, image.height);\n }\n if (scale < 1 || needsPowerOfTwo === true) {\n if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n var floor = needsPowerOfTwo ? MathUtils.floorPowerOfTwo : Math.floor;\n var width = floor(scale * image.width);\n var height = floor(scale * image.height);\n if (_canvas === undefined) _canvas = createCanvas(width, height);\n var canvas = needsNewCanvas ? createCanvas(width, height) : _canvas;\n canvas.width = width;\n canvas.height = height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, width, height);\n console.warn('THREE.WebGLRenderer: Texture has been resized from (' + image.width + 'x' + image.height + ') to (' + width + 'x' + height + ').');\n return canvas;\n } else {\n if ('data' in image) {\n console.warn('THREE.WebGLRenderer: Image in DataTexture is too big (' + image.width + 'x' + image.height + ').');\n }\n return image;\n }\n }\n return image;\n }\n function isPowerOfTwo(image) {\n return MathUtils.isPowerOfTwo(image.width) && MathUtils.isPowerOfTwo(image.height);\n }\n function textureNeedsPowerOfTwo(texture) {\n if (isWebGL2) return false;\n return texture.wrapS !== _constants.ClampToEdgeWrapping || texture.wrapT !== _constants.ClampToEdgeWrapping || texture.minFilter !== _constants.NearestFilter && texture.minFilter !== _constants.LinearFilter;\n }\n function textureNeedsGenerateMipmaps(texture, supportsMips) {\n return texture.generateMipmaps && supportsMips && texture.minFilter !== _constants.NearestFilter && texture.minFilter !== _constants.LinearFilter;\n }\n function generateMipmap(target) {\n _gl.generateMipmap(target);\n }\n function getInternalFormat(internalFormatName, glFormat, glType, encoding) {\n var isVideoTexture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n if (isWebGL2 === false) return glFormat;\n if (internalFormatName !== null) {\n if (_gl[internalFormatName] !== undefined) return _gl[internalFormatName];\n console.warn('THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'');\n }\n var internalFormat = glFormat;\n if (glFormat === _gl.RED) {\n if (glType === _gl.FLOAT) internalFormat = _gl.R32F;\n if (glType === _gl.HALF_FLOAT) internalFormat = _gl.R16F;\n if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8;\n }\n if (glFormat === _gl.RG) {\n if (glType === _gl.FLOAT) internalFormat = _gl.RG32F;\n if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RG16F;\n if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8;\n }\n if (glFormat === _gl.RGBA) {\n if (glType === _gl.FLOAT) internalFormat = _gl.RGBA32F;\n if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RGBA16F;\n if (glType === _gl.UNSIGNED_BYTE) internalFormat = encoding === _constants.sRGBEncoding && isVideoTexture === false ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n if (glType === _gl.UNSIGNED_SHORT_4_4_4_4) internalFormat = _gl.RGBA4;\n if (glType === _gl.UNSIGNED_SHORT_5_5_5_1) internalFormat = _gl.RGB5_A1;\n }\n if (internalFormat === _gl.R16F || internalFormat === _gl.R32F || internalFormat === _gl.RG16F || internalFormat === _gl.RG32F || internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F) {\n extensions.get('EXT_color_buffer_float');\n }\n return internalFormat;\n }\n function getMipLevels(texture, image, supportsMips) {\n if (textureNeedsGenerateMipmaps(texture, supportsMips) === true || texture.isFramebufferTexture && texture.minFilter !== _constants.NearestFilter && texture.minFilter !== _constants.LinearFilter) {\n return Math.log2(Math.max(image.width, image.height)) + 1;\n } else if (texture.mipmaps !== undefined && texture.mipmaps.length > 0) {\n return texture.mipmaps.length;\n } else if (texture.isCompressedTexture && Array.isArray(texture.image)) {\n return image.mipmaps.length;\n } else {\n return 1;\n }\n }\n function filterFallback(f) {\n if (f === _constants.NearestFilter || f === _constants.NearestMipmapNearestFilter || f === _constants.NearestMipmapLinearFilter) {\n return _gl.NEAREST;\n }\n return _gl.LINEAR;\n }\n function onTextureDispose(event) {\n var texture = event.target;\n texture.removeEventListener('dispose', onTextureDispose);\n deallocateTexture(texture);\n if (texture.isVideoTexture) {\n _videoTextures[\"delete\"](texture);\n }\n }\n function onRenderTargetDispose(event) {\n var renderTarget = event.target;\n renderTarget.removeEventListener('dispose', onRenderTargetDispose);\n deallocateRenderTarget(renderTarget);\n }\n function deallocateTexture(texture) {\n var textureProperties = properties.get(texture);\n if (textureProperties.__webglInit === undefined) return;\n var source = texture.source;\n var webglTextures = _sources.get(source);\n if (webglTextures) {\n var webglTexture = webglTextures[textureProperties.__cacheKey];\n webglTexture.usedTimes--;\n if (webglTexture.usedTimes === 0) {\n deleteTexture(texture);\n }\n if (Object.keys(webglTextures).length === 0) {\n _sources[\"delete\"](source);\n }\n }\n properties.remove(texture);\n }\n function deleteTexture(texture) {\n var textureProperties = properties.get(texture);\n _gl.deleteTexture(textureProperties.__webglTexture);\n var source = texture.source;\n var webglTextures = _sources.get(source);\n delete webglTextures[textureProperties.__cacheKey];\n info.memory.textures--;\n }\n function deallocateRenderTarget(renderTarget) {\n var texture = renderTarget.texture;\n var renderTargetProperties = properties.get(renderTarget);\n var textureProperties = properties.get(texture);\n if (textureProperties.__webglTexture !== undefined) {\n _gl.deleteTexture(textureProperties.__webglTexture);\n info.memory.textures--;\n }\n if (renderTarget.depthTexture) {\n renderTarget.depthTexture.dispose();\n }\n if (renderTarget.isWebGLCubeRenderTarget) {\n for (var i = 0; i < 6; i++) {\n _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]);\n if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]);\n }\n } else {\n _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer);\n if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);\n if (renderTargetProperties.__webglMultisampledFramebuffer) _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer);\n if (renderTargetProperties.__webglColorRenderbuffer) {\n for (var _i = 0; _i < renderTargetProperties.__webglColorRenderbuffer.length; _i++) {\n if (renderTargetProperties.__webglColorRenderbuffer[_i]) _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer[_i]);\n }\n }\n if (renderTargetProperties.__webglDepthRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer);\n }\n if (renderTarget.isWebGLMultipleRenderTargets) {\n for (var _i2 = 0, il = texture.length; _i2 < il; _i2++) {\n var attachmentProperties = properties.get(texture[_i2]);\n if (attachmentProperties.__webglTexture) {\n _gl.deleteTexture(attachmentProperties.__webglTexture);\n info.memory.textures--;\n }\n properties.remove(texture[_i2]);\n }\n }\n properties.remove(texture);\n properties.remove(renderTarget);\n }\n var textureUnits = 0;\n function resetTextureUnits() {\n textureUnits = 0;\n }\n function allocateTextureUnit() {\n var textureUnit = textureUnits;\n if (textureUnit >= maxTextures) {\n console.warn('THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + maxTextures);\n }\n textureUnits += 1;\n return textureUnit;\n }\n function getTextureCacheKey(texture) {\n var array = [];\n array.push(texture.wrapS);\n array.push(texture.wrapT);\n array.push(texture.magFilter);\n array.push(texture.minFilter);\n array.push(texture.anisotropy);\n array.push(texture.internalFormat);\n array.push(texture.format);\n array.push(texture.type);\n array.push(texture.generateMipmaps);\n array.push(texture.premultiplyAlpha);\n array.push(texture.flipY);\n array.push(texture.unpackAlignment);\n array.push(texture.encoding);\n return array.join();\n }\n function setTexture2D(texture, slot) {\n var textureProperties = properties.get(texture);\n if (texture.isVideoTexture) updateVideoTexture(texture);\n if (texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version) {\n var image = texture.image;\n if (image === null) {\n console.warn('THREE.WebGLRenderer: Texture marked for update but no image data found.');\n } else if (image.complete === false) {\n console.warn('THREE.WebGLRenderer: Texture marked for update but image is incomplete');\n } else {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n }\n state.activeTexture(_gl.TEXTURE0 + slot);\n state.bindTexture(_gl.TEXTURE_2D, textureProperties.__webglTexture);\n }\n function setTexture2DArray(texture, slot) {\n var textureProperties = properties.get(texture);\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n state.activeTexture(_gl.TEXTURE0 + slot);\n state.bindTexture(_gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture);\n }\n function setTexture3D(texture, slot) {\n var textureProperties = properties.get(texture);\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadTexture(textureProperties, texture, slot);\n return;\n }\n state.bindTexture(_gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n }\n function setTextureCube(texture, slot) {\n var textureProperties = properties.get(texture);\n if (texture.version > 0 && textureProperties.__version !== texture.version) {\n uploadCubeTexture(textureProperties, texture, slot);\n return;\n }\n state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n }\n var wrappingToGL = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.RepeatWrapping, _gl.REPEAT), _constants.ClampToEdgeWrapping, _gl.CLAMP_TO_EDGE), _constants.MirroredRepeatWrapping, _gl.MIRRORED_REPEAT);\n var filterToGL = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.NearestFilter, _gl.NEAREST), _constants.NearestMipmapNearestFilter, _gl.NEAREST_MIPMAP_NEAREST), _constants.NearestMipmapLinearFilter, _gl.NEAREST_MIPMAP_LINEAR), _constants.LinearFilter, _gl.LINEAR), _constants.LinearMipmapNearestFilter, _gl.LINEAR_MIPMAP_NEAREST), _constants.LinearMipmapLinearFilter, _gl.LINEAR_MIPMAP_LINEAR);\n function setTextureParameters(textureType, texture, supportsMips) {\n if (supportsMips) {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[texture.wrapS]);\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[texture.wrapT]);\n if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[texture.wrapR]);\n }\n _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[texture.magFilter]);\n _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[texture.minFilter]);\n } else {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE);\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE);\n if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\n _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, _gl.CLAMP_TO_EDGE);\n }\n if (texture.wrapS !== _constants.ClampToEdgeWrapping || texture.wrapT !== _constants.ClampToEdgeWrapping) {\n console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.');\n }\n _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterFallback(texture.magFilter));\n _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterFallback(texture.minFilter));\n if (texture.minFilter !== _constants.NearestFilter && texture.minFilter !== _constants.LinearFilter) {\n console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.');\n }\n }\n if (extensions.has('EXT_texture_filter_anisotropic') === true) {\n var extension = extensions.get('EXT_texture_filter_anisotropic');\n if (texture.type === _constants.FloatType && extensions.has('OES_texture_float_linear') === false) return;\n if (isWebGL2 === false && texture.type === _constants.HalfFloatType && extensions.has('OES_texture_half_float_linear') === false) return;\n if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) {\n _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy()));\n properties.get(texture).__currentAnisotropy = texture.anisotropy;\n }\n }\n }\n function initTexture(textureProperties, texture) {\n var forceUpload = false;\n if (textureProperties.__webglInit === undefined) {\n textureProperties.__webglInit = true;\n texture.addEventListener('dispose', onTextureDispose);\n }\n var source = texture.source;\n var webglTextures = _sources.get(source);\n if (webglTextures === undefined) {\n webglTextures = {};\n _sources.set(source, webglTextures);\n }\n var textureCacheKey = getTextureCacheKey(texture);\n if (textureCacheKey !== textureProperties.__cacheKey) {\n if (webglTextures[textureCacheKey] === undefined) {\n webglTextures[textureCacheKey] = {\n texture: _gl.createTexture(),\n usedTimes: 0 };\n\n info.memory.textures++;\n forceUpload = true;\n }\n webglTextures[textureCacheKey].usedTimes++;\n var webglTexture = webglTextures[textureProperties.__cacheKey];\n if (webglTexture !== undefined) {\n webglTextures[textureProperties.__cacheKey].usedTimes--;\n if (webglTexture.usedTimes === 0) {\n deleteTexture(texture);\n }\n }\n textureProperties.__cacheKey = textureCacheKey;\n textureProperties.__webglTexture = webglTextures[textureCacheKey].texture;\n }\n return forceUpload;\n }\n function uploadTexture(textureProperties, texture, slot) {\n var textureType = _gl.TEXTURE_2D;\n if (texture.isDataArrayTexture) textureType = _gl.TEXTURE_2D_ARRAY;\n if (texture.isData3DTexture) textureType = _gl.TEXTURE_3D;\n var forceUpload = initTexture(textureProperties, texture);\n var source = texture.source;\n state.activeTexture(_gl.TEXTURE0 + slot);\n state.bindTexture(textureType, textureProperties.__webglTexture);\n if (source.version !== source.__currentVersion || forceUpload === true) {\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE);\n var needsPowerOfTwo = textureNeedsPowerOfTwo(texture) && isPowerOfTwo(texture.image) === false;\n var image = resizeImage(texture.image, needsPowerOfTwo, false, maxTextureSize);\n image = verifyColorSpace(texture, image);\n var supportsMips = isPowerOfTwo(image) || isWebGL2,\n glFormat = utils.convert(texture.format, texture.encoding);\n var glType = utils.convert(texture.type),\n glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding, texture.isVideoTexture);\n setTextureParameters(textureType, texture, supportsMips);\n var mipmap;\n var mipmaps = texture.mipmaps;\n var useTexStorage = isWebGL2 && texture.isVideoTexture !== true;\n var allocateMemory = source.__currentVersion === undefined || forceUpload === true;\n var levels = getMipLevels(texture, image, supportsMips);\n if (texture.isDepthTexture) {\n glInternalFormat = _gl.DEPTH_COMPONENT;\n if (isWebGL2) {\n if (texture.type === _constants.FloatType) {\n glInternalFormat = _gl.DEPTH_COMPONENT32F;\n } else if (texture.type === _constants.UnsignedIntType) {\n glInternalFormat = _gl.DEPTH_COMPONENT24;\n } else if (texture.type === _constants.UnsignedInt248Type) {\n glInternalFormat = _gl.DEPTH24_STENCIL8;\n } else {\n glInternalFormat = _gl.DEPTH_COMPONENT16;\n }\n } else {\n if (texture.type === _constants.FloatType) {\n console.error('WebGLRenderer: Floating point depth texture requires WebGL2.');\n }\n }\n if (texture.format === _constants.DepthFormat && glInternalFormat === _gl.DEPTH_COMPONENT) {\n if (texture.type !== _constants.UnsignedShortType && texture.type !== _constants.UnsignedIntType) {\n console.warn('THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.');\n texture.type = _constants.UnsignedIntType;\n glType = utils.convert(texture.type);\n }\n }\n if (texture.format === _constants.DepthStencilFormat && glInternalFormat === _gl.DEPTH_COMPONENT) {\n glInternalFormat = _gl.DEPTH_STENCIL;\n if (texture.type !== _constants.UnsignedInt248Type) {\n console.warn('THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.');\n texture.type = _constants.UnsignedInt248Type;\n glType = utils.convert(texture.type);\n }\n }\n if (allocateMemory) {\n if (useTexStorage) {\n state.texStorage2D(_gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null);\n }\n }\n } else if (texture.isDataTexture) {\n if (mipmaps.length > 0 && supportsMips) {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n }\n for (var i = 0, il = mipmaps.length; i < il; i++) {\n mipmap = mipmaps[i];\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n texture.generateMipmaps = false;\n } else {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n }\n state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data);\n }\n }\n } else if (texture.isCompressedTexture) {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n }\n for (var _i3 = 0, _il = mipmaps.length; _i3 < _il; _i3++) {\n mipmap = mipmaps[_i3];\n if (texture.format !== _constants.RGBAFormat) {\n if (glFormat !== null) {\n if (useTexStorage) {\n state.compressedTexSubImage2D(_gl.TEXTURE_2D, _i3, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n } else {\n state.compressedTexImage2D(_gl.TEXTURE_2D, _i3, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n }\n } else {\n console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()');\n }\n } else {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_2D, _i3, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, _i3, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n }\n } else if (texture.isDataArrayTexture) {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth);\n }\n state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n } else {\n state.texImage3D(_gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n }\n } else if (texture.isData3DTexture) {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage3D(_gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth);\n }\n state.texSubImage3D(_gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n } else {\n state.texImage3D(_gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n }\n } else if (texture.isFramebufferTexture) {\n if (allocateMemory) {\n if (useTexStorage) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n } else {\n var width = image.width,\n height = image.height;\n for (var _i4 = 0; _i4 < levels; _i4++) {\n state.texImage2D(_gl.TEXTURE_2D, _i4, glInternalFormat, width, height, 0, glFormat, glType, null);\n width >>= 1;\n height >>= 1;\n }\n }\n }\n } else {\n if (mipmaps.length > 0 && supportsMips) {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n }\n for (var _i5 = 0, _il2 = mipmaps.length; _i5 < _il2; _i5++) {\n mipmap = mipmaps[_i5];\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_2D, _i5, 0, 0, glFormat, glType, mipmap);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, _i5, glInternalFormat, glFormat, glType, mipmap);\n }\n }\n texture.generateMipmaps = false;\n } else {\n if (useTexStorage) {\n if (allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n }\n state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image);\n } else {\n state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image);\n }\n }\n }\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(textureType);\n }\n source.__currentVersion = source.version;\n if (texture.onUpdate) texture.onUpdate(texture);\n }\n textureProperties.__version = texture.version;\n }\n function uploadCubeTexture(textureProperties, texture, slot) {\n if (texture.image.length !== 6) return;\n var forceUpload = initTexture(textureProperties, texture);\n var source = texture.source;\n state.activeTexture(_gl.TEXTURE0 + slot);\n state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\n if (source.version !== source.__currentVersion || forceUpload === true) {\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE);\n var isCompressed = texture.isCompressedTexture || texture.image[0].isCompressedTexture;\n var isDataTexture = texture.image[0] && texture.image[0].isDataTexture;\n var cubeImage = [];\n for (var i = 0; i < 6; i++) {\n if (!isCompressed && !isDataTexture) {\n cubeImage[i] = resizeImage(texture.image[i], false, true, maxCubemapSize);\n } else {\n cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];\n }\n cubeImage[i] = verifyColorSpace(texture, cubeImage[i]);\n }\n var image = cubeImage[0],\n supportsMips = isPowerOfTwo(image) || isWebGL2,\n glFormat = utils.convert(texture.format, texture.encoding),\n glType = utils.convert(texture.type),\n glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\n var useTexStorage = isWebGL2 && texture.isVideoTexture !== true;\n var allocateMemory = source.__currentVersion === undefined || forceUpload === true;\n var levels = getMipLevels(texture, image, supportsMips);\n setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture, supportsMips);\n var mipmaps;\n if (isCompressed) {\n if (useTexStorage && allocateMemory) {\n state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height);\n }\n for (var _i6 = 0; _i6 < 6; _i6++) {\n mipmaps = cubeImage[_i6].mipmaps;\n for (var j = 0; j < mipmaps.length; j++) {\n var mipmap = mipmaps[j];\n if (texture.format !== _constants.RGBAFormat) {\n if (glFormat !== null) {\n if (useTexStorage) {\n state.compressedTexSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i6, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n } else {\n state.compressedTexImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i6, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n }\n } else {\n console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()');\n }\n } else {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i6, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i6, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n }\n }\n }\n }\n } else {\n mipmaps = texture.mipmaps;\n if (useTexStorage && allocateMemory) {\n if (mipmaps.length > 0) levels++;\n state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, cubeImage[0].width, cubeImage[0].height);\n }\n for (var _i7 = 0; _i7 < 6; _i7++) {\n if (isDataTexture) {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, 0, 0, 0, cubeImage[_i7].width, cubeImage[_i7].height, glFormat, glType, cubeImage[_i7].data);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, 0, glInternalFormat, cubeImage[_i7].width, cubeImage[_i7].height, 0, glFormat, glType, cubeImage[_i7].data);\n }\n for (var _j = 0; _j < mipmaps.length; _j++) {\n var _mipmap = mipmaps[_j];\n var mipmapImage = _mipmap.image[_i7].image;\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, _j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, _j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data);\n }\n }\n } else {\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, 0, 0, 0, glFormat, glType, cubeImage[_i7]);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, 0, glInternalFormat, glFormat, glType, cubeImage[_i7]);\n }\n for (var _j2 = 0; _j2 < mipmaps.length; _j2++) {\n var _mipmap2 = mipmaps[_j2];\n if (useTexStorage) {\n state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, _j2 + 1, 0, 0, glFormat, glType, _mipmap2.image[_i7]);\n } else {\n state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i7, _j2 + 1, glInternalFormat, glFormat, glType, _mipmap2.image[_i7]);\n }\n }\n }\n }\n }\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(_gl.TEXTURE_CUBE_MAP);\n }\n source.__currentVersion = source.version;\n if (texture.onUpdate) texture.onUpdate(texture);\n }\n textureProperties.__version = texture.version;\n }\n function setupFrameBufferTexture(framebuffer, renderTarget, texture, attachment, textureTarget) {\n var glFormat = utils.convert(texture.format, texture.encoding);\n var glType = utils.convert(texture.type);\n var glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\n var renderTargetProperties = properties.get(renderTarget);\n if (!renderTargetProperties.__hasExternalTextures) {\n if (textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY) {\n state.texImage3D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, renderTarget.depth, 0, glFormat, glType, null);\n } else {\n state.texImage2D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null);\n }\n }\n state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, 0, getRenderTargetSamples(renderTarget));\n } else {\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, 0);\n }\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n }\n function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) {\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n if (renderTarget.depthBuffer && !renderTarget.stencilBuffer) {\n var glInternalFormat = _gl.DEPTH_COMPONENT16;\n if (isMultisample || useMultisampledRTT(renderTarget)) {\n var depthTexture = renderTarget.depthTexture;\n if (depthTexture && depthTexture.isDepthTexture) {\n if (depthTexture.type === _constants.FloatType) {\n glInternalFormat = _gl.DEPTH_COMPONENT32F;\n } else if (depthTexture.type === _constants.UnsignedIntType) {\n glInternalFormat = _gl.DEPTH_COMPONENT24;\n }\n }\n var samples = getRenderTargetSamples(renderTarget);\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n }\n } else {\n _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\n }\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer);\n } else if (renderTarget.depthBuffer && renderTarget.stencilBuffer) {\n var _samples = getRenderTargetSamples(renderTarget);\n if (isMultisample && useMultisampledRTT(renderTarget) === false) {\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, _samples, _gl.DEPTH24_STENCIL8, renderTarget.width, renderTarget.height);\n } else if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, _samples, _gl.DEPTH24_STENCIL8, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorage(_gl.RENDERBUFFER, _gl.DEPTH_STENCIL, renderTarget.width, renderTarget.height);\n }\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer);\n } else {\n var textures = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture : [renderTarget.texture];\n for (var i = 0; i < textures.length; i++) {\n var texture = textures[i];\n var glFormat = utils.convert(texture.format, texture.encoding);\n var glType = utils.convert(texture.type);\n var _glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\n var _samples2 = getRenderTargetSamples(renderTarget);\n if (isMultisample && useMultisampledRTT(renderTarget) === false) {\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, _samples2, _glInternalFormat, renderTarget.width, renderTarget.height);\n } else if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, _samples2, _glInternalFormat, renderTarget.width, renderTarget.height);\n } else {\n _gl.renderbufferStorage(_gl.RENDERBUFFER, _glInternalFormat, renderTarget.width, renderTarget.height);\n }\n }\n }\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n }\n function setupDepthTexture(framebuffer, renderTarget) {\n var isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget;\n if (isCube) throw new Error('Depth Texture with cube render targets is not supported');\n state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) {\n throw new Error('renderTarget.depthTexture must be an instance of THREE.DepthTexture');\n }\n if (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) {\n renderTarget.depthTexture.image.width = renderTarget.width;\n renderTarget.depthTexture.image.height = renderTarget.height;\n renderTarget.depthTexture.needsUpdate = true;\n }\n setTexture2D(renderTarget.depthTexture, 0);\n var webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture;\n var samples = getRenderTargetSamples(renderTarget);\n if (renderTarget.depthTexture.format === _constants.DepthFormat) {\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n } else {\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n }\n } else if (renderTarget.depthTexture.format === _constants.DepthStencilFormat) {\n if (useMultisampledRTT(renderTarget)) {\n multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n } else {\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n }\n } else {\n throw new Error('Unknown depthTexture format');\n }\n }\n function setupDepthRenderbuffer(renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n var isCube = renderTarget.isWebGLCubeRenderTarget === true;\n if (renderTarget.depthTexture && !renderTargetProperties.__autoAllocateDepthBuffer) {\n if (isCube) throw new Error('target.depthTexture not supported in Cube render targets');\n setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget);\n } else {\n if (isCube) {\n renderTargetProperties.__webglDepthbuffer = [];\n for (var i = 0; i < 6; i++) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[i]);\n renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false);\n }\n } else {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false);\n }\n }\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n }\n function rebindTextures(renderTarget, colorTexture, depthTexture) {\n var renderTargetProperties = properties.get(renderTarget);\n if (colorTexture !== undefined) {\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D);\n }\n if (depthTexture !== undefined) {\n setupDepthRenderbuffer(renderTarget);\n }\n }\n function setupRenderTarget(renderTarget) {\n var texture = renderTarget.texture;\n var renderTargetProperties = properties.get(renderTarget);\n var textureProperties = properties.get(texture);\n renderTarget.addEventListener('dispose', onRenderTargetDispose);\n if (renderTarget.isWebGLMultipleRenderTargets !== true) {\n if (textureProperties.__webglTexture === undefined) {\n textureProperties.__webglTexture = _gl.createTexture();\n }\n textureProperties.__version = texture.version;\n info.memory.textures++;\n }\n var isCube = renderTarget.isWebGLCubeRenderTarget === true;\n var isMultipleRenderTargets = renderTarget.isWebGLMultipleRenderTargets === true;\n var supportsMips = isPowerOfTwo(renderTarget) || isWebGL2;\n if (isCube) {\n renderTargetProperties.__webglFramebuffer = [];\n for (var i = 0; i < 6; i++) {\n renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer();\n }\n } else {\n renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n if (isMultipleRenderTargets) {\n if (capabilities.drawBuffers) {\n var textures = renderTarget.texture;\n for (var _i8 = 0, il = textures.length; _i8 < il; _i8++) {\n var attachmentProperties = properties.get(textures[_i8]);\n if (attachmentProperties.__webglTexture === undefined) {\n attachmentProperties.__webglTexture = _gl.createTexture();\n info.memory.textures++;\n }\n }\n } else {\n console.warn('THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.');\n }\n }\n if (isWebGL2 && renderTarget.samples > 0 && useMultisampledRTT(renderTarget) === false) {\n var _textures = isMultipleRenderTargets ? texture : [texture];\n renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n renderTargetProperties.__webglColorRenderbuffer = [];\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n for (var _i9 = 0; _i9 < _textures.length; _i9++) {\n var _texture = _textures[_i9];\n renderTargetProperties.__webglColorRenderbuffer[_i9] = _gl.createRenderbuffer();\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i9]);\n var glFormat = utils.convert(_texture.format, _texture.encoding);\n var glType = utils.convert(_texture.type);\n var glInternalFormat = getInternalFormat(_texture.internalFormat, glFormat, glType, _texture.encoding);\n var samples = getRenderTargetSamples(renderTarget);\n _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + _i9, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i9]);\n }\n _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n if (renderTarget.depthBuffer) {\n renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true);\n }\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n }\n }\n if (isCube) {\n state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\n setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture, supportsMips);\n for (var _i10 = 0; _i10 < 6; _i10++) {\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[_i10], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + _i10);\n }\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(_gl.TEXTURE_CUBE_MAP);\n }\n state.unbindTexture();\n } else if (isMultipleRenderTargets) {\n var _textures2 = renderTarget.texture;\n for (var _i11 = 0, _il3 = _textures2.length; _i11 < _il3; _i11++) {\n var attachment = _textures2[_i11];\n var _attachmentProperties = properties.get(attachment);\n state.bindTexture(_gl.TEXTURE_2D, _attachmentProperties.__webglTexture);\n setTextureParameters(_gl.TEXTURE_2D, attachment, supportsMips);\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + _i11, _gl.TEXTURE_2D);\n if (textureNeedsGenerateMipmaps(attachment, supportsMips)) {\n generateMipmap(_gl.TEXTURE_2D);\n }\n }\n state.unbindTexture();\n } else {\n var glTextureType = _gl.TEXTURE_2D;\n if (renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget) {\n if (isWebGL2) {\n glTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n } else {\n console.error('THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.');\n }\n }\n state.bindTexture(glTextureType, textureProperties.__webglTexture);\n setTextureParameters(glTextureType, texture, supportsMips);\n setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType);\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n generateMipmap(glTextureType);\n }\n state.unbindTexture();\n }\n if (renderTarget.depthBuffer) {\n setupDepthRenderbuffer(renderTarget);\n }\n }\n function updateRenderTargetMipmap(renderTarget) {\n var supportsMips = isPowerOfTwo(renderTarget) || isWebGL2;\n var textures = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture : [renderTarget.texture];\n for (var i = 0, il = textures.length; i < il; i++) {\n var texture = textures[i];\n if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\n var target = renderTarget.isWebGLCubeRenderTarget ? _gl.TEXTURE_CUBE_MAP : _gl.TEXTURE_2D;\n var webglTexture = properties.get(texture).__webglTexture;\n state.bindTexture(target, webglTexture);\n generateMipmap(target);\n state.unbindTexture();\n }\n }\n }\n function updateMultisampleRenderTarget(renderTarget) {\n if (isWebGL2 && renderTarget.samples > 0 && useMultisampledRTT(renderTarget) === false) {\n var textures = renderTarget.isWebGLMultipleRenderTargets ? renderTarget.texture : [renderTarget.texture];\n var width = renderTarget.width;\n var height = renderTarget.height;\n var mask = _gl.COLOR_BUFFER_BIT;\n var invalidationArray = [];\n var depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n var renderTargetProperties = properties.get(renderTarget);\n var isMultipleRenderTargets = renderTarget.isWebGLMultipleRenderTargets === true;\n if (isMultipleRenderTargets) {\n for (var i = 0; i < textures.length; i++) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null);\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0);\n }\n }\n state.bindFramebuffer(_gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n for (var _i12 = 0; _i12 < textures.length; _i12++) {\n invalidationArray.push(_gl.COLOR_ATTACHMENT0 + _i12);\n if (renderTarget.depthBuffer) {\n invalidationArray.push(depthStyle);\n }\n var ignoreDepthValues = renderTargetProperties.__ignoreDepthValues !== undefined ? renderTargetProperties.__ignoreDepthValues : false;\n if (ignoreDepthValues === false) {\n if (renderTarget.depthBuffer) mask |= _gl.DEPTH_BUFFER_BIT;\n if (renderTarget.stencilBuffer) mask |= _gl.STENCIL_BUFFER_BIT;\n }\n if (isMultipleRenderTargets) {\n _gl.framebufferRenderbuffer(_gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i12]);\n }\n if (ignoreDepthValues === true) {\n _gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER, [depthStyle]);\n _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, [depthStyle]);\n }\n if (isMultipleRenderTargets) {\n var webglTexture = properties.get(textures[_i12]).__webglTexture;\n _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0);\n }\n _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST);\n if (supportsInvalidateFramebuffer) {\n _gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER, invalidationArray);\n }\n }\n state.bindFramebuffer(_gl.READ_FRAMEBUFFER, null);\n state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, null);\n if (isMultipleRenderTargets) {\n for (var _i13 = 0; _i13 < textures.length; _i13++) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + _i13, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[_i13]);\n var _webglTexture = properties.get(textures[_i13]).__webglTexture;\n state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + _i13, _gl.TEXTURE_2D, _webglTexture, 0);\n }\n }\n state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n }\n }\n function getRenderTargetSamples(renderTarget) {\n return Math.min(maxSamples, renderTarget.samples);\n }\n function useMultisampledRTT(renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n return isWebGL2 && renderTarget.samples > 0 && extensions.has('WEBGL_multisampled_render_to_texture') === true && renderTargetProperties.__useRenderToTexture !== false;\n }\n function updateVideoTexture(texture) {\n var frame = info.render.frame;\n if (_videoTextures.get(texture) !== frame) {\n _videoTextures.set(texture, frame);\n texture.update();\n }\n }\n function verifyColorSpace(texture, image) {\n var encoding = texture.encoding;\n var format = texture.format;\n var type = texture.type;\n if (texture.isCompressedTexture === true || texture.isVideoTexture === true || texture.format === _constants._SRGBAFormat) return image;\n if (encoding !== _constants.LinearEncoding) {\n if (encoding === _constants.sRGBEncoding) {\n if (isWebGL2 === false) {\n if (extensions.has('EXT_sRGB') === true && format === _constants.RGBAFormat) {\n texture.format = _constants._SRGBAFormat;\n texture.minFilter = _constants.LinearFilter;\n texture.generateMipmaps = false;\n } else {\n image = _ImageUtils.ImageUtils.sRGBToLinear(image);\n }\n } else {\n if (format !== _constants.RGBAFormat || type !== _constants.UnsignedByteType) {\n console.warn('THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.');\n }\n }\n } else {\n console.error('THREE.WebGLTextures: Unsupported texture encoding:', encoding);\n }\n }\n return image;\n }\n this.allocateTextureUnit = allocateTextureUnit;\n this.resetTextureUnits = resetTextureUnits;\n this.setTexture2D = setTexture2D;\n this.setTexture2DArray = setTexture2DArray;\n this.setTexture3D = setTexture3D;\n this.setTextureCube = setTextureCube;\n this.rebindTextures = rebindTextures;\n this.setupRenderTarget = setupRenderTarget;\n this.updateRenderTargetMipmap = updateRenderTargetMipmap;\n this.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n this.setupDepthRenderbuffer = setupDepthRenderbuffer;\n this.setupFrameBufferTexture = setupFrameBufferTexture;\n this.useMultisampledRTT = useMultisampledRTT;\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/math/MathUtils.js", "pandav:/src/extras/ImageUtils.js", "pandav:/src/utils.js" ], "buildLevel": 31, "outputDir": "/com/three/0.145.0/src/renderers/webgl", "outputPath": "/com/three/0.145.0/src/renderers/webgl/WebGLTextures.js", "fileName": "/src/renderers/webgl/WebGLTextures.js" }, "pandav:/src/renderers/WebGLRenderTarget.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/textures/Source\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLRenderTarget = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _Texture = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _Source = require('pandav:/com/three/0.145.0/src/textures/Source');\n var WebGLRenderTarget = exports.WebGLRenderTarget = function (_EventDispatcher) {\n (0, _inherits2.default)(WebGLRenderTarget, _EventDispatcher);\n var _super = (0, _createSuper2.default)(WebGLRenderTarget);\n function WebGLRenderTarget(width, height) {\n var _this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _classCallCheck2.default)(this, WebGLRenderTarget);\n _this = _super.call(this);\n _this.isWebGLRenderTarget = true;\n _this.width = width;\n _this.height = height;\n _this.depth = 1;\n _this.scissor = new _Vector.Vector4(0, 0, width, height);\n _this.scissorTest = false;\n _this.viewport = new _Vector.Vector4(0, 0, width, height);\n var image = {\n width: width,\n height: height,\n depth: 1 };\n\n _this.texture = new _Texture.Texture(image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding);\n _this.texture.isRenderTargetTexture = true;\n _this.texture.flipY = false;\n _this.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n _this.texture.internalFormat = options.internalFormat !== undefined ? options.internalFormat : null;\n _this.texture.minFilter = options.minFilter !== undefined ? options.minFilter : _constants.LinearFilter;\n _this.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;\n _this.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : false;\n _this.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;\n _this.samples = options.samples !== undefined ? options.samples : 0;\n _this.outputEncoding = _constants.LinearEncoding;\n _this.useEncoding = !!options.encoding;\n return _this;\n }\n (0, _createClass2.default)(WebGLRenderTarget, [{\n key: \"setSize\",\n value: function setSize(width, height) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (this.width !== width || this.height !== height || this.depth !== depth) {\n this.width = width;\n this.height = height;\n this.depth = depth;\n this.texture.image.width = width;\n this.texture.image.height = height;\n this.texture.image.depth = depth;\n this.dispose();\n }\n this.viewport.set(0, 0, width, height);\n this.scissor.set(0, 0, width, height);\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.width = source.width;\n this.height = source.height;\n this.depth = source.depth;\n this.viewport.copy(source.viewport);\n this.texture = source.texture.clone();\n this.texture.isRenderTargetTexture = true;\n var image = Object.assign({}, source.texture.image);\n this.texture.source = new _Source.Source(image);\n this.depthBuffer = source.depthBuffer;\n this.stencilBuffer = source.stencilBuffer;\n if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone();\n this.samples = source.samples;\n this.outputEncoding = source.outputEncoding;\n this.useEncoding = source.useEncoding;\n return this;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose' });\n\n } }]);\n\n return WebGLRenderTarget;\n }(_EventDispatcher2.EventDispatcher);return module.exports;});", "requires": [ "pandav:/src/core/EventDispatcher.js", "pandav:/src/textures/Texture.js", "pandav:/src/constants.js", "pandav:/src/math/Vector4.js", "pandav:/src/textures/Source.js" ], "buildLevel": 2, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGLRenderTarget.js", "fileName": "/src/renderers/WebGLRenderTarget.js" }, "pandav:/src/renderers/WebGLRenderProcesser.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGLRenderProcesser\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/textures/DepthTexture\", \"pandav:/com/three/0.145.0/src/renderers/GBuffer\", \"pandav:/com/three/0.145.0/src/postprocessing/ReadSceneRenderBufferPass\", \"pandav:/com/three/0.145.0/src/postprocessing/CopyDeferredPassToForward\", \"pandav:/com/three/0.145.0/src/postprocessing/DeferredRenderPass\", \"pandav:/com/three/0.145.0/src/postprocessing/EffectComposer\", \"pandav:/com/three/0.145.0/src/postprocessing/TAAPass\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLRenderProcesser = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _WebGLRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _DepthTexture = require('pandav:/com/three/0.145.0/src/textures/DepthTexture');\n var _GBuffer = require('pandav:/com/three/0.145.0/src/renderers/GBuffer');\n var _ReadSceneRenderBufferPass = require('pandav:/com/three/0.145.0/src/postprocessing/ReadSceneRenderBufferPass');\n var _CopyDeferredPassToForward = require('pandav:/com/three/0.145.0/src/postprocessing/CopyDeferredPassToForward');\n var _DeferredRenderPass = require('pandav:/com/three/0.145.0/src/postprocessing/DeferredRenderPass');\n var _EffectComposer = require('pandav:/com/three/0.145.0/src/postprocessing/EffectComposer');\n var _TAAPass = require('pandav:/com/three/0.145.0/src/postprocessing/TAAPass');\n var WebGLRenderProcesser = exports.WebGLRenderProcesser = function () {\n function WebGLRenderProcesser(context, width, height) {\n (0, _classCallCheck2.default)(this, WebGLRenderProcesser);\n this.context = undefined;\n this.gBuffer = null;\n this.forwardRenderTarget = undefined;\n this.depthTexture = undefined;\n this.deferredComposer = null;\n this.forwardComposer = undefined;\n this.deferredRenderInited = false;\n this.readSceneRenderBufferPass = null;\n this.transmissionRenderTarget = null;\n this.transmissionDepthRenderTarget = null;\n this.size = new _Vector.Vector2(1, 1);\n this.gl = undefined;\n this.composerRenderTarget = undefined;\n this.copyDeferredPassToForward = null;\n this.deferredRenderPass = null;\n this.taaPass = null;\n this.copyGDepthToTransimission = null;\n this._samples = 0;\n this.taaEnabled = false;\n this.mixAlpha = 0.04;\n this.varianceClipGamma = 1;\n this.taaJitterOffsets = _JitterVectors[3];\n this.frameCount = 0;\n this.size.set(width, height);\n this.context = context;\n this.gl = context.getContext();\n this.createDepthTexture();\n this.createForwardRenderTarget();\n var composerRenderTarget = new _WebGLRenderTarget.WebGLRenderTarget(width, height);\n composerRenderTarget.texture.type = _constants.HalfFloatType;\n composerRenderTarget.texture.internalFormat = \"RGBA16F\";\n composerRenderTarget.texture.needsUpdate = true;\n this.composerRenderTarget = composerRenderTarget;\n this.initTransmission();\n this.refreshComposer();\n }\n (0, _createClass2.default)(WebGLRenderProcesser, [{\n key: \"samples\",\n get: function get() {\n return this._samples;\n },\n set: function set(v) {\n if (this.samples === v) {\n return;\n }\n this._samples = v;\n if (!this.context.deferredRenderEnabled) {\n this.forwardRenderTarget.dispose();\n this.createForwardRenderTarget();\n }\n } },\n {\n key: \"createForwardRenderTarget\",\n value: function createForwardRenderTarget() {\n var forwardRenderTarget = new _WebGLRenderTarget.WebGLRenderTarget(this.size.width, this.size.height, {\n depthTexture: this.depthTexture,\n stencilBuffer: false,\n samples: this._samples });\n\n forwardRenderTarget.texture.format = _constants.RGBAFormat;\n forwardRenderTarget.texture.type = _constants.HalfFloatType;\n forwardRenderTarget.texture.internalFormat = \"RGBA16F\";\n forwardRenderTarget.texture.needsUpdate = true;\n forwardRenderTarget.outputEncoding = _constants.LinearEncoding;\n this.forwardRenderTarget = forwardRenderTarget;\n } },\n {\n key: \"addForwardPass\",\n value: function addForwardPass(pass, i) {\n var _ref = this.forwardComposer,\n passes = _ref.passes;\n if (passes.indexOf(pass) >= 0) {\n return;\n }\n var innerForwardPassCount = this.context.deferredRenderEnabled ? 1 : 0;\n if (i !== undefined) {\n passes.splice(i + innerForwardPassCount, 0, pass);\n } else {\n passes.push(pass);\n }\n } },\n {\n key: \"removeForwardPass\",\n value: function removeForwardPass(pass) {\n var _ref2 = this.forwardComposer,\n passes = _ref2.passes;\n var i = passes.indexOf(pass);\n if (i < 0) {\n return;\n }\n passes.splice(i, 1);\n } },\n {\n key: \"refreshComposer\",\n value: function refreshComposer() {\n var _this$forwardComposer, _this$deferredCompose;\n (_this$forwardComposer = this.forwardComposer) === null || _this$forwardComposer === void 0 ? void 0 : _this$forwardComposer.dispose();\n (_this$deferredCompose = this.deferredComposer) === null || _this$deferredCompose === void 0 ? void 0 : _this$deferredCompose.dispose();\n var forwardComposer;\n var deferredComposer = null;\n if (this.context.deferredRenderEnabled) {\n if (!this.deferredRenderInited) {\n this.gBuffer = new _GBuffer.GBuffer(this.size.width, this.size.height, this._samples);\n this.readSceneRenderBufferPass = new _ReadSceneRenderBufferPass.ReadSceneRenderBufferPass();\n this.copyDeferredPassToForward = new _CopyDeferredPassToForward.CopyDeferredPassToForward(this);\n this.deferredRenderPass = new _DeferredRenderPass.DeferredRenderPass();\n this.deferredRenderInited = true;\n }\n deferredComposer = new _EffectComposer.EffectComposer(this.context, this.composerRenderTarget);\n deferredComposer.renderToScreen = false;\n if (this.deferredComposer) {\n deferredComposer.passes = this.deferredComposer.passes;\n this.deferredComposer = deferredComposer;\n } else {\n this.deferredComposer = deferredComposer;\n this.deferredComposer.addPass(this.deferredRenderPass);\n this.deferredComposer.addPass(this.copyDeferredPassToForward);\n }\n forwardComposer = new _EffectComposer.EffectComposer(this.context, deferredComposer.renderTarget1, undefined, deferredComposer.renderTarget2);\n } else {\n forwardComposer = new _EffectComposer.EffectComposer(this.context, this.composerRenderTarget);\n }\n if (this.forwardComposer) {\n forwardComposer.passes = this.forwardComposer.passes;\n }\n this.forwardComposer = forwardComposer;\n this.refreshTAAPass();\n } },\n {\n key: \"setTAAEnabled\",\n value: function setTAAEnabled(v) {\n if (this.taaEnabled === v) {\n return;\n }\n this.taaEnabled = v;\n this.refreshTAAPass();\n } },\n {\n key: \"refreshTAAPass\",\n value: function refreshTAAPass() {\n if (this.taaEnabled && this.context.deferredRenderEnabled) {\n if (!this.taaPass) {\n this.taaPass = new _TAAPass.TAAPass(this.size);\n this.forwardComposer.passes.unshift(this.taaPass);\n }\n } else {\n if (this.taaPass) {\n this.forwardComposer.removePass(this.taaPass);\n this.taaPass.dispose();\n this.taaPass = null;\n }\n }\n } },\n {\n key: \"setSize\",\n value: function setSize(width, height) {\n var _this$deferredCompose2, _this$transmissionRen, _this$transmissionDep, _this$taaPass;\n if (width === this.size.width && height === this.size.height) {\n return;\n }\n this.size.set(width, height);\n this.forwardRenderTarget.setSize(width, height);\n this.composerRenderTarget.setSize(width, height);\n this.forwardComposer.setSize(width, height);\n (_this$deferredCompose2 = this.deferredComposer) === null || _this$deferredCompose2 === void 0 ? void 0 : _this$deferredCompose2.setSize(width, height);\n (_this$transmissionRen = this.transmissionRenderTarget) === null || _this$transmissionRen === void 0 ? void 0 : _this$transmissionRen.setSize(width, height);\n (_this$transmissionDep = this.transmissionDepthRenderTarget) === null || _this$transmissionDep === void 0 ? void 0 : _this$transmissionDep.setSize(width, height);\n this.depthTexture.dispose();\n this.createDepthTexture();\n this.forwardRenderTarget.depthTexture = this.depthTexture;\n this.gBuffer && this.gBuffer.setSize(width, height);\n (_this$taaPass = this.taaPass) === null || _this$taaPass === void 0 ? void 0 : _this$taaPass.setSize(width, height);\n } },\n {\n key: \"createDepthTexture\",\n value: function createDepthTexture() {\n var depthTexture = new _DepthTexture.DepthTexture(this.size.width, this.size.height);\n depthTexture.type = _constants.UnsignedIntType;\n depthTexture.format = _constants.DepthFormat;\n depthTexture.needsUpdate = true;\n this.depthTexture = depthTexture;\n } },\n {\n key: \"initTransmission\",\n value: function initTransmission() {\n var transmissionRenderTarget = new _WebGLRenderTarget.WebGLRenderTarget(this.size.width, this.size.height, {\n generateMipmaps: false,\n type: _constants.HalfFloatType,\n format: _constants.RGBAFormat });\n\n transmissionRenderTarget.texture.internalFormat = \"RGBA16F\";\n transmissionRenderTarget.texture.needsUpdate = true;\n this.transmissionRenderTarget = transmissionRenderTarget;\n var transmissionDepthRenderTarget = new _WebGLRenderTarget.WebGLRenderTarget(this.size.width, this.size.height, {\n generateMipmaps: false,\n type: _constants.FloatType,\n format: _constants.RedFormat });\n\n transmissionDepthRenderTarget.texture.internalFormat = \"R32F\";\n transmissionDepthRenderTarget.texture.needsUpdate = true;\n this.transmissionDepthRenderTarget = transmissionDepthRenderTarget;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n var _this$gBuffer, _this$forwardComposer2, _this$deferredCompose3, _this$readSceneRender, _this$transmissionRen2, _this$transmissionDep2, _this$taaPass2;\n this.composerRenderTarget.dispose();\n this.forwardRenderTarget.dispose();\n (_this$gBuffer = this.gBuffer) === null || _this$gBuffer === void 0 ? void 0 : _this$gBuffer.dispose();\n this.depthTexture.dispose();\n (_this$forwardComposer2 = this.forwardComposer) === null || _this$forwardComposer2 === void 0 ? void 0 : _this$forwardComposer2.dispose();\n (_this$deferredCompose3 = this.deferredComposer) === null || _this$deferredCompose3 === void 0 ? void 0 : _this$deferredCompose3.dispose();\n (_this$readSceneRender = this.readSceneRenderBufferPass) === null || _this$readSceneRender === void 0 ? void 0 : _this$readSceneRender.dispose();\n (_this$transmissionRen2 = this.transmissionRenderTarget) === null || _this$transmissionRen2 === void 0 ? void 0 : _this$transmissionRen2.dispose();\n (_this$transmissionDep2 = this.transmissionDepthRenderTarget) === null || _this$transmissionDep2 === void 0 ? void 0 : _this$transmissionDep2.dispose();\n (_this$taaPass2 = this.taaPass) === null || _this$taaPass2 === void 0 ? void 0 : _this$taaPass2.dispose();\n } },\n {\n key: \"renderScene\",\n value: function renderScene(currentRenderList, scene, camera) {\n var backgroundObjects = currentRenderList.background;\n var deferredOpaqueObjects = currentRenderList.deferredOpaque;\n var deferredTransmissiveObjects = currentRenderList.deferredTransmissive;\n var forwardOpaqueObjects = currentRenderList.forwardOpaque;\n var forwardTransmissiveObjects = currentRenderList.forwardTransmissive;\n var forwardTransparentObjects = currentRenderList.forwardTransparent;\n var context = this.context,\n gl = this.gl;\n var textures = context.webglTextures;\n if (context.deferredRenderEnabled) {\n var gBuffer = this.gBuffer;\n var deferredComposer = this.deferredComposer;\n var deferredRenderPass = this.deferredRenderPass;\n if (this.taaEnabled && this.taaJitterOffsets.length > 0) {\n var jitterOffsetIndex = this.frameCount % this.taaJitterOffsets.length;\n var jitterOffset = this.taaJitterOffsets[jitterOffsetIndex];\n context.projectionJitter.set(jitterOffset[0] * 0.0625 / this.size.width * 2.0, jitterOffset[1] * 0.0625 / this.size.height * 2.0);\n } else {\n context.projectionJitter.set(0, 0);\n }\n context.setRenderTarget(gBuffer.renderTarget);\n context.clear();\n if (deferredOpaqueObjects.length > 0) context.renderObjects(deferredOpaqueObjects, scene, camera);\n if (deferredTransmissiveObjects.length > 0) {\n context.copyTextureToRenderTarget(gBuffer.colorBuffer, this.transmissionRenderTarget);\n context.renderObjects(deferredTransmissiveObjects, scene, camera);\n }\n deferredRenderPass.camera = camera;\n deferredRenderPass.scene = scene;\n deferredComposer.render();\n }\n context.setRenderTarget(this.forwardRenderTarget);\n if (!this.context.deferredRenderEnabled) {\n context.clear();\n }\n if (backgroundObjects.length > 0) context.renderObjects(backgroundObjects, scene, camera);\n if (forwardOpaqueObjects.length > 0) context.renderObjects(forwardOpaqueObjects, scene, camera);\n if (forwardTransmissiveObjects.length > 0) {\n if (this.transmissionRenderTarget === null) {\n this.initTransmission();\n }\n textures.updateMultisampleRenderTarget(this.forwardRenderTarget);\n context.copyTextureToRenderTarget(this.forwardRenderTarget.texture, this.transmissionRenderTarget, true, true);\n context.copyTextureToRenderTarget(this.forwardRenderTarget.depthTexture, this.transmissionDepthRenderTarget);\n context.renderObjects(forwardTransmissiveObjects, scene, camera);\n }\n if (forwardTransparentObjects.length > 0) context.renderObjects(forwardTransparentObjects, scene, camera);\n textures.updateMultisampleRenderTarget(this.forwardRenderTarget);\n context.copyTextureToRenderTarget(this.forwardRenderTarget.texture, this.forwardComposer.readBuffer, true, true);\n context.copyTextureToRenderTarget(this.forwardRenderTarget.depthTexture, this.transmissionDepthRenderTarget);\n if (this.taaPass) {\n this.taaPass.camera = camera;\n this.taaPass.varianceClipGamma = this.varianceClipGamma;\n this.taaPass.mixAlpha = this.mixAlpha;\n }\n this.forwardComposer.render();\n } },\n {\n key: \"update\",\n value: function update(dt) {\n this.frameCount += 1;\n } },\n {\n key: \"setTAASampleLevel\",\n value: function setTAASampleLevel(v) {\n var taaSampleLevel = Math.max(0, Math.min(v, 5));\n this.taaJitterOffsets = _JitterVectors[taaSampleLevel];\n } }]);\n\n return WebGLRenderProcesser;\n }();\n var _JitterVectors = [[[0, 0]], [[4, 4], [-4, -4]], [[-2, -6], [6, -2], [-6, 2], [2, 6]], [[1, -3], [-1, 3], [5, 1], [-3, -5], [-5, 5], [-7, -1], [3, 7], [7, -7]], [[1, 1], [-1, -3], [-3, 2], [4, -1], [-5, -2], [2, 5], [5, 3], [3, -5], [-2, 6], [0, -7], [-4, -6], [-6, 4], [-8, 0], [7, -4], [6, 7], [-7, -8]], [[-4, -7], [-7, -5], [-3, -5], [-5, -4], [-1, -4], [-2, -2], [-6, -1], [-4, 0], [-7, 1], [-1, 2], [-6, 3], [-3, 3], [-7, 6], [-3, 6], [-5, 7], [-1, 7], [5, -7], [1, -6], [6, -5], [4, -4], [2, -3], [7, -2], [1, -1], [4, -1], [2, 1], [6, 2], [0, 4], [4, 4], [2, 5], [7, 5], [5, 6], [3, 7]]];return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/math/Vector2.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/textures/DepthTexture.js", "pandav:/src/renderers/GBuffer.js", "pandav:/src/postprocessing/ReadSceneRenderBufferPass.js", "pandav:/src/postprocessing/CopyDeferredPassToForward.js", "pandav:/src/postprocessing/DeferredRenderPass.js", "pandav:/src/postprocessing/EffectComposer.js", "pandav:/src/postprocessing/TAAPass.js" ], "buildLevel": 4, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGLRenderProcesser.js", "fileName": "/src/renderers/WebGLRenderProcesser.js" }, "pandav:/src/scenes/Fog.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/scenes/Fog\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Fog = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var Fog = exports.Fog = function () {\n function Fog(color) {\n var near = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var far = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n (0, _classCallCheck2.default)(this, Fog);\n this.isFog = true;\n this.name = '';\n this.color = new _Color.Color(color);\n this.near = near;\n this.far = far;\n }\n (0, _createClass2.default)(Fog, [{\n key: \"clone\",\n value: function clone() {\n return new Fog(this.color, this.near, this.far);\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n type: 'Fog',\n color: this.color.getHex(),\n near: this.near,\n far: this.far };\n\n } }]);\n\n return Fog;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Color.js" ], "buildLevel": 11, "outputDir": "/com/three/0.145.0/src/scenes", "outputPath": "/com/three/0.145.0/src/scenes/Fog.js", "fileName": "/src/scenes/Fog.js" }, "pandav:/src/scenes/FogExp2.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/scenes/FogExp2\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.FogExp2 = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var FogExp2 = exports.FogExp2 = function () {\n function FogExp2(color) {\n var density = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.00025;\n (0, _classCallCheck2.default)(this, FogExp2);\n this.isFogExp2 = true;\n this.name = '';\n this.color = new _Color.Color(color);\n this.density = density;\n }\n (0, _createClass2.default)(FogExp2, [{\n key: \"clone\",\n value: function clone() {\n return new FogExp2(this.color, this.density);\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n type: 'FogExp2',\n color: this.color.getHex(),\n density: this.density };\n\n } }]);\n\n return FogExp2;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Color.js" ], "buildLevel": 10, "outputDir": "/com/three/0.145.0/src/scenes", "outputPath": "/com/three/0.145.0/src/scenes/FogExp2.js", "fileName": "/src/scenes/FogExp2.js" }, "pandav:/src/renderers/webxr/WebXRController.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webxr/WebXRController\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/objects/Group\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebXRController = void 0;\n var _createForOfIteratorHelper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createForOfIteratorHelper'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Group = require('pandav:/com/three/0.145.0/src/objects/Group');\n var _moveEvent = {\n type: 'move' };\n\n var WebXRController = exports.WebXRController = function () {\n function WebXRController() {\n (0, _classCallCheck2.default)(this, WebXRController);\n this._targetRay = null;\n this._grip = null;\n this._hand = null;\n }\n (0, _createClass2.default)(WebXRController, [{\n key: \"getHandSpace\",\n value: function getHandSpace() {\n if (this._hand === null) {\n this._hand = new _Group.Group();\n this._hand.matrixAutoUpdate = false;\n this._hand.visible = false;\n this._hand.joints = {};\n this._hand.inputState = {\n pinching: false };\n\n }\n return this._hand;\n } },\n {\n key: \"getTargetRaySpace\",\n value: function getTargetRaySpace() {\n if (this._targetRay === null) {\n this._targetRay = new _Group.Group();\n this._targetRay.matrixAutoUpdate = false;\n this._targetRay.visible = false;\n this._targetRay.hasLinearVelocity = false;\n this._targetRay.linearVelocity = new _Vector.Vector3();\n this._targetRay.hasAngularVelocity = false;\n this._targetRay.angularVelocity = new _Vector.Vector3();\n }\n return this._targetRay;\n } },\n {\n key: \"getGripSpace\",\n value: function getGripSpace() {\n if (this._grip === null) {\n this._grip = new _Group.Group();\n this._grip.matrixAutoUpdate = false;\n this._grip.visible = false;\n this._grip.hasLinearVelocity = false;\n this._grip.linearVelocity = new _Vector.Vector3();\n this._grip.hasAngularVelocity = false;\n this._grip.angularVelocity = new _Vector.Vector3();\n }\n return this._grip;\n } },\n {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (this._targetRay !== null) {\n this._targetRay.dispatchEvent(event);\n }\n if (this._grip !== null) {\n this._grip.dispatchEvent(event);\n }\n if (this._hand !== null) {\n this._hand.dispatchEvent(event);\n }\n return this;\n } },\n {\n key: \"disconnect\",\n value: function disconnect(inputSource) {\n this.dispatchEvent({\n type: 'disconnected',\n data: inputSource });\n\n if (this._targetRay !== null) {\n this._targetRay.visible = false;\n }\n if (this._grip !== null) {\n this._grip.visible = false;\n }\n if (this._hand !== null) {\n this._hand.visible = false;\n }\n return this;\n } },\n {\n key: \"update\",\n value: function update(inputSource, frame, referenceSpace) {\n var inputPose = null;\n var gripPose = null;\n var handPose = null;\n var targetRay = this._targetRay;\n var grip = this._grip;\n var hand = this._hand;\n if (inputSource && frame.session.visibilityState !== 'visible-blurred') {\n if (hand && inputSource.hand) {\n handPose = true;\n var _iterator = (0, _createForOfIteratorHelper2.default)(inputSource.hand.values()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var inputjoint = _step.value;\n var jointPose = frame.getJointPose(inputjoint, referenceSpace);\n if (hand.joints[inputjoint.jointName] === undefined) {\n var _joint = new _Group.Group();\n _joint.matrixAutoUpdate = false;\n _joint.visible = false;\n hand.joints[inputjoint.jointName] = _joint;\n hand.add(_joint);\n }\n var joint = hand.joints[inputjoint.jointName];\n if (jointPose !== null) {\n joint.matrix.fromArray(jointPose.transform.matrix);\n joint.matrix.decompose(joint.position, joint.rotation, joint.scale);\n joint.jointRadius = jointPose.radius;\n }\n joint.visible = jointPose !== null;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var indexTip = hand.joints['index-finger-tip'];\n var thumbTip = hand.joints['thumb-tip'];\n var distance = indexTip.position.distanceTo(thumbTip.position);\n var distanceToPinch = 0.02;\n var threshold = 0.005;\n if (hand.inputState.pinching && distance > distanceToPinch + threshold) {\n hand.inputState.pinching = false;\n this.dispatchEvent({\n type: 'pinchend',\n handedness: inputSource.handedness,\n target: this });\n\n } else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) {\n hand.inputState.pinching = true;\n this.dispatchEvent({\n type: 'pinchstart',\n handedness: inputSource.handedness,\n target: this });\n\n }\n } else {\n if (grip !== null && inputSource.gripSpace) {\n gripPose = frame.getPose(inputSource.gripSpace, referenceSpace);\n if (gripPose !== null) {\n grip.matrix.fromArray(gripPose.transform.matrix);\n grip.matrix.decompose(grip.position, grip.rotation, grip.scale);\n if (gripPose.linearVelocity) {\n grip.hasLinearVelocity = true;\n grip.linearVelocity.copy(gripPose.linearVelocity);\n } else {\n grip.hasLinearVelocity = false;\n }\n if (gripPose.angularVelocity) {\n grip.hasAngularVelocity = true;\n grip.angularVelocity.copy(gripPose.angularVelocity);\n } else {\n grip.hasAngularVelocity = false;\n }\n }\n }\n }\n if (targetRay !== null) {\n inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace);\n if (inputPose === null && gripPose !== null) {\n inputPose = gripPose;\n }\n if (inputPose !== null) {\n targetRay.matrix.fromArray(inputPose.transform.matrix);\n targetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale);\n if (inputPose.linearVelocity) {\n targetRay.hasLinearVelocity = true;\n targetRay.linearVelocity.copy(inputPose.linearVelocity);\n } else {\n targetRay.hasLinearVelocity = false;\n }\n if (inputPose.angularVelocity) {\n targetRay.hasAngularVelocity = true;\n targetRay.angularVelocity.copy(inputPose.angularVelocity);\n } else {\n targetRay.hasAngularVelocity = false;\n }\n this.dispatchEvent(_moveEvent);\n }\n }\n }\n if (targetRay !== null) {\n targetRay.visible = inputPose !== null;\n }\n if (grip !== null) {\n grip.visible = gripPose !== null;\n }\n if (hand !== null) {\n hand.visible = handPose !== null;\n }\n return this;\n } }]);\n\n return WebXRController;\n }();return module.exports;});", "requires": [ "pandav:/src/math/Vector3.js", "pandav:/src/objects/Group.js" ], "buildLevel": 35, "outputDir": "/com/three/0.145.0/src/renderers/webxr", "outputPath": "/com/three/0.145.0/src/renderers/webxr/WebXRController.js", "fileName": "/src/renderers/webxr/WebXRController.js" }, "pandav:/src/renderers/webxr/WebXRManager.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/webxr/WebXRManager\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/regenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/asyncToGenerator\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/cameras/ArrayCamera\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAnimation\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/renderers/webxr/WebXRController\", \"pandav:/com/three/0.145.0/src/textures/DepthTexture\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebXRManager = void 0;\n var _regenerator = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/regenerator'));\n var _asyncToGenerator2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/asyncToGenerator'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _ArrayCamera = require('pandav:/com/three/0.145.0/src/cameras/ArrayCamera');\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _WebGLAnimation = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAnimation');\n var _WebGLRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _WebXRController = require('pandav:/com/three/0.145.0/src/renderers/webxr/WebXRController');\n var _DepthTexture = require('pandav:/com/three/0.145.0/src/textures/DepthTexture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var WebXRManager = exports.WebXRManager = function (_EventDispatcher) {\n (0, _inherits2.default)(WebXRManager, _EventDispatcher);\n var _super = (0, _createSuper2.default)(WebXRManager);\n function WebXRManager(renderer, gl) {\n var _this;\n (0, _classCallCheck2.default)(this, WebXRManager);\n _this = _super.call(this);\n var scope = (0, _assertThisInitialized2.default)(_this);\n var session = null;\n var framebufferScaleFactor = 1.0;\n var referenceSpace = null;\n var referenceSpaceType = 'local-floor';\n var customReferenceSpace = null;\n var pose = null;\n var glBinding = null;\n var glProjLayer = null;\n var glBaseLayer = null;\n var xrFrame = null;\n var attributes = gl.getContextAttributes();\n var initialRenderTarget = null;\n var newRenderTarget = null;\n var controllers = [];\n var controllerInputSources = [];\n var cameraL = new _PerspectiveCamera.PerspectiveCamera();\n cameraL.layers.enable(1);\n cameraL.viewport = new _Vector2.Vector4();\n var cameraR = new _PerspectiveCamera.PerspectiveCamera();\n cameraR.layers.enable(2);\n cameraR.viewport = new _Vector2.Vector4();\n var cameras = [cameraL, cameraR];\n var cameraVR = new _ArrayCamera.ArrayCamera();\n cameraVR.layers.enable(1);\n cameraVR.layers.enable(2);\n var _currentDepthNear = null;\n var _currentDepthFar = null;\n _this.cameraAutoUpdate = true;\n _this.enabled = false;\n _this.isPresenting = false;\n _this.getController = function (index) {\n var controller = controllers[index];\n if (controller === undefined) {\n controller = new _WebXRController.WebXRController();\n controllers[index] = controller;\n }\n return controller.getTargetRaySpace();\n };\n _this.getControllerGrip = function (index) {\n var controller = controllers[index];\n if (controller === undefined) {\n controller = new _WebXRController.WebXRController();\n controllers[index] = controller;\n }\n return controller.getGripSpace();\n };\n _this.getHand = function (index) {\n var controller = controllers[index];\n if (controller === undefined) {\n controller = new _WebXRController.WebXRController();\n controllers[index] = controller;\n }\n return controller.getHandSpace();\n };\n function onSessionEvent(event) {\n var controllerIndex = controllerInputSources.indexOf(event.inputSource);\n if (controllerIndex === -1) {\n return;\n }\n var controller = controllers[controllerIndex];\n if (controller !== undefined) {\n controller.dispatchEvent({\n type: event.type,\n data: event.inputSource });\n\n }\n }\n function onSessionEnd() {\n session.removeEventListener('select', onSessionEvent);\n session.removeEventListener('selectstart', onSessionEvent);\n session.removeEventListener('selectend', onSessionEvent);\n session.removeEventListener('squeeze', onSessionEvent);\n session.removeEventListener('squeezestart', onSessionEvent);\n session.removeEventListener('squeezeend', onSessionEvent);\n session.removeEventListener('end', onSessionEnd);\n session.removeEventListener('inputsourceschange', onInputSourcesChange);\n for (var i = 0; i < controllers.length; i++) {\n var inputSource = controllerInputSources[i];\n if (inputSource === null) continue;\n controllerInputSources[i] = null;\n controllers[i].disconnect(inputSource);\n }\n _currentDepthNear = null;\n _currentDepthFar = null;\n renderer.setRenderTarget(initialRenderTarget);\n glBaseLayer = null;\n glProjLayer = null;\n glBinding = null;\n session = null;\n newRenderTarget = null;\n animation.stop();\n scope.isPresenting = false;\n scope.dispatchEvent({\n type: 'sessionend' });\n\n }\n _this.setFramebufferScaleFactor = function (value) {\n framebufferScaleFactor = value;\n if (scope.isPresenting === true) {\n console.warn('THREE.WebXRManager: Cannot change framebuffer scale while presenting.');\n }\n };\n _this.setReferenceSpaceType = function (value) {\n referenceSpaceType = value;\n if (scope.isPresenting === true) {\n console.warn('THREE.WebXRManager: Cannot change reference space type while presenting.');\n }\n };\n _this.getReferenceSpace = function () {\n return customReferenceSpace || referenceSpace;\n };\n _this.setReferenceSpace = function (space) {\n customReferenceSpace = space;\n };\n _this.getBaseLayer = function () {\n return glProjLayer !== null ? glProjLayer : glBaseLayer;\n };\n _this.getBinding = function () {\n return glBinding;\n };\n _this.getFrame = function () {\n return xrFrame;\n };\n _this.getSession = function () {\n return session;\n };\n _this.setSession = function () {\n var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(value) {\n var layerInit, depthFormat, depthType, glDepthFormat, projectionlayerInit, renderTargetProperties;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n session = value;\n if (!(session !== null)) {\n _context.next = 25;\n break;\n }\n initialRenderTarget = renderer.getRenderTarget();\n session.addEventListener('select', onSessionEvent);\n session.addEventListener('selectstart', onSessionEvent);\n session.addEventListener('selectend', onSessionEvent);\n session.addEventListener('squeeze', onSessionEvent);\n session.addEventListener('squeezestart', onSessionEvent);\n session.addEventListener('squeezeend', onSessionEvent);\n session.addEventListener('end', onSessionEnd);\n session.addEventListener('inputsourceschange', onInputSourcesChange);\n if (!(attributes.xrCompatible !== true)) {\n _context.next = 14;\n break;\n }\n _context.next = 14;\n return gl.makeXRCompatible();\n case 14:\n if (session.renderState.layers === undefined || renderer.capabilities.isWebGL2 === false) {\n layerInit = {\n antialias: session.renderState.layers === undefined ? attributes.antialias : true,\n alpha: attributes.alpha,\n depth: attributes.depth,\n stencil: attributes.stencil,\n framebufferScaleFactor: framebufferScaleFactor };\n\n glBaseLayer = new XRWebGLLayer(session, gl, layerInit);\n session.updateRenderState({\n baseLayer: glBaseLayer });\n\n newRenderTarget = new _WebGLRenderTarget.WebGLRenderTarget(glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, {\n format: _constants.RGBAFormat,\n type: _constants.UnsignedByteType,\n encoding: renderer.outputEncoding,\n stencilBuffer: attributes.stencil });\n\n } else {\n depthFormat = null;\n depthType = null;\n glDepthFormat = null;\n if (attributes.depth) {\n glDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n depthFormat = attributes.stencil ? _constants.DepthStencilFormat : _constants.DepthFormat;\n depthType = attributes.stencil ? _constants.UnsignedInt248Type : _constants.UnsignedIntType;\n }\n projectionlayerInit = {\n colorFormat: gl.RGBA8,\n depthFormat: glDepthFormat,\n scaleFactor: framebufferScaleFactor };\n\n glBinding = new XRWebGLBinding(session, gl);\n glProjLayer = glBinding.createProjectionLayer(projectionlayerInit);\n session.updateRenderState({\n layers: [glProjLayer] });\n\n newRenderTarget = new _WebGLRenderTarget.WebGLRenderTarget(glProjLayer.textureWidth, glProjLayer.textureHeight, {\n format: _constants.RGBAFormat,\n type: _constants.UnsignedByteType,\n depthTexture: new _DepthTexture.DepthTexture(glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat),\n stencilBuffer: attributes.stencil,\n encoding: renderer.outputEncoding,\n samples: attributes.antialias ? 4 : 0 });\n\n renderTargetProperties = renderer.properties.get(newRenderTarget);\n renderTargetProperties.__ignoreDepthValues = glProjLayer.ignoreDepthValues;\n }\n newRenderTarget.isXRRenderTarget = true;\n this.setFoveation(1.0);\n customReferenceSpace = null;\n _context.next = 20;\n return session.requestReferenceSpace(referenceSpaceType);\n case 20:\n referenceSpace = _context.sent;\n animation.setContext(session);\n animation.start();\n scope.isPresenting = true;\n scope.dispatchEvent({\n type: 'sessionstart' });\n\n case 25:\n case \"end\":\n return _context.stop();}\n\n }, _callee, this);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }();\n function onInputSourcesChange(event) {\n for (var i = 0; i < event.removed.length; i++) {\n var inputSource = event.removed[i];\n var index = controllerInputSources.indexOf(inputSource);\n if (index >= 0) {\n controllerInputSources[index] = null;\n controllers[index].dispatchEvent({\n type: 'disconnected',\n data: inputSource });\n\n }\n }\n for (var _i = 0; _i < event.added.length; _i++) {\n var _inputSource = event.added[_i];\n var controllerIndex = controllerInputSources.indexOf(_inputSource);\n if (controllerIndex === -1) {\n for (var _i2 = 0; _i2 < controllers.length; _i2++) {\n if (_i2 >= controllerInputSources.length) {\n controllerInputSources.push(_inputSource);\n controllerIndex = _i2;\n break;\n } else if (controllerInputSources[_i2] === null) {\n controllerInputSources[_i2] = _inputSource;\n controllerIndex = _i2;\n break;\n }\n }\n if (controllerIndex === -1) break;\n }\n var controller = controllers[controllerIndex];\n if (controller) {\n controller.dispatchEvent({\n type: 'connected',\n data: _inputSource });\n\n }\n }\n }\n var cameraLPos = new _Vector.Vector3();\n var cameraRPos = new _Vector.Vector3();\n function setProjectionFromUnion(camera, cameraL, cameraR) {\n cameraLPos.setFromMatrixPosition(cameraL.matrixWorld);\n cameraRPos.setFromMatrixPosition(cameraR.matrixWorld);\n var ipd = cameraLPos.distanceTo(cameraRPos);\n var projL = cameraL.projectionMatrix.elements;\n var projR = cameraR.projectionMatrix.elements;\n var near = projL[14] / (projL[10] - 1);\n var far = projL[14] / (projL[10] + 1);\n var topFov = (projL[9] + 1) / projL[5];\n var bottomFov = (projL[9] - 1) / projL[5];\n var leftFov = (projL[8] - 1) / projL[0];\n var rightFov = (projR[8] + 1) / projR[0];\n var left = near * leftFov;\n var right = near * rightFov;\n var zOffset = ipd / (-leftFov + rightFov);\n var xOffset = zOffset * -leftFov;\n cameraL.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale);\n camera.translateX(xOffset);\n camera.translateZ(zOffset);\n camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale);\n camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\n var near2 = near + zOffset;\n var far2 = far + zOffset;\n var left2 = left - xOffset;\n var right2 = right + (ipd - xOffset);\n var top2 = topFov * far / far2 * near2;\n var bottom2 = bottomFov * far / far2 * near2;\n camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2);\n }\n function updateCamera(camera, parent) {\n if (parent === null) {\n camera.matrixWorld.copy(camera.matrix);\n } else {\n camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix);\n }\n camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\n }\n _this.updateCamera = function (camera) {\n if (session === null) return;\n cameraVR.near = cameraR.near = cameraL.near = camera.near;\n cameraVR.far = cameraR.far = cameraL.far = camera.far;\n if (_currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far) {\n session.updateRenderState({\n depthNear: cameraVR.near,\n depthFar: cameraVR.far });\n\n _currentDepthNear = cameraVR.near;\n _currentDepthFar = cameraVR.far;\n }\n var parent = camera.parent;\n var cameras = cameraVR.cameras;\n updateCamera(cameraVR, parent);\n for (var i = 0; i < cameras.length; i++) {\n updateCamera(cameras[i], parent);\n }\n cameraVR.matrixWorld.decompose(cameraVR.position, cameraVR.quaternion, cameraVR.scale);\n camera.matrix.copy(cameraVR.matrix);\n camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);\n var children = camera.children;\n for (var _i3 = 0, l = children.length; _i3 < l; _i3++) {\n children[_i3].updateMatrixWorld(true);\n }\n if (cameras.length === 2) {\n setProjectionFromUnion(cameraVR, cameraL, cameraR);\n } else {\n cameraVR.projectionMatrix.copy(cameraL.projectionMatrix);\n }\n };\n _this.getCamera = function () {\n return cameraVR;\n };\n _this.getFoveation = function () {\n if (glProjLayer !== null) {\n return glProjLayer.fixedFoveation;\n }\n if (glBaseLayer !== null) {\n return glBaseLayer.fixedFoveation;\n }\n return undefined;\n };\n _this.setFoveation = function (foveation) {\n if (glProjLayer !== null) {\n glProjLayer.fixedFoveation = foveation;\n }\n if (glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined) {\n glBaseLayer.fixedFoveation = foveation;\n }\n };\n var onAnimationFrameCallback = null;\n function onAnimationFrame(time, frame) {\n pose = frame.getViewerPose(customReferenceSpace || referenceSpace);\n xrFrame = frame;\n if (pose !== null) {\n var views = pose.views;\n if (glBaseLayer !== null) {\n renderer.setRenderTargetFramebuffer(newRenderTarget, glBaseLayer.framebuffer);\n renderer.setRenderTarget(newRenderTarget);\n }\n var cameraVRNeedsUpdate = false;\n if (views.length !== cameraVR.cameras.length) {\n cameraVR.cameras.length = 0;\n cameraVRNeedsUpdate = true;\n }\n for (var i = 0; i < views.length; i++) {\n var view = views[i];\n var viewport = null;\n if (glBaseLayer !== null) {\n viewport = glBaseLayer.getViewport(view);\n } else {\n var glSubImage = glBinding.getViewSubImage(glProjLayer, view);\n viewport = glSubImage.viewport;\n if (i === 0) {\n renderer.setRenderTargetTextures(newRenderTarget, glSubImage.colorTexture, glProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture);\n renderer.setRenderTarget(newRenderTarget);\n }\n }\n var camera = cameras[i];\n if (camera === undefined) {\n camera = new _PerspectiveCamera.PerspectiveCamera();\n camera.layers.enable(i);\n camera.viewport = new _Vector2.Vector4();\n cameras[i] = camera;\n }\n camera.matrix.fromArray(view.transform.matrix);\n camera.projectionMatrix.fromArray(view.projectionMatrix);\n camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height);\n if (i === 0) {\n cameraVR.matrix.copy(camera.matrix);\n }\n if (cameraVRNeedsUpdate === true) {\n cameraVR.cameras.push(camera);\n }\n }\n }\n for (var _i4 = 0; _i4 < controllers.length; _i4++) {\n var inputSource = controllerInputSources[_i4];\n var controller = controllers[_i4];\n if (inputSource !== null && controller !== undefined) {\n controller.update(inputSource, frame, customReferenceSpace || referenceSpace);\n }\n }\n if (onAnimationFrameCallback) onAnimationFrameCallback(time, frame);\n xrFrame = null;\n }\n var animation = new _WebGLAnimation.WebGLAnimation();\n animation.setAnimationLoop(onAnimationFrame);\n _this.setAnimationLoop = function (callback) {\n onAnimationFrameCallback = callback;\n };\n _this.dispose = function () {};\n return _this;\n }\n return (0, _createClass2.default)(WebXRManager);\n }(_EventDispatcher2.EventDispatcher);return module.exports;});", "requires": [ "pandav:/src/cameras/ArrayCamera.js", "pandav:/src/core/EventDispatcher.js", "pandav:/src/cameras/PerspectiveCamera.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector4.js", "pandav:/src/renderers/webgl/WebGLAnimation.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/renderers/webxr/WebXRController.js", "pandav:/src/textures/DepthTexture.js", "pandav:/src/constants.js" ], "buildLevel": 33, "outputDir": "/com/three/0.145.0/src/renderers/webxr", "outputPath": "/com/three/0.145.0/src/renderers/webxr/WebXRManager.js", "fileName": "/src/renderers/webxr/WebXRManager.js" }, "pandav:/src/scenes/Scene.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/scenes/Scene\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/get\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/Object3D\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Scene = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _get2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/get'));\n var _getPrototypeOf2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/getPrototypeOf'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Object3D2 = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var Scene = exports.Scene = function (_Object3D) {\n (0, _inherits2.default)(Scene, _Object3D);\n var _super = (0, _createSuper2.default)(Scene);\n function Scene() {\n var _this;\n (0, _classCallCheck2.default)(this, Scene);\n _this = _super.call(this);\n _this.isScene = true;\n _this.type = 'Scene';\n _this.background = null;\n _this.environment = null;\n _this.fog = null;\n _this.envMapRotateY = -Math.PI;\n _this.envMapIntensity = 1.0;\n _this.backgroundRotateY = 0;\n _this.backgorundIntensity = 1;\n _this.overrideMaterial = null;\n if (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\n detail: (0, _assertThisInitialized2.default)(_this) }));\n\n }\n return _this;\n }\n (0, _createClass2.default)(Scene, [{\n key: \"copy\",\n value: function copy(source, recursive) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Scene.prototype), \"copy\", this).call(this, source, recursive);\n if (source.background !== null) this.background = source.background.clone();\n if (source.environment !== null) this.environment = source.environment.clone();\n if (source.fog !== null) this.fog = source.fog.clone();\n this.envMapRotateY = source.envMapRotateY;\n this.envMapIntensity = source.envMapIntensity;\n if (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone();\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON(meta) {\n var data = (0, _get2.default)((0, _getPrototypeOf2.default)(Scene.prototype), \"toJSON\", this).call(this, meta);\n if (this.fog !== null) data.object.fog = this.fog.toJSON();\n return data;\n } },\n {\n key: \"autoUpdate\",\n get: function get() {\n console.warn('THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144.');\n return this.matrixWorldAutoUpdate;\n },\n set: function set(value) {\n console.warn('THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144.');\n this.matrixWorldAutoUpdate = value;\n } }]);\n\n return Scene;\n }(_Object3D2.Object3D);return module.exports;});", "requires": [ "pandav:/src/core/Object3D.js" ], "buildLevel": 12, "outputDir": "/com/three/0.145.0/src/scenes", "outputPath": "/com/three/0.145.0/src/scenes/Scene.js", "fileName": "/src/scenes/Scene.js" }, "pandav:/src/textures/CanvasTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/CanvasTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CanvasTexture = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var CanvasTexture = exports.CanvasTexture = function (_Texture) {\n (0, _inherits2.default)(CanvasTexture, _Texture);\n var _super = (0, _createSuper2.default)(CanvasTexture);\n function CanvasTexture(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n var _this;\n (0, _classCallCheck2.default)(this, CanvasTexture);\n _this = _super.call(this, canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n _this.isCanvasTexture = true;\n _this.needsUpdate = true;\n return _this;\n }\n return (0, _createClass2.default)(CanvasTexture);\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js" ], "buildLevel": 24, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/CanvasTexture.js", "fileName": "/src/textures/CanvasTexture.js" }, "pandav:/src/textures/CubeTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/CubeTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CubeTexture = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var CubeTexture = exports.CubeTexture = function (_Texture) {\n (0, _inherits2.default)(CubeTexture, _Texture);\n var _super = (0, _createSuper2.default)(CubeTexture);\n function CubeTexture(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) {\n var _this;\n (0, _classCallCheck2.default)(this, CubeTexture);\n images = images !== undefined ? images : [];\n mapping = mapping !== undefined ? mapping : _constants.CubeReflectionMapping;\n _this = _super.call(this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\n _this.isCubeTexture = true;\n _this.flipY = false;\n return _this;\n }\n (0, _createClass2.default)(CubeTexture, [{\n key: \"images\",\n get: function get() {\n return this.image;\n },\n set: function set(value) {\n this.image = value;\n } }]);\n\n return CubeTexture;\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js", "pandav:/src/constants.js" ], "buildLevel": 12, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/CubeTexture.js", "fileName": "/src/textures/CubeTexture.js" }, "pandav:/src/textures/CompressedTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/CompressedTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.CompressedTexture = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var CompressedTexture = exports.CompressedTexture = function (_Texture) {\n (0, _inherits2.default)(CompressedTexture, _Texture);\n var _super = (0, _createSuper2.default)(CompressedTexture);\n function CompressedTexture(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding) {\n var _this;\n (0, _classCallCheck2.default)(this, CompressedTexture);\n _this = _super.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\n _this.isCompressedTexture = true;\n _this.image = {\n width: width,\n height: height };\n\n _this.mipmaps = mipmaps;\n _this.flipY = false;\n _this.generateMipmaps = false;\n return _this;\n }\n return (0, _createClass2.default)(CompressedTexture);\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js" ], "buildLevel": 23, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/CompressedTexture.js", "fileName": "/src/textures/CompressedTexture.js" }, "pandav:/src/textures/DataArrayTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/DataArrayTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DataArrayTexture = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var DataArrayTexture = exports.DataArrayTexture = function (_Texture) {\n (0, _inherits2.default)(DataArrayTexture, _Texture);\n var _super = (0, _createSuper2.default)(DataArrayTexture);\n function DataArrayTexture() {\n var _this;\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n (0, _classCallCheck2.default)(this, DataArrayTexture);\n _this = _super.call(this, null);\n _this.isDataArrayTexture = true;\n _this.image = {\n data: data,\n width: width,\n height: height,\n depth: depth };\n\n _this.magFilter = _constants.NearestFilter;\n _this.minFilter = _constants.NearestFilter;\n _this.wrapR = _constants.ClampToEdgeWrapping;\n _this.generateMipmaps = false;\n _this.flipY = false;\n _this.unpackAlignment = 1;\n return _this;\n }\n return (0, _createClass2.default)(DataArrayTexture);\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js", "pandav:/src/constants.js" ], "buildLevel": 6, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/DataArrayTexture.js", "fileName": "/src/textures/DataArrayTexture.js" }, "pandav:/src/textures/DataTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/DataTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DataTexture = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var DataTexture = exports.DataTexture = function (_Texture) {\n (0, _inherits2.default)(DataTexture, _Texture);\n var _super = (0, _createSuper2.default)(DataTexture);\n function DataTexture() {\n var _this;\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var format = arguments.length > 3 ? arguments[3] : undefined;\n var type = arguments.length > 4 ? arguments[4] : undefined;\n var mapping = arguments.length > 5 ? arguments[5] : undefined;\n var wrapS = arguments.length > 6 ? arguments[6] : undefined;\n var wrapT = arguments.length > 7 ? arguments[7] : undefined;\n var magFilter = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : _constants.NearestFilter;\n var minFilter = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : _constants.NearestFilter;\n var anisotropy = arguments.length > 10 ? arguments[10] : undefined;\n var encoding = arguments.length > 11 ? arguments[11] : undefined;\n (0, _classCallCheck2.default)(this, DataTexture);\n _this = _super.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\n _this.isDataTexture = true;\n _this.image = {\n data: data,\n width: width,\n height: height };\n\n _this.generateMipmaps = false;\n _this.flipY = false;\n _this.unpackAlignment = 1;\n return _this;\n }\n return (0, _createClass2.default)(DataTexture);\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js", "pandav:/src/constants.js" ], "buildLevel": 18, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/DataTexture.js", "fileName": "/src/textures/DataTexture.js" }, "pandav:/src/textures/Data3DTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/Data3DTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Data3DTexture = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var Data3DTexture = exports.Data3DTexture = function (_Texture) {\n (0, _inherits2.default)(Data3DTexture, _Texture);\n var _super = (0, _createSuper2.default)(Data3DTexture);\n function Data3DTexture() {\n var _this;\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n (0, _classCallCheck2.default)(this, Data3DTexture);\n _this = _super.call(this, null);\n _this.isData3DTexture = true;\n _this.image = {\n data: data,\n width: width,\n height: height,\n depth: depth };\n\n _this.magFilter = _constants.NearestFilter;\n _this.minFilter = _constants.NearestFilter;\n _this.wrapR = _constants.ClampToEdgeWrapping;\n _this.generateMipmaps = false;\n _this.flipY = false;\n _this.unpackAlignment = 1;\n return _this;\n }\n return (0, _createClass2.default)(Data3DTexture);\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js", "pandav:/src/constants.js" ], "buildLevel": 6, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/Data3DTexture.js", "fileName": "/src/textures/Data3DTexture.js" }, "pandav:/src/renderers/WebGLRenderer.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/renderers/WebGLRenderer\", [\"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/Frustum\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAnimation\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAttributes\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBackground\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBindingStates\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBufferRenderer\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCapabilities\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLClipping\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCubeMaps\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCubeUVMaps\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLExtensions\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLGeometries\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLIndexedBufferRenderer\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLInfo\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLMorphtargets\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLObjects\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLPrograms\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLProperties\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLRenderLists\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLRenderStates\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShadowMap\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLState\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLTextures\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniforms\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUtils\", \"pandav:/com/three/0.145.0/src/renderers/webxr/WebXRManager\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLMaterials\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniformsGroups\", \"pandav:/com/three/0.145.0/src/utils\", \"pandav:/com/three/0.145.0/src/objects/HTMLObjectMgr\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderProcesser\", \"pandav:/com/three/0.145.0/src/postprocessing/CopyPass\", \"pandav:/com/three/0.145.0/src/math/Color\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.WebGLRenderer = WebGLRenderer;\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Frustum = require('pandav:/com/three/0.145.0/src/math/Frustum');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector3 = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _WebGLAnimation = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAnimation');\n var _WebGLAttributes = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLAttributes');\n var _WebGLBackground = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBackground');\n var _WebGLBindingStates = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBindingStates');\n var _WebGLBufferRenderer = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLBufferRenderer');\n var _WebGLCapabilities = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCapabilities');\n var _WebGLClipping = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLClipping');\n var _WebGLCubeMaps = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCubeMaps');\n var _WebGLCubeUVMaps = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLCubeUVMaps');\n var _WebGLExtensions = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLExtensions');\n var _WebGLGeometries = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLGeometries');\n var _WebGLIndexedBufferRenderer = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLIndexedBufferRenderer');\n var _WebGLInfo = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLInfo');\n var _WebGLMorphtargets = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLMorphtargets');\n var _WebGLObjects = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLObjects');\n var _WebGLPrograms = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLPrograms');\n var _WebGLProperties = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLProperties');\n var _WebGLRenderLists = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLRenderLists');\n var _WebGLRenderStates = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLRenderStates');\n var _WebGLShadowMap = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLShadowMap');\n var _WebGLState = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLState');\n var _WebGLTextures = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLTextures');\n var _WebGLUniforms = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniforms');\n var _WebGLUtils = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUtils');\n var _WebXRManager = require('pandav:/com/three/0.145.0/src/renderers/webxr/WebXRManager');\n var _WebGLMaterials = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLMaterials');\n var _WebGLUniformsGroups = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUniformsGroups');\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n var _HTMLObjectMgr = require('pandav:/com/three/0.145.0/src/objects/HTMLObjectMgr');\n var _WebGLRenderProcesser = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderProcesser');\n var _CopyPass = require('pandav:/com/three/0.145.0/src/postprocessing/CopyPass');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n function createCanvasElement() {\n var canvas = (0, _utils.createElementNS)('canvas');\n canvas.style.display = 'block';\n return canvas;\n }\n function WebGLRenderer() {\n var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this = this;\n this.isWebGLRenderer = true;\n this.viewHeight = 1;\n var _canvas = parameters.canvas !== undefined ? parameters.canvas : createCanvasElement(),\n _context = parameters.context !== undefined ? parameters.context : null,\n _depth = parameters.depth !== undefined ? parameters.depth : true,\n _stencil = parameters.stencil !== undefined ? parameters.stencil : false,\n _antialias = parameters.antialias !== undefined ? parameters.antialias : false,\n _premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true,\n _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false,\n _powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default',\n _failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== undefined ? parameters.failIfMajorPerformanceCaveat : false;\n var _alpha;\n if (_context !== null) {\n _alpha = _context.getContextAttributes().alpha;\n } else {\n _alpha = parameters.alpha !== undefined ? parameters.alpha : false;\n }\n var currentRenderList = null;\n var currentRenderState = null;\n var deferredScene = null;\n var deferredRenderState = null;\n var renderListStack = [];\n var renderStateStack = [];\n this.domElement = _canvas;\n this.debug = {\n checkShaderErrors: true };\n\n this.copyPass = null;\n this.autoClear = false;\n this.autoClearColor = false;\n this.autoClearDepth = false;\n this.autoClearStencil = false;\n this.sortObjects = true;\n this.clippingPlanes = [];\n this.localClippingEnabled = false;\n this.outputEncoding = _constants.LinearEncoding;\n this.physicallyCorrectLights = false;\n this.toneMapping = _constants.NoToneMapping;\n this.toneMappingExposure = 1.0;\n this.pcssDefines = {\n PCSS_LIGHT_WORLD_SIZE: 0.01,\n PCSS_LIGHT_FRUSTUM_WIDTH: 10.75,\n PCSS_NEAR_PLANE: 9.5,\n PCSS_NUM_SAMPLES: 17,\n PCSS_NUM_RINGS: 11 };\n\n this.projectionJitter = new _Vector.Vector2(0, 0);\n Object.defineProperties(this, {\n gammaFactor: {\n get: function get() {\n console.warn('THREE.WebGLRenderer: .gammaFactor has been removed.');\n return 2;\n },\n set: function set() {\n console.warn('THREE.WebGLRenderer: .gammaFactor has been removed.');\n } } });\n\n\n var _isContextLost = false;\n var _currentActiveCubeFace = 0;\n var _currentActiveMipmapLevel = 0;\n var _currentRenderTarget = null;\n var _currentMaterialId = -1;\n var _currentCamera = null;\n var _currentViewport = new _Vector3.Vector4();\n var _currentScissor = new _Vector3.Vector4();\n var _currentScissorTest = null;\n var _width = _canvas.width;\n var _height = _canvas.height;\n var _pixelRatio = 1;\n var _opaqueSort = null;\n var _transparentSort = null;\n var _viewport = new _Vector3.Vector4(0, 0, _width, _height);\n var _scissor = new _Vector3.Vector4(0, 0, _width, _height);\n var _scissorTest = false;\n var _frustum = new _Frustum.Frustum();\n var _clippingEnabled = false;\n var _localClippingEnabled = false;\n var _projScreenMatrix = new _Matrix.Matrix4();\n var _vector2 = new _Vector.Vector2();\n var _vector3 = new _Vector2.Vector3();\n var _emptyScene = {\n background: null,\n fog: null,\n environment: null,\n overrideMaterial: null,\n isScene: true };\n\n function getTargetPixelRatio() {\n return _currentRenderTarget === null ? _pixelRatio : 1;\n }\n var _gl = _context;\n function getContext(contextNames, contextAttributes) {\n for (var i = 0; i < contextNames.length; i++) {\n var contextName = contextNames[i];\n var context = _canvas.getContext(contextName, contextAttributes);\n if (context !== null) return context;\n }\n return null;\n }\n try {\n var contextAttributes = {\n alpha: true,\n depth: _depth,\n stencil: _stencil,\n antialias: _antialias,\n premultipliedAlpha: _premultipliedAlpha,\n preserveDrawingBuffer: _preserveDrawingBuffer,\n powerPreference: _powerPreference,\n failIfMajorPerformanceCaveat: _failIfMajorPerformanceCaveat };\n\n if ('setAttribute' in _canvas) _canvas.setAttribute('data-engine', \"three.js r\".concat(_constants.REVISION));\n _canvas.addEventListener('webglcontextlost', onContextLost, false);\n _canvas.addEventListener('webglcontextrestored', onContextRestore, false);\n _canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false);\n if (_gl === null) {\n var contextNames = ['webgl2', 'webgl', 'experimental-webgl'];\n if (_this.isWebGL1Renderer === true) {\n contextNames.shift();\n }\n _gl = getContext(contextNames, contextAttributes);\n if (_gl === null) {\n if (getContext(contextNames)) {\n throw new Error('Error creating WebGL context with your selected attributes.');\n } else {\n throw new Error('Error creating WebGL context.');\n }\n }\n }\n if (_gl.getShaderPrecisionFormat === undefined) {\n _gl.getShaderPrecisionFormat = function () {\n return {\n rangeMin: 1,\n rangeMax: 1,\n precision: 1 };\n\n };\n }\n } catch (error) {\n console.error('THREE.WebGLRenderer: ' + error.message);\n throw error;\n }\n var extensions, capabilities, state, info;\n var properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n var programCache, materials, renderLists, renderStates, clipping, shadowMap;\n var background, morphtargets, bufferRenderer, indexedBufferRenderer;\n var utils, bindingStates, uniformsGroups;\n var htmlObjectMgr;\n function initGLContext() {\n extensions = new _WebGLExtensions.WebGLExtensions(_gl);\n capabilities = new _WebGLCapabilities.WebGLCapabilities(_gl, extensions, parameters);\n extensions.init(capabilities);\n utils = new _WebGLUtils.WebGLUtils(_gl, extensions, capabilities);\n state = new _WebGLState.WebGLState(_gl, extensions, capabilities);\n info = new _WebGLInfo.WebGLInfo(_gl);\n properties = new _WebGLProperties.WebGLProperties();\n textures = new _WebGLTextures.WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info);\n cubemaps = new _WebGLCubeMaps.WebGLCubeMaps(_this);\n cubeuvmaps = new _WebGLCubeUVMaps.WebGLCubeUVMaps(_this);\n attributes = new _WebGLAttributes.WebGLAttributes(_gl, capabilities);\n bindingStates = new _WebGLBindingStates.WebGLBindingStates(_gl, extensions, attributes, capabilities);\n geometries = new _WebGLGeometries.WebGLGeometries(_gl, attributes, info, bindingStates);\n objects = new _WebGLObjects.WebGLObjects(_gl, geometries, attributes, info);\n morphtargets = new _WebGLMorphtargets.WebGLMorphtargets(_gl, capabilities, textures);\n clipping = new _WebGLClipping.WebGLClipping(properties);\n programCache = new _WebGLPrograms.WebGLPrograms(_this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping);\n materials = new _WebGLMaterials.WebGLMaterials(_this, properties);\n renderLists = new _WebGLRenderLists.WebGLRenderLists(_this);\n renderStates = new _WebGLRenderStates.WebGLRenderStates(extensions, capabilities);\n background = new _WebGLBackground.WebGLBackground(_this, cubemaps, state, objects, _alpha, _premultipliedAlpha);\n shadowMap = new _WebGLShadowMap.WebGLShadowMap(_this, objects, capabilities);\n uniformsGroups = new _WebGLUniformsGroups.WebGLUniformsGroups(_gl, info, capabilities, state);\n bufferRenderer = new _WebGLBufferRenderer.WebGLBufferRenderer(_gl, extensions, info, capabilities);\n indexedBufferRenderer = new _WebGLIndexedBufferRenderer.WebGLIndexedBufferRenderer(_gl, extensions, info, capabilities);\n htmlObjectMgr = new _HTMLObjectMgr.HTMLObjectMgr(parameters.htmlContainer || document.body);\n info.programs = programCache.programs;\n _this.capabilities = capabilities;\n _this.extensions = extensions;\n _this.properties = properties;\n _this.renderLists = renderLists;\n _this.shadowMap = shadowMap;\n _this.state = state;\n _this.info = info;\n _this.htmlObjectMgr = htmlObjectMgr;\n _this.renderStates = renderStates;\n _this.webglTextures = textures;\n }\n initGLContext();\n var xr = new _WebXRManager.WebXRManager(_this, _gl);\n this.xr = xr;\n this.getContext = function () {\n return _gl;\n };\n this.getContextAttributes = function () {\n return _gl.getContextAttributes();\n };\n this.forceContextLoss = function () {\n var extension = extensions.get('WEBGL_lose_context');\n if (extension) extension.loseContext();\n };\n this.forceContextRestore = function () {\n var extension = extensions.get('WEBGL_lose_context');\n if (extension) extension.restoreContext();\n };\n this.getPixelRatio = function () {\n return _pixelRatio;\n };\n this.setPixelRatio = function (value) {\n if (value === undefined) return;\n _pixelRatio = value;\n this.setSize(_width, _height, false);\n };\n this.getSize = function (target) {\n return target.set(_width, _height);\n };\n this.setSize = function (width, height, updateStyle) {\n if (xr.isPresenting) {\n console.warn('THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.');\n return;\n }\n _width = width;\n _height = height;\n _canvas.width = Math.floor(width * _pixelRatio);\n _canvas.height = Math.floor(height * _pixelRatio);\n this.viewHeight = _canvas.height;\n if (updateStyle !== false) {\n _canvas.style.width = width + 'px';\n _canvas.style.height = height + 'px';\n }\n this.setViewport(0, 0, width, height);\n htmlObjectMgr.setSize(width, height);\n renderProcesser.setSize(width * _pixelRatio, height * _pixelRatio);\n };\n this.getDrawingBufferSize = function (target) {\n return target.set(_width * _pixelRatio, _height * _pixelRatio).floor();\n };\n this.setDrawingBufferSize = function (width, height, pixelRatio) {\n _width = width;\n _height = height;\n _pixelRatio = pixelRatio;\n _canvas.width = Math.floor(width * pixelRatio);\n _canvas.height = Math.floor(height * pixelRatio);\n this.viewHeight = _canvas.height;\n this.setViewport(0, 0, width, height);\n };\n this._deferredRenderEnabled = false;\n Object.defineProperty(this, \"deferredRenderEnabled\", {\n enumerable: true,\n configurable: false,\n get: function get() {\n return _this._deferredRenderEnabled;\n },\n set: function set(v) {\n if (_this._deferredRenderEnabled !== v) {\n _this._deferredRenderEnabled = v;\n renderProcesser.refreshComposer();\n }\n } });\n\n var renderProcesser = new _WebGLRenderProcesser.WebGLRenderProcesser(this, _width * _pixelRatio, _height * _pixelRatio);\n this.renderProcesser = renderProcesser;\n this.getCurrentViewport = function (target) {\n return target.copy(_currentViewport);\n };\n this.getViewport = function (target) {\n return target.copy(_viewport);\n };\n this.setViewport = function (x, y, width, height) {\n if (x.isVector4) {\n _viewport.set(x.x, x.y, x.z, x.w);\n } else {\n _viewport.set(x, y, width, height);\n }\n state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor());\n };\n this.getScissor = function (target) {\n return target.copy(_scissor);\n };\n this.setScissor = function (x, y, width, height) {\n if (x.isVector4) {\n _scissor.set(x.x, x.y, x.z, x.w);\n } else {\n _scissor.set(x, y, width, height);\n }\n state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor());\n };\n this.getScissorTest = function () {\n return _scissorTest;\n };\n this.setScissorTest = function (_boolean) {\n state.setScissorTest(_scissorTest = _boolean);\n };\n this.setOpaqueSort = function (method) {\n _opaqueSort = method;\n };\n this.setTransparentSort = function (method) {\n _transparentSort = method;\n };\n this.getClearColor = function (target) {\n return target.copy(background.getClearColor());\n };\n this.setClearColor = function () {\n background.setClearColor.apply(background, arguments);\n };\n this.getClearAlpha = function () {\n return background.getClearAlpha();\n };\n this.setClearAlpha = function () {\n background.setClearAlpha.apply(background, arguments);\n };\n this.clear = function () {\n var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var stencil = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var bits = 0;\n if (color) bits |= _gl.COLOR_BUFFER_BIT;\n if (depth) bits |= _gl.DEPTH_BUFFER_BIT;\n if (stencil) bits |= _gl.STENCIL_BUFFER_BIT;\n _gl.clear(bits);\n };\n this.clearColor = function () {\n this.clear(true, false, false);\n };\n this.clearDepth = function () {\n this.clear(false, true, false);\n };\n this.clearStencil = function () {\n this.clear(false, false, true);\n };\n this.dispose = function () {\n var _this$copyPass;\n _canvas.removeEventListener('webglcontextlost', onContextLost, false);\n _canvas.removeEventListener('webglcontextrestored', onContextRestore, false);\n _canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false);\n renderLists.dispose();\n renderStates.dispose();\n properties.dispose();\n cubemaps.dispose();\n cubeuvmaps.dispose();\n objects.dispose();\n bindingStates.dispose();\n uniformsGroups.dispose();\n programCache.dispose();\n xr.dispose();\n xr.removeEventListener('sessionstart', onXRSessionStart);\n xr.removeEventListener('sessionend', onXRSessionEnd);\n animation.stop();\n htmlObjectMgr.dispose();\n renderProcesser.dispose();\n (_this$copyPass = _this.copyPass) === null || _this$copyPass === void 0 ? void 0 : _this$copyPass.dispose();\n shadowMap.dispose();\n };\n function onContextLost(event) {\n event.preventDefault();\n console.log('THREE.WebGLRenderer: Context Lost.');\n _isContextLost = true;\n }\n function onContextRestore() {\n console.log('THREE.WebGLRenderer: Context Restored.');\n _isContextLost = false;\n var infoAutoReset = info.autoReset;\n var shadowMapEnabled = shadowMap.enabled;\n var shadowMapAutoUpdate = shadowMap.autoUpdate;\n var shadowMapNeedsUpdate = shadowMap.needsUpdate;\n var shadowMapType = shadowMap.type;\n initGLContext();\n info.autoReset = infoAutoReset;\n shadowMap.enabled = shadowMapEnabled;\n shadowMap.autoUpdate = shadowMapAutoUpdate;\n shadowMap.needsUpdate = shadowMapNeedsUpdate;\n shadowMap.type = shadowMapType;\n }\n function onContextCreationError(event) {\n console.error('THREE.WebGLRenderer: A WebGL context could not be created. Reason: ', event.statusMessage);\n }\n function onMaterialDispose(event) {\n var material = event.target;\n material.removeEventListener('dispose', onMaterialDispose);\n deallocateMaterial(material);\n }\n function deallocateMaterial(material) {\n releaseMaterialProgramReferences(material);\n properties.remove(material);\n }\n function releaseMaterialProgramReferences(material) {\n var programs = properties.get(material).programs;\n if (programs !== undefined) {\n programs.forEach(function (program) {\n programCache.releaseProgram(program);\n });\n if (material.isShaderMaterial) {\n programCache.releaseShaderCache(material);\n }\n }\n }\n this.renderBufferDirect = function (camera, scene, geometry, material, object, group) {\n if (scene === null) scene = _emptyScene;else if (deferredScene !== null) scene = deferredScene;\n var frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0;\n var program = setProgram(camera, scene, geometry, material, object);\n state.setMaterial(material, frontFaceCW);\n var index = geometry.index;\n var position = geometry.attributes.position;\n if (index === null) {\n if (position === undefined || position.count === 0) return;\n } else if (index.count === 0) {\n return;\n }\n var rangeFactor = 1;\n if (material.wireframe === true) {\n index = geometries.getWireframeAttribute(geometry);\n rangeFactor = 2;\n }\n bindingStates.setup(object, material, program, geometry, index);\n var attribute;\n var renderer = bufferRenderer;\n if (index !== null) {\n attribute = attributes.get(index);\n renderer = indexedBufferRenderer;\n renderer.setIndex(attribute);\n }\n var dataCount = index !== null ? index.count : position.count;\n var rangeStart = geometry.drawRange.start * rangeFactor;\n var rangeCount = geometry.drawRange.count * rangeFactor;\n var groupStart = group !== null ? group.start * rangeFactor : 0;\n var groupCount = group !== null ? group.count * rangeFactor : Infinity;\n var drawStart = Math.max(rangeStart, groupStart);\n var drawEnd = Math.min(dataCount, rangeStart + rangeCount, groupStart + groupCount) - 1;\n var drawCount = Math.max(0, drawEnd - drawStart + 1);\n if (drawCount === 0) return;\n if (object.isMesh) {\n if (material.wireframe === true) {\n state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio());\n renderer.setMode(_gl.LINES);\n } else {\n renderer.setMode(_gl.TRIANGLES);\n }\n } else if (object.isLine) {\n var lineWidth = material.linewidth;\n if (lineWidth === undefined) lineWidth = 1;\n state.setLineWidth(lineWidth * getTargetPixelRatio());\n if (object.isLineSegments) {\n renderer.setMode(_gl.LINES);\n } else if (object.isLineLoop) {\n renderer.setMode(_gl.LINE_LOOP);\n } else {\n renderer.setMode(_gl.LINE_STRIP);\n }\n } else if (object.isPoints) {\n renderer.setMode(_gl.POINTS);\n } else if (object.isSprite) {\n renderer.setMode(_gl.TRIANGLES);\n }\n if (object.isInstancedMesh) {\n renderer.renderInstances(drawStart, drawCount, object.count);\n } else if (geometry.isInstancedBufferGeometry) {\n var instanceCount = Math.min(geometry.instanceCount, geometry._maxInstanceCount);\n renderer.renderInstances(drawStart, drawCount, instanceCount);\n } else {\n renderer.render(drawStart, drawCount);\n }\n };\n this.compile = function (scene, camera) {\n function prepare(material, scene, object) {\n if (material.transparent === true && material.side === _constants.DoubleSide) {\n material.side = _constants.BackSide;\n material.needsUpdate = true;\n getProgram(material, scene, object);\n material.side = _constants.FrontSide;\n material.needsUpdate = true;\n getProgram(material, scene, object);\n material.side = _constants.DoubleSide;\n } else {\n getProgram(material, scene, object);\n }\n }\n currentRenderState = renderStates.get(scene);\n currentRenderState.init();\n renderStateStack.push(currentRenderState);\n scene.traverseVisible(function (object) {\n if (object.isLight && object.layers.test(camera.layers)) {\n currentRenderState.pushLight(object);\n if (object.castShadow) {\n currentRenderState.pushShadow(object);\n }\n }\n });\n currentRenderState.setupLights(_this.physicallyCorrectLights);\n scene.traverse(function (object) {\n var material = object.material;\n if (material) {\n if (Array.isArray(material)) {\n for (var i = 0; i < material.length; i++) {\n var material2 = material[i];\n prepare(material2, scene, object);\n }\n } else {\n prepare(material, scene, object);\n }\n }\n });\n renderStateStack.pop();\n currentRenderState = null;\n };\n var onAnimationFrameCallback = null;\n function onAnimationFrame(time) {\n if (onAnimationFrameCallback) onAnimationFrameCallback(time);\n }\n function onXRSessionStart() {\n animation.stop();\n }\n function onXRSessionEnd() {\n animation.start();\n }\n var animation = new _WebGLAnimation.WebGLAnimation();\n animation.setAnimationLoop(onAnimationFrame);\n if (typeof self !== 'undefined') animation.setContext(self);\n this.setAnimationLoop = function (callback) {\n onAnimationFrameCallback = callback;\n xr.setAnimationLoop(callback);\n callback === null ? animation.stop() : animation.start();\n };\n xr.addEventListener('sessionstart', onXRSessionStart);\n xr.addEventListener('sessionend', onXRSessionEnd);\n this.copyTextureToRenderTarget = function (texture, renderTarget, clear, sRGBToLinear, transparent) {\n if (_this.copyPass === null) {\n _this.copyPass = new _CopyPass.CopyPass();\n }\n _this.copyPass.copy(_this, texture, renderTarget, clear, sRGBToLinear, transparent);\n };\n this.render = function (scene, camera, renderSceneParams) {\n if (camera !== undefined && camera.isCamera !== true) {\n console.error('THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.');\n return;\n }\n if (_isContextLost === true) return;\n if (scene.matrixWorldAutoUpdate === true) scene.updateMatrixWorld();\n if (camera.parent === null && camera.matrixWorldAutoUpdate === true) camera.updateMatrixWorld();\n if (xr.enabled === true && xr.isPresenting === true) {\n if (xr.cameraAutoUpdate === true) xr.updateCamera(camera);\n camera = xr.getCamera();\n }\n if (scene.isScene === true) scene.onBeforeRender(_this, scene, camera, _currentRenderTarget);\n deferredScene = renderSceneParams && renderSceneParams.deferredScene ? renderSceneParams.deferredScene : null;\n deferredRenderState = deferredScene ? renderStates.get(deferredScene, 0) : null;\n currentRenderState = renderStates.get(scene, renderStateStack.length);\n currentRenderState.init();\n renderStateStack.push(currentRenderState);\n _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n _frustum.setFromProjectionMatrix(_projScreenMatrix);\n _localClippingEnabled = this.localClippingEnabled;\n _clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled, camera);\n currentRenderList = renderLists.get(scene, renderListStack.length);\n currentRenderList.init();\n renderListStack.push(currentRenderList);\n projectObject(scene, camera, null, _this.sortObjects);\n currentRenderList.finish();\n if (_this.sortObjects === true) {\n currentRenderList.sort(_opaqueSort, _transparentSort);\n }\n if (_clippingEnabled === true) clipping.beginShadows();\n var shadowsArray = currentRenderState.state.shadowsArray;\n shadowMap.render(shadowsArray, scene, camera, currentRenderList);\n if (_clippingEnabled === true) clipping.endShadows();\n if (this.info.autoReset === true) this.info.reset();\n background.render(currentRenderList, scene);\n currentRenderState.setupLights(_this.physicallyCorrectLights);\n if (camera.isArrayCamera) {\n var cameras = camera.cameras;\n for (var i = 0, l = cameras.length; i < l; i++) {\n var camera2 = cameras[i];\n renderScene(currentRenderList, scene, camera2, camera2.viewport, renderSceneParams);\n }\n } else {\n renderScene(currentRenderList, scene, camera, undefined, renderSceneParams);\n }\n if (_currentRenderTarget !== null) {\n textures.updateMultisampleRenderTarget(_currentRenderTarget);\n textures.updateRenderTargetMipmap(_currentRenderTarget);\n }\n if (scene.isScene === true) scene.onAfterRender(_this, scene, camera);\n bindingStates.resetDefaultState();\n _currentMaterialId = -1;\n _currentCamera = null;\n renderStateStack.pop();\n if (renderStateStack.length > 0) {\n currentRenderState = renderStateStack[renderStateStack.length - 1];\n } else {\n currentRenderState = null;\n }\n renderListStack.pop();\n if (renderListStack.length > 0) {\n currentRenderList = renderListStack[renderListStack.length - 1];\n } else {\n currentRenderList = null;\n }\n };\n function projectObject(object, camera, groupOrder, sortObjects) {\n if (object.visible === false) return;\n var visible = object.layers.test(camera.layers);\n var childGroupOrder = null;\n if (visible) {\n if (object.isGroup) {\n childGroupOrder = object.renderOrder;\n } else if (object.isLOD) {\n if (object.autoUpdate === true) object.update(camera);\n } else if (object.isLight) {\n currentRenderState.pushLight(object);\n if (object.castShadow) {\n currentRenderState.pushShadow(object);\n }\n } else if (object.isSprite && object.geometry && object.material) {\n if (!object.frustumCulled || _frustum.intersectsSprite(object)) {\n if (sortObjects) {\n _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n }\n var geometry = objects.update(object);\n var material = object.material;\n if (material.visible) {\n currentRenderList.push(object, geometry, material, groupOrder, _vector3.z, null);\n }\n }\n } else if ((object.isMesh || object.isLine || object.isPoints) && object.geometry && object.material) {\n if (object.isSkinnedMesh) {\n if (object.skeleton.frame !== info.render.frame) {\n object.skeleton.update();\n object.skeleton.frame = info.render.frame;\n }\n }\n if (!object.frustumCulled || _frustum.intersectsObject(object)) {\n if (sortObjects) {\n _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n }\n var _geometry = objects.update(object);\n var _material = object.material;\n if (Array.isArray(_material)) {\n var groups = _geometry.groups;\n for (var i = 0, l = groups.length; i < l; i++) {\n var group = groups[i];\n var groupMaterial = _material[group.materialIndex];\n if (groupMaterial && groupMaterial.visible) {\n currentRenderList.push(object, _geometry, groupMaterial, groupOrder, _vector3.z, group);\n }\n }\n } else if (_material.visible) {\n currentRenderList.push(object, _geometry, _material, groupOrder, _vector3.z, null);\n }\n }\n } else if (object.isHTMLObject) {\n if (!object.frustumCulled || _frustum.containsPoint(object.getWorldPosition(tmpVec3_0))) {\n _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\n htmlObjectMgr.push(object, groupOrder, _vector3.z);\n }\n }\n }\n ;\n var children = object.children;\n for (var _i = 0, _l = children.length; _i < _l; _i++) {\n var _groupOrder = childGroupOrder === null ? groupOrder : childGroupOrder;\n projectObject(children[_i], camera, _groupOrder, sortObjects);\n }\n }\n var renderScene = function renderScene(currentRenderList, scene, camera, viewport, renderSceneParams) {\n currentRenderState.setupLightsView(camera);\n if (viewport) state.viewport(_currentViewport.copy(viewport));\n if (renderSceneParams && renderSceneParams.deferredRender) {\n renderProcesser.renderScene(currentRenderList, scene, camera);\n } else {\n var backgroundObjects = currentRenderList.background;\n var forwardOpaqueObjects = currentRenderList.forwardOpaque;\n var forwardTransparentObjects = currentRenderList.forwardTransparent;\n if (backgroundObjects.length > 0) _this.renderObjects(backgroundObjects, scene, camera);\n if (forwardOpaqueObjects.length > 0) _this.renderObjects(forwardOpaqueObjects, scene, camera);\n if (forwardTransparentObjects.length > 0) _this.renderObjects(forwardTransparentObjects, scene, camera);\n }\n state.buffers.depth.setTest(true);\n state.buffers.depth.setMask(true);\n state.buffers.color.setMask(true);\n state.setPolygonOffset(false);\n };\n this.renderObjects = function (renderList, scene, camera) {\n var overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n for (var i = 0, l = renderList.length; i < l; i++) {\n var renderItem = renderList[i];\n var object = renderItem.object;\n var geometry = renderItem.geometry;\n var material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n var group = renderItem.group;\n if (object.layers.test(camera.layers)) {\n renderObject(object, scene, camera, geometry, material, group);\n }\n }\n };\n function renderObject(object, scene, camera, geometry, material, group) {\n object.onBeforeRender(_this, scene, camera, geometry, material, group);\n object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);\n object.normalMatrix.getNormalMatrix(object.modelViewMatrix);\n material.onBeforeRender(_this, scene, camera, geometry, object, group);\n if (object.onRender) {\n object.onRender(_this, scene, camera, geometry, material, group);\n } else {\n _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n }\n object.onAfterRender(_this, scene, camera, geometry, material, group);\n }\n function getEnvMap(material, environment) {\n if (material.isMeshStandardMaterial) {\n return cubeuvmaps.get(material.envMap || environment);\n } else if (material.isDeferredRenderPassMaterial) {\n return cubeuvmaps.get(environment);\n } else {\n return cubemaps.get(material.envMap || environment);\n }\n }\n function getProgram(material, scene, object) {\n if (scene.isScene !== true) scene = _emptyScene;\n var materialProperties = properties.get(material);\n var lights = deferredRenderState ? deferredRenderState.state.lights : currentRenderState.state.lights;\n var shadowsArray = deferredRenderState ? deferredRenderState.state.shadowsArray : currentRenderState.state.shadowsArray;\n var lightsStateVersion = lights.state.version;\n var parameters = programCache.getParameters(material, lights.state, shadowsArray, scene, object);\n var programCacheKey = programCache.getProgramCacheKey(parameters);\n var programs = materialProperties.programs;\n materialProperties.environment = scene.environment;\n materialProperties.fog = scene.fog;\n materialProperties.envMap = getEnvMap(material, scene.environment);\n materialProperties.shadowMapType = shadowMap.type;\n materialProperties.shadowMapEnabled = shadowMap.enabled && shadowsArray.length > 0;\n materialProperties.pcssDefines = Object.assign({}, _this.pcssDefines);\n materialProperties.deferredRenderEnabled = _this._deferredRenderEnabled;\n if (programs === undefined) {\n material.addEventListener('dispose', onMaterialDispose);\n programs = new Map();\n materialProperties.programs = programs;\n }\n var program = programs.get(programCacheKey);\n if (program !== undefined) {\n if (materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion) {\n updateCommonMaterialProperties(material, parameters);\n return program;\n }\n } else {\n parameters.uniforms = programCache.getUniforms(material);\n material.onBuild(object, parameters, _this);\n material.onBeforeCompile(parameters, _this);\n program = programCache.acquireProgram(parameters, programCacheKey);\n programs.set(programCacheKey, program);\n materialProperties.uniforms = parameters.uniforms;\n }\n var uniforms = materialProperties.uniforms;\n if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) {\n uniforms.clippingPlanes = clipping.uniform;\n }\n updateCommonMaterialProperties(material, parameters);\n materialProperties.needsLights = materialNeedsLights(material);\n materialProperties.lightsStateVersion = lightsStateVersion;\n if (materialProperties.needsLights) {\n uniforms.ambientLightColor.value = lights.state.ambient;\n uniforms.lightProbe.value = lights.state.probe;\n uniforms.directionalLights.value = lights.state.directional;\n uniforms.directionalLightShadows.value = lights.state.directionalShadow;\n uniforms.spotLights.value = lights.state.spot;\n uniforms.spotLightShadows.value = lights.state.spotShadow;\n uniforms.rectAreaLights.value = lights.state.rectArea;\n uniforms.ltc_1.value = lights.state.rectAreaLTC1;\n uniforms.ltc_2.value = lights.state.rectAreaLTC2;\n uniforms.pointLights.value = lights.state.point;\n uniforms.pointLightShadows.value = lights.state.pointShadow;\n uniforms.hemisphereLights.value = lights.state.hemi;\n uniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n uniforms.spotShadowMap.value = lights.state.spotShadowMap;\n uniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n uniforms.spotLightMap.value = lights.state.spotLightMap;\n uniforms.pointShadowMap.value = lights.state.pointShadowMap;\n uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n }\n var progUniforms = program.getUniforms();\n var uniformsList = _WebGLUniforms.WebGLUniforms.seqWithValue(progUniforms.seq, uniforms);\n materialProperties.currentProgram = program;\n materialProperties.uniformsList = uniformsList;\n return program;\n }\n function updateCommonMaterialProperties(material, parameters) {\n var materialProperties = properties.get(material);\n materialProperties.outputEncoding = parameters.outputEncoding;\n materialProperties.instancing = parameters.instancing;\n materialProperties.skinning = parameters.skinning;\n materialProperties.morphTargets = parameters.morphTargets;\n materialProperties.morphNormals = parameters.morphNormals;\n materialProperties.morphColors = parameters.morphColors;\n materialProperties.morphTargetsCount = parameters.morphTargetsCount;\n materialProperties.numClippingPlanes = parameters.numClippingPlanes;\n materialProperties.numIntersection = parameters.numClipIntersection;\n materialProperties.vertexAlphas = parameters.vertexAlphas;\n materialProperties.vertexTangents = parameters.vertexTangents;\n materialProperties.toneMapping = parameters.toneMapping;\n }\n function setProgram(camera, scene, geometry, material, object) {\n if (scene.isScene !== true) scene = _emptyScene;\n textures.resetTextureUnits();\n var fog = scene.fog;\n var encoding = _this.getOutputEncoding();\n var envMap = getEnvMap(material, scene.environment);\n var vertexAlphas = material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n var vertexTangents = !!material.normalMap && !!geometry.attributes.tangent;\n var morphTargets = !!geometry.morphAttributes.position;\n var morphNormals = !!geometry.morphAttributes.normal;\n var morphColors = !!geometry.morphAttributes.color;\n var toneMapping = material.toneMapped ? _this.toneMapping : _constants.NoToneMapping;\n var shadowMapType = shadowMap.type;\n var shadowsArray = deferredRenderState ? deferredRenderState.state.shadowsArray : currentRenderState.state.shadowsArray;\n var shadowMapEnabled = shadowMap.enabled && shadowsArray.length > 0;\n var morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n var morphTargetsCount = morphAttribute !== undefined ? morphAttribute.length : 0;\n var materialProperties = properties.get(material);\n var lights = deferredRenderState ? deferredRenderState.state.lights : currentRenderState.state.lights;\n if (_clippingEnabled === true) {\n if (_localClippingEnabled === true || camera !== _currentCamera) {\n var useCache = camera === _currentCamera && material.id === _currentMaterialId;\n clipping.setState(material, camera, useCache);\n }\n }\n var needsProgramChange = false;\n if (material.version === materialProperties.__version) {\n if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) {\n needsProgramChange = true;\n } else if (materialProperties.outputEncoding !== encoding) {\n needsProgramChange = true;\n } else if (object.isInstancedMesh && materialProperties.instancing === false) {\n needsProgramChange = true;\n } else if (!object.isInstancedMesh && materialProperties.instancing === true) {\n needsProgramChange = true;\n } else if (object.isSkinnedMesh && materialProperties.skinning === false) {\n needsProgramChange = true;\n } else if (!object.isSkinnedMesh && materialProperties.skinning === true) {\n needsProgramChange = true;\n } else if (materialProperties.envMap !== envMap) {\n needsProgramChange = true;\n } else if (material.fog === true && materialProperties.fog !== fog) {\n needsProgramChange = true;\n } else if (materialProperties.numClippingPlanes !== undefined && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) {\n needsProgramChange = true;\n } else if (materialProperties.vertexAlphas !== vertexAlphas) {\n needsProgramChange = true;\n } else if (materialProperties.vertexTangents !== vertexTangents) {\n needsProgramChange = true;\n } else if (materialProperties.morphTargets !== morphTargets) {\n needsProgramChange = true;\n } else if (materialProperties.morphNormals !== morphNormals) {\n needsProgramChange = true;\n } else if (materialProperties.morphColors !== morphColors) {\n needsProgramChange = true;\n } else if (materialProperties.toneMapping !== toneMapping) {\n needsProgramChange = true;\n } else if (capabilities.isWebGL2 === true && materialProperties.morphTargetsCount !== morphTargetsCount) {\n needsProgramChange = true;\n } else if (materialProperties.shadowMapType !== shadowMapType || materialProperties.shadowMapEnabled !== shadowMapEnabled) {\n needsProgramChange = true;\n } else {\n if (!isDefinesEqual(materialProperties.pcssDefines, _this.pcssDefines)) {\n needsProgramChange = true;\n } else if (materialProperties.deferredRenderEnabled !== _this._deferredRenderEnabled) {\n needsProgramChange = true;\n }\n }\n } else {\n needsProgramChange = true;\n materialProperties.__version = material.version;\n }\n var program = materialProperties.currentProgram;\n if (needsProgramChange === true) {\n program = getProgram(material, scene, object);\n }\n var refreshProgram = false;\n var refreshMaterial = false;\n var refreshLights = false;\n var p_uniforms = program.getUniforms(),\n m_uniforms = materialProperties.uniforms;\n if (state.useProgram(program.program)) {\n refreshProgram = true;\n refreshMaterial = true;\n refreshLights = true;\n }\n if (material.id !== _currentMaterialId) {\n _currentMaterialId = material.id;\n refreshMaterial = true;\n }\n if (refreshProgram || _currentCamera !== camera) {\n p_uniforms.setValue(_gl, 'projectionMatrix', camera.projectionMatrix);\n if (capabilities.logarithmicDepthBuffer) {\n p_uniforms.setValue(_gl, 'logDepthBufFC', 2.0 / (Math.log(camera.far + 1.0) / Math.LN2));\n }\n if (_currentCamera !== camera) {\n _currentCamera = camera;\n refreshMaterial = true;\n refreshLights = true;\n }\n if (material.isShaderMaterial || material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshStandardMaterial || material.envMap) {\n var uCamPos = p_uniforms.map.cameraPosition;\n if (uCamPos !== undefined) {\n uCamPos.setValue(_gl, _vector3.setFromMatrixPosition(camera.matrixWorld));\n }\n }\n if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) {\n p_uniforms.setValue(_gl, 'isOrthographic', camera.isOrthographicCamera === true);\n }\n if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial || material.isShadowMaterial || object.isSkinnedMesh) {\n p_uniforms.setValue(_gl, 'viewMatrix', camera.matrixWorldInverse);\n }\n }\n p_uniforms.setValue(_gl, 'projectionJitter', _this.projectionJitter);\n if (object.isSkinnedMesh) {\n p_uniforms.setOptional(_gl, object, 'bindMatrix');\n p_uniforms.setOptional(_gl, object, 'bindMatrixInverse');\n var skeleton = object.skeleton;\n if (skeleton) {\n if (capabilities.floatVertexTextures) {\n if (skeleton.boneTexture === null) skeleton.computeBoneTexture();\n p_uniforms.setValue(_gl, 'boneTexture', skeleton.boneTexture, textures);\n p_uniforms.setValue(_gl, 'boneTextureSize', skeleton.boneTextureSize);\n } else {\n console.warn('THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required.');\n }\n }\n }\n var morphAttributes = geometry.morphAttributes;\n if (morphAttributes.position !== undefined || morphAttributes.normal !== undefined || morphAttributes.color !== undefined && capabilities.isWebGL2 === true) {\n morphtargets.update(object, geometry, material, program);\n }\n if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) {\n materialProperties.receiveShadow = object.receiveShadow;\n p_uniforms.setValue(_gl, 'receiveShadow', object.receiveShadow);\n }\n if (material.isMeshGouraudMaterial && material.envMap !== null) {\n m_uniforms.envMap.value = envMap;\n m_uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n }\n if (refreshMaterial) {\n p_uniforms.setValue(_gl, 'toneMappingExposure', _this.toneMappingExposure);\n if (materialProperties.needsLights) {\n markUniformsLightsNeedsUpdate(m_uniforms, refreshLights);\n }\n if (fog && material.fog === true) {\n materials.refreshFogUniforms(m_uniforms, fog);\n }\n materials.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height, renderProcesser.transmissionRenderTarget, renderProcesser.transmissionDepthRenderTarget, scene.envMapRotateY, scene.envMapIntensity);\n _WebGLUniforms.WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\n }\n if (material.isShaderMaterial && material.uniformsNeedUpdate === true) {\n _WebGLUniforms.WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\n material.uniformsNeedUpdate = false;\n }\n if (material.isSpriteMaterial) {\n p_uniforms.setValue(_gl, 'center', object.center);\n }\n p_uniforms.setValue(_gl, 'modelViewMatrix', object.modelViewMatrix);\n p_uniforms.setValue(_gl, 'normalMatrix', object.normalMatrix);\n p_uniforms.setValue(_gl, 'modelMatrix', object.matrixWorld);\n if (material.isShaderMaterial || material.isRawShaderMaterial) {\n var groups = material.uniformsGroups;\n for (var i = 0, l = groups.length; i < l; i++) {\n if (capabilities.isWebGL2) {\n var group = groups[i];\n uniformsGroups.update(group, program);\n uniformsGroups.bind(group, program);\n } else {\n console.warn('THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.');\n }\n }\n }\n return program;\n }\n function markUniformsLightsNeedsUpdate(uniforms, value) {\n uniforms.ambientLightColor.needsUpdate = value;\n uniforms.lightProbe.needsUpdate = value;\n uniforms.directionalLights.needsUpdate = value;\n uniforms.directionalLightShadows.needsUpdate = value;\n uniforms.pointLights.needsUpdate = value;\n uniforms.pointLightShadows.needsUpdate = value;\n uniforms.spotLights.needsUpdate = value;\n uniforms.spotLightShadows.needsUpdate = value;\n uniforms.rectAreaLights.needsUpdate = value;\n uniforms.hemisphereLights.needsUpdate = value;\n }\n function materialNeedsLights(material) {\n return material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true;\n }\n this.getOutputEncoding = function () {\n return null === _currentRenderTarget ? _this.outputEncoding : _currentRenderTarget.isWebGLRenderTarget ? _currentRenderTarget.outputEncoding : _constants.LinearEncoding;\n };\n this.getActiveCubeFace = function () {\n return _currentActiveCubeFace;\n };\n this.getActiveMipmapLevel = function () {\n return _currentActiveMipmapLevel;\n };\n this.getRenderTarget = function () {\n return _currentRenderTarget;\n };\n this.setRenderTargetTextures = function (renderTarget, colorTexture, depthTexture) {\n properties.get(renderTarget.texture).__webglTexture = colorTexture;\n properties.get(renderTarget.depthTexture).__webglTexture = depthTexture;\n var renderTargetProperties = properties.get(renderTarget);\n renderTargetProperties.__hasExternalTextures = true;\n if (renderTargetProperties.__hasExternalTextures) {\n renderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n if (!renderTargetProperties.__autoAllocateDepthBuffer) {\n if (extensions.has('WEBGL_multisampled_render_to_texture') === true) {\n console.warn('THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided');\n renderTargetProperties.__useRenderToTexture = false;\n }\n }\n }\n };\n this.setRenderTargetFramebuffer = function (renderTarget, defaultFramebuffer) {\n var renderTargetProperties = properties.get(renderTarget);\n renderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n renderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n };\n this.setRenderTarget = function (renderTarget) {\n var activeCubeFace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var activeMipmapLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n _currentRenderTarget = renderTarget;\n _currentActiveCubeFace = activeCubeFace;\n _currentActiveMipmapLevel = activeMipmapLevel;\n var useDefaultFramebuffer = true;\n if (renderTarget) {\n var renderTargetProperties = properties.get(renderTarget);\n if (renderTargetProperties.__useDefaultFramebuffer !== undefined) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n useDefaultFramebuffer = false;\n } else if (renderTargetProperties.__webglFramebuffer === undefined) {\n textures.setupRenderTarget(renderTarget);\n } else if (renderTargetProperties.__hasExternalTextures) {\n textures.rebindTextures(renderTarget, properties.get(renderTarget.texture).__webglTexture, properties.get(renderTarget.depthTexture).__webglTexture);\n }\n }\n var framebuffer = null;\n var isCube = false;\n var isRenderTarget3D = false;\n if (renderTarget) {\n var texture = renderTarget.texture;\n if (texture.isData3DTexture || texture.isDataArrayTexture) {\n isRenderTarget3D = true;\n }\n var __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer;\n if (renderTarget.isWebGLCubeRenderTarget) {\n framebuffer = __webglFramebuffer[activeCubeFace];\n isCube = true;\n } else if (capabilities.isWebGL2 && renderTarget.samples > 0 && textures.useMultisampledRTT(renderTarget) === false) {\n framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer;\n } else {\n framebuffer = __webglFramebuffer;\n }\n _currentViewport.copy(renderTarget.viewport);\n _currentScissor.copy(renderTarget.scissor);\n _currentScissorTest = renderTarget.scissorTest;\n } else {\n _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();\n _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();\n _currentScissorTest = _scissorTest;\n }\n var framebufferBound = state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n if (framebufferBound && capabilities.drawBuffers && useDefaultFramebuffer) {\n state.drawBuffers(renderTarget, framebuffer);\n }\n state.viewport(_currentViewport);\n state.scissor(_currentScissor);\n state.setScissorTest(_currentScissorTest);\n if (isCube) {\n var textureProperties = properties.get(renderTarget.texture);\n _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel);\n } else if (isRenderTarget3D) {\n var _textureProperties = properties.get(renderTarget.texture);\n var layer = activeCubeFace || 0;\n _gl.framebufferTextureLayer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _textureProperties.__webglTexture, activeMipmapLevel || 0, layer);\n }\n _currentMaterialId = -1;\n };\n this.readRenderTargetPixels = function (renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\n if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.');\n return;\n }\n var framebuffer = properties.get(renderTarget).__webglFramebuffer;\n if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined) {\n framebuffer = framebuffer[activeCubeFaceIndex];\n }\n if (framebuffer) {\n state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n try {\n var texture = renderTarget.texture;\n var textureFormat = texture.format;\n var textureType = texture.type;\n if (textureFormat !== _constants.RGBAFormat && utils.convert(textureFormat) !== _gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_FORMAT)) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.');\n return;\n }\n var halfFloatSupportedByExt = textureType === _constants.HalfFloatType && (extensions.has('EXT_color_buffer_half_float') || capabilities.isWebGL2 && extensions.has('EXT_color_buffer_float'));\n if (textureType !== _constants.UnsignedByteType && utils.convert(textureType) !== _gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_TYPE) && !(textureType === _constants.FloatType && (capabilities.isWebGL2 || extensions.has('OES_texture_float') || extensions.has('WEBGL_color_buffer_float'))) && !halfFloatSupportedByExt) {\n console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.');\n return;\n }\n if (x >= 0 && x <= renderTarget.width - width && y >= 0 && y <= renderTarget.height - height) {\n _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer);\n }\n } finally {\n var _framebuffer = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null;\n state.bindFramebuffer(_gl.FRAMEBUFFER, _framebuffer);\n }\n }\n };\n this.readPixels = function (x, y, width, height, buffer) {\n var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : _gl.RGBA;\n var type = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : _gl.UNSIGNED_BYTE;\n var dstOffset = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 0;\n _gl.readPixels(x, y, width, height, format, type, buffer, dstOffset);\n };\n this.copyFramebufferToTexture = function (position, texture) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var levelScale = Math.pow(2, -level);\n var width = Math.floor(texture.image.width * levelScale);\n var height = Math.floor(texture.image.height * levelScale);\n textures.setTexture2D(texture, 0);\n _gl.copyTexSubImage2D(_gl.TEXTURE_2D, level, 0, 0, position.x, position.y, width, height);\n state.unbindTexture();\n };\n this.copyTextureToTexture = function (position, srcTexture, dstTexture) {\n var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var width = srcTexture.image.width;\n var height = srcTexture.image.height;\n var glFormat = utils.convert(dstTexture.format);\n var glType = utils.convert(dstTexture.type);\n textures.setTexture2D(dstTexture, 0);\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n if (srcTexture.isDataTexture) {\n _gl.texSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data);\n } else {\n if (srcTexture.isCompressedTexture) {\n _gl.compressedTexSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, srcTexture.mipmaps[0].width, srcTexture.mipmaps[0].height, glFormat, srcTexture.mipmaps[0].data);\n } else {\n _gl.texSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, glFormat, glType, srcTexture.image);\n }\n }\n if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(_gl.TEXTURE_2D);\n state.unbindTexture();\n };\n this.copyTextureToTexture3D = function (sourceBox, position, srcTexture, dstTexture) {\n var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n if (_this.isWebGL1Renderer) {\n console.warn('THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.');\n return;\n }\n var width = sourceBox.max.x - sourceBox.min.x + 1;\n var height = sourceBox.max.y - sourceBox.min.y + 1;\n var depth = sourceBox.max.z - sourceBox.min.z + 1;\n var glFormat = utils.convert(dstTexture.format);\n var glType = utils.convert(dstTexture.type);\n var glTarget;\n if (dstTexture.isData3DTexture) {\n textures.setTexture3D(dstTexture, 0);\n glTarget = _gl.TEXTURE_3D;\n } else if (dstTexture.isDataArrayTexture) {\n textures.setTexture2DArray(dstTexture, 0);\n glTarget = _gl.TEXTURE_2D_ARRAY;\n } else {\n console.warn('THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.');\n return;\n }\n _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n var unpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH);\n var unpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);\n var unpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS);\n var unpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS);\n var unpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES);\n var image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[0] : srcTexture.image;\n _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width);\n _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height);\n _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, sourceBox.min.x);\n _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, sourceBox.min.y);\n _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, sourceBox.min.z);\n if (srcTexture.isDataTexture || srcTexture.isData3DTexture) {\n _gl.texSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image.data);\n } else {\n if (srcTexture.isCompressedTexture) {\n console.warn('THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.');\n _gl.compressedTexSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, image.data);\n } else {\n _gl.texSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image);\n }\n }\n _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, unpackRowLen);\n _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, unpackImageHeight);\n _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, unpackSkipPixels);\n _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, unpackSkipRows);\n _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, unpackSkipImages);\n if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(glTarget);\n state.unbindTexture();\n };\n this.blitRenderTarget = function (src, dst, mask, filter) {\n if (src !== null && (src.isWebGLCubeRenderTarget || src.isWebGLMultipleRenderTargets) || dst !== null && (dst.isWebGLCubeRenderTarget || dst.isWebGLMultipleRenderTargets)) {\n return;\n }\n var readFramebuffer, srcWidth, srcHeight;\n if (src) {\n var srcProperties = properties.get(src);\n if (srcProperties.__webglFramebuffer === undefined) {\n textures.setupRenderTarget(src);\n }\n readFramebuffer = srcProperties.__webglFramebuffer;\n srcWidth = src.width;\n srcHeight = src.height;\n } else {\n readFramebuffer = null;\n srcWidth = _width * _pixelRatio;\n srcHeight = _height * _pixelRatio;\n }\n var drawFramebuffer, dstWidth, dstHeight;\n if (dst) {\n var dstProperties = properties.get(dst);\n if (dstProperties.__webglFramebuffer === undefined) {\n textures.setupRenderTarget(dst);\n }\n drawFramebuffer = dstProperties.__webglFramebuffer;\n dstWidth = dst.width;\n dstHeight = dst.height;\n } else {\n drawFramebuffer = null;\n dstWidth = _width * _pixelRatio;\n dstHeight = _height * _pixelRatio;\n }\n _gl.bindFramebuffer(_gl.READ_FRAMEBUFFER, readFramebuffer);\n _gl.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, drawFramebuffer);\n _gl.blitFramebuffer(0, 0, srcWidth, srcHeight, 0, 0, dstWidth, dstHeight, mask, filter);\n };\n this.initTexture = function (texture) {\n if (texture.isCubeTexture) {\n textures.setTextureCube(texture, 0);\n } else if (texture.isData3DTexture) {\n textures.setTexture3D(texture, 0);\n } else if (texture.isDataArrayTexture) {\n textures.setTexture2DArray(texture, 0);\n } else {\n textures.setTexture2D(texture, 0);\n }\n state.unbindTexture();\n };\n this.resetState = function () {\n _currentActiveCubeFace = 0;\n _currentActiveMipmapLevel = 0;\n _currentRenderTarget = null;\n state.reset();\n bindingStates.reset();\n };\n this.toJSON = function () {\n var json = {};\n json.outputEncoding = this.outputEncoding;\n json.toneMapping = this.toneMapping;\n json.toneMappingExposure = this.toneMappingExposure;\n json.sortObjects = this.sortObjects;\n json.autoClear = this.autoClear;\n json.localClippingEnabled = this.localClippingEnabled;\n json.physicallyCorrectLights = this.physicallyCorrectLights;\n return json;\n };\n this.deserialize = function (data) {\n if (data.outputEncoding !== undefined) this.outputEncoding = data.outputEncoding;\n if (data.toneMapping !== undefined) this.toneMapping = data.toneMapping;\n if (data.toneMappingExposure !== undefined) this.toneMappingExposure = data.toneMappingExposure;\n if (data.sortObjects !== undefined) this.sortObjects = data.sortObjects;\n if (data.autoClear !== undefined) this.autoClear = data.autoClear;\n if (data.localClippingEnabled !== undefined) this.localClippingEnabled = data.localClippingEnabled;\n if (data.physicallyCorrectLights !== undefined) this.physicallyCorrectLights = data.physicallyCorrectLights;\n };\n if (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', {\n detail: this }));\n\n }\n this.clearRenderTarget = function (renderTarget) {\n var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Color.Color(0);\n var num = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var i = this.getClearColor(tmpVec3_1);\n var r = this.getClearAlpha();\n _this.setClearColor(color);\n _this.setClearAlpha(num);\n _this.setRenderTarget(renderTarget);\n _this.clear();\n _this.setClearColor(i);\n _this.setClearAlpha(r);\n _this.setRenderTarget(_currentRenderTarget);\n };\n }\n function isDefinesEqual(a, b) {\n for (var k in a) {\n if (b[k] !== a[k]) {\n return false;\n }\n }\n return true;\n }\n var tmpVec3_0 = new _Vector2.Vector3();\n var tmpVec3_1 = new _Color.Color();return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/math/Frustum.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector4.js", "pandav:/src/renderers/webgl/WebGLAnimation.js", "pandav:/src/renderers/webgl/WebGLAttributes.js", "pandav:/src/renderers/webgl/WebGLBackground.js", "pandav:/src/renderers/webgl/WebGLBindingStates.js", "pandav:/src/renderers/webgl/WebGLBufferRenderer.js", "pandav:/src/renderers/webgl/WebGLCapabilities.js", "pandav:/src/renderers/webgl/WebGLClipping.js", "pandav:/src/renderers/webgl/WebGLCubeMaps.js", "pandav:/src/renderers/webgl/WebGLCubeUVMaps.js", "pandav:/src/renderers/webgl/WebGLExtensions.js", "pandav:/src/renderers/webgl/WebGLGeometries.js", "pandav:/src/renderers/webgl/WebGLIndexedBufferRenderer.js", "pandav:/src/renderers/webgl/WebGLInfo.js", "pandav:/src/renderers/webgl/WebGLMorphtargets.js", "pandav:/src/renderers/webgl/WebGLObjects.js", "pandav:/src/renderers/webgl/WebGLPrograms.js", "pandav:/src/renderers/webgl/WebGLProperties.js", "pandav:/src/renderers/webgl/WebGLRenderLists.js", "pandav:/src/renderers/webgl/WebGLRenderStates.js", "pandav:/src/renderers/webgl/WebGLShadowMap.js", "pandav:/src/renderers/webgl/WebGLState.js", "pandav:/src/renderers/webgl/WebGLTextures.js", "pandav:/src/renderers/webgl/WebGLUniforms.js", "pandav:/src/renderers/webgl/WebGLUtils.js", "pandav:/src/renderers/webxr/WebXRManager.js", "pandav:/src/renderers/webgl/WebGLMaterials.js", "pandav:/src/renderers/webgl/WebGLUniformsGroups.js", "pandav:/src/utils.js", "pandav:/src/objects/HTMLObjectMgr.js", "pandav:/src/renderers/WebGLRenderProcesser.js", "pandav:/src/postprocessing/CopyPass.js", "pandav:/src/math/Color.js" ], "buildLevel": 2, "outputDir": "/com/three/0.145.0/src/renderers", "outputPath": "/com/three/0.145.0/src/renderers/WebGLRenderer.js", "fileName": "/src/renderers/WebGLRenderer.js" }, "pandav:/src/textures/Texture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/Texture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/textures/Source\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Texture = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _EventDispatcher2 = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var _Source = require('pandav:/com/three/0.145.0/src/textures/Source');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var textureId = 0;\n var Texture = exports.Texture = function (_EventDispatcher) {\n (0, _inherits2.default)(Texture, _EventDispatcher);\n var _super = (0, _createSuper2.default)(Texture);\n function Texture() {\n var _this;\n var image = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Texture.DEFAULT_IMAGE;\n var mapping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Texture.DEFAULT_MAPPING;\n var wrapS = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.ClampToEdgeWrapping;\n var wrapT = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.ClampToEdgeWrapping;\n var magFilter = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants.LinearFilter;\n var minFilter = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : _constants.LinearMipmapLinearFilter;\n var format = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : _constants.RGBAFormat;\n var type = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : _constants.UnsignedByteType;\n var anisotropy = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1;\n var encoding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : _constants.LinearEncoding;\n (0, _classCallCheck2.default)(this, Texture);\n _this = _super.call(this);\n _this.isTexture = true;\n Object.defineProperty((0, _assertThisInitialized2.default)(_this), 'id', {\n value: textureId++ });\n\n _this.uuid = MathUtils.generateUUID();\n _this.name = '';\n _this.source = new _Source.Source(image);\n _this.mipmaps = [];\n _this.mapping = mapping;\n _this.wrapS = wrapS;\n _this.wrapT = wrapT;\n _this.magFilter = magFilter;\n _this.minFilter = minFilter;\n _this.anisotropy = anisotropy;\n _this.format = format;\n _this.internalFormat = null;\n _this.type = type;\n _this.offset = new _Vector.Vector2(0, 0);\n _this.repeat = new _Vector.Vector2(1, 1);\n _this.center = new _Vector.Vector2(0, 0);\n _this.rotation = 0;\n _this.matrixAutoUpdate = true;\n _this.matrix = new _Matrix.Matrix3();\n _this.generateMipmaps = true;\n _this.premultiplyAlpha = false;\n _this.flipY = true;\n _this.unpackAlignment = 4;\n _this.encoding = encoding;\n _this.userData = {};\n _this.version = 0;\n _this.onUpdate = null;\n _this.isRenderTargetTexture = false;\n _this.needsPMREMUpdate = false;\n return _this;\n }\n (0, _createClass2.default)(Texture, [{\n key: \"image\",\n get: function get() {\n return this.source.data;\n },\n set: function set(value) {\n this.source.data = value;\n } },\n {\n key: \"updateMatrix\",\n value: function updateMatrix() {\n this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);\n } },\n {\n key: \"clone\",\n value: function clone() {\n return new this.constructor().copy(this);\n } },\n {\n key: \"copy\",\n value: function copy(source) {\n this.name = source.name;\n this.source = source.source;\n this.mipmaps = source.mipmaps.slice(0);\n this.mapping = source.mapping;\n this.wrapS = source.wrapS;\n this.wrapT = source.wrapT;\n this.magFilter = source.magFilter;\n this.minFilter = source.minFilter;\n this.anisotropy = source.anisotropy;\n this.format = source.format;\n this.internalFormat = source.internalFormat;\n this.type = source.type;\n this.offset.copy(source.offset);\n this.repeat.copy(source.repeat);\n this.center.copy(source.center);\n this.rotation = source.rotation;\n this.matrixAutoUpdate = source.matrixAutoUpdate;\n this.matrix.copy(source.matrix);\n this.generateMipmaps = source.generateMipmaps;\n this.premultiplyAlpha = source.premultiplyAlpha;\n this.flipY = source.flipY;\n this.unpackAlignment = source.unpackAlignment;\n this.encoding = source.encoding;\n this.userData = JSON.parse(JSON.stringify(source.userData));\n this.needsUpdate = true;\n return this;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var output = {\n metadata: {\n version: 4.5,\n type: 'Texture',\n generator: 'Texture.toJSON' },\n\n uuid: this.uuid,\n name: this.name,\n image: this.source && this.source.uuid,\n mapping: this.mapping,\n repeat: [this.repeat.x, this.repeat.y],\n offset: [this.offset.x, this.offset.y],\n center: [this.center.x, this.center.y],\n rotation: this.rotation,\n wrap: [this.wrapS, this.wrapT],\n format: this.format,\n type: this.type,\n encoding: this.encoding,\n minFilter: this.minFilter,\n magFilter: this.magFilter,\n anisotropy: this.anisotropy,\n flipY: this.flipY,\n premultiplyAlpha: this.premultiplyAlpha,\n unpackAlignment: this.unpackAlignment };\n\n if (JSON.stringify(this.userData) !== '{}') output.userData = this.userData;\n return output;\n } },\n {\n key: \"dispose\",\n value: function dispose() {\n this.dispatchEvent({\n type: 'dispose' });\n\n } },\n {\n key: \"transformUv\",\n value: function transformUv(uv) {\n if (this.mapping !== _constants.UVMapping) return uv;\n uv.applyMatrix3(this.matrix);\n if (uv.x < 0 || uv.x > 1) {\n switch (this.wrapS) {\n case _constants.RepeatWrapping:\n uv.x = uv.x - Math.floor(uv.x);\n break;\n case _constants.ClampToEdgeWrapping:\n uv.x = uv.x < 0 ? 0 : 1;\n break;\n case _constants.MirroredRepeatWrapping:\n if (Math.abs(Math.floor(uv.x) % 2) === 1) {\n uv.x = Math.ceil(uv.x) - uv.x;\n } else {\n uv.x = uv.x - Math.floor(uv.x);\n }\n break;}\n\n }\n if (uv.y < 0 || uv.y > 1) {\n switch (this.wrapT) {\n case _constants.RepeatWrapping:\n uv.y = uv.y - Math.floor(uv.y);\n break;\n case _constants.ClampToEdgeWrapping:\n uv.y = uv.y < 0 ? 0 : 1;\n break;\n case _constants.MirroredRepeatWrapping:\n if (Math.abs(Math.floor(uv.y) % 2) === 1) {\n uv.y = Math.ceil(uv.y) - uv.y;\n } else {\n uv.y = uv.y - Math.floor(uv.y);\n }\n break;}\n\n }\n if (this.flipY) {\n uv.y = 1 - uv.y;\n }\n return uv;\n } },\n {\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) {\n this.version++;\n this.source.needsUpdate = true;\n }\n } }]);\n\n return Texture;\n }(_EventDispatcher2.EventDispatcher);\n Texture.DEFAULT_IMAGE = null;\n Texture.DEFAULT_MAPPING = _constants.UVMapping;return module.exports;});", "requires": [ "pandav:/src/core/EventDispatcher.js", "pandav:/src/constants.js", "pandav:/src/math/MathUtils.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Matrix3.js", "pandav:/src/textures/Source.js" ], "buildLevel": 7, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/Texture.js", "fileName": "/src/textures/Texture.js" }, "pandav:/src/textures/DepthTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/DepthTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.DepthTexture = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var DepthTexture = exports.DepthTexture = function (_Texture) {\n (0, _inherits2.default)(DepthTexture, _Texture);\n var _super = (0, _createSuper2.default)(DepthTexture);\n function DepthTexture(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format) {\n var _this;\n (0, _classCallCheck2.default)(this, DepthTexture);\n format = format !== undefined ? format : _constants.DepthFormat;\n if (format !== _constants.DepthFormat && format !== _constants.DepthStencilFormat) {\n throw new Error('DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat');\n }\n if (type === undefined && format === _constants.DepthFormat) type = _constants.UnsignedIntType;\n if (type === undefined && format === _constants.DepthStencilFormat) type = _constants.UnsignedInt248Type;\n _this = _super.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n _this.isDepthTexture = true;\n _this.image = {\n width: width,\n height: height };\n\n _this.magFilter = magFilter !== undefined ? magFilter : _constants.NearestFilter;\n _this.minFilter = minFilter !== undefined ? minFilter : _constants.NearestFilter;\n _this.flipY = false;\n _this.generateMipmaps = false;\n return _this;\n }\n return (0, _createClass2.default)(DepthTexture);\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js", "pandav:/src/constants.js" ], "buildLevel": 36, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/DepthTexture.js", "fileName": "/src/textures/DepthTexture.js" }, "pandav:/src/textures/FramebufferTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/FramebufferTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/constants\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.FramebufferTexture = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var FramebufferTexture = exports.FramebufferTexture = function (_Texture) {\n (0, _inherits2.default)(FramebufferTexture, _Texture);\n var _super = (0, _createSuper2.default)(FramebufferTexture);\n function FramebufferTexture(width, height, format) {\n var _this;\n (0, _classCallCheck2.default)(this, FramebufferTexture);\n _this = _super.call(this, {\n width: width,\n height: height });\n\n _this.isFramebufferTexture = true;\n _this.format = format;\n _this.magFilter = _constants.NearestFilter;\n _this.minFilter = _constants.NearestFilter;\n _this.generateMipmaps = false;\n _this.needsUpdate = true;\n return _this;\n }\n return (0, _createClass2.default)(FramebufferTexture);\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/textures/Texture.js", "pandav:/src/constants.js" ], "buildLevel": 22, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/FramebufferTexture.js", "fileName": "/src/textures/FramebufferTexture.js" }, "pandav:/src/textures/Source.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/Source\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/com/three/0.145.0/src/extras/ImageUtils\", \"pandav:/com/three/0.145.0/src/math/MathUtils\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Source = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _ImageUtils = require('pandav:/com/three/0.145.0/src/extras/ImageUtils');\n var MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n var Source = exports.Source = function () {\n function Source() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n (0, _classCallCheck2.default)(this, Source);\n this.isSource = true;\n this.uuid = MathUtils.generateUUID();\n this.data = data;\n this.version = 0;\n this.name = \"\";\n }\n (0, _createClass2.default)(Source, [{\n key: \"needsUpdate\",\n set: function set(value) {\n if (value === true) this.version++;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n var output = {\n uuid: this.uuid,\n url: '' };\n\n var data = this.data;\n if (data !== null) {\n var url;\n if (Array.isArray(data)) {\n url = [];\n for (var i = 0, l = data.length; i < l; i++) {\n if (data[i].isDataTexture) {\n url.push(serializeImage(data[i].image));\n } else {\n url.push(serializeImage(data[i]));\n }\n }\n } else {\n url = serializeImage(data);\n }\n output.url = url;\n }\n return output;\n } }]);\n\n return Source;\n }();\n function serializeImage(image) {\n if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n return _ImageUtils.ImageUtils.getDataURL(image);\n } else {\n if (image.data) {\n return {\n data: Array.from(image.data),\n width: image.width,\n height: image.height,\n type: image.data.constructor.name };\n\n } else {\n console.warn('THREE.Texture: Unable to serialize Texture.');\n return {};\n }\n }\n }return module.exports;});", "requires": [ "pandav:/src/extras/ImageUtils.js", "pandav:/src/math/MathUtils.js" ], "buildLevel": 11, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/Source.js", "fileName": "/src/textures/Source.js" }, "pandav:/src/textures/VideoTexture.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/textures/VideoTexture\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/textures/Texture\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.VideoTexture = void 0;\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _assertThisInitialized2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/assertThisInitialized'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n var _Texture2 = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var VideoTexture = exports.VideoTexture = function (_Texture) {\n (0, _inherits2.default)(VideoTexture, _Texture);\n var _super = (0, _createSuper2.default)(VideoTexture);\n function VideoTexture(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n var _this;\n (0, _classCallCheck2.default)(this, VideoTexture);\n _this = _super.call(this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n _this.isVideoTexture = true;\n _this.minFilter = minFilter !== undefined ? minFilter : _constants.LinearFilter;\n _this.magFilter = magFilter !== undefined ? magFilter : _constants.LinearFilter;\n _this.generateMipmaps = false;\n var scope = (0, _assertThisInitialized2.default)(_this);\n function updateVideo() {\n scope.needsUpdate = true;\n video.requestVideoFrameCallback(updateVideo);\n }\n if ('requestVideoFrameCallback' in video) {\n video.requestVideoFrameCallback(updateVideo);\n }\n return _this;\n }\n (0, _createClass2.default)(VideoTexture, [{\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.image).copy(this);\n } },\n {\n key: \"update\",\n value: function update() {\n var video = this.image;\n var hasVideoFrameCallback = ('requestVideoFrameCallback' in video);\n if (hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA) {\n this.needsUpdate = true;\n }\n } }]);\n\n return VideoTexture;\n }(_Texture2.Texture);return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/textures/Texture.js" ], "buildLevel": 21, "outputDir": "/com/three/0.145.0/src/textures", "outputPath": "/com/three/0.145.0/src/textures/VideoTexture.js", "fileName": "/src/textures/VideoTexture.js" }, "pandav:/src/Three.Legacy.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/Three.Legacy\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createClass\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/inherits\", \"pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/textures/DataArrayTexture\", \"pandav:/com/three/0.145.0/src/textures/Data3DTexture\", \"pandav:/com/three/0.145.0/src/geometries/BoxGeometry\", \"pandav:/com/three/0.145.0/src/geometries/CapsuleGeometry\", \"pandav:/com/three/0.145.0/src/geometries/CircleGeometry\", \"pandav:/com/three/0.145.0/src/geometries/ConeGeometry\", \"pandav:/com/three/0.145.0/src/geometries/CylinderGeometry\", \"pandav:/com/three/0.145.0/src/geometries/DodecahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/ExtrudeGeometry\", \"pandav:/com/three/0.145.0/src/geometries/IcosahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/LatheGeometry\", \"pandav:/com/three/0.145.0/src/geometries/OctahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/PlaneGeometry\", \"pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/RingGeometry\", \"pandav:/com/three/0.145.0/src/geometries/ShapeGeometry\", \"pandav:/com/three/0.145.0/src/geometries/SphereGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TetrahedronGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TorusGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TorusKnotGeometry\", \"pandav:/com/three/0.145.0/src/geometries/TubeGeometry\"], function (module, exports, require, load, process, global) {\n\n var _interopRequireDefault = require('pandav:/npm/@babel/runtime/7.23.5/helpers/interopRequireDefault');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.IcosahedronBufferGeometry = exports.ExtrudeBufferGeometry = exports.DodecahedronBufferGeometry = exports.DataTexture3D = exports.DataTexture2DArray = exports.CylinderBufferGeometry = exports.ConeBufferGeometry = exports.CircleBufferGeometry = exports.CapsuleBufferGeometry = exports.BoxBufferGeometry = void 0;\n exports.ImmediateRenderObject = ImmediateRenderObject;\n exports.WebGLMultisampleRenderTarget = exports.TubeBufferGeometry = exports.TorusKnotBufferGeometry = exports.TorusBufferGeometry = exports.TetrahedronBufferGeometry = exports.SphereBufferGeometry = exports.ShapeBufferGeometry = exports.RingBufferGeometry = exports.PolyhedronBufferGeometry = exports.PlaneBufferGeometry = exports.OctahedronBufferGeometry = exports.LatheBufferGeometry = void 0;\n var _createClass2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createClass'));\n var _classCallCheck2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/classCallCheck'));\n var _inherits2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/inherits'));\n var _createSuper2 = _interopRequireDefault(require('pandav:/npm/@babel/runtime/7.23.5/helpers/createSuper'));\n var _WebGLRenderTarget2 = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _DataArrayTexture2 = require('pandav:/com/three/0.145.0/src/textures/DataArrayTexture');\n var _Data3DTexture2 = require('pandav:/com/three/0.145.0/src/textures/Data3DTexture');\n var _BoxGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/BoxGeometry');\n var _CapsuleGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/CapsuleGeometry');\n var _CircleGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/CircleGeometry');\n var _ConeGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/ConeGeometry');\n var _CylinderGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/CylinderGeometry');\n var _DodecahedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/DodecahedronGeometry');\n var _ExtrudeGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/ExtrudeGeometry');\n var _IcosahedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/IcosahedronGeometry');\n var _LatheGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/LatheGeometry');\n var _OctahedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/OctahedronGeometry');\n var _PlaneGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/PlaneGeometry');\n var _PolyhedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/PolyhedronGeometry');\n var _RingGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/RingGeometry');\n var _ShapeGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/ShapeGeometry');\n var _SphereGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/SphereGeometry');\n var _TetrahedronGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/TetrahedronGeometry');\n var _TorusGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/TorusGeometry');\n var _TorusKnotGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/TorusKnotGeometry');\n var _TubeGeometry2 = require('pandav:/com/three/0.145.0/src/geometries/TubeGeometry');\n function ImmediateRenderObject() {\n console.error('THREE.ImmediateRenderObject has been removed.');\n }\n var WebGLMultisampleRenderTarget = exports.WebGLMultisampleRenderTarget = function (_WebGLRenderTarget) {\n (0, _inherits2.default)(WebGLMultisampleRenderTarget, _WebGLRenderTarget);\n var _super = (0, _createSuper2.default)(WebGLMultisampleRenderTarget);\n function WebGLMultisampleRenderTarget(width, height, options) {\n var _this;\n (0, _classCallCheck2.default)(this, WebGLMultisampleRenderTarget);\n console.error('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the \"samples\" property to greater 0 to enable multisampling.');\n _this = _super.call(this, width, height, options);\n _this.samples = 4;\n return _this;\n }\n return (0, _createClass2.default)(WebGLMultisampleRenderTarget);\n }(_WebGLRenderTarget2.WebGLRenderTarget);\n var DataTexture2DArray = exports.DataTexture2DArray = function (_DataArrayTexture) {\n (0, _inherits2.default)(DataTexture2DArray, _DataArrayTexture);\n var _super2 = (0, _createSuper2.default)(DataTexture2DArray);\n function DataTexture2DArray(data, width, height, depth) {\n (0, _classCallCheck2.default)(this, DataTexture2DArray);\n console.warn('THREE.DataTexture2DArray has been renamed to DataArrayTexture.');\n return _super2.call(this, data, width, height, depth);\n }\n return (0, _createClass2.default)(DataTexture2DArray);\n }(_DataArrayTexture2.DataArrayTexture);\n var DataTexture3D = exports.DataTexture3D = function (_Data3DTexture) {\n (0, _inherits2.default)(DataTexture3D, _Data3DTexture);\n var _super3 = (0, _createSuper2.default)(DataTexture3D);\n function DataTexture3D(data, width, height, depth) {\n (0, _classCallCheck2.default)(this, DataTexture3D);\n console.warn('THREE.DataTexture3D has been renamed to Data3DTexture.');\n return _super3.call(this, data, width, height, depth);\n }\n return (0, _createClass2.default)(DataTexture3D);\n }(_Data3DTexture2.Data3DTexture);\n var BoxBufferGeometry = exports.BoxBufferGeometry = function (_BoxGeometry) {\n (0, _inherits2.default)(BoxBufferGeometry, _BoxGeometry);\n var _super4 = (0, _createSuper2.default)(BoxBufferGeometry);\n function BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) {\n (0, _classCallCheck2.default)(this, BoxBufferGeometry);\n console.warn('THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry.');\n return _super4.call(this, width, height, depth, widthSegments, heightSegments, depthSegments);\n }\n return (0, _createClass2.default)(BoxBufferGeometry);\n }(_BoxGeometry2.BoxGeometry);\n var CapsuleBufferGeometry = exports.CapsuleBufferGeometry = function (_CapsuleGeometry) {\n (0, _inherits2.default)(CapsuleBufferGeometry, _CapsuleGeometry);\n var _super5 = (0, _createSuper2.default)(CapsuleBufferGeometry);\n function CapsuleBufferGeometry(radius, length, capSegments, radialSegments) {\n (0, _classCallCheck2.default)(this, CapsuleBufferGeometry);\n console.warn('THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry.');\n return _super5.call(this, radius, length, capSegments, radialSegments);\n }\n return (0, _createClass2.default)(CapsuleBufferGeometry);\n }(_CapsuleGeometry2.CapsuleGeometry);\n var CircleBufferGeometry = exports.CircleBufferGeometry = function (_CircleGeometry) {\n (0, _inherits2.default)(CircleBufferGeometry, _CircleGeometry);\n var _super6 = (0, _createSuper2.default)(CircleBufferGeometry);\n function CircleBufferGeometry(radius, segments, thetaStart, thetaLength) {\n (0, _classCallCheck2.default)(this, CircleBufferGeometry);\n console.warn('THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry.');\n return _super6.call(this, radius, segments, thetaStart, thetaLength);\n }\n return (0, _createClass2.default)(CircleBufferGeometry);\n }(_CircleGeometry2.CircleGeometry);\n var ConeBufferGeometry = exports.ConeBufferGeometry = function (_ConeGeometry) {\n (0, _inherits2.default)(ConeBufferGeometry, _ConeGeometry);\n var _super7 = (0, _createSuper2.default)(ConeBufferGeometry);\n function ConeBufferGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n (0, _classCallCheck2.default)(this, ConeBufferGeometry);\n console.warn('THREE.ConeBufferGeometry has been renamed to THREE.ConeGeometry.');\n return _super7.call(this, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n }\n return (0, _createClass2.default)(ConeBufferGeometry);\n }(_ConeGeometry2.ConeGeometry);\n var CylinderBufferGeometry = exports.CylinderBufferGeometry = function (_CylinderGeometry) {\n (0, _inherits2.default)(CylinderBufferGeometry, _CylinderGeometry);\n var _super8 = (0, _createSuper2.default)(CylinderBufferGeometry);\n function CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) {\n (0, _classCallCheck2.default)(this, CylinderBufferGeometry);\n console.warn('THREE.CylinderBufferGeometry has been renamed to THREE.CylinderGeometry.');\n return _super8.call(this, radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n }\n return (0, _createClass2.default)(CylinderBufferGeometry);\n }(_CylinderGeometry2.CylinderGeometry);\n var DodecahedronBufferGeometry = exports.DodecahedronBufferGeometry = function (_DodecahedronGeometry) {\n (0, _inherits2.default)(DodecahedronBufferGeometry, _DodecahedronGeometry);\n var _super9 = (0, _createSuper2.default)(DodecahedronBufferGeometry);\n function DodecahedronBufferGeometry(radius, detail) {\n (0, _classCallCheck2.default)(this, DodecahedronBufferGeometry);\n console.warn('THREE.DodecahedronBufferGeometry has been renamed to THREE.DodecahedronGeometry.');\n return _super9.call(this, radius, detail);\n }\n return (0, _createClass2.default)(DodecahedronBufferGeometry);\n }(_DodecahedronGeometry2.DodecahedronGeometry);\n var ExtrudeBufferGeometry = exports.ExtrudeBufferGeometry = function (_ExtrudeGeometry) {\n (0, _inherits2.default)(ExtrudeBufferGeometry, _ExtrudeGeometry);\n var _super10 = (0, _createSuper2.default)(ExtrudeBufferGeometry);\n function ExtrudeBufferGeometry(shapes, options) {\n (0, _classCallCheck2.default)(this, ExtrudeBufferGeometry);\n console.warn('THREE.ExtrudeBufferGeometry has been renamed to THREE.ExtrudeGeometry.');\n return _super10.call(this, shapes, options);\n }\n return (0, _createClass2.default)(ExtrudeBufferGeometry);\n }(_ExtrudeGeometry2.ExtrudeGeometry);\n var IcosahedronBufferGeometry = exports.IcosahedronBufferGeometry = function (_IcosahedronGeometry) {\n (0, _inherits2.default)(IcosahedronBufferGeometry, _IcosahedronGeometry);\n var _super11 = (0, _createSuper2.default)(IcosahedronBufferGeometry);\n function IcosahedronBufferGeometry(radius, detail) {\n (0, _classCallCheck2.default)(this, IcosahedronBufferGeometry);\n console.warn('THREE.IcosahedronBufferGeometry has been renamed to THREE.IcosahedronGeometry.');\n return _super11.call(this, radius, detail);\n }\n return (0, _createClass2.default)(IcosahedronBufferGeometry);\n }(_IcosahedronGeometry2.IcosahedronGeometry);\n var LatheBufferGeometry = exports.LatheBufferGeometry = function (_LatheGeometry) {\n (0, _inherits2.default)(LatheBufferGeometry, _LatheGeometry);\n var _super12 = (0, _createSuper2.default)(LatheBufferGeometry);\n function LatheBufferGeometry(points, segments, phiStart, phiLength) {\n (0, _classCallCheck2.default)(this, LatheBufferGeometry);\n console.warn('THREE.LatheBufferGeometry has been renamed to THREE.LatheGeometry.');\n return _super12.call(this, points, segments, phiStart, phiLength);\n }\n return (0, _createClass2.default)(LatheBufferGeometry);\n }(_LatheGeometry2.LatheGeometry);\n var OctahedronBufferGeometry = exports.OctahedronBufferGeometry = function (_OctahedronGeometry) {\n (0, _inherits2.default)(OctahedronBufferGeometry, _OctahedronGeometry);\n var _super13 = (0, _createSuper2.default)(OctahedronBufferGeometry);\n function OctahedronBufferGeometry(radius, detail) {\n (0, _classCallCheck2.default)(this, OctahedronBufferGeometry);\n console.warn('THREE.OctahedronBufferGeometry has been renamed to THREE.OctahedronGeometry.');\n return _super13.call(this, radius, detail);\n }\n return (0, _createClass2.default)(OctahedronBufferGeometry);\n }(_OctahedronGeometry2.OctahedronGeometry);\n var PlaneBufferGeometry = exports.PlaneBufferGeometry = function (_PlaneGeometry) {\n (0, _inherits2.default)(PlaneBufferGeometry, _PlaneGeometry);\n var _super14 = (0, _createSuper2.default)(PlaneBufferGeometry);\n function PlaneBufferGeometry(width, height, widthSegments, heightSegments) {\n (0, _classCallCheck2.default)(this, PlaneBufferGeometry);\n console.warn('THREE.PlaneBufferGeometry has been renamed to THREE.PlaneGeometry.');\n return _super14.call(this, width, height, widthSegments, heightSegments);\n }\n return (0, _createClass2.default)(PlaneBufferGeometry);\n }(_PlaneGeometry2.PlaneGeometry);\n var PolyhedronBufferGeometry = exports.PolyhedronBufferGeometry = function (_PolyhedronGeometry) {\n (0, _inherits2.default)(PolyhedronBufferGeometry, _PolyhedronGeometry);\n var _super15 = (0, _createSuper2.default)(PolyhedronBufferGeometry);\n function PolyhedronBufferGeometry(vertices, indices, radius, detail) {\n (0, _classCallCheck2.default)(this, PolyhedronBufferGeometry);\n console.warn('THREE.PolyhedronBufferGeometry has been renamed to THREE.PolyhedronGeometry.');\n return _super15.call(this, vertices, indices, radius, detail);\n }\n return (0, _createClass2.default)(PolyhedronBufferGeometry);\n }(_PolyhedronGeometry2.PolyhedronGeometry);\n var RingBufferGeometry = exports.RingBufferGeometry = function (_RingGeometry) {\n (0, _inherits2.default)(RingBufferGeometry, _RingGeometry);\n var _super16 = (0, _createSuper2.default)(RingBufferGeometry);\n function RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) {\n (0, _classCallCheck2.default)(this, RingBufferGeometry);\n console.warn('THREE.RingBufferGeometry has been renamed to THREE.RingGeometry.');\n return _super16.call(this, innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength);\n }\n return (0, _createClass2.default)(RingBufferGeometry);\n }(_RingGeometry2.RingGeometry);\n var ShapeBufferGeometry = exports.ShapeBufferGeometry = function (_ShapeGeometry) {\n (0, _inherits2.default)(ShapeBufferGeometry, _ShapeGeometry);\n var _super17 = (0, _createSuper2.default)(ShapeBufferGeometry);\n function ShapeBufferGeometry(shapes, curveSegments) {\n (0, _classCallCheck2.default)(this, ShapeBufferGeometry);\n console.warn('THREE.ShapeBufferGeometry has been renamed to THREE.ShapeGeometry.');\n return _super17.call(this, shapes, curveSegments);\n }\n return (0, _createClass2.default)(ShapeBufferGeometry);\n }(_ShapeGeometry2.ShapeGeometry);\n var SphereBufferGeometry = exports.SphereBufferGeometry = function (_SphereGeometry) {\n (0, _inherits2.default)(SphereBufferGeometry, _SphereGeometry);\n var _super18 = (0, _createSuper2.default)(SphereBufferGeometry);\n function SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {\n (0, _classCallCheck2.default)(this, SphereBufferGeometry);\n console.warn('THREE.SphereBufferGeometry has been renamed to THREE.SphereGeometry.');\n return _super18.call(this, radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength);\n }\n return (0, _createClass2.default)(SphereBufferGeometry);\n }(_SphereGeometry2.SphereGeometry);\n var TetrahedronBufferGeometry = exports.TetrahedronBufferGeometry = function (_TetrahedronGeometry) {\n (0, _inherits2.default)(TetrahedronBufferGeometry, _TetrahedronGeometry);\n var _super19 = (0, _createSuper2.default)(TetrahedronBufferGeometry);\n function TetrahedronBufferGeometry(radius, detail) {\n (0, _classCallCheck2.default)(this, TetrahedronBufferGeometry);\n console.warn('THREE.TetrahedronBufferGeometry has been renamed to THREE.TetrahedronGeometry.');\n return _super19.call(this, radius, detail);\n }\n return (0, _createClass2.default)(TetrahedronBufferGeometry);\n }(_TetrahedronGeometry2.TetrahedronGeometry);\n var TorusBufferGeometry = exports.TorusBufferGeometry = function (_TorusGeometry) {\n (0, _inherits2.default)(TorusBufferGeometry, _TorusGeometry);\n var _super20 = (0, _createSuper2.default)(TorusBufferGeometry);\n function TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc) {\n (0, _classCallCheck2.default)(this, TorusBufferGeometry);\n console.warn('THREE.TorusBufferGeometry has been renamed to THREE.TorusGeometry.');\n return _super20.call(this, radius, tube, radialSegments, tubularSegments, arc);\n }\n return (0, _createClass2.default)(TorusBufferGeometry);\n }(_TorusGeometry2.TorusGeometry);\n var TorusKnotBufferGeometry = exports.TorusKnotBufferGeometry = function (_TorusKnotGeometry) {\n (0, _inherits2.default)(TorusKnotBufferGeometry, _TorusKnotGeometry);\n var _super21 = (0, _createSuper2.default)(TorusKnotBufferGeometry);\n function TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q) {\n (0, _classCallCheck2.default)(this, TorusKnotBufferGeometry);\n console.warn('THREE.TorusKnotBufferGeometry has been renamed to THREE.TorusKnotGeometry.');\n return _super21.call(this, radius, tube, tubularSegments, radialSegments, p, q);\n }\n return (0, _createClass2.default)(TorusKnotBufferGeometry);\n }(_TorusKnotGeometry2.TorusKnotGeometry);\n var TubeBufferGeometry = exports.TubeBufferGeometry = function (_TubeGeometry) {\n (0, _inherits2.default)(TubeBufferGeometry, _TubeGeometry);\n var _super22 = (0, _createSuper2.default)(TubeBufferGeometry);\n function TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed) {\n (0, _classCallCheck2.default)(this, TubeBufferGeometry);\n console.warn('THREE.TubeBufferGeometry has been renamed to THREE.TubeGeometry.');\n return _super22.call(this, path, tubularSegments, radius, radialSegments, closed);\n }\n return (0, _createClass2.default)(TubeBufferGeometry);\n }(_TubeGeometry2.TubeGeometry);return module.exports;});", "requires": [ "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/textures/DataArrayTexture.js", "pandav:/src/textures/Data3DTexture.js", "pandav:/src/geometries/BoxGeometry.js", "pandav:/src/geometries/CapsuleGeometry.js", "pandav:/src/geometries/CircleGeometry.js", "pandav:/src/geometries/ConeGeometry.js", "pandav:/src/geometries/CylinderGeometry.js", "pandav:/src/geometries/DodecahedronGeometry.js", "pandav:/src/geometries/ExtrudeGeometry.js", "pandav:/src/geometries/IcosahedronGeometry.js", "pandav:/src/geometries/LatheGeometry.js", "pandav:/src/geometries/OctahedronGeometry.js", "pandav:/src/geometries/PlaneGeometry.js", "pandav:/src/geometries/PolyhedronGeometry.js", "pandav:/src/geometries/RingGeometry.js", "pandav:/src/geometries/ShapeGeometry.js", "pandav:/src/geometries/SphereGeometry.js", "pandav:/src/geometries/TetrahedronGeometry.js", "pandav:/src/geometries/TorusGeometry.js", "pandav:/src/geometries/TorusKnotGeometry.js", "pandav:/src/geometries/TubeGeometry.js" ], "buildLevel": 69, "outputDir": "/com/three/0.145.0/src", "outputPath": "/com/three/0.145.0/src/Three.Legacy.js", "fileName": "/src/Three.Legacy.js" }, "pandav:/src/utils.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/utils\", [], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.arrayMax = arrayMax;\n exports.arrayMin = arrayMin;\n exports.arrayNeedsUint32 = arrayNeedsUint32;\n exports.createElementNS = createElementNS;\n exports.getTypedArray = getTypedArray;\n function arrayMin(array) {\n if (array.length === 0) return Infinity;\n var min = array[0];\n for (var i = 1, l = array.length; i < l; ++i) {\n if (array[i] < min) min = array[i];\n }\n return min;\n }\n function arrayMax(array) {\n if (array.length === 0) return -Infinity;\n var max = array[0];\n for (var i = 1, l = array.length; i < l; ++i) {\n if (array[i] > max) max = array[i];\n }\n return max;\n }\n function arrayNeedsUint32(array) {\n for (var i = array.length - 1; i >= 0; --i) {\n if (array[i] >= 65535) return true;\n }\n return false;\n }\n var TYPED_ARRAYS = {\n Int8Array: Int8Array,\n Uint8Array: Uint8Array,\n Uint8ClampedArray: Uint8ClampedArray,\n Int16Array: Int16Array,\n Uint16Array: Uint16Array,\n Int32Array: Int32Array,\n Uint32Array: Uint32Array,\n Float32Array: Float32Array,\n Float64Array: Float64Array };\n\n function getTypedArray(type, buffer) {\n return new TYPED_ARRAYS[type](buffer);\n }\n function createElementNS(name) {\n return document.createElementNS('http://www.w3.org/1999/xhtml', name);\n }return module.exports;});", "requires": [], "buildLevel": 13, "outputDir": "/com/three/0.145.0/src", "outputPath": "/com/three/0.145.0/src/utils.js", "fileName": "/src/utils.js" }, "pandav:/src/Three.js": { "cubeCode": "Cube(\"pandav:/com/three/0.145.0/src/Three\", [\"pandav:/npm/@babel/runtime/7.23.5/helpers/typeof\", \"pandav:/com/three/0.145.0/src/constants\", \"pandav:/com/three/0.145.0/src/renderers/WebGLArrayRenderTarget\", \"pandav:/com/three/0.145.0/src/renderers/WebGL3DRenderTarget\", \"pandav:/com/three/0.145.0/src/renderers/WebGLMultipleRenderTargets\", \"pandav:/com/three/0.145.0/src/renderers/WebGLCubeRenderTarget\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget\", \"pandav:/com/three/0.145.0/src/renderers/WebGLRenderer\", \"pandav:/com/three/0.145.0/src/renderers/WebGL1Renderer\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib\", \"pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils\", \"pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk\", \"pandav:/com/three/0.145.0/src/scenes/FogExp2\", \"pandav:/com/three/0.145.0/src/scenes/Fog\", \"pandav:/com/three/0.145.0/src/scenes/Scene\", \"pandav:/com/three/0.145.0/src/objects/Sprite\", \"pandav:/com/three/0.145.0/src/objects/LOD\", \"pandav:/com/three/0.145.0/src/objects/SkinnedMesh\", \"pandav:/com/three/0.145.0/src/objects/Skeleton\", \"pandav:/com/three/0.145.0/src/objects/Bone\", \"pandav:/com/three/0.145.0/src/objects/Mesh\", \"pandav:/com/three/0.145.0/src/objects/InstancedMesh\", \"pandav:/com/three/0.145.0/src/objects/LineSegments\", \"pandav:/com/three/0.145.0/src/objects/LineLoop\", \"pandav:/com/three/0.145.0/src/objects/Line\", \"pandav:/com/three/0.145.0/src/objects/Points\", \"pandav:/com/three/0.145.0/src/objects/Group\", \"pandav:/com/three/0.145.0/src/textures/VideoTexture\", \"pandav:/com/three/0.145.0/src/textures/FramebufferTexture\", \"pandav:/com/three/0.145.0/src/textures/Source\", \"pandav:/com/three/0.145.0/src/textures/DataTexture\", \"pandav:/com/three/0.145.0/src/textures/DataArrayTexture\", \"pandav:/com/three/0.145.0/src/textures/Data3DTexture\", \"pandav:/com/three/0.145.0/src/textures/CompressedTexture\", \"pandav:/com/three/0.145.0/src/textures/CubeTexture\", \"pandav:/com/three/0.145.0/src/textures/CanvasTexture\", \"pandav:/com/three/0.145.0/src/textures/DepthTexture\", \"pandav:/com/three/0.145.0/src/textures/Texture\", \"pandav:/com/three/0.145.0/src/geometries/Geometries\", \"pandav:/com/three/0.145.0/src/materials/Materials\", \"pandav:/com/three/0.145.0/src/loaders/AnimationLoader\", \"pandav:/com/three/0.145.0/src/loaders/CompressedTextureLoader\", \"pandav:/com/three/0.145.0/src/loaders/CubeTextureLoader\", \"pandav:/com/three/0.145.0/src/loaders/DataTextureLoader\", \"pandav:/com/three/0.145.0/src/loaders/TextureLoader\", \"pandav:/com/three/0.145.0/src/loaders/ObjectLoader\", \"pandav:/com/three/0.145.0/src/loaders/MaterialLoader\", \"pandav:/com/three/0.145.0/src/loaders/BufferGeometryLoader\", \"pandav:/com/three/0.145.0/src/loaders/LoadingManager\", \"pandav:/com/three/0.145.0/src/loaders/ImageLoader\", \"pandav:/com/three/0.145.0/src/loaders/ImageBitmapLoader\", \"pandav:/com/three/0.145.0/src/loaders/FileLoader\", \"pandav:/com/three/0.145.0/src/loaders/Loader\", \"pandav:/com/three/0.145.0/src/loaders/LoaderUtils\", \"pandav:/com/three/0.145.0/src/loaders/Cache\", \"pandav:/com/three/0.145.0/src/loaders/AudioLoader\", \"pandav:/com/three/0.145.0/src/lights/SpotLight\", \"pandav:/com/three/0.145.0/src/lights/PointLight\", \"pandav:/com/three/0.145.0/src/lights/RectAreaLight\", \"pandav:/com/three/0.145.0/src/lights/HemisphereLight\", \"pandav:/com/three/0.145.0/src/lights/HemisphereLightProbe\", \"pandav:/com/three/0.145.0/src/lights/DirectionalLight\", \"pandav:/com/three/0.145.0/src/lights/AmbientLight\", \"pandav:/com/three/0.145.0/src/lights/AmbientLightProbe\", \"pandav:/com/three/0.145.0/src/lights/Light\", \"pandav:/com/three/0.145.0/src/lights/LightProbe\", \"pandav:/com/three/0.145.0/src/cameras/StereoCamera\", \"pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera\", \"pandav:/com/three/0.145.0/src/cameras/OrthographicCamera\", \"pandav:/com/three/0.145.0/src/cameras/CubeCamera\", \"pandav:/com/three/0.145.0/src/cameras/ArrayCamera\", \"pandav:/com/three/0.145.0/src/cameras/Camera\", \"pandav:/com/three/0.145.0/src/audio/AudioListener\", \"pandav:/com/three/0.145.0/src/audio/PositionalAudio\", \"pandav:/com/three/0.145.0/src/audio/AudioContext\", \"pandav:/com/three/0.145.0/src/audio/AudioAnalyser\", \"pandav:/com/three/0.145.0/src/audio/Audio\", \"pandav:/com/three/0.145.0/src/animation/tracks/VectorKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/StringKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/QuaternionKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/NumberKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/ColorKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/tracks/BooleanKeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/PropertyMixer\", \"pandav:/com/three/0.145.0/src/animation/PropertyBinding\", \"pandav:/com/three/0.145.0/src/animation/KeyframeTrack\", \"pandav:/com/three/0.145.0/src/animation/AnimationUtils\", \"pandav:/com/three/0.145.0/src/animation/AnimationObjectGroup\", \"pandav:/com/three/0.145.0/src/animation/AnimationMixer\", \"pandav:/com/three/0.145.0/src/animation/AnimationClip\", \"pandav:/com/three/0.145.0/src/core/Uniform\", \"pandav:/com/three/0.145.0/src/core/UniformsGroup\", \"pandav:/com/three/0.145.0/src/core/InstancedBufferGeometry\", \"pandav:/com/three/0.145.0/src/core/BufferGeometry\", \"pandav:/com/three/0.145.0/src/core/InterleavedBufferAttribute\", \"pandav:/com/three/0.145.0/src/core/InstancedInterleavedBuffer\", \"pandav:/com/three/0.145.0/src/core/InterleavedBuffer\", \"pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute\", \"pandav:/com/three/0.145.0/src/core/GLBufferAttribute\", \"pandav:/com/three/0.145.0/src/core/BufferAttribute\", \"pandav:/com/three/0.145.0/src/core/Object3D\", \"pandav:/com/three/0.145.0/src/core/Raycaster\", \"pandav:/com/three/0.145.0/src/core/Layers\", \"pandav:/com/three/0.145.0/src/core/EventDispatcher\", \"pandav:/com/three/0.145.0/src/core/Clock\", \"pandav:/com/three/0.145.0/src/math/interpolants/QuaternionLinearInterpolant\", \"pandav:/com/three/0.145.0/src/math/interpolants/LinearInterpolant\", \"pandav:/com/three/0.145.0/src/math/interpolants/DiscreteInterpolant\", \"pandav:/com/three/0.145.0/src/math/interpolants/CubicInterpolant\", \"pandav:/com/three/0.145.0/src/math/Interpolant\", \"pandav:/com/three/0.145.0/src/math/Triangle\", \"pandav:/com/three/0.145.0/src/math/MathUtils\", \"pandav:/com/three/0.145.0/src/math/Spherical\", \"pandav:/com/three/0.145.0/src/math/Cylindrical\", \"pandav:/com/three/0.145.0/src/math/Plane\", \"pandav:/com/three/0.145.0/src/math/Frustum\", \"pandav:/com/three/0.145.0/src/math/Sphere\", \"pandav:/com/three/0.145.0/src/math/Ray\", \"pandav:/com/three/0.145.0/src/math/Matrix4\", \"pandav:/com/three/0.145.0/src/math/Matrix3\", \"pandav:/com/three/0.145.0/src/math/Box3\", \"pandav:/com/three/0.145.0/src/math/Box2\", \"pandav:/com/three/0.145.0/src/math/Line3\", \"pandav:/com/three/0.145.0/src/math/Euler\", \"pandav:/com/three/0.145.0/src/math/Vector4\", \"pandav:/com/three/0.145.0/src/math/Vector3\", \"pandav:/com/three/0.145.0/src/math/Vector2\", \"pandav:/com/three/0.145.0/src/math/Quaternion\", \"pandav:/com/three/0.145.0/src/math/Color\", \"pandav:/com/three/0.145.0/src/math/ColorManagement\", \"pandav:/com/three/0.145.0/src/math/SphericalHarmonics3\", \"pandav:/com/three/0.145.0/src/helpers/SpotLightHelper\", \"pandav:/com/three/0.145.0/src/helpers/SkeletonHelper\", \"pandav:/com/three/0.145.0/src/helpers/PointLightHelper\", \"pandav:/com/three/0.145.0/src/helpers/HemisphereLightHelper\", \"pandav:/com/three/0.145.0/src/helpers/GridHelper\", \"pandav:/com/three/0.145.0/src/helpers/PolarGridHelper\", \"pandav:/com/three/0.145.0/src/helpers/DirectionalLightHelper\", \"pandav:/com/three/0.145.0/src/helpers/CameraHelper\", \"pandav:/com/three/0.145.0/src/helpers/BoxHelper\", \"pandav:/com/three/0.145.0/src/helpers/Box3Helper\", \"pandav:/com/three/0.145.0/src/helpers/PlaneHelper\", \"pandav:/com/three/0.145.0/src/helpers/ArrowHelper\", \"pandav:/com/three/0.145.0/src/helpers/AxesHelper\", \"pandav:/com/three/0.145.0/src/extras/curves/Curves\", \"pandav:/com/three/0.145.0/src/extras/core/Shape\", \"pandav:/com/three/0.145.0/src/extras/core/Path\", \"pandav:/com/three/0.145.0/src/extras/core/ShapePath\", \"pandav:/com/three/0.145.0/src/extras/core/CurvePath\", \"pandav:/com/three/0.145.0/src/extras/core/Curve\", \"pandav:/com/three/0.145.0/src/extras/DataUtils\", \"pandav:/com/three/0.145.0/src/extras/ImageUtils\", \"pandav:/com/three/0.145.0/src/extras/ShapeUtils\", \"pandav:/com/three/0.145.0/src/extras/PMREMGenerator\", \"pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUtils\", \"pandav:/com/three/0.145.0/src/Three.Legacy\", \"pandav:/com/three/0.145.0/src/utils\", \"pandav:/com/three/0.145.0/src/postprocessing/Pass\", \"pandav:/com/three/0.145.0/src/math/AlphaColor\", \"pandav:/com/three/0.145.0/src/objects/HTMLObjectMgr\", \"pandav:/com/three/0.145.0/src/objects/HTMLObject\", \"pandav:/com/three/0.145.0/src/collider/GeometryCollider\", \"pandav:/com/three/0.145.0/src/collider/Collision\", \"pandav:/com/three/0.145.0/src/collider/ColliderUtils\", \"pandav:/com/three/0.145.0/src/collider/Helper/GeometryColliderHelper\"], function (module, exports, require, load, process, global) {\n\n var _typeof = require('pandav:/npm/@babel/runtime/7.23.5/helpers/typeof');\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n var _exportNames = {\n WebGLArrayRenderTarget: true,\n WebGL3DRenderTarget: true,\n WebGLMultipleRenderTargets: true,\n WebGLCubeRenderTarget: true,\n WebGLRenderTarget: true,\n WebGLRenderer: true,\n WebGL1Renderer: true,\n ShaderLib: true,\n UniformsLib: true,\n UniformsUtils: true,\n ShaderChunk: true,\n FogExp2: true,\n Fog: true,\n Scene: true,\n Sprite: true,\n LOD: true,\n SkinnedMesh: true,\n Skeleton: true,\n Bone: true,\n Mesh: true,\n InstancedMesh: true,\n LineSegments: true,\n LineLoop: true,\n Line: true,\n Points: true,\n Group: true,\n VideoTexture: true,\n FramebufferTexture: true,\n Source: true,\n DataTexture: true,\n DataArrayTexture: true,\n Data3DTexture: true,\n CompressedTexture: true,\n CubeTexture: true,\n CanvasTexture: true,\n DepthTexture: true,\n Texture: true,\n AnimationLoader: true,\n CompressedTextureLoader: true,\n CubeTextureLoader: true,\n DataTextureLoader: true,\n TextureLoader: true,\n ObjectLoader: true,\n MaterialLoader: true,\n BufferGeometryLoader: true,\n DefaultLoadingManager: true,\n LoadingManager: true,\n ImageLoader: true,\n ImageBitmapLoader: true,\n FileLoader: true,\n Loader: true,\n LoaderUtils: true,\n Cache: true,\n AudioLoader: true,\n SpotLight: true,\n PointLight: true,\n RectAreaLight: true,\n HemisphereLight: true,\n HemisphereLightProbe: true,\n DirectionalLight: true,\n AmbientLight: true,\n AmbientLightProbe: true,\n Light: true,\n LightProbe: true,\n StereoCamera: true,\n PerspectiveCamera: true,\n OrthographicCamera: true,\n CubeCamera: true,\n ArrayCamera: true,\n Camera: true,\n AudioListener: true,\n PositionalAudio: true,\n AudioContext: true,\n AudioAnalyser: true,\n Audio: true,\n VectorKeyframeTrack: true,\n StringKeyframeTrack: true,\n QuaternionKeyframeTrack: true,\n NumberKeyframeTrack: true,\n ColorKeyframeTrack: true,\n BooleanKeyframeTrack: true,\n PropertyMixer: true,\n PropertyBinding: true,\n KeyframeTrack: true,\n AnimationUtils: true,\n AnimationObjectGroup: true,\n AnimationMixer: true,\n AnimationClip: true,\n Uniform: true,\n UniformsGroup: true,\n InstancedBufferGeometry: true,\n BufferGeometry: true,\n InterleavedBufferAttribute: true,\n InstancedInterleavedBuffer: true,\n InterleavedBuffer: true,\n InstancedBufferAttribute: true,\n GLBufferAttribute: true,\n Object3D: true,\n Raycaster: true,\n Layers: true,\n EventDispatcher: true,\n Clock: true,\n QuaternionLinearInterpolant: true,\n LinearInterpolant: true,\n DiscreteInterpolant: true,\n CubicInterpolant: true,\n Interpolant: true,\n Triangle: true,\n MathUtils: true,\n Spherical: true,\n Cylindrical: true,\n Plane: true,\n Frustum: true,\n Sphere: true,\n Ray: true,\n Matrix4: true,\n Matrix3: true,\n Box3: true,\n Box2: true,\n Line3: true,\n Euler: true,\n Vector4: true,\n Vector3: true,\n Vector2: true,\n Quaternion: true,\n Color: true,\n ColorManagement: true,\n SRGBToLinear: true,\n LinearToSRGB: true,\n SphericalHarmonics3: true,\n SpotLightHelper: true,\n SkeletonHelper: true,\n PointLightHelper: true,\n HemisphereLightHelper: true,\n GridHelper: true,\n PolarGridHelper: true,\n DirectionalLightHelper: true,\n CameraHelper: true,\n BoxHelper: true,\n Box3Helper: true,\n PlaneHelper: true,\n ArrowHelper: true,\n AxesHelper: true,\n Shape: true,\n Path: true,\n ShapePath: true,\n CurvePath: true,\n Curve: true,\n DataUtils: true,\n ImageUtils: true,\n ShapeUtils: true,\n PMREMGenerator: true,\n WebGLUtils: true,\n arrayMin: true,\n arrayMax: true,\n arrayNeedsUint32: true,\n getTypedArray: true,\n createElementNS: true,\n Pass: true,\n FullScreenQuad: true,\n AlphaColor: true,\n HTMLObjectMgr: true,\n HTMLObject: true,\n GeometryCollider: true,\n Collision: true,\n rayCollidePlane: true,\n isPointInPolygon: true,\n isPointInRect: true,\n BoundingBox: true,\n BoundingSphere: true,\n GeometryColliderHelper: true };\n\n Object.defineProperty(exports, \"AlphaColor\", {\n enumerable: true,\n get: function get() {\n return _AlphaColor.AlphaColor;\n } });\n\n Object.defineProperty(exports, \"AmbientLight\", {\n enumerable: true,\n get: function get() {\n return _AmbientLight.AmbientLight;\n } });\n\n Object.defineProperty(exports, \"AmbientLightProbe\", {\n enumerable: true,\n get: function get() {\n return _AmbientLightProbe.AmbientLightProbe;\n } });\n\n Object.defineProperty(exports, \"AnimationClip\", {\n enumerable: true,\n get: function get() {\n return _AnimationClip.AnimationClip;\n } });\n\n Object.defineProperty(exports, \"AnimationLoader\", {\n enumerable: true,\n get: function get() {\n return _AnimationLoader.AnimationLoader;\n } });\n\n Object.defineProperty(exports, \"AnimationMixer\", {\n enumerable: true,\n get: function get() {\n return _AnimationMixer.AnimationMixer;\n } });\n\n Object.defineProperty(exports, \"AnimationObjectGroup\", {\n enumerable: true,\n get: function get() {\n return _AnimationObjectGroup.AnimationObjectGroup;\n } });\n\n exports.AnimationUtils = void 0;\n Object.defineProperty(exports, \"ArrayCamera\", {\n enumerable: true,\n get: function get() {\n return _ArrayCamera.ArrayCamera;\n } });\n\n Object.defineProperty(exports, \"ArrowHelper\", {\n enumerable: true,\n get: function get() {\n return _ArrowHelper.ArrowHelper;\n } });\n\n Object.defineProperty(exports, \"Audio\", {\n enumerable: true,\n get: function get() {\n return _Audio.Audio;\n } });\n\n Object.defineProperty(exports, \"AudioAnalyser\", {\n enumerable: true,\n get: function get() {\n return _AudioAnalyser.AudioAnalyser;\n } });\n\n Object.defineProperty(exports, \"AudioContext\", {\n enumerable: true,\n get: function get() {\n return _AudioContext.AudioContext;\n } });\n\n Object.defineProperty(exports, \"AudioListener\", {\n enumerable: true,\n get: function get() {\n return _AudioListener.AudioListener;\n } });\n\n Object.defineProperty(exports, \"AudioLoader\", {\n enumerable: true,\n get: function get() {\n return _AudioLoader.AudioLoader;\n } });\n\n Object.defineProperty(exports, \"AxesHelper\", {\n enumerable: true,\n get: function get() {\n return _AxesHelper.AxesHelper;\n } });\n\n Object.defineProperty(exports, \"Bone\", {\n enumerable: true,\n get: function get() {\n return _Bone.Bone;\n } });\n\n Object.defineProperty(exports, \"BooleanKeyframeTrack\", {\n enumerable: true,\n get: function get() {\n return _BooleanKeyframeTrack.BooleanKeyframeTrack;\n } });\n\n Object.defineProperty(exports, \"BoundingBox\", {\n enumerable: true,\n get: function get() {\n return _ColliderUtils.BoundingBox;\n } });\n\n Object.defineProperty(exports, \"BoundingSphere\", {\n enumerable: true,\n get: function get() {\n return _ColliderUtils.BoundingSphere;\n } });\n\n Object.defineProperty(exports, \"Box2\", {\n enumerable: true,\n get: function get() {\n return _Box2.Box2;\n } });\n\n Object.defineProperty(exports, \"Box3\", {\n enumerable: true,\n get: function get() {\n return _Box.Box3;\n } });\n\n Object.defineProperty(exports, \"Box3Helper\", {\n enumerable: true,\n get: function get() {\n return _Box3Helper.Box3Helper;\n } });\n\n Object.defineProperty(exports, \"BoxHelper\", {\n enumerable: true,\n get: function get() {\n return _BoxHelper.BoxHelper;\n } });\n\n Object.defineProperty(exports, \"BufferGeometry\", {\n enumerable: true,\n get: function get() {\n return _BufferGeometry.BufferGeometry;\n } });\n\n Object.defineProperty(exports, \"BufferGeometryLoader\", {\n enumerable: true,\n get: function get() {\n return _BufferGeometryLoader.BufferGeometryLoader;\n } });\n\n Object.defineProperty(exports, \"Cache\", {\n enumerable: true,\n get: function get() {\n return _Cache.Cache;\n } });\n\n Object.defineProperty(exports, \"Camera\", {\n enumerable: true,\n get: function get() {\n return _Camera.Camera;\n } });\n\n Object.defineProperty(exports, \"CameraHelper\", {\n enumerable: true,\n get: function get() {\n return _CameraHelper.CameraHelper;\n } });\n\n Object.defineProperty(exports, \"CanvasTexture\", {\n enumerable: true,\n get: function get() {\n return _CanvasTexture.CanvasTexture;\n } });\n\n Object.defineProperty(exports, \"Clock\", {\n enumerable: true,\n get: function get() {\n return _Clock.Clock;\n } });\n\n Object.defineProperty(exports, \"Collision\", {\n enumerable: true,\n get: function get() {\n return _Collision.Collision;\n } });\n\n Object.defineProperty(exports, \"Color\", {\n enumerable: true,\n get: function get() {\n return _Color.Color;\n } });\n\n Object.defineProperty(exports, \"ColorKeyframeTrack\", {\n enumerable: true,\n get: function get() {\n return _ColorKeyframeTrack.ColorKeyframeTrack;\n } });\n\n Object.defineProperty(exports, \"ColorManagement\", {\n enumerable: true,\n get: function get() {\n return _ColorManagement.ColorManagement;\n } });\n\n Object.defineProperty(exports, \"CompressedTexture\", {\n enumerable: true,\n get: function get() {\n return _CompressedTexture.CompressedTexture;\n } });\n\n Object.defineProperty(exports, \"CompressedTextureLoader\", {\n enumerable: true,\n get: function get() {\n return _CompressedTextureLoader.CompressedTextureLoader;\n } });\n\n Object.defineProperty(exports, \"CubeCamera\", {\n enumerable: true,\n get: function get() {\n return _CubeCamera.CubeCamera;\n } });\n\n Object.defineProperty(exports, \"CubeTexture\", {\n enumerable: true,\n get: function get() {\n return _CubeTexture.CubeTexture;\n } });\n\n Object.defineProperty(exports, \"CubeTextureLoader\", {\n enumerable: true,\n get: function get() {\n return _CubeTextureLoader.CubeTextureLoader;\n } });\n\n Object.defineProperty(exports, \"CubicInterpolant\", {\n enumerable: true,\n get: function get() {\n return _CubicInterpolant.CubicInterpolant;\n } });\n\n Object.defineProperty(exports, \"Curve\", {\n enumerable: true,\n get: function get() {\n return _Curve.Curve;\n } });\n\n Object.defineProperty(exports, \"CurvePath\", {\n enumerable: true,\n get: function get() {\n return _CurvePath.CurvePath;\n } });\n\n Object.defineProperty(exports, \"Cylindrical\", {\n enumerable: true,\n get: function get() {\n return _Cylindrical.Cylindrical;\n } });\n\n Object.defineProperty(exports, \"Data3DTexture\", {\n enumerable: true,\n get: function get() {\n return _Data3DTexture.Data3DTexture;\n } });\n\n Object.defineProperty(exports, \"DataArrayTexture\", {\n enumerable: true,\n get: function get() {\n return _DataArrayTexture.DataArrayTexture;\n } });\n\n Object.defineProperty(exports, \"DataTexture\", {\n enumerable: true,\n get: function get() {\n return _DataTexture.DataTexture;\n } });\n\n Object.defineProperty(exports, \"DataTextureLoader\", {\n enumerable: true,\n get: function get() {\n return _DataTextureLoader.DataTextureLoader;\n } });\n\n exports.DataUtils = void 0;\n Object.defineProperty(exports, \"DefaultLoadingManager\", {\n enumerable: true,\n get: function get() {\n return _LoadingManager.DefaultLoadingManager;\n } });\n\n Object.defineProperty(exports, \"DepthTexture\", {\n enumerable: true,\n get: function get() {\n return _DepthTexture.DepthTexture;\n } });\n\n Object.defineProperty(exports, \"DirectionalLight\", {\n enumerable: true,\n get: function get() {\n return _DirectionalLight.DirectionalLight;\n } });\n\n Object.defineProperty(exports, \"DirectionalLightHelper\", {\n enumerable: true,\n get: function get() {\n return _DirectionalLightHelper.DirectionalLightHelper;\n } });\n\n Object.defineProperty(exports, \"DiscreteInterpolant\", {\n enumerable: true,\n get: function get() {\n return _DiscreteInterpolant.DiscreteInterpolant;\n } });\n\n Object.defineProperty(exports, \"Euler\", {\n enumerable: true,\n get: function get() {\n return _Euler.Euler;\n } });\n\n Object.defineProperty(exports, \"EventDispatcher\", {\n enumerable: true,\n get: function get() {\n return _EventDispatcher.EventDispatcher;\n } });\n\n Object.defineProperty(exports, \"FileLoader\", {\n enumerable: true,\n get: function get() {\n return _FileLoader.FileLoader;\n } });\n\n Object.defineProperty(exports, \"Fog\", {\n enumerable: true,\n get: function get() {\n return _Fog.Fog;\n } });\n\n Object.defineProperty(exports, \"FogExp2\", {\n enumerable: true,\n get: function get() {\n return _FogExp.FogExp2;\n } });\n\n Object.defineProperty(exports, \"FramebufferTexture\", {\n enumerable: true,\n get: function get() {\n return _FramebufferTexture.FramebufferTexture;\n } });\n\n Object.defineProperty(exports, \"Frustum\", {\n enumerable: true,\n get: function get() {\n return _Frustum.Frustum;\n } });\n\n Object.defineProperty(exports, \"FullScreenQuad\", {\n enumerable: true,\n get: function get() {\n return _Pass.FullScreenQuad;\n } });\n\n Object.defineProperty(exports, \"GLBufferAttribute\", {\n enumerable: true,\n get: function get() {\n return _GLBufferAttribute.GLBufferAttribute;\n } });\n\n Object.defineProperty(exports, \"GeometryCollider\", {\n enumerable: true,\n get: function get() {\n return _GeometryCollider.GeometryCollider;\n } });\n\n Object.defineProperty(exports, \"GeometryColliderHelper\", {\n enumerable: true,\n get: function get() {\n return _GeometryColliderHelper.GeometryColliderHelper;\n } });\n\n Object.defineProperty(exports, \"GridHelper\", {\n enumerable: true,\n get: function get() {\n return _GridHelper.GridHelper;\n } });\n\n Object.defineProperty(exports, \"Group\", {\n enumerable: true,\n get: function get() {\n return _Group.Group;\n } });\n\n Object.defineProperty(exports, \"HTMLObject\", {\n enumerable: true,\n get: function get() {\n return _HTMLObject.HTMLObject;\n } });\n\n Object.defineProperty(exports, \"HTMLObjectMgr\", {\n enumerable: true,\n get: function get() {\n return _HTMLObjectMgr.HTMLObjectMgr;\n } });\n\n Object.defineProperty(exports, \"HemisphereLight\", {\n enumerable: true,\n get: function get() {\n return _HemisphereLight.HemisphereLight;\n } });\n\n Object.defineProperty(exports, \"HemisphereLightHelper\", {\n enumerable: true,\n get: function get() {\n return _HemisphereLightHelper.HemisphereLightHelper;\n } });\n\n Object.defineProperty(exports, \"HemisphereLightProbe\", {\n enumerable: true,\n get: function get() {\n return _HemisphereLightProbe.HemisphereLightProbe;\n } });\n\n Object.defineProperty(exports, \"ImageBitmapLoader\", {\n enumerable: true,\n get: function get() {\n return _ImageBitmapLoader.ImageBitmapLoader;\n } });\n\n Object.defineProperty(exports, \"ImageLoader\", {\n enumerable: true,\n get: function get() {\n return _ImageLoader.ImageLoader;\n } });\n\n Object.defineProperty(exports, \"ImageUtils\", {\n enumerable: true,\n get: function get() {\n return _ImageUtils.ImageUtils;\n } });\n\n Object.defineProperty(exports, \"InstancedBufferAttribute\", {\n enumerable: true,\n get: function get() {\n return _InstancedBufferAttribute.InstancedBufferAttribute;\n } });\n\n Object.defineProperty(exports, \"InstancedBufferGeometry\", {\n enumerable: true,\n get: function get() {\n return _InstancedBufferGeometry.InstancedBufferGeometry;\n } });\n\n Object.defineProperty(exports, \"InstancedInterleavedBuffer\", {\n enumerable: true,\n get: function get() {\n return _InstancedInterleavedBuffer.InstancedInterleavedBuffer;\n } });\n\n Object.defineProperty(exports, \"InstancedMesh\", {\n enumerable: true,\n get: function get() {\n return _InstancedMesh.InstancedMesh;\n } });\n\n Object.defineProperty(exports, \"InterleavedBuffer\", {\n enumerable: true,\n get: function get() {\n return _InterleavedBuffer.InterleavedBuffer;\n } });\n\n Object.defineProperty(exports, \"InterleavedBufferAttribute\", {\n enumerable: true,\n get: function get() {\n return _InterleavedBufferAttribute.InterleavedBufferAttribute;\n } });\n\n Object.defineProperty(exports, \"Interpolant\", {\n enumerable: true,\n get: function get() {\n return _Interpolant.Interpolant;\n } });\n\n Object.defineProperty(exports, \"KeyframeTrack\", {\n enumerable: true,\n get: function get() {\n return _KeyframeTrack.KeyframeTrack;\n } });\n\n Object.defineProperty(exports, \"LOD\", {\n enumerable: true,\n get: function get() {\n return _LOD.LOD;\n } });\n\n Object.defineProperty(exports, \"Layers\", {\n enumerable: true,\n get: function get() {\n return _Layers.Layers;\n } });\n\n Object.defineProperty(exports, \"Light\", {\n enumerable: true,\n get: function get() {\n return _Light.Light;\n } });\n\n Object.defineProperty(exports, \"LightProbe\", {\n enumerable: true,\n get: function get() {\n return _LightProbe.LightProbe;\n } });\n\n Object.defineProperty(exports, \"Line\", {\n enumerable: true,\n get: function get() {\n return _Line.Line;\n } });\n\n Object.defineProperty(exports, \"Line3\", {\n enumerable: true,\n get: function get() {\n return _Line2.Line3;\n } });\n\n Object.defineProperty(exports, \"LineLoop\", {\n enumerable: true,\n get: function get() {\n return _LineLoop.LineLoop;\n } });\n\n Object.defineProperty(exports, \"LineSegments\", {\n enumerable: true,\n get: function get() {\n return _LineSegments.LineSegments;\n } });\n\n Object.defineProperty(exports, \"LinearInterpolant\", {\n enumerable: true,\n get: function get() {\n return _LinearInterpolant.LinearInterpolant;\n } });\n\n Object.defineProperty(exports, \"LinearToSRGB\", {\n enumerable: true,\n get: function get() {\n return _ColorManagement.LinearToSRGB;\n } });\n\n Object.defineProperty(exports, \"Loader\", {\n enumerable: true,\n get: function get() {\n return _Loader.Loader;\n } });\n\n Object.defineProperty(exports, \"LoaderUtils\", {\n enumerable: true,\n get: function get() {\n return _LoaderUtils.LoaderUtils;\n } });\n\n Object.defineProperty(exports, \"LoadingManager\", {\n enumerable: true,\n get: function get() {\n return _LoadingManager.LoadingManager;\n } });\n\n Object.defineProperty(exports, \"MaterialLoader\", {\n enumerable: true,\n get: function get() {\n return _MaterialLoader.MaterialLoader;\n } });\n\n exports.MathUtils = void 0;\n Object.defineProperty(exports, \"Matrix3\", {\n enumerable: true,\n get: function get() {\n return _Matrix2.Matrix3;\n } });\n\n Object.defineProperty(exports, \"Matrix4\", {\n enumerable: true,\n get: function get() {\n return _Matrix.Matrix4;\n } });\n\n Object.defineProperty(exports, \"Mesh\", {\n enumerable: true,\n get: function get() {\n return _Mesh.Mesh;\n } });\n\n Object.defineProperty(exports, \"NumberKeyframeTrack\", {\n enumerable: true,\n get: function get() {\n return _NumberKeyframeTrack.NumberKeyframeTrack;\n } });\n\n Object.defineProperty(exports, \"Object3D\", {\n enumerable: true,\n get: function get() {\n return _Object3D.Object3D;\n } });\n\n Object.defineProperty(exports, \"ObjectLoader\", {\n enumerable: true,\n get: function get() {\n return _ObjectLoader.ObjectLoader;\n } });\n\n Object.defineProperty(exports, \"OrthographicCamera\", {\n enumerable: true,\n get: function get() {\n return _OrthographicCamera.OrthographicCamera;\n } });\n\n Object.defineProperty(exports, \"PMREMGenerator\", {\n enumerable: true,\n get: function get() {\n return _PMREMGenerator.PMREMGenerator;\n } });\n\n Object.defineProperty(exports, \"Pass\", {\n enumerable: true,\n get: function get() {\n return _Pass.Pass;\n } });\n\n Object.defineProperty(exports, \"Path\", {\n enumerable: true,\n get: function get() {\n return _Path.Path;\n } });\n\n Object.defineProperty(exports, \"PerspectiveCamera\", {\n enumerable: true,\n get: function get() {\n return _PerspectiveCamera.PerspectiveCamera;\n } });\n\n Object.defineProperty(exports, \"Plane\", {\n enumerable: true,\n get: function get() {\n return _Plane.Plane;\n } });\n\n Object.defineProperty(exports, \"PlaneHelper\", {\n enumerable: true,\n get: function get() {\n return _PlaneHelper.PlaneHelper;\n } });\n\n Object.defineProperty(exports, \"PointLight\", {\n enumerable: true,\n get: function get() {\n return _PointLight.PointLight;\n } });\n\n Object.defineProperty(exports, \"PointLightHelper\", {\n enumerable: true,\n get: function get() {\n return _PointLightHelper.PointLightHelper;\n } });\n\n Object.defineProperty(exports, \"Points\", {\n enumerable: true,\n get: function get() {\n return _Points.Points;\n } });\n\n Object.defineProperty(exports, \"PolarGridHelper\", {\n enumerable: true,\n get: function get() {\n return _PolarGridHelper.PolarGridHelper;\n } });\n\n Object.defineProperty(exports, \"PositionalAudio\", {\n enumerable: true,\n get: function get() {\n return _PositionalAudio.PositionalAudio;\n } });\n\n Object.defineProperty(exports, \"PropertyBinding\", {\n enumerable: true,\n get: function get() {\n return _PropertyBinding.PropertyBinding;\n } });\n\n Object.defineProperty(exports, \"PropertyMixer\", {\n enumerable: true,\n get: function get() {\n return _PropertyMixer.PropertyMixer;\n } });\n\n Object.defineProperty(exports, \"Quaternion\", {\n enumerable: true,\n get: function get() {\n return _Quaternion.Quaternion;\n } });\n\n Object.defineProperty(exports, \"QuaternionKeyframeTrack\", {\n enumerable: true,\n get: function get() {\n return _QuaternionKeyframeTrack.QuaternionKeyframeTrack;\n } });\n\n Object.defineProperty(exports, \"QuaternionLinearInterpolant\", {\n enumerable: true,\n get: function get() {\n return _QuaternionLinearInterpolant.QuaternionLinearInterpolant;\n } });\n\n Object.defineProperty(exports, \"Ray\", {\n enumerable: true,\n get: function get() {\n return _Ray.Ray;\n } });\n\n Object.defineProperty(exports, \"Raycaster\", {\n enumerable: true,\n get: function get() {\n return _Raycaster.Raycaster;\n } });\n\n Object.defineProperty(exports, \"RectAreaLight\", {\n enumerable: true,\n get: function get() {\n return _RectAreaLight.RectAreaLight;\n } });\n\n Object.defineProperty(exports, \"SRGBToLinear\", {\n enumerable: true,\n get: function get() {\n return _ColorManagement.SRGBToLinear;\n } });\n\n Object.defineProperty(exports, \"Scene\", {\n enumerable: true,\n get: function get() {\n return _Scene.Scene;\n } });\n\n Object.defineProperty(exports, \"ShaderChunk\", {\n enumerable: true,\n get: function get() {\n return _ShaderChunk.ShaderChunk;\n } });\n\n Object.defineProperty(exports, \"ShaderLib\", {\n enumerable: true,\n get: function get() {\n return _ShaderLib.ShaderLib;\n } });\n\n Object.defineProperty(exports, \"Shape\", {\n enumerable: true,\n get: function get() {\n return _Shape.Shape;\n } });\n\n Object.defineProperty(exports, \"ShapePath\", {\n enumerable: true,\n get: function get() {\n return _ShapePath.ShapePath;\n } });\n\n Object.defineProperty(exports, \"ShapeUtils\", {\n enumerable: true,\n get: function get() {\n return _ShapeUtils.ShapeUtils;\n } });\n\n Object.defineProperty(exports, \"Skeleton\", {\n enumerable: true,\n get: function get() {\n return _Skeleton.Skeleton;\n } });\n\n Object.defineProperty(exports, \"SkeletonHelper\", {\n enumerable: true,\n get: function get() {\n return _SkeletonHelper.SkeletonHelper;\n } });\n\n Object.defineProperty(exports, \"SkinnedMesh\", {\n enumerable: true,\n get: function get() {\n return _SkinnedMesh.SkinnedMesh;\n } });\n\n Object.defineProperty(exports, \"Source\", {\n enumerable: true,\n get: function get() {\n return _Source.Source;\n } });\n\n Object.defineProperty(exports, \"Sphere\", {\n enumerable: true,\n get: function get() {\n return _Sphere.Sphere;\n } });\n\n Object.defineProperty(exports, \"Spherical\", {\n enumerable: true,\n get: function get() {\n return _Spherical.Spherical;\n } });\n\n Object.defineProperty(exports, \"SphericalHarmonics3\", {\n enumerable: true,\n get: function get() {\n return _SphericalHarmonics.SphericalHarmonics3;\n } });\n\n Object.defineProperty(exports, \"SpotLight\", {\n enumerable: true,\n get: function get() {\n return _SpotLight.SpotLight;\n } });\n\n Object.defineProperty(exports, \"SpotLightHelper\", {\n enumerable: true,\n get: function get() {\n return _SpotLightHelper.SpotLightHelper;\n } });\n\n Object.defineProperty(exports, \"Sprite\", {\n enumerable: true,\n get: function get() {\n return _Sprite.Sprite;\n } });\n\n Object.defineProperty(exports, \"StereoCamera\", {\n enumerable: true,\n get: function get() {\n return _StereoCamera.StereoCamera;\n } });\n\n Object.defineProperty(exports, \"StringKeyframeTrack\", {\n enumerable: true,\n get: function get() {\n return _StringKeyframeTrack.StringKeyframeTrack;\n } });\n\n Object.defineProperty(exports, \"Texture\", {\n enumerable: true,\n get: function get() {\n return _Texture.Texture;\n } });\n\n Object.defineProperty(exports, \"TextureLoader\", {\n enumerable: true,\n get: function get() {\n return _TextureLoader.TextureLoader;\n } });\n\n Object.defineProperty(exports, \"Triangle\", {\n enumerable: true,\n get: function get() {\n return _Triangle.Triangle;\n } });\n\n Object.defineProperty(exports, \"Uniform\", {\n enumerable: true,\n get: function get() {\n return _Uniform.Uniform;\n } });\n\n Object.defineProperty(exports, \"UniformsGroup\", {\n enumerable: true,\n get: function get() {\n return _UniformsGroup.UniformsGroup;\n } });\n\n Object.defineProperty(exports, \"UniformsLib\", {\n enumerable: true,\n get: function get() {\n return _UniformsLib.UniformsLib;\n } });\n\n Object.defineProperty(exports, \"UniformsUtils\", {\n enumerable: true,\n get: function get() {\n return _UniformsUtils.UniformsUtils;\n } });\n\n Object.defineProperty(exports, \"Vector2\", {\n enumerable: true,\n get: function get() {\n return _Vector3.Vector2;\n } });\n\n Object.defineProperty(exports, \"Vector3\", {\n enumerable: true,\n get: function get() {\n return _Vector2.Vector3;\n } });\n\n Object.defineProperty(exports, \"Vector4\", {\n enumerable: true,\n get: function get() {\n return _Vector.Vector4;\n } });\n\n Object.defineProperty(exports, \"VectorKeyframeTrack\", {\n enumerable: true,\n get: function get() {\n return _VectorKeyframeTrack.VectorKeyframeTrack;\n } });\n\n Object.defineProperty(exports, \"VideoTexture\", {\n enumerable: true,\n get: function get() {\n return _VideoTexture.VideoTexture;\n } });\n\n Object.defineProperty(exports, \"WebGL1Renderer\", {\n enumerable: true,\n get: function get() {\n return _WebGL1Renderer.WebGL1Renderer;\n } });\n\n Object.defineProperty(exports, \"WebGL3DRenderTarget\", {\n enumerable: true,\n get: function get() {\n return _WebGL3DRenderTarget.WebGL3DRenderTarget;\n } });\n\n Object.defineProperty(exports, \"WebGLArrayRenderTarget\", {\n enumerable: true,\n get: function get() {\n return _WebGLArrayRenderTarget.WebGLArrayRenderTarget;\n } });\n\n Object.defineProperty(exports, \"WebGLCubeRenderTarget\", {\n enumerable: true,\n get: function get() {\n return _WebGLCubeRenderTarget.WebGLCubeRenderTarget;\n } });\n\n Object.defineProperty(exports, \"WebGLMultipleRenderTargets\", {\n enumerable: true,\n get: function get() {\n return _WebGLMultipleRenderTargets.WebGLMultipleRenderTargets;\n } });\n\n Object.defineProperty(exports, \"WebGLRenderTarget\", {\n enumerable: true,\n get: function get() {\n return _WebGLRenderTarget.WebGLRenderTarget;\n } });\n\n Object.defineProperty(exports, \"WebGLRenderer\", {\n enumerable: true,\n get: function get() {\n return _WebGLRenderer.WebGLRenderer;\n } });\n\n Object.defineProperty(exports, \"WebGLUtils\", {\n enumerable: true,\n get: function get() {\n return _WebGLUtils.WebGLUtils;\n } });\n\n Object.defineProperty(exports, \"arrayMax\", {\n enumerable: true,\n get: function get() {\n return _utils.arrayMax;\n } });\n\n Object.defineProperty(exports, \"arrayMin\", {\n enumerable: true,\n get: function get() {\n return _utils.arrayMin;\n } });\n\n Object.defineProperty(exports, \"arrayNeedsUint32\", {\n enumerable: true,\n get: function get() {\n return _utils.arrayNeedsUint32;\n } });\n\n Object.defineProperty(exports, \"createElementNS\", {\n enumerable: true,\n get: function get() {\n return _utils.createElementNS;\n } });\n\n Object.defineProperty(exports, \"getTypedArray\", {\n enumerable: true,\n get: function get() {\n return _utils.getTypedArray;\n } });\n\n Object.defineProperty(exports, \"isPointInPolygon\", {\n enumerable: true,\n get: function get() {\n return _ColliderUtils.isPointInPolygon;\n } });\n\n Object.defineProperty(exports, \"isPointInRect\", {\n enumerable: true,\n get: function get() {\n return _ColliderUtils.isPointInRect;\n } });\n\n Object.defineProperty(exports, \"rayCollidePlane\", {\n enumerable: true,\n get: function get() {\n return _ColliderUtils.rayCollidePlane;\n } });\n\n var _constants = require('pandav:/com/three/0.145.0/src/constants');\n Object.keys(_constants).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _constants[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _constants[key];\n } });\n\n });\n var _WebGLArrayRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLArrayRenderTarget');\n var _WebGL3DRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGL3DRenderTarget');\n var _WebGLMultipleRenderTargets = require('pandav:/com/three/0.145.0/src/renderers/WebGLMultipleRenderTargets');\n var _WebGLCubeRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLCubeRenderTarget');\n var _WebGLRenderTarget = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderTarget');\n var _WebGLRenderer = require('pandav:/com/three/0.145.0/src/renderers/WebGLRenderer');\n var _WebGL1Renderer = require('pandav:/com/three/0.145.0/src/renderers/WebGL1Renderer');\n var _ShaderLib = require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderLib');\n var _UniformsLib = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsLib');\n var _UniformsUtils = require('pandav:/com/three/0.145.0/src/renderers/shaders/UniformsUtils');\n var _ShaderChunk = require('pandav:/com/three/0.145.0/src/renderers/shaders/ShaderChunk');\n var _FogExp = require('pandav:/com/three/0.145.0/src/scenes/FogExp2');\n var _Fog = require('pandav:/com/three/0.145.0/src/scenes/Fog');\n var _Scene = require('pandav:/com/three/0.145.0/src/scenes/Scene');\n var _Sprite = require('pandav:/com/three/0.145.0/src/objects/Sprite');\n var _LOD = require('pandav:/com/three/0.145.0/src/objects/LOD');\n var _SkinnedMesh = require('pandav:/com/three/0.145.0/src/objects/SkinnedMesh');\n var _Skeleton = require('pandav:/com/three/0.145.0/src/objects/Skeleton');\n var _Bone = require('pandav:/com/three/0.145.0/src/objects/Bone');\n var _Mesh = require('pandav:/com/three/0.145.0/src/objects/Mesh');\n var _InstancedMesh = require('pandav:/com/three/0.145.0/src/objects/InstancedMesh');\n var _LineSegments = require('pandav:/com/three/0.145.0/src/objects/LineSegments');\n var _LineLoop = require('pandav:/com/three/0.145.0/src/objects/LineLoop');\n var _Line = require('pandav:/com/three/0.145.0/src/objects/Line');\n var _Points = require('pandav:/com/three/0.145.0/src/objects/Points');\n var _Group = require('pandav:/com/three/0.145.0/src/objects/Group');\n var _VideoTexture = require('pandav:/com/three/0.145.0/src/textures/VideoTexture');\n var _FramebufferTexture = require('pandav:/com/three/0.145.0/src/textures/FramebufferTexture');\n var _Source = require('pandav:/com/three/0.145.0/src/textures/Source');\n var _DataTexture = require('pandav:/com/three/0.145.0/src/textures/DataTexture');\n var _DataArrayTexture = require('pandav:/com/three/0.145.0/src/textures/DataArrayTexture');\n var _Data3DTexture = require('pandav:/com/three/0.145.0/src/textures/Data3DTexture');\n var _CompressedTexture = require('pandav:/com/three/0.145.0/src/textures/CompressedTexture');\n var _CubeTexture = require('pandav:/com/three/0.145.0/src/textures/CubeTexture');\n var _CanvasTexture = require('pandav:/com/three/0.145.0/src/textures/CanvasTexture');\n var _DepthTexture = require('pandav:/com/three/0.145.0/src/textures/DepthTexture');\n var _Texture = require('pandav:/com/three/0.145.0/src/textures/Texture');\n var _Geometries = require('pandav:/com/three/0.145.0/src/geometries/Geometries');\n Object.keys(_Geometries).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _Geometries[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Geometries[key];\n } });\n\n });\n var _Materials = require('pandav:/com/three/0.145.0/src/materials/Materials');\n Object.keys(_Materials).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _Materials[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Materials[key];\n } });\n\n });\n var _AnimationLoader = require('pandav:/com/three/0.145.0/src/loaders/AnimationLoader');\n var _CompressedTextureLoader = require('pandav:/com/three/0.145.0/src/loaders/CompressedTextureLoader');\n var _CubeTextureLoader = require('pandav:/com/three/0.145.0/src/loaders/CubeTextureLoader');\n var _DataTextureLoader = require('pandav:/com/three/0.145.0/src/loaders/DataTextureLoader');\n var _TextureLoader = require('pandav:/com/three/0.145.0/src/loaders/TextureLoader');\n var _ObjectLoader = require('pandav:/com/three/0.145.0/src/loaders/ObjectLoader');\n var _MaterialLoader = require('pandav:/com/three/0.145.0/src/loaders/MaterialLoader');\n var _BufferGeometryLoader = require('pandav:/com/three/0.145.0/src/loaders/BufferGeometryLoader');\n var _LoadingManager = require('pandav:/com/three/0.145.0/src/loaders/LoadingManager');\n var _ImageLoader = require('pandav:/com/three/0.145.0/src/loaders/ImageLoader');\n var _ImageBitmapLoader = require('pandav:/com/three/0.145.0/src/loaders/ImageBitmapLoader');\n var _FileLoader = require('pandav:/com/three/0.145.0/src/loaders/FileLoader');\n var _Loader = require('pandav:/com/three/0.145.0/src/loaders/Loader');\n var _LoaderUtils = require('pandav:/com/three/0.145.0/src/loaders/LoaderUtils');\n var _Cache = require('pandav:/com/three/0.145.0/src/loaders/Cache');\n var _AudioLoader = require('pandav:/com/three/0.145.0/src/loaders/AudioLoader');\n var _SpotLight = require('pandav:/com/three/0.145.0/src/lights/SpotLight');\n var _PointLight = require('pandav:/com/three/0.145.0/src/lights/PointLight');\n var _RectAreaLight = require('pandav:/com/three/0.145.0/src/lights/RectAreaLight');\n var _HemisphereLight = require('pandav:/com/three/0.145.0/src/lights/HemisphereLight');\n var _HemisphereLightProbe = require('pandav:/com/three/0.145.0/src/lights/HemisphereLightProbe');\n var _DirectionalLight = require('pandav:/com/three/0.145.0/src/lights/DirectionalLight');\n var _AmbientLight = require('pandav:/com/three/0.145.0/src/lights/AmbientLight');\n var _AmbientLightProbe = require('pandav:/com/three/0.145.0/src/lights/AmbientLightProbe');\n var _Light = require('pandav:/com/three/0.145.0/src/lights/Light');\n var _LightProbe = require('pandav:/com/three/0.145.0/src/lights/LightProbe');\n var _StereoCamera = require('pandav:/com/three/0.145.0/src/cameras/StereoCamera');\n var _PerspectiveCamera = require('pandav:/com/three/0.145.0/src/cameras/PerspectiveCamera');\n var _OrthographicCamera = require('pandav:/com/three/0.145.0/src/cameras/OrthographicCamera');\n var _CubeCamera = require('pandav:/com/three/0.145.0/src/cameras/CubeCamera');\n var _ArrayCamera = require('pandav:/com/three/0.145.0/src/cameras/ArrayCamera');\n var _Camera = require('pandav:/com/three/0.145.0/src/cameras/Camera');\n var _AudioListener = require('pandav:/com/three/0.145.0/src/audio/AudioListener');\n var _PositionalAudio = require('pandav:/com/three/0.145.0/src/audio/PositionalAudio');\n var _AudioContext = require('pandav:/com/three/0.145.0/src/audio/AudioContext');\n var _AudioAnalyser = require('pandav:/com/three/0.145.0/src/audio/AudioAnalyser');\n var _Audio = require('pandav:/com/three/0.145.0/src/audio/Audio');\n var _VectorKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/VectorKeyframeTrack');\n var _StringKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/StringKeyframeTrack');\n var _QuaternionKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/QuaternionKeyframeTrack');\n var _NumberKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/NumberKeyframeTrack');\n var _ColorKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/ColorKeyframeTrack');\n var _BooleanKeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/tracks/BooleanKeyframeTrack');\n var _PropertyMixer = require('pandav:/com/three/0.145.0/src/animation/PropertyMixer');\n var _PropertyBinding = require('pandav:/com/three/0.145.0/src/animation/PropertyBinding');\n var _KeyframeTrack = require('pandav:/com/three/0.145.0/src/animation/KeyframeTrack');\n var _AnimationUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/animation/AnimationUtils'));\n exports.AnimationUtils = _AnimationUtils;\n var _AnimationObjectGroup = require('pandav:/com/three/0.145.0/src/animation/AnimationObjectGroup');\n var _AnimationMixer = require('pandav:/com/three/0.145.0/src/animation/AnimationMixer');\n var _AnimationClip = require('pandav:/com/three/0.145.0/src/animation/AnimationClip');\n var _Uniform = require('pandav:/com/three/0.145.0/src/core/Uniform');\n var _UniformsGroup = require('pandav:/com/three/0.145.0/src/core/UniformsGroup');\n var _InstancedBufferGeometry = require('pandav:/com/three/0.145.0/src/core/InstancedBufferGeometry');\n var _BufferGeometry = require('pandav:/com/three/0.145.0/src/core/BufferGeometry');\n var _InterleavedBufferAttribute = require('pandav:/com/three/0.145.0/src/core/InterleavedBufferAttribute');\n var _InstancedInterleavedBuffer = require('pandav:/com/three/0.145.0/src/core/InstancedInterleavedBuffer');\n var _InterleavedBuffer = require('pandav:/com/three/0.145.0/src/core/InterleavedBuffer');\n var _InstancedBufferAttribute = require('pandav:/com/three/0.145.0/src/core/InstancedBufferAttribute');\n var _GLBufferAttribute = require('pandav:/com/three/0.145.0/src/core/GLBufferAttribute');\n var _BufferAttribute = require('pandav:/com/three/0.145.0/src/core/BufferAttribute');\n Object.keys(_BufferAttribute).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _BufferAttribute[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _BufferAttribute[key];\n } });\n\n });\n var _Object3D = require('pandav:/com/three/0.145.0/src/core/Object3D');\n var _Raycaster = require('pandav:/com/three/0.145.0/src/core/Raycaster');\n var _Layers = require('pandav:/com/three/0.145.0/src/core/Layers');\n var _EventDispatcher = require('pandav:/com/three/0.145.0/src/core/EventDispatcher');\n var _Clock = require('pandav:/com/three/0.145.0/src/core/Clock');\n var _QuaternionLinearInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/QuaternionLinearInterpolant');\n var _LinearInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/LinearInterpolant');\n var _DiscreteInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/DiscreteInterpolant');\n var _CubicInterpolant = require('pandav:/com/three/0.145.0/src/math/interpolants/CubicInterpolant');\n var _Interpolant = require('pandav:/com/three/0.145.0/src/math/Interpolant');\n var _Triangle = require('pandav:/com/three/0.145.0/src/math/Triangle');\n var _MathUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/math/MathUtils'));\n exports.MathUtils = _MathUtils;\n var _Spherical = require('pandav:/com/three/0.145.0/src/math/Spherical');\n var _Cylindrical = require('pandav:/com/three/0.145.0/src/math/Cylindrical');\n var _Plane = require('pandav:/com/three/0.145.0/src/math/Plane');\n var _Frustum = require('pandav:/com/three/0.145.0/src/math/Frustum');\n var _Sphere = require('pandav:/com/three/0.145.0/src/math/Sphere');\n var _Ray = require('pandav:/com/three/0.145.0/src/math/Ray');\n var _Matrix = require('pandav:/com/three/0.145.0/src/math/Matrix4');\n var _Matrix2 = require('pandav:/com/three/0.145.0/src/math/Matrix3');\n var _Box = require('pandav:/com/three/0.145.0/src/math/Box3');\n var _Box2 = require('pandav:/com/three/0.145.0/src/math/Box2');\n var _Line2 = require('pandav:/com/three/0.145.0/src/math/Line3');\n var _Euler = require('pandav:/com/three/0.145.0/src/math/Euler');\n var _Vector = require('pandav:/com/three/0.145.0/src/math/Vector4');\n var _Vector2 = require('pandav:/com/three/0.145.0/src/math/Vector3');\n var _Vector3 = require('pandav:/com/three/0.145.0/src/math/Vector2');\n var _Quaternion = require('pandav:/com/three/0.145.0/src/math/Quaternion');\n var _Color = require('pandav:/com/three/0.145.0/src/math/Color');\n var _ColorManagement = require('pandav:/com/three/0.145.0/src/math/ColorManagement');\n var _SphericalHarmonics = require('pandav:/com/three/0.145.0/src/math/SphericalHarmonics3');\n var _SpotLightHelper = require('pandav:/com/three/0.145.0/src/helpers/SpotLightHelper');\n var _SkeletonHelper = require('pandav:/com/three/0.145.0/src/helpers/SkeletonHelper');\n var _PointLightHelper = require('pandav:/com/three/0.145.0/src/helpers/PointLightHelper');\n var _HemisphereLightHelper = require('pandav:/com/three/0.145.0/src/helpers/HemisphereLightHelper');\n var _GridHelper = require('pandav:/com/three/0.145.0/src/helpers/GridHelper');\n var _PolarGridHelper = require('pandav:/com/three/0.145.0/src/helpers/PolarGridHelper');\n var _DirectionalLightHelper = require('pandav:/com/three/0.145.0/src/helpers/DirectionalLightHelper');\n var _CameraHelper = require('pandav:/com/three/0.145.0/src/helpers/CameraHelper');\n var _BoxHelper = require('pandav:/com/three/0.145.0/src/helpers/BoxHelper');\n var _Box3Helper = require('pandav:/com/three/0.145.0/src/helpers/Box3Helper');\n var _PlaneHelper = require('pandav:/com/three/0.145.0/src/helpers/PlaneHelper');\n var _ArrowHelper = require('pandav:/com/three/0.145.0/src/helpers/ArrowHelper');\n var _AxesHelper = require('pandav:/com/three/0.145.0/src/helpers/AxesHelper');\n var _Curves = require('pandav:/com/three/0.145.0/src/extras/curves/Curves');\n Object.keys(_Curves).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _Curves[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _Curves[key];\n } });\n\n });\n var _Shape = require('pandav:/com/three/0.145.0/src/extras/core/Shape');\n var _Path = require('pandav:/com/three/0.145.0/src/extras/core/Path');\n var _ShapePath = require('pandav:/com/three/0.145.0/src/extras/core/ShapePath');\n var _CurvePath = require('pandav:/com/three/0.145.0/src/extras/core/CurvePath');\n var _Curve = require('pandav:/com/three/0.145.0/src/extras/core/Curve');\n var _DataUtils = _interopRequireWildcard(require('pandav:/com/three/0.145.0/src/extras/DataUtils'));\n exports.DataUtils = _DataUtils;\n var _ImageUtils = require('pandav:/com/three/0.145.0/src/extras/ImageUtils');\n var _ShapeUtils = require('pandav:/com/three/0.145.0/src/extras/ShapeUtils');\n var _PMREMGenerator = require('pandav:/com/three/0.145.0/src/extras/PMREMGenerator');\n var _WebGLUtils = require('pandav:/com/three/0.145.0/src/renderers/webgl/WebGLUtils');\n var _ThreeLegacy = require('pandav:/com/three/0.145.0/src/Three.Legacy');\n Object.keys(_ThreeLegacy).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _ThreeLegacy[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ThreeLegacy[key];\n } });\n\n });\n var _utils = require('pandav:/com/three/0.145.0/src/utils');\n var _Pass = require('pandav:/com/three/0.145.0/src/postprocessing/Pass');\n var _AlphaColor = require('pandav:/com/three/0.145.0/src/math/AlphaColor');\n var _HTMLObjectMgr = require('pandav:/com/three/0.145.0/src/objects/HTMLObjectMgr');\n var _HTMLObject = require('pandav:/com/three/0.145.0/src/objects/HTMLObject');\n var _GeometryCollider = require('pandav:/com/three/0.145.0/src/collider/GeometryCollider');\n var _Collision = require('pandav:/com/three/0.145.0/src/collider/Collision');\n var _ColliderUtils = require('pandav:/com/three/0.145.0/src/collider/ColliderUtils');\n var _GeometryColliderHelper = require('pandav:/com/three/0.145.0/src/collider/Helper/GeometryColliderHelper');\n function _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n }\n function _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n default: e };\n\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null },\n\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n.default = e, t && t.set(e, n), n;\n }\n if (typeof __THREE_DEVTOOLS__ !== 'undefined') {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('register', {\n detail: {\n revision: _constants.REVISION } }));\n\n\n }\n if (typeof window !== 'undefined') {\n if (window.__THREE__) {\n console.warn('WARNING: Multiple instances of Three.js being imported.');\n } else {\n window.__THREE__ = _constants.REVISION;\n }\n }return module.exports;});", "requires": [ "pandav:/src/constants.js", "pandav:/src/renderers/WebGLArrayRenderTarget.js", "pandav:/src/renderers/WebGL3DRenderTarget.js", "pandav:/src/renderers/WebGLMultipleRenderTargets.js", "pandav:/src/renderers/WebGLCubeRenderTarget.js", "pandav:/src/renderers/WebGLRenderTarget.js", "pandav:/src/renderers/WebGLRenderer.js", "pandav:/src/renderers/WebGL1Renderer.js", "pandav:/src/renderers/shaders/ShaderLib.js", "pandav:/src/renderers/shaders/UniformsLib.js", "pandav:/src/renderers/shaders/UniformsUtils.js", "pandav:/src/renderers/shaders/ShaderChunk.js", "pandav:/src/scenes/FogExp2.js", "pandav:/src/scenes/Fog.js", "pandav:/src/scenes/Scene.js", "pandav:/src/objects/Sprite.js", "pandav:/src/objects/LOD.js", "pandav:/src/objects/SkinnedMesh.js", "pandav:/src/objects/Skeleton.js", "pandav:/src/objects/Bone.js", "pandav:/src/objects/Mesh.js", "pandav:/src/objects/InstancedMesh.js", "pandav:/src/objects/LineSegments.js", "pandav:/src/objects/LineLoop.js", "pandav:/src/objects/Line.js", "pandav:/src/objects/Points.js", "pandav:/src/objects/Group.js", "pandav:/src/textures/VideoTexture.js", "pandav:/src/textures/FramebufferTexture.js", "pandav:/src/textures/Source.js", "pandav:/src/textures/DataTexture.js", "pandav:/src/textures/DataArrayTexture.js", "pandav:/src/textures/Data3DTexture.js", "pandav:/src/textures/CompressedTexture.js", "pandav:/src/textures/CubeTexture.js", "pandav:/src/textures/CanvasTexture.js", "pandav:/src/textures/DepthTexture.js", "pandav:/src/textures/Texture.js", "pandav:/src/geometries/Geometries.js", "pandav:/src/materials/Materials.js", "pandav:/src/loaders/AnimationLoader.js", "pandav:/src/loaders/CompressedTextureLoader.js", "pandav:/src/loaders/CubeTextureLoader.js", "pandav:/src/loaders/DataTextureLoader.js", "pandav:/src/loaders/TextureLoader.js", "pandav:/src/loaders/ObjectLoader.js", "pandav:/src/loaders/MaterialLoader.js", "pandav:/src/loaders/BufferGeometryLoader.js", "pandav:/src/loaders/LoadingManager.js", "pandav:/src/loaders/ImageLoader.js", "pandav:/src/loaders/ImageBitmapLoader.js", "pandav:/src/loaders/FileLoader.js", "pandav:/src/loaders/Loader.js", "pandav:/src/loaders/LoaderUtils.js", "pandav:/src/loaders/Cache.js", "pandav:/src/loaders/AudioLoader.js", "pandav:/src/lights/SpotLight.js", "pandav:/src/lights/PointLight.js", "pandav:/src/lights/RectAreaLight.js", "pandav:/src/lights/HemisphereLight.js", "pandav:/src/lights/HemisphereLightProbe.js", "pandav:/src/lights/DirectionalLight.js", "pandav:/src/lights/AmbientLight.js", "pandav:/src/lights/AmbientLightProbe.js", "pandav:/src/lights/Light.js", "pandav:/src/lights/LightProbe.js", "pandav:/src/cameras/StereoCamera.js", "pandav:/src/cameras/PerspectiveCamera.js", "pandav:/src/cameras/OrthographicCamera.js", "pandav:/src/cameras/CubeCamera.js", "pandav:/src/cameras/ArrayCamera.js", "pandav:/src/cameras/Camera.js", "pandav:/src/audio/AudioListener.js", "pandav:/src/audio/PositionalAudio.js", "pandav:/src/audio/AudioContext.js", "pandav:/src/audio/AudioAnalyser.js", "pandav:/src/audio/Audio.js", "pandav:/src/animation/tracks/VectorKeyframeTrack.js", "pandav:/src/animation/tracks/StringKeyframeTrack.js", "pandav:/src/animation/tracks/QuaternionKeyframeTrack.js", "pandav:/src/animation/tracks/NumberKeyframeTrack.js", "pandav:/src/animation/tracks/ColorKeyframeTrack.js", "pandav:/src/animation/tracks/BooleanKeyframeTrack.js", "pandav:/src/animation/PropertyMixer.js", "pandav:/src/animation/PropertyBinding.js", "pandav:/src/animation/KeyframeTrack.js", "pandav:/src/animation/AnimationUtils.js", "pandav:/src/animation/AnimationObjectGroup.js", "pandav:/src/animation/AnimationMixer.js", "pandav:/src/animation/AnimationClip.js", "pandav:/src/core/Uniform.js", "pandav:/src/core/UniformsGroup.js", "pandav:/src/core/InstancedBufferGeometry.js", "pandav:/src/core/BufferGeometry.js", "pandav:/src/core/InterleavedBufferAttribute.js", "pandav:/src/core/InstancedInterleavedBuffer.js", "pandav:/src/core/InterleavedBuffer.js", "pandav:/src/core/InstancedBufferAttribute.js", "pandav:/src/core/GLBufferAttribute.js", "pandav:/src/core/BufferAttribute.js", "pandav:/src/core/Object3D.js", "pandav:/src/core/Raycaster.js", "pandav:/src/core/Layers.js", "pandav:/src/core/EventDispatcher.js", "pandav:/src/core/Clock.js", "pandav:/src/math/interpolants/QuaternionLinearInterpolant.js", "pandav:/src/math/interpolants/LinearInterpolant.js", "pandav:/src/math/interpolants/DiscreteInterpolant.js", "pandav:/src/math/interpolants/CubicInterpolant.js", "pandav:/src/math/Interpolant.js", "pandav:/src/math/Triangle.js", "pandav:/src/math/MathUtils.js", "pandav:/src/math/Spherical.js", "pandav:/src/math/Cylindrical.js", "pandav:/src/math/Plane.js", "pandav:/src/math/Frustum.js", "pandav:/src/math/Sphere.js", "pandav:/src/math/Ray.js", "pandav:/src/math/Matrix4.js", "pandav:/src/math/Matrix3.js", "pandav:/src/math/Box3.js", "pandav:/src/math/Box2.js", "pandav:/src/math/Line3.js", "pandav:/src/math/Euler.js", "pandav:/src/math/Vector4.js", "pandav:/src/math/Vector3.js", "pandav:/src/math/Vector2.js", "pandav:/src/math/Quaternion.js", "pandav:/src/math/Color.js", "pandav:/src/math/ColorManagement.js", "pandav:/src/math/SphericalHarmonics3.js", "pandav:/src/helpers/SpotLightHelper.js", "pandav:/src/helpers/SkeletonHelper.js", "pandav:/src/helpers/PointLightHelper.js", "pandav:/src/helpers/HemisphereLightHelper.js", "pandav:/src/helpers/GridHelper.js", "pandav:/src/helpers/PolarGridHelper.js", "pandav:/src/helpers/DirectionalLightHelper.js", "pandav:/src/helpers/CameraHelper.js", "pandav:/src/helpers/BoxHelper.js", "pandav:/src/helpers/Box3Helper.js", "pandav:/src/helpers/PlaneHelper.js", "pandav:/src/helpers/ArrowHelper.js", "pandav:/src/helpers/AxesHelper.js", "pandav:/src/extras/curves/Curves.js", "pandav:/src/extras/core/Shape.js", "pandav:/src/extras/core/Path.js", "pandav:/src/extras/core/ShapePath.js", "pandav:/src/extras/core/CurvePath.js", "pandav:/src/extras/core/Curve.js", "pandav:/src/extras/DataUtils.js", "pandav:/src/extras/ImageUtils.js", "pandav:/src/extras/ShapeUtils.js", "pandav:/src/extras/PMREMGenerator.js", "pandav:/src/renderers/webgl/WebGLUtils.js", "pandav:/src/Three.Legacy.js", "pandav:/src/utils.js", "pandav:/src/postprocessing/Pass.js", "pandav:/src/math/AlphaColor.js", "pandav:/src/objects/HTMLObjectMgr.js", "pandav:/src/objects/HTMLObject.js", "pandav:/src/collider/GeometryCollider.js", "pandav:/src/collider/Collision.js", "pandav:/src/collider/ColliderUtils.js", "pandav:/src/collider/Helper/GeometryColliderHelper.js" ], "buildLevel": 2, "outputDir": "/com/three/0.145.0/src", "outputPath": "/com/three/0.145.0/src/Three.js", "fileName": "/src/Three.js" } }