@realsee/five 6.8.0-alpha.28 → 6.8.0-alpha.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/main.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/five.AdaptiveLuminancePass.html +1 -1
- package/docs/classes/five.AnimationFrameLoop.html +1 -1
- package/docs/classes/five.BoundingMesh.html +1 -1
- package/docs/classes/five.Camera.html +3 -3
- package/docs/classes/five.EyeDomeLightingPass.html +1 -1
- package/docs/classes/five.Five.html +7 -7
- package/docs/classes/five.FivePass.html +1 -1
- package/docs/classes/five.InternalWebGLRenderer.html +1 -1
- package/docs/classes/five.Model.html +8 -8
- package/docs/classes/five.ModelScene.html +1 -1
- package/docs/classes/five.NetworkSubscribe.html +1 -1
- package/docs/classes/five.PBMContainer.html +1 -1
- package/docs/classes/five.PBMCustomShader.html +1 -1
- package/docs/classes/five.PBMGSObject.html +2 -2
- package/docs/classes/five.PBMGroup.html +1 -1
- package/docs/classes/five.PBMMesh.html +1 -1
- package/docs/classes/five.PBMMeshMaterial.html +3 -3
- package/docs/classes/five.PBMPanoFilter.html +3 -3
- package/docs/classes/five.PBMPointCloud.html +1 -1
- package/docs/classes/five.PBMPointCloudMaterial.html +2 -2
- package/docs/classes/five.PBMSkinnedMesh.html +1 -1
- package/docs/classes/five.PBMUpdateable.html +1 -1
- package/docs/classes/five.PanoCircleMesh.html +1 -1
- package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
- package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
- package/docs/classes/five.Parameter.html +8 -8
- package/docs/classes/five.Scene.html +1 -1
- package/docs/classes/five.Subscribe.html +1 -1
- package/docs/classes/five.Tile.html +1 -1
- package/docs/classes/five.Tile3D.html +6 -6
- package/docs/classes/five.TileNode.html +1 -1
- package/docs/classes/five.TrajectoryNode.html +1 -1
- package/docs/classes/five.WorkResolvedObserver.html +1 -1
- package/docs/classes/gltf-loader.DDSLoader.html +1 -1
- package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
- package/docs/classes/gltf-loader.GLTFLoader.html +2 -2
- package/docs/classes/gltf-loader.GLTFObject.html +1 -1
- package/docs/classes/gltf-loader.THREEGLTFLoader.html +2 -2
- package/docs/classes/line.Line.html +1 -1
- package/docs/classes/line.LineGeometry.html +1 -1
- package/docs/classes/line.LineMaterial.html +1 -1
- package/docs/classes/line.LineSegmentsGeometry.html +1 -1
- package/docs/classes/line.THREE_Line2.html +1 -1
- package/docs/classes/line.THREE_LineSegments2.html +1 -1
- package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
- package/docs/classes/plugins.CSS3DObject.html +7 -0
- package/docs/classes/plugins.CSS3DSprite.html +7 -0
- package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
- package/docs/classes/sticker.Sticker.html +1 -1
- package/docs/classes/vfx.Airflow.html +1 -1
- package/docs/classes/vfx.Flame.html +1 -1
- package/docs/classes/vfx.Particle.html +6 -6
- package/docs/classes/vfx.ParticleGPU.html +3 -3
- package/docs/classes/vfx.SpotLight.html +1 -1
- package/docs/functions/five.createDebugBoundingMesh.html +1 -1
- package/docs/functions/plugins.CSS3DPlugin.html +1 -0
- package/docs/functions/react.useFiveCurrentObserver.html +2 -2
- package/docs/functions/react.useFiveFloor.html +2 -2
- package/docs/functions/react.useFiveProject2d.html +2 -2
- package/docs/functions/vue.useFiveCurrentObserver.html +2 -2
- package/docs/functions/vue.useFiveFloor.html +2 -2
- package/docs/functions/vue.useFiveWorks.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/five.AddableObject.html +1 -1
- package/docs/interfaces/five.AjaxOptions.html +1 -1
- package/docs/interfaces/five.BaseEvent.html +1 -1
- package/docs/interfaces/five.BaseExtendableEvent.html +1 -1
- package/docs/interfaces/five.EventCallback.html +7 -7
- package/docs/interfaces/five.FiveInitArgs.html +2 -2
- package/docs/interfaces/five.GestureEvent.html +2 -2
- package/docs/interfaces/five.ImageOptions.html +1 -1
- package/docs/interfaces/five.IntersectEvent.html +2 -2
- package/docs/interfaces/five.IntersectMesh.html +1 -1
- package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/five.Intersection.html +1 -1
- package/docs/interfaces/five.LooseWorkWithExtrinsics.html +1 -1
- package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +2 -2
- package/docs/interfaces/five.ModeChangeEvent.html +1 -1
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ModelEvent.html +2 -2
- package/docs/interfaces/five.ModelSceneEvent.html +1 -1
- package/docs/interfaces/five.ModelTileEvent.html +1 -1
- package/docs/interfaces/five.MovePanoOptions.html +2 -2
- package/docs/interfaces/five.NetworkAbortError.html +1 -1
- package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
- package/docs/interfaces/five.NetworkOptions.html +1 -1
- package/docs/interfaces/five.NetworkProxyError.html +1 -1
- package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
- package/docs/interfaces/five.NetworkResponseError.html +1 -1
- package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
- package/docs/interfaces/five.ObjectEvent.html +1 -1
- package/docs/interfaces/five.PBMCustomShaderInitArgs.html +2 -2
- package/docs/interfaces/five.PBMMaterial.html +1 -1
- package/docs/interfaces/five.PBMMeshMaterialParameters.html +2 -2
- package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +2 -2
- package/docs/interfaces/five.PBMRefinedScreen.html +2 -2
- package/docs/interfaces/five.PanoCircleMeshInterface.html +2 -2
- package/docs/interfaces/five.PanoEvent.html +2 -2
- package/docs/interfaces/five.PanoPrepareEvent.html +1 -1
- package/docs/interfaces/five.PanoTextureEvent.html +3 -3
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ParameterMaterialValue.html +8 -8
- package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
- package/docs/interfaces/five.ParameterValue.html +8 -8
- package/docs/interfaces/five.Pose.html +1 -1
- package/docs/interfaces/five.RenderEvent.html +1 -1
- package/docs/interfaces/five.ResolvedParameterValue.html +8 -8
- package/docs/interfaces/five.SplatData.html +2 -2
- package/docs/interfaces/five.State.html +1 -1
- package/docs/interfaces/five.StateEvent.html +1 -1
- package/docs/interfaces/five.TextureOptions.html +1 -1
- package/docs/interfaces/five.Tile3DOptions.html +2 -2
- package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ViewLayer.html +6 -6
- package/docs/interfaces/five.WorkCubeImage.html +1 -1
- package/docs/interfaces/five.WorkImage.html +1 -1
- package/docs/interfaces/five.WorkObserver.html +1 -1
- package/docs/interfaces/five.WorkObserverProto.html +1 -1
- package/docs/interfaces/five.WorkTile.html +1 -1
- package/docs/interfaces/five.WorksEvent.html +1 -1
- package/docs/interfaces/five.XRControllerEvent.html +1 -1
- package/docs/interfaces/five.XRGestureEvent.html +2 -2
- package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.XRSessionEvent.html +2 -2
- package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
- package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
- package/docs/interfaces/plugins.CSS3DPluginController.html +50 -0
- package/docs/interfaces/plugins.CSS3DPluginType.Config.html +2 -0
- package/docs/interfaces/plugins.CSS3DPluginType.CreateCSS3DObjectType.html +10 -0
- package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +10 -0
- package/docs/interfaces/plugins.CSS3DPluginType.Params.html +4 -0
- package/docs/interfaces/plugins.CSS3DPluginType.State.html +8 -0
- package/docs/interfaces/plugins.DynamicPathLinePluginController.html +3 -3
- package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +2 -2
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.State.html +1 -1
- package/docs/interfaces/plugins.ItemMaskController.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.State.html +2 -2
- package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
- package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
- package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
- package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
- package/docs/interfaces/plugins.PlayingState.html +2 -2
- package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
- package/docs/interfaces/plugins.TrajectoryController.html +8 -8
- package/docs/interfaces/react.FiveInjectionTypes.html +7 -7
- package/docs/interfaces/sticker.IntersectionLike.html +2 -2
- package/docs/interfaces/vfx.ParticleArgs.html +4 -4
- package/docs/interfaces/vue.FiveActionVueCallbacks.html +3 -3
- package/docs/modules/plugins.CSS3DPluginType.html +1 -0
- package/docs/modules/plugins.html +1 -1
- package/docs/types/five.LegacyEventType.html +7 -7
- package/docs/types/five.ParseOptions.html +1 -1
- package/docs/types/five.Works.html +1 -1
- package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
- package/docs/types/plugins.CSS3DPluginType.PluginData.html +1 -0
- package/docs/types/plugins.CSS3DPluginType.ServerData.html +1 -0
- package/five/application/five.d.ts +3 -3
- package/five/bvh/bvhObject.d.ts +2 -2
- package/five/controllers/model.d.ts +2 -2
- package/five/controllers/panorama.d.ts +2 -1
- package/five/core/camera.d.ts +1 -1
- package/five/gaussian-splatting/util/renderData.d.ts +15 -1
- package/five/index.js +118 -93
- package/five/index.mjs +588 -515
- package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +1 -1
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting.d.ts +2 -3
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +5 -3
- package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +4 -0
- package/five/model/tile3d/index.d.ts +4 -3
- package/five/texture/loader.d.ts +1 -1
- package/five/utils/imageURL.d.ts +1 -1
- package/five/webxr/motionHelper.d.ts +1 -1
- package/gltf-loader/index.js +3 -3
- package/gltf-loader/index.mjs +3 -3
- package/line/index.js +3 -3
- package/line/index.mjs +3 -3
- package/package.json +1 -1
- package/plugins/CSS3DPlugin/Controller.d.ts +60 -0
- package/plugins/CSS3DPlugin/index.d.ts +5 -0
- package/plugins/CSS3DPlugin/typing.d.ts +32 -0
- package/plugins/TrajectoryPlugin/Controller.d.ts +1 -1
- package/plugins/index.d.ts +2 -1
- package/plugins/index.js +30 -10
- package/plugins/index.mjs +432 -306
- package/plugins/utils/uuid.d.ts +1 -4
- package/react/context.d.ts +3 -2
- package/react/createProvider.d.ts +4 -4
- package/react/createStore.d.ts +3 -3
- package/react/hooks/useFiveProject2d.d.ts +1 -1
- package/react/index.js +2 -2
- package/react/index.mjs +2 -2
- package/react/rendererPool.d.ts +2 -2
- package/shader-lib/index.js +2 -2
- package/shader-lib/index.mjs +2 -2
- package/sticker/index.js +3 -3
- package/sticker/index.mjs +3 -3
- package/umd/five-gltf-loader.js +3 -3
- package/umd/five-line.js +3 -3
- package/umd/five-plugins.js +30 -10
- package/umd/five-react.js +2 -2
- package/umd/five-shader-lib.js +2 -2
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +2 -2
- package/umd/five-vue.js +2 -2
- package/umd/five.js +99 -74
- package/vfx/index.js +2 -2
- package/vfx/index.mjs +2 -2
- package/vue/index.js +2 -2
- package/vue/index.mjs +2 -2
- package/vue/rendererPool.d.ts +5 -5
- package/work-downloader/index.js +2 -2
- package/work-downloader/index.mjs +2 -2
package/five/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five
|
|
4
|
-
* Generated: 4/
|
|
5
|
-
* Version: 6.8.0-alpha.
|
|
4
|
+
* Generated: 2026/4/8
|
|
5
|
+
* Version: 6.8.0-alpha.29
|
|
6
6
|
* Terms:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
* Update: July 28, 2021
|
|
@@ -7169,8 +7169,8 @@ var Ua = class {
|
|
|
7169
7169
|
if (n.bufferView !== void 0) {
|
|
7170
7170
|
let e = this.json.bufferViews[n.bufferView];
|
|
7171
7171
|
t = this.loadBuffer(e.buffer).then((t) => {
|
|
7172
|
-
let r = e.byteOffset || 0, i = e.byteLength || 0;
|
|
7173
|
-
return li(new Blob([
|
|
7172
|
+
let r = e.byteOffset || 0, i = e.byteLength || 0, a = new Uint8Array(t, r, i);
|
|
7173
|
+
return li(new Blob([a], { type: n.mimeType }));
|
|
7174
7174
|
});
|
|
7175
7175
|
} else if (n.uri) {
|
|
7176
7176
|
let e = this.resolveResouce(n.uri);
|
|
@@ -8508,7 +8508,8 @@ var Xo = class {
|
|
|
8508
8508
|
for (let e = 0; e < 21; ++e) i[e] = (t[o + e] - 128) / 128;
|
|
8509
8509
|
o += 21;
|
|
8510
8510
|
}
|
|
8511
|
-
|
|
8511
|
+
let s = new Float32Array(n), c = r ? new Float32Array(r) : void 0, l = i ? new Float32Array(i) : void 0;
|
|
8512
|
+
a == null || a(e, s, c, l);
|
|
8512
8513
|
}
|
|
8513
8514
|
}
|
|
8514
8515
|
});
|
|
@@ -13006,7 +13007,7 @@ var ad = class {
|
|
|
13006
13007
|
e.content && (n++, t += e.content.memoryUsage, e.content.loadState === "READY" && r++);
|
|
13007
13008
|
}), r < 2 || n < 2) this.currentMaxScreenSpaceError = e.maxScreenSpaceError;
|
|
13008
13009
|
else {
|
|
13009
|
-
let i = 1024 * 1024, a = t / r * n, o = e.maxMemoryUsage * i, s = o - U(o * .1,
|
|
13010
|
+
let i = 1024 * 1024, a = t / r * n, o = e.maxMemoryUsage * i, s = o - U(o * .1, 16 * i, 64 * i), c = this.currentMaxScreenSpaceError;
|
|
13010
13011
|
if (a < s) {
|
|
13011
13012
|
let e = .5 * (1 - a / s);
|
|
13012
13013
|
c -= e;
|
|
@@ -17649,8 +17650,8 @@ function Fh(e) {
|
|
|
17649
17650
|
return !0;
|
|
17650
17651
|
}
|
|
17651
17652
|
//#endregion
|
|
17652
|
-
//#region build/five/
|
|
17653
|
-
var Ih =
|
|
17653
|
+
//#region build/five/utils/shaderMaterial.js
|
|
17654
|
+
var Ih = class extends e.ShaderMaterial {
|
|
17654
17655
|
constructor(e) {
|
|
17655
17656
|
super(e), this.uniforms === void 0 && (this.uniforms = {}), this.defines === void 0 && (this.defines = {});
|
|
17656
17657
|
}
|
|
@@ -17660,7 +17661,11 @@ var Ih = new rm(new class extends e.ShaderMaterial {
|
|
|
17660
17661
|
setUniform(e, t) {
|
|
17661
17662
|
kt(this.uniforms[e], t);
|
|
17662
17663
|
}
|
|
17663
|
-
}
|
|
17664
|
+
};
|
|
17665
|
+
e.RawShaderMaterial;
|
|
17666
|
+
//#endregion
|
|
17667
|
+
//#region build/five/renderer/tools/render-cube-to-equirectangular.js
|
|
17668
|
+
var Lh = new rm(new Ih({
|
|
17664
17669
|
vertexShader: "\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",
|
|
17665
17670
|
fragmentShader: "\nvarying vec2 vUv;\nuniform samplerCube cubemap;\nuniform float scaleY;\n\n#define TAU 6.2831852\n#define PI 3.1415926\n\nvoid main() {\n\n float theta = TAU * vUv.x;\n float phi = PI * (vUv.y - 0.5);\n\n float distance = abs(cos(phi));\n float dx = -sin(theta) * distance;\n float dy = sin(phi) * scaleY;\n float dz = -cos(theta) * distance;\n vec3 target = normalize(vec3(dx, dy, dz));\n\n gl_FragColor = textureCube(cubemap, target);\n}\n",
|
|
17666
17671
|
uniforms: {
|
|
@@ -17672,13 +17677,13 @@ var Ih = new rm(new class extends e.ShaderMaterial {
|
|
|
17672
17677
|
depthTest: !1,
|
|
17673
17678
|
depthWrite: !1
|
|
17674
17679
|
}));
|
|
17675
|
-
function
|
|
17676
|
-
|
|
17680
|
+
function Rh(e, t, n) {
|
|
17681
|
+
Lh.material.setUniform("cubemap", t), Lh.material.setUniform("scaleY", n ? -1 : 1), Lh.render(e), Lh.material.setUniform("cubemap", null);
|
|
17677
17682
|
}
|
|
17678
17683
|
//#endregion
|
|
17679
17684
|
//#region build/five/texture/textureData.js
|
|
17680
|
-
var
|
|
17681
|
-
function
|
|
17685
|
+
var zh = new e.Color(), Bh = [], Vh = 0, Hh = 1;
|
|
17686
|
+
function Uh(t, n, r, i) {
|
|
17682
17687
|
let a = new e.WebGLRenderTarget(i.width, i.height, {
|
|
17683
17688
|
depthBuffer: !1,
|
|
17684
17689
|
stencilBuffer: !1,
|
|
@@ -17686,13 +17691,13 @@ function Hh(t, n, r, i) {
|
|
|
17686
17691
|
magFilter: e.LinearFilter,
|
|
17687
17692
|
minFilter: e.LinearFilter
|
|
17688
17693
|
}), o = t.getRenderTarget();
|
|
17689
|
-
|
|
17694
|
+
zh.copy(t.getClearColor());
|
|
17690
17695
|
let s = t.getClearAlpha(), c = t.autoClear, l = t.autoClearColor, u = t.autoClearDepth, d = t.autoClearStencil, f = t.clippingPlanes;
|
|
17691
|
-
return t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0, t.clippingPlanes =
|
|
17696
|
+
return t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0, t.clippingPlanes = Bh, t.setRenderTarget(a), t.setClearColor(Vh, Hh), Rh(t, n, r), t.setRenderTarget(o), t.setClearColor(zh, s), t.autoClear = c, t.autoClearColor = l, t.autoClearDepth = u, t.autoClearStencil = d, t.clippingPlanes = f, t.readRenderTargetPixels(a, 0, 0, i.width, i.height, i.data), a.dispose(), i;
|
|
17692
17697
|
}
|
|
17693
17698
|
//#endregion
|
|
17694
17699
|
//#region build/five/thirdparty/hammer.js
|
|
17695
|
-
var
|
|
17700
|
+
var Wh = (function(e, t, n, r) {
|
|
17696
17701
|
var i = [
|
|
17697
17702
|
"",
|
|
17698
17703
|
"webkit",
|
|
@@ -18518,7 +18523,7 @@ var Uh = (function(e, t, n, r) {
|
|
|
18518
18523
|
bindFn: v,
|
|
18519
18524
|
prefixed: k
|
|
18520
18525
|
}), kt;
|
|
18521
|
-
})(typeof window < "u" ? window : {}, typeof document < "u" ? document : {}, "Hammer"),
|
|
18526
|
+
})(typeof window < "u" ? window : {}, typeof document < "u" ? document : {}, "Hammer"), Gh = class t extends an {
|
|
18522
18527
|
static parseArgs(e) {
|
|
18523
18528
|
return e instanceof t ? e : Object.assign({}, e);
|
|
18524
18529
|
}
|
|
@@ -18715,10 +18720,10 @@ var Uh = (function(e, t, n, r) {
|
|
|
18715
18720
|
ctrlKey: "ctrlKey" in e ? e.ctrlKey : !1,
|
|
18716
18721
|
altKey: "altKey" in e ? e.altKey : !1,
|
|
18717
18722
|
metaKey: "metaKey" in e ? e.metaKey : !1
|
|
18718
|
-
}), i = new
|
|
18723
|
+
}), i = new Wh.Manager(t), a = (e) => e.session.firstInput || null, o = new Wh.Pan({
|
|
18719
18724
|
threshold: 10,
|
|
18720
18725
|
pointers: 0
|
|
18721
|
-
}), s = new
|
|
18726
|
+
}), s = new Wh.Tap({ interval: 410 }), c = new Wh.Pinch({
|
|
18722
18727
|
threshold: 0,
|
|
18723
18728
|
pointers: 2
|
|
18724
18729
|
});
|
|
@@ -19166,7 +19171,7 @@ var Uh = (function(e, t, n, r) {
|
|
|
19166
19171
|
i.destroy(), t.removeEventListener("wheel", f, !1), t.removeEventListener("mousemove", p, !1), t.removeEventListener("mouseout", m, !1), t.removeEventListener("touchstart", g, !1), t.removeEventListener("touchend", v, !1), t.removeEventListener("touchcancel", v, !1), t.removeEventListener("mousedown", _, !1), t.removeEventListener("mouseup", v, !1), t.removeEventListener("gesturestart", x, !1), t.removeEventListener("gesturechange", S, !1), t.removeEventListener("gestureend", C, !1), t.removeEventListener("touchstart", w, !1), t.removeEventListener("contextmenu", w, !1);
|
|
19167
19172
|
}, { element: t });
|
|
19168
19173
|
}
|
|
19169
|
-
},
|
|
19174
|
+
}, Kh = new e.CircleBufferGeometry(.1, 16), qh = new e.ShaderMaterial({
|
|
19170
19175
|
vertexShader: "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n",
|
|
19171
19176
|
fragmentShader: "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_fragment>\n\nfloat smoothDist = 0.01;\nvoid main() {\n #include <logdepthbuf_fragment>\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * outside * inside);\n}\n",
|
|
19172
19177
|
side: e.DoubleSide,
|
|
@@ -19177,9 +19182,9 @@ var Uh = (function(e, t, n, r) {
|
|
|
19177
19182
|
blendDstAlpha: e.OneMinusSrcAlphaFactor,
|
|
19178
19183
|
depthWrite: !1,
|
|
19179
19184
|
transparent: !0
|
|
19180
|
-
}),
|
|
19185
|
+
}), Jh = class extends e.Object3D {
|
|
19181
19186
|
constructor() {
|
|
19182
|
-
super(), this.ringMesh = new e.Mesh(
|
|
19187
|
+
super(), this.ringMesh = new e.Mesh(Kh, qh), this.ringMesh.position.z = .01, this.ringMesh.renderOrder = 9999999999, this.add(this.ringMesh);
|
|
19183
19188
|
}
|
|
19184
19189
|
dispose() {
|
|
19185
19190
|
this.remove(this.ringMesh);
|
|
@@ -19187,14 +19192,14 @@ var Uh = (function(e, t, n, r) {
|
|
|
19187
19192
|
};
|
|
19188
19193
|
//#endregion
|
|
19189
19194
|
//#region build/five/utils/error.js
|
|
19190
|
-
function
|
|
19195
|
+
function Yh(e) {
|
|
19191
19196
|
if (e instanceof Error) return e;
|
|
19192
19197
|
let t = typeof e;
|
|
19193
19198
|
return Error(t && t === "object" ? JSON.stringify(e) : e);
|
|
19194
19199
|
}
|
|
19195
19200
|
//#endregion
|
|
19196
19201
|
//#region build/five/controllers/floorplan.js
|
|
19197
|
-
var
|
|
19202
|
+
var Xh = new e.Box3(), Zh = new e.Vector3(), Qh = {
|
|
19198
19203
|
defaultLongitude: Math.PI / 4,
|
|
19199
19204
|
defaultLatitude: Math.PI / 4,
|
|
19200
19205
|
defaultFov: 80,
|
|
@@ -19202,8 +19207,8 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19202
19207
|
minFov: 20,
|
|
19203
19208
|
maxLatitude: Math.PI / 2,
|
|
19204
19209
|
minLatitude: -Math.PI / 2,
|
|
19205
|
-
intersectMeshCreator: () => new
|
|
19206
|
-
},
|
|
19210
|
+
intersectMeshCreator: () => new Jh()
|
|
19211
|
+
}, $h = class t extends Gh {
|
|
19207
19212
|
static distanceFromModel(e, t, n) {
|
|
19208
19213
|
let r = e.boundingBox, i = r.isEmpty() ? 10 : Math.pow(Math.pow(r.max.x - r.min.x + 1, 2) + Math.pow(r.max.y - r.min.y + 1, 2) + Math.pow(r.max.z - r.min.z + 1, 2), 1 / 2);
|
|
19209
19214
|
i = isNaN(i) || !isFinite(i) ? 1 : i;
|
|
@@ -19215,14 +19220,14 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19215
19220
|
if (e instanceof t) return e;
|
|
19216
19221
|
let u = super.parseArgs(e);
|
|
19217
19222
|
return Object.assign(Object.assign({}, u), {
|
|
19218
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
19219
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
19220
|
-
defaultFov: (i = e.defaultFov) == null ?
|
|
19221
|
-
maxFov: (a = e.maxFov) == null ?
|
|
19222
|
-
minFov: (o = e.minFov) == null ?
|
|
19223
|
-
maxLatitude: (s = e.maxLatitude) == null ?
|
|
19224
|
-
minLatitude: (c = e.minLatitude) == null ?
|
|
19225
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
19223
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? Qh.defaultLongitude : n,
|
|
19224
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? Qh.defaultLatitude : r,
|
|
19225
|
+
defaultFov: (i = e.defaultFov) == null ? Qh.defaultFov : i,
|
|
19226
|
+
maxFov: (a = e.maxFov) == null ? Qh.maxFov : a,
|
|
19227
|
+
minFov: (o = e.minFov) == null ? Qh.minFov : o,
|
|
19228
|
+
maxLatitude: (s = e.maxLatitude) == null ? Qh.maxLatitude : s,
|
|
19229
|
+
minLatitude: (c = e.minLatitude) == null ? Qh.minLatitude : c,
|
|
19230
|
+
intersectMeshCreator: (l = e.intersectMeshCreator) == null ? Qh.intersectMeshCreator : l
|
|
19226
19231
|
});
|
|
19227
19232
|
}
|
|
19228
19233
|
static initAnimationEndState(n) {
|
|
@@ -19378,9 +19383,9 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19378
19383
|
let n = [];
|
|
19379
19384
|
for (let t of this.works) {
|
|
19380
19385
|
let r = this.modelScene.models.find((e) => e.work === t);
|
|
19381
|
-
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (
|
|
19386
|
+
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (Xh.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), Xh.containsPoint(e.ray.origin) || e.ray.intersectsBox(Xh))) for (let e of t.observers) n.push(e);
|
|
19382
19387
|
}
|
|
19383
|
-
let [r, i] = Rl(n, (e) =>
|
|
19388
|
+
let [r, i] = Rl(n, (e) => Zh.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
|
|
19384
19389
|
return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
|
|
19385
19390
|
}
|
|
19386
19391
|
coordinatesForOffset(t) {
|
|
@@ -19583,7 +19588,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19583
19588
|
return;
|
|
19584
19589
|
}
|
|
19585
19590
|
let p;
|
|
19586
|
-
d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) =>
|
|
19591
|
+
d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e)).then((e) => {
|
|
19587
19592
|
var t;
|
|
19588
19593
|
e instanceof Error ? (this.pendingTextureId = null, e.message && this.emit("error", e)) : (d.pano0 && d.pano0.map !== p.map && d.pano0.map.dispose(), d.pano1 && d.pano1.map !== p.map && d.pano1.map !== ((t = d.pano0) == null ? void 0 : t.map) && d.pano1.map.dispose(), d.set({
|
|
19589
19594
|
pano0: p,
|
|
@@ -19616,14 +19621,14 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19616
19621
|
viaAjax: !0,
|
|
19617
19622
|
fetcher: Sf(this.fiveId, r.work)
|
|
19618
19623
|
}, void 0, void 0, void 0, this.renderer)).catch((e) => {
|
|
19619
|
-
let t =
|
|
19624
|
+
let t = Yh(e);
|
|
19620
19625
|
return this.emit("pano.texture.error", Q("pano.texture.error", {
|
|
19621
19626
|
error: t,
|
|
19622
19627
|
progress: 0,
|
|
19623
19628
|
meta: null,
|
|
19624
19629
|
pano: a
|
|
19625
19630
|
})), t;
|
|
19626
|
-
}), Promise.resolve().then(() => Dh(f)).catch((e) =>
|
|
19631
|
+
}), Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e))]).then(([a, s]) => {
|
|
19627
19632
|
var c, l;
|
|
19628
19633
|
if (!(a instanceof Error) && !(s instanceof Error)) {
|
|
19629
19634
|
let { body: s } = a;
|
|
@@ -19633,7 +19638,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19633
19638
|
}
|
|
19634
19639
|
this.pendingTextureId = null, s.name = u;
|
|
19635
19640
|
let f = Array.isArray(s.image) ? s.image[0] : s.image, p = (c = f == null ? void 0 : f.width) == null ? 2048 : c, m = r.images.histogram;
|
|
19636
|
-
m || (m = new gm().formPixels(
|
|
19641
|
+
m || (m = new gm().formPixels(Uh(this.renderer, s, !0, fm).data), r.images.histogram = m);
|
|
19637
19642
|
let h = {
|
|
19638
19643
|
panoId: o,
|
|
19639
19644
|
map: s,
|
|
@@ -19674,7 +19679,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19674
19679
|
hideIntersectMesh() {
|
|
19675
19680
|
this.intersectMesh.visible = !1, this.needsRender = !0;
|
|
19676
19681
|
}
|
|
19677
|
-
},
|
|
19682
|
+
}, eg = Object.assign(Object.assign({}, hr(Qh, [
|
|
19678
19683
|
"defaultLongitude",
|
|
19679
19684
|
"defaultLatitude",
|
|
19680
19685
|
"maxLatitude",
|
|
@@ -19682,15 +19687,15 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19682
19687
|
])), {
|
|
19683
19688
|
defaultLongitude: 0,
|
|
19684
19689
|
defaultLatitude: Math.PI / 2
|
|
19685
|
-
}),
|
|
19690
|
+
}), tg = class t extends $h {
|
|
19686
19691
|
static parseArgs(e) {
|
|
19687
19692
|
var n, r;
|
|
19688
19693
|
if (e instanceof t) return e;
|
|
19689
19694
|
let i = Object.assign(Object.assign({}, e), {
|
|
19690
19695
|
maxLatitude: Math.PI / 2,
|
|
19691
19696
|
minLatitude: -Math.PI / 2,
|
|
19692
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
19693
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
19697
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? eg.defaultLongitude : n,
|
|
19698
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? eg.defaultLatitude : r
|
|
19694
19699
|
});
|
|
19695
19700
|
return super.parseArgs(i);
|
|
19696
19701
|
}
|
|
@@ -19716,7 +19721,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19716
19721
|
x: n.x,
|
|
19717
19722
|
y: n.y,
|
|
19718
19723
|
z: n.z,
|
|
19719
|
-
distance:
|
|
19724
|
+
distance: $h.distanceFromModel(this.modelScene, this.defaultFov, this.camera.aspect)
|
|
19720
19725
|
}, 0).catch(K), this.hideIntersectMesh();
|
|
19721
19726
|
}
|
|
19722
19727
|
updateCamera(e, t, n) {
|
|
@@ -19847,7 +19852,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19847
19852
|
let t = U(this.cameraMotion.value.fov - e.center.delta, this.minFov, this.maxFov);
|
|
19848
19853
|
e.state.fov = t, this.emit("gesture.mousewheel", e), !e.defaultPrevented && this.cameraMotion.set({ fov: t }, 0).catch(K);
|
|
19849
19854
|
}
|
|
19850
|
-
},
|
|
19855
|
+
}, ng = {
|
|
19851
19856
|
defaultLatitude: 0,
|
|
19852
19857
|
defaultFov: 90,
|
|
19853
19858
|
maxFov: 120,
|
|
@@ -19855,23 +19860,23 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
19855
19860
|
maxLatitude: (e) => Math.PI / 2 - e / 2 / 180 * Math.PI,
|
|
19856
19861
|
minLatitude: (e) => -Math.PI / 2 + e / 2 / 180 * Math.PI,
|
|
19857
19862
|
moveSpeed: 3.6,
|
|
19858
|
-
intersectMeshCreator: () => new
|
|
19863
|
+
intersectMeshCreator: () => new Jh(),
|
|
19859
19864
|
aerialObserverMinHeight: 5
|
|
19860
|
-
},
|
|
19865
|
+
}, rg = class t extends Gh {
|
|
19861
19866
|
static parseArgs(e) {
|
|
19862
19867
|
var n, r, i, a, o, s, c, l, u;
|
|
19863
19868
|
if (e instanceof t) return e;
|
|
19864
19869
|
let d = super.parseArgs(e);
|
|
19865
19870
|
return Object.assign(Object.assign({}, d), {
|
|
19866
|
-
defaultLatitude: (n = e.defaultLatitude) == null ?
|
|
19867
|
-
defaultFov: (r = e.defaultFov) == null ?
|
|
19868
|
-
maxFov: (i = e.maxFov) == null ?
|
|
19869
|
-
minFov: (a = e.minFov) == null ?
|
|
19870
|
-
maxLatitude: (o = e.maxLatitude) == null ?
|
|
19871
|
-
minLatitude: (s = e.minLatitude) == null ?
|
|
19872
|
-
moveSpeed: (c = e.moveSpeed) == null ?
|
|
19873
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
19874
|
-
aerialObserverMinHeight: (u = e.aerialObserverMinHeight) == null ?
|
|
19871
|
+
defaultLatitude: (n = e.defaultLatitude) == null ? ng.defaultLatitude : n,
|
|
19872
|
+
defaultFov: (r = e.defaultFov) == null ? ng.defaultFov : r,
|
|
19873
|
+
maxFov: (i = e.maxFov) == null ? ng.maxFov : i,
|
|
19874
|
+
minFov: (a = e.minFov) == null ? ng.minFov : a,
|
|
19875
|
+
maxLatitude: (o = e.maxLatitude) == null ? ng.maxLatitude : o,
|
|
19876
|
+
minLatitude: (s = e.minLatitude) == null ? ng.minLatitude : s,
|
|
19877
|
+
moveSpeed: (c = e.moveSpeed) == null ? ng.moveSpeed : c,
|
|
19878
|
+
intersectMeshCreator: (l = e.intersectMeshCreator) == null ? ng.intersectMeshCreator : l,
|
|
19879
|
+
aerialObserverMinHeight: (u = e.aerialObserverMinHeight) == null ? ng.aerialObserverMinHeight : u
|
|
19875
19880
|
});
|
|
19876
19881
|
}
|
|
19877
19882
|
static initAnimationEndState(t) {
|
|
@@ -20102,11 +20107,11 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
|
|
|
20102
20107
|
let i = Math.max(40 - n * 5, this.minFov, 5), a = i - t < t - this.defaultFov ? i : this.defaultFov;
|
|
20103
20108
|
e.state.fov = a, this.emit("gesture.dbltap", e), !e.defaultPrevented && (this.cameraMotion.set({ fov: a }, 360).catch(K), this.hideIntersectMesh());
|
|
20104
20109
|
}
|
|
20105
|
-
},
|
|
20106
|
-
function
|
|
20107
|
-
return
|
|
20110
|
+
}, ig = "data:video/mp4;base64,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", ag;
|
|
20111
|
+
function og() {
|
|
20112
|
+
return ag || (ag = new Promise((e) => {
|
|
20108
20113
|
let t, n = document.createElement("video");
|
|
20109
|
-
n.muted = !0, n.src =
|
|
20114
|
+
n.muted = !0, n.src = ig, n.addEventListener("timeupdate", function r() {
|
|
20110
20115
|
n.removeEventListener("timeupdate", r, !1), clearTimeout(t);
|
|
20111
20116
|
let i = document.createElement("canvas");
|
|
20112
20117
|
i.width = i.height = 1;
|
|
@@ -20125,7 +20130,7 @@ function ag() {
|
|
|
20125
20130
|
}
|
|
20126
20131
|
//#endregion
|
|
20127
20132
|
//#region build/five/utils/tileCube.js
|
|
20128
|
-
var
|
|
20133
|
+
var sg = [
|
|
20129
20134
|
"right",
|
|
20130
20135
|
"left",
|
|
20131
20136
|
"up",
|
|
@@ -20133,7 +20138,7 @@ var og = [
|
|
|
20133
20138
|
"front",
|
|
20134
20139
|
"back"
|
|
20135
20140
|
];
|
|
20136
|
-
function
|
|
20141
|
+
function cg(t, n, r, i) {
|
|
20137
20142
|
let a = new e.Box3();
|
|
20138
20143
|
switch (t) {
|
|
20139
20144
|
case "up":
|
|
@@ -20158,7 +20163,7 @@ function sg(t, n, r, i) {
|
|
|
20158
20163
|
}
|
|
20159
20164
|
return a.applyMatrix4(new e.Matrix4().makeRotationY(Math.PI));
|
|
20160
20165
|
}
|
|
20161
|
-
var
|
|
20166
|
+
var lg = (t, n) => {
|
|
20162
20167
|
if (t.level >= n) return;
|
|
20163
20168
|
let r = t.level + 1, i = t.size / 2, a = [
|
|
20164
20169
|
new e.Vector2(t.position.x, t.position.y),
|
|
@@ -20172,44 +20177,44 @@ var cg = (t, n) => {
|
|
|
20172
20177
|
level: r,
|
|
20173
20178
|
size: i,
|
|
20174
20179
|
position: e,
|
|
20175
|
-
box:
|
|
20180
|
+
box: cg(t.face, e.x, e.y, i),
|
|
20176
20181
|
parent: t,
|
|
20177
20182
|
children: []
|
|
20178
20183
|
};
|
|
20179
|
-
t.children.push(a),
|
|
20184
|
+
t.children.push(a), lg(a, n);
|
|
20180
20185
|
}
|
|
20181
20186
|
};
|
|
20182
|
-
function
|
|
20187
|
+
function ug(t, n) {
|
|
20183
20188
|
let r = {
|
|
20184
20189
|
level: 0,
|
|
20185
20190
|
face: t,
|
|
20186
20191
|
position: new e.Vector2(0, 0),
|
|
20187
20192
|
size: 1,
|
|
20188
|
-
box:
|
|
20193
|
+
box: cg(t, 0, 0, 1),
|
|
20189
20194
|
parent: null,
|
|
20190
20195
|
children: []
|
|
20191
20196
|
};
|
|
20192
|
-
return
|
|
20197
|
+
return lg(r, n), r;
|
|
20193
20198
|
}
|
|
20194
|
-
function
|
|
20199
|
+
function dg(e) {
|
|
20195
20200
|
return {
|
|
20196
|
-
children:
|
|
20201
|
+
children: sg.map((t) => ug(t, e)),
|
|
20197
20202
|
maxLevel: e
|
|
20198
20203
|
};
|
|
20199
20204
|
}
|
|
20200
|
-
function
|
|
20201
|
-
for (let n of e.children) t(n) !== !1 &&
|
|
20205
|
+
function fg(e, t) {
|
|
20206
|
+
for (let n of e.children) t(n) !== !1 && fg(n, t);
|
|
20202
20207
|
}
|
|
20203
20208
|
//#endregion
|
|
20204
20209
|
//#region build/five/core/tiling.js
|
|
20205
|
-
var
|
|
20206
|
-
up: new e.Quaternion(
|
|
20207
|
-
down: new e.Quaternion(-
|
|
20208
|
-
left: new e.Quaternion(0,
|
|
20209
|
-
right: new e.Quaternion(0, -
|
|
20210
|
+
var pg, mg = new e.Vector3(), hg = new e.Quaternion(), gg = new e.Matrix4(), _g = new e.Matrix4(), vg = new e.Matrix4(), yg = new e.Matrix4(), bg = new e.Matrix4(), xg = new e.Quaternion(), Sg = new e.Matrix4(), Cg = new e.Color(0, 0, 0), wg = 0, Tg = new e.Color(), Eg = [], Dg = (pg = Math.SQRT1_2) == null ? Math.sqrt(2) : pg, Og = {
|
|
20211
|
+
up: new e.Quaternion(Dg, 0, 0, Dg),
|
|
20212
|
+
down: new e.Quaternion(-Dg, 0, 0, Dg),
|
|
20213
|
+
left: new e.Quaternion(0, Dg, 0, Dg),
|
|
20214
|
+
right: new e.Quaternion(0, -Dg, 0, Dg),
|
|
20210
20215
|
front: new e.Quaternion(0, 0, 0, 1),
|
|
20211
20216
|
back: new e.Quaternion(0, 1, 0, 0)
|
|
20212
|
-
},
|
|
20217
|
+
}, kg = (() => {
|
|
20213
20218
|
let t = new Float32Array([
|
|
20214
20219
|
-.5,
|
|
20215
20220
|
-.5,
|
|
@@ -20241,7 +20246,7 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
|
|
|
20241
20246
|
2
|
|
20242
20247
|
]), i = new e.BufferGeometry();
|
|
20243
20248
|
return i.setAttribute("position", new e.BufferAttribute(t, 3)), i.setAttribute("uv", new e.BufferAttribute(n, 2)), i.setIndex(new e.BufferAttribute(r, 1)), i.computeBoundingBox(), i;
|
|
20244
|
-
})(),
|
|
20249
|
+
})(), Ag = "\nvarying vec2 vUV;\nvoid main() {\n vUV = uv;\n #if !defined(USE_FLIP_Y)\n vUV.y = 1.0 - vUV.y;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n", jg = "\nuniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUV;\nvoid main() {\n gl_FragColor = texture2D(map, vUV);\n gl_FragColor.a = gl_FragColor.a * opacity;\n}\n", Mg = class extends e.ShaderMaterial {
|
|
20245
20250
|
constructor() {
|
|
20246
20251
|
super({
|
|
20247
20252
|
defines: { USE_FLIP_Y: !0 },
|
|
@@ -20250,8 +20255,8 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
|
|
|
20250
20255
|
opacity: { value: 1 },
|
|
20251
20256
|
level: { value: -1 }
|
|
20252
20257
|
},
|
|
20253
|
-
vertexShader:
|
|
20254
|
-
fragmentShader:
|
|
20258
|
+
vertexShader: Ag,
|
|
20259
|
+
fragmentShader: jg,
|
|
20255
20260
|
depthTest: !0,
|
|
20256
20261
|
depthWrite: !0
|
|
20257
20262
|
}), V(this, "flipY", {
|
|
@@ -20284,9 +20289,9 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
|
|
|
20284
20289
|
}
|
|
20285
20290
|
});
|
|
20286
20291
|
}
|
|
20287
|
-
},
|
|
20292
|
+
}, Ng = class extends e.Mesh {
|
|
20288
20293
|
constructor(t, n) {
|
|
20289
|
-
super(
|
|
20294
|
+
super(kg, new Mg()), this.disposed = !1, t.box.getCenter(this.position), this.quaternion.multiplyQuaternions(new e.Quaternion().setFromAxisAngle(new e.Vector3(0, 1, 0), -Math.PI), Og[t.face]), this.scale.setScalar(t.size), this.node = t, this.name = "tiling:tile", this.material.level = t.level, this.material.visible = !1, this.material.polygonOffset = !0, this.material.polygonOffsetFactor = -t.level, this.material.polygonOffsetUnits = -t.level, this.activeTime = -1, this.frustumCulled = !1, this.renderOrder = t.level, this.appearDuration = 0, this.appearMotion = new X({ appear: 0 }), n.then((e) => {
|
|
20290
20295
|
this.disposed ? e.dispose() : (this.material.map = e, this.material.flipY = !!e.flipY, this.material.visible = !0, this.appearMotion.set({ appear: 1 }, this.appearDuration * 1e3).catch(K));
|
|
20291
20296
|
}).catch(K);
|
|
20292
20297
|
}
|
|
@@ -20300,15 +20305,15 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
|
|
|
20300
20305
|
dispose() {
|
|
20301
20306
|
this.disposed = !0, this.material.map && this.material.map.dispose(), this.material.dispose();
|
|
20302
20307
|
}
|
|
20303
|
-
},
|
|
20304
|
-
|
|
20305
|
-
var
|
|
20308
|
+
}, Pg = Af(20, 20, 20);
|
|
20309
|
+
Pg.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
|
|
20310
|
+
var Fg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n", Ig = "\n#define FLIP_CUBE_MAP -1.0\nuniform samplerCube map;\nvarying vec4 vFinalPosition;\nvoid main() {\n vec3 panoToVertex = normalize(vFinalPosition.xyz);\n gl_FragColor = textureCube(map, vec3(FLIP_CUBE_MAP * panoToVertex.x, panoToVertex.yz));\n}\n", Lg = class extends e.ShaderMaterial {
|
|
20306
20311
|
constructor() {
|
|
20307
20312
|
super({
|
|
20308
20313
|
defines: {},
|
|
20309
20314
|
uniforms: { map: { value: null } },
|
|
20310
|
-
vertexShader:
|
|
20311
|
-
fragmentShader:
|
|
20315
|
+
vertexShader: Fg,
|
|
20316
|
+
fragmentShader: Ig,
|
|
20312
20317
|
transparent: !1
|
|
20313
20318
|
}), V(this, "map", {
|
|
20314
20319
|
get() {
|
|
@@ -20319,9 +20324,9 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
|
|
|
20319
20324
|
}
|
|
20320
20325
|
});
|
|
20321
20326
|
}
|
|
20322
|
-
},
|
|
20327
|
+
}, Rg = class extends e.Mesh {
|
|
20323
20328
|
constructor() {
|
|
20324
|
-
super(
|
|
20329
|
+
super(Pg, new Lg()), this.disposed = !1, this.frustumCulled = !1, this.renderOrder = 9999;
|
|
20325
20330
|
}
|
|
20326
20331
|
update(e, t) {
|
|
20327
20332
|
if (this.disposed) {
|
|
@@ -20333,9 +20338,9 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
|
|
|
20333
20338
|
dispose() {
|
|
20334
20339
|
this.disposed = !0, this.material.dispose();
|
|
20335
20340
|
}
|
|
20336
|
-
},
|
|
20341
|
+
}, zg = class {
|
|
20337
20342
|
constructor(t) {
|
|
20338
|
-
this.forceRenderWhenNextUpdate = !0, this.fiveId = t.fiveId, this.disposed = !1, this.level = 0, this.pedding = 0, this.maxRequest = 1, this.appearDuration = .5, this.maxCacheTile = 48, this.imageOptions = {}, this.boundingMesh = new
|
|
20343
|
+
this.forceRenderWhenNextUpdate = !0, this.fiveId = t.fiveId, this.disposed = !1, this.level = 0, this.pedding = 0, this.maxRequest = 1, this.appearDuration = .5, this.maxCacheTile = 48, this.imageOptions = {}, this.boundingMesh = new Rg(), this.boundingMesh.frustumCulled = !1, this.textureLoader = new hi(), this.observer = null, this.tileTree = dg(0), this.tileMeshes = /* @__PURE__ */ new Map(), this.frustum = new e.Frustum(), this.scene = new e.Scene(), this.camera = new e.PerspectiveCamera(90, 1, .1, 100), this.scene.add(this.boundingMesh), this.renderTarget = new e.WebGLRenderTarget(1, 1, {
|
|
20339
20344
|
depthBuffer: !0,
|
|
20340
20345
|
stencilBuffer: !1,
|
|
20341
20346
|
generateMipmaps: !1,
|
|
@@ -20355,7 +20360,7 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
|
|
|
20355
20360
|
}
|
|
20356
20361
|
setObserver(e) {
|
|
20357
20362
|
var t, n, r, i;
|
|
20358
|
-
this.disposed || this.observer !== e && (this.cleanup(), this.observer = e, this.tileTree =
|
|
20363
|
+
this.disposed || this.observer !== e && (this.cleanup(), this.observer = e, this.tileTree = dg((i = (r = (n = (t = this.observer) == null ? void 0 : t.images.tiles) == null ? void 0 : n.slice().sort((e, t) => t.level - e.level)[0]) == null ? void 0 : r.level) == null ? 0 : i));
|
|
20359
20364
|
}
|
|
20360
20365
|
update(t) {
|
|
20361
20366
|
let n = this.forceRenderWhenNextUpdate;
|
|
@@ -20365,12 +20370,12 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
|
|
|
20365
20370
|
this.level = U(p, 0, this.tileTree.maxLevel);
|
|
20366
20371
|
let m = Math.floor(i.width * a), h = Math.floor(i.height * a), g = Math.max(m, h), _ = o.capabilities.maxTextureSize;
|
|
20367
20372
|
g > _ && (m = Math.floor(m / g * _), h = Math.floor(h / g * _)), (this.renderTarget.width !== m || this.renderTarget.height !== h) && this.renderTarget.setSize(m, h), this.scene.matrix.equals(u) || (this.scene.matrix.copy(u), this.scene.matrixWorld.copy(this.scene.matrix), this.scene.matrix.decompose(this.scene.position, this.scene.quaternion, this.scene.scale), this.scene.matrixAutoUpdate = !1, n = !0);
|
|
20368
|
-
let v =
|
|
20373
|
+
let v = hg.setFromRotationMatrix(s), y = gg.compose(this.scene.position, v, this.scene.scale);
|
|
20369
20374
|
this.camera.matrix.equals(y) || (this.camera.matrix.copy(y), this.camera.matrixWorld.copy(this.camera.matrix), this.camera.position.copy(this.scene.position), this.camera.quaternion.copy(v), this.camera.scale.copy(this.scene.scale), n = !0);
|
|
20370
|
-
let b =
|
|
20371
|
-
b.elements[0] *= d, b.elements[5] *= d, this.camera.projectionMatrix.equals(b) || (this.camera.projectionMatrix.copy(b), this.camera.projectionMatrixInverse.getInverse(this.camera.projectionMatrix), n = !0),
|
|
20375
|
+
let b = _g.copy(c);
|
|
20376
|
+
b.elements[0] *= d, b.elements[5] *= d, this.camera.projectionMatrix.equals(b) || (this.camera.projectionMatrix.copy(b), this.camera.projectionMatrixInverse.getInverse(this.camera.projectionMatrix), n = !0), xg.copy(this.scene.quaternion).inverse(), Sg.makeRotationFromQuaternion(xg), vg.copy(this.camera.matrix), vg.setPosition(0, 0, 0), vg.premultiply(Sg), yg.getInverse(vg), bg.multiplyMatrices(this.camera.projectionMatrix, yg), this.frustum.setFromProjectionMatrix(bg);
|
|
20372
20377
|
let x = this.frustum.planes[5].normal, S = [];
|
|
20373
|
-
p >= f &&
|
|
20378
|
+
p >= f && fg(this.tileTree, (e) => {
|
|
20374
20379
|
if (!(e.level < f)) {
|
|
20375
20380
|
if (e.level > p || !this.frustum.intersectsBox(e.box)) return !1;
|
|
20376
20381
|
S.push(e);
|
|
@@ -20380,9 +20385,9 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
|
|
|
20380
20385
|
S.sort((e, t) => {
|
|
20381
20386
|
if (e.level !== t.level) return e.level - t.level;
|
|
20382
20387
|
let n = C.get(e);
|
|
20383
|
-
n === void 0 && (n = e.box.getCenter(
|
|
20388
|
+
n === void 0 && (n = e.box.getCenter(mg).angleTo(x), C.set(e, n));
|
|
20384
20389
|
let r = C.get(t);
|
|
20385
|
-
return r === void 0 && (r = t.box.getCenter(
|
|
20390
|
+
return r === void 0 && (r = t.box.getCenter(mg).angleTo(x), C.set(t, r)), n - r;
|
|
20386
20391
|
});
|
|
20387
20392
|
let w = /* @__PURE__ */ new WeakSet(), T = this.observer.images.tiles;
|
|
20388
20393
|
if (T) for (let t of S) {
|
|
@@ -20424,7 +20429,7 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
|
|
|
20424
20429
|
generateMipmaps: !1,
|
|
20425
20430
|
fetcher: Sf(this.fiveId, this.observer.work)
|
|
20426
20431
|
}).then((e) => e.body);
|
|
20427
|
-
m.then((e) => xd(e, o)).then((e) => (this.pedding--, e), (e) => (this.pedding--, Promise.reject(e))), a = new
|
|
20432
|
+
m.then((e) => xd(e, o)).then((e) => (this.pedding--, e), (e) => (this.pedding--, Promise.reject(e))), a = new Ng(t, m), a.name = `tiling:tile-${l}`, a.visible = !1, a.appearDuration = this.appearDuration, this.tileMeshes.set(t, a), this.scene.add(a), a.updateTime(r), n = !0;
|
|
20428
20433
|
}
|
|
20429
20434
|
let E = [], D = [];
|
|
20430
20435
|
this.tileMeshes.forEach((e, t) => {
|
|
@@ -20436,23 +20441,23 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
|
|
|
20436
20441
|
for (let e of O) this.tileMeshes.delete(e.node), this.scene.remove(e), e.dispose(), n = !0;
|
|
20437
20442
|
if (n) {
|
|
20438
20443
|
let e = o.getRenderTarget();
|
|
20439
|
-
|
|
20444
|
+
Tg.copy(o.getClearColor());
|
|
20440
20445
|
let t = o.getClearAlpha(), n = o.autoClear, r = o.autoClearColor, i = o.autoClearDepth, a = o.autoClearStencil, s = o.clippingPlanes;
|
|
20441
|
-
o.autoClear = !0, o.autoClearColor = !0, o.autoClearDepth = !0, o.autoClearStencil = !0, o.clippingPlanes =
|
|
20446
|
+
o.autoClear = !0, o.autoClearColor = !0, o.autoClearDepth = !0, o.autoClearStencil = !0, o.clippingPlanes = Eg, o.setRenderTarget(this.renderTarget), o.setClearColor(Cg, wg), o.render(this.scene, this.camera), o.setRenderTarget(e), o.setClearColor(Tg, t), o.autoClear = n, o.autoClearColor = r, o.autoClearDepth = i, o.autoClearStencil = a, o.clippingPlanes = s;
|
|
20442
20447
|
}
|
|
20443
20448
|
return this.forceRenderWhenNextUpdate = !1, n;
|
|
20444
20449
|
}
|
|
20445
|
-
},
|
|
20446
|
-
|
|
20447
|
-
var
|
|
20450
|
+
}, Bg = new e.Matrix4().makeRotationAxis(new e.Vector3(0, 1, 0), Math.PI), Vg = Af(2, 2, 2);
|
|
20451
|
+
Vg.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
|
|
20452
|
+
var Hg = "\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n", Ug = "\n#define FLIP_CUBE_MAP -1.0\n\nuniform vec2 size;\nuniform mat4 matrix;\nuniform mat4 panoMatrix;\nuniform mat4 fixMatrix;\nuniform float alpha;\nuniform sampler2D map;\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n\n vec3 cameraToVertex = normalize(worldPosition - cameraPosition);\n cameraToVertex = cameraToVertex * mat3(panoMatrix);\n cameraToVertex = vec3(FLIP_CUBE_MAP * cameraToVertex.x, cameraToVertex.yz);\n\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * (fixMatrix * matrix);\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n\n #endif\n}\n", Wg = class {
|
|
20448
20453
|
constructor() {
|
|
20449
20454
|
this.material = new e.ShaderMaterial({
|
|
20450
|
-
vertexShader:
|
|
20451
|
-
fragmentShader:
|
|
20455
|
+
vertexShader: Hg,
|
|
20456
|
+
fragmentShader: Ug,
|
|
20452
20457
|
uniforms: {
|
|
20453
20458
|
size: new e.Uniform(new e.Vector2()),
|
|
20454
20459
|
matrix: new e.Uniform(new e.Matrix4()),
|
|
20455
|
-
fixMatrix: new e.Uniform(
|
|
20460
|
+
fixMatrix: new e.Uniform(Bg),
|
|
20456
20461
|
panoMatrix: new e.Uniform(new e.Matrix4()),
|
|
20457
20462
|
alpha: new e.Uniform(1),
|
|
20458
20463
|
map: new e.Uniform(null)
|
|
@@ -20465,7 +20470,7 @@ var Vg = "\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n
|
|
|
20465
20470
|
blendDst: e.OneMinusSrcAlphaFactor,
|
|
20466
20471
|
blendSrcAlpha: e.OneFactor,
|
|
20467
20472
|
blendDstAlpha: e.OneMinusSrcAlphaFactor
|
|
20468
|
-
}), this.object = new e.Mesh(
|
|
20473
|
+
}), this.object = new e.Mesh(Vg, this.material), this.object.visible = !1, this.object.renderOrder = -1, this.object.frustumCulled = !1, this.object.name = "pano-video", this.alphaMotion = new X({ alpha: 0 });
|
|
20469
20474
|
}
|
|
20470
20475
|
setMaterial(e) {
|
|
20471
20476
|
e ? (this.material.uniforms.size.value.copy(e.size), this.material.uniforms.matrix.value.copy(e.matrix), this.material.uniforms.panoMatrix.value.copy(e.panoMatrix), this.material.uniforms.map.value = e.map, this.alphaMotion.set({ alpha: e.alpha }, 500).catch(K)) : (this.material.uniforms.size.value.setScalar(0), this.material.uniforms.matrix.value.identity(), this.material.uniforms.panoMatrix.value.identity(), this.material.uniforms.map.value = null, this.material.uniforms.alpha.value = 0, this.alphaMotion.set({ alpha: 0 }, 0).catch(K));
|
|
@@ -20478,24 +20483,24 @@ var Vg = "\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n
|
|
|
20478
20483
|
dispose() {
|
|
20479
20484
|
this.material.dispose();
|
|
20480
20485
|
}
|
|
20481
|
-
},
|
|
20486
|
+
}, Gg = new e.Color(0, 0, 0), Kg = new e.Color(), qg = new e.ShaderMaterial({
|
|
20482
20487
|
vertexShader: "\n#include <common>\n#include <uv_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvarying vec4 vFinalPosition;\n\nvoid main() {\n\n #include <uv_vertex>\n\n #include <skinbase_vertex>\n\n #ifdef USE_DISPLACEMENTMAP\n\n #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinnormal_vertex>\n\n #endif\n\n #include <begin_vertex>\n #include <morphtarget_vertex>\n #include <skinning_vertex>\n\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n\n vFinalPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n vFinalPosition = instanceMatrix * vFinalPosition;\n #endif\n vFinalPosition = modelMatrix * vFinalPosition;\n\n}\n",
|
|
20483
20488
|
fragmentShader: "\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nuniform float maxDepth;\nvarying vec4 vFinalPosition;\n\nvoid main() {\n\n #include <clipping_planes_fragment>\n\n vec4 diffuseColor = vec4( 1.0 );\n\n #include <map_fragment>\n #include <alphamap_fragment>\n #include <alphatest_fragment>\n\n #include <logdepthbuf_fragment>\n\n vec3 cameraVertex = vFinalPosition.xyz - cameraPosition;\n float cameraDepth = length(cameraVertex);\n gl_FragColor = packDepthToRGBA(clamp(cameraDepth / maxDepth, 0.0, 1.0));\n}\n",
|
|
20484
20489
|
uniforms: { maxDepth: new e.Uniform(0) }
|
|
20485
20490
|
});
|
|
20486
|
-
function
|
|
20487
|
-
|
|
20491
|
+
function Jg(e, t, n, r = 1e3) {
|
|
20492
|
+
qg.uniforms.maxDepth.value = r, Kg.copy(e.getClearColor());
|
|
20488
20493
|
let i = e.getClearAlpha(), a = t.overrideMaterial;
|
|
20489
|
-
t.overrideMaterial =
|
|
20494
|
+
t.overrideMaterial = qg, e.setClearColor(Gg, 0), n.update(e, t), e.setClearColor(Kg, i), t.overrideMaterial = a;
|
|
20490
20495
|
}
|
|
20491
20496
|
//#endregion
|
|
20492
20497
|
//#region build/five/controllers/panorama.js
|
|
20493
|
-
var
|
|
20498
|
+
var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
20494
20499
|
new e.Vector3(0, 0, 0).multiplyScalar(.1),
|
|
20495
20500
|
new e.Vector3(1, 0, 0).multiplyScalar(.1),
|
|
20496
20501
|
new e.Vector3(-.5, 0, -Math.sqrt(3) / 2).multiplyScalar(.1),
|
|
20497
20502
|
new e.Vector3(-.5, 0, Math.sqrt(3) / 2).multiplyScalar(.1)
|
|
20498
|
-
],
|
|
20503
|
+
], $g = Object.assign(Object.assign({}, ng), {
|
|
20499
20504
|
maxAccessibleDistance: 5,
|
|
20500
20505
|
panoTapTriggerRadius: .5,
|
|
20501
20506
|
panoCircleMeshCreator: (e, t) => e.position.distanceTo(e.standingPosition) > t.aerialObserverMinHeight ? new dh() : new oh(),
|
|
@@ -20508,20 +20513,20 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20508
20513
|
tileAppearDuration: .5,
|
|
20509
20514
|
tileMaxRequest: 3,
|
|
20510
20515
|
flyEffectUseDepthBuffer: !1
|
|
20511
|
-
}),
|
|
20516
|
+
}), e_ = class t extends rg {
|
|
20512
20517
|
static parseArgs(e) {
|
|
20513
20518
|
var n, r, i, a, o, s, c, l;
|
|
20514
20519
|
if (e instanceof t) return e;
|
|
20515
20520
|
let u = super.parseArgs(e);
|
|
20516
20521
|
return Object.assign(Object.assign({}, u), {
|
|
20517
|
-
maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ?
|
|
20518
|
-
panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ?
|
|
20519
|
-
panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ?
|
|
20520
|
-
adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ?
|
|
20521
|
-
tileLevelForFov: (o = e.tileLevelForFov) == null ?
|
|
20522
|
-
tileAppearDuration: (s = e.tileAppearDuration) == null ?
|
|
20523
|
-
tileMaxRequest: (c = e.tileMaxRequest) == null ?
|
|
20524
|
-
flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ?
|
|
20522
|
+
maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ? $g.maxAccessibleDistance : n,
|
|
20523
|
+
panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ? $g.panoTapTriggerRadius : r,
|
|
20524
|
+
panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ? $g.panoCircleMeshCreator : i,
|
|
20525
|
+
adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ? $g.adjustPanoCircleMeshPositionBasedOnModel : a,
|
|
20526
|
+
tileLevelForFov: (o = e.tileLevelForFov) == null ? $g.tileLevelForFov : o,
|
|
20527
|
+
tileAppearDuration: (s = e.tileAppearDuration) == null ? $g.tileAppearDuration : s,
|
|
20528
|
+
tileMaxRequest: (c = e.tileMaxRequest) == null ? $g.tileMaxRequest : c,
|
|
20529
|
+
flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ? $g.flyEffectUseDepthBuffer : l
|
|
20525
20530
|
});
|
|
20526
20531
|
}
|
|
20527
20532
|
static initAnimationEndState(e) {
|
|
@@ -20542,9 +20547,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20542
20547
|
panoPicture: this.modelScene.parameter.resolveValue("pano1"),
|
|
20543
20548
|
position: this.camera.pose.offset.clone(),
|
|
20544
20549
|
effect: "fly",
|
|
20545
|
-
effectEasing:
|
|
20550
|
+
effectEasing: Yg,
|
|
20546
20551
|
fixCameraTransform: new e.Matrix4()
|
|
20547
|
-
}, this.panoPictureObserverMap = /* @__PURE__ */ new WeakMap(), this.textureLoader = new hi(), this.tiling = new
|
|
20552
|
+
}, this.panoPictureObserverMap = /* @__PURE__ */ new WeakMap(), this.textureLoader = new hi(), this.tiling = new zg({ fiveId: this.fiveId }), this.panoVideo = new Wg(), this.scene.add(this.panoVideo.object), this.accessibleObserverFloorCheckCount = 0;
|
|
20548
20553
|
}
|
|
20549
20554
|
get tileLevel() {
|
|
20550
20555
|
return this.tiling.level;
|
|
@@ -20681,9 +20686,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20681
20686
|
let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Z({
|
|
20682
20687
|
panoIndex: n.panoIndex,
|
|
20683
20688
|
workCode: n.work.workCode
|
|
20684
|
-
}), s =
|
|
20685
|
-
|
|
20686
|
-
let [o] = r.intersectRaycaster(
|
|
20689
|
+
}), s = Qg.map((n) => {
|
|
20690
|
+
Xg.ray.origin.copy(a), Xg.ray.origin.add(Zg.copy(n).setY(t)), Xg.ray.direction.set(0, -1, 0), Xg.firstHitOnly = !0, Xg.floorIndex = -1;
|
|
20691
|
+
let [o] = r.intersectRaycaster(Xg);
|
|
20687
20692
|
return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
|
|
20688
20693
|
});
|
|
20689
20694
|
s.sort((e, t) => t.y - e.y);
|
|
@@ -20730,7 +20735,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20730
20735
|
else {
|
|
20731
20736
|
t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
|
|
20732
20737
|
let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
|
|
20733
|
-
e && (
|
|
20738
|
+
e && (Zg.set(e.x, e.y, e.z), Zg.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
|
|
20734
20739
|
}
|
|
20735
20740
|
let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
|
|
20736
20741
|
if (n === Z(this.currentPano)) {
|
|
@@ -20833,9 +20838,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20833
20838
|
generateMipmaps: !1
|
|
20834
20839
|
});
|
|
20835
20840
|
let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
|
|
20836
|
-
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1,
|
|
20841
|
+
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, t, 500);
|
|
20837
20842
|
let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
|
|
20838
|
-
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1,
|
|
20843
|
+
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
|
|
20839
20844
|
pano0Depth: {
|
|
20840
20845
|
panoId: n.panoId,
|
|
20841
20846
|
map: this.pano0DepthCubeRenderTarget.texture,
|
|
@@ -20926,7 +20931,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20926
20931
|
let r = {
|
|
20927
20932
|
panoId: c,
|
|
20928
20933
|
effect: s,
|
|
20929
|
-
effectEasing: (o = n.effectEasing) == null ?
|
|
20934
|
+
effectEasing: (o = n.effectEasing) == null ? Yg : o,
|
|
20930
20935
|
panoPicture: {
|
|
20931
20936
|
panoId: y.panoId,
|
|
20932
20937
|
map: y.map,
|
|
@@ -20938,7 +20943,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20938
20943
|
position: l.position.clone().applyMatrix4(l.work.transform),
|
|
20939
20944
|
fixCameraTransform: new e.Matrix4()
|
|
20940
20945
|
};
|
|
20941
|
-
r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture, l), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(_)).catch((e) =>
|
|
20946
|
+
r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture, l), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(_)).catch((e) => Yh(e)).then((e) => {
|
|
20942
20947
|
var i, a;
|
|
20943
20948
|
if (!(e instanceof Error)) this.pending.delete(g), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(c)) == null || i.setProgress(0), this.doMoveToPano(t, r, n);
|
|
20944
20949
|
else {
|
|
@@ -20983,11 +20988,11 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
20983
20988
|
else {
|
|
20984
20989
|
o.name = h;
|
|
20985
20990
|
let r = Array.isArray(o.image) ? o.image[0] : o.image, u = (i = r == null ? void 0 : r.width) == null ? 2048 : i, d = l.images.histogram;
|
|
20986
|
-
d || (d = new gm().formPixels(
|
|
20991
|
+
d || (d = new gm().formPixels(Uh(this.renderer, o, !0, fm).data), l.images.histogram = d);
|
|
20987
20992
|
let f = {
|
|
20988
20993
|
panoId: c,
|
|
20989
20994
|
effect: s,
|
|
20990
|
-
effectEasing: (a = n.effectEasing) == null ?
|
|
20995
|
+
effectEasing: (a = n.effectEasing) == null ? Yg : a,
|
|
20991
20996
|
panoPicture: {
|
|
20992
20997
|
panoId: c,
|
|
20993
20998
|
map: o,
|
|
@@ -21052,14 +21057,14 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21052
21057
|
pano: t
|
|
21053
21058
|
})), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) === h && ((r = this.panoMeshes.get(c)) == null || r.setProgress(e));
|
|
21054
21059
|
}, this.renderer)).catch((e) => {
|
|
21055
|
-
let n =
|
|
21060
|
+
let n = Yh(e);
|
|
21056
21061
|
return this.emit("pano.texture.error", Q("pano.texture.error", {
|
|
21057
21062
|
error: n,
|
|
21058
21063
|
progress: 0,
|
|
21059
21064
|
meta: null,
|
|
21060
21065
|
pano: t
|
|
21061
21066
|
})), n;
|
|
21062
|
-
}), Promise.resolve().then(() => Dh(_)).catch((e) =>
|
|
21067
|
+
}), Promise.resolve().then(() => Dh(_)).catch((e) => Yh(e))]).then(([e, n]) => {
|
|
21063
21068
|
var r, i, a, o;
|
|
21064
21069
|
if (!(e instanceof Error) && !(n instanceof Error)) this.pending.delete(g), ((r = this.pendingPanoTask) == null ? void 0 : r.hash) === h ? (this.pendingPanoTask.onLoad(e), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(c)) == null || i.setProgress(0)) : e.body.dispose(), this.emit("pano.texture.success", Q("pano.texture.success", {
|
|
21065
21070
|
error: null,
|
|
@@ -21283,7 +21288,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21283
21288
|
panoMatrix: n.matrix.clone().premultiply(n.work.transform),
|
|
21284
21289
|
alpha: 1
|
|
21285
21290
|
}, t = $t(), r = this.videoTexture.image;
|
|
21286
|
-
r.setAttribute("uuid", t), r.oncanplay = K, r.ontimeupdate = K,
|
|
21291
|
+
r.setAttribute("uuid", t), r.oncanplay = K, r.ontimeupdate = K, og().then((i) => {
|
|
21287
21292
|
i && n.images.video && r.getAttribute("uuid") === t && (r.oncanplay = () => {
|
|
21288
21293
|
r.oncanplay = K, r.play();
|
|
21289
21294
|
}, r.ontimeupdate = () => {
|
|
@@ -21334,9 +21339,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21334
21339
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
21335
21340
|
}), u = /* @__PURE__ */ new Map(), d = l.slice().sort((e, t) => {
|
|
21336
21341
|
let n = c[e], r = u.get(n);
|
|
21337
|
-
r === void 0 && (r =
|
|
21342
|
+
r === void 0 && (r = Zg.copy(n.standingPosition).applyMatrix4(n.work.transform).distanceTo(a), u.set(n, r));
|
|
21338
21343
|
let i = c[t], o = u.get(i);
|
|
21339
|
-
return o === void 0 && (o =
|
|
21344
|
+
return o === void 0 && (o = Zg.copy(i.standingPosition).applyMatrix4(i.work.transform).distanceTo(a), u.set(i, o)), r - o;
|
|
21340
21345
|
});
|
|
21341
21346
|
u.clear();
|
|
21342
21347
|
for (let e of [
|
|
@@ -21347,13 +21352,13 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21347
21352
|
]) for (let t of d) {
|
|
21348
21353
|
let n = c[t];
|
|
21349
21354
|
if (n) {
|
|
21350
|
-
let t =
|
|
21355
|
+
let t = Zg.copy(n.standingPosition).applyMatrix4(n.work.transform).sub(a);
|
|
21351
21356
|
if (t && t.length() !== 0 && s.angleTo(t) < e) return n;
|
|
21352
21357
|
}
|
|
21353
21358
|
}
|
|
21354
21359
|
let f = null;
|
|
21355
21360
|
if (n) {
|
|
21356
|
-
let e = n.ray.intersectBox(this.modelScene.boundingBox,
|
|
21361
|
+
let e = n.ray.intersectBox(this.modelScene.boundingBox, Zg);
|
|
21357
21362
|
e && (e.project(t), Math.abs(e.z) <= 1 && (f = e.clone()));
|
|
21358
21363
|
} else f = new e.Vector3(0, 0, 0);
|
|
21359
21364
|
if (f) {
|
|
@@ -21365,15 +21370,15 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21365
21370
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
21366
21371
|
}), n = /* @__PURE__ */ new Map(), i = e.slice().sort((e, r) => {
|
|
21367
21372
|
let i = c[e], a = n.get(i);
|
|
21368
|
-
a === void 0 && (a =
|
|
21373
|
+
a === void 0 && (a = Zg.copy(i.position).applyMatrix4(i.work.transform).distanceTo(t.position), n.set(i, a));
|
|
21369
21374
|
let o = c[r], s = n.get(o);
|
|
21370
|
-
return s === void 0 && (s =
|
|
21375
|
+
return s === void 0 && (s = Zg.copy(o.position).applyMatrix4(o.work.transform).distanceTo(t.position), n.set(o, s)), a - s;
|
|
21371
21376
|
});
|
|
21372
21377
|
n.clear();
|
|
21373
21378
|
for (let e of i) {
|
|
21374
21379
|
let n = c[e];
|
|
21375
21380
|
if (n) {
|
|
21376
|
-
let e =
|
|
21381
|
+
let e = Zg.copy(n.position).applyMatrix4(n.work.transform);
|
|
21377
21382
|
if (e.project(t), Math.abs(e.z) > 1) continue;
|
|
21378
21383
|
if (Math.pow(f.x - e.x, 2) + Math.pow(f.y - e.y, 2) < Math.pow(.4, 2)) return n;
|
|
21379
21384
|
}
|
|
@@ -21391,12 +21396,12 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21391
21396
|
let s = o.work.observers, c = o.accessibleNodes.filter((e) => {
|
|
21392
21397
|
if (e === this.currentPano.panoIndex && o.work.workCode === this.currentPano.workCode) return !1;
|
|
21393
21398
|
let t = s[e];
|
|
21394
|
-
return !t ||
|
|
21399
|
+
return !t || Zg.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
|
|
21395
21400
|
}), [l] = this.modelScene.intersectRaycaster(r);
|
|
21396
21401
|
if (l) {
|
|
21397
21402
|
let [e, t] = Rl(c, (e) => {
|
|
21398
21403
|
let t = s[e];
|
|
21399
|
-
return t ?
|
|
21404
|
+
return t ? Zg.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(l.point) : Infinity;
|
|
21400
21405
|
}, !0);
|
|
21401
21406
|
typeof e == "number" && t < this.panoTapTriggerRadius && (a = (n = s[e]) == null ? null : n);
|
|
21402
21407
|
}
|
|
@@ -21456,21 +21461,21 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21456
21461
|
}
|
|
21457
21462
|
}
|
|
21458
21463
|
}
|
|
21459
|
-
},
|
|
21464
|
+
}, t_ = Math.PI / 180, n_ = 180 / Math.PI, r_ = .001, i_ = 1, a_ = (() => {
|
|
21460
21465
|
let e = typeof navigator < "u" && /iPad|iPhone|iPod/.test(navigator.platform);
|
|
21461
21466
|
return () => e;
|
|
21462
|
-
})(),
|
|
21467
|
+
})(), o_ = (() => {
|
|
21463
21468
|
let e = typeof navigator < "u" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
21464
21469
|
return () => e;
|
|
21465
|
-
})(),
|
|
21470
|
+
})(), s_ = (() => {
|
|
21466
21471
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("Firefox") !== -1 && navigator.userAgent.indexOf("Android") !== -1;
|
|
21467
21472
|
return () => e;
|
|
21468
|
-
})(),
|
|
21473
|
+
})(), c_ = (() => {
|
|
21469
21474
|
let e = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9]+)/) : null, t = e ? parseInt(e[1], 10) : null;
|
|
21470
21475
|
return () => t;
|
|
21471
|
-
})(),
|
|
21476
|
+
})(), l_ = (() => {
|
|
21472
21477
|
let e = !1;
|
|
21473
|
-
if (
|
|
21478
|
+
if (c_() === 65) {
|
|
21474
21479
|
let t = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/) : null;
|
|
21475
21480
|
if (t) {
|
|
21476
21481
|
let [n, r, i, a] = t[1].split(".");
|
|
@@ -21478,41 +21483,41 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
|
|
|
21478
21483
|
}
|
|
21479
21484
|
}
|
|
21480
21485
|
return () => e;
|
|
21481
|
-
})(), l_ = (() => {
|
|
21482
|
-
let e = i_() && a_() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
|
|
21483
|
-
return () => e;
|
|
21484
21486
|
})(), u_ = (() => {
|
|
21487
|
+
let e = a_() && o_() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
|
|
21488
|
+
return () => e;
|
|
21489
|
+
})(), d_ = (() => {
|
|
21485
21490
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("R7 Build") !== -1;
|
|
21486
21491
|
return () => e;
|
|
21487
21492
|
})();
|
|
21488
|
-
function
|
|
21493
|
+
function f_() {
|
|
21489
21494
|
let e = typeof window < "u" && (window.orientation == 90 || window.orientation == -90);
|
|
21490
|
-
return
|
|
21491
|
-
}
|
|
21492
|
-
function f_(e) {
|
|
21493
|
-
return !(isNaN(e) || e <= n_ || e > r_);
|
|
21495
|
+
return d_() ? !e : e;
|
|
21494
21496
|
}
|
|
21495
21497
|
function p_(e) {
|
|
21498
|
+
return !(isNaN(e) || e <= r_ || e > i_);
|
|
21499
|
+
}
|
|
21500
|
+
function m_(e) {
|
|
21496
21501
|
return e.w > 1 ? 0 : 2 * Math.acos(e.w);
|
|
21497
21502
|
}
|
|
21498
|
-
var
|
|
21503
|
+
var h_ = (() => {
|
|
21499
21504
|
let e = {};
|
|
21500
21505
|
return (t, n) => {
|
|
21501
21506
|
e[t] === void 0 && (console.warn("cardboard: " + n), e[t] = !0);
|
|
21502
21507
|
};
|
|
21503
21508
|
})();
|
|
21504
|
-
function
|
|
21509
|
+
function g_(e) {
|
|
21505
21510
|
let t, n = e.indexOf("://");
|
|
21506
21511
|
t = n === -1 ? 0 : n + 3;
|
|
21507
21512
|
let r = e.indexOf("/", t);
|
|
21508
21513
|
return r === -1 && (r = e.length), e.substring(0, r);
|
|
21509
21514
|
}
|
|
21510
|
-
function
|
|
21515
|
+
function __() {
|
|
21511
21516
|
if (typeof window > "u" || typeof document > "u") return !1;
|
|
21512
|
-
let e = window.self !== window.top, t =
|
|
21517
|
+
let e = window.self !== window.top, t = g_(document.referrer), n = g_(window.location.href);
|
|
21513
21518
|
return e && t !== n;
|
|
21514
21519
|
}
|
|
21515
|
-
var
|
|
21520
|
+
var v_ = (() => {
|
|
21516
21521
|
function e(e, t, n) {
|
|
21517
21522
|
let r = t ? t[0] : 0, i = t ? t[1] : 0, a = t ? t[2] : 0, o = t ? t[3] : 1, s = r + r, c = i + i, l = a + a, u = r * s, d = r * c, f = r * l, p = i * c, m = i * l, h = a * l, g = o * s, _ = o * c, v = o * l;
|
|
21518
21523
|
return e[0] = 1 - (p + h), e[1] = d + v, e[2] = f - _, e[3] = 0, e[4] = d - v, e[5] = 1 - (u + h), e[6] = m + g, e[7] = 0, e[8] = f + _, e[9] = m - g, e[10] = 1 - (u + p), e[11] = 0, e[12] = n ? n[0] : 0, e[13] = n ? n[1] : 0, e[14] = n ? n[2] : 0, e[15] = 1, e;
|
|
@@ -21528,7 +21533,7 @@ var __ = (() => {
|
|
|
21528
21533
|
return (r, i, a) => {
|
|
21529
21534
|
e(r, i), a && t(r, r, a), n(r, r);
|
|
21530
21535
|
};
|
|
21531
|
-
})(),
|
|
21536
|
+
})(), y_ = class {
|
|
21532
21537
|
constructor(t = new e.Vector3(), n = 0) {
|
|
21533
21538
|
this.sample = t, this.timestampS = n;
|
|
21534
21539
|
}
|
|
@@ -21538,15 +21543,15 @@ var __ = (() => {
|
|
|
21538
21543
|
copy(e) {
|
|
21539
21544
|
this.set(e.sample, e.timestampS);
|
|
21540
21545
|
}
|
|
21541
|
-
},
|
|
21546
|
+
}, b_ = class {
|
|
21542
21547
|
constructor(t, n) {
|
|
21543
|
-
this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new
|
|
21548
|
+
this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new y_(), this.currentGyroMeasurement = new y_(), this.previousGyroMeasurement = new y_(), a_() ? this.filterQ = new e.Quaternion(-1, 0, 0, 1) : this.filterQ = new e.Quaternion(1, 0, 0, 1), this.previousFilterQ = new e.Quaternion(), this.previousFilterQ.copy(this.filterQ), this.accelQ = new e.Quaternion(), this.isOrientationInitialized = !1, this.estimatedGravity = new e.Vector3(), this.measuredGravity = new e.Vector3(), this.gyroIntegralQ = new e.Quaternion();
|
|
21544
21549
|
}
|
|
21545
21550
|
addAccelMeasurement(e, t) {
|
|
21546
21551
|
this.currentAccelMeasurement.set(e, t);
|
|
21547
21552
|
}
|
|
21548
21553
|
addGyroMeasurement(e, t) {
|
|
21549
|
-
this.currentGyroMeasurement.set(e, t),
|
|
21554
|
+
this.currentGyroMeasurement.set(e, t), p_(t - this.previousGyroMeasurement.timestampS) && this.run_(), this.previousGyroMeasurement.copy(this.currentGyroMeasurement);
|
|
21550
21555
|
}
|
|
21551
21556
|
getOrientation() {
|
|
21552
21557
|
return this.filterQ;
|
|
@@ -21561,7 +21566,7 @@ var __ = (() => {
|
|
|
21561
21566
|
let r = new e.Quaternion();
|
|
21562
21567
|
r.copy(this.filterQ), r.inverse(), this.estimatedGravity.set(0, 0, -1), this.estimatedGravity.applyQuaternion(r), this.estimatedGravity.normalize(), this.measuredGravity.copy(this.currentAccelMeasurement.sample), this.measuredGravity.normalize();
|
|
21563
21568
|
let i = new e.Quaternion();
|
|
21564
|
-
i.setFromUnitVectors(this.estimatedGravity, this.measuredGravity), i.inverse(), this.isDebug && console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",
|
|
21569
|
+
i.setFromUnitVectors(this.estimatedGravity, this.measuredGravity), i.inverse(), this.isDebug && console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)", n_ * m_(i), this.estimatedGravity.x.toFixed(1), this.estimatedGravity.y.toFixed(1), this.estimatedGravity.z.toFixed(1), this.measuredGravity.x.toFixed(1), this.measuredGravity.y.toFixed(1), this.measuredGravity.z.toFixed(1));
|
|
21565
21570
|
let a = new e.Quaternion();
|
|
21566
21571
|
a.copy(this.filterQ), a.multiply(i), this.filterQ.slerp(a, 1 - this.kFilter), this.previousFilterQ.copy(this.filterQ);
|
|
21567
21572
|
}
|
|
@@ -21575,7 +21580,7 @@ var __ = (() => {
|
|
|
21575
21580
|
let r = new e.Quaternion(), i = new e.Vector3();
|
|
21576
21581
|
return i.copy(t), i.normalize(), r.setFromAxisAngle(i, t.length() * n), r;
|
|
21577
21582
|
}
|
|
21578
|
-
},
|
|
21583
|
+
}, x_ = class {
|
|
21579
21584
|
constructor(t, n) {
|
|
21580
21585
|
this.predictionTimeS = t, this.isDebug = n, this.previousQ = new e.Quaternion(), this.previousTimestampS = null, this.deltaQ = new e.Quaternion(), this.outQ = new e.Quaternion();
|
|
21581
21586
|
}
|
|
@@ -21584,11 +21589,11 @@ var __ = (() => {
|
|
|
21584
21589
|
let i = new e.Vector3();
|
|
21585
21590
|
i.copy(n), i.normalize();
|
|
21586
21591
|
let a = n.length();
|
|
21587
|
-
if (a <
|
|
21592
|
+
if (a < t_ * 20) return this.isDebug && console.log("Moving slowly, at %s deg/s: no prediction", (n_ * a).toFixed(1)), this.outQ.copy(t), this.previousQ.copy(t), this.outQ;
|
|
21588
21593
|
let o = a * this.predictionTimeS;
|
|
21589
21594
|
return this.deltaQ.setFromAxisAngle(i, o), this.outQ.copy(this.previousQ), this.outQ.multiply(this.deltaQ), this.previousQ.copy(t), this.previousTimestampS = r, this.outQ;
|
|
21590
21595
|
}
|
|
21591
|
-
},
|
|
21596
|
+
}, S_ = class {
|
|
21592
21597
|
constructor(e) {
|
|
21593
21598
|
this.coefficients = e;
|
|
21594
21599
|
}
|
|
@@ -21605,15 +21610,15 @@ var __ = (() => {
|
|
|
21605
21610
|
for (let e = 0; e < this.coefficients.length; e++) n = t * (n + this.coefficients[e]);
|
|
21606
21611
|
return (n + 1) * e;
|
|
21607
21612
|
}
|
|
21608
|
-
},
|
|
21613
|
+
}, C_ = class {
|
|
21609
21614
|
constructor() {
|
|
21610
21615
|
this.angularAcceleration = null, this.angularVelocity = null, this.linearAcceleration = null, this.linearVelocity = null, this.orientation = null, this.position = null;
|
|
21611
21616
|
}
|
|
21612
|
-
},
|
|
21617
|
+
}, w_ = class {
|
|
21613
21618
|
constructor() {
|
|
21614
21619
|
this.leftDegrees = 0, this.rightDegrees = 0, this.upDegrees = 0, this.downDegrees = 0;
|
|
21615
21620
|
}
|
|
21616
|
-
},
|
|
21621
|
+
}, T_ = class {
|
|
21617
21622
|
constructor(t, n, r, i) {
|
|
21618
21623
|
this.viewer = {
|
|
21619
21624
|
id: "CardboardV1",
|
|
@@ -21641,11 +21646,11 @@ var __ = (() => {
|
|
|
21641
21646
|
widthMeters: .11,
|
|
21642
21647
|
heightMeters: .062,
|
|
21643
21648
|
bevelMeters: .004
|
|
21644
|
-
}, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new
|
|
21645
|
-
let a =
|
|
21646
|
-
this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion =
|
|
21649
|
+
}, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new b_(t, i), this.posePredictor = new x_(n, i), this.isFirefoxAndroid = s_(), this.isIOS = a_();
|
|
21650
|
+
let a = c_();
|
|
21651
|
+
this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion = l_() || u_(), this.filterToWorldQ = new e.Quaternion(), a_() ? this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), Math.PI / 2) : this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), -Math.PI / 2), this.inverseWorldToScreenQ = new e.Quaternion(), this.worldToScreenQ = new e.Quaternion(), this.originalPoseAdjustQ = new e.Quaternion();
|
|
21647
21652
|
let o = typeof window < "u" ? -window.orientation * Math.PI / 180 : 0;
|
|
21648
|
-
this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(),
|
|
21653
|
+
this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(), f_() && this.filterToWorldQ.multiply(this.inverseWorldToScreenQ), this.resetQ = new e.Quaternion(), this.orientationOut_ = new Float32Array(4), this.previousTimestampS = Date.now();
|
|
21649
21654
|
}
|
|
21650
21655
|
getPosition() {
|
|
21651
21656
|
return null;
|
|
@@ -21670,20 +21675,20 @@ var __ = (() => {
|
|
|
21670
21675
|
return n.copy(this.filterToWorldQ), n.multiply(this.resetQ), n.multiply(t), n.multiply(this.worldToScreenQ), this.yawOnly && (n.x = 0, n.z = 0, n.normalize()), this.orientationOut_[0] = n.x, this.orientationOut_[1] = n.y, this.orientationOut_[2] = n.z, this.orientationOut_[3] = n.w, this.orientationOut_;
|
|
21671
21676
|
}
|
|
21672
21677
|
getPose() {
|
|
21673
|
-
let e = new
|
|
21678
|
+
let e = new C_();
|
|
21674
21679
|
return e.orientation = this.getOrientation(), e;
|
|
21675
21680
|
}
|
|
21676
21681
|
resetPose() {
|
|
21677
|
-
this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(),
|
|
21682
|
+
this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(), f_() && this.resetQ.multiply(this.inverseWorldToScreenQ), this.resetQ.multiply(this.originalPoseAdjustQ);
|
|
21678
21683
|
}
|
|
21679
21684
|
getFrameData(e) {
|
|
21680
21685
|
let t = this.getOrientation(), n = this.getEyeOffset(), r = this.getEyeProjectionMatrix();
|
|
21681
|
-
return e.pose.angularAcceleration = null, e.pose.angularVelocity = null, e.pose.linearAcceleration = null, e.pose.linearVelocity = null, e.pose.orientation = t, e.pose.position = null, e.timestamp = this.previousTimestampS, e.leftProjectionMatrix.set(r.left), e.rightProjectionMatrix.set(r.right),
|
|
21686
|
+
return e.pose.angularAcceleration = null, e.pose.angularVelocity = null, e.pose.linearAcceleration = null, e.pose.linearVelocity = null, e.pose.orientation = t, e.pose.position = null, e.timestamp = this.previousTimestampS, e.leftProjectionMatrix.set(r.left), e.rightProjectionMatrix.set(r.right), v_(e.leftViewMatrix, t, n.left), v_(e.rightViewMatrix, t, n.right), e;
|
|
21682
21687
|
}
|
|
21683
21688
|
start() {
|
|
21684
21689
|
if (typeof window > "u") return () => {};
|
|
21685
21690
|
let e = this.onDeviceMotion_.bind(this), t = this.onOrientationChange_.bind(this), n = this.onMessage_.bind(this), r = this.onDeviceOrientation_.bind(this);
|
|
21686
|
-
return
|
|
21691
|
+
return a_() && __() && window.addEventListener("message", n), window.addEventListener("orientationchange", t), this.isWithoutDeviceMotion ? window.addEventListener("deviceorientation", r) : window.addEventListener("devicemotion", e), () => {
|
|
21687
21692
|
window.removeEventListener("devicemotion", e), window.removeEventListener("deviceorientation", t), window.removeEventListener("orientationchange", t), window.removeEventListener("message", n);
|
|
21688
21693
|
};
|
|
21689
21694
|
}
|
|
@@ -21707,17 +21712,17 @@ var __ = (() => {
|
|
|
21707
21712
|
right: []
|
|
21708
21713
|
};
|
|
21709
21714
|
{
|
|
21710
|
-
let i = e.left.upDegrees *
|
|
21715
|
+
let i = e.left.upDegrees * t_, a = e.left.downDegrees * t_, o = e.left.leftDegrees * t_, s = e.left.rightDegrees * t_, c = 2 / (o + s), l = 2 / (i + a);
|
|
21711
21716
|
r.left[0] = c, r.left[1] = 0, r.left[2] = 0, r.left[3] = 0, r.left[4] = 0, r.left[5] = l, r.left[6] = 0, r.left[7] = 0, r.left[8] = -((o - s) * c * .5), r.left[9] = (i - a) * l * .5, r.left[10] = n / (t - n), r.left[11] = -1, r.left[12] = 0, r.left[13] = 0, r.left[14] = n * t / (t - n), r.left[15] = 0;
|
|
21712
21717
|
}
|
|
21713
21718
|
{
|
|
21714
|
-
let i = e.right.upDegrees *
|
|
21719
|
+
let i = e.right.upDegrees * t_, a = e.right.downDegrees * t_, o = e.right.leftDegrees * t_, s = e.right.rightDegrees * t_, c = 2 / (o + s), l = 2 / (i + a);
|
|
21715
21720
|
r.right[0] = c, r.right[1] = 0, r.right[2] = 0, r.right[3] = 0, r.right[4] = 0, r.right[5] = l, r.right[6] = 0, r.right[7] = 0, r.right[8] = -((o - s) * c * .5), r.right[9] = (i - a) * l * .5, r.right[10] = n / (t - n), r.right[11] = -1, r.right[12] = 0, r.right[13] = 0, r.right[14] = n * t / (t - n), r.right[15] = 0;
|
|
21716
21721
|
}
|
|
21717
21722
|
return r;
|
|
21718
21723
|
}
|
|
21719
21724
|
getEyeFieldOfView() {
|
|
21720
|
-
let e = this.viewer, t = this.device, n = new
|
|
21725
|
+
let e = this.viewer, t = this.device, n = new S_(e.distortionCoefficients), r = e.screenLensDistance, i = (t.widthMeters - e.interLensDistance) / 2, a = e.interLensDistance / 2, o = e.baselineLensDistance - t.bevelMeters, s = t.heightMeters - o, c = n_ * Math.atan(n.distort(i / r)), l = n_ * Math.atan(n.distort(a / r)), u = n_ * Math.atan(n.distort(o / r)), d = n_ * Math.atan(n.distort(s / r)), f = new w_(), p = new w_();
|
|
21721
21726
|
return f.leftDegrees = Math.min(c, e.fov), f.rightDegrees = Math.min(l, e.fov), f.downDegrees = Math.min(u, e.fov), f.upDegrees = Math.min(d, e.fov), p.leftDegrees = f.rightDegrees, p.rightDegrees = f.leftDegrees, p.upDegrees = f.upDegrees, p.downDegrees = f.downDegrees, {
|
|
21722
21727
|
left: f,
|
|
21723
21728
|
right: p
|
|
@@ -21734,13 +21739,13 @@ var __ = (() => {
|
|
|
21734
21739
|
updateDeviceMotion_(e) {
|
|
21735
21740
|
let t = e.accelerationIncludingGravity, n = e.rotationRate, r = e.timeStamp / 1e3, i = r - this.previousTimestampS;
|
|
21736
21741
|
if (i < 0) {
|
|
21737
|
-
|
|
21742
|
+
h_("fusion-pose-sensor:invalid:non-monotonic", "Invalid timestamps detected: non-monotonic timestamp from devicemotion"), this.previousTimestampS = r;
|
|
21738
21743
|
return;
|
|
21739
|
-
} else if (i <=
|
|
21740
|
-
|
|
21744
|
+
} else if (i <= r_ || i > i_) {
|
|
21745
|
+
h_("fusion-pose-sensor:invalid:outside-threshold", "Invalid timestamps detected: Timestamp from devicemotion outside expected range."), this.previousTimestampS = r;
|
|
21741
21746
|
return;
|
|
21742
21747
|
}
|
|
21743
|
-
t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (
|
|
21748
|
+
t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (d_() ? this.gyroscope.set(-n.beta, n.alpha, n.gamma) : this.gyroscope.set(n.alpha, n.beta, n.gamma), this.isDeviceMotionInRadians || this.gyroscope.multiplyScalar(Math.PI / 180), this.filter.addGyroMeasurement(this.gyroscope, r)), this.filter.addAccelMeasurement(this.accelerometer, r)), this.previousTimestampS = r;
|
|
21744
21749
|
}
|
|
21745
21750
|
onOrientationChange_() {
|
|
21746
21751
|
this.setScreenTransform_();
|
|
@@ -21762,19 +21767,19 @@ var __ = (() => {
|
|
|
21762
21767
|
}
|
|
21763
21768
|
this.inverseWorldToScreenQ.copy(this.worldToScreenQ), this.inverseWorldToScreenQ.inverse();
|
|
21764
21769
|
}
|
|
21765
|
-
},
|
|
21770
|
+
}, E_ = [
|
|
21766
21771
|
0,
|
|
21767
21772
|
0,
|
|
21768
21773
|
.5,
|
|
21769
21774
|
1
|
|
21770
|
-
],
|
|
21775
|
+
], D_ = [
|
|
21771
21776
|
.5,
|
|
21772
21777
|
0,
|
|
21773
21778
|
.5,
|
|
21774
21779
|
1
|
|
21775
|
-
],
|
|
21780
|
+
], O_ = class {
|
|
21776
21781
|
constructor(t) {
|
|
21777
|
-
this.renderer = t, this.sensor = new
|
|
21782
|
+
this.renderer = t, this.sensor = new T_(.98, .04, !1, !1), this.scale = 1, this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera();
|
|
21778
21783
|
let n = this.sensor.start();
|
|
21779
21784
|
this.dispose = () => {
|
|
21780
21785
|
let t = this.renderer.getSize(new e.Vector2());
|
|
@@ -21787,15 +21792,15 @@ var __ = (() => {
|
|
|
21787
21792
|
var i = t.autoUpdate;
|
|
21788
21793
|
i && (t.updateMatrixWorld(), t.autoUpdate = !1);
|
|
21789
21794
|
let a = {
|
|
21790
|
-
x: Math.round(r.width * T_[0]),
|
|
21791
|
-
y: Math.round(r.height * T_[1]),
|
|
21792
|
-
width: Math.round(r.width * T_[2]),
|
|
21793
|
-
height: Math.round(r.height * T_[3])
|
|
21794
|
-
}, o = {
|
|
21795
21795
|
x: Math.round(r.width * E_[0]),
|
|
21796
21796
|
y: Math.round(r.height * E_[1]),
|
|
21797
21797
|
width: Math.round(r.width * E_[2]),
|
|
21798
21798
|
height: Math.round(r.height * E_[3])
|
|
21799
|
+
}, o = {
|
|
21800
|
+
x: Math.round(r.width * D_[0]),
|
|
21801
|
+
y: Math.round(r.height * D_[1]),
|
|
21802
|
+
width: Math.round(r.width * D_[2]),
|
|
21803
|
+
height: Math.round(r.height * D_[3])
|
|
21799
21804
|
};
|
|
21800
21805
|
this.renderer.setScissorTest(!0), this.renderer.autoClear && this.renderer.clear(), n.parent === null && n.updateMatrixWorld(), n.matrixWorld.decompose(this.cameraL.position, this.cameraL.quaternion, this.cameraL.scale), n.matrixWorld.decompose(this.cameraR.position, this.cameraR.quaternion, this.cameraR.scale);
|
|
21801
21806
|
let s = this.sensor.getEyeOffset();
|
|
@@ -21805,7 +21810,7 @@ var __ = (() => {
|
|
|
21805
21810
|
} else this.renderer.render(t, n);
|
|
21806
21811
|
}
|
|
21807
21812
|
dispose() {}
|
|
21808
|
-
}, O_ = "data:image/png;base64,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", k_ = "data:image/png;base64,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", A_, j_ = {
|
|
21813
|
+
}, k_ = "data:image/png;base64,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", A_ = "data:image/png;base64,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", j_, M_ = {
|
|
21809
21814
|
zh: {
|
|
21810
21815
|
TITLE: "眼镜模式",
|
|
21811
21816
|
HIT: "请将手机横屏放入 VR 眼镜中"
|
|
@@ -21818,7 +21823,7 @@ var __ = (() => {
|
|
|
21818
21823
|
TITLE: "メガネモード",
|
|
21819
21824
|
HIT: "携帯電話をVRメガネに水平に入れてください。"
|
|
21820
21825
|
}
|
|
21821
|
-
},
|
|
21826
|
+
}, N_ = typeof navigator < "u" ? (j_ = M_[navigator.language.split("-")[0]]) == null ? M_.zh : j_ : M_.zh, P_ = `
|
|
21822
21827
|
<style>
|
|
21823
21828
|
.$id {
|
|
21824
21829
|
all: initial;
|
|
@@ -21901,7 +21906,7 @@ var __ = (() => {
|
|
|
21901
21906
|
.$id-modal-content-guide-cardboard-image {
|
|
21902
21907
|
width: 100px;
|
|
21903
21908
|
height: 82px;
|
|
21904
|
-
background-image: url(${
|
|
21909
|
+
background-image: url(${k_});
|
|
21905
21910
|
background-size: 100%;
|
|
21906
21911
|
background-repeat: no-repeat;
|
|
21907
21912
|
}
|
|
@@ -21943,7 +21948,7 @@ var __ = (() => {
|
|
|
21943
21948
|
.$id-modal-content-guide-phone-image {
|
|
21944
21949
|
width: 58px;
|
|
21945
21950
|
height: 56px;
|
|
21946
|
-
background-image: url(${
|
|
21951
|
+
background-image: url(${A_});
|
|
21947
21952
|
background-size: 100%;
|
|
21948
21953
|
background-repeat: no-repeat;
|
|
21949
21954
|
}
|
|
@@ -22020,8 +22025,8 @@ Z
|
|
|
22020
22025
|
</div>
|
|
22021
22026
|
</div>
|
|
22022
22027
|
<div class="$id-modal-content">
|
|
22023
|
-
<div class="$id-modal-content-title">${
|
|
22024
|
-
<div class="$id-modal-content-hit">${
|
|
22028
|
+
<div class="$id-modal-content-title">${N_.TITLE}</div>
|
|
22029
|
+
<div class="$id-modal-content-hit">${N_.HIT}</div>
|
|
22025
22030
|
<div class="$id-modal-content-guide">
|
|
22026
22031
|
<div class="$id-modal-content-guide-phone">
|
|
22027
22032
|
<div class="$id-modal-content-guide-phone-move-x">
|
|
@@ -22080,7 +22085,7 @@ Z
|
|
|
22080
22085
|
</div>
|
|
22081
22086
|
</div>
|
|
22082
22087
|
`;
|
|
22083
|
-
function
|
|
22088
|
+
function F_(e) {
|
|
22084
22089
|
let t = 1, n = document.getElementsByTagName("meta");
|
|
22085
22090
|
for (let e = 0; e < n.length; e++) {
|
|
22086
22091
|
let r = n[e];
|
|
@@ -22090,15 +22095,15 @@ function P_(e) {
|
|
|
22090
22095
|
}
|
|
22091
22096
|
}
|
|
22092
22097
|
let r = (e) => Math.floor(e * t) + "px";
|
|
22093
|
-
return
|
|
22098
|
+
return P_.replace(/\n/g, " ").replace(/\ +/g, " ").replace(/\$id/g, e).replace(/(\d+)px/g, (e, t) => r(Number(t)));
|
|
22094
22099
|
}
|
|
22095
|
-
function
|
|
22096
|
-
let e = "five_vr_helper_" + $t(), t =
|
|
22100
|
+
function I_() {
|
|
22101
|
+
let e = "five_vr_helper_" + $t(), t = F_(e), n = document.createElement("div");
|
|
22097
22102
|
return n.className = e, n.innerHTML = t, n;
|
|
22098
22103
|
}
|
|
22099
22104
|
//#endregion
|
|
22100
22105
|
//#region build/five/meshes/panoSphereMesh.js
|
|
22101
|
-
var
|
|
22106
|
+
var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n", z_ = "\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#include <common>\n#include <logdepthbuf_pars_fragment>\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, PI2);\n float gradient = (1.0 - smoothstep(0.0, PI2, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n #include <logdepthbuf_fragment>\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n", B_ = "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n", V_ = "\nvarying vec2 vUv;\nuniform float opacity;\n#include <common>\n#include <logdepthbuf_pars_fragment>\n\nfloat smoothDist = 0.01;\nvoid main() {\n #include <logdepthbuf_fragment>\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n", H_ = class extends e.Object3D {
|
|
22102
22107
|
constructor() {
|
|
22103
22108
|
super(), this.progress = 0, this.opacity = 0, this.loading = !1, this.current = !1, this.disabled = !1, this.currentMotion = new X({
|
|
22104
22109
|
ringScale: 1.1,
|
|
@@ -22116,16 +22121,16 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22116
22121
|
depthWrite: !1,
|
|
22117
22122
|
transparent: !0
|
|
22118
22123
|
};
|
|
22119
|
-
this.hitTestMesh = new e.Mesh(
|
|
22124
|
+
this.hitTestMesh = new e.Mesh(L_, new e.MeshBasicMaterial(Object.assign(Object.assign({}, t), {
|
|
22120
22125
|
color: 0,
|
|
22121
22126
|
opacity: 0
|
|
22122
|
-
}))), this.hitTestMesh.scale.set(1.5, 1.5, 1.5), this.ringMesh = new e.Mesh(
|
|
22123
|
-
vertexShader:
|
|
22124
|
-
fragmentShader:
|
|
22127
|
+
}))), this.hitTestMesh.scale.set(1.5, 1.5, 1.5), this.ringMesh = new e.Mesh(L_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
|
|
22128
|
+
vertexShader: B_,
|
|
22129
|
+
fragmentShader: V_,
|
|
22125
22130
|
uniforms: { opacity: { value: 0 } }
|
|
22126
|
-
}))), this.panoMesh = new e.Mesh(
|
|
22127
|
-
vertexShader:
|
|
22128
|
-
fragmentShader:
|
|
22131
|
+
}))), this.panoMesh = new e.Mesh(L_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
|
|
22132
|
+
vertexShader: R_,
|
|
22133
|
+
fragmentShader: z_,
|
|
22129
22134
|
uniforms: {
|
|
22130
22135
|
circleScale: { value: 1.1 },
|
|
22131
22136
|
circleFade: { value: 0 },
|
|
@@ -22278,7 +22283,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22278
22283
|
dispose() {
|
|
22279
22284
|
this.hitTestMesh.material.dispose(), this.ringMesh.material.dispose(), this.panoMesh.material.dispose();
|
|
22280
22285
|
}
|
|
22281
|
-
},
|
|
22286
|
+
}, U_ = 1500, W_ = Object.assign({}, hr($g, ["maxLatitude", "minLatitude"])), G_ = class t extends e_ {
|
|
22282
22287
|
static parseArgs(e) {
|
|
22283
22288
|
if (e instanceof t) return e;
|
|
22284
22289
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -22293,10 +22298,10 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22293
22298
|
}
|
|
22294
22299
|
constructor(e) {
|
|
22295
22300
|
let n = t.parseArgs(e);
|
|
22296
|
-
super(n), this.mode = "VRPanorama", this.cardboard = new
|
|
22297
|
-
let r =
|
|
22301
|
+
super(n), this.mode = "VRPanorama", this.cardboard = new O_(this.renderer);
|
|
22302
|
+
let r = I_();
|
|
22298
22303
|
this.helperElement = r;
|
|
22299
|
-
let i = new
|
|
22304
|
+
let i = new Wh(r);
|
|
22300
22305
|
this.element.parentNode && (this.element.parentNode.insertBefore(r, this.element), this.updateHelperElementSize(), i.on("tap", () => this.emit("vr.requestExit", Q("vr.requestExit", {})))), this.destroyHelper = () => {
|
|
22301
22306
|
i.destroy(), r.parentNode && r.parentNode.removeChild(r), this.helperElement = void 0;
|
|
22302
22307
|
};
|
|
@@ -22403,7 +22408,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22403
22408
|
let n = T.get(t);
|
|
22404
22409
|
n ? (e.position.copy(n.position).applyMatrix4(n.work.transform), T.delete(t)) : (this.helper.remove(e), e.dispose(), this.panoMeshes.delete(t));
|
|
22405
22410
|
}), T.forEach((e, t) => {
|
|
22406
|
-
let n = new
|
|
22411
|
+
let n = new H_();
|
|
22407
22412
|
n.position.copy(e.position).applyMatrix4(e.work.transform), e.position.distanceTo(e.standingPosition) > this.aerialObserverMinHeight ? n.scale.setScalar(15) : n.scale.setScalar(1), this.panoMeshes.set(t, n), this.helper.add(n), T.delete(t);
|
|
22408
22413
|
}), this.camera.pose.distance > .1 || b ? this.panoMeshes.forEach((e, r) => {
|
|
22409
22414
|
e.setOpacity(0), e.updateTime && e.updateTime(t, n), e.visible = !1;
|
|
@@ -22480,9 +22485,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22480
22485
|
generateMipmaps: !1
|
|
22481
22486
|
});
|
|
22482
22487
|
let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
|
|
22483
|
-
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1,
|
|
22488
|
+
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, t, 500);
|
|
22484
22489
|
let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
|
|
22485
|
-
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1,
|
|
22490
|
+
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
|
|
22486
22491
|
pano0Depth: {
|
|
22487
22492
|
panoId: n.panoId,
|
|
22488
22493
|
map: this.pano0DepthCubeRenderTarget.texture,
|
|
@@ -22519,7 +22524,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22519
22524
|
this.intersectMesh.visible = !1, this.activePanoMesh = void 0, this.activeTime = void 0;
|
|
22520
22525
|
return;
|
|
22521
22526
|
}
|
|
22522
|
-
if (this.activePanoMesh && this.activeTime && t - this.activeTime >
|
|
22527
|
+
if (this.activePanoMesh && this.activeTime && t - this.activeTime > U_) {
|
|
22523
22528
|
let e = this.activePanoMesh, t = null;
|
|
22524
22529
|
return this.panoMeshes.forEach((n, r) => {
|
|
22525
22530
|
n === e && (t = r);
|
|
@@ -22571,7 +22576,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22571
22576
|
onPinchGesture() {}
|
|
22572
22577
|
onMouseMove() {}
|
|
22573
22578
|
onMouseOut() {}
|
|
22574
|
-
},
|
|
22579
|
+
}, K_ = new e.Vector3(0, 1.6, 0), q_ = new e.Box3(), J_ = new e.Vector3(), Y_ = Object.assign({}, ng), X_ = class t extends rg {
|
|
22575
22580
|
static parseArgs(e) {
|
|
22576
22581
|
return e instanceof t ? e : super.parseArgs(e);
|
|
22577
22582
|
}
|
|
@@ -22679,9 +22684,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22679
22684
|
let n = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), r = [];
|
|
22680
22685
|
for (let e of this.works) {
|
|
22681
22686
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
22682
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
22687
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (q_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), q_.containsPoint(n))) for (let t of e.observers) r.push(t);
|
|
22683
22688
|
}
|
|
22684
|
-
let i = Rl(r, (e) =>
|
|
22689
|
+
let i = Rl(r, (e) => J_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n));
|
|
22685
22690
|
this.currentPano = i ? {
|
|
22686
22691
|
workCode: i.work.workCode,
|
|
22687
22692
|
panoIndex: i.panoIndex
|
|
@@ -22774,9 +22779,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22774
22779
|
}, g = [];
|
|
22775
22780
|
for (let e of this.works) {
|
|
22776
22781
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
22777
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
22782
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (q_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), q_.containsPoint(c))) for (let t of e.observers) g.push(t);
|
|
22778
22783
|
}
|
|
22779
|
-
let _ = Rl(g, (e) =>
|
|
22784
|
+
let _ = Rl(g, (e) => J_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(c)), v = _ ? {
|
|
22780
22785
|
workCode: _.work.workCode,
|
|
22781
22786
|
panoIndex: _.panoIndex
|
|
22782
22787
|
} : {
|
|
@@ -22845,16 +22850,16 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22845
22850
|
}
|
|
22846
22851
|
}
|
|
22847
22852
|
if (r) {
|
|
22848
|
-
let n = new e.Vector3().copy(r.point).add(
|
|
22853
|
+
let n = new e.Vector3().copy(r.point).add(K_), i = [];
|
|
22849
22854
|
for (let e of this.works) {
|
|
22850
22855
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
22851
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
22856
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (q_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), q_.containsPoint(n))) for (let t of e.observers) i.push(t);
|
|
22852
22857
|
}
|
|
22853
|
-
let [a, o] = Rl(i, (e) =>
|
|
22854
|
-
a && o < 5 && (n.y =
|
|
22858
|
+
let [a, o] = Rl(i, (e) => J_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n), !0);
|
|
22859
|
+
a && o < 5 && (n.y = J_.copy(a.position).applyMatrix4(a.work.transform).y), t.state.offset.copy(n), t.state.distance = 0, this.emit("gesture.tap", t), t.defaultPrevented || this.moveToPosition(n, {}, !0);
|
|
22855
22860
|
} else this.emit("gesture.tap", t), t.defaultPrevented || this.cameraBounce();
|
|
22856
22861
|
}
|
|
22857
|
-
},
|
|
22862
|
+
}, Z_ = new e.Box3(), Q_ = new e.Vector3(), $_ = .5, ev = Math.PI / 7, tv = {
|
|
22858
22863
|
defaultLongitude: Math.PI / 4,
|
|
22859
22864
|
defaultLatitude: Math.PI / 4,
|
|
22860
22865
|
defaultDistance: 150,
|
|
@@ -22862,21 +22867,21 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22862
22867
|
minLatitude: 0,
|
|
22863
22868
|
cameraType: "auto",
|
|
22864
22869
|
cameraFence: null,
|
|
22865
|
-
intersectMeshCreator: () => new
|
|
22866
|
-
},
|
|
22870
|
+
intersectMeshCreator: () => new Jh()
|
|
22871
|
+
}, nv = class t extends Gh {
|
|
22867
22872
|
static parseArgs(e) {
|
|
22868
22873
|
var n, r, i, a, o, s, c, l;
|
|
22869
22874
|
if (e instanceof t) return e;
|
|
22870
22875
|
let u = super.parseArgs(e);
|
|
22871
22876
|
return Object.assign(Object.assign({}, u), {
|
|
22872
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
22873
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
22874
|
-
defaultDistance: (i = e.defaultDistance) == null ?
|
|
22875
|
-
maxLatitude: (a = e.maxLatitude) == null ?
|
|
22876
|
-
minLatitude: (o = e.minLatitude) == null ?
|
|
22877
|
-
cameraType: (s = e.cameraType) == null ?
|
|
22878
|
-
cameraFence: (c = e.cameraFence) == null ?
|
|
22879
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
22877
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? tv.defaultLongitude : n,
|
|
22878
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? tv.defaultLatitude : r,
|
|
22879
|
+
defaultDistance: (i = e.defaultDistance) == null ? tv.defaultDistance : i,
|
|
22880
|
+
maxLatitude: (a = e.maxLatitude) == null ? tv.maxLatitude : a,
|
|
22881
|
+
minLatitude: (o = e.minLatitude) == null ? tv.minLatitude : o,
|
|
22882
|
+
cameraType: (s = e.cameraType) == null ? tv.cameraType : s,
|
|
22883
|
+
cameraFence: (c = e.cameraFence) == null ? tv.cameraFence : c,
|
|
22884
|
+
intersectMeshCreator: (l = e.intersectMeshCreator) == null ? tv.intersectMeshCreator : l
|
|
22880
22885
|
});
|
|
22881
22886
|
}
|
|
22882
22887
|
static distanceFromModel(e, t, n) {
|
|
@@ -23076,9 +23081,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23076
23081
|
let n = [];
|
|
23077
23082
|
for (let t of this.works) {
|
|
23078
23083
|
let r = this.modelScene.models.find((e) => e.work === t);
|
|
23079
|
-
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (
|
|
23084
|
+
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (Z_.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), Z_.containsPoint(e.ray.origin) || e.ray.intersectsBox(Z_))) for (let e of t.observers) n.push(e);
|
|
23080
23085
|
}
|
|
23081
|
-
let [r, i] = Rl(n, (e) =>
|
|
23086
|
+
let [r, i] = Rl(n, (e) => Q_.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
|
|
23082
23087
|
return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
|
|
23083
23088
|
}
|
|
23084
23089
|
coordinatesForOffset(t) {
|
|
@@ -23132,7 +23137,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23132
23137
|
fixFinalState(t) {
|
|
23133
23138
|
if (this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho === 1) return;
|
|
23134
23139
|
let n = Rt(t, new e.Vector3()), r = new e.Vector3().copy(t.offset).sub(n.clone().setLength(t.distance)), i = new e.Raycaster(r, n);
|
|
23135
|
-
i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance >
|
|
23140
|
+
i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance > $_ + i.near, i.near = this.camera.near, i.far = this.camera.far;
|
|
23136
23141
|
let a;
|
|
23137
23142
|
if (a = this.modelScene.intersectRaycaster(i)[0], a && a.distance < this.camera.near && (a = void 0), !a) {
|
|
23138
23143
|
let t = new e.Plane(new e.Vector3(0, 1, 0), -this.modelScene.boundingBox.min.y), n = i.ray.intersectPlane(t, new e.Vector3());
|
|
@@ -23207,7 +23212,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23207
23212
|
}, i = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), a = Rt(this.cameraMotion.value).setLength(this.locationMotion.value.distance).add(i), o = new e.Vector3().copy(a).sub(r.target).length();
|
|
23208
23213
|
o *= Math.tan(this.camera.pose.fov / 2 * Math.PI / 180);
|
|
23209
23214
|
let s = this.renderer.getSize(new e.Vector2()), c = 2 * n.x * o / s.y, l = 2 * n.y * o / s.y, u = new e.Vector3();
|
|
23210
|
-
u.setFromMatrixColumn(this.camera.matrix, 0), u.multiplyScalar(-c), i.add(u), this.camera.pose.latitude <
|
|
23215
|
+
u.setFromMatrixColumn(this.camera.matrix, 0), u.multiplyScalar(-c), i.add(u), this.camera.pose.latitude < ev ? u.setFromMatrixColumn(this.camera.matrix, 1) : (u.setFromMatrixColumn(this.camera.matrix, 0), u.crossVectors(this.camera.up, u)), u.multiplyScalar(l), i.add(u);
|
|
23211
23216
|
let d = Object.assign(Object.assign({}, this.currentPano), {
|
|
23212
23217
|
mode: this.mode,
|
|
23213
23218
|
longitude: this.camera.pose.longitude,
|
|
@@ -23232,7 +23237,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23232
23237
|
z: d.offset.z
|
|
23233
23238
|
}, 0).catch(K)), t.isFinal) {
|
|
23234
23239
|
let n = this.renderer.getSize(new e.Vector2()), r = 2 * t.velocityX * o / n.y, i = 2 * t.velocityY * o / n.y, a = new e.Vector3(), s = new e.Vector3();
|
|
23235
|
-
a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), s.add(a), this.camera.pose.latitude <
|
|
23240
|
+
a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), s.add(a), this.camera.pose.latitude < ev ? a.setFromMatrixColumn(this.camera.matrix, 1) : (a.setFromMatrixColumn(this.camera.matrix, 0), a.crossVectors(this.camera.up, a)), a.multiplyScalar(i), s.add(a), this.inMomentumMovement = { uuid: $t() }, this.requestMomentumMovement(t, !0, {
|
|
23236
23241
|
longitude: 0,
|
|
23237
23242
|
latitude: 0,
|
|
23238
23243
|
x: s.x,
|
|
@@ -23291,7 +23296,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23291
23296
|
return;
|
|
23292
23297
|
}
|
|
23293
23298
|
if (i === void 0) return;
|
|
23294
|
-
let a = this.modelScene.boundingBox.getCenter(new e.Vector3()), o = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), s = U(i / n.scale,
|
|
23299
|
+
let a = this.modelScene.boundingBox.getCenter(new e.Vector3()), o = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), s = U(i / n.scale, $_, Infinity), c = n.state.offset.clone().sub(Rt(n.state).setLength(s)), l = this.modelScene.boundingBox.containsPoint(c), u;
|
|
23295
23300
|
if (!l && this.pinchState && this.pinchState.scale > n.scale && a.distanceTo(c) > o ? u = n.state.distance : (u = s, this.pinchState && (this.pinchState.scale = n.scale)), n.state.distance = u, this.emit("gesture.pinch", n), !n.defaultPrevented && (this.locationMotion.set({ distance: n.state.distance }, 0).catch(K), n.pointerType !== "mouse" && (n.type = "gesture.pan", this.onPanGesture(n)), n.isFinal)) {
|
|
23296
23301
|
if (!("__fixFinalState" in n)) {
|
|
23297
23302
|
let e = n.state;
|
|
@@ -23357,7 +23362,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23357
23362
|
let r = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), i = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), a = Rt(this.cameraMotion.value, new e.Vector3()).negate(), o = new e.Ray(i, a).intersectBox(this.modelScene.boundingBox, new e.Vector3());
|
|
23358
23363
|
o && (r += o.distanceTo(i));
|
|
23359
23364
|
let s = Math.max(this.locationMotion.value.distance - this.camera.near, 0), c = n.center.delta / 10 * Math.max(s / 5, .1);
|
|
23360
|
-
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >=
|
|
23365
|
+
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >= $_) {
|
|
23361
23366
|
let e = this.locationMotion.value.distance - c;
|
|
23362
23367
|
n.state.distance = e;
|
|
23363
23368
|
} else {
|
|
@@ -23432,7 +23437,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23432
23437
|
return;
|
|
23433
23438
|
}
|
|
23434
23439
|
let p;
|
|
23435
|
-
d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) =>
|
|
23440
|
+
d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e)).then((e) => {
|
|
23436
23441
|
var t;
|
|
23437
23442
|
e instanceof Error ? (this.pendingTextureId = null, e.message && this.emit("error", e)) : (d.pano0 && d.pano0.map !== p.map && d.pano0.map.dispose(), d.pano1 && d.pano1.map !== p.map && d.pano1.map !== ((t = d.pano0) == null ? void 0 : t.map) && d.pano1.map.dispose(), d.set({
|
|
23438
23443
|
pano0: p,
|
|
@@ -23465,14 +23470,14 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23465
23470
|
viaAjax: !0,
|
|
23466
23471
|
fetcher: Sf(this.fiveId, r.work)
|
|
23467
23472
|
}, void 0, void 0, void 0, this.renderer)).catch((e) => {
|
|
23468
|
-
let t =
|
|
23473
|
+
let t = Yh(e);
|
|
23469
23474
|
return this.emit("pano.texture.error", Q("pano.texture.error", {
|
|
23470
23475
|
error: t,
|
|
23471
23476
|
progress: 0,
|
|
23472
23477
|
meta: null,
|
|
23473
23478
|
pano: a
|
|
23474
23479
|
})), t;
|
|
23475
|
-
}), Promise.resolve().then(() => Dh(f)).catch((e) =>
|
|
23480
|
+
}), Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e))]).then(([a, s]) => {
|
|
23476
23481
|
var c, l;
|
|
23477
23482
|
if (!(a instanceof Error) && !(s instanceof Error)) {
|
|
23478
23483
|
let { body: s } = a;
|
|
@@ -23482,7 +23487,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23482
23487
|
}
|
|
23483
23488
|
this.pendingTextureId = null, s.name = u;
|
|
23484
23489
|
let f = Array.isArray(s.image) ? s.image[0] : s.image, p = (c = f == null ? void 0 : f.width) == null ? 2048 : c, m = r.images.histogram;
|
|
23485
|
-
m || (m = new gm().formPixels(
|
|
23490
|
+
m || (m = new gm().formPixels(Uh(this.renderer, s, !0, fm).data), r.images.histogram = m);
|
|
23486
23491
|
let h = {
|
|
23487
23492
|
panoId: o,
|
|
23488
23493
|
map: s,
|
|
@@ -23534,12 +23539,12 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23534
23539
|
};
|
|
23535
23540
|
//#endregion
|
|
23536
23541
|
//#region build/five/utils/isNil.js
|
|
23537
|
-
function
|
|
23542
|
+
function rv(e) {
|
|
23538
23543
|
return e == null;
|
|
23539
23544
|
}
|
|
23540
23545
|
//#endregion
|
|
23541
23546
|
//#region build/five/webxr/xrController.js
|
|
23542
|
-
var
|
|
23547
|
+
var iv = { type: "move" }, av = class {
|
|
23543
23548
|
constructor() {
|
|
23544
23549
|
this._targetRay = null, this._grip = null, this._hand = null, this._axes = [0, 0];
|
|
23545
23550
|
}
|
|
@@ -23566,7 +23571,7 @@ var rv = { type: "move" }, iv = class {
|
|
|
23566
23571
|
}
|
|
23567
23572
|
update(t, n, r) {
|
|
23568
23573
|
let i = null, a = null, o = null, s = this._targetRay, c = this._grip, l = this._hand;
|
|
23569
|
-
if (t && t.gamepad && t.gamepad.axes && (this._axes = [t.gamepad.axes[2], t.gamepad.axes[3]]), t && n.session.visibilityState !== "visible-blurred") if (s !== null && (i = n.getPose(t.targetRaySpace, r), i !== null && (s.matrix.fromArray(i.transform.matrix), s.matrix.decompose(s.position, s.rotation, s.scale), i.linearVelocity ? (s.hasLinearVelocity = !0, s.linearVelocity.copy(i.linearVelocity)) : s.hasLinearVelocity = !1, i.angularVelocity ? (s.hasAngularVelocity = !0, s.angularVelocity.copy(i.angularVelocity)) : s.hasAngularVelocity = !1, this.dispatchEvent(
|
|
23574
|
+
if (t && t.gamepad && t.gamepad.axes && (this._axes = [t.gamepad.axes[2], t.gamepad.axes[3]]), t && n.session.visibilityState !== "visible-blurred") if (s !== null && (i = n.getPose(t.targetRaySpace, r), i !== null && (s.matrix.fromArray(i.transform.matrix), s.matrix.decompose(s.position, s.rotation, s.scale), i.linearVelocity ? (s.hasLinearVelocity = !0, s.linearVelocity.copy(i.linearVelocity)) : s.hasLinearVelocity = !1, i.angularVelocity ? (s.hasAngularVelocity = !0, s.angularVelocity.copy(i.angularVelocity)) : s.hasAngularVelocity = !1, this.dispatchEvent(iv))), l && t.hand) {
|
|
23570
23575
|
o = !0;
|
|
23571
23576
|
for (let i of t.hand.values()) {
|
|
23572
23577
|
let t = n.getJointPose(i, r);
|
|
@@ -23590,25 +23595,25 @@ var rv = { type: "move" }, iv = class {
|
|
|
23590
23595
|
} else c !== null && t.gripSpace && (a = n.getPose(t.gripSpace, r), a !== null && (c.matrix.fromArray(a.transform.matrix), c.matrix.decompose(c.position, c.rotation, c.scale), a.linearVelocity ? (c.hasLinearVelocity = !0, c.linearVelocity.copy(a.linearVelocity)) : c.hasLinearVelocity = !1, a.angularVelocity ? (c.hasAngularVelocity = !0, c.angularVelocity.copy(a.angularVelocity)) : c.hasAngularVelocity = !1));
|
|
23591
23596
|
return s !== null && (s.visible = i !== null), c !== null && (c.visible = a !== null), l !== null && (l.visible = o !== null), this;
|
|
23592
23597
|
}
|
|
23593
|
-
},
|
|
23598
|
+
}, ov = 1, sv = () => {
|
|
23594
23599
|
try {
|
|
23595
23600
|
let e = /Macintosh/i.test(navigator.userAgent), t = navigator.maxTouchPoints === 5;
|
|
23596
23601
|
return e && t;
|
|
23597
23602
|
} catch (e) {
|
|
23598
23603
|
return console.error("Error determining if the device is an Apple Vision Pro: ", e), !1;
|
|
23599
23604
|
}
|
|
23600
|
-
},
|
|
23605
|
+
}, cv = () => {
|
|
23601
23606
|
try {
|
|
23602
23607
|
return /Oculus/i.test(navigator.userAgent);
|
|
23603
23608
|
} catch (e) {
|
|
23604
23609
|
return console.error("Error determining if the device is an Oculus: ", e), !1;
|
|
23605
23610
|
}
|
|
23606
|
-
},
|
|
23611
|
+
}, lv = class {
|
|
23607
23612
|
constructor(t, n, r) {
|
|
23608
23613
|
var i, a, o, s, c;
|
|
23609
23614
|
this.isPanorama = (i = r == null ? void 0 : r.isPanorama) == null ? !0 : i, navigator.userAgent.toLowerCase();
|
|
23610
23615
|
let l;
|
|
23611
|
-
l =
|
|
23616
|
+
l = sv() ? "VP" : cv() ? "Oculus" : "Pico", this.machineType = (a = r == null ? void 0 : r.machineType) == null ? l : a, this.renderer = t, this.gl = n, this.enabled = !1, this.session = null, this.referenceSpaceType = (o = r == null ? void 0 : r.referenceSpaceType) == null ? "local-floor" : o, this.referenceSpace = null, this.onSessionStartCallback = (s = r == null ? void 0 : r.onSessionStart) == null ? K : s, this.onSessionEndCallback = (c = r == null ? void 0 : r.onSessionEnd) == null ? K : c, this.controllers = [new av(), new av()], this.inputSourcesMap = /* @__PURE__ */ new Map(), this.cameraVR = new e.ArrayCamera(), this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera(), this.cameraVR.cameras.push(this.cameraL, this.cameraR), this.cameraL.viewport = new e.Vector4(), this.cameraR.viewport = new e.Vector4(), this.cameraL.layers.enable(1), this.cameraR.layers.enable(2), this.cameraVR.layers.enable(1), this.cameraVR.layers.enable(2), this.isPresenting = !1, this.currentDepthNear = null, this.currentDepthFar = null, this.cameraLPos = new e.Vector3(), this.cameraRPos = new e.Vector3();
|
|
23612
23617
|
}
|
|
23613
23618
|
getController(e) {
|
|
23614
23619
|
let t = this.controllers[e];
|
|
@@ -23724,7 +23729,7 @@ var rv = { type: "move" }, iv = class {
|
|
|
23724
23729
|
alpha: e == null ? void 0 : e.alpha,
|
|
23725
23730
|
depth: e == null ? void 0 : e.depth,
|
|
23726
23731
|
stencil: e == null ? void 0 : e.stencil,
|
|
23727
|
-
framebufferScaleFactor:
|
|
23732
|
+
framebufferScaleFactor: ov
|
|
23728
23733
|
};
|
|
23729
23734
|
if (!this.session) {
|
|
23730
23735
|
console.error("session is lose while set session!");
|
|
@@ -23750,7 +23755,7 @@ var rv = { type: "move" }, iv = class {
|
|
|
23750
23755
|
});
|
|
23751
23756
|
}
|
|
23752
23757
|
}
|
|
23753
|
-
},
|
|
23758
|
+
}, uv = class extends e.InstancedBufferGeometry {
|
|
23754
23759
|
constructor() {
|
|
23755
23760
|
super(), this.type = "LineSegmentsGeometry", this.setIndex([
|
|
23756
23761
|
0,
|
|
@@ -23869,10 +23874,10 @@ var rv = { type: "move" }, iv = class {
|
|
|
23869
23874
|
}
|
|
23870
23875
|
toJSON() {}
|
|
23871
23876
|
};
|
|
23872
|
-
Object.assign(
|
|
23877
|
+
Object.assign(uv.prototype, { isLineSegmentsGeometry: !0 });
|
|
23873
23878
|
//#endregion
|
|
23874
23879
|
//#region build/line/utils/LineMaterial.js
|
|
23875
|
-
var
|
|
23880
|
+
var dv = {
|
|
23876
23881
|
uniforms: e.UniformsUtils.merge([
|
|
23877
23882
|
e.UniformsLib.common,
|
|
23878
23883
|
e.UniformsLib.fog,
|
|
@@ -23887,12 +23892,12 @@ var uv = {
|
|
|
23887
23892
|
]),
|
|
23888
23893
|
vertexShader: "\n #include <common>\n #include <color_pars_vertex>\n #include <fog_pars_vertex>\n #include <logdepthbuf_pars_vertex>\n #include <clipping_planes_pars_vertex>\n\n uniform float linewidth;\n uniform vec2 resolution;\n\n attribute vec3 instanceStart;\n attribute vec3 instanceEnd;\n\n attribute vec3 instanceColorStart;\n attribute vec3 instanceColorEnd;\n\n varying vec2 vUv;\n\n #ifdef USE_DASH\n\n uniform float dashScale;\n attribute float instanceDistanceStart;\n attribute float instanceDistanceEnd;\n varying float vLineDistance;\n\n #endif\n\n void trimSegment( const in vec4 start, inout vec4 end ) {\n\n // trim end segment so it terminates between the camera plane and the near plane\n\n // conservative estimate of the near plane\n float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n float nearEstimate = - 0.5 * b / a;\n\n float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n end.xyz = mix( start.xyz, end.xyz, alpha );\n\n }\n\n void main() {\n\n #ifdef USE_COLOR\n\n vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n #endif\n\n #ifdef USE_DASH\n\n vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n #endif\n\n float aspect = resolution.x / resolution.y;\n\n vUv = uv;\n\n // camera space\n vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n // special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n // but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n // perhaps there is a more elegant solution -- WestLangley\n\n bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n if ( perspective ) {\n\n if ( start.z < 0.0 && end.z >= 0.0 ) {\n\n trimSegment( start, end );\n\n } else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n trimSegment( end, start );\n\n }\n\n }\n\n // clip space\n vec4 clipStart = projectionMatrix * start;\n vec4 clipEnd = projectionMatrix * end;\n\n // ndc space\n vec2 ndcStart = clipStart.xy / clipStart.w;\n vec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n // direction\n vec2 dir = ndcEnd - ndcStart;\n\n // account for clip-space aspect ratio\n dir.x *= aspect;\n dir = normalize( dir );\n\n // perpendicular to dir\n vec2 offset = vec2( dir.y, - dir.x );\n\n // undo aspect ratio adjustment\n dir.x /= aspect;\n offset.x /= aspect;\n\n // sign flip\n if ( position.x < 0.0 ) offset *= - 1.0;\n\n // endcaps\n if ( position.y < 0.0 ) {\n\n offset += - dir;\n\n } else if ( position.y > 1.0 ) {\n\n offset += dir;\n\n }\n\n // adjust for linewidth\n offset *= linewidth;\n\n // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n offset /= resolution.y;\n\n // select end\n vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n // back to clip space\n offset *= clip.w;\n\n clip.xy += offset;\n\n gl_Position = clip;\n\n vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n #include <fog_vertex>\n\n }\n ",
|
|
23889
23894
|
fragmentShader: "\n uniform vec3 diffuse;\n uniform float opacity;\n\n #ifdef USE_DASH\n\n uniform float dashSize;\n uniform float gapSize;\n\n #endif\n\n varying float vLineDistance;\n\n #include <common>\n #include <color_pars_fragment>\n #include <fog_pars_fragment>\n #include <logdepthbuf_pars_fragment>\n #include <clipping_planes_pars_fragment>\n\n varying vec2 vUv;\n\n void main() {\n\n #include <clipping_planes_fragment>\n\n #ifdef USE_DASH\n\n if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n #endif\n\n if ( abs( vUv.y ) > 1.0 ) {\n\n float a = vUv.x;\n float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n float len2 = a * a + b * b;\n\n if ( len2 > 1.0 ) discard;\n\n }\n\n vec4 diffuseColor = vec4( diffuse, opacity );\n\n #include <logdepthbuf_fragment>\n #include <color_fragment>\n\n gl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n #include <tonemapping_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n\n }\n "
|
|
23890
|
-
},
|
|
23895
|
+
}, fv = class extends e.ShaderMaterial {
|
|
23891
23896
|
constructor(t) {
|
|
23892
23897
|
super({
|
|
23893
|
-
uniforms: e.UniformsUtils.clone(
|
|
23894
|
-
vertexShader:
|
|
23895
|
-
fragmentShader:
|
|
23898
|
+
uniforms: e.UniformsUtils.clone(dv.uniforms),
|
|
23899
|
+
vertexShader: dv.vertexShader,
|
|
23900
|
+
fragmentShader: dv.fragmentShader,
|
|
23896
23901
|
clipping: !0
|
|
23897
23902
|
}), this.type = "LineMaterial", this.dashed = !1, Object.defineProperties(this, {
|
|
23898
23903
|
color: {
|
|
@@ -23961,12 +23966,12 @@ var uv = {
|
|
|
23961
23966
|
}), this.setValues(t);
|
|
23962
23967
|
}
|
|
23963
23968
|
};
|
|
23964
|
-
Object.assign(
|
|
23969
|
+
Object.assign(fv.prototype, { isLineMaterial: !0 });
|
|
23965
23970
|
//#endregion
|
|
23966
23971
|
//#region build/line/utils/LineSegments2.js
|
|
23967
|
-
var
|
|
23972
|
+
var pv = class extends e.Mesh {
|
|
23968
23973
|
constructor(e, t) {
|
|
23969
|
-
super(), this.type = "LineSegments2", this.geometry = e === void 0 ? new
|
|
23974
|
+
super(), this.type = "LineSegments2", this.geometry = e === void 0 ? new uv() : e, this.material = t === void 0 ? new fv({ color: Math.random() * 16777215 }) : t;
|
|
23970
23975
|
}
|
|
23971
23976
|
computeLineDistances() {
|
|
23972
23977
|
let t = this.geometry, n = t.attributes.instanceStart, r = t.attributes.instanceEnd, i = new Float32Array(2 * n.count), a = new e.Vector3(), o = new e.Vector3();
|
|
@@ -24003,18 +24008,18 @@ var fv = class extends e.Mesh {
|
|
|
24003
24008
|
}
|
|
24004
24009
|
}
|
|
24005
24010
|
};
|
|
24006
|
-
Object.assign(
|
|
24011
|
+
Object.assign(pv.prototype, { isLineSegments2: !0 });
|
|
24007
24012
|
//#endregion
|
|
24008
24013
|
//#region build/line/utils/Line2.js
|
|
24009
|
-
var
|
|
24014
|
+
var mv = class extends pv {
|
|
24010
24015
|
constructor(e, t) {
|
|
24011
24016
|
super(e, t), this.type = "Line2";
|
|
24012
24017
|
}
|
|
24013
24018
|
};
|
|
24014
|
-
Object.assign(
|
|
24019
|
+
Object.assign(mv.prototype, { isLine2: !0 });
|
|
24015
24020
|
//#endregion
|
|
24016
24021
|
//#region build/line/utils/LineGeometry.js
|
|
24017
|
-
var
|
|
24022
|
+
var hv = class extends uv {
|
|
24018
24023
|
constructor() {
|
|
24019
24024
|
super(), this.type = "LineGeometry";
|
|
24020
24025
|
}
|
|
@@ -24040,24 +24045,24 @@ var mv = class extends lv {
|
|
|
24040
24045
|
return this;
|
|
24041
24046
|
}
|
|
24042
24047
|
};
|
|
24043
|
-
Object.assign(
|
|
24048
|
+
Object.assign(hv.prototype, { isLineGeometry: !0 });
|
|
24044
24049
|
//#endregion
|
|
24045
24050
|
//#region build/line/index.js
|
|
24046
|
-
var
|
|
24051
|
+
var gv = 14467195, _v = 8, vv = 2, yv = 20, bv = null, xv = class extends e.Object3D {
|
|
24047
24052
|
static get version() {
|
|
24048
|
-
return "6.8.0-alpha.
|
|
24053
|
+
return "6.8.0-alpha.29";
|
|
24049
24054
|
}
|
|
24050
24055
|
constructor(t = new e.Vector3(), n = new e.Vector3()) {
|
|
24051
|
-
super(), this.type = "FiveLine", this.needsRender = !0, this.line = new
|
|
24052
|
-
color:
|
|
24053
|
-
linewidth:
|
|
24054
|
-
dashScale:
|
|
24056
|
+
super(), this.type = "FiveLine", this.needsRender = !0, this.line = new mv(new hv(), new fv({
|
|
24057
|
+
color: gv,
|
|
24058
|
+
linewidth: vv,
|
|
24059
|
+
dashScale: yv,
|
|
24055
24060
|
dashed: !1
|
|
24056
24061
|
}));
|
|
24057
24062
|
let r = new e.BufferGeometry(), i = new e.PointsMaterial({
|
|
24058
|
-
color:
|
|
24059
|
-
size:
|
|
24060
|
-
map:
|
|
24063
|
+
color: gv,
|
|
24064
|
+
size: _v,
|
|
24065
|
+
map: bv || (bv = new e.TextureLoader().load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==")),
|
|
24061
24066
|
sizeAttenuation: !1,
|
|
24062
24067
|
transparent: !0
|
|
24063
24068
|
});
|
|
@@ -24085,10 +24090,10 @@ var hv = 14467195, gv = 8, _v = 2, vv = 20, yv = null, bv = class extends e.Obje
|
|
|
24085
24090
|
(n.x !== e || n.y !== t) && (n.set(e, t), this.needsRender = !0);
|
|
24086
24091
|
}
|
|
24087
24092
|
};
|
|
24088
|
-
Object.assign(
|
|
24093
|
+
Object.assign(xv.prototype, { isFiveLine: !0 });
|
|
24089
24094
|
//#endregion
|
|
24090
24095
|
//#region build/five/webxr/motionHelper.js
|
|
24091
|
-
var
|
|
24096
|
+
var Sv = {
|
|
24092
24097
|
Handedness: Object.freeze({
|
|
24093
24098
|
NONE: "none",
|
|
24094
24099
|
LEFT: "left",
|
|
@@ -24119,24 +24124,24 @@ var xv = {
|
|
|
24119
24124
|
VISIBILITY: "visibility"
|
|
24120
24125
|
})
|
|
24121
24126
|
};
|
|
24122
|
-
function
|
|
24127
|
+
function Cv(e) {
|
|
24123
24128
|
return Vo(this, void 0, void 0, function* () {
|
|
24124
24129
|
let t = yield fetch(e);
|
|
24125
24130
|
if (t.ok) return t.json();
|
|
24126
24131
|
throw Error(t.statusText);
|
|
24127
24132
|
});
|
|
24128
24133
|
}
|
|
24129
|
-
function
|
|
24134
|
+
function wv(e) {
|
|
24130
24135
|
return Vo(this, void 0, void 0, function* () {
|
|
24131
24136
|
if (!e) throw Error("No basePath supplied");
|
|
24132
|
-
return yield
|
|
24137
|
+
return yield Cv(`${e}/profilesList.json`);
|
|
24133
24138
|
});
|
|
24134
24139
|
}
|
|
24135
|
-
function
|
|
24140
|
+
function Tv(e, t) {
|
|
24136
24141
|
return Vo(this, arguments, void 0, function* (e, t, n = null, r = !0) {
|
|
24137
24142
|
if (!e) throw Error("No xrInputSource supplied");
|
|
24138
24143
|
if (!t) throw Error("No basePath supplied");
|
|
24139
|
-
let i = yield
|
|
24144
|
+
let i = yield wv(t), a;
|
|
24140
24145
|
if (e.profiles.some((e) => {
|
|
24141
24146
|
let n = i[e];
|
|
24142
24147
|
return n && (a = {
|
|
@@ -24154,7 +24159,7 @@ function wv(e, t) {
|
|
|
24154
24159
|
deprecated: !!e.deprecated
|
|
24155
24160
|
};
|
|
24156
24161
|
}
|
|
24157
|
-
let o = yield
|
|
24162
|
+
let o = yield Cv(a.profilePath), s;
|
|
24158
24163
|
if (r) {
|
|
24159
24164
|
let t;
|
|
24160
24165
|
if (t = o.layouts[e.handedness], !t) throw Error(`No matching handedness, ${e.handedness}, in profile ${a.profileId}`);
|
|
@@ -24166,13 +24171,13 @@ function wv(e, t) {
|
|
|
24166
24171
|
};
|
|
24167
24172
|
});
|
|
24168
24173
|
}
|
|
24169
|
-
var
|
|
24174
|
+
var Ev = {
|
|
24170
24175
|
xAxis: 0,
|
|
24171
24176
|
yAxis: 0,
|
|
24172
24177
|
button: 0,
|
|
24173
|
-
state:
|
|
24178
|
+
state: Sv.ComponentState.DEFAULT
|
|
24174
24179
|
};
|
|
24175
|
-
function
|
|
24180
|
+
function Dv(e = 0, t = 0) {
|
|
24176
24181
|
let n = e, r = t;
|
|
24177
24182
|
if (Math.sqrt(e * e + t * t) > 1) {
|
|
24178
24183
|
let i = Math.atan2(t, e);
|
|
@@ -24183,36 +24188,36 @@ function Ev(e = 0, t = 0) {
|
|
|
24183
24188
|
normalizedYAxis: r * .5 + .5
|
|
24184
24189
|
};
|
|
24185
24190
|
}
|
|
24186
|
-
var
|
|
24191
|
+
var Ov = class {
|
|
24187
24192
|
constructor(e) {
|
|
24188
|
-
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty ===
|
|
24193
|
+
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === Sv.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Ev);
|
|
24189
24194
|
}
|
|
24190
24195
|
updateFromComponent({ xAxis: e, yAxis: t, button: n, state: r }) {
|
|
24191
|
-
let { normalizedXAxis: i, normalizedYAxis: a } =
|
|
24196
|
+
let { normalizedXAxis: i, normalizedYAxis: a } = Dv(e, t);
|
|
24192
24197
|
switch (this.componentProperty) {
|
|
24193
|
-
case
|
|
24198
|
+
case Sv.ComponentProperty.X_AXIS:
|
|
24194
24199
|
this.value = this.states.includes(r) ? i : .5;
|
|
24195
24200
|
break;
|
|
24196
|
-
case
|
|
24201
|
+
case Sv.ComponentProperty.Y_AXIS:
|
|
24197
24202
|
this.value = this.states.includes(r) ? a : .5;
|
|
24198
24203
|
break;
|
|
24199
|
-
case
|
|
24204
|
+
case Sv.ComponentProperty.BUTTON:
|
|
24200
24205
|
this.value = this.states.includes(r) ? n : 0;
|
|
24201
24206
|
break;
|
|
24202
|
-
case
|
|
24203
|
-
this.valueNodeProperty ===
|
|
24207
|
+
case Sv.ComponentProperty.STATE:
|
|
24208
|
+
this.valueNodeProperty === Sv.VisualResponseProperty.VISIBILITY ? this.value = this.states.includes(r) : this.value = this.states.includes(r) ? 1 : 0;
|
|
24204
24209
|
break;
|
|
24205
24210
|
default: throw Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`);
|
|
24206
24211
|
}
|
|
24207
24212
|
}
|
|
24208
|
-
},
|
|
24213
|
+
}, kv = class {
|
|
24209
24214
|
constructor(e, t) {
|
|
24210
24215
|
if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0) throw Error("Invalid arguments supplied");
|
|
24211
24216
|
this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((e) => {
|
|
24212
|
-
let n = new
|
|
24217
|
+
let n = new Ov(t.visualResponses[e]);
|
|
24213
24218
|
this.visualResponses[e] = n;
|
|
24214
24219
|
}), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
|
|
24215
|
-
state:
|
|
24220
|
+
state: Sv.ComponentState.DEFAULT,
|
|
24216
24221
|
button: this.gamepadIndices.button === void 0 ? void 0 : 0,
|
|
24217
24222
|
xAxis: this.gamepadIndices.xAxis === void 0 ? void 0 : 0,
|
|
24218
24223
|
yAxis: this.gamepadIndices.yAxis === void 0 ? void 0 : 0
|
|
@@ -24222,21 +24227,21 @@ var Dv = class {
|
|
|
24222
24227
|
return Object.assign({ id: this.id }, this.values);
|
|
24223
24228
|
}
|
|
24224
24229
|
updateFromGamepad(e) {
|
|
24225
|
-
if (this.values.state =
|
|
24230
|
+
if (this.values.state = Sv.ComponentState.DEFAULT, this.gamepadIndices.button !== void 0 && e.buttons.length > this.gamepadIndices.button) {
|
|
24226
24231
|
let t = e.buttons[this.gamepadIndices.button];
|
|
24227
|
-
this.values.button = t.value, this.values.button = this.values.button < 0 ? 0 : this.values.button, this.values.button = this.values.button > 1 ? 1 : this.values.button, t.pressed || this.values.button === 1 ? this.values.state =
|
|
24232
|
+
this.values.button = t.value, this.values.button = this.values.button < 0 ? 0 : this.values.button, this.values.button = this.values.button > 1 ? 1 : this.values.button, t.pressed || this.values.button === 1 ? this.values.state = Sv.ComponentState.PRESSED : (t.touched || this.values.button > Sv.ButtonTouchThreshold) && (this.values.state = Sv.ComponentState.TOUCHED);
|
|
24228
24233
|
}
|
|
24229
|
-
this.gamepadIndices.xAxis !== void 0 && e.axes.length > this.gamepadIndices.xAxis && (this.values.xAxis = e.axes[this.gamepadIndices.xAxis], this.values.xAxis = this.values.xAxis < -1 ? -1 : this.values.xAxis, this.values.xAxis = this.values.xAxis > 1 ? 1 : this.values.xAxis, this.values.state ===
|
|
24234
|
+
this.gamepadIndices.xAxis !== void 0 && e.axes.length > this.gamepadIndices.xAxis && (this.values.xAxis = e.axes[this.gamepadIndices.xAxis], this.values.xAxis = this.values.xAxis < -1 ? -1 : this.values.xAxis, this.values.xAxis = this.values.xAxis > 1 ? 1 : this.values.xAxis, this.values.state === Sv.ComponentState.DEFAULT && Math.abs(this.values.xAxis) > Sv.AxisTouchThreshold && (this.values.state = Sv.ComponentState.TOUCHED)), this.gamepadIndices.yAxis !== void 0 && e.axes.length > this.gamepadIndices.yAxis && (this.values.yAxis = e.axes[this.gamepadIndices.yAxis], this.values.yAxis = this.values.yAxis < -1 ? -1 : this.values.yAxis, this.values.yAxis = this.values.yAxis > 1 ? 1 : this.values.yAxis, this.values.state === Sv.ComponentState.DEFAULT && Math.abs(this.values.yAxis) > Sv.AxisTouchThreshold && (this.values.state = Sv.ComponentState.TOUCHED)), Object.values(this.visualResponses).forEach((e) => {
|
|
24230
24235
|
e.updateFromComponent(this.values);
|
|
24231
24236
|
});
|
|
24232
24237
|
}
|
|
24233
|
-
},
|
|
24238
|
+
}, Av = class {
|
|
24234
24239
|
constructor(e, t, n) {
|
|
24235
24240
|
if (!e) throw Error("No xrInputSource supplied");
|
|
24236
24241
|
if (!t) throw Error("No profile supplied");
|
|
24237
24242
|
this.xrInputSource = e, this.assetUrl = n, this.id = t.profileId, this.layoutDescription = t.layouts[e.handedness], this.components = {}, Object.keys(this.layoutDescription.components).forEach((e) => {
|
|
24238
24243
|
let t = this.layoutDescription.components[e];
|
|
24239
|
-
this.components[e] = new
|
|
24244
|
+
this.components[e] = new kv(e, t);
|
|
24240
24245
|
}), this.updateFromGamepad();
|
|
24241
24246
|
}
|
|
24242
24247
|
get gripSpace() {
|
|
@@ -24256,7 +24261,7 @@ var Dv = class {
|
|
|
24256
24261
|
e.updateFromGamepad(this.xrInputSource.gamepad);
|
|
24257
24262
|
});
|
|
24258
24263
|
}
|
|
24259
|
-
},
|
|
24264
|
+
}, jv = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", Mv = "generic-trigger", Nv = class extends r {
|
|
24260
24265
|
constructor() {
|
|
24261
24266
|
super(), this.motionController = null, this.envMap = null;
|
|
24262
24267
|
}
|
|
@@ -24269,21 +24274,21 @@ var Dv = class {
|
|
|
24269
24274
|
super.updateMatrixWorld(e), this.motionController && (this.motionController.updateFromGamepad(), Object.values(this.motionController.components).forEach((e) => {
|
|
24270
24275
|
Object.values(e.visualResponses).forEach((e) => {
|
|
24271
24276
|
let { valueNode: t, minNode: n, maxNode: r, value: i, valueNodeProperty: a } = e;
|
|
24272
|
-
t && (a ===
|
|
24277
|
+
t && (a === Sv.VisualResponseProperty.VISIBILITY ? t.visible = i : a === Sv.VisualResponseProperty.TRANSFORM && (t.quaternion.copy(n.quaternion).slerp(r.quaternion, i), t.position.lerpVectors(n.position, r.position, i)));
|
|
24273
24278
|
});
|
|
24274
24279
|
}));
|
|
24275
24280
|
}
|
|
24276
24281
|
};
|
|
24277
|
-
function
|
|
24282
|
+
function Pv(e, r) {
|
|
24278
24283
|
Object.values(e.components).forEach((e) => {
|
|
24279
24284
|
let { type: a, touchPointNodeName: o, visualResponses: s } = e;
|
|
24280
|
-
if (a ===
|
|
24285
|
+
if (a === Sv.ComponentType.TOUCHPAD) if (e.touchPointNode = r.getObjectByName(o), e.touchPointNode) {
|
|
24281
24286
|
let r = new t(new i(.001), new n({ color: 255 }));
|
|
24282
24287
|
e.touchPointNode.add(r);
|
|
24283
24288
|
} else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);
|
|
24284
24289
|
Object.values(s).forEach((e) => {
|
|
24285
24290
|
let { valueNodeName: t, minNodeName: n, maxNodeName: i, valueNodeProperty: a } = e;
|
|
24286
|
-
if (a ===
|
|
24291
|
+
if (a === Sv.VisualResponseProperty.TRANSFORM) {
|
|
24287
24292
|
if (e.minNode = r.getObjectByName(n), e.maxNode = r.getObjectByName(i), !e.minNode) {
|
|
24288
24293
|
console.warn(`Could not find ${n} in the model`);
|
|
24289
24294
|
return;
|
|
@@ -24297,27 +24302,27 @@ function Nv(e, r) {
|
|
|
24297
24302
|
});
|
|
24298
24303
|
});
|
|
24299
24304
|
}
|
|
24300
|
-
function
|
|
24301
|
-
|
|
24305
|
+
function Fv(t, n) {
|
|
24306
|
+
Pv(t.motionController, n), t.envMap && n.traverse((n) => {
|
|
24302
24307
|
n instanceof e.Mesh && n.isMesh && (n.material.envMap = t.envMap, n.material.needsUpdate = !0);
|
|
24303
24308
|
}), t.add(n);
|
|
24304
24309
|
}
|
|
24305
|
-
var
|
|
24310
|
+
var Iv = class {
|
|
24306
24311
|
constructor(e = null) {
|
|
24307
|
-
this.gltfLoader = e, this.path =
|
|
24312
|
+
this.gltfLoader = e, this.path = jv, this._assetCache = {};
|
|
24308
24313
|
}
|
|
24309
24314
|
createControllerModel(e) {
|
|
24310
|
-
let t = new
|
|
24315
|
+
let t = new Nv(), n = null;
|
|
24311
24316
|
return e.addEventListener("connected", (e) => {
|
|
24312
24317
|
let r = e.data;
|
|
24313
|
-
r.targetRayMode !== "tracked-pointer" || !r.gamepad ||
|
|
24314
|
-
t.motionController = new
|
|
24318
|
+
r.targetRayMode !== "tracked-pointer" || !r.gamepad || Tv(r, this.path, Mv).then(({ profile: e, assetPath: i }) => {
|
|
24319
|
+
t.motionController = new Av(r, e, i);
|
|
24315
24320
|
let a = this._assetCache[t.motionController.assetUrl];
|
|
24316
|
-
if (a) n = a.scene.clone(),
|
|
24321
|
+
if (a) n = a.scene.clone(), Fv(t, n);
|
|
24317
24322
|
else {
|
|
24318
24323
|
if (!this.gltfLoader) throw Error("GLTFLoader not set.");
|
|
24319
24324
|
this.gltfLoader.load(t.motionController.assetUrl, (e) => {
|
|
24320
|
-
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(),
|
|
24325
|
+
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(), Fv(t, n);
|
|
24321
24326
|
});
|
|
24322
24327
|
}
|
|
24323
24328
|
}).catch((e) => {
|
|
@@ -24327,20 +24332,20 @@ var Fv = class {
|
|
|
24327
24332
|
t.motionController = null, t.remove(n), n = null;
|
|
24328
24333
|
}), t;
|
|
24329
24334
|
}
|
|
24330
|
-
},
|
|
24331
|
-
function
|
|
24335
|
+
}, Lv = Object.assign({}, hr($g, ["maxLatitude", "minLatitude"]));
|
|
24336
|
+
function Rv(e, t) {
|
|
24332
24337
|
if (!t) return e;
|
|
24333
24338
|
let n = e.match(/\d+_[a-z].png/);
|
|
24334
24339
|
return e.substring(0, n.index) + t + "/" + e.substring(n.index);
|
|
24335
24340
|
}
|
|
24336
|
-
var
|
|
24337
|
-
Floorplan:
|
|
24338
|
-
Topview:
|
|
24339
|
-
Panorama:
|
|
24340
|
-
VRPanorama:
|
|
24341
|
-
Model:
|
|
24342
|
-
Mapview:
|
|
24343
|
-
XRPanorama: class t extends
|
|
24341
|
+
var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
24342
|
+
Floorplan: $h,
|
|
24343
|
+
Topview: tg,
|
|
24344
|
+
Panorama: e_,
|
|
24345
|
+
VRPanorama: G_,
|
|
24346
|
+
Model: X_,
|
|
24347
|
+
Mapview: nv,
|
|
24348
|
+
XRPanorama: class t extends e_ {
|
|
24344
24349
|
static parseArgs(e) {
|
|
24345
24350
|
if (e instanceof t) return e;
|
|
24346
24351
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -24354,7 +24359,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24354
24359
|
return Object.assign(Object.assign({}, n), { mode: "XRPanorama" });
|
|
24355
24360
|
}
|
|
24356
24361
|
constructor(t) {
|
|
24357
|
-
super(t), this.xrManager = new
|
|
24362
|
+
super(t), this.xrManager = new lv(this.renderer, this.renderer.getContext(), {
|
|
24358
24363
|
onSessionStart: (e) => {
|
|
24359
24364
|
this.emit("xr.session.start", Q("xr.session.start", {
|
|
24360
24365
|
session: e,
|
|
@@ -24371,14 +24376,14 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24371
24376
|
left: new e.Raycaster(),
|
|
24372
24377
|
right: new e.Raycaster()
|
|
24373
24378
|
}, this.xrControllerRay.left.params.Points = { threshold: .1 }, this.xrControllerRay.left.firstHitOnly = !0, this.xrControllerRay.left.floorIndex = -1, this.xrControllerRay.right.params.Points = { threshold: .1 }, this.xrControllerRay.right.firstHitOnly = !0, this.xrControllerRay.right.floorIndex = -1, this.gazeRay = null, this.pointerLines = {
|
|
24374
|
-
left: new
|
|
24375
|
-
right: new
|
|
24379
|
+
left: new xv(),
|
|
24380
|
+
right: new xv()
|
|
24376
24381
|
}, this.pointerLines.left.visible = !1, this.pointerLines.right.visible = !0, this.pointerLines.left.setMaterial({ color: new e.Vector3(1, 1, 1) }), this.pointerLines.left.points.material.depthTest = !1, this.pointerLines.right.setMaterial({ color: new e.Vector3(1, 1, 1) }), this.pointerLines.right.points.material.depthTest = !1, this.controllerWrappers = [new e.Group(), new e.Group()];
|
|
24377
24382
|
let n = this.xrManager.getController(0);
|
|
24378
24383
|
this.controllerWrappers[0].add(n);
|
|
24379
24384
|
let r = this.xrManager.getController(1);
|
|
24380
24385
|
this.controllerWrappers[1].add(r);
|
|
24381
|
-
let i = new
|
|
24386
|
+
let i = new Iv();
|
|
24382
24387
|
i.gltfLoader = { load(e, t) {
|
|
24383
24388
|
pr.ajax(e, { responseType: "arraybuffer" }).then((t) => {
|
|
24384
24389
|
var n;
|
|
@@ -24393,7 +24398,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24393
24398
|
leftPanoPicture: null,
|
|
24394
24399
|
position: this.camera.pose.offset.clone(),
|
|
24395
24400
|
effect: "fade",
|
|
24396
|
-
effectEasing:
|
|
24401
|
+
effectEasing: Yg,
|
|
24397
24402
|
fixCameraTransform: new e.Matrix4()
|
|
24398
24403
|
}, this.parallaxCameraMatrixs = [];
|
|
24399
24404
|
let a = ri.shared.getContext();
|
|
@@ -24489,7 +24494,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24489
24494
|
if (!l) throw Error("Invalid PanoIndex");
|
|
24490
24495
|
let u = Yr(l.images.up), d = this.imageOptions.size;
|
|
24491
24496
|
d === void 0 && l && u && (d = Number(u)), d === void 0 && (d = 2048);
|
|
24492
|
-
let f = this.imageOptions.transform, p = (e, t) =>
|
|
24497
|
+
let f = this.imageOptions.transform, p = (e, t) => Rv(qr(e, f, t)), m = Object.assign({ key: `pano.${c}` }, mr(this.imageOptions, [
|
|
24493
24498
|
"format",
|
|
24494
24499
|
"size",
|
|
24495
24500
|
"quality"
|
|
@@ -24532,7 +24537,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24532
24537
|
let r = {
|
|
24533
24538
|
panoId: c,
|
|
24534
24539
|
effect: s,
|
|
24535
|
-
effectEasing: (o = n.effectEasing) == null ?
|
|
24540
|
+
effectEasing: (o = n.effectEasing) == null ? Yg : o,
|
|
24536
24541
|
leftPanoPicture: {
|
|
24537
24542
|
panoId: b.panoId,
|
|
24538
24543
|
map: b.map,
|
|
@@ -24545,7 +24550,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24545
24550
|
fixCameraTransform: new e.Matrix4()
|
|
24546
24551
|
};
|
|
24547
24552
|
r.leftPanoPicture && this.panoPictureObserverMap.set(r.leftPanoPicture, l), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(v)).catch((e) => {
|
|
24548
|
-
let t =
|
|
24553
|
+
let t = Yh(e);
|
|
24549
24554
|
return this.emit("error", t), t;
|
|
24550
24555
|
}).then((e) => {
|
|
24551
24556
|
var i, a;
|
|
@@ -24591,10 +24596,10 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24591
24596
|
if (this.destroyed) o.dispose();
|
|
24592
24597
|
else {
|
|
24593
24598
|
o.name = g;
|
|
24594
|
-
let r = Array.isArray(o.image) ? o.image[0] : o.image, u = (i = r == null ? void 0 : r.width) == null ? 2048 : i, d = new gm().formPixels(
|
|
24599
|
+
let r = Array.isArray(o.image) ? o.image[0] : o.image, u = (i = r == null ? void 0 : r.width) == null ? 2048 : i, d = new gm().formPixels(Uh(this.renderer, o, !0, fm).data), f = {
|
|
24595
24600
|
panoId: c,
|
|
24596
24601
|
effect: s,
|
|
24597
|
-
effectEasing: (a = n.effectEasing) == null ?
|
|
24602
|
+
effectEasing: (a = n.effectEasing) == null ? Yg : a,
|
|
24598
24603
|
leftPanoPicture: {
|
|
24599
24604
|
panoId: c,
|
|
24600
24605
|
map: o,
|
|
@@ -24659,14 +24664,14 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24659
24664
|
pano: t
|
|
24660
24665
|
})), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) === g && ((r = this.panoMeshes.get(c)) == null || r.setProgress(e));
|
|
24661
24666
|
}, this.renderer)).catch((e) => {
|
|
24662
|
-
let n =
|
|
24667
|
+
let n = Yh(e);
|
|
24663
24668
|
return this.emit("pano.texture.error", Q("pano.texture.error", {
|
|
24664
24669
|
error: n,
|
|
24665
24670
|
progress: 0,
|
|
24666
24671
|
meta: null,
|
|
24667
24672
|
pano: t
|
|
24668
24673
|
})), n;
|
|
24669
|
-
}), Promise.resolve().then(() => Dh(v)).catch((e) =>
|
|
24674
|
+
}), Promise.resolve().then(() => Dh(v)).catch((e) => Yh(e))]).then(([e, n]) => {
|
|
24670
24675
|
var r, i, a, o;
|
|
24671
24676
|
if (!(e instanceof Error) && !(n instanceof Error)) this.pending.delete(_), ((r = this.pendingPanoTask) == null ? void 0 : r.hash) === g ? (this.pendingPanoTask.onLoad(e), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(c)) == null || i.setProgress(0)) : e.body.dispose(), this.emit("pano.texture.success", Q("pano.texture.success", {
|
|
24672
24677
|
error: null,
|
|
@@ -24840,7 +24845,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24840
24845
|
panoMatrix: n.matrix.clone().premultiply(n.work.transform),
|
|
24841
24846
|
alpha: 1
|
|
24842
24847
|
}, t = $t(), r = this.videoTexture.image;
|
|
24843
|
-
r.setAttribute("uuid", t),
|
|
24848
|
+
r.setAttribute("uuid", t), og().then((i) => {
|
|
24844
24849
|
i && n.images.video && r.getAttribute("uuid") === t && (r.oncanplay = () => {
|
|
24845
24850
|
r.oncanplay = K, r.play();
|
|
24846
24851
|
}, r.ontimeupdate = () => {
|
|
@@ -24874,16 +24879,16 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24874
24879
|
let a = i.work.observers, o = i.accessibleNodes.filter((e) => {
|
|
24875
24880
|
if (e === this.currentPano.panoIndex && i.work.workCode === this.currentPano.workCode) return !1;
|
|
24876
24881
|
let t = a[e];
|
|
24877
|
-
return !t ||
|
|
24882
|
+
return !t || Vv.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
|
|
24878
24883
|
}), [s] = this.modelScene.intersectRaycaster(t);
|
|
24879
24884
|
if (s) {
|
|
24880
24885
|
let [e, t] = Rl(o, (e) => {
|
|
24881
24886
|
let t = a[e];
|
|
24882
|
-
return t ?
|
|
24887
|
+
return t ? Vv.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(s.point) : Infinity;
|
|
24883
24888
|
}, !0);
|
|
24884
24889
|
typeof e == "number" && t < this.panoTapTriggerRadius && (r = (n = a[e]) == null ? null : n);
|
|
24885
24890
|
}
|
|
24886
|
-
if (
|
|
24891
|
+
if (rv(r)) {
|
|
24887
24892
|
let e = this.getForwardObserverOrNot(this.xrManager.cameraVR, t);
|
|
24888
24893
|
e && (r = e);
|
|
24889
24894
|
}
|
|
@@ -24900,7 +24905,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
24900
24905
|
}
|
|
24901
24906
|
}
|
|
24902
24907
|
}
|
|
24903
|
-
if (
|
|
24908
|
+
if (rv(r)) return this.locationMotion.ended === !0 && this.cameraBounce(), null;
|
|
24904
24909
|
if (!r.active) {
|
|
24905
24910
|
let e = Z({
|
|
24906
24911
|
panoIndex: r.panoIndex,
|
|
@@ -25091,9 +25096,9 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
25091
25096
|
let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Z({
|
|
25092
25097
|
panoIndex: n.panoIndex,
|
|
25093
25098
|
workCode: n.work.workCode
|
|
25094
|
-
}), s =
|
|
25095
|
-
|
|
25096
|
-
let [o] = r.intersectRaycaster(
|
|
25099
|
+
}), s = Qg.map((n) => {
|
|
25100
|
+
Bv.ray.origin.copy(a), Bv.ray.origin.add(Vv.copy(n).setY(t)), Bv.ray.direction.set(0, -1, 0), Bv.firstHitOnly = !0, Bv.floorIndex = -1;
|
|
25101
|
+
let [o] = r.intersectRaycaster(Bv);
|
|
25097
25102
|
return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
|
|
25098
25103
|
});
|
|
25099
25104
|
s.sort((e, t) => t.y - e.y);
|
|
@@ -25140,7 +25145,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
25140
25145
|
else {
|
|
25141
25146
|
t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
|
|
25142
25147
|
let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
|
|
25143
|
-
e && (
|
|
25148
|
+
e && (Vv.set(e.x, e.y, e.z), Vv.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
|
|
25144
25149
|
}
|
|
25145
25150
|
let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
|
|
25146
25151
|
if (n === Z(this.currentPano)) {
|
|
@@ -25243,9 +25248,9 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
25243
25248
|
generateMipmaps: !1
|
|
25244
25249
|
});
|
|
25245
25250
|
let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
|
|
25246
|
-
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1,
|
|
25251
|
+
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, t, 500);
|
|
25247
25252
|
let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
|
|
25248
|
-
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1,
|
|
25253
|
+
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
|
|
25249
25254
|
pano0Depth: {
|
|
25250
25255
|
panoId: n.panoId,
|
|
25251
25256
|
map: this.pano0DepthCubeRenderTarget.texture,
|
|
@@ -25340,7 +25345,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
25340
25345
|
leftRay: r,
|
|
25341
25346
|
rightRay: i
|
|
25342
25347
|
} }
|
|
25343
|
-
}))) : n - this.xrHandleState[t].touchStartTime >
|
|
25348
|
+
}))) : n - this.xrHandleState[t].touchStartTime > zv && this.emit("xr.gesture.press", Q("xr.gesture.tap", {
|
|
25344
25349
|
session: this.xrManager.session,
|
|
25345
25350
|
machineType: this.xrManager.machineType,
|
|
25346
25351
|
buttons: t,
|
|
@@ -25362,7 +25367,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
25362
25367
|
leftRay: r,
|
|
25363
25368
|
rightRay: i
|
|
25364
25369
|
} }
|
|
25365
|
-
})), n - this.xrHandleState[t].touchStartTime <=
|
|
25370
|
+
})), n - this.xrHandleState[t].touchStartTime <= zv) {
|
|
25366
25371
|
let e = Q("xr.gesture.tap", {
|
|
25367
25372
|
session: this.xrManager.session,
|
|
25368
25373
|
machineType: this.xrManager.machineType,
|
|
@@ -25386,18 +25391,18 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
|
|
|
25386
25391
|
});
|
|
25387
25392
|
}
|
|
25388
25393
|
}
|
|
25389
|
-
},
|
|
25390
|
-
Floorplan:
|
|
25391
|
-
Topview:
|
|
25392
|
-
Panorama:
|
|
25393
|
-
VRPanorama:
|
|
25394
|
-
Model:
|
|
25395
|
-
Mapview:
|
|
25396
|
-
XRPanorama:
|
|
25397
|
-
},
|
|
25394
|
+
}, Uv = {
|
|
25395
|
+
Floorplan: Qh,
|
|
25396
|
+
Topview: eg,
|
|
25397
|
+
Panorama: $g,
|
|
25398
|
+
VRPanorama: W_,
|
|
25399
|
+
Model: Y_,
|
|
25400
|
+
Mapview: tv,
|
|
25401
|
+
XRPanorama: Lv
|
|
25402
|
+
}, Wv = /* @__PURE__ */ "gesture.pan,gesture.tap,gesture.dbltap,gesture.press,gesture.pinch,gesture.mousewheel,gesture.mousemove,gesture.momentum,gesture.fire,initAnimation.start,initAnimation.end,camera.update,intersect.update,pano.select,pano.moveTo,pano.moving,pano.arrived,pano.cancel,pano.error,pano.prepare,pano.texture.load,pano.texture.progress,pano.texture.success,pano.texture.error,pano.texture.abort,xr.session.start,xr.session.end,xr.gesture.tap,xr.gesture.press,xr.gesture.buttonUp,xr.gesture.buttonDown,xr.controller.update".split(",");
|
|
25398
25403
|
//#endregion
|
|
25399
25404
|
//#region build/five/application/events-legacy.js
|
|
25400
|
-
function
|
|
25405
|
+
function Gv(e) {
|
|
25401
25406
|
e.on("initAnimation.start", (t) => {
|
|
25402
25407
|
e.emit("initAnimationWillStart", t.state.panoIndex, t.state, t.userAction);
|
|
25403
25408
|
}), e.on("initAnimation.end", (t) => {
|
|
@@ -25539,7 +25544,7 @@ function Wv(e) {
|
|
|
25539
25544
|
}
|
|
25540
25545
|
//#endregion
|
|
25541
25546
|
//#region build/five/application/generateDefaultVideoElement.js
|
|
25542
|
-
function
|
|
25547
|
+
function Kv() {
|
|
25543
25548
|
if (typeof window < "u") {
|
|
25544
25549
|
let e = document.createElement("video");
|
|
25545
25550
|
e.loop = !0, e.autoplay = !0, e.playsInline = !0, e.muted = !0, e.crossOrigin = "";
|
|
@@ -25551,7 +25556,7 @@ function Gv() {
|
|
|
25551
25556
|
}
|
|
25552
25557
|
//#endregion
|
|
25553
25558
|
//#region build/five/application/initLights.js
|
|
25554
|
-
function
|
|
25559
|
+
function qv() {
|
|
25555
25560
|
let t = new e.Group();
|
|
25556
25561
|
t.name = "internalLights";
|
|
25557
25562
|
{
|
|
@@ -25574,7 +25579,7 @@ function Kv() {
|
|
|
25574
25579
|
}
|
|
25575
25580
|
//#endregion
|
|
25576
25581
|
//#region build/five/application/getViewportScale.js
|
|
25577
|
-
function
|
|
25582
|
+
function Jv(e) {
|
|
25578
25583
|
var t, n;
|
|
25579
25584
|
let r = {}, i = e.split(/(\;|\,)/);
|
|
25580
25585
|
for (let e of i) {
|
|
@@ -25583,14 +25588,14 @@ function qv(e) {
|
|
|
25583
25588
|
}
|
|
25584
25589
|
return r;
|
|
25585
25590
|
}
|
|
25586
|
-
function
|
|
25591
|
+
function Yv() {
|
|
25587
25592
|
var e;
|
|
25588
25593
|
if (typeof document < "u") {
|
|
25589
25594
|
let t = document.getElementsByTagName("meta");
|
|
25590
25595
|
for (let n = 0; n < t.length; n++) {
|
|
25591
25596
|
let r = t[n];
|
|
25592
25597
|
if (r.getAttribute("name") === "viewport") {
|
|
25593
|
-
let t =
|
|
25598
|
+
let t = Jv((e = r.getAttribute("content")) == null ? "" : e), n = Number(t["initial-scale"]);
|
|
25594
25599
|
if (!isNaN(n)) return n;
|
|
25595
25600
|
}
|
|
25596
25601
|
}
|
|
@@ -25599,7 +25604,7 @@ function Jv() {
|
|
|
25599
25604
|
}
|
|
25600
25605
|
//#endregion
|
|
25601
25606
|
//#region build/five/assets/realsee-png-data-url.js
|
|
25602
|
-
var
|
|
25607
|
+
var Xv = "data:image/png;base64,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", Zv = [351, 63], Qv = [20, 20], $v = new Float32Array([
|
|
25603
25608
|
-.5,
|
|
25604
25609
|
-.5,
|
|
25605
25610
|
0,
|
|
@@ -25612,7 +25617,7 @@ var Yv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR
|
|
|
25612
25617
|
.5,
|
|
25613
25618
|
.5,
|
|
25614
25619
|
0
|
|
25615
|
-
]),
|
|
25620
|
+
]), ey = new Float32Array([
|
|
25616
25621
|
0,
|
|
25617
25622
|
0,
|
|
25618
25623
|
1,
|
|
@@ -25621,57 +25626,57 @@ var Yv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR
|
|
|
25621
25626
|
1,
|
|
25622
25627
|
1,
|
|
25623
25628
|
1
|
|
25624
|
-
]),
|
|
25629
|
+
]), ty = new Uint8Array([
|
|
25625
25630
|
0,
|
|
25626
25631
|
1,
|
|
25627
25632
|
2,
|
|
25628
25633
|
1,
|
|
25629
25634
|
3,
|
|
25630
25635
|
2
|
|
25631
|
-
]),
|
|
25632
|
-
|
|
25633
|
-
var
|
|
25636
|
+
]), ny = new e.BufferGeometry();
|
|
25637
|
+
ny.setAttribute("position", new e.BufferAttribute($v, 3)), ny.setAttribute("uv", new e.BufferAttribute(ey, 2)), ny.setIndex(new e.BufferAttribute(ty, 1));
|
|
25638
|
+
var ry = new e.MeshBasicMaterial({
|
|
25634
25639
|
transparent: !0,
|
|
25635
25640
|
depthTest: !1,
|
|
25636
25641
|
depthWrite: !1,
|
|
25637
25642
|
stencilWrite: !1,
|
|
25638
25643
|
fog: !1
|
|
25639
|
-
}),
|
|
25640
|
-
|
|
25641
|
-
var
|
|
25642
|
-
|
|
25643
|
-
var
|
|
25644
|
-
|
|
25645
|
-
var
|
|
25646
|
-
function
|
|
25647
|
-
if (
|
|
25648
|
-
let e = t.getViewport(
|
|
25649
|
-
t.setViewport(a, o, s, c), t.setScissor(a, o, s, c), t.setScissorTest(!0), t.autoClear = !1, t.render(
|
|
25644
|
+
}), iy = new e.Mesh(ny, ry);
|
|
25645
|
+
iy.matrixAutoUpdate = !1;
|
|
25646
|
+
var ay = new e.Scene();
|
|
25647
|
+
ay.add(iy), ay.matrixAutoUpdate = !1;
|
|
25648
|
+
var oy = new e.OrthographicCamera(-.5, .5, .5, -.5, .1, 1);
|
|
25649
|
+
oy.position.set(0, 0, .5), oy.lookAt(0, 0, 0), oy.updateMatrixWorld(!0), oy.matrixAutoUpdate = !1;
|
|
25650
|
+
var sy = new e.Vector4(), cy = new e.Vector4();
|
|
25651
|
+
function ly(t) {
|
|
25652
|
+
if (ry.map) {
|
|
25653
|
+
let e = t.getViewport(sy), n = t.getScissor(cy), r = t.getScissorTest(), i = t.autoClear, a = n.x + Qv[0] / 3, o = n.y + Qv[1] / 3, s = Zv[0] / 3, c = Zv[1] / 3;
|
|
25654
|
+
t.setViewport(a, o, s, c), t.setScissor(a, o, s, c), t.setScissorTest(!0), t.autoClear = !1, t.render(ay, oy), t.setViewport(e), t.setScissor(n), t.setScissorTest(r), t.autoClear = i;
|
|
25650
25655
|
} else {
|
|
25651
25656
|
let t = new e.Texture(), n = new Image();
|
|
25652
25657
|
n.onload = () => {
|
|
25653
|
-
t.image = n, t.wrapS = e.ClampToEdgeWrapping, t.wrapT = e.ClampToEdgeWrapping, t.minFilter = e.LinearFilter, t.needsUpdate = !0, t.generateMipmaps = !1,
|
|
25654
|
-
}, n.src =
|
|
25658
|
+
t.image = n, t.wrapS = e.ClampToEdgeWrapping, t.wrapT = e.ClampToEdgeWrapping, t.minFilter = e.LinearFilter, t.needsUpdate = !0, t.generateMipmaps = !1, ry.needsUpdate = !0, n.onload = K;
|
|
25659
|
+
}, n.src = Xv, ry.map = t;
|
|
25655
25660
|
}
|
|
25656
25661
|
}
|
|
25657
25662
|
//#endregion
|
|
25658
25663
|
//#region build/five/gaussian-splatting/worker/dataWorker.js?worker&inline
|
|
25659
|
-
var ly = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\0&\\`\\`}}\\`}\\`\\0\\`\\v\\0\\`\\0\\0\\x07aa\\0\\0\\b\\x07\\0\\0\\x07\\bA\\v\\x07b\\0c\\0\\x07d\\0e\\0f\\0\\f\n@\\x07T~@A\\b(\\0\" \\0B\\x07|Bøÿÿÿ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vA\\bA06\\0A\\vA\\b \\x006\\0 \\v\\0 \\0 Atr\\vr \\0¼\"Aÿÿÿq!@ AvAÿq\"E\\r\\0 Að\\0M@ ArAñ\\0 kv!\\f\\v AK@Aø!A\\0!\\f\\v A\ntA\\x07k!\\v AvAqr A\\rvr\\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r (\\0\"k\"A\\b(\\0I\\r \\0 j!\\0@@@A\\b(\\0 G@ (\\f! AÿM@ (\\b\"G\\rA\\bA\\b(\\0A~ Avwq6\\0\\f\\v (!\\x07 G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rA\\b \\x006\\0 A~q6 \\0Ar6 \\x006\\0\\v 6\\f 6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ wq6\\0\\f\\v@ \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v \\x076 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v O\\r\\0 (\"AqE\\r\\0@@@@ AqE@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0 \\0Ar6 A\\b(\\0G\\rA\\bA\\x006\\0A\\bA\\x006\\0\\vA\\b(\\0\"\\x07 F@A\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@A\\bA\\b(\\0A~ Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!\\b G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v A~q6 \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ wq6\\0\\f\\v@ \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v \\b6 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v \\0Ar6 \\0 j \\x006\\0 \\x07G\\r\\0A\\b \\x006\\0\\v \\0AÿM@ \\0AøqA°\\bj!A\\b(\\0\"A \\0Avt\"\\0qE@A\\b \\0 r6\\0 \\f\\v (\\b\\v!\\0 6\\b \\0 6\\f 6\\f \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v 6 B\\x007 AtA¸\nj!@A\\b(\\0\"A t\"qE@A\\b r6\\0 6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At! Aqj\"(\"\\r\\0\\v 6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f 6\\bA!\\0A\\b!A\\0\\v! j 6\\0 6\\f \\0 j 6\\0A¨\\bA¨\\b(\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@A\\b(\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"A°\\bj\"\\0 (¸\\b\"(\\b\"F@A\\b A~ wq6\\0\\f\\v \\x006\\f \\0 6\\b\\v A\\bj!\\0 Ar6 j\" (Ar6\\f\\v\\v A\\b(\\0\"\\bM\\r @@A \\0t\"A\\0 kr \\0tqh\"At\"A°\\bj\" (¸\\b\"\\0(\\b\"F@A\\b A~ wq\"6\\0\\f\\v 6\\f 6\\b\\v \\0 Ar6 \\0 j\"\\x07 k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqA°\\bj!A\\b(\\0! A \\bAvt\"qE@A\\b r6\\0 \\f\\v (\\b\\v! 6\\b 6\\f 6\\f 6\\b\\v \\0A\\bj!\\0A\\b \\x076\\0A\\b 6\\0\\f\\v\\vA\\b(\\0\"\\vE\\r \\vhAt(¸\n\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\" I\"\\x1B! \\0 \\x1B! \\0!\\f\\v\\v (! (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!A\\b(\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(¸\n\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\" AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(¸\n!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I! \\x1B! \\0 \\x1B! \\0(\" \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 A\\b(\\0 kO\\r\\0 (!\\b (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v A\\b(\\0\"M@A\\b(\\0!\\0@ k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vA\\b 6\\0A\\b 6\\0 \\0A\\bj!\\0\\f \\v A\\b(\\0\"I@A\\b k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"Aà\\v(\\0@Aè\\v(\\0\\f\\vAì\\vB7\\0Aä\\vB\\xA07\\0Aà\\v \nA\\fjApqAتժs6\\0Aô\\vA\\x006\\0AÄ\\vA\\x006\\0A \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bAÀ\\v(\\0\"@A¸\\v(\\0\"\\b j\" \\bM Ir\\r \\v@AÄ\\v-\\0\\0AqE@@@@@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\"\\b M@ \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !Aä\\v(\\0\"\\0Ak\" q@ k jA\\0 \\0kqj!\\v M\\rAÀ\\v(\\0\"\\0@A¸\\v(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vAè\\v(\\0\" kjA\\0 kq\"AF\\r j! \\0!\\f\\v AG\\r\\vAÄ\\vAÄ\\v(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vA¸\\vA¸\\v(\\0 j\"\\x006\\0A¼\\v(\\0 \\0I@A¼\\v \\x006\\0\\v@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vA\\b(\\0\"\\0A\\0 \\0 M\\x1BE@A\\b 6\\0\\vA\\0!\\0AÌ\\v 6\\0AÈ\\v 6\\0A¨\\bA6\\0A¬\\bAà\\v(\\x006\\0AÔ\\vA\\x006\\0@ \\0At\" A°\\bj\"6¸\\b 6¼\\b \\0Aj\"\\0A G\\r\\0\\vA\\b A(k\"\\0Ax kA\\x07q\"k\"6\\0A\\xA0\\b j\"6\\0 Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0\\f\\v M Kr\\r \\0(\\fA\\bq\\r \\0 j6A\\xA0\\b Ax kA\\x07q\"\\0j\"6\\0A\\bA\\b(\\0 j\" \\0k\"\\x006\\0 \\0Ar6 jA(6A¤\\bAð\\v(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vA\\b(\\0 K@A\\b 6\\0\\v j!AÈ\\v!\\0@@ \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vAÈ\\v!\\0@@ \\0(\\0\" M@ \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vA\\b A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0A\\xA0\\b j\"6\\0 \\x07Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0 A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 AÐ\\v)\\x007 AÈ\\v)\\x007\\bAÐ\\v A\\bj6\\0AÌ\\v 6\\0AÈ\\v 6\\0AÔ\\vA\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v F\\r\\0 (A~q6 k\"Ar6 6\\0 AÿM@ AøqA°\\bj!\\0A\\b(\\0\"A Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtA¸\nj!@@A\\b(\\0\"A \\0t\"qE@A\\b r6\\0 6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"(\"\\r\\0\\v 6\\v 6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f 6\\b \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0 j \\x006\\0\\vA\\b(\\0\"\\0 M\\r\\0A\\b \\0 k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vA\\bA06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\" \\bj\"k!\\x07@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0 \\0Ar6\\f\\vA\\b(\\0 F@A\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@A\\bA\\b(\\0A~ \\0Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!@ G@ (\\b\"\\0 6\\f \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ \\0wq6\\0\\f\\v@ (F@ 6\\f\\v 6\\v E\\r\\v 6 (\"\\0@ \\x006 \\0 6\\v (\"\\0E\\r\\0 \\x006 \\0 6\\v \\x07 j!\\x07 j\"(!\\0\\v \\0A~q6 \\x07Ar6 \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqA°\\bj!\\0A\\b(\\0\"A \\x07Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v 6 B\\x007 AtA¸\nj!\\0@@A\\b(\\0\"A t\"qE@A\\b r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v 6\\v \\x006 6\\f 6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006 \\x006\\f 6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rA\\b \\x07A~ wq\"\\x076\\0\\f\\v@ \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 AÿM@ AøqA°\\bj!\\0A\\b(\\0\"A Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtA¸\nj!@@ \\x07A \\0t\"qE@A\\b \\x07r6\\0 6\\0 6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"\\x07(\"\\r\\0\\v \\x07 6 6\\v 6\\f 6\\b\\f\\v (\\b\"\\0 6\\f 6\\b A\\x006 6\\f \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rA\\b \\vA~ wq6\\0\\f\\v@ (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 \\b@ \\bAxqA°\\bj!\\0A\\b(\\0!A \\bAvt\"\\x07 qE@A\\b \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\vA\\b 6\\0A\\b 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v¡\\v\\v }#\\0A\\xA0k\"\\v$\\0 \\vA0jA\\0A$ü\\v\\0@ G@ Al\"\\fAjAt\"j*\\0! \\fAjAt\"j*\\0! \\b \\fAt\"j j*\\0\"8\\0 \\b j 8\\0 \\b j 8\\0 \\x07 Atj\"\\rA\\x006\\f \\r 8\\b \\r 8 \\r 8\\0@ \\0E@ j-\\0\\0E\\r\\v \\rA\\b6\\f\\v \\r At\"\\fAr\"j-\\0\\0A\\bt \\fj-\\0\\0r \\fAr\"j-\\0\\0Atr \\fAr\"\\fj-\\0\\0Atr6 \\v At\"j*\\0\"8 \\v At\"j*\\0\"8 \\v \\fAt\"j*\\0\"8 \\v At\"j*\\0\"8 \\vAà\\0j\"\\f \\v*\"C\\0\\0\\0À \\v*\"C\\0\\0\\0À C\\0\\0?8\\0 \\f \\v*\" \\v* \\v*\" \\v*8 \\f \\v*\" \\v* \\v*\" \\v*8\\b \\f \\v*\" \\v* \\v*\" \\v*8\\f \\f \\v*\"C\\0\\0\\0À \\v*\"C\\0\\0\\0À C\\0\\0?8 \\f \\v*\" \\v* \\v*\" \\v*8 \\f \\v*\" \\v* \\v*\" \\v*8 \\f \\v*\" \\v* \\v*\" \\v*8 \\f \\v*\"C\\0\\0\\0À \\v*\"C\\0\\0\\0À C\\0\\0?8 j 8\\0 j 8\\0 j 8\\0 j 8\\0 \\v j*\\0\"80 \\v j*\\0\"8@ \\v j*\\0\"8P \n j 8\\0 \n j 8\\0 \n j 8\\0 \\v \\f* \\v*8 \\f*\\0 \\v*0 \\f*\\f \\v*48\\0 \\v \\f* \\v*8 \\f* \\v*0 \\f* \\v*48 \\v \\f* \\v*8 \\f*\\b \\v*0 \\f* \\v*48\\b \\v \\f* \\v*D \\f*\\0 \\v*< \\f*\\f \\v*@8\\f \\v \\f* \\v*D \\f* \\v*< \\f* \\v*@8 \\v \\f* \\v*D \\f*\\b \\v*< \\f* \\v*@8 \\v \\f* \\v*P \\f*\\0 \\v*H \\f*\\f \\v*L8 \\v \\f* \\v*P \\f* \\v*H \\f* \\v*L8 \\v \\f* \\v*P \\f*\\b \\v*H \\f* \\v*L8 \\v* ! \\v*\\b! \\v*! \\r \\v*\" \\v*\\0\" \\v*\\f\"\\x1B \\x1BC\\0\\0@ \\v*\" \\v*\" \\x1B \\v*\"C\\0\\0@6 \\r \\x1B C\\0\\0@ C\\0\\0@6 \\r C\\0\\0@ C\\0\\0@6 Aj!\\f\\v\\v \\vA\\xA0j$\\0\\v\\0\\v\\v \\0A\\b\\v`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._pack=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i=0,a=[],o=!1,s=!1,c,l,u,d,f,p,m,h,g,_=t=>e(void 0,void 0,void 0,function*(){for(;s;)yield new Promise(e=>setTimeout(e,0));n||(s=!0,yield r(),s=!1);let e=2**Math.ceil(Math.log2(t.vertexCount));e>i&&(i>0&&(n._free(c),n._free(l),n._free(u),n._free(d),n._free(f),n._free(p),n._free(m),n._free(h),n._free(g)),i=e,c=n._malloc(3*i*4),l=n._malloc(4*i*4),u=n._malloc(3*i*4),d=n._malloc(4*i),f=n._malloc(i),p=n._malloc(8*i*4),m=n._malloc(3*i*4),h=n._malloc(4*i*4),g=n._malloc(3*i*4)),n.HEAPF32.set(t.positions,c/4),n.HEAPF32.set(t.rotations,l/4),n.HEAPF32.set(t.scales,u/4),n.HEAPU8.set(t.colors,d),n.HEAPU8.set(t.selection,f),n._pack(t.selected,t.vertexCount,c,l,u,d,f,p,m,h,g);let a=new Uint32Array(n.HEAPU32.buffer,p,t.vertexCount*8),_=new Uint32Array(a.slice().buffer),v=new Float32Array(n.HEAPF32.buffer,m,t.vertexCount*3),y=new Float32Array(v.slice().buffer),b=new Float32Array(n.HEAPF32.buffer,h,t.vertexCount*4),x=new Float32Array(b.slice().buffer),S=new Float32Array(n.HEAPF32.buffer,g,t.vertexCount*3),C={data:_,worldPositions:y,worldRotations:x,worldScales:new Float32Array(S.slice().buffer),offset:t.offset,vertexCount:t.vertexCount,positions:t.positions.buffer,rotations:t.rotations.buffer,scales:t.scales.buffer,colors:t.colors.buffer,selection:t.selection.buffer};self.postMessage({response:C},[C.data.buffer,C.worldPositions.buffer,C.worldRotations.buffer,C.worldScales.buffer,C.positions,C.rotations,C.scales,C.colors,C.selection]),o=!1}),v=()=>{a.length!==0&&(o||(o=!0,_(a.shift()),setTimeout(()=>{o=!1,v()},0)))};self.onmessage=e=>new Promise((t,n)=>{if(e.data.splat){let n=e.data.splat;for(let e=0;e<a.length;e++)if(a[e].offset===n.offset){a[e]=n,t(!0);return}a.push(n),v(),t(!0)}})})();", uy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", ly], { type: "text/javascript;charset=utf-8" });
|
|
25660
|
-
function
|
|
25664
|
+
var uy = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\00\\b\\`\\`}}\\`|}\\`}\\`||\\`\\v\\0\\`\\0\\`\\0\\0\\x07aa\\0\\0\\r\\0\\0\\x07\\x07\\bAÀ¤\\v\\x07b\\0c\\0\\rd\\0\ne\\0\\ff\\0\\v\\f\núT\\rO| \\0 \\0¢\"\\0 \\0 \\0¢\"¢ \\0DiPîàBù>¢D'èÀV¿\\xA0¢ DB:áSU¥?¢ \\0D^\\fýÿÿß¿¢D\\0\\0\\0\\0\\0\\0ð?\\xA0\\xA0\\xA0¶\\vT~@AÀ (\\0\" \\0B\\x07|Bøÿÿÿ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vAÄ A06\\0A\\vAÀ \\x006\\0 \\vK| \\0 \\0 \\0¢\"¢\" ¢¢ D§F;ÍÆ>¢DtçÊâù\\0*¿\\xA0¢ D²ûn?¢Dw¬ËTUUÅ¿\\xA0¢ \\0\\xA0\\xA0¶\\v¨\\0@ A\\bN@ \\0D\\0\\0\\0\\0\\0\\0à¢!\\0 AÿI@ Aÿ\\x07k!\\f\\v \\0D\\0\\0\\0\\0\\0\\0à¢!\\0Aý AýO\\x1BAþk!\\f\\v AxJ\\r\\0 \\0D\\0\\0\\0\\0\\0\\0\\`¢!\\0 A¸pK@ AÉ\\x07j!\\f\\v \\0D\\0\\0\\0\\0\\0\\0\\`¢!\\0Aðh AðhM\\x1BAj!\\v \\0 Aÿ\\x07jB4¿¢\\v
} \\0¼\"AvAÿq\"AM} Aý\\0M@ \\0C\\0\\0\\0\\0\\v} \\0\"\\0C\\0\\0\\0KC\\0\\0\\0Ë \\0\"C\\0\\0\\0?^@ \\0 C\\0\\0¿\\f\\v \\0 \"\\0 C\\0\\0\\0¿_E\\r\\0 \\0C\\0\\0?\\v\"\\0 \\0 A\\0H\\x1B \\0\\v\\v!\\0 \\0C\\0\\0\\0\\0C\\0\\0\\0\\0 \\0¼Aÿÿÿÿ\\x07qAü\\x07M\\x1B\\v+\\0 \\0 \\0 \\0CkÓ\\r¼Cº/½Cuª*> \\0C®å4¿C\\0\\0?\\vÈ| \\0C\\`B¢\\r]A\\0AÿA}C\\0\\0\\0\\0 \\0¼\"AüF\\r\\0@ Aü\\x07kAÿÿÿxM@ At\"E@#\\0Ak\"C\\0\\0¿8\\f *\\fC\\0\\0\\0\\0\\f\\v Aü\\x07F\\r AxI A\\0NqE@ \\0 \\0\"\\0 \\0\\f\\v \\0C\\0\\0\\0K¼AÜ\\0k!\\vA\n+\\0 AÌùk\"A|qk¾» AvAðq\"+\\b¢D\\0\\0\\0\\0\\0\\0ð¿\\xA0\" ¢\"¢A\n+\\0 ¢A\n+\\0\\xA0\\xA0 ¢ Au·A\n+\\0¢ +\\b\\xA0 \\xA0\\xA0¶!\\0\\v \\0\\vC\\0\\0@AC\\0\\0¨AC\\0\\0~CC\\0\\0?ü\\0\" AL\\x1B\" AÿN\\x1B\\vAÿq\\vr \\0¼\"Aÿÿÿq!@ AvAÿq\"E\\r\\0 Að\\0M@ ArAñ\\0 kv!\\f\\v AK@Aø!A\\0!\\f\\v A\ntA\\x07k!\\v AvAqr A\\rvr\\v¬|\n}@ $G@ $A\\fl\"\\0Aj\"j*\\0! \\0A\\bj\"j*\\0! \\0 \\bj \\0 j*\\0\"8\\0 \\b j 8\\0 \\bj 8\\0 $At\"\\x1Bj \\x1Bj\"*\\x008\\0 $At\"Ar\"At\"j j\"*\\x008\\0 Ar\"At\"%j %j\" *\\x008\\0 Ar\"!At\"&j &j\"\"*\\x008\\0 \\0 \nj \\0 j\"'*\\x008\\0 \nj j\"(*\\x008\\0 \n j j*\\0\"8\\0 \\x07 \\x1Bj j-\\0\\0 j-\\0\\0A\\btr j-\\0\\0Atr !j-\\0\\0Atr6\\0 \\x07 j Atr6\\0 *\\0\" \"*\\0\" *\\0\" *\\0\" \"C\\0\\0\\0\\0^@ \"! ! ! !\\vC\\0\\0?!C\\0\\0\\0\\0!C\\0\\0\\0\\0!} C\\0\\0\\0\\0]@ ! ! ! !\\v C\\0\\0? C\\0\\0?]\\x1B\"¼\"Aÿÿÿÿ\\x07q\"\\0AüO@C\\0\\0\\0\\0CÚI@ A\\0N\\x1B \\0AüF\\rC\\0\\0\\0\\0 \\f\\v} \\0Aÿÿÿ÷M@CÚÉ? \\0AI\\rCh!¢3 \\x07 CÚÉ?\\f\\v A\\0H@CÚÉ? C\\0\\0?C\\0\\0\\0?\"\" \\x07Ch!¢³\" \\f\\vC\\0\\0? C\\0\\0\\0?\"\" \\x07 ¼A\\`q¾\" \" \\v\\v\"!#\\0Ak\"$\\0@ ¼\"Aÿÿÿÿ\\x07q\"\\0AÚ¤úM@ \\0AÌI\\r »!\\f\\v \\0AѧíM@ »!\\v \\0AãÛM@ A\\0H@ \\vD-DTû!ù?\\xA0!\\f\\v \\vD-DTû!ù¿\\xA0!\\f\\vD-DTû! ÀD-DTû! @ A\\0N\\x1B \\v\\xA0!\\f\\v \\0AÕãM@ \\0AßÛ¿
M@ »!\\v A\\0H@ \\vDÒ!3|Ù@\\xA0!\\f\\v \\vDÒ!3|ÙÀ\\xA0!\\f\\vD-DTû!@D-DTû!À A\\0H\\x1B »\\xA0!\\f\\v \\0Aü\\x07O@ !\\f\\v#\\0Ak\"$\\0@ ¼\")Aÿÿÿÿ\\x07q\"\\0AÚ¤îM@ »\"\\f \\fDÈÉm0_ä?¢D\\0\\0\\0\\0\\0\\x008C\\xA0D\\0\\0\\0\\0\\0\\x008Ã\\xA0\"\\vD\\0\\0\\0Pû!ù¿¢\\xA0 \\vDcba´Q¾¢\\xA0\"\\r9\\b \\vü!\\0 \\rD\\0\\0\\0\\`û!é¿c@ \\f \\vD\\0\\0\\0\\0\\0\\0ð¿\\xA0\"\\vD\\0\\0\\0Pû!ù¿¢\\xA0 \\vDcba´Q¾¢\\xA09\\b \\0Ak!\\0\\f\\v \\rD\\0\\0\\0\\`û!é?dE\\r \\f \\vD\\0\\0\\0\\0\\0\\0ð?\\xA0\"\\vD\\0\\0\\0Pû!ù¿¢\\xA0 \\vDcba´Q¾¢\\xA09\\b \\0Aj!\\0\\f\\v \\0Aü\\x07O@ »9\\bA\\0!\\0\\f\\v \\0 \\0AvAk\"\\0Atk¾»9\\b A\\bj!\"A\\0!#\\0A°k\"$\\0 \\0 \\0AkAm\"A\\0 A\\0J\\x1B\"Ahlj!A\\xA0\n(\\0\"A\\0N@ Aj!\\0 !@ AÀj Atj A\\0H|D\\0\\0\\0\\0\\0\\0\\0\\0 At(°\n·\\v9\\0 Aj! Aj\" \\0G\\r\\0\\v\\v Ak!\\x1BA\\0!\\0 A\\0 A\\0J\\x1B!@A\\0!D\\0\\0\\0\\0\\0\\0\\0\\0!\\v@ \" Atj+\\0 AÀj \\0 kAtj+\\0¢ \\v\\xA0!\\v Aj\"AG\\r\\0\\v \\0Atj \\v9\\0 \\0 F \\0Aj!\\0E\\r\\0\\vA/ k!*A0 k!# AtA°\nj!+ Ak!, !\\0@@ \\0Atj+\\0!\\vA\\0! \\0! \\0A\\0J@@ Aàj Atj \\vD\\0\\0\\0\\0\\0\\0p>¢ü·\"\\fD\\0\\0\\0\\0\\0\\0pÁ¢ \\v\\xA0ü6\\0 AtjA\\bk+\\0 \\f\\xA0!\\v Ak! Aj\" \\0G\\r\\0\\v\\v \\v \\x1B\"\\v \\vD\\0\\0\\0\\0\\0\\0À?¢D\\0\\0\\0\\0\\0\\0 À¢\\xA0\"\\v \\vü\" ·¡!\\v@@@ \\x1BA\\0L\"-E@ \\0At j\" (Ü\" #u\" #tk\"6Ü j! *u\\f\\v \\x1B\\r \\0At j(ÜAu\\v\"!A\\0L\\r\\f\\vA!! \\vD\\0\\0\\0\\0\\0\\0à?f\\r\\0A\\0!!\\f\\vA\\0!A\\0!A! \\0A\\0J@@ Aàj Atj\".(\\0!@ . Aÿÿÿ\\x07 E\\rA\\b\\v k6\\0A!A\\0\\f\\vA\\0!A\\v! Aj\" \\0G\\r\\0\\v\\v@ -\\r\\0Aÿÿÿ!@@ ,\\0\\vAÿÿÿ!\\v \\0At j\" (Ü q6Ü\\v Aj! !AG\\r\\0D\\0\\0\\0\\0\\0\\0ð? \\v¡!\\vA!! \\r\\0 \\vD\\0\\0\\0\\0\\0\\0ð? \\x1B¡!\\v\\v \\vD\\0\\0\\0\\0\\0\\0\\0\\0a@A\\0! \\0!@ \\0 L\\r\\0@ Aàj Ak\"Atj(\\0 r! J\\r\\0\\v E\\r\\0@ \\x1BAk!\\x1B Aàj \\0Ak\"\\0Atj(\\0E\\r\\0\\v\\f\\vA!@ \"Aj! Aàj kAtj(\\0E\\r\\0\\v \\0 j!@ AÀj \\0Aj\"\\0Atj + \\0Atj(\\0·9\\0A\\0!D\\0\\0\\0\\0\\0\\0\\0\\0!\\v@ \" Atj+\\0 AÀj \\0 kAtj+\\0¢ \\v\\xA0!\\v Aj\"AG\\r\\0\\v \\0Atj \\v9\\0 \\0 H\\r\\0\\v !\\0\\f\\v\\v@ \\vA k\"\\vD\\0\\0\\0\\0\\0\\0pAf@ Aàj \\0Atj \\vD\\0\\0\\0\\0\\0\\0p>¢ü\"·D\\0\\0\\0\\0\\0\\0pÁ¢ \\v\\xA0ü6\\0 \\0Aj!\\0 !\\x1B\\f\\v \\vü!\\v Aàj \\0Atj 6\\0\\vD\\0\\0\\0\\0\\0\\0ð? \\x1B!\\v \\0A\\0N@ \\0!@ \"Atj \\v Aàj Atj(\\0·¢9\\0 Ak! \\vD\\0\\0\\0\\0\\0\\0p>¢!\\v \\r\\0\\vA\\0! \\0!@ J\\x1B!\\x1B \\0 k! Atj!\"A\\0!D\\0\\0\\0\\0\\0\\0\\0\\0!\\v@ At\"#+ \" #j+\\0¢ \\v\\xA0!\\v \\x1BG Aj!\\r\\0\\v A\\xA0j Atj \\v9\\0 Ak! \\0 G Aj!\\r\\0\\v\\vD\\0\\0\\0\\0\\0\\0\\0\\0!\\v \\0A\\0N@@ \\0\"Ak!\\0 \\v A\\xA0j Atj+\\0\\xA0!\\v \\r\\0\\v\\v \\v \\v !\\x1B9\\0 A°j$\\0 A\\x07q!\\0 +\\0!\\v )A\\0H@ \\v9\\bA\\0 \\0k!\\0\\f\\v \\v9\\b\\v Aj$\\0 +\\b!\\v@@@@ \\0AqAk\\0\\v \\v!\\f\\v \\v!\\f\\v \\v!\\f\\v \\v!\\v Aj$\\0 C½75^@ ! ! !\\v \"C\\0\\0\\0\\0^@ ! ! !\\v@ C\\0\\0\\0\\0\\`@ !\\f\\vC\\0\\0? \" C\\0\\0\\0\\0\\`\\x1B!C\\0\\0? \" C\\0\\0\\0\\0\\`\\x1B!\\v C\\0\\0\\0?C\\0\\0\\0?C\\0\\0C! \\x07 %j C\\0\\0\\0?C\\0\\0\\0?C\\0\\0CC\\0\\0CüAt r C\\0\\0CüAtr6\\0 '*\\0\\b!\\0 \\x07 &j \\0 (*\\0\\bA\\btr \\bAtr CÛI@C\\0\\0CC\\0\\0CüAtr6\\0 $Aj!$\\f\\v\\v\\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r (\\0\"k\"AØ (\\0I\\r \\0 j!\\0@@@AÜ (\\0 G@ (\\f! AÿM@ (\\b\"G\\rAÈ AÈ (\\0A~ Avwq6\\0\\f\\v (!\\x07 G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rAÐ \\x006\\0 A~q6 \\0Ar6 \\x006\\0\\v 6\\f 6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(ø\" F@ Aø\"j 6\\0 \\rAÌ AÌ (\\0A~ wq6\\0\\f\\v@ \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v \\x076 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v O\\r\\0 (\"AqE\\r\\0@@@@ AqE@Aà (\\0 F@Aà 6\\0AÔ AÔ (\\0 \\0j\"\\x006\\0 \\0Ar6 AÜ (\\0G\\rAÐ A\\x006\\0AÜ A\\x006\\0\\vAÜ (\\0\"\\x07 F@AÜ 6\\0AÐ AÐ (\\0 \\0j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@AÈ AÈ (\\0A~ Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!\\b G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v A~q6 \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(ø\" F@ Aø\"j 6\\0 \\rAÌ AÌ (\\0A~ wq6\\0\\f\\v@ \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v \\b6 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v \\0Ar6 \\0 j \\x006\\0 \\x07G\\r\\0AÐ \\x006\\0\\v \\0AÿM@ \\0AøqAð j!AÈ (\\0\"A \\0Avt\"\\0qE@AÈ \\0 r6\\0 \\f\\v (\\b\\v!\\0 6\\b \\0 6\\f 6\\f \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v 6 B\\x007 AtAø\"j!@AÌ (\\0\"A t\"qE@AÌ r6\\0 6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At! Aqj\"(\"\\r\\0\\v 6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f 6\\bA!\\0A\\b!A\\0\\v! j 6\\0 6\\f \\0 j 6\\0Aè Aè (\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@AÈ (\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"Að j\"\\0 (ø \"(\\b\"F@AÈ A~ wq6\\0\\f\\v \\x006\\f \\0 6\\b\\v A\\bj!\\0 Ar6 j\" (Ar6\\f\\v\\v AÐ (\\0\"\\bM\\r @@A \\0t\"A\\0 kr \\0tqh\"At\"Að j\" (ø \"\\0(\\b\"F@AÈ A~ wq\"6\\0\\f\\v 6\\f 6\\b\\v \\0 Ar6 \\0 j\"\\x07 k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqAð j!AÜ (\\0! A \\bAvt\"qE@AÈ r6\\0 \\f\\v (\\b\\v! 6\\b 6\\f 6\\f 6\\b\\v \\0A\\bj!\\0AÜ \\x076\\0AÐ 6\\0\\f\\v\\vAÌ (\\0\"\\vE\\r \\vhAt(ø\"\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\" I\"\\x1B! \\0 \\x1B! \\0!\\f\\v\\v (! (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!AÌ (\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(ø\"\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\" AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(ø\"!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I! \\x1B! \\0 \\x1B! \\0(\" \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 AÐ (\\0 kO\\r\\0 (!\\b (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v AÐ (\\0\"M@AÜ (\\0!\\0@ k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vAÐ 6\\0AÜ 6\\0 \\0A\\bj!\\0\\f \\v AÔ (\\0\"I@AÔ k\"6\\0Aà Aà (\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"A\\xA0$(\\0@A¨$(\\0\\f\\vA¬$B7\\0A¤$B\\xA07\\0A\\xA0$ \nA\\fjApqAتժs6\\0A´$A\\x006\\0A$A\\x006\\0A \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bA$(\\0\"@Aø#(\\0\"\\b j\" \\bM Ir\\r \\v@A$-\\0\\0AqE@@@@@Aà (\\0\"@A$!\\0@ \\0(\\0\"\\b M@ \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !A¤$(\\0\"\\0Ak\" q@ k jA\\0 \\0kqj!\\v M\\rA$(\\0\"\\0@Aø#(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vA¨$(\\0\" kjA\\0 kq\"AF\\r j! \\0!\\f\\v AG\\r\\vA$A$(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vAø#Aø#(\\0 j\"\\x006\\0Aü#(\\0 \\0I@Aü# \\x006\\0\\v@Aà (\\0\"@A$!\\0@ \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vAØ (\\0\"\\0A\\0 \\0 M\\x1BE@AØ 6\\0\\vA\\0!\\0A$ 6\\0A$ 6\\0Aè A6\\0Aì A\\xA0$(\\x006\\0A$A\\x006\\0@ \\0At\" Að j\"6ø 6ü \\0Aj\"\\0A G\\r\\0\\vAÔ A(k\"\\0Ax kA\\x07q\"k\"6\\0Aà j\"6\\0 Ar6 \\0 jA(6Aä A°$(\\x006\\0\\f\\v M Kr\\r \\0(\\fA\\bq\\r \\0 j6Aà Ax kA\\x07q\"\\0j\"6\\0AÔ AÔ (\\0 j\" \\0k\"\\x006\\0 \\0Ar6 jA(6Aä A°$(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vAØ (\\0 K@AØ 6\\0\\v j!A$!\\0@@ \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vA$!\\0@@ \\0(\\0\" M@ \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vAÔ A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0Aà j\"6\\0 \\x07Ar6 \\0 jA(6Aä A°$(\\x006\\0 A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 A$)\\x007 A$)\\x007\\bA$ A\\bj6\\0A$ 6\\0A$ 6\\0A$A\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v F\\r\\0 (A~q6 k\"Ar6 6\\0 AÿM@ AøqAð j!\\0AÈ (\\0\"A Avt\"qE@AÈ r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtAø\"j!@@AÌ (\\0\"A \\0t\"qE@AÌ r6\\0 6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"(\"\\r\\0\\v 6\\v 6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f 6\\b \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0 j \\x006\\0\\vAÔ (\\0\"\\0 M\\r\\0AÔ \\0 k\"6\\0Aà Aà (\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vAÄ A06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\" \\bj\"k!\\x07@Aà (\\0 F@Aà 6\\0AÔ AÔ (\\0 \\x07j\"\\x006\\0 \\0Ar6\\f\\vAÜ (\\0 F@AÜ 6\\0AÐ AÐ (\\0 \\x07j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@AÈ AÈ (\\0A~ \\0Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!@ G@ (\\b\"\\0 6\\f \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(ø\" F@ Aø\"j 6\\0 \\rAÌ AÌ (\\0A~ \\0wq6\\0\\f\\v@ (F@ 6\\f\\v 6\\v E\\r\\v 6 (\"\\0@ \\x006 \\0 6\\v (\"\\0E\\r\\0 \\x006 \\0 6\\v \\x07 j!\\x07 j\"(!\\0\\v \\0A~q6 \\x07Ar6 \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqAð j!\\0AÈ (\\0\"A \\x07Avt\"qE@AÈ r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v 6 B\\x007 AtAø\"j!\\0@@AÌ (\\0\"A t\"qE@AÌ r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v 6\\v \\x006 6\\f 6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006 \\x006\\f 6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(ø\" F@ Aø\"j \\x006\\0 \\0\\rAÌ \\x07A~ wq\"\\x076\\0\\f\\v@ \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 AÿM@ AøqAð j!\\0AÈ (\\0\"A Avt\"qE@AÈ r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtAø\"j!@@ \\x07A \\0t\"qE@AÌ \\x07r6\\0 6\\0 6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"\\x07(\"\\r\\0\\v \\x07 6 6\\v 6\\f 6\\b\\f\\v (\\b\"\\0 6\\f 6\\b A\\x006 6\\f \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(ø\" F@ Aø\"j \\x006\\0 \\0\\rAÌ \\vA~ wq6\\0\\f\\v@ (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 \\b@ \\bAxqAð j!\\0AÜ (\\0!A \\bAvt\"\\x07 qE@AÈ \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\vAÜ 6\\0AÐ 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v\\0\\v\\vË\\0A\\b\\v÷¾óøyìaö?Þª÷{Õ¿=¯Jíqõ?ÛmÀ§ð¾Ò¿°ðð9ô?g:Q®Ð¿
¸°Éó?é$¦Ø1Ë¿¥d\\f\\ró?XwÀ\nOWÆ¿\\xA0\\v{\"^ò?\\0Ç+ªÁ¿?4JJ»ñ?^ÎvNº¿ºåðX#ñ?ÌaZ<±¿§\\0A?ð?\\fá8ôR¢¿\\0\\0\\0\\0\\0\\0ð?\\0\\0\\0\\0\\0\\0\\0\\0¬Gý\\`î?Yò]ª¥ª?\\xA0j³¤ì?´.6ªS^¼?æüjW6 ë?\\bÛ wå&Å?-ª¡cÑÂé?pG\"\\rÂË?íAxæè?á~\\xA0ÈÑ?bHSõÜgç? î¶W0Ô?ï9úþB.æ?4¸H£Ð¿j\\và\\v[WÕ?#A\nòþÿß¿\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0ù¢\\0DNn\\0ü)\\0ÑW'\\0Ý4õ\\0bÛÀ\\0<\\0AC\\0cQþ\\0»Þ«\\0·aÅ\\0:n$\\0ÒMB\\0Ià\\0 ê.\\0Ñ\\0ëþ\\0)±\\0è>§\\0õ5\\0D».\\0é\\0´&p\\0A~_\\0Ö9\\0S9\\0ô9\\0_\\0(ù½\\0ø;\\0Þÿ\\0\\0/ï\\0\nZ\\0mm\\0Ï~6\\0 Ë'\\0FO·\\0f?\\0-ê_\\0º'u\\0åëÇ\\0={ñ\\0÷9\\x07\\0R\\0ûkê\\0±_\\0\\b]\\x000V\\0{üF\\0ð«k\\0 ¼Ï\\x006ô\\0ã©\\0^a\\0\\b\\x1Bæ\\0
e\\0\\xA0_\\0@h\\0Øÿ\\0'sM\\01\\0ÊV\\0ɨs\\0{â\\`\\0kÀ\\0ÄG\\0ÍgÃ\\0 èÜ\\0Y*\\0vÄ\\0¦\\0D¯Ý\\0WÑ\\0¥>\\0\\x07ÿ\\x003~?\\0Â2è\\0OÞ\\0»}2\\0&=Ã\\0kï\\0ø^\\x005:\\0òÊ\\0ñ\\0|!\\0j$|\\0Õnú\\x000-w\\0;C\\0µÆ\\0Ã\\0ÄÂ\\0,MA\\0\\f\\0]\\0}F\\0ãq-\\0Æ\\x003b\\0\\0´Ò|\\0´§\\x007UÕ\\0×>ö\\0£\\0Mvü\\0d*\\0p׫\\0c|ø\\0z°W\\0ç\\0ÀIV\\0;ÖÙ\\0§8\\0$#Ë\\0Öw\\0ZT#\\0\\0¹\\0ñ\n\\x1B\\0Îß\\01ÿ\\0fj\\0Wa\\0¬ûG\\0~Ø\\0\"e·\\x002è\\0æ¿\\`\\0ïÄÍ\\0l6 \\0]?Ô\\0Þ×\\0X;Þ\\0Þ\\0Ò\"(\\0(è\\0âXM\\0ÆÊ2\\0\\bã\\0à}Ë\\0ÀP\\0ó§\\0à[\\0.4\\0b\\0H\\0õ[\\0°\\0éò\\0HJC\\0gÓ\\0ªÝØ\\0®_B\\0jaÎ\\0\n(¤\\0Ó´\\0¦ò\\0\\\\w\\0£Â\\0a<\\0sx\\0¯Z\\0o×½\\0-¦c\\0ô¿Ë\\0ï\\0&Ág\\0UÊE\\0ÊÙ6\\0(¨Ò\\0Âa\\0Éw\\0&\\0F\\0ÄYÄ\\0ÈÅD\\0M²\\0\\0ó\\0ÔC\\0)Iå\\0ýÕ\\0\\0¾ü\\0Ì\\0pÎî\\0>õ\\0ìñ\\0³çÃ\\0Çø(\\0\\0Áq>\\0. ³\\0\\vEó\\0\\0« {\\0.µ\\0GÂ\\0{2/\\0\\fUm\\0r§\\0kç\\x001Ë\\0yJ\\0Ayâ\\0ôß\\0è\\0âæ\\01\\0ík\\0__6\\0»ý\\0H´\\0g¤l\\0qrB\\0]2\\0¸\\0¼å \\01%\\0÷t9\\x000\\0\\r\\f\\0K\\bh\\0,îX\\0Gª\\0tç\\0½Ö$\\0÷}¦\\0nHr\\0ï\\0¦\\0´ö\\0ÑSQ\\0Ï\nò\\0 3\\0õK~\\0²ch\\0Ý>_\\0@]\\0
\\0UR)\\x007dÀ\\0mØ\\x002H2\\0[Lu\\0NqÔ\\0ETn\\0\\v Á\\0*õi\\0fÕ\\0'\\x07\\0]P\\0´;Û\\0êvÅ\\0ù\\0Ik}\\0'º\\0i)\\0ÆÌ¬\\0T\\0âj\\0Ù\\0,rP\\0¤¾\\0w\\x07\\0ó0p\\0\\0ü'\\0êq¨\\0fÂI\\0dà=\\0Ý\\0£?\\0Cý\\0\\r\\x001AÞ\\09\\0Ýp\\0·ç\\0\\bß;\\07+\\0\\\\\\xA0\\0Z\\0\\0èØ\\0l¯\\0ÛÿK\\x008\\0Yv\\0b¥\\0aË»\\0ǹ\\0@½\\0Òò\\0Iu'\\0ë¶ö\\0Û\"»\\0\nª\\0&/\\0dv\\0 ;3\\0\\0Q:ª\\0£Â\\0¯í®\\0\\\\&\\0mÂM\\0-z\\0ÀV\\0?\\0 ðö\\0+@\\0m1\\x009´\\x07\\0\\f \\0ØÃ[\\0õÄ\\0ÆK\\0NÊ¥\\0§7Í\\0æ©6\\0«\\0ÝBh\\0cÞ\\0vï\\0hR\\0üÛ7\\0®¡«\\0ß1\\0\\0®¡\\0\\fûÚ\\0dMf\\0í·\\0)e0\\0WV¿\\0Gÿ:\\0jù¹\\0u¾ó\\0(ß\\0«0\\0fö\\0Ë\\0ú\"\\0Ùä\\0=³¤\\0W\\x1B\\x006Í \\0NBé\\0¾¤\\x003#µ\\0ðª\\0Oe¨\\0ÒÁ¥\\0\\v?\\0[xÍ\\0#ùv\\0{\\0r\\0ƦS\\0onâ\\0ïë\\0\\0JX\\0ÄÚ·\\0ªfº\\0vÏÏ\\0Ñ\\0±ñ-\\0Á\\0Ãw\\0HÚ\\0÷]\\xA0\\0Æô\\0¬ð/\\0Ýì\\0?\\\\¼\\0ÐÞm\\0Ç\\0*Û¶\\0£%:\\0\\0¯\\0S\\0¶W\\0)-´\\0K~\\0Ú\\x07§\\0vª\\0{Y¡\\0*\\0Ü·-\\0úåý\\0Ûþ\\0¾ý\\0ävl\\0©ü\\0>p\\0
n\\0ýÿ\\0(>\\x07\\0ag3\\0*\\0M½ê\\0³ç¯\\0mn\\0g9\\x001¿[\\0×H\\x000ß\\0Ç-C\\0%a5\\0ÉpÎ\\x000˸\\0¿lý\\0¤\\0¢\\0lä\\0ZÝ\\xA0\\0!oG\\0bÒ\\0¹\\\\\\0paI\\0kVà\\0R\\0PU7\\0Õ·\\x003ñÄ\\0n_\\0]0ä\\0
.©\\0²Ã\\0¡26\\0\\b·¤\\0ê±Ô\\0÷!\\0iä\\0'ÿw\\0\\f\\0@-\\0OÍ\\xA0\\0 ¥\\0³¢Ó\\0/]\n\\0´ùB\\0ÚË\\0}¾Ð\\0ÛÁ\\0«½\\0Ê¢\\0\\bj\\\\\\0.U\\0'\\0U\\0ð\\0á\\x07\\0\\vd\\0A\\0¾Þ\\0Úý*\\0k%¶\\0{4\\0óþ\\0¹¿\\0hjO\\0J*¨\\0OÄZ\\0-ø¼\\0×Z\\0ôÇ\\0\\rM\\0 :¦\\0¤W_\\0?±\\08\\0Ì \\0qÝ\\0ÉÞ¶\\0¿\\`õ\\0Me\\0\\x07k\\0°¬\\0²ÀÐ\\0QUH\\0û\\0rÃ\\0£;\\0À@5\\0Ü{\\0àEÌ\\0N)ú\\0ÖÊÈ\\0èóA\\0|dÞ\\0dØ\\0Ù¾1\\0¤Ã\\0wXÔ\\0iãÅ\\0ðÚ\\0º:<\\0FF\\0Uu_\\0Ò½õ\\0nÆ\\0¬.]\\0Dí\\0>B\\0aÄ\\0)ýé\\0çÖó\\0\"|Ê\\0o5\\0\\bàÅ\\0ÿ×\\0njâ\\0°ýÆ\\0\\bÁ\\0|]t\\0k²\\0Ín\\0>r{\\0Æj\\0÷Ï©\\0)sß\\0µÉº\\0·\\0Q\\0â²\\r\\0tº$\\0å}\\`\\0tØ\\0\\r,\\0\\f\\0~f\\0)\\0zv\\0ýý¾\\0VEï\\0Ù~6\\0ìÙ\\0º¹\\0Äü\\x001¨'\\0ñnÃ\\0Å6\\0بV\\0´¨µ\\0ÏÌ\\0-\\0oW4\\0,V\\0Îã\\0Ö ¹\\0k^ª\\0>*\\0_Ì\\0ý\\vJ\\0áôû\\0;m\\0â,\\0éÔ\\0ü´©\\0ïîÑ\\0.5É\\0/9a\\x008!D\\0\\x1BÙÈ\\0ü\n\\0ûJj\\0/Ø\\0S´\\0N\\0T\"Ì\\0*UÜ\\0ÀÆÖ\\0\\v\\0p¸\\0id\\0&Z\\`\\0?Rî\\0\\0ôµ\\0üËõ\\x004¼-\\x004¼î\\0è]Ì\\0Ý^\\`\\0g\\03ï\\0ɸ\\0aX\\0áW¼\\0QÆ\\0Ø>\\0ÝqH\\0-Ý\\0¯¡\\0!,F\\0Yó×\\0Ùz\\0TÀ\\0Oú\\0Vü\\0åy®\\0\"6\\x008\"\\0gÜ\\0Uèª\\0&8\\0Êç\\0Q\\r¤\\03±\\0©×\\0iH\\0e²ð\\0§\\0L\\0ùÑ6\\0!³\\0{J\\0Ï!\\0@Ü\\0ÜGU\\0át:\\0gëB\\0þß\\0^Ô_\\0{g¤\\0º¬z\\0Uö¢\\0+#\\0AºU\\0Yn\\b\\0!*\\x009G\\0ãæ\\0åÔ\\0Iû@\\0ÿVé\\0Ê\\0ÅY\\0ú+\\0ÓÁÅ\\0ÅÏ\\0ÛZ®\\0GÅ\\0
Cb\\0!;\\0,y\\0a\\0*L{\\0,\\0C¿\\0&\\0x<\\0¨Ää\\0åÛ{\\0Ä:Â\\0&ôê\\0÷g\\0\\r¿\\0e£+\\0=±\\0½|\\v\\0¤QÜ\\0'Ýc\\0iáÝ\\0\\0¨)\\0hÎ(\\0 í´\\0D \\0NÊ\\0pc\\0~|#\\0¹2\\0§õ\\0Vç\\0!ñ\\b\\0µ*\\0o~M\\0¥Q\\0µù«\\0ßÖ\\0Ýa\\06\\0Ä:\\0¢¡\\0rím\\x009z\\0¸©\\0k2\\\\\\0F'[\\0\\x004í\\0Ò\\0w\\0üôU\\0YM\\0àq\\0A \\v=@û!ù?\\0\\0\\0\\0-Dt>\\0\\0\\0Fø<\\0\\0\\0\\`QÌx;\\0\\0\\0\\x1Bð9\\0\\0\\0@ %z8\\0\\0\\0\"ã6\\0\\0\\0\\0ói5\\0AÀ \\v@`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._pack=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i=0,a=[],o=!1,s=!1,c,l,u,d,f,p,m,h,g,_=t=>e(void 0,void 0,void 0,function*(){for(;s;)yield new Promise(e=>setTimeout(e,0));n||(s=!0,yield r(),s=!1);let e=2**Math.ceil(Math.log2(t.vertexCount));e>i&&(i>0&&(n._free(c),n._free(l),n._free(u),n._free(d),n._free(f),n._free(p),n._free(m),n._free(h),n._free(g)),i=e,c=n._malloc(3*i*4),l=n._malloc(4*i*4),u=n._malloc(3*i*4),d=n._malloc(4*i),f=n._malloc(i),p=n._malloc(8*i*4),m=n._malloc(3*i*4),h=n._malloc(4*i*4),g=n._malloc(3*i*4)),n.HEAPF32.set(t.positions,c/4),n.HEAPF32.set(t.rotations,l/4),n.HEAPF32.set(t.scales,u/4),n.HEAPU8.set(t.colors,d),n.HEAPU8.set(t.selection,f),n._pack(t.selected,t.vertexCount,c,l,u,d,f,p,m,h,g);let a=new Uint32Array(n.HEAPU32.buffer,p,t.vertexCount*8),_=new Uint32Array(a.slice().buffer),v=new Float32Array(n.HEAPF32.buffer,m,t.vertexCount*3),y=new Float32Array(v.slice().buffer),b=new Float32Array(n.HEAPF32.buffer,h,t.vertexCount*4),x=new Float32Array(b.slice().buffer),S=new Float32Array(n.HEAPF32.buffer,g,t.vertexCount*3),C={data:_,worldPositions:y,worldRotations:x,worldScales:new Float32Array(S.slice().buffer),offset:t.offset,vertexCount:t.vertexCount,positions:t.positions.buffer,rotations:t.rotations.buffer,scales:t.scales.buffer,colors:t.colors.buffer,selection:t.selection.buffer};self.postMessage({response:C},[C.data.buffer,C.worldPositions.buffer,C.worldRotations.buffer,C.worldScales.buffer,C.positions,C.rotations,C.scales,C.colors,C.selection]),o=!1}),v=()=>{a.length!==0&&(o||(o=!0,_(a.shift()),setTimeout(()=>{o=!1,v()},0)))};self.onmessage=e=>new Promise((t,n)=>{if(e.data.splat){let n=e.data.splat;for(let e=0;e<a.length;e++)if(a[e].offset===n.offset){a[e]=n,t(!0);return}a.push(n),v(),t(!0)}})})();", dy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", uy], { type: "text/javascript;charset=utf-8" });
|
|
25665
|
+
function fy(e) {
|
|
25661
25666
|
let t;
|
|
25662
25667
|
try {
|
|
25663
|
-
if (t =
|
|
25668
|
+
if (t = dy && (self.URL || self.webkitURL).createObjectURL(dy), !t) throw "";
|
|
25664
25669
|
let n = new Worker(t, { name: e == null ? void 0 : e.name });
|
|
25665
25670
|
return n.addEventListener("error", () => {
|
|
25666
25671
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
25667
25672
|
}), n;
|
|
25668
25673
|
} catch (t) {
|
|
25669
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
25674
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(uy), { name: e == null ? void 0 : e.name });
|
|
25670
25675
|
}
|
|
25671
25676
|
}
|
|
25672
25677
|
//#endregion
|
|
25673
|
-
//#region \0@oxc-project+runtime@0.
|
|
25674
|
-
function
|
|
25678
|
+
//#region \0@oxc-project+runtime@0.122.0/helpers/asyncToGenerator.js
|
|
25679
|
+
function py(e, t, n, r, i, a, o) {
|
|
25675
25680
|
try {
|
|
25676
25681
|
var s = e[a](o), c = s.value;
|
|
25677
25682
|
} catch (e) {
|
|
@@ -25680,16 +25685,16 @@ function fy(e, t, n, r, i, a, o) {
|
|
|
25680
25685
|
}
|
|
25681
25686
|
s.done ? t(c) : Promise.resolve(c).then(r, i);
|
|
25682
25687
|
}
|
|
25683
|
-
function
|
|
25688
|
+
function my(e) {
|
|
25684
25689
|
return function() {
|
|
25685
25690
|
var t = this, n = arguments;
|
|
25686
25691
|
return new Promise(function(r, i) {
|
|
25687
25692
|
var a = e.apply(t, n);
|
|
25688
25693
|
function o(e) {
|
|
25689
|
-
|
|
25694
|
+
py(a, r, i, o, s, "next", e);
|
|
25690
25695
|
}
|
|
25691
25696
|
function s(e) {
|
|
25692
|
-
|
|
25697
|
+
py(a, r, i, o, s, "throw", e);
|
|
25693
25698
|
}
|
|
25694
25699
|
o(void 0);
|
|
25695
25700
|
});
|
|
@@ -25697,18 +25702,18 @@ function py(e) {
|
|
|
25697
25702
|
}
|
|
25698
25703
|
//#endregion
|
|
25699
25704
|
//#region build/five/gaussian-splatting/wasm/data.js
|
|
25700
|
-
function my() {
|
|
25701
|
-
return hy.apply(this, arguments);
|
|
25702
|
-
}
|
|
25703
25705
|
function hy() {
|
|
25704
|
-
return
|
|
25706
|
+
return gy.apply(this, arguments);
|
|
25707
|
+
}
|
|
25708
|
+
function gy() {
|
|
25709
|
+
return gy = my(function* (e = {}) {
|
|
25705
25710
|
var t, n = e, r = !1, i = !0, a = import.meta.url;
|
|
25706
25711
|
if (r || i) {
|
|
25707
25712
|
try {
|
|
25708
25713
|
new URL(".", a).href;
|
|
25709
25714
|
} catch (e) {}
|
|
25710
25715
|
(function() {
|
|
25711
|
-
var e =
|
|
25716
|
+
var e = my(function* (e) {
|
|
25712
25717
|
var t = yield fetch(e, { credentials: "same-origin" });
|
|
25713
25718
|
if (t.ok) return t.arrayBuffer();
|
|
25714
25719
|
throw Error(t.status + " : " + t.url);
|
|
@@ -25742,7 +25747,7 @@ function hy() {
|
|
|
25742
25747
|
}
|
|
25743
25748
|
var h;
|
|
25744
25749
|
function g() {
|
|
25745
|
-
return s("\0asm\0\0\0&``}}`}`\0`\v\0`\0\0\x07aa\0\0\b\x07\0\0\x07\bA\v\x07b\0c\0\x07d\0e\0f\0\f\n@\x07T~@A\b(\0\" \0B\x07|Bøÿÿÿ|\"BÿÿÿÿX@ §\"\0?\0AtM\r \0\0\r\vA\bA06\0A\vA\b \x006\0 \v\0 \0 Atr\vr \0¼\"Aÿÿÿq!@ AvAÿq\"E\r\0 Að\0M@ ArAñ\0 kv!\f\v AK@Aø!A\0!\f\v A\ntA\x07k!\v AvAqr A\rvr\vß\v\b@ \0E\r\0 \0A\bk\" \0Ak(\0\"Axq\"\0j!@ Aq\r\0 AqE\r (\0\"k\"A\b(\0I\r \0 j!\0@@@A\b(\0 G@ (\f! AÿM@ (\b\"G\rA\bA\b(\0A~ Avwq6\0\f\v (!\x07 G@ (\b\" 6\f 6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v (\"AqAG\rA\b \x006\0 A~q6 \0Ar6 \x006\0\v 6\f 6\b\f\vA\0!\v \x07E\r\0@ (\"At\"(¸\n F@ A¸\nj 6\0 \rA\bA\b(\0A~ wq6\0\f\v@ \x07(F@ \x07 6\f\v \x07 6\v E\r\v \x076 (\"@ 6 6\v (\"E\r\0 6 6\v O\r\0 (\"AqE\r\0@@@@ AqE@A\xA0\b(\0 F@A\xA0\b 6\0A\bA\b(\0 \0j\"\x006\0 \0Ar6 A\b(\0G\rA\bA\x006\0A\bA\x006\0\vA\b(\0\"\x07 F@A\b 6\0A\bA\b(\0 \0j\"\x006\0 \0Ar6 \0 j \x006\0\v Axq \0j!\0 (\f! AÿM@ (\b\" F@A\bA\b(\0A~ Avwq6\0\f\v 6\f 6\b\f\v (!\b G@ (\b\" 6\f 6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v A~q6 \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@ (\"At\"(¸\n F@ A¸\nj 6\0 \rA\bA\b(\0A~ wq6\0\f\v@ \b(F@ \b 6\f\v \b 6\v E\r\v \b6 (\"@ 6 6\v (\"E\r\0 6 6\v \0Ar6 \0 j \x006\0 \x07G\r\0A\b \x006\0\v \0AÿM@ \0AøqA°\bj!A\b(\0\"A \0Avt\"\0qE@A\b \0 r6\0 \f\v (\b\v!\0 6\b \0 6\f 6\f \x006\b\vA! \0Aÿÿÿ\x07M@ \0A& \0A\bvg\"kvAq AtrA>s!\v 6 B\x007 AtA¸\nj!@A\b(\0\"A t\"qE@A\b r6\0 6\0A!A\b\f\v \0A AvkA\0 AG\x1Bt! (\0!@ \"(Axq \0F\r Av! At! Aqj\"(\"\r\0\v 6A! !A\b\v!\0 \"\f\v (\b\" 6\f 6\bA!\0A\b!A\0\v! j 6\0 6\f \0 j 6\0A¨\bA¨\b(\0Ak\"\0A \0\x1B6\0\v\v¸'\v#\0Ak\"\n$\0@@@@@@@@@@ \0AôM@A\b(\0\"A \0A\vjAøq \0A\vI\x1B\"Av\"\0v\"Aq@@ AsAq \0j\"At\"A°\bj\"\0 (¸\b\"(\b\"F@A\b A~ wq6\0\f\v \x006\f \0 6\b\v A\bj!\0 Ar6 j\" (Ar6\f\v\v A\b(\0\"\bM\r @@A \0t\"A\0 kr \0tqh\"At\"A°\bj\" (¸\b\"\0(\b\"F@A\b A~ wq\"6\0\f\v 6\f 6\b\v \0 Ar6 \0 j\"\x07 k\"Ar6 \0 j 6\0 \b@ \bAxqA°\bj!A\b(\0! A \bAvt\"qE@A\b r6\0 \f\v (\b\v! 6\b 6\f 6\f 6\b\v \0A\bj!\0A\b \x076\0A\b 6\0\f\v\vA\b(\0\"\vE\r \vhAt(¸\n\"(Axq k! !@@ (\"\0E@ (\"\0E\r\v \0(Axq k\" I\"\x1B! \0 \x1B! \0!\f\v\v (! (\f\"\0G@ (\b\" \x006\f \0 6\b\f\n\v (\" Aj (\"E\r Aj\v!@ !\x07 \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v \x07A\x006\0\f \vA! \0A¿K\r\0 \0A\vj\"Axq!A\b(\0\"\x07E\r\0A!\bA\0 k! \0Aôÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtkA>j!\b\v@@@ \bAt(¸\n\"E@A\0!\0\f\vA\0!\0 A \bAvkA\0 \bAG\x1Bt!@@ (Axq k\" O\r\0 ! \"\r\0A\0! !\0\f\v \0 (\" AvAqj(\"F\x1B \0 \x1B!\0 At! \r\0\v\v \0 rE@A\0!A \bt\"\0A\0 \0kr \x07q\"\0E\r \0hAt(¸\n!\0\v \0E\r\v@ \0(Axq k\" I! \x1B! \0 \x1B! \0(\" \0(\v\"\0\r\0\v\v E\r\0 A\b(\0 kO\r\0 (!\b (\f\"\0G@ (\b\" \x006\f \0 6\b\f\b\v (\" Aj (\"E\r Aj\v!@ ! \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v A\x006\0\f\x07\v A\b(\0\"M@A\b(\0!\0@ k\"AO@ \0 j\" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j\" (Ar6A\0!A\0!\vA\b 6\0A\b 6\0 \0A\bj!\0\f \v A\b(\0\"I@A\b k\"6\0A\xA0\bA\xA0\b(\0\"\0 j\"6\0 Ar6 \0 Ar6 \0A\bj!\0\f \vA\0!\0 A/j\"Aà\v(\0@Aè\v(\0\f\vAì\vB7\0Aä\vB\xA07\0Aà\v \nA\fjApqAتժs6\0Aô\vA\x006\0AÄ\vA\x006\0A \v\"j\"A\0 k\"\x07q\" M\r\bAÀ\v(\0\"@A¸\v(\0\"\b j\" \bM Ir\r \v@AÄ\v-\0\0AqE@@@@@A\xA0\b(\0\"@AÈ\v!\0@ \0(\0\"\b M@ \b \0(jI\r\v \0(\b\"\0\r\0\v\vA\0\"AF\r !Aä\v(\0\"\0Ak\" q@ k jA\0 \0kqj!\v M\rAÀ\v(\0\"\0@A¸\v(\0\" j\"\x07 M \0 \x07Ir\r\v \"\0 G\r\f\v k \x07q\"\" \0(\0 \0(jF\r !\0\v \0AF\r A0j M@ \0!\f\vAè\v(\0\" kjA\0 kq\"AF\r j! \0!\f\v AG\r\vAÄ\vAÄ\v(\0Ar6\0\v \"AFA\0\"\0AFr \0 Mr\r \0 k\" A(jM\r\vA¸\vA¸\v(\0 j\"\x006\0A¼\v(\0 \0I@A¼\v \x006\0\v@A\xA0\b(\0\"@AÈ\v!\0@ \0(\0\" \0(\"jF\r \0(\b\"\0\r\0\v\f\vA\b(\0\"\0A\0 \0 M\x1BE@A\b 6\0\vA\0!\0AÌ\v 6\0AÈ\v 6\0A¨\bA6\0A¬\bAà\v(\x006\0AÔ\vA\x006\0@ \0At\" A°\bj\"6¸\b 6¼\b \0Aj\"\0A G\r\0\vA\b A(k\"\0Ax kA\x07q\"k\"6\0A\xA0\b j\"6\0 Ar6 \0 jA(6A¤\bAð\v(\x006\0\f\v M Kr\r \0(\fA\bq\r \0 j6A\xA0\b Ax kA\x07q\"\0j\"6\0A\bA\b(\0 j\" \0k\"\x006\0 \0Ar6 jA(6A¤\bAð\v(\x006\0\f\vA\0!\0\f\vA\0!\0\f\vA\b(\0 K@A\b 6\0\v j!AÈ\v!\0@@ \0(\0\"G@ \0(\b\"\0\r\f\v\v \0-\0\fA\bqE\r\vAÈ\v!\0@@ \0(\0\" M@ \0(j\"I\r\v \0(\b!\0\f\v\vA\b A(k\"\0Ax kA\x07q\"k\"\x076\0A\xA0\b j\"6\0 \x07Ar6 \0 jA(6A¤\bAð\v(\x006\0 A' kA\x07qjA/k\"\0 \0 AjI\x1B\"A\x1B6 AÐ\v)\x007 AÈ\v)\x007\bAÐ\v A\bj6\0AÌ\v 6\0AÈ\v 6\0AÔ\vA\x006\0 Aj!\0@ \0A\x076 \0A\bj \0Aj!\0 I\r\0\v F\r\0 (A~q6 k\"Ar6 6\0 AÿM@ AøqA°\bj!\0A\b(\0\"A Avt\"qE@A\b r6\0 \0\f\v \0(\b\v! \0 6\b 6\fA\f!A\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v \x006 B\x007 \0AtA¸\nj!@@A\b(\0\"A \0t\"qE@A\b r6\0 6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0 Aqj\"(\"\r\0\v 6\v 6A\b! \"!\0A\f\f\v (\b\"\0 6\f 6\b \x006\bA\0!\0A!A\f\v j 6\0 j \x006\0\vA\b(\0\"\0 M\r\0A\b \0 k\"6\0A\xA0\bA\xA0\b(\0\"\0 j\"6\0 Ar6 \0 Ar6 \0A\bj!\0\f\vA\bA06\0A\0!\0\f\v \0 6\0 \0 \0( j6 Ax kA\x07qj\"\b Ar6 Ax kA\x07qj\" \bj\"k!\x07@A\xA0\b(\0 F@A\xA0\b 6\0A\bA\b(\0 \x07j\"\x006\0 \0Ar6\f\vA\b(\0 F@A\b 6\0A\bA\b(\0 \x07j\"\x006\0 \0Ar6 \0 j \x006\0\f\v (\"\0AqAF@ \0Axq! (\f!@ \0AÿM@ (\b\" F@A\bA\b(\0A~ \0Avwq6\0\f\v 6\f 6\b\f\v (!@ G@ (\b\"\0 6\f \x006\b\f\v@ (\"\0 Aj (\"\0E\r Aj\v!@ ! \0\"Aj! \0(\"\0\r\0 Aj! (\"\0\r\0\v A\x006\0\f\vA\0!\v E\r\0@ (\"\0At\"(¸\n F@ A¸\nj 6\0 \rA\bA\b(\0A~ \0wq6\0\f\v@ (F@ 6\f\v 6\v E\r\v 6 (\"\0@ \x006 \0 6\v (\"\0E\r\0 \x006 \0 6\v \x07 j!\x07 j\"(!\0\v \0A~q6 \x07Ar6 \x07j \x076\0 \x07AÿM@ \x07AøqA°\bj!\0A\b(\0\"A \x07Avt\"qE@A\b r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\f\vA! \x07Aÿÿÿ\x07M@ \x07A& \x07A\bvg\"\0kvAq \0AtrA>s!\v 6 B\x007 AtA¸\nj!\0@@A\b(\0\"A t\"qE@A\b r6\0 \0 6\0\f\v \x07A AvkA\0 AG\x1Bt! \0(\0!@ \"\0(Axq \x07F\r Av! At! \0 Aqj\"(\"\r\0\v 6\v \x006 6\f 6\b\f\v \0(\b\" 6\f \0 6\b A\x006 \x006\f 6\b\v \bA\bj!\0\f\v@ \bE\r\0@ (\"At\"(¸\n F@ A¸\nj \x006\0 \0\rA\b \x07A~ wq\"\x076\0\f\v@ \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 \b6 (\"@ \0 6 \x006\v (\"E\r\0 \0 6 \x006\v@ AM@ j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v Ar6 j\" Ar6 j 6\0 AÿM@ AøqA°\bj!\0A\b(\0\"A Avt\"qE@A\b r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v \x006 B\x007 \0AtA¸\nj!@@ \x07A \0t\"qE@A\b \x07r6\0 6\0 6\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0 Aqj\"\x07(\"\r\0\v \x07 6 6\v 6\f 6\b\f\v (\b\"\0 6\f 6\b A\x006 6\f \x006\b\v A\bj!\0\f\v@ E\r\0@ (\"At\"(¸\n F@ A¸\nj \x006\0 \0\rA\b \vA~ wq6\0\f\v@ (F@ \x006\f\v \x006\v \0E\r\v \0 6 (\"@ \0 6 \x006\v (\"E\r\0 \0 6 \x006\v@ AM@ j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v Ar6 j\" Ar6 j 6\0 \b@ \bAxqA°\bj!\0A\b(\0!A \bAvt\"\x07 qE@A\b \x07r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\vA\b 6\0A\b 6\0\v A\bj!\0\v \nAj$\0 \0\v¡\v\v }#\0A\xA0k\"\v$\0 \vA0jA\0A$ü\v\0@ G@ Al\"\fAjAt\"j*\0! \fAjAt\"j*\0! \b \fAt\"j j*\0\"8\0 \b j 8\0 \b j 8\0 \x07 Atj\"\rA\x006\f \r 8\b \r 8 \r 8\0@ \0E@ j-\0\0E\r\v \rA\b6\f\v \r At\"\fAr\"j-\0\0A\bt \fj-\0\0r \fAr\"j-\0\0Atr \fAr\"\fj-\0\0Atr6 \v At\"j*\0\"8 \v At\"j*\0\"8 \v \fAt\"j*\0\"8 \v At\"j*\0\"8 \vAà\0j\"\f \v*\"C\0\0\0À \v*\"C\0\0\0À C\0\0?8\0 \f \v*\" \v* \v*\" \v*8 \f \v*\" \v* \v*\" \v*8\b \f \v*\" \v* \v*\" \v*8\f \f \v*\"C\0\0\0À \v*\"C\0\0\0À C\0\0?8 \f \v*\" \v* \v*\" \v*8 \f \v*\" \v* \v*\" \v*8 \f \v*\" \v* \v*\" \v*8 \f \v*\"C\0\0\0À \v*\"C\0\0\0À C\0\0?8 j 8\0 j 8\0 j 8\0 j 8\0 \v j*\0\"80 \v j*\0\"8@ \v j*\0\"8P \n j 8\0 \n j 8\0 \n j 8\0 \v \f* \v*8 \f*\0 \v*0 \f*\f \v*48\0 \v \f* \v*8 \f* \v*0 \f* \v*48 \v \f* \v*8 \f*\b \v*0 \f* \v*48\b \v \f* \v*D \f*\0 \v*< \f*\f \v*@8\f \v \f* \v*D \f* \v*< \f* \v*@8 \v \f* \v*D \f*\b \v*< \f* \v*@8 \v \f* \v*P \f*\0 \v*H \f*\f \v*L8 \v \f* \v*P \f* \v*H \f* \v*L8 \v \f* \v*P \f*\b \v*H \f* \v*L8 \v* ! \v*\b! \v*! \r \v*\" \v*\0\" \v*\f\"\x1B \x1BC\0\0@ \v*\" \v*\" \x1B \v*\"C\0\0@6 \r \x1B C\0\0@ C\0\0@6 \r C\0\0@ C\0\0@6 Aj!\f\v\v \vA\xA0j$\0\v\0\v\v \0A\b\v");
|
|
25750
|
+
return s("\0asm\0\0\00\b``}}`|}`}`||`\v\0`\0`\0\0\x07aa\0\0\r\0\0\x07\x07\bAÀ¤\v\x07b\0c\0\rd\0\ne\0\ff\0\v\f\núT\rO| \0 \0¢\"\0 \0 \0¢\"¢ \0DiPîàBù>¢D'èÀV¿\xA0¢ DB:áSU¥?¢ \0D^\fýÿÿß¿¢D\0\0\0\0\0\0ð?\xA0\xA0\xA0¶\vT~@AÀ (\0\" \0B\x07|Bøÿÿÿ|\"BÿÿÿÿX@ §\"\0?\0AtM\r \0\0\r\vAÄ A06\0A\vAÀ \x006\0 \vK| \0 \0 \0¢\"¢\" ¢¢ D§F;ÍÆ>¢DtçÊâù\0*¿\xA0¢ D²ûn?¢Dw¬ËTUUÅ¿\xA0¢ \0\xA0\xA0¶\v¨\0@ A\bN@ \0D\0\0\0\0\0\0à¢!\0 AÿI@ Aÿ\x07k!\f\v \0D\0\0\0\0\0\0à¢!\0Aý AýO\x1BAþk!\f\v AxJ\r\0 \0D\0\0\0\0\0\0`¢!\0 A¸pK@ AÉ\x07j!\f\v \0D\0\0\0\0\0\0`¢!\0Aðh AðhM\x1BAj!\v \0 Aÿ\x07jB4¿¢\v
} \0¼\"AvAÿq\"AM} Aý\0M@ \0C\0\0\0\0\v} \0\"\0C\0\0\0KC\0\0\0Ë \0\"C\0\0\0?^@ \0 C\0\0¿\f\v \0 \"\0 C\0\0\0¿_E\r\0 \0C\0\0?\v\"\0 \0 A\0H\x1B \0\v\v!\0 \0C\0\0\0\0C\0\0\0\0 \0¼Aÿÿÿÿ\x07qAü\x07M\x1B\v+\0 \0 \0 \0CkÓ\r¼Cº/½Cuª*> \0C®å4¿C\0\0?\vÈ| \0C`B¢\r]A\0AÿA}C\0\0\0\0 \0¼\"AüF\r\0@ Aü\x07kAÿÿÿxM@ At\"E@#\0Ak\"C\0\0¿8\f *\fC\0\0\0\0\f\v Aü\x07F\r AxI A\0NqE@ \0 \0\"\0 \0\f\v \0C\0\0\0K¼AÜ\0k!\vA\n+\0 AÌùk\"A|qk¾» AvAðq\"+\b¢D\0\0\0\0\0\0ð¿\xA0\" ¢\"¢A\n+\0 ¢A\n+\0\xA0\xA0 ¢ Au·A\n+\0¢ +\b\xA0 \xA0\xA0¶!\0\v \0\vC\0\0@AC\0\0¨AC\0\0~CC\0\0?ü\0\" AL\x1B\" AÿN\x1B\vAÿq\vr \0¼\"Aÿÿÿq!@ AvAÿq\"E\r\0 Að\0M@ ArAñ\0 kv!\f\v AK@Aø!A\0!\f\v A\ntA\x07k!\v AvAqr A\rvr\v¬|\n}@ $G@ $A\fl\"\0Aj\"j*\0! \0A\bj\"j*\0! \0 \bj \0 j*\0\"8\0 \b j 8\0 \bj 8\0 $At\"\x1Bj \x1Bj\"*\x008\0 $At\"Ar\"At\"j j\"*\x008\0 Ar\"At\"%j %j\" *\x008\0 Ar\"!At\"&j &j\"\"*\x008\0 \0 \nj \0 j\"'*\x008\0 \nj j\"(*\x008\0 \n j j*\0\"8\0 \x07 \x1Bj j-\0\0 j-\0\0A\btr j-\0\0Atr !j-\0\0Atr6\0 \x07 j Atr6\0 *\0\" \"*\0\" *\0\" *\0\" \"C\0\0\0\0^@ \"! ! ! !\vC\0\0?!C\0\0\0\0!C\0\0\0\0!} C\0\0\0\0]@ ! ! ! !\v C\0\0? C\0\0?]\x1B\"¼\"Aÿÿÿÿ\x07q\"\0AüO@C\0\0\0\0CÚI@ A\0N\x1B \0AüF\rC\0\0\0\0 \f\v} \0Aÿÿÿ÷M@CÚÉ? \0AI\rCh!¢3 \x07 CÚÉ?\f\v A\0H@CÚÉ? C\0\0?C\0\0\0?\"\" \x07Ch!¢³\" \f\vC\0\0? C\0\0\0?\"\" \x07 ¼A`q¾\" \" \v\v\"!#\0Ak\"$\0@ ¼\"Aÿÿÿÿ\x07q\"\0AÚ¤úM@ \0AÌI\r »!\f\v \0AѧíM@ »!\v \0AãÛM@ A\0H@ \vD-DTû!ù?\xA0!\f\v \vD-DTû!ù¿\xA0!\f\vD-DTû! ÀD-DTû! @ A\0N\x1B \v\xA0!\f\v \0AÕãM@ \0AßÛ¿
M@ »!\v A\0H@ \vDÒ!3|Ù@\xA0!\f\v \vDÒ!3|ÙÀ\xA0!\f\vD-DTû!@D-DTû!À A\0H\x1B »\xA0!\f\v \0Aü\x07O@ !\f\v#\0Ak\"$\0@ ¼\")Aÿÿÿÿ\x07q\"\0AÚ¤îM@ »\"\f \fDÈÉm0_ä?¢D\0\0\0\0\0\x008C\xA0D\0\0\0\0\0\x008Ã\xA0\"\vD\0\0\0Pû!ù¿¢\xA0 \vDcba´Q¾¢\xA0\"\r9\b \vü!\0 \rD\0\0\0`û!é¿c@ \f \vD\0\0\0\0\0\0ð¿\xA0\"\vD\0\0\0Pû!ù¿¢\xA0 \vDcba´Q¾¢\xA09\b \0Ak!\0\f\v \rD\0\0\0`û!é?dE\r \f \vD\0\0\0\0\0\0ð?\xA0\"\vD\0\0\0Pû!ù¿¢\xA0 \vDcba´Q¾¢\xA09\b \0Aj!\0\f\v \0Aü\x07O@ »9\bA\0!\0\f\v \0 \0AvAk\"\0Atk¾»9\b A\bj!\"A\0!#\0A°k\"$\0 \0 \0AkAm\"A\0 A\0J\x1B\"Ahlj!A\xA0\n(\0\"A\0N@ Aj!\0 !@ AÀj Atj A\0H|D\0\0\0\0\0\0\0\0 At(°\n·\v9\0 Aj! Aj\" \0G\r\0\v\v Ak!\x1BA\0!\0 A\0 A\0J\x1B!@A\0!D\0\0\0\0\0\0\0\0!\v@ \" Atj+\0 AÀj \0 kAtj+\0¢ \v\xA0!\v Aj\"AG\r\0\v \0Atj \v9\0 \0 F \0Aj!\0E\r\0\vA/ k!*A0 k!# AtA°\nj!+ Ak!, !\0@@ \0Atj+\0!\vA\0! \0! \0A\0J@@ Aàj Atj \vD\0\0\0\0\0\0p>¢ü·\"\fD\0\0\0\0\0\0pÁ¢ \v\xA0ü6\0 AtjA\bk+\0 \f\xA0!\v Ak! Aj\" \0G\r\0\v\v \v \x1B\"\v \vD\0\0\0\0\0\0À?¢D\0\0\0\0\0\0 À¢\xA0\"\v \vü\" ·¡!\v@@@ \x1BA\0L\"-E@ \0At j\" (Ü\" #u\" #tk\"6Ü j! *u\f\v \x1B\r \0At j(ÜAu\v\"!A\0L\r\f\vA!! \vD\0\0\0\0\0\0à?f\r\0A\0!!\f\vA\0!A\0!A! \0A\0J@@ Aàj Atj\".(\0!@ . Aÿÿÿ\x07 E\rA\b\v k6\0A!A\0\f\vA\0!A\v! Aj\" \0G\r\0\v\v@ -\r\0Aÿÿÿ!@@ ,\0\vAÿÿÿ!\v \0At j\" (Ü q6Ü\v Aj! !AG\r\0D\0\0\0\0\0\0ð? \v¡!\vA!! \r\0 \vD\0\0\0\0\0\0ð? \x1B¡!\v\v \vD\0\0\0\0\0\0\0\0a@A\0! \0!@ \0 L\r\0@ Aàj Ak\"Atj(\0 r! J\r\0\v E\r\0@ \x1BAk!\x1B Aàj \0Ak\"\0Atj(\0E\r\0\v\f\vA!@ \"Aj! Aàj kAtj(\0E\r\0\v \0 j!@ AÀj \0Aj\"\0Atj + \0Atj(\0·9\0A\0!D\0\0\0\0\0\0\0\0!\v@ \" Atj+\0 AÀj \0 kAtj+\0¢ \v\xA0!\v Aj\"AG\r\0\v \0Atj \v9\0 \0 H\r\0\v !\0\f\v\v@ \vA k\"\vD\0\0\0\0\0\0pAf@ Aàj \0Atj \vD\0\0\0\0\0\0p>¢ü\"·D\0\0\0\0\0\0pÁ¢ \v\xA0ü6\0 \0Aj!\0 !\x1B\f\v \vü!\v Aàj \0Atj 6\0\vD\0\0\0\0\0\0ð? \x1B!\v \0A\0N@ \0!@ \"Atj \v Aàj Atj(\0·¢9\0 Ak! \vD\0\0\0\0\0\0p>¢!\v \r\0\vA\0! \0!@ J\x1B!\x1B \0 k! Atj!\"A\0!D\0\0\0\0\0\0\0\0!\v@ At\"#+ \" #j+\0¢ \v\xA0!\v \x1BG Aj!\r\0\v A\xA0j Atj \v9\0 Ak! \0 G Aj!\r\0\v\vD\0\0\0\0\0\0\0\0!\v \0A\0N@@ \0\"Ak!\0 \v A\xA0j Atj+\0\xA0!\v \r\0\v\v \v \v !\x1B9\0 A°j$\0 A\x07q!\0 +\0!\v )A\0H@ \v9\bA\0 \0k!\0\f\v \v9\b\v Aj$\0 +\b!\v@@@@ \0AqAk\0\v \v!\f\v \v!\f\v \v!\f\v \v!\v Aj$\0 C½75^@ ! ! !\v \"C\0\0\0\0^@ ! ! !\v@ C\0\0\0\0`@ !\f\vC\0\0? \" C\0\0\0\0`\x1B!C\0\0? \" C\0\0\0\0`\x1B!\v C\0\0\0?C\0\0\0?C\0\0C! \x07 %j C\0\0\0?C\0\0\0?C\0\0CC\0\0CüAt r C\0\0CüAtr6\0 '*\0\b!\0 \x07 &j \0 (*\0\bA\btr \bAtr CÛI@C\0\0CC\0\0CüAtr6\0 $Aj!$\f\v\v\vß\v\b@ \0E\r\0 \0A\bk\" \0Ak(\0\"Axq\"\0j!@ Aq\r\0 AqE\r (\0\"k\"AØ (\0I\r \0 j!\0@@@AÜ (\0 G@ (\f! AÿM@ (\b\"G\rAÈ AÈ (\0A~ Avwq6\0\f\v (!\x07 G@ (\b\" 6\f 6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v (\"AqAG\rAÐ \x006\0 A~q6 \0Ar6 \x006\0\v 6\f 6\b\f\vA\0!\v \x07E\r\0@ (\"At\"(ø\" F@ Aø\"j 6\0 \rAÌ AÌ (\0A~ wq6\0\f\v@ \x07(F@ \x07 6\f\v \x07 6\v E\r\v \x076 (\"@ 6 6\v (\"E\r\0 6 6\v O\r\0 (\"AqE\r\0@@@@ AqE@Aà (\0 F@Aà 6\0AÔ AÔ (\0 \0j\"\x006\0 \0Ar6 AÜ (\0G\rAÐ A\x006\0AÜ A\x006\0\vAÜ (\0\"\x07 F@AÜ 6\0AÐ AÐ (\0 \0j\"\x006\0 \0Ar6 \0 j \x006\0\v Axq \0j!\0 (\f! AÿM@ (\b\" F@AÈ AÈ (\0A~ Avwq6\0\f\v 6\f 6\b\f\v (!\b G@ (\b\" 6\f 6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v A~q6 \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@ (\"At\"(ø\" F@ Aø\"j 6\0 \rAÌ AÌ (\0A~ wq6\0\f\v@ \b(F@ \b 6\f\v \b 6\v E\r\v \b6 (\"@ 6 6\v (\"E\r\0 6 6\v \0Ar6 \0 j \x006\0 \x07G\r\0AÐ \x006\0\v \0AÿM@ \0AøqAð j!AÈ (\0\"A \0Avt\"\0qE@AÈ \0 r6\0 \f\v (\b\v!\0 6\b \0 6\f 6\f \x006\b\vA! \0Aÿÿÿ\x07M@ \0A& \0A\bvg\"kvAq AtrA>s!\v 6 B\x007 AtAø\"j!@AÌ (\0\"A t\"qE@AÌ r6\0 6\0A!A\b\f\v \0A AvkA\0 AG\x1Bt! (\0!@ \"(Axq \0F\r Av! At! Aqj\"(\"\r\0\v 6A! !A\b\v!\0 \"\f\v (\b\" 6\f 6\bA!\0A\b!A\0\v! j 6\0 6\f \0 j 6\0Aè Aè (\0Ak\"\0A \0\x1B6\0\v\v¸'\v#\0Ak\"\n$\0@@@@@@@@@@ \0AôM@AÈ (\0\"A \0A\vjAøq \0A\vI\x1B\"Av\"\0v\"Aq@@ AsAq \0j\"At\"Að j\"\0 (ø \"(\b\"F@AÈ A~ wq6\0\f\v \x006\f \0 6\b\v A\bj!\0 Ar6 j\" (Ar6\f\v\v AÐ (\0\"\bM\r @@A \0t\"A\0 kr \0tqh\"At\"Að j\" (ø \"\0(\b\"F@AÈ A~ wq\"6\0\f\v 6\f 6\b\v \0 Ar6 \0 j\"\x07 k\"Ar6 \0 j 6\0 \b@ \bAxqAð j!AÜ (\0! A \bAvt\"qE@AÈ r6\0 \f\v (\b\v! 6\b 6\f 6\f 6\b\v \0A\bj!\0AÜ \x076\0AÐ 6\0\f\v\vAÌ (\0\"\vE\r \vhAt(ø\"\"(Axq k! !@@ (\"\0E@ (\"\0E\r\v \0(Axq k\" I\"\x1B! \0 \x1B! \0!\f\v\v (! (\f\"\0G@ (\b\" \x006\f \0 6\b\f\n\v (\" Aj (\"E\r Aj\v!@ !\x07 \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v \x07A\x006\0\f \vA! \0A¿K\r\0 \0A\vj\"Axq!AÌ (\0\"\x07E\r\0A!\bA\0 k! \0Aôÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtkA>j!\b\v@@@ \bAt(ø\"\"E@A\0!\0\f\vA\0!\0 A \bAvkA\0 \bAG\x1Bt!@@ (Axq k\" O\r\0 ! \"\r\0A\0! !\0\f\v \0 (\" AvAqj(\"F\x1B \0 \x1B!\0 At! \r\0\v\v \0 rE@A\0!A \bt\"\0A\0 \0kr \x07q\"\0E\r \0hAt(ø\"!\0\v \0E\r\v@ \0(Axq k\" I! \x1B! \0 \x1B! \0(\" \0(\v\"\0\r\0\v\v E\r\0 AÐ (\0 kO\r\0 (!\b (\f\"\0G@ (\b\" \x006\f \0 6\b\f\b\v (\" Aj (\"E\r Aj\v!@ ! \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v A\x006\0\f\x07\v AÐ (\0\"M@AÜ (\0!\0@ k\"AO@ \0 j\" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j\" (Ar6A\0!A\0!\vAÐ 6\0AÜ 6\0 \0A\bj!\0\f \v AÔ (\0\"I@AÔ k\"6\0Aà Aà (\0\"\0 j\"6\0 Ar6 \0 Ar6 \0A\bj!\0\f \vA\0!\0 A/j\"A\xA0$(\0@A¨$(\0\f\vA¬$B7\0A¤$B\xA07\0A\xA0$ \nA\fjApqAتժs6\0A´$A\x006\0A$A\x006\0A \v\"j\"A\0 k\"\x07q\" M\r\bA$(\0\"@Aø#(\0\"\b j\" \bM Ir\r \v@A$-\0\0AqE@@@@@Aà (\0\"@A$!\0@ \0(\0\"\b M@ \b \0(jI\r\v \0(\b\"\0\r\0\v\vA\0\"AF\r !A¤$(\0\"\0Ak\" q@ k jA\0 \0kqj!\v M\rA$(\0\"\0@Aø#(\0\" j\"\x07 M \0 \x07Ir\r\v \"\0 G\r\f\v k \x07q\"\" \0(\0 \0(jF\r !\0\v \0AF\r A0j M@ \0!\f\vA¨$(\0\" kjA\0 kq\"AF\r j! \0!\f\v AG\r\vA$A$(\0Ar6\0\v \"AFA\0\"\0AFr \0 Mr\r \0 k\" A(jM\r\vAø#Aø#(\0 j\"\x006\0Aü#(\0 \0I@Aü# \x006\0\v@Aà (\0\"@A$!\0@ \0(\0\" \0(\"jF\r \0(\b\"\0\r\0\v\f\vAØ (\0\"\0A\0 \0 M\x1BE@AØ 6\0\vA\0!\0A$ 6\0A$ 6\0Aè A6\0Aì A\xA0$(\x006\0A$A\x006\0@ \0At\" Að j\"6ø 6ü \0Aj\"\0A G\r\0\vAÔ A(k\"\0Ax kA\x07q\"k\"6\0Aà j\"6\0 Ar6 \0 jA(6Aä A°$(\x006\0\f\v M Kr\r \0(\fA\bq\r \0 j6Aà Ax kA\x07q\"\0j\"6\0AÔ AÔ (\0 j\" \0k\"\x006\0 \0Ar6 jA(6Aä A°$(\x006\0\f\vA\0!\0\f\vA\0!\0\f\vAØ (\0 K@AØ 6\0\v j!A$!\0@@ \0(\0\"G@ \0(\b\"\0\r\f\v\v \0-\0\fA\bqE\r\vA$!\0@@ \0(\0\" M@ \0(j\"I\r\v \0(\b!\0\f\v\vAÔ A(k\"\0Ax kA\x07q\"k\"\x076\0Aà j\"6\0 \x07Ar6 \0 jA(6Aä A°$(\x006\0 A' kA\x07qjA/k\"\0 \0 AjI\x1B\"A\x1B6 A$)\x007 A$)\x007\bA$ A\bj6\0A$ 6\0A$ 6\0A$A\x006\0 Aj!\0@ \0A\x076 \0A\bj \0Aj!\0 I\r\0\v F\r\0 (A~q6 k\"Ar6 6\0 AÿM@ AøqAð j!\0AÈ (\0\"A Avt\"qE@AÈ r6\0 \0\f\v \0(\b\v! \0 6\b 6\fA\f!A\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v \x006 B\x007 \0AtAø\"j!@@AÌ (\0\"A \0t\"qE@AÌ r6\0 6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0 Aqj\"(\"\r\0\v 6\v 6A\b! \"!\0A\f\f\v (\b\"\0 6\f 6\b \x006\bA\0!\0A!A\f\v j 6\0 j \x006\0\vAÔ (\0\"\0 M\r\0AÔ \0 k\"6\0Aà Aà (\0\"\0 j\"6\0 Ar6 \0 Ar6 \0A\bj!\0\f\vAÄ A06\0A\0!\0\f\v \0 6\0 \0 \0( j6 Ax kA\x07qj\"\b Ar6 Ax kA\x07qj\" \bj\"k!\x07@Aà (\0 F@Aà 6\0AÔ AÔ (\0 \x07j\"\x006\0 \0Ar6\f\vAÜ (\0 F@AÜ 6\0AÐ AÐ (\0 \x07j\"\x006\0 \0Ar6 \0 j \x006\0\f\v (\"\0AqAF@ \0Axq! (\f!@ \0AÿM@ (\b\" F@AÈ AÈ (\0A~ \0Avwq6\0\f\v 6\f 6\b\f\v (!@ G@ (\b\"\0 6\f \x006\b\f\v@ (\"\0 Aj (\"\0E\r Aj\v!@ ! \0\"Aj! \0(\"\0\r\0 Aj! (\"\0\r\0\v A\x006\0\f\vA\0!\v E\r\0@ (\"\0At\"(ø\" F@ Aø\"j 6\0 \rAÌ AÌ (\0A~ \0wq6\0\f\v@ (F@ 6\f\v 6\v E\r\v 6 (\"\0@ \x006 \0 6\v (\"\0E\r\0 \x006 \0 6\v \x07 j!\x07 j\"(!\0\v \0A~q6 \x07Ar6 \x07j \x076\0 \x07AÿM@ \x07AøqAð j!\0AÈ (\0\"A \x07Avt\"qE@AÈ r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\f\vA! \x07Aÿÿÿ\x07M@ \x07A& \x07A\bvg\"\0kvAq \0AtrA>s!\v 6 B\x007 AtAø\"j!\0@@AÌ (\0\"A t\"qE@AÌ r6\0 \0 6\0\f\v \x07A AvkA\0 AG\x1Bt! \0(\0!@ \"\0(Axq \x07F\r Av! At! \0 Aqj\"(\"\r\0\v 6\v \x006 6\f 6\b\f\v \0(\b\" 6\f \0 6\b A\x006 \x006\f 6\b\v \bA\bj!\0\f\v@ \bE\r\0@ (\"At\"(ø\" F@ Aø\"j \x006\0 \0\rAÌ \x07A~ wq\"\x076\0\f\v@ \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 \b6 (\"@ \0 6 \x006\v (\"E\r\0 \0 6 \x006\v@ AM@ j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v Ar6 j\" Ar6 j 6\0 AÿM@ AøqAð j!\0AÈ (\0\"A Avt\"qE@AÈ r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v \x006 B\x007 \0AtAø\"j!@@ \x07A \0t\"qE@AÌ \x07r6\0 6\0 6\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0 Aqj\"\x07(\"\r\0\v \x07 6 6\v 6\f 6\b\f\v (\b\"\0 6\f 6\b A\x006 6\f \x006\b\v A\bj!\0\f\v@ E\r\0@ (\"At\"(ø\" F@ Aø\"j \x006\0 \0\rAÌ \vA~ wq6\0\f\v@ (F@ \x006\f\v \x006\v \0E\r\v \0 6 (\"@ \0 6 \x006\v (\"E\r\0 \0 6 \x006\v@ AM@ j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v Ar6 j\" Ar6 j 6\0 \b@ \bAxqAð j!\0AÜ (\0!A \bAvt\"\x07 qE@AÈ \x07r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\vAÜ 6\0AÐ 6\0\v A\bj!\0\v \nAj$\0 \0\v\0\v\vË\0A\b\v÷¾óøyìaö?Þª÷{Õ¿=¯Jíqõ?ÛmÀ§ð¾Ò¿°ðð9ô?g:Q®Ð¿
¸°Éó?é$¦Ø1Ë¿¥d\f\ró?XwÀ\nOWÆ¿\xA0\v{\"^ò?\0Ç+ªÁ¿?4JJ»ñ?^ÎvNº¿ºåðX#ñ?ÌaZ<±¿§\0A?ð?\fá8ôR¢¿\0\0\0\0\0\0ð?\0\0\0\0\0\0\0\0¬Gý`î?Yò]ª¥ª?\xA0j³¤ì?´.6ªS^¼?æüjW6 ë?\bÛ wå&Å?-ª¡cÑÂé?pG\"\rÂË?íAxæè?á~\xA0ÈÑ?bHSõÜgç? î¶W0Ô?ï9úþB.æ?4¸H£Ð¿j\và\v[WÕ?#A\nòþÿß¿\0\0\0\0\0\0\0\0\0\0\0\0ù¢\0DNn\0ü)\0ÑW'\0Ý4õ\0bÛÀ\0<\0AC\0cQþ\0»Þ«\0·aÅ\0:n$\0ÒMB\0Ià\0 ê.\0Ñ\0ëþ\0)±\0è>§\0õ5\0D».\0é\0´&p\0A~_\0Ö9\0S9\0ô9\0_\0(ù½\0ø;\0Þÿ\0\0/ï\0\nZ\0mm\0Ï~6\0 Ë'\0FO·\0f?\0-ê_\0º'u\0åëÇ\0={ñ\0÷9\x07\0R\0ûkê\0±_\0\b]\x000V\0{üF\0ð«k\0 ¼Ï\x006ô\0ã©\0^a\0\b\x1Bæ\0
e\0\xA0_\0@h\0Øÿ\0'sM\01\0ÊV\0ɨs\0{â`\0kÀ\0ÄG\0ÍgÃ\0 èÜ\0Y*\0vÄ\0¦\0D¯Ý\0WÑ\0¥>\0\x07ÿ\x003~?\0Â2è\0OÞ\0»}2\0&=Ã\0kï\0ø^\x005:\0òÊ\0ñ\0|!\0j$|\0Õnú\x000-w\0;C\0µÆ\0Ã\0ÄÂ\0,MA\0\f\0]\0}F\0ãq-\0Æ\x003b\0\0´Ò|\0´§\x007UÕ\0×>ö\0£\0Mvü\0d*\0p׫\0c|ø\0z°W\0ç\0ÀIV\0;ÖÙ\0§8\0$#Ë\0Öw\0ZT#\0\0¹\0ñ\n\x1B\0Îß\01ÿ\0fj\0Wa\0¬ûG\0~Ø\0\"e·\x002è\0æ¿`\0ïÄÍ\0l6 \0]?Ô\0Þ×\0X;Þ\0Þ\0Ò\"(\0(è\0âXM\0ÆÊ2\0\bã\0à}Ë\0ÀP\0ó§\0à[\0.4\0b\0H\0õ[\0°\0éò\0HJC\0gÓ\0ªÝØ\0®_B\0jaÎ\0\n(¤\0Ó´\0¦ò\0\\w\0£Â\0a<\0sx\0¯Z\0o×½\0-¦c\0ô¿Ë\0ï\0&Ág\0UÊE\0ÊÙ6\0(¨Ò\0Âa\0Éw\0&\0F\0ÄYÄ\0ÈÅD\0M²\0\0ó\0ÔC\0)Iå\0ýÕ\0\0¾ü\0Ì\0pÎî\0>õ\0ìñ\0³çÃ\0Çø(\0\0Áq>\0. ³\0\vEó\0\0« {\0.µ\0GÂ\0{2/\0\fUm\0r§\0kç\x001Ë\0yJ\0Ayâ\0ôß\0è\0âæ\01\0ík\0__6\0»ý\0H´\0g¤l\0qrB\0]2\0¸\0¼å \01%\0÷t9\x000\0\r\f\0K\bh\0,îX\0Gª\0tç\0½Ö$\0÷}¦\0nHr\0ï\0¦\0´ö\0ÑSQ\0Ï\nò\0 3\0õK~\0²ch\0Ý>_\0@]\0
\0UR)\x007dÀ\0mØ\x002H2\0[Lu\0NqÔ\0ETn\0\v Á\0*õi\0fÕ\0'\x07\0]P\0´;Û\0êvÅ\0ù\0Ik}\0'º\0i)\0ÆÌ¬\0T\0âj\0Ù\0,rP\0¤¾\0w\x07\0ó0p\0\0ü'\0êq¨\0fÂI\0dà=\0Ý\0£?\0Cý\0\r\x001AÞ\09\0Ýp\0·ç\0\bß;\07+\0\\\xA0\0Z\0\0èØ\0l¯\0ÛÿK\x008\0Yv\0b¥\0aË»\0ǹ\0@½\0Òò\0Iu'\0ë¶ö\0Û\"»\0\nª\0&/\0dv\0 ;3\0\0Q:ª\0£Â\0¯í®\0\\&\0mÂM\0-z\0ÀV\0?\0 ðö\0+@\0m1\x009´\x07\0\f \0ØÃ[\0õÄ\0ÆK\0NÊ¥\0§7Í\0æ©6\0«\0ÝBh\0cÞ\0vï\0hR\0üÛ7\0®¡«\0ß1\0\0®¡\0\fûÚ\0dMf\0í·\0)e0\0WV¿\0Gÿ:\0jù¹\0u¾ó\0(ß\0«0\0fö\0Ë\0ú\"\0Ùä\0=³¤\0W\x1B\x006Í \0NBé\0¾¤\x003#µ\0ðª\0Oe¨\0ÒÁ¥\0\v?\0[xÍ\0#ùv\0{\0r\0ƦS\0onâ\0ïë\0\0JX\0ÄÚ·\0ªfº\0vÏÏ\0Ñ\0±ñ-\0Á\0Ãw\0HÚ\0÷]\xA0\0Æô\0¬ð/\0Ýì\0?\\¼\0ÐÞm\0Ç\0*Û¶\0£%:\0\0¯\0S\0¶W\0)-´\0K~\0Ú\x07§\0vª\0{Y¡\0*\0Ü·-\0úåý\0Ûþ\0¾ý\0ävl\0©ü\0>p\0
n\0ýÿ\0(>\x07\0ag3\0*\0M½ê\0³ç¯\0mn\0g9\x001¿[\0×H\x000ß\0Ç-C\0%a5\0ÉpÎ\x000˸\0¿lý\0¤\0¢\0lä\0ZÝ\xA0\0!oG\0bÒ\0¹\\\0paI\0kVà\0R\0PU7\0Õ·\x003ñÄ\0n_\0]0ä\0
.©\0²Ã\0¡26\0\b·¤\0ê±Ô\0÷!\0iä\0'ÿw\0\f\0@-\0OÍ\xA0\0 ¥\0³¢Ó\0/]\n\0´ùB\0ÚË\0}¾Ð\0ÛÁ\0«½\0Ê¢\0\bj\\\0.U\0'\0U\0ð\0á\x07\0\vd\0A\0¾Þ\0Úý*\0k%¶\0{4\0óþ\0¹¿\0hjO\0J*¨\0OÄZ\0-ø¼\0×Z\0ôÇ\0\rM\0 :¦\0¤W_\0?±\08\0Ì \0qÝ\0ÉÞ¶\0¿`õ\0Me\0\x07k\0°¬\0²ÀÐ\0QUH\0û\0rÃ\0£;\0À@5\0Ü{\0àEÌ\0N)ú\0ÖÊÈ\0èóA\0|dÞ\0dØ\0Ù¾1\0¤Ã\0wXÔ\0iãÅ\0ðÚ\0º:<\0FF\0Uu_\0Ò½õ\0nÆ\0¬.]\0Dí\0>B\0aÄ\0)ýé\0çÖó\0\"|Ê\0o5\0\bàÅ\0ÿ×\0njâ\0°ýÆ\0\bÁ\0|]t\0k²\0Ín\0>r{\0Æj\0÷Ï©\0)sß\0µÉº\0·\0Q\0â²\r\0tº$\0å}`\0tØ\0\r,\0\f\0~f\0)\0zv\0ýý¾\0VEï\0Ù~6\0ìÙ\0º¹\0Äü\x001¨'\0ñnÃ\0Å6\0بV\0´¨µ\0ÏÌ\0-\0oW4\0,V\0Îã\0Ö ¹\0k^ª\0>*\0_Ì\0ý\vJ\0áôû\0;m\0â,\0éÔ\0ü´©\0ïîÑ\0.5É\0/9a\x008!D\0\x1BÙÈ\0ü\n\0ûJj\0/Ø\0S´\0N\0T\"Ì\0*UÜ\0ÀÆÖ\0\v\0p¸\0id\0&Z`\0?Rî\0\0ôµ\0üËõ\x004¼-\x004¼î\0è]Ì\0Ý^`\0g\03ï\0ɸ\0aX\0áW¼\0QÆ\0Ø>\0ÝqH\0-Ý\0¯¡\0!,F\0Yó×\0Ùz\0TÀ\0Oú\0Vü\0åy®\0\"6\x008\"\0gÜ\0Uèª\0&8\0Êç\0Q\r¤\03±\0©×\0iH\0e²ð\0§\0L\0ùÑ6\0!³\0{J\0Ï!\0@Ü\0ÜGU\0át:\0gëB\0þß\0^Ô_\0{g¤\0º¬z\0Uö¢\0+#\0AºU\0Yn\b\0!*\x009G\0ãæ\0åÔ\0Iû@\0ÿVé\0Ê\0ÅY\0ú+\0ÓÁÅ\0ÅÏ\0ÛZ®\0GÅ\0
Cb\0!;\0,y\0a\0*L{\0,\0C¿\0&\0x<\0¨Ää\0åÛ{\0Ä:Â\0&ôê\0÷g\0\r¿\0e£+\0=±\0½|\v\0¤QÜ\0'Ýc\0iáÝ\0\0¨)\0hÎ(\0 í´\0D \0NÊ\0pc\0~|#\0¹2\0§õ\0Vç\0!ñ\b\0µ*\0o~M\0¥Q\0µù«\0ßÖ\0Ýa\06\0Ä:\0¢¡\0rím\x009z\0¸©\0k2\\\0F'[\0\x004í\0Ò\0w\0üôU\0YM\0àq\0A \v=@û!ù?\0\0\0\0-Dt>\0\0\0Fø<\0\0\0`QÌx;\0\0\0\x1Bð9\0\0\0@ %z8\0\0\0\"ã6\0\0\0\0ói5\0AÀ \v@");
|
|
25746
25751
|
}
|
|
25747
25752
|
function _(e) {
|
|
25748
25753
|
return e;
|
|
@@ -25803,20 +25808,24 @@ function hy() {
|
|
|
25803
25808
|
return te(), t = u ? n : new Promise((e, t) => {
|
|
25804
25809
|
c = e;
|
|
25805
25810
|
}), t;
|
|
25806
|
-
}),
|
|
25811
|
+
}), gy.apply(this, arguments);
|
|
25807
25812
|
}
|
|
25808
25813
|
//#endregion
|
|
25809
25814
|
//#region build/five/gaussian-splatting/util/renderData.js
|
|
25810
|
-
var
|
|
25811
|
-
function
|
|
25812
|
-
return
|
|
25815
|
+
var _y = null;
|
|
25816
|
+
function vy() {
|
|
25817
|
+
return _y || (_y = hy()), _y;
|
|
25818
|
+
}
|
|
25819
|
+
var yy = null;
|
|
25820
|
+
function by() {
|
|
25821
|
+
return yy || (yy = new fy()), yy;
|
|
25813
25822
|
}
|
|
25814
|
-
var
|
|
25823
|
+
var xy = class {
|
|
25815
25824
|
static warmupWasm() {
|
|
25816
|
-
|
|
25825
|
+
vy();
|
|
25817
25826
|
}
|
|
25818
25827
|
constructor(e, t = 0) {
|
|
25819
|
-
this.dataChanged = !1, this.transformsChanged = !1, this.maxShDegree = 0, this.initialBuildComplete = !1, this.pendingInitialBuildCount = 0, this.disposed = !1, this.resolveReadyPromise = null, this.objectsInOrder = [], this.generation = t, this.readyPromise = new Promise((e) => {
|
|
25828
|
+
this.dataChanged = !1, this.transformsChanged = !1, this.maxShDegree = 0, this.initialBuildComplete = !1, this.pendingInitialBuildCount = 0, this.sortDataReleased = !1, this.aggregatedDataReleased = !1, this.shDataReleased = !1, this.indexDataReleased = !1, this.disposed = !1, this.resolveReadyPromise = null, this.objectsInOrder = [], this.generation = t, this.readyPromise = new Promise((e) => {
|
|
25820
25829
|
this.resolveReadyPromise = e;
|
|
25821
25830
|
});
|
|
25822
25831
|
let n = 0, r = 0;
|
|
@@ -25826,23 +25835,23 @@ var vy = class {
|
|
|
25826
25835
|
this.splatIndices.set(e, r), this.offsets.set(e, n), i.set(n, e);
|
|
25827
25836
|
let t = e.gsViewLayerKey || e.uuid, a = this.layerKeyToIndex.get(t);
|
|
25828
25837
|
a === void 0 && (a = this.layerKeys.length, this.layerKeys.push(t), this.layerKeyToIndex.set(t, a)), this.objectLayerIndices.set(e, a), n += e.numPoints, r++, this.objectsInOrder.push(e);
|
|
25829
|
-
}), this.numPoints = n, this.pendingInitialBuildCount = e.length, this.initialBuildComplete = this.pendingInitialBuildCount === 0, this.width = 2048, this.height = Math.ceil(
|
|
25838
|
+
}), this.numPoints = n, this.pendingInitialBuildCount = e.length, this.initialBuildComplete = this.pendingInitialBuildCount === 0, this.width = 2048, this.height = Math.ceil(this.numPoints / this.width), this.data = new Uint32Array(this.width * this.height * 4), this.transformsWidth = 5, this.transformsHeight = i.size, this.transforms = new Float32Array(this.transformsWidth * this.transformsHeight * 4), this.transformIndicesWidth = 1024, this.transformIndicesHeight = Math.ceil(this.numPoints / this.transformIndicesWidth), this.transformIndices = new Uint32Array(this.transformIndicesWidth * this.transformIndicesHeight), this.layerIndicesWidth = 1024, this.layerIndicesHeight = Math.ceil(this.numPoints / this.layerIndicesWidth), this.layerIndices = new Uint32Array(this.layerIndicesWidth * this.layerIndicesHeight), this.positions = new Float32Array(this.numPoints * 3), this.rotations = new Float32Array(this.numPoints * 4), this.scales = new Float32Array(this.numPoints * 3);
|
|
25830
25839
|
let a = 0;
|
|
25831
25840
|
e.forEach((e) => {
|
|
25832
25841
|
e.maxSHDegree > a && (a = e.maxSHDegree);
|
|
25833
25842
|
}), this.maxShDegree = a, a >= 1 && (this.sh1 = new Float32Array(this.numPoints * 9)), a >= 2 && (this.sh2 = new Float32Array(this.numPoints * 15)), a >= 3 && (this.sh3 = new Float32Array(this.numPoints * 21)), e.forEach((e) => {
|
|
25834
25843
|
let t = this.offsets.get(e);
|
|
25835
25844
|
e.sh1 && this.sh1 && this.sh1.set(e.sh1, t * 9), e.sh2 && this.sh2 && this.sh2.set(e.sh2, t * 15), e.sh3 && this.sh3 && this.sh3.set(e.sh3, t * 21);
|
|
25836
|
-
}), this.worker =
|
|
25845
|
+
}), this.worker = by(), this.worker.onmessage = (e) => {
|
|
25837
25846
|
if (!this.disposed && e.data.response) {
|
|
25838
25847
|
let t = e.data.response, n = i.get(t.offset);
|
|
25839
25848
|
if (!n) return;
|
|
25840
25849
|
this.updateTransform(n);
|
|
25841
25850
|
let r = this.splatIndices.get(n), a = this.objectLayerIndices.get(n);
|
|
25842
25851
|
for (let e = 0; e < n.numPoints; e++) this.transformIndices[t.offset + e] = r, this.layerIndices[t.offset + e] = a;
|
|
25843
|
-
this.data.set(t.data, t.offset *
|
|
25852
|
+
this.data.set(t.data, t.offset * 4), n.reattach(t.positions, t.rotations, t.scales, t.colors, t.selection), this.positions.set(t.worldPositions, t.offset * 3), this.rotations.set(t.worldRotations, t.offset * 4), this.scales.set(t.worldScales, t.offset * 3), n.selectedChanged = !1, this.dataChanged = !0;
|
|
25844
25853
|
}
|
|
25845
|
-
},
|
|
25854
|
+
}, vy().then((e) => {
|
|
25846
25855
|
if (this.disposed) {
|
|
25847
25856
|
this.completeInitialBuild();
|
|
25848
25857
|
return;
|
|
@@ -25858,6 +25867,36 @@ var vy = class {
|
|
|
25858
25867
|
let t = this.splatIndices.get(e);
|
|
25859
25868
|
this.transforms.set(e.matrixWorld.elements, t * 20), this.transforms[t * 20 + 16] = e.selected ? 1 : 0, e.transformChanged = !1, e.selectedChanged = !1, this.transformsChanged = !0;
|
|
25860
25869
|
}
|
|
25870
|
+
releaseSortData() {
|
|
25871
|
+
this.sortDataReleased || (this.positions = new Float32Array(), this.rotations = new Float32Array(), this.scales = new Float32Array(), this.sortDataReleased = !0);
|
|
25872
|
+
}
|
|
25873
|
+
releaseAggregatedData() {
|
|
25874
|
+
this.aggregatedDataReleased || (this.data = new Uint32Array(), this.indexDataReleased || this.releaseIndexData(), this.shDataReleased || this.releaseSHData(), this.aggregatedDataReleased = !0);
|
|
25875
|
+
}
|
|
25876
|
+
releaseSHData() {
|
|
25877
|
+
this.shDataReleased || (this.sh1 = void 0, this.sh2 = void 0, this.sh3 = void 0, this.shDataReleased = !0);
|
|
25878
|
+
}
|
|
25879
|
+
releaseIndexData() {
|
|
25880
|
+
this.indexDataReleased || (this.transformIndices = new Uint32Array(), this.layerIndices = new Uint32Array(), this.indexDataReleased = !0);
|
|
25881
|
+
}
|
|
25882
|
+
rebuildSortData() {
|
|
25883
|
+
return Vo(this, void 0, void 0, function* () {
|
|
25884
|
+
if (!this.sortDataReleased || this.disposed) return;
|
|
25885
|
+
let e = yield vy();
|
|
25886
|
+
if (!this.disposed) {
|
|
25887
|
+
this.positions = new Float32Array(this.numPoints * 3), this.rotations = new Float32Array(this.numPoints * 4), this.scales = new Float32Array(this.numPoints * 3);
|
|
25888
|
+
for (let t of this.objectsInOrder) {
|
|
25889
|
+
let n = this.offsets.get(t);
|
|
25890
|
+
if (n === void 0) continue;
|
|
25891
|
+
let r = e._malloc(3 * t.numPoints * 4), i = e._malloc(4 * t.numPoints * 4), a = e._malloc(3 * t.numPoints * 4), o = e._malloc(4 * t.numPoints), s = e._malloc(t.numPoints), c = e._malloc(4 * t.numPoints * 4), l = e._malloc(3 * t.numPoints * 4), u = e._malloc(4 * t.numPoints * 4), d = e._malloc(3 * t.numPoints * 4);
|
|
25892
|
+
e.HEAPF32.set(t.positions, r / 4), e.HEAPF32.set(t.rotations, i / 4), e.HEAPF32.set(t.scales, a / 4), e.HEAPU8.set(t.colors, o), e.HEAPU8.set(t.selection, s), e._pack(t.selected, t.numPoints, r, i, a, o, s, c, l, u, d);
|
|
25893
|
+
let f = new Float32Array(e.HEAPF32.buffer, l, t.numPoints * 3), p = new Float32Array(e.HEAPF32.buffer, u, t.numPoints * 4), m = new Float32Array(e.HEAPF32.buffer, d, t.numPoints * 3);
|
|
25894
|
+
this.positions.set(f, n * 3), this.rotations.set(p, n * 4), this.scales.set(m, n * 3), e._free(r), e._free(i), e._free(a), e._free(o), e._free(s), e._free(c), e._free(l), e._free(u), e._free(d);
|
|
25895
|
+
}
|
|
25896
|
+
this.sortDataReleased = !1;
|
|
25897
|
+
}
|
|
25898
|
+
});
|
|
25899
|
+
}
|
|
25861
25900
|
getObjectsInOrder() {
|
|
25862
25901
|
return this.objectsInOrder;
|
|
25863
25902
|
}
|
|
@@ -25870,10 +25909,10 @@ var vy = class {
|
|
|
25870
25909
|
return Vo(this, void 0, void 0, function* () {
|
|
25871
25910
|
if (this.disposed) return !1;
|
|
25872
25911
|
if (e.length === 0) return !0;
|
|
25873
|
-
let t = yield
|
|
25912
|
+
let t = yield vy();
|
|
25874
25913
|
if (this.disposed) return !1;
|
|
25875
25914
|
let n = this.numPoints, r = this.objectsInOrder.length, i = n + e.reduce((e, t) => e + t.numPoints, 0), a = r + e.length;
|
|
25876
|
-
this.numPoints = i, this.height = Math.ceil(
|
|
25915
|
+
this.numPoints = i, this.height = Math.ceil(this.numPoints / this.width), this.data = this.expandUint32Array(this.data, this.width * this.height * 4), this.transformsHeight = a, this.transforms = this.expandFloat32Array(this.transforms, this.transformsWidth * this.transformsHeight * 4), this.transformIndicesHeight = Math.ceil(this.numPoints / this.transformIndicesWidth), this.transformIndices = this.expandUint32Array(this.transformIndices, this.transformIndicesWidth * this.transformIndicesHeight), this.layerIndicesHeight = Math.ceil(this.numPoints / this.layerIndicesWidth), this.layerIndices = this.expandUint32Array(this.layerIndices, this.layerIndicesWidth * this.layerIndicesHeight), this.positions = this.expandFloat32Array(this.positions, this.numPoints * 3), this.rotations = this.expandFloat32Array(this.rotations, this.numPoints * 4), this.scales = this.expandFloat32Array(this.scales, this.numPoints * 3);
|
|
25877
25916
|
let o = e.reduce((e, t) => Math.max(e, t.maxSHDegree), this.maxShDegree);
|
|
25878
25917
|
o > this.maxShDegree && (this.maxShDegree = o), this.maxShDegree >= 1 && (this.sh1 = this.expandFloat32Array(this.sh1, this.numPoints * 9)), this.maxShDegree >= 2 && (this.sh2 = this.expandFloat32Array(this.sh2, this.numPoints * 15)), this.maxShDegree >= 3 && (this.sh3 = this.expandFloat32Array(this.sh3, this.numPoints * 21));
|
|
25879
25918
|
let s = n, c = r;
|
|
@@ -25889,11 +25928,11 @@ var vy = class {
|
|
|
25889
25928
|
buildImmediate(e, t) {
|
|
25890
25929
|
if (this.disposed) return;
|
|
25891
25930
|
this.updateTransform(t);
|
|
25892
|
-
let n = e._malloc(3 * t.numPoints * 4), r = e._malloc(4 * t.numPoints * 4), i = e._malloc(3 * t.numPoints * 4), a = e._malloc(4 * t.numPoints), o = e._malloc(t.numPoints), s = e._malloc(
|
|
25931
|
+
let n = e._malloc(3 * t.numPoints * 4), r = e._malloc(4 * t.numPoints * 4), i = e._malloc(3 * t.numPoints * 4), a = e._malloc(4 * t.numPoints), o = e._malloc(t.numPoints), s = e._malloc(4 * t.numPoints * 4), c = e._malloc(3 * t.numPoints * 4), l = e._malloc(4 * t.numPoints * 4), u = e._malloc(3 * t.numPoints * 4);
|
|
25893
25932
|
e.HEAPF32.set(t.positions, n / 4), e.HEAPF32.set(t.rotations, r / 4), e.HEAPF32.set(t.scales, i / 4), e.HEAPU8.set(t.colors, a), e.HEAPU8.set(t.selection, o), e._pack(t.selected, t.numPoints, n, r, i, a, o, s, c, l, u);
|
|
25894
|
-
let d = new Uint32Array(e.HEAPU32.buffer, s, t.numPoints *
|
|
25933
|
+
let d = new Uint32Array(e.HEAPU32.buffer, s, t.numPoints * 4), f = new Float32Array(e.HEAPF32.buffer, c, t.numPoints * 3), p = new Float32Array(e.HEAPF32.buffer, l, t.numPoints * 4), m = new Float32Array(e.HEAPF32.buffer, u, t.numPoints * 3), h = this.splatIndices.get(t), g = this.offsets.get(t), _ = this.objectLayerIndices.get(t);
|
|
25895
25934
|
for (let e = 0; e < t.numPoints; e++) this.transformIndices[g + e] = h, this.layerIndices[g + e] = _;
|
|
25896
|
-
this.data.set(d, g *
|
|
25935
|
+
this.data.set(d, g * 4), this.positions.set(f, g * 3), this.rotations.set(p, g * 4), this.scales.set(m, g * 3), e._free(n), e._free(r), e._free(i), e._free(a), e._free(o), e._free(s), e._free(c), e._free(l), e._free(u), this.dataChanged = !0, this.pendingInitialBuildCount = Math.max(0, this.pendingInitialBuildCount - 1), this.pendingInitialBuildCount === 0 && this.completeInitialBuild();
|
|
25897
25936
|
}
|
|
25898
25937
|
expandFloat32Array(e, t) {
|
|
25899
25938
|
if (!e) return new Float32Array(t);
|
|
@@ -25918,33 +25957,33 @@ var vy = class {
|
|
|
25918
25957
|
return t - this.offsets.get(e);
|
|
25919
25958
|
}
|
|
25920
25959
|
dispose() {
|
|
25921
|
-
this.disposed || (this.disposed = !0, this.
|
|
25960
|
+
this.disposed || (this.disposed = !0, this.completeInitialBuild());
|
|
25922
25961
|
}
|
|
25923
25962
|
completeInitialBuild() {
|
|
25924
25963
|
this.initialBuildComplete || (this.initialBuildComplete = !0), this.resolveReadyPromise && (this.resolveReadyPromise(), this.resolveReadyPromise = null);
|
|
25925
25964
|
}
|
|
25926
|
-
}, yy = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\0\\`\\`\\0\\` \\0\\`\\0\\0\\x07aa\\0\\0\\0\\0\\x07\\bA\\v\\x07b\\0c\\0d\\0e\\0f\\0\\f\n9T~@A\\b(\\0\" \\0B\\x07|Bøÿÿÿ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vA\\bA06\\0A\\vA\\b \\x006\\0 \\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r (\\0\"k\"A\\b(\\0I\\r \\0 j!\\0@@@A\\b(\\0 G@ (\\f! AÿM@ (\\b\"G\\rA\\bA\\b(\\0A~ Avwq6\\0\\f\\v (!\\x07 G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rA\\b \\x006\\0 A~q6 \\0Ar6 \\x006\\0\\v 6\\f 6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ wq6\\0\\f\\v@ \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v \\x076 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v O\\r\\0 (\"AqE\\r\\0@@@@ AqE@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0 \\0Ar6 A\\b(\\0G\\rA\\bA\\x006\\0A\\bA\\x006\\0\\vA\\b(\\0\"\\x07 F@A\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@A\\bA\\b(\\0A~ Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!\\b G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v A~q6 \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ wq6\\0\\f\\v@ \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v \\b6 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v \\0Ar6 \\0 j \\x006\\0 \\x07G\\r\\0A\\b \\x006\\0\\v \\0AÿM@ \\0AøqA°\\bj!A\\b(\\0\"A \\0Avt\"\\0qE@A\\b \\0 r6\\0 \\f\\v (\\b\\v!\\0 6\\b \\0 6\\f 6\\f \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v 6 B\\x007 AtA¸\nj!@A\\b(\\0\"A t\"qE@A\\b r6\\0 6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At! Aqj\"(\"\\r\\0\\v 6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f 6\\bA!\\0A\\b!A\\0\\v! j 6\\0 6\\f \\0 j 6\\0A¨\\bA¨\\b(\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@A\\b(\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"A°\\bj\"\\0 (¸\\b\"(\\b\"F@A\\b A~ wq6\\0\\f\\v \\x006\\f \\0 6\\b\\v A\\bj!\\0 Ar6 j\" (Ar6\\f\\v\\v A\\b(\\0\"\\bM\\r @@A \\0t\"A\\0 kr \\0tqh\"At\"A°\\bj\" (¸\\b\"\\0(\\b\"F@A\\b A~ wq\"6\\0\\f\\v 6\\f 6\\b\\v \\0 Ar6 \\0 j\"\\x07 k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqA°\\bj!A\\b(\\0! A \\bAvt\"qE@A\\b r6\\0 \\f\\v (\\b\\v! 6\\b 6\\f 6\\f 6\\b\\v \\0A\\bj!\\0A\\b \\x076\\0A\\b 6\\0\\f\\v\\vA\\b(\\0\"\\vE\\r \\vhAt(¸\n\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\" I\"\\x1B! \\0 \\x1B! \\0!\\f\\v\\v (! (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!A\\b(\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(¸\n\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\" AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(¸\n!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I! \\x1B! \\0 \\x1B! \\0(\" \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 A\\b(\\0 kO\\r\\0 (!\\b (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v A\\b(\\0\"M@A\\b(\\0!\\0@ k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vA\\b 6\\0A\\b 6\\0 \\0A\\bj!\\0\\f \\v A\\b(\\0\"I@A\\b k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"Aà\\v(\\0@Aè\\v(\\0\\f\\vAì\\vB7\\0Aä\\vB\\xA07\\0Aà\\v \nA\\fjApqAتժs6\\0Aô\\vA\\x006\\0AÄ\\vA\\x006\\0A \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bAÀ\\v(\\0\"@A¸\\v(\\0\"\\b j\" \\bM Ir\\r \\v@AÄ\\v-\\0\\0AqE@@@@@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\"\\b M@ \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !Aä\\v(\\0\"\\0Ak\" q@ k jA\\0 \\0kqj!\\v M\\rAÀ\\v(\\0\"\\0@A¸\\v(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vAè\\v(\\0\" kjA\\0 kq\"AF\\r j! \\0!\\f\\v AG\\r\\vAÄ\\vAÄ\\v(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vA¸\\vA¸\\v(\\0 j\"\\x006\\0A¼\\v(\\0 \\0I@A¼\\v \\x006\\0\\v@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vA\\b(\\0\"\\0A\\0 \\0 M\\x1BE@A\\b 6\\0\\vA\\0!\\0AÌ\\v 6\\0AÈ\\v 6\\0A¨\\bA6\\0A¬\\bAà\\v(\\x006\\0AÔ\\vA\\x006\\0@ \\0At\" A°\\bj\"6¸\\b 6¼\\b \\0Aj\"\\0A G\\r\\0\\vA\\b A(k\"\\0Ax kA\\x07q\"k\"6\\0A\\xA0\\b j\"6\\0 Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0\\f\\v M Kr\\r \\0(\\fA\\bq\\r \\0 j6A\\xA0\\b Ax kA\\x07q\"\\0j\"6\\0A\\bA\\b(\\0 j\" \\0k\"\\x006\\0 \\0Ar6 jA(6A¤\\bAð\\v(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vA\\b(\\0 K@A\\b 6\\0\\v j!AÈ\\v!\\0@@ \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vAÈ\\v!\\0@@ \\0(\\0\" M@ \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vA\\b A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0A\\xA0\\b j\"6\\0 \\x07Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0 A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 AÐ\\v)\\x007 AÈ\\v)\\x007\\bAÐ\\v A\\bj6\\0AÌ\\v 6\\0AÈ\\v 6\\0AÔ\\vA\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v F\\r\\0 (A~q6 k\"Ar6 6\\0 AÿM@ AøqA°\\bj!\\0A\\b(\\0\"A Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtA¸\nj!@@A\\b(\\0\"A \\0t\"qE@A\\b r6\\0 6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"(\"\\r\\0\\v 6\\v 6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f 6\\b \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0 j \\x006\\0\\vA\\b(\\0\"\\0 M\\r\\0A\\b \\0 k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vA\\bA06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\" \\bj\"k!\\x07@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0 \\0Ar6\\f\\vA\\b(\\0 F@A\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@A\\bA\\b(\\0A~ \\0Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!@ G@ (\\b\"\\0 6\\f \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ \\0wq6\\0\\f\\v@ (F@ 6\\f\\v 6\\v E\\r\\v 6 (\"\\0@ \\x006 \\0 6\\v (\"\\0E\\r\\0 \\x006 \\0 6\\v \\x07 j!\\x07 j\"(!\\0\\v \\0A~q6 \\x07Ar6 \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqA°\\bj!\\0A\\b(\\0\"A \\x07Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v 6 B\\x007 AtA¸\nj!\\0@@A\\b(\\0\"A t\"qE@A\\b r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v 6\\v \\x006 6\\f 6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006 \\x006\\f 6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rA\\b \\x07A~ wq\"\\x076\\0\\f\\v@ \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 AÿM@ AøqA°\\bj!\\0A\\b(\\0\"A Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtA¸\nj!@@ \\x07A \\0t\"qE@A\\b \\x07r6\\0 6\\0 6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"\\x07(\"\\r\\0\\v \\x07 6 6\\v 6\\f 6\\b\\f\\v (\\b\"\\0 6\\f 6\\b A\\x006 6\\f \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rA\\b \\vA~ wq6\\0\\f\\v@ (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 \\b@ \\bAxqA°\\bj!\\0A\\b(\\0!A \\bAvt\"\\x07 qE@A\\b \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\vA\\b 6\\0A\\b 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v§\n}#\\0A\\bk\"\\f$\\0A! @ \\rFE@ \\rA\\flj\"\n*\\0! \n*\\b! \n*! \\rAt\"j(\\0\"\nG@ \nAÐ\\0lj\" *< \\0*8\" *8 \\0*(\" *0 \\0*\\b\" \\0*\" *4! *, *( * *$! * * * *! *\\f *\\b *\\0 * ! \n! \\v j ¼\"\nAAx \nA\\0H\\x1Bs6\\0 \\rAj!\\r\\f\\v\\v@ \\vFE@ \\vAtj \\v6\\0 \\vAj!\\v\\f\\v\\v !\\0A\\0!@ \\0! AF@@ \\0 F\\r\\0 At\"\\0E\\r\\0 \\0ü\n\\0\\0\\v \\fA\\bj$\\0\\vA\\0!\\0 \\bA\\0A\\bü\\v\\0 At!@ \\0 F@ \\fA\\x006ü\\x07Aþ!\\v@A\\0!\\0 \\vA\\0HE@ \\f \\vAt\"\\0j \\b \\0Aj\"\\0j(\\0 \\0 \\fj(\\0j6\\0 \\vAk!\\v\\f\\v\\v@ \\0 FE@ \\f \\0Atj(\\0\" Atj(\\0 vAÿqAtj\"\n \n(\\0\"\nAj6\\0 \\x07 \nAtj 6\\0 \\0Aj!\\0\\f\\v\\v Aj! \\x07!\\0 !\\x07\\f \\b \\0Atj(\\0Atj(\\0 vAÿqAtj\" (\\0Aj6\\0 \\0Aj!\\0\\f\\v\\0\\v\\0\\v\\0\\v\\0\\v\\v \\0A\\b\\v`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._sort=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i,a,o,s,c,l,u,d,f,p=0,m=0,h=[],g=!0,_=!1,v=!1,y=!1,b=()=>e(void 0,void 0,void 0,function*(){if(_){v=!0;return}_=!0,v=!1,n||(yield r());let e=2**Math.ceil(Math.log2(i.vertexCount));p<e&&(p>0&&(n._free(a),n._free(s),n._free(c),n._free(l),n._free(u),n._free(d),n._free(f)),p=e,a=n._malloc(64),s=n._malloc(p*4),c=n._malloc(3*p*4),l=n._malloc(p*4),u=n._malloc(p*4),d=n._malloc(p*4),f=n._malloc(p*4)),m<i.transforms.length&&(m>0&&n._free(o),m=i.transforms.length,o=n._malloc(m*4)),_=!1,v&&(v=!1,yield b())}),x=()=>{if(_||v||!n)return;_=!0,n.HEAPF32.set(i.positions,c/4),n.HEAPF32.set(i.transforms,o/4),n.HEAPU32.set(i.transformIndices,s/4),n.HEAPF32.set(new Float32Array(h),a/4),n._sort(a,o,s,i.vertexCount,c,l,u,d,f);let e=new Uint32Array(n.HEAPU32.buffer,u,i.vertexCount),t=new Uint32Array(e.slice().buffer);self.postMessage({depthIndex:t,generation:i.generation},[t.buffer]),_=!1,g=!1},S=()=>{y||(y=!0,g&&x(),setTimeout(()=>{y=!1,S()}))};self.onmessage=e=>new Promise(t=>{if(e.data.warmup){r().finally(()=>t(!0));return}e.data.sortData&&(i={positions:new Float32Array(e.data.sortData.positions),transforms:new Float32Array(e.data.sortData.transforms),transformIndices:new Uint32Array(e.data.sortData.transformIndices),vertexCount:e.data.sortData.vertexCount,generation:e.data.sortData.generation??0},g=!0,b()),e.data.viewProj?(e.data.viewProj.every(e=>h.includes(e))===!1&&(h=e.data.viewProj,g=!0),S(),t(!0)):t(!0)})})();", by = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", yy], { type: "text/javascript;charset=utf-8" });
|
|
25927
|
-
function
|
|
25965
|
+
}, Sy = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\0\\x1B\\`\\`\\0\\`\n\\`\\0\\0\\x07aa\\0\\0\\0\\0\\x07\\bA\\v\\x07b\\0c\\0d\\0e\\0f\\0\\f\nü9T~@A\\b(\\0\" \\0B\\x07|Bøÿÿÿ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vA\\bA06\\0A\\vA\\b \\x006\\0 \\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r (\\0\"k\"A\\b(\\0I\\r \\0 j!\\0@@@A\\b(\\0 G@ (\\f! AÿM@ (\\b\"G\\rA\\bA\\b(\\0A~ Avwq6\\0\\f\\v (!\\x07 G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rA\\b \\x006\\0 A~q6 \\0Ar6 \\x006\\0\\v 6\\f 6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ wq6\\0\\f\\v@ \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v \\x076 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v O\\r\\0 (\"AqE\\r\\0@@@@ AqE@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0 \\0Ar6 A\\b(\\0G\\rA\\bA\\x006\\0A\\bA\\x006\\0\\vA\\b(\\0\"\\x07 F@A\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@A\\bA\\b(\\0A~ Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!\\b G@ (\\b\" 6\\f 6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v A~q6 \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ wq6\\0\\f\\v@ \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v \\b6 (\"@ 6 6\\v (\"E\\r\\0 6 6\\v \\0Ar6 \\0 j \\x006\\0 \\x07G\\r\\0A\\b \\x006\\0\\v \\0AÿM@ \\0AøqA°\\bj!A\\b(\\0\"A \\0Avt\"\\0qE@A\\b \\0 r6\\0 \\f\\v (\\b\\v!\\0 6\\b \\0 6\\f 6\\f \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v 6 B\\x007 AtA¸\nj!@A\\b(\\0\"A t\"qE@A\\b r6\\0 6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At! Aqj\"(\"\\r\\0\\v 6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f 6\\bA!\\0A\\b!A\\0\\v! j 6\\0 6\\f \\0 j 6\\0A¨\\bA¨\\b(\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@A\\b(\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"A°\\bj\"\\0 (¸\\b\"(\\b\"F@A\\b A~ wq6\\0\\f\\v \\x006\\f \\0 6\\b\\v A\\bj!\\0 Ar6 j\" (Ar6\\f\\v\\v A\\b(\\0\"\\bM\\r @@A \\0t\"A\\0 kr \\0tqh\"At\"A°\\bj\" (¸\\b\"\\0(\\b\"F@A\\b A~ wq\"6\\0\\f\\v 6\\f 6\\b\\v \\0 Ar6 \\0 j\"\\x07 k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqA°\\bj!A\\b(\\0! A \\bAvt\"qE@A\\b r6\\0 \\f\\v (\\b\\v! 6\\b 6\\f 6\\f 6\\b\\v \\0A\\bj!\\0A\\b \\x076\\0A\\b 6\\0\\f\\v\\vA\\b(\\0\"\\vE\\r \\vhAt(¸\n\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\" I\"\\x1B! \\0 \\x1B! \\0!\\f\\v\\v (! (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!A\\b(\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(¸\n\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\" AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(¸\n!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I! \\x1B! \\0 \\x1B! \\0(\" \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 A\\b(\\0 kO\\r\\0 (!\\b (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v A\\b(\\0\"M@A\\b(\\0!\\0@ k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vA\\b 6\\0A\\b 6\\0 \\0A\\bj!\\0\\f \\v A\\b(\\0\"I@A\\b k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"Aà\\v(\\0@Aè\\v(\\0\\f\\vAì\\vB7\\0Aä\\vB\\xA07\\0Aà\\v \nA\\fjApqAتժs6\\0Aô\\vA\\x006\\0AÄ\\vA\\x006\\0A \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bAÀ\\v(\\0\"@A¸\\v(\\0\"\\b j\" \\bM Ir\\r \\v@AÄ\\v-\\0\\0AqE@@@@@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\"\\b M@ \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !Aä\\v(\\0\"\\0Ak\" q@ k jA\\0 \\0kqj!\\v M\\rAÀ\\v(\\0\"\\0@A¸\\v(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vAè\\v(\\0\" kjA\\0 kq\"AF\\r j! \\0!\\f\\v AG\\r\\vAÄ\\vAÄ\\v(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vA¸\\vA¸\\v(\\0 j\"\\x006\\0A¼\\v(\\0 \\0I@A¼\\v \\x006\\0\\v@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vA\\b(\\0\"\\0A\\0 \\0 M\\x1BE@A\\b 6\\0\\vA\\0!\\0AÌ\\v 6\\0AÈ\\v 6\\0A¨\\bA6\\0A¬\\bAà\\v(\\x006\\0AÔ\\vA\\x006\\0@ \\0At\" A°\\bj\"6¸\\b 6¼\\b \\0Aj\"\\0A G\\r\\0\\vA\\b A(k\"\\0Ax kA\\x07q\"k\"6\\0A\\xA0\\b j\"6\\0 Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0\\f\\v M Kr\\r \\0(\\fA\\bq\\r \\0 j6A\\xA0\\b Ax kA\\x07q\"\\0j\"6\\0A\\bA\\b(\\0 j\" \\0k\"\\x006\\0 \\0Ar6 jA(6A¤\\bAð\\v(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vA\\b(\\0 K@A\\b 6\\0\\v j!AÈ\\v!\\0@@ \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vAÈ\\v!\\0@@ \\0(\\0\" M@ \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vA\\b A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0A\\xA0\\b j\"6\\0 \\x07Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0 A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 AÐ\\v)\\x007 AÈ\\v)\\x007\\bAÐ\\v A\\bj6\\0AÌ\\v 6\\0AÈ\\v 6\\0AÔ\\vA\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v F\\r\\0 (A~q6 k\"Ar6 6\\0 AÿM@ AøqA°\\bj!\\0A\\b(\\0\"A Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtA¸\nj!@@A\\b(\\0\"A \\0t\"qE@A\\b r6\\0 6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"(\"\\r\\0\\v 6\\v 6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f 6\\b \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0 j \\x006\\0\\vA\\b(\\0\"\\0 M\\r\\0A\\b \\0 k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0 Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vA\\bA06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\" \\bj\"k!\\x07@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0 \\0Ar6\\f\\vA\\b(\\0 F@A\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0 \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@A\\bA\\b(\\0A~ \\0Avwq6\\0\\f\\v 6\\f 6\\b\\f\\v (!@ G@ (\\b\"\\0 6\\f \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(¸\n F@ A¸\nj 6\\0 \\rA\\bA\\b(\\0A~ \\0wq6\\0\\f\\v@ (F@ 6\\f\\v 6\\v E\\r\\v 6 (\"\\0@ \\x006 \\0 6\\v (\"\\0E\\r\\0 \\x006 \\0 6\\v \\x07 j!\\x07 j\"(!\\0\\v \\0A~q6 \\x07Ar6 \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqA°\\bj!\\0A\\b(\\0\"A \\x07Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v 6 B\\x007 AtA¸\nj!\\0@@A\\b(\\0\"A t\"qE@A\\b r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v 6\\v \\x006 6\\f 6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006 \\x006\\f 6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rA\\b \\x07A~ wq\"\\x076\\0\\f\\v@ \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 AÿM@ AøqA°\\bj!\\0A\\b(\\0\"A Avt\"qE@A\\b r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v \\x006 B\\x007 \\0AtA¸\nj!@@ \\x07A \\0t\"qE@A\\b \\x07r6\\0 6\\0 6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0 Aqj\"\\x07(\"\\r\\0\\v \\x07 6 6\\v 6\\f 6\\b\\f\\v (\\b\"\\0 6\\f 6\\b A\\x006 6\\f \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rA\\b \\vA~ wq6\\0\\f\\v@ (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6 \\x006\\v (\"E\\r\\0 \\0 6 \\x006\\v@ AM@ j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v Ar6 j\" Ar6 j 6\\0 \\b@ \\bAxqA°\\bj!\\0A\\b(\\0!A \\bAvt\"\\x07 qE@A\\b \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b 6\\f \\x006\\f 6\\b\\vA\\b 6\\0A\\b 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v\n}@ E@\\f\\vA!\\v@ \\fF@A\\0!\\f \\x07A\\0Aü\\v\\0 \\bA\\0Aü\\v\\0A\\0!\n@ \nF@A\\0!\n@ \nAF@A\\0!\n@ \nF@A\\0!A\\0!\n@ \nAF@A\\0!\n@ \n \\fF\\r\\v \\b \nAtj(\\0\"\\0Atj(\\0AsAvAüÿqj\" (\\0\"Aj6\\0 Atj \\x006\\0 \nAj!\n\\f\\0\\v\\0 \\b \nAtj\"\\0(\\0 \\0 6\\0 \nAj!\n j!\\f\\v\\0\\v\\0\\v \nAtj(\\0\"\\0Aü\\x07G@ \\x07 \\0AsAÿÿqAtj\"\\0 \\0(\\0\"\\0Aj6\\0 \\0Atj \n6\\0\\v \nAj!\n\\f\\0\\v\\0 \\x07 \nAtj\"\\0(\\0 \\0 \\f6\\0 \nAj!\n \\fj!\\f\\f\\v\\0\\v\\0\\v \nAtj(\\0\"\\0Aü\\x07G@ \\x07 \\0As\"\\0AÿÿqAtj\" (\\0Aj6\\0 \\b \\0AvAüÿqj\"\\0 \\0(\\0Aj6\\0\\v \nAj!\n\\f\\0\\v\\0 \\fA\\flj\"\n*\\0! \n*\\b! \n*! \\v \\fAt\"\\rj(\\0\"\nG@ \nAÐ\\0lj\"\\v*< \\0*8\" \\v*8 \\0*(\" \\v*0 \\0*\\b\" \\0*\" \\v*4! \\v*, \\v*( \\v* \\v*$! \\v* \\v* \\v* \\v*! \\v*\\f \\v*\\b \\v*\\0 \\v* ! \n!\\v\\vAü\\x07!\n \\rj \"C\\0\\0\\\\ ¼\"\nAAx \nA\\0H\\x1BsAü\\x07\\v6\\0 \\fAj!\\f\\f\\v\\0\\v\\0\\v \\f\\v\\0\\v\\v \\0A\\b\\v`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._sort=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i,a,o,s,c,l,u,d,f,p,m=0,h=0,g=!1,_=[],v=!0,y=!0,b=!1,x=!1,S=!1,C=65536,w=()=>e(void 0,void 0,void 0,function*(){if(b){x=!0;return}b=!0,x=!1,n||(yield r());let e=2**Math.ceil(Math.log2(i.vertexCount));m<e&&(m>0&&(n._free(a),n._free(s),n._free(c),n._free(l),n._free(u),n._free(p)),m=e,a=n._malloc(64),s=n._malloc(m*4),c=n._malloc(3*m*4),l=n._malloc(m*4),u=n._malloc(m*4),p=n._malloc(m*4)),g||=(d=n._malloc(C*4),f=n._malloc(C*4),!0),h<i.transforms.length&&(h>0&&n._free(o),h=i.transforms.length,o=n._malloc(h*4)),b=!1,x&&(x=!1,yield w())}),T=()=>{if(b||x||!n)return;b=!0,y&&=(n.HEAPF32.set(i.positions,c/4),n.HEAPF32.set(i.transforms,o/4),n.HEAPU32.set(i.transformIndices,s/4),!1),n.HEAPF32.set(new Float32Array(_),a/4);let e=n._sort(a,o,s,i.vertexCount,c,l,u,d,f,p),t=Math.min(e,i.vertexCount),r=new Uint32Array(n.HEAPU32.buffer,u,t),m=new Uint32Array(r.slice().buffer);self.postMessage({depthIndex:m,generation:i.generation},[m.buffer]),b=!1,v=!1},E=()=>{S||(S=!0,v&&T(),setTimeout(()=>{S=!1,E()}))};self.onmessage=e=>new Promise(t=>{if(e.data.warmup){r().finally(()=>t(!0));return}e.data.sortData&&(i={positions:e.data.sortData.positions,transforms:e.data.sortData.transforms,transformIndices:e.data.sortData.transformIndices,vertexCount:e.data.sortData.vertexCount,generation:e.data.sortData.generation??0},v=!0,y=!0,w()),e.data.viewProj?(e.data.viewProj.every(e=>_.includes(e))===!1&&(_=e.data.viewProj,v=!0),E(),t(!0)):t(!0)})})();", Cy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", Sy], { type: "text/javascript;charset=utf-8" });
|
|
25966
|
+
function wy(e) {
|
|
25928
25967
|
let t;
|
|
25929
25968
|
try {
|
|
25930
|
-
if (t =
|
|
25969
|
+
if (t = Cy && (self.URL || self.webkitURL).createObjectURL(Cy), !t) throw "";
|
|
25931
25970
|
let n = new Worker(t, { name: e == null ? void 0 : e.name });
|
|
25932
25971
|
return n.addEventListener("error", () => {
|
|
25933
25972
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
25934
25973
|
}), n;
|
|
25935
25974
|
} catch (t) {
|
|
25936
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
25975
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(Sy), { name: e == null ? void 0 : e.name });
|
|
25937
25976
|
}
|
|
25938
25977
|
}
|
|
25939
25978
|
//#endregion
|
|
25940
25979
|
//#region build/five/model/shaders/pbm_gaussian_splatting/vertex.js
|
|
25941
|
-
var
|
|
25980
|
+
var Ty = function(...e) {
|
|
25942
25981
|
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
25943
|
-
}("}rpvv|{-uvtu}-sy|nH}rpvv|{-uvtu}-v{Hnvor-sy|n-}ynV{qr\x07H{vs|z-uvtu}-nz}yr?Q-lr\x07rH{vs|z-uvtu}-nz}yr?Q-ln{s|zH{vs|z-uvtu}-nz}yr?Q-ln{s|zV{qvprH{vs|z-uvtu}-nz}yr?Q-lyn\brV{qvprH{vs|z-uvtu}-nz}yr?Q-luar\x07rH{vs|z-rp?-luar\x07r`v rH{vs|z-v{-lzn\x07`uQrtrrH0vs-[bZlT`lPYV]]R_`-K-=----{vs|z-rp?-lyn\brPyv}}r_n{trh[bZlT`lYNfR_`jH----{vs|z-znA-lpyv}}rZnvprV{rrh[bZlT`lPYV]]R_`jH0r{qvs{vs|z-rp?-r|yv|{H{vs|z-o||y-lnttrtnv|{R{noyrqH{vs|z-sy|n-lnttrtnv|{]|trH-------<<-整个动画的归一化进度-h=9->j{vs|z-sy|n-lnttrtnv|{]|v{Qnv|{H--<<-每个点的固定聚合时长(归一化到总时长,可调试){vs|z-rp@-lnttrtnv|{O|{qZv{H{vs|z-rp@-lnttrtnv|{O|{qZn\x07Hn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bH<<参考Tnvn{`}yn@qp|{-sy|n-\0E-J-\05E;=6H<<原版的固定xr{ry`v r,不要轻易调整这个数p|{-sy|n-xr{ry?Q`v r-J-=;@Hp|{-sy|n-zn\x07`prr{`}npr`}yn`v r-J-?=AE;=H<<固定的u相关系数p|{-sy|n-`UlP>-J-=;AEEC=?B>>F=?F>FFHp|{-sy|n-`UlP?l=-J->;=F?BAEAHp|{-sy|n-`UlP?l>-J-:>;=F?BAEAHp|{-sy|n-`UlP?l?-J-=;@>B@F>CHp|{-sy|n-`UlP?l@-J-:>;=F?BAEAHp|{-sy|n-`UlP?lA-J-=;BAC?DA?Hrp?-tr`UQnnbc5v{-}ynVq\x079-v{-p|z}|{r{\\ssr9-rp?-r\x07r`v r6-\n----v{-uP|z}|{r{P|{-J-=H----vs-5lzn\x07`uQrtrr-KJ->6-uP|z}|{r{P|{-8J-FH----vs-5lzn\x07`uQrtrr-KJ-?6-uP|z}|{r{P|{-8J->BH----vs-5lzn\x07`uQrtrr-KJ-@6-uP|z}|{r{P|{-8J-?>H--------v{-}nqqrqP|z}|{r{P|{-J-uP|z}|{r{P|{H----vs-5}nqqrqP|z}|{r{P|{-2-A-.J-=6-\n--------}nqqrqP|z}|{r{P|{-J-55}nqqrqP|z}|{r{P|{-<-A6-8->6-7-AH----\f--------sy|n-yv{rnP|z}|{r{V{qr\x07-J-sy|n5}ynVq\x07-7-}nqqrqP|z}|{r{P|{-8-p|z}|{r{\\ssr6H----sy|n-r\x07ryV{qr\x07-J-yv{rnP|z}|{r{V{qr\x07-<-A;=H------sy|n-q-J-r\x07ryV{qr\x07-<-r\x07r`v r;\x07H----sy|n-\b-J-sy||5q6-<-r\x07r`v r;\bH----sy|n-\x07-J-snp5q6H----r{-rp?5\x079-\b6H\f|vq-znv{-56-\n----v{-}ynV{qr\x07b-J-v{5}ynV{qr\x07-8-=;B6H----v{-}ynV{qr\x07V-J-v{5}ynV{qr\x07b6H----rpA-pr{-J-r\x07rySrpu5lr\x07r9-vrp?55}ynV{qr\x07b-3-=\x07@ss6-II->9-}ynV{qr\x07b-KK->=69-=6H--------v{-n{s|zV{qr\x07-J-r\x07rySrpu5ln{s|zV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x07H----znA-n{s|z-J-znA5--------r\x07rySrpu5ln{s|z9-vrp?5=9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5>9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5?9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5@9-n{s|zV{qr\x0769-=6----6H----znA-n{s|zZ|qrycvrZnv\x07-J-vrZnv\x07-7-n{s|zH----rp@-}ynPr{r-J-v{Ova|Sy|n5pr{;\x07\b 6H----rpA-|yqPr{r-J-n{s|z-7-rpA5}ynPr{r9->;=6H----<<-JJJ-聚合特效-JJJ----sy|n-y|pny]|tr-J-lnttrtnv|{]|trH----sy|n-pnyr]|tr-J-=;=H----o||y-v{O|{qS|Nttrtnv|{-J-snyrH----vs-5lnttrtnv|{R{noyrq-33-lnttrtnv|{]|tr-I->;=6-\n--------o||y-v{O|{q-J-|yqPr{r;\x07-KJ-lnttrtnv|{O|{qZv{;\x07---------------------33-|yqPr{r;\x07-IJ-lnttrtnv|{O|{qZn\x07;\x07---------------------33-|yqPr{r; -KJ-lnttrtnv|{O|{qZv{; ---------------------33-|yqPr{r; -IJ-lnttrtnv|{O|{qZn\x07; H--------vs-5v{O|{q6-\n------------v{O|{qS|Nttrtnv|{-J-rH------------<<-归一化高度-h=9>j,>J最高,=J最低------------sy|n-urvtu_n{tr-J-lnttrtnv|{O|{qZn\x07;\b-:-lnttrtnv|{O|{qZv{;\bH------------sy|n-{|znyv rqUrvtu-J-urvtu_n{tr-K-=;==>----------------L-pynz}55|yqPr{r;\b-:-lnttrtnv|{O|{qZv{;\b6-<-urvtu_n{tr9-=;=9->;=6----------------G-=;BH------------<<-lnttrtnv|{]|v{Qnv|{G-每个点的固定聚合时长(归一化,占总时长的比例)------------<<-最高处5{|znyv rqUrvtuJ>6G-navzrJ=9-r{qavzrJ}|v{Q------------<<-最低处5{|znyv rqUrvtuJ=6G-navzrJ>:}|v{Q9-r{qavzrJ>------------<<-保证最底部的点在总动画结束时刚好聚合完毕------------sy|n-}|v{Q-J-pynz}5lnttrtnv|{]|v{Qnv|{9-=;=>9->;=6H------------sy|n-navzr-J-5>;=-:-{|znyv rqUrvtu6-7-5>;=-:-}|v{Q6H------------y|pny]|tr-J-pynz}55lnttrtnv|{]|tr-:-navzr6-<-}|v{Q9-=;=9->;=6H------------<<-聚合|ssr曲线:先加速后减速(rnr:v{:|)------------sy|n-|ssr]|tr-J-z||ur}5=;=9->;=9-y|pny]|tr6H------------<<-pnyr曲线:缓慢加速,加速度越来越大(rnr:v{-三次方)------------pnyr]|tr-J-y|pny]|tr-7-y|pny]|tr-7-y|pny]|tr-H------------rp@-nttrtnv|{Pr{r-J-5lnttrtnv|{O|{qZv{-8-lnttrtnv|{O|{qZn\x076-<-?;=H------------rp@-qv-J-|yqPr{r;\x07\b -:-nttrtnv|{Pr{rH------------sy|n-qv-J-yr{tu5qv6H------------<<-基于-}ynPr{r-的伪随机距离-8-v{<p|-螺旋方向------------sy|n-n{q`rrq-J-q|5}ynPr{r9-rp@5>?;FEFE9-DE;?@@9-AB;>CA66H------------sy|n-n{qQv-J-snp5v{5n{q`rrq6-7-A@DBE;BAB@6H------------sy|n-n{tyr-J-n{q`rrq-7->=;=H------------rp@-pnrQv-J-{|znyv r5rp@5----------------p|5n{tyr69----------------zv\x075:=;D9-=;>9-snp5v{5n{q`rrq-7->;D6-7-A@DBE;BAB@669----------------v{5n{tyr6------------66H------------sy|n-r\x07}y|v|{Snp|-J-5>;=-:-|ssr]|tr6-7-5>;=-8->;=-7-n{qQv6H------------rp@-|ssr-J-pnrQv-7-qv-7-r\x07}y|v|{Snp|H------------|yqPr{r;\x07\b -8J-|ssrH------------}ynPr{r-J-5v{rr5n{s|z6-7-|yqPr{r6;\x07\b H--------\f----\f----0vs-[bZlT`lPYV]]R_`-K-=----v{-yn\brV{qr\x07-J-v{5r\x07rySrpu5lyn\brV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x076H----vs-5yn\brV{qr\x07-KJ-=-33-yn\brV{qr\x07-I-[bZlT`lYNfR_`6-\n--------rp?-pyv}_n{tr-J-lyn\brPyv}}r_n{trhyn\brV{qr\x07jH--------v{-pyv}`n-J-v{5pyv}_n{tr;\x07-8-=;B6H--------v{-pyv}P|{-J-v{5pyv}_n{tr;\b-8-=;B6H--------v{-pyv}R{q-J-pyv}`n-8-pyv}P|{H--------s|-5v{-v-J-=H-v-I-[bZlT`lPYV]]R_`H-v886-\n----------------vs-5v-I-pyv}`n-\v\v-v-KJ-pyv}R{q6-\n--------------------p|{v{rH----------------\f----------------rpA-pyv}}r]|vv|{-J-lpyv}}rZnvprV{rrhvj-7-|yqPr{rH----------------o||y-pyv}}rq-J-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH----------------vs-5pyv}}rq6-\n--------------------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------------------r{H----------------\f--------\f----\f----0r{qvs----rpA-vrPr{r-J-n{s|zZ|qrycvrZnv\x07-7-rpA5}ynPr{r9->;=6H----rpA-pyv}Pr{r-J-}|wrpv|{Znv\x07-7-vrPr{rH----<<剔除超出视锥体的}yn----sy|n-pyv}-J->;?-7-pyv}Pr{r;H----vs-5pyv}Pr{r; -I-:pyv}Pr{r;-\v\v-pyv}Pr{r; -K-pyv}Pr{r;-\v\v---------pyv}Pr{r;\x07-I-:pyv}-\v\v-pyv}Pr{r;\x07-K-pyv}-\v\v---------pyv}Pr{r;\b-I-:pyv}-\v\v-pyv}Pr{r;\b-K-pyv}6-\n--------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------r{H----\f----rp@-{qpPr{r-J-pyv}Pr{r;\x07\b -<-pyv}Pr{r;H----rp?-s|pny-J-rp?5--------}|wrpv|{Znv\x07h=jh=j-7-r|yv|{;\x07-7-=;B9--------}|wrpv|{Znv\x07h>jh>j-7-r|yv|{;\b-7-=;B----6H--------]|vv|{-J-}|vv|{;\x07\bH----<<-读取协方差数据(使用-unys?\x07>C-打包)----rpA-p|-J-r\x07rySrpu5lr\x07r9-vrp?555}ynV{qr\x07b-3-=\x07@ss6-II->6-\v->9-}ynV{qr\x07b-KK->=69-=6H----rp?->-J-{}npxUnys?\x07>C5p|;\x076H-----rp?-?-J-{}npxUnys?\x07>C5p|;\b6H------rp?-@-J-{}npxUnys?\x07>C5p|; 6H----------sy|n-Z>>-J->;\x07-<-A;=H----sy|n-Z>?-J->;\b-<-A;=H----sy|n-Z>@-J-?;\x07-<-A;=H----sy|n-Z??-J-?;\b-<-A;=H----sy|n-Z?@-J-@;\x07-<-A;=H----sy|n-Z@@-J-@;\b-<-A;=H--------zn@-cx-J-zn@5--------Z>>9-Z>?9-Z>@9--------Z>?9-Z??9-Z?@9----------Z>@9-Z?@9-Z@@-------6H----<<-判断是否是正交模式:透视时-}|wrpv|{Znv\x07h@jh@j-J-=,正交时-J->----o||y-v\\u|tn}uvp-J-}|wrpv|{Znv\x07h@jh@j-K-=;DH----sy|n-n{vznv|{]|tr-J--}|wrpv|{Znv\x07h@jh@jH----zn@-WH----vs-5v\\u|tn}uvp6-\n--------<<-正交模式的雅可比矩阵--------W-J-n{}|r5zn@5------------s|pny;\x079-=;=9-=;=9------------=;=9-s|pny;\b9-=;=9------------=;=9-=;=9-=;=--------66H----\f-ryr-\n--------<<-透视模式的雅可比矩阵--------sy|n--J->;=-<-5vrPr{r; -7-vrPr{r; 6H--------W-J-zn@5------------s|pny;\x07-<-vrPr{r; 9-=;=9-:5s|pny;\x07-7-vrPr{r;\x076-7-9------------=;=9-s|pny;\b-<-vrPr{r; 9-:5s|pny;\b-7-vrPr{r;\b6-7-9------------=;=9-=;=9-=;=--------6H----\f----zn@-d-J-n{}|r5zn@5n{s|zZ|qrycvrZnv\x0766H----zn@-a-J-d-7-WH----<<-将-@Q-协方差矩阵变换为-?Q-协方差矩阵----zn@-p|?Qz-J-n{}|r5a6-7-cx-7-aH----p|?Qzh=jh=j-8J-xr{ry?Q`v rH----p|?Qzh>jh>j-8J-xr{ry?Q`v rH----rp@-p|?Q-J-rp@5p|?Qzh=jh=j9-p|?Qzh=jh>j9-p|?Qzh>jh>j6H----sy|n-n-J-p|?Q;\x07H----sy|n-q-J-p|?Q; H----sy|n-o-J-p|?Q;\bH----sy|n-Q-J-n-7-q-:-o-7-oH----sy|n-npr-J-n-8-qH----sy|n-npr\\r?-J-=;B-7-nprH----sy|n-rz?-J-\05zn\x075=;>9-npr\\r?-7-npr\\r?-:-Q66H----sy|n-rvtr{cnyr>-J-npr\\r?-8-rz?H----sy|n-rvtr{cnyr?-J-npr\\r?-:-rz?H----vs-5rvtr{cnyr?-IJ-=;=6-\n--------r{H----\f----rp?-rvtr{crp|>-J-{|znyv r5rp?5o9-rvtr{cnyr>-:-n66H----rp?-rvtr{crp|?-J-rp?5rvtr{crp|>;\b9-:rvtr{crp|>;\x076H----rp?-onvcrp|>-J-rvtr{crp|>--7-zv{5\0E-7-\05rvtr{cnyr>69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcrp|?-J-rvtr{crp|?--7-zv{5\0E-7-\05rvtr{cnyr?69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcvr}|-J-rp?5>;=-<-r|yv|{;\x079->;=-<-r|yv|{;\b6H----rp?-{qp\\ssr-J-rp?5]|vv|{;\x07-7-onvcrp|>-8-]|vv|{;\b-7-onvcrp|?6-7---------------------onvcvr}|-7-?;=H----<<-JJJ-点云→@QT`-过渡-JJJ----vs-5lnttrtnv|{R{noyrq6-\n--------sy|n-sv{ny`pnyr]|tr-J-v{O|{qS|Nttrtnv|{-L-pnyr]|tr-G-5lnttrtnv|{]|tr-7-lnttrtnv|{]|tr-7-lnttrtnv|{]|tr6H--------{qp\\ssr-7J-zv\x075=;>9->;=9-sv{ny`pnyr]|tr6H----\f----rpA-\0nq]|-J-rpA5{qpPr{r;\x07\b-8-{qp\\ssr9-{qpPr{r; 9->;=6H----tyl]|vv|{-J-\0nq]|H----<<-读取颜色----rpA-p|y|-J-rpA5--------5p|;6-3-=\x07ss9--------5p|;-KK-E6-3-=\x07ss9--------5p|;-KK->C6-3-=\x07ss9--------5p|;-KK-?A6-3-=\x07ss----6-<-?BB;=H----<<应用球谐光照,目前只兼容=>?----vs-5lzn\x07`uQrtrr-KJ->6-\n--------rp@-pnzrn]|V{\\owrp-J-rp@5v{rr5n{s|z6-7-rpA5pnzrn]|vv|{9->;=66H--------rp@-|owrpcvrQv-J-{|znyv r5}ynPr{r-:-pnzrn]|V{\\owrp6H----------------rpA-u=>?@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-=9-luar\x07r`v r66H----------rpA-uABCD-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-A9-luar\x07r`v r66H----------rpA-uEF>=>>-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-E9-luar\x07r`v r66H-----------------rp@-u>-J-u=>?@;toH-----------------------------------rp@-u?-J-rp@5u=>?@;n9-uABCD;t6H---------------------rp@-u@-J-rp@5uABCD;on9-uEF>=>>;6H-----------------------------sy|n-\x07-J-|owrpcvrQv;\x07H--------sy|n-\b-J-|owrpcvrQv;\bH--------sy|n- -J-|owrpcvrQv; H--------rp@-uP|y|-J-u>-7-5:=;AEEC=?B-7-\b6-8-u?-7-5=;AEEC=?B-7- 6-8-u@-7-5:=;AEEC=?B-7-\x076H--------p|y|;to-8J-uP|y|H----------------vs-5lzn\x07`uQrtrr-KJ-?6-\n----------------------rpA-u>?>@>A>B-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->?9-luar\x07r`v r66H------------rpA-u>C>D>E>F-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->C9-luar\x07r`v r66H-------------rpA-u?=?>???@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-?=9-luar\x07r`v r66H-------------------------rp@-uA-J-uEF>=>>;tonH------------------------------------rp@-uB-J-u>?>@>A>B;toH----------------------------------rp@-uC-J-rp@5u>?>@>A>B;n9-u>C>D>E>F;t6H---------------rp@-uD-J-rp@5u>C>D>E>F;on9-u?=?>???@;6H---------------rp@-uElqrt?-J-u?=?>???@;tonH-----------------------------------------sy|n-\x07\x07-J-\x07-7-\x07H------------sy|n-\b\b-J-\b-7-\bH------------sy|n- -J- -7- H------------sy|n-\x07\b-J-\x07-7-\bH------------sy|n-\b -J-\b-7- H------------sy|n-\x07 -J-\x07-7- H------------------------p|y|;to-8J----------------5`UlP?l=-7-\x07\b6-7-uA-8----------------5`UlP?l>-7-\b 6-7-uB-8----------------5`UlP?l?-7-5?;=-7- -:-\x07\x07-:-\b\b66-7-uC-8----------------5`UlP?l@-7-\x07 6-7-uD-8----------------5`UlP?lA-7-5\x07\x07-:-\b\b66-7-uElqrt?H--------\f----\f--------p|y|;to-J-pynz}5p|y|;to9-rp@5=;=69-rp@5>;=66H----P|y|-J-p|y|H----]|vv|{-7J-\0EH----b-J-}|vv|{;\x07\bH\f"), Cy = function(...e) {
|
|
25982
|
+
}("}rpvv|{-uvtu}-sy|nH}rpvv|{-uvtu}-v{Hnvor-sy|n-}ynV{qr\x07H{vs|z-uvtu}-nz}yr?Q-lr\x07rH{vs|z-uvtu}-nz}yr?Q-ln{s|zH{vs|z-uvtu}-nz}yr?Q-ln{s|zV{qvprH{vs|z-uvtu}-nz}yr?Q-lyn\brV{qvprH{vs|z-uvtu}-nz}yr?Q-luar\x07rH{vs|z-rp?-luar\x07r`v rH{vs|z-v{-lzn\x07`uQrtrrH0vs-[bZlT`lPYV]]R_`-K-=----{vs|z-rp?-lyn\brPyv}}r_n{trh[bZlT`lYNfR_`jH----{vs|z-znA-lpyv}}rZnvprV{rrh[bZlT`lPYV]]R_`jH0r{qvs{vs|z-rp?-r|yv|{H{vs|z-o||y-lnttrtnv|{R{noyrqH{vs|z-sy|n-lnttrtnv|{]|trH{vs|z-sy|n-lnttrtnv|{]|v{Qnv|{H{vs|z-rp@-lnttrtnv|{O|{qZv{H{vs|z-rp@-lnttrtnv|{O|{qZn\x07Hn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bHp|{-sy|n-\0E-J-\05E;=6Hp|{-sy|n-xr{ry?Q`v r-J-=;@Hp|{-sy|n-zn\x07`prr{`}npr`}yn`v r-J-?=AE;=Hp|{-sy|n-]V-J-@;>A>BF?CBH<<-Y|t:pnyr-qrp|qv{t-p|{n{-5znpuv{t-qnn;p}}6p|{-sy|n-Y[l`PNYRlZV[-J-:>?;=Hp|{-sy|n-Y[l`PNYRlZNe-J-F;=H<<-`U-p|{n{p|{-sy|n-`UlP>-J-=;AEEC=?B>>F=?F>FFHp|{-sy|n-`UlP?l=-J->;=F?BAEAHp|{-sy|n-`UlP?l>-J-:>;=F?BAEAHp|{-sy|n-`UlP?l?-J-=;@>B@F>CHp|{-sy|n-`UlP?l@-J-:>;=F?BAEAHp|{-sy|n-`UlP?lA-J-=;BAC?DA?H<<-Qrp|qr-y|t:r{p|qrq-v{E-pnyr-onpx-|-sy|nsy|n-qrp|qrY|t`pnyr5v{-r{p|qrq6-\n----vs-5r{p|qrq-JJ-=6-r{-=;=H-<<-?QT`-znxr----sy|n-{|znyv rq-J-5sy|n5r{p|qrq6-:->;=6-<-?BA;=H----r{-r\x07}5{|znyv rq-7-5Y[l`PNYRlZNe-:-Y[l`PNYRlZV[6-8-Y[l`PNYRlZV[6H\f<<-Qrp|qr-|pnurqny-n\x07v:n{tyr-\0nr{v|{-s|z-@-v{E-nyrrpA-qrp|qr^n\\pnurqny5v{-r{pe9-v{-r{pf9-v{-r{pg6-\n----<<-Qrp|qr-|pnurqny-qvrpv|{----sy|n-|\x07-J-sy|n5r{pe6-<-?BB;=-7-?;=-:->;=H----sy|n-|\b-J-sy|n5r{pf6-<-?BB;=-7-?;=-:->;=H----<<-\\pnurqny-|-{v-rp|----sy|n-| -J->;=-:-no5|\x076-:-no5|\b6H----vs-5| -I-=;=6-\n--------sy|n-z}e-J-|\x07H--------|\x07-J-5>;=-:-no5|\b66-7-5|\x07-KJ-=;=-L->;=-G-:>;=6H--------|\b-J-5>;=-:-no5z}e66-7-5|\b-KJ-=;=-L->;=-G-:>;=6H----\f----rp@-n\x07v-J-{|znyv r5rp@5|\x079-|\b9-| 66H----<<-Qrp|qr-n{tyr-h=9-]Vj----sy|n-n{tyr-J-sy|n5r{pg6-<-?BB;=-7-]VH----sy|n-unysN{tyr-J-n{tyr-7-=;BH----sy|n-v{Unys-J-v{5unysN{tyr6H----sy|n-p|Unys-J-p|5unysN{tyr6H----r{-rpA5n\x07v-7-v{Unys9-p|Unys6H-<<-5\x079-\b9- 9-6\f<<-Ovyq-|nv|{-znv\x07-s|z-\0nr{v|{-5\x079-\b9- 9-6zn@-\0na|Zn@5rpA-\x006-\n----sy|n-\x07-J-\0;\x079-\b-J-\0;\b9- -J-\0; 9--J-\0;H----r{-zn@5-------->;=-:-?;=75\b7\b-8- 7 69-?;=75\x077\b-:- 769-------?;=75\x077 -8-\b769--------?;=75\x077\b-8- 769------->;=-:-?;=75\x077\x07-8- 7 69-?;=75\b7 -:-\x07769--------?;=75\x077 -:-\b769-------?;=75\b7 -8-\x07769------->;=-:-?;=75\x077\x07-8-\b7\b6----6H\frp?-tr`UQnnbc5v{-}ynVq\x079-v{-p|z}|{r{\\ssr9-rp?-r\x07r`v r6-\n----v{-uP|z}|{r{P|{-J-=H----vs-5lzn\x07`uQrtrr-KJ->6-uP|z}|{r{P|{-8J-FH----vs-5lzn\x07`uQrtrr-KJ-?6-uP|z}|{r{P|{-8J->BH----vs-5lzn\x07`uQrtrr-KJ-@6-uP|z}|{r{P|{-8J-?>H----v{-}nqqrqP|z}|{r{P|{-J-uP|z}|{r{P|{H----vs-5}nqqrqP|z}|{r{P|{-2-A-.J-=6-\n--------}nqqrqP|z}|{r{P|{-J-55}nqqrqP|z}|{r{P|{-<-A6-8->6-7-AH----\f----sy|n-yv{rnP|z}|{r{V{qr\x07-J-sy|n5}ynVq\x07-7-}nqqrqP|z}|{r{P|{-8-p|z}|{r{\\ssr6H----sy|n-r\x07ryV{qr\x07-J-yv{rnP|z}|{r{V{qr\x07-<-A;=H----sy|n-q-J-r\x07ryV{qr\x07-<-r\x07r`v r;\x07H----sy|n-\b-J-sy||5q6-<-r\x07r`v r;\bH----sy|n-\x07-J-snp5q6H----r{-rp?5\x079-\b6H\f|vq-znv{-56-\n----v{-}ynV{qr\x07b-J-v{5}ynV{qr\x07-8-=;B6H----v{-}ynV{qr\x07V-J-v{5}ynV{qr\x07b6H----<<-JJJ-P|z}np-s|znG-v{tyr-r\x07rySrpu9-A-\x07-v{@?-J->C-o\br<}yn-JJJ----<<-qnnh=jG-_-\v-TIIE-\v-OII>C-\v-NII?A----<<-qnnh>jG-pr{re5s>C6-\v-pr{rf5s>C6----<<-qnnh?jG-pr{rg5s>C6-\v-\0ne5E6II>C-\v-\0nf5E6II?A----<<-qnnh@jG-pnyre5E6-\v-pnyrf5E6IIE-\v-pnyrg5E6II>C-\v-\0ng5E6II?A----rpA-}npxrq-J-r\x07rySrpu5lr\x07r9-vrp?5}ynV{qr\x07b-3-=\x07Dss9-}ynV{qr\x07b-KK->>69-=6H----<<-Qrp|qr-}|vv|{-s|z-sy|n>C----rp?-}|ef-J-{}npxUnys?\x07>C5}npxrq;\b6H----rp?-}|g\0e-J-{}npxUnys?\x07>C5}npxrq; 6H----rp@-}ynPr{r-J-rp@5}|ef;\x079-}|ef;\b9-}|g\0e;\x076H----<<-Qrp|qr-\0nr{v|{-s|z-|pnurqny-r{p|qv{t----v{-\0nR{pe-J-5}npxrq; -KK->C6-3-=\x07ssH----v{-\0nR{pf-J-5}npxrq; -KK-?A6-3-=\x07ssH----v{-\0nR{pg-J-5}npxrq;-KK-?A6-3-=\x07ssH----rpA-\0n-J-qrp|qr^n\\pnurqny5\0nR{pe9-\0nR{pf9-\0nR{pg6H----<<-Qrp|qr-pnyr-s|z-y|t:r{p|qrq-v{E----sy|n-pnyre-J-qrp|qrY|t`pnyr5}npxrq;-3-=\x07ss6H----sy|n-pnyrf-J-qrp|qrY|t`pnyr55}npxrq;-KK-E6-3-=\x07ss6H----sy|n-pnyrg-J-qrp|qrY|t`pnyr55}npxrq;-KK->C6-3-=\x07ss6H----<<-Qrp|qr-p|y|----rpA-p|y|-J-rpA5--------sy|n5}npxrq;\x07-3-=\x07ss69--------sy|n55}npxrq;\x07-KK-E6-3-=\x07ss69--------sy|n55}npxrq;\x07-KK->C6-3-=\x07ss69--------sy|n55}npxrq;\x07-KK-?A6-3-=\x07ss6----6-<-?BB;=H----<<-_rnq-n{s|z----v{-n{s|zV{qr\x07-J-r\x07rySrpu5ln{s|zV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x07H----znA-n{s|z-J-znA5--------r\x07rySrpu5ln{s|z9-vrp?5=9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5>9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5?9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5@9-n{s|zV{qr\x0769-=6----6H----znA-n{s|zZ|qrycvrZnv\x07-J-vrZnv\x07-7-n{s|zH----rpA-|yqPr{r-J-n{s|z-7-rpA5}ynPr{r9->;=6H----<<-JJJ-Nttrtnv|{-rssrp-JJJ----sy|n-y|pny]|tr-J-lnttrtnv|{]|trH----sy|n-pnyr]|tr-J-=;=H----o||y-v{O|{qS|Nttrtnv|{-J-snyrH----vs-5lnttrtnv|{R{noyrq-33-lnttrtnv|{]|tr-I->;=6-\n--------o||y-v{O|{q-J-|yqPr{r;\x07-KJ-lnttrtnv|{O|{qZv{;\x07---------------------33-|yqPr{r;\x07-IJ-lnttrtnv|{O|{qZn\x07;\x07---------------------33-|yqPr{r; -KJ-lnttrtnv|{O|{qZv{; ---------------------33-|yqPr{r; -IJ-lnttrtnv|{O|{qZn\x07; H--------vs-5v{O|{q6-\n------------v{O|{qS|Nttrtnv|{-J-rH------------sy|n-urvtu_n{tr-J-lnttrtnv|{O|{qZn\x07;\b-:-lnttrtnv|{O|{qZv{;\bH------------sy|n-{|znyv rqUrvtu-J-urvtu_n{tr-K-=;==>----------------L-pynz}55|yqPr{r;\b-:-lnttrtnv|{O|{qZv{;\b6-<-urvtu_n{tr9-=;=9->;=6----------------G-=;BH------------sy|n-}|v{Q-J-pynz}5lnttrtnv|{]|v{Qnv|{9-=;=>9->;=6H------------sy|n-navzr-J-5>;=-:-{|znyv rqUrvtu6-7-5>;=-:-}|v{Q6H------------y|pny]|tr-J-pynz}55lnttrtnv|{]|tr-:-navzr6-<-}|v{Q9-=;=9->;=6H------------sy|n-|ssr]|tr-J-z||ur}5=;=9->;=9-y|pny]|tr6H------------pnyr]|tr-J-y|pny]|tr-7-y|pny]|tr-7-y|pny]|trH------------rp@-nttrtnv|{Pr{r-J-5lnttrtnv|{O|{qZv{-8-lnttrtnv|{O|{qZn\x076-<-?;=H------------rp@-qv-J-|yqPr{r;\x07\b -:-nttrtnv|{Pr{rH------------sy|n-qv-J-yr{tu5qv6H------------sy|n-n{q`rrq-J-q|5}ynPr{r9-rp@5>?;FEFE9-DE;?@@9-AB;>CA66H------------sy|n-n{qQv-J-snp5v{5n{q`rrq6-7-A@DBE;BAB@6H------------sy|n-n{tyr-J-n{q`rrq-7->=;=H------------rp@-pnrQv-J-{|znyv r5rp@5----------------p|5n{tyr69----------------zv\x075:=;D9-=;>9-snp5v{5n{q`rrq-7->;D6-7-A@DBE;BAB@669----------------v{5n{tyr6------------66H------------sy|n-r\x07}y|v|{Snp|-J-5>;=-:-|ssr]|tr6-7-5>;=-8->;=-7-n{qQv6H------------rp@-|ssr-J-pnrQv-7-qv-7-r\x07}y|v|{Snp|H------------|yqPr{r;\x07\b -8J-|ssrH------------}ynPr{r-J-5v{rr5n{s|z6-7-|yqPr{r6;\x07\b H--------\f----\f----<<-JJJ-Pyv}}r-purpx-JJJ----0vs-[bZlT`lPYV]]R_`-K-=----v{-yn\brV{qr\x07-J-v{5r\x07rySrpu5lyn\brV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x076H----vs-5yn\brV{qr\x07-KJ-=-33-yn\brV{qr\x07-I-[bZlT`lYNfR_`6-\n--------rp?-pyv}_n{tr-J-lyn\brPyv}}r_n{trhyn\brV{qr\x07jH--------v{-pyv}`n-J-v{5pyv}_n{tr;\x07-8-=;B6H--------v{-pyv}P|{-J-v{5pyv}_n{tr;\b-8-=;B6H--------v{-pyv}R{q-J-pyv}`n-8-pyv}P|{H--------s|-5v{-v-J-=H-v-I-[bZlT`lPYV]]R_`H-v886-\n----------------vs-5v-I-pyv}`n-\v\v-v-KJ-pyv}R{q6-\n--------------------p|{v{rH----------------\f----------------rpA-pyv}}r]|vv|{-J-lpyv}}rZnvprV{rrhvj-7-|yqPr{rH----------------o||y-pyv}}rq-J-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH----------------vs-5pyv}}rq6-\n--------------------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------------------r{H----------------\f--------\f----\f----0r{qvs----rpA-vrPr{r-J-n{s|zZ|qrycvrZnv\x07-7-rpA5}ynPr{r9->;=6H----rpA-pyv}Pr{r-J-}|wrpv|{Znv\x07-7-vrPr{rH----<<-Sz-pyyv{t----sy|n-pyv}-J->;?-7-pyv}Pr{r;H----vs-5pyv}Pr{r; -I-:pyv}Pr{r;-\v\v-pyv}Pr{r; -K-pyv}Pr{r;-\v\v--------pyv}Pr{r;\x07-I-:pyv}-\v\v-pyv}Pr{r;\x07-K-pyv}-\v\v--------pyv}Pr{r;\b-I-:pyv}-\v\v-pyv}Pr{r;\b-K-pyv}6-\n--------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------r{H----\f----rp@-{qpPr{r-J-pyv}Pr{r;\x07\b -<-pyv}Pr{r;H----rp?-s|pny-J-rp?5--------}|wrpv|{Znv\x07h=jh=j-7-r|yv|{;\x07-7-=;B9--------}|wrpv|{Znv\x07h>jh>j-7-r|yv|{;\b-7-=;B----6H----]|vv|{-J-}|vv|{;\x07\bH----<<-JJJ-P|z}r-@Q-p|nvn{pr-s|z-\0nr{v|{-8-pnyr-5v{:unqr9-{|-}r:p|z}nv|{6-JJJ----<<-auv-r}ynpr-ur-}r:p|z}rq-p|nvn{pr-rnq-s|z-ur-|yq-@?:o\br-s|zn;----<<-_rsrr{prG-`}nx-p|z}r-p|nvn{pr-v{-rr\x07-unqr-s|z-}npxrq-\0nr{v|{8pnyr;----zn@-|Zn-J-\0na|Zn@5\0n6H----zn@-pnyrZn-J-zn@5--------pnyre9-=;=9-=;=9--------=;=9-pnyrf9-=;=9--------=;=9-=;=9-pnyrg----6H----zn@-Z-J-pnyrZn-7-|ZnH----<<-cx-J-Z-7-Zka-5@Q-p|nvn{pr-v{-|owrp-}npr6----zn@-cx-J-zn@5--------q|5Zh=j9-Zh=j69-q|5Zh=j9-Zh>j69-q|5Zh=j9-Zh?j69--------q|5Zh>j9-Zh=j69-q|5Zh>j9-Zh>j69-q|5Zh>j9-Zh?j69--------q|5Zh?j9-Zh=j69-q|5Zh?j9-Zh>j69-q|5Zh?j9-Zh?j6----6H----<<-Wnp|ovn{-s|-}r}rpvr<|u|tn}uvp-}|wrpv|{----o||y-v\\u|tn}uvp-J-}|wrpv|{Znv\x07h@jh@j-K-=;DH----zn@-WH----vs-5v\\u|tn}uvp6-\n--------W-J-n{}|r5zn@5------------s|pny;\x079-=;=9-=;=9------------=;=9-s|pny;\b9-=;=9------------=;=9-=;=9-=;=--------66H----\f-ryr-\n--------sy|n--J->;=-<-5vrPr{r; -7-vrPr{r; 6H--------W-J-zn@5------------s|pny;\x07-<-vrPr{r; 9-=;=9-:5s|pny;\x07-7-vrPr{r;\x076-7-9------------=;=9-s|pny;\b-<-vrPr{r; 9-:5s|pny;\b-7-vrPr{r;\b6-7-9------------=;=9-=;=9-=;=--------6H----\f----zn@-d-J-n{}|r5zn@5n{s|zZ|qrycvrZnv\x0766H----zn@-a-J-d-7-WH----<<-]|wrp-@Q-p|nvn{pr-|-?Q----zn@-p|?Qz-J-n{}|r5a6-7-cx-7-aH----p|?Qzh=jh=j-8J-xr{ry?Q`v rH----p|?Qzh>jh>j-8J-xr{ry?Q`v rH----rp@-p|?Q-J-rp@5p|?Qzh=jh=j9-p|?Qzh=jh>j9-p|?Qzh>jh>j6H----sy|n-n-J-p|?Q;\x07H----sy|n-q-J-p|?Q; H----sy|n-o-J-p|?Q;\bH----sy|n-Q-J-n-7-q-:-o-7-oH----sy|n-npr-J-n-8-qH----sy|n-npr\\r?-J-=;B-7-nprH----sy|n-rz?-J-\05zn\x075=;>9-npr\\r?-7-npr\\r?-:-Q66H----sy|n-rvtr{cnyr>-J-npr\\r?-8-rz?H----sy|n-rvtr{cnyr?-J-npr\\r?-:-rz?H----vs-5rvtr{cnyr?-IJ-=;=6-\n--------r{H----\f----rp?-rvtr{crp|>-J-{|znyv r5rp?5o9-rvtr{cnyr>-:-n66H----rp?-rvtr{crp|?-J-rp?5rvtr{crp|>;\b9-:rvtr{crp|>;\x076H----rp?-onvcrp|>-J-rvtr{crp|>-7-zv{5\0E-7-\05rvtr{cnyr>69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcrp|?-J-rvtr{crp|?-7-zv{5\0E-7-\05rvtr{cnyr?69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcvr}|-J-rp?5>;=-<-r|yv|{;\x079->;=-<-r|yv|{;\b6H----rp?-{qp\\ssr-J-rp?5]|vv|{;\x07-7-onvcrp|>-8-]|vv|{;\b-7-onvcrp|?6-7---------------------onvcvr}|-7-?;=H----<<-]|v{:py|q-|-@QT`-n{vv|{----vs-5lnttrtnv|{R{noyrq6-\n--------sy|n-sv{ny`pnyr]|tr-J-v{O|{qS|Nttrtnv|{-L-pnyr]|tr-G-5lnttrtnv|{]|tr-7-lnttrtnv|{]|tr-7-lnttrtnv|{]|tr6H--------{qp\\ssr-7J-zv\x075=;>9->;=9-sv{ny`pnyr]|tr6H----\f----rpA-\0nq]|-J-rpA5{qpPr{r;\x07\b-8-{qp\\ssr9-{qpPr{r; 9->;=6H----tyl]|vv|{-J-\0nq]|H----<<-JJJ-`U-yvtuv{t-JJJ----vs-5lzn\x07`uQrtrr-KJ->6-\n--------rp@-pnzrn]|V{\\owrp-J-rp@5v{rr5n{s|z6-7-rpA5pnzrn]|vv|{9->;=66H--------rp@-|owrpcvrQv-J-{|znyv r5}ynPr{r-:-pnzrn]|V{\\owrp6H--------rpA-u=>?@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-=9-luar\x07r`v r66H--------rpA-uABCD-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-A9-luar\x07r`v r66H--------rpA-uEF>=>>-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-E9-luar\x07r`v r66H--------rp@-u>-J-u=>?@;toH--------rp@-u?-J-rp@5u=>?@;n9-uABCD;t6H--------rp@-u@-J-rp@5uABCD;on9-uEF>=>>;6H--------sy|n-\x07-J-|owrpcvrQv;\x07H--------sy|n-\b-J-|owrpcvrQv;\bH--------sy|n- -J-|owrpcvrQv; H--------rp@-uP|y|-J-u>-7-5:=;AEEC=?B-7-\b6-8-u?-7-5=;AEEC=?B-7- 6-8-u@-7-5:=;AEEC=?B-7-\x076H--------p|y|;to-8J-uP|y|H--------vs-5lzn\x07`uQrtrr-KJ-?6-\n------------rpA-u>?>@>A>B-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->?9-luar\x07r`v r66H------------rpA-u>C>D>E>F-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->C9-luar\x07r`v r66H------------rpA-u?=?>???@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-?=9-luar\x07r`v r66H------------rp@-uA-J-uEF>=>>;tonH------------rp@-uB-J-u>?>@>A>B;toH------------rp@-uC-J-rp@5u>?>@>A>B;n9-u>C>D>E>F;t6H------------rp@-uD-J-rp@5u>C>D>E>F;on9-u?=?>???@;6H------------rp@-uElqrt?-J-u?=?>???@;tonH------------sy|n-\x07\x07-J-\x07-7-\x07H------------sy|n-\b\b-J-\b-7-\bH------------sy|n- -J- -7- H------------sy|n-\x07\b-J-\x07-7-\bH------------sy|n-\b -J-\b-7- H------------sy|n-\x07 -J-\x07-7- H------------p|y|;to-8J----------------5`UlP?l=-7-\x07\b6-7-uA-8----------------5`UlP?l>-7-\b 6-7-uB-8----------------5`UlP?l?-7-5?;=-7- -:-\x07\x07-:-\b\b66-7-uC-8----------------5`UlP?l@-7-\x07 6-7-uD-8----------------5`UlP?lA-7-5\x07\x07-:-\b\b66-7-uElqrt?H--------\f----\f----p|y|;to-J-pynz}5p|y|;to9-rp@5=;=69-rp@5>;=66H----P|y|-J-p|y|H----]|vv|{-7J-\0EH----b-J-}|vv|{;\x07\bH\f"), Ey = function(...e) {
|
|
25944
25983
|
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
25945
|
-
}("}rpvv|{-uvtu}-sy|nH0v{pyqr-Ip|zz|{Kn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bH|vq-znv{-56-\n----<<-计算从-}yn-中心到当前片段的平方距离----<<-由于-]|vv|{-已经按-\05E6-缩放,平方结果会被缩放-E-倍----<<-如果平方结果大于-E,说明在椭圆外,距离均值超过-\05E6-个标准差----sy|n-N-J-q|5]|vv|{9-]|vv|{6H----vs-5N-K-E;=6-qvpnqH--------rp@-p|y|-J-P|y|;toH--------<<-由于渲染的-}yn-按-\05E6-缩放,高斯公式中的逆协方差矩阵部分变成单位矩阵----<<-因此只剩下-5e-:-zrn{6-7-5e-:-zrn{6,而-zrn{-为零,所以是-e-7-e,即-N----sy|n-|}npv\b-J-r\x07}5:=;B-7-N6-7-P|y|;nH--------tylSntP|y|-J-rpA5p|y|;to9-|}npv\b6H\f"),
|
|
25984
|
+
}("}rpvv|{-uvtu}-sy|nH0v{pyqr-Ip|zz|{Kn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bH|vq-znv{-56-\n----<<-计算从-}yn-中心到当前片段的平方距离----<<-由于-]|vv|{-已经按-\05E6-缩放,平方结果会被缩放-E-倍----<<-如果平方结果大于-E,说明在椭圆外,距离均值超过-\05E6-个标准差----sy|n-N-J-q|5]|vv|{9-]|vv|{6H----vs-5N-K-E;=6-qvpnqH--------rp@-p|y|-J-P|y|;toH--------<<-由于渲染的-}yn-按-\05E6-缩放,高斯公式中的逆协方差矩阵部分变成单位矩阵----<<-因此只剩下-5e-:-zrn{6-7-5e-:-zrn{6,而-zrn{-为零,所以是-e-7-e,即-N----sy|n-|}npv\b-J-r\x07}5:=;B-7-N6-7-P|y|;nH--------tylSntP|y|-J-rpA5p|y|;to9-|}npv\b6H\f"), Dy = 2, Oy = class extends e.Mesh {
|
|
25946
25985
|
constructor() {
|
|
25947
|
-
super(), this.renderData = null, this.needsRender = !1, this.sortWorker = null, this.depthIndex = new Uint32Array(), this.splatIndexCapacity = 0, this.activeSlot = null, this.pendingSlot = null, this.rebuildGeneration = 0, this.forceClipperUniformRefresh = !1, this.incrementalUpdateInFlight = !1, this.dataTexture = null, this.transformsTexture = null, this.transformIndicesTexture = null, this.layerIndicesTexture = null, this.shTexture = null, this.usedSHDegree = 0, this.onBeforeRender = (t, n, r) => {
|
|
25986
|
+
super(), this.renderData = null, this.needsRender = !1, this.sortWorker = null, this.depthIndex = new Uint32Array(), this.splatIndexCapacity = 0, this.activeSlot = null, this.pendingSlot = null, this.rebuildGeneration = 0, this.forceClipperUniformRefresh = !1, this.incrementalUpdateInFlight = !1, this.freeSlotPool = [], this.dataTexture = null, this.transformsTexture = null, this.transformIndicesTexture = null, this.layerIndicesTexture = null, this.shTexture = null, this.usedSHDegree = 0, this.sortDataRebuilding = !1, this.onBeforeRender = (t, n, r) => {
|
|
25948
25987
|
let i = r, a = this.collectObjects(n);
|
|
25949
25988
|
if (a.length === 0) {
|
|
25950
25989
|
this.geometry.instanceCount = 0;
|
|
@@ -25971,7 +26010,7 @@ var Sy = function(...e) {
|
|
|
25971
26010
|
this.geometry = t, this.material = n, this.frustumCulled = !1, this.renderOrder = -99999999999, this.gsSceneState = {
|
|
25972
26011
|
lastObjectsHash: "",
|
|
25973
26012
|
lastClipperHash: ""
|
|
25974
|
-
}, this.sortWorker = new
|
|
26013
|
+
}, this.sortWorker = new wy(), this.sortWorker.postMessage({ warmup: !0 }), xy.warmupWasm(), this.sortWorker.onmessage = (e) => {
|
|
25975
26014
|
if (e.data.depthIndex) {
|
|
25976
26015
|
let t = e.data.generation;
|
|
25977
26016
|
if (this.pendingSlot && t === this.pendingSlot.generation) {
|
|
@@ -26027,8 +26066,8 @@ var Sy = function(...e) {
|
|
|
26027
26066
|
}
|
|
26028
26067
|
createMaterial() {
|
|
26029
26068
|
return new e.ShaderMaterial({
|
|
26030
|
-
vertexShader:
|
|
26031
|
-
fragmentShader:
|
|
26069
|
+
vertexShader: Ty,
|
|
26070
|
+
fragmentShader: Ey,
|
|
26032
26071
|
defines: {
|
|
26033
26072
|
NUM_GS_LAYERS: 0,
|
|
26034
26073
|
NUM_GS_CLIPPERS: 0
|
|
@@ -26065,24 +26104,28 @@ var Sy = function(...e) {
|
|
|
26065
26104
|
createDefaultClipperMatrices(t) {
|
|
26066
26105
|
return Array.from({ length: t }, () => new e.Matrix4());
|
|
26067
26106
|
}
|
|
26068
|
-
createTextures(t) {
|
|
26069
|
-
|
|
26070
|
-
|
|
26071
|
-
|
|
26072
|
-
|
|
26073
|
-
|
|
26074
|
-
|
|
26075
|
-
|
|
26076
|
-
|
|
26077
|
-
|
|
26078
|
-
|
|
26079
|
-
|
|
26080
|
-
|
|
26081
|
-
|
|
26107
|
+
createTextures(t, n) {
|
|
26108
|
+
var r;
|
|
26109
|
+
let i;
|
|
26110
|
+
n && n.dataTexture.image.width === t.width && n.dataTexture.image.height === t.height ? (i = n.dataTexture, i.image.data = t.data, i.needsUpdate = !0) : (n && n.dataTexture.dispose(), i = new e.DataTexture(t.data, t.width, t.height, e.RGBAIntegerFormat, e.UnsignedIntType), i.internalFormat = "RGBA32UI", i.minFilter = e.NearestFilter, i.magFilter = e.NearestFilter, i.needsUpdate = !0);
|
|
26111
|
+
let a;
|
|
26112
|
+
n && n.transformsTexture.image.width === t.transformsWidth && n.transformsTexture.image.height === t.transformsHeight ? (a = n.transformsTexture, a.image.data = t.transforms, a.needsUpdate = !0) : (n && n.transformsTexture.dispose(), a = new e.DataTexture(t.transforms, t.transformsWidth, t.transformsHeight, e.RGBAFormat, e.FloatType), a.internalFormat = "RGBA32F", a.minFilter = e.NearestFilter, a.magFilter = e.NearestFilter, a.needsUpdate = !0);
|
|
26113
|
+
let o;
|
|
26114
|
+
n && n.transformIndicesTexture.image.width === t.transformIndicesWidth && n.transformIndicesTexture.image.height === t.transformIndicesHeight ? (o = n.transformIndicesTexture, o.image.data = t.transformIndices, o.needsUpdate = !0) : (n && n.transformIndicesTexture.dispose(), o = new e.DataTexture(t.transformIndices, t.transformIndicesWidth, t.transformIndicesHeight, e.RedIntegerFormat, e.UnsignedIntType), o.internalFormat = "R32UI", o.minFilter = e.NearestFilter, o.magFilter = e.NearestFilter, o.needsUpdate = !0);
|
|
26115
|
+
let s;
|
|
26116
|
+
n && n.layerIndicesTexture.image.width === t.layerIndicesWidth && n.layerIndicesTexture.image.height === t.layerIndicesHeight ? (s = n.layerIndicesTexture, s.image.data = t.layerIndices, s.needsUpdate = !0) : (n && n.layerIndicesTexture.dispose(), s = new e.DataTexture(t.layerIndices, t.layerIndicesWidth, t.layerIndicesHeight, e.RedIntegerFormat, e.UnsignedIntType), s.internalFormat = "R32UI", s.minFilter = e.NearestFilter, s.magFilter = e.NearestFilter, s.needsUpdate = !0);
|
|
26117
|
+
let c = (r = n == null ? void 0 : n.shTexture) == null ? null : r;
|
|
26118
|
+
return {
|
|
26119
|
+
dataTexture: i,
|
|
26120
|
+
transformsTexture: a,
|
|
26121
|
+
transformIndicesTexture: o,
|
|
26122
|
+
layerIndicesTexture: s,
|
|
26123
|
+
shTexture: c
|
|
26082
26124
|
};
|
|
26083
26125
|
}
|
|
26084
26126
|
createSHTexture(t) {
|
|
26085
26127
|
let { renderData: n, textures: r } = t;
|
|
26128
|
+
if (n.shDataReleased) return;
|
|
26086
26129
|
r.shTexture && (r.shTexture.dispose(), r.shTexture = null);
|
|
26087
26130
|
let i = Math.min(this.usedSHDegree, n.maxShDegree), a = 0;
|
|
26088
26131
|
if (i >= 1 && (a += 9), i >= 2 && (a += 15), i >= 3 && (a += 21), a === 0) return;
|
|
@@ -26104,7 +26147,7 @@ var Sy = function(...e) {
|
|
|
26104
26147
|
u[s] = n.sh3[e * 21 + i], r++;
|
|
26105
26148
|
}
|
|
26106
26149
|
}
|
|
26107
|
-
r.shTexture = new e.DataTexture(u, c, l, e.RGBAFormat, e.FloatType), r.shTexture.internalFormat = "RGBA32F", r.shTexture.minFilter = e.NearestFilter, r.shTexture.magFilter = e.NearestFilter, r.shTexture.needsUpdate = !0, this.material.uniforms.u_shTextureSize.value.set(c, l), this.material.uniforms.u_maxShDegree.value = i;
|
|
26150
|
+
r.shTexture = new e.DataTexture(u, c, l, e.RGBAFormat, e.FloatType), r.shTexture.internalFormat = "RGBA32F", r.shTexture.minFilter = e.NearestFilter, r.shTexture.magFilter = e.NearestFilter, r.shTexture.needsUpdate = !0, this.material.uniforms.u_shTextureSize.value.set(c, l), this.material.uniforms.u_maxShDegree.value = i, t.renderData.releaseSHData();
|
|
26108
26151
|
}
|
|
26109
26152
|
setMaxShDegree(e) {
|
|
26110
26153
|
var t, n;
|
|
@@ -26125,6 +26168,15 @@ var Sy = function(...e) {
|
|
|
26125
26168
|
disposeSlot(e) {
|
|
26126
26169
|
e && (e.renderData.dispose(), this.disposeTextures(e.textures));
|
|
26127
26170
|
}
|
|
26171
|
+
recycleSlot(e) {
|
|
26172
|
+
if (e) {
|
|
26173
|
+
if (this.freeSlotPool.length >= Dy) {
|
|
26174
|
+
let e = this.freeSlotPool.shift();
|
|
26175
|
+
this.disposeSlot(e);
|
|
26176
|
+
}
|
|
26177
|
+
e.renderData.releaseSortData(), e.renderData.releaseAggregatedData(), e.awaitingFirstSort = !0, e.sortDataUploaded = !1, this.freeSlotPool.push(e);
|
|
26178
|
+
}
|
|
26179
|
+
}
|
|
26128
26180
|
disposeTextures(e) {
|
|
26129
26181
|
e.dataTexture.dispose(), e.transformsTexture.dispose(), e.transformIndicesTexture.dispose(), e.layerIndicesTexture.dispose(), e.shTexture && (e.shTexture.dispose(), e.shTexture = null);
|
|
26130
26182
|
}
|
|
@@ -26136,7 +26188,7 @@ var Sy = function(...e) {
|
|
|
26136
26188
|
swapPendingToActive(e) {
|
|
26137
26189
|
if (!this.pendingSlot) return;
|
|
26138
26190
|
let t = this.activeSlot;
|
|
26139
|
-
this.activeSlot = this.pendingSlot, this.pendingSlot = null, this.renderData = this.activeSlot.renderData, this.ensureSplatIndexCapacity(this.activeSlot.renderData.numPoints), this.bindSlotTextures(this.activeSlot), this.activeSlot.sortDataUploaded = !0, this.forceClipperUniformRefresh = !0, this.applyDepthIndex(e), t && this.
|
|
26191
|
+
this.activeSlot = this.pendingSlot, this.pendingSlot = null, this.renderData = this.activeSlot.renderData, this.ensureSplatIndexCapacity(this.activeSlot.renderData.numPoints), this.bindSlotTextures(this.activeSlot), this.activeSlot.sortDataUploaded = !0, this.forceClipperUniformRefresh = !0, this.applyDepthIndex(e), t && this.recycleSlot(t);
|
|
26140
26192
|
}
|
|
26141
26193
|
createSlot(e) {
|
|
26142
26194
|
let t = {
|
|
@@ -26149,11 +26201,11 @@ var Sy = function(...e) {
|
|
|
26149
26201
|
return this.usedSHDegree > 0 && e.maxShDegree > 0 && this.createSHTexture(t), t;
|
|
26150
26202
|
}
|
|
26151
26203
|
updateSlotTextures(e) {
|
|
26152
|
-
e.renderData.dataChanged && (e.textures.dataTexture.needsUpdate = !0, e.renderData.dataChanged = !1), e.renderData.transformsChanged && (e.textures.transformsTexture.needsUpdate = !0, e.textures.transformIndicesTexture.needsUpdate = !0, e.renderData.transformsChanged = !1);
|
|
26204
|
+
e.renderData.dataChanged && (e.textures.dataTexture.needsUpdate = !0, e.renderData.dataChanged = !1), e.renderData.transformsChanged && (e.textures.transformsTexture.needsUpdate = !0, e.renderData.indexDataReleased || (e.textures.transformIndicesTexture.needsUpdate = !0), e.renderData.transformsChanged = !1);
|
|
26153
26205
|
}
|
|
26154
26206
|
postSortData(e) {
|
|
26155
26207
|
var t;
|
|
26156
|
-
let n =
|
|
26208
|
+
let n = e.renderData.positions, r = new Float32Array(e.renderData.transforms.slice().buffer), i = new Uint32Array(e.renderData.transformIndices.slice().buffer);
|
|
26157
26209
|
(t = this.sortWorker) == null || t.postMessage({ sortData: {
|
|
26158
26210
|
positions: n,
|
|
26159
26211
|
transforms: r,
|
|
@@ -26164,11 +26216,22 @@ var Sy = function(...e) {
|
|
|
26164
26216
|
n.buffer,
|
|
26165
26217
|
r.buffer,
|
|
26166
26218
|
i.buffer
|
|
26167
|
-
]), e.sortDataUploaded = !0;
|
|
26219
|
+
]), e.renderData.releaseSortData(), e.renderData.releaseIndexData(), e.sortDataUploaded = !0;
|
|
26168
26220
|
}
|
|
26169
26221
|
requestSort(e, t) {
|
|
26170
26222
|
var n;
|
|
26171
|
-
|
|
26223
|
+
if (e.renderData.initialBuildComplete) {
|
|
26224
|
+
if (e.renderData.dataChanged || e.renderData.transformsChanged || !e.sortDataUploaded) {
|
|
26225
|
+
if (e.renderData.sortDataReleased) {
|
|
26226
|
+
this.sortDataRebuilding || (this.sortDataRebuilding = !0, e.renderData.rebuildSortData().then(() => {
|
|
26227
|
+
this.sortDataRebuilding = !1, (this.activeSlot === e || this.pendingSlot === e) && (e.sortDataUploaded = !1, this.needsRender = !0);
|
|
26228
|
+
}));
|
|
26229
|
+
return;
|
|
26230
|
+
}
|
|
26231
|
+
this.postSortData(e);
|
|
26232
|
+
}
|
|
26233
|
+
(n = this.sortWorker) == null || n.postMessage({ viewProj: t });
|
|
26234
|
+
}
|
|
26172
26235
|
}
|
|
26173
26236
|
syncTransformsForSlot(e, t) {
|
|
26174
26237
|
e && t.forEach((t) => {
|
|
@@ -26223,9 +26286,19 @@ var Sy = function(...e) {
|
|
|
26223
26286
|
this.material.uniforms.u_layerClipperRanges.value = l, this.material.uniforms.u_clipperMatricesInverse.value = u, this.updateClipperCounts(s, d);
|
|
26224
26287
|
}
|
|
26225
26288
|
startPendingRebuild(e) {
|
|
26226
|
-
this.pendingSlot && (this.
|
|
26227
|
-
let t = new
|
|
26228
|
-
|
|
26289
|
+
this.pendingSlot && (this.recycleSlot(this.pendingSlot), this.pendingSlot = null), this.rebuildGeneration += 1;
|
|
26290
|
+
let t = new xy(e, this.rebuildGeneration), n = this.freeSlotPool.pop();
|
|
26291
|
+
if (n) {
|
|
26292
|
+
n.renderData.dispose();
|
|
26293
|
+
let e = this.createTextures(t, n.textures);
|
|
26294
|
+
this.pendingSlot = {
|
|
26295
|
+
generation: t.generation,
|
|
26296
|
+
renderData: t,
|
|
26297
|
+
textures: e,
|
|
26298
|
+
awaitingFirstSort: !0,
|
|
26299
|
+
sortDataUploaded: !1
|
|
26300
|
+
};
|
|
26301
|
+
} else this.pendingSlot = this.createSlot(t);
|
|
26229
26302
|
}
|
|
26230
26303
|
tryStartIncrementalUpdate(e) {
|
|
26231
26304
|
if (!this.activeSlot || this.pendingSlot || this.incrementalUpdateInFlight) return !1;
|
|
@@ -26236,9 +26309,7 @@ var Sy = function(...e) {
|
|
|
26236
26309
|
this.incrementalUpdateInFlight = !0;
|
|
26237
26310
|
let r = this.activeSlot;
|
|
26238
26311
|
return r.renderData.appendObjects(n).then((e) => {
|
|
26239
|
-
|
|
26240
|
-
let t = r.textures;
|
|
26241
|
-
r.textures = this.createTextures(r.renderData), this.usedSHDegree > 0 && r.renderData.maxShDegree > 0 && this.createSHTexture(r), this.bindSlotTextures(r), this.ensureSplatIndexCapacity(r.renderData.numPoints), r.sortDataUploaded = !1, r.awaitingFirstSort = !0, this.disposeTextures(t), this.forceClipperUniformRefresh = !0, this.gsSceneState.lastClipperHash = "", this.needsRender = !0;
|
|
26312
|
+
e && (this.activeSlot !== r || r.renderData.disposed || (r.textures = this.createTextures(r.renderData, r.textures), this.usedSHDegree > 0 && r.renderData.maxShDegree > 0 && this.createSHTexture(r), this.bindSlotTextures(r), this.ensureSplatIndexCapacity(r.renderData.numPoints), r.sortDataUploaded = !1, r.awaitingFirstSort = !0, this.forceClipperUniformRefresh = !0, this.gsSceneState.lastClipperHash = "", this.needsRender = !0));
|
|
26242
26313
|
}).catch((e) => {
|
|
26243
26314
|
console.warn("Incremental append failed, fallback to rebuild:", e);
|
|
26244
26315
|
}).finally(() => {
|
|
@@ -26246,9 +26317,11 @@ var Sy = function(...e) {
|
|
|
26246
26317
|
}), !0;
|
|
26247
26318
|
}
|
|
26248
26319
|
dispose() {
|
|
26249
|
-
this.disposeSlot(this.pendingSlot), this.pendingSlot = null, this.disposeSlot(this.activeSlot), this.activeSlot = null
|
|
26320
|
+
this.disposeSlot(this.pendingSlot), this.pendingSlot = null, this.disposeSlot(this.activeSlot), this.activeSlot = null;
|
|
26321
|
+
for (let e of this.freeSlotPool) this.disposeSlot(e);
|
|
26322
|
+
this.freeSlotPool.length = 0, this.renderData = null, this.sortWorker && this.sortWorker.terminate(), this.bindSlotTextures(null), this.geometry.dispose(), this.material.dispose();
|
|
26250
26323
|
}
|
|
26251
|
-
},
|
|
26324
|
+
}, ky = class extends e.Mesh {
|
|
26252
26325
|
constructor() {
|
|
26253
26326
|
super(), this.onBeforeRender = (e, t, n) => {
|
|
26254
26327
|
this.collectObjects(t).length > 0 && console.warn("未开启webgl2, 3dgs仅支持在开启webgl2模式后使用");
|
|
@@ -26260,9 +26333,9 @@ var Sy = function(...e) {
|
|
|
26260
26333
|
e instanceof Yn && e.visible && t.push(e);
|
|
26261
26334
|
}), t;
|
|
26262
26335
|
}
|
|
26263
|
-
},
|
|
26336
|
+
}, Ay = 1e3, jy = 90, My = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/", "//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/", "//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/", "//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/", "//vr-image-1.realsee-cdn.cn/"), Ny = new e.Sphere(), Py = new e.Box3(), Fy = new e.Vector4(), Iy = new e.Vector4(), Ly = new e.Color(), Ry = new e.Vector2(), zy = /* @__PURE__ */ new WeakMap(), By = tm([Qp(null)]), Vy = {}, Hy = class t extends an {
|
|
26264
26337
|
static get version() {
|
|
26265
|
-
return "6.8.0-alpha.
|
|
26338
|
+
return "6.8.0-alpha.29";
|
|
26266
26339
|
}
|
|
26267
26340
|
static get dracoPath() {
|
|
26268
26341
|
return eo.decoderPath;
|
|
@@ -26284,7 +26357,7 @@ var Sy = function(...e) {
|
|
|
26284
26357
|
}
|
|
26285
26358
|
constructor(t = {}) {
|
|
26286
26359
|
var n, r, i, a, o, s, c, l, u, d, f;
|
|
26287
|
-
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = $t(),
|
|
26360
|
+
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = $t(), Vy[this.fiveId] = this, this.currentUpdateArgs = {
|
|
26288
26361
|
time: H(),
|
|
26289
26362
|
args: []
|
|
26290
26363
|
}, this.currentMode = "Panorama", this.pano = {
|
|
@@ -26301,7 +26374,7 @@ var Sy = function(...e) {
|
|
|
26301
26374
|
}, this.fps = {
|
|
26302
26375
|
testCount: 0,
|
|
26303
26376
|
testTime: H()
|
|
26304
|
-
}, this.modeChangeDuration = (c = t.modeChangeDuration) == null ?
|
|
26377
|
+
}, this.modeChangeDuration = (c = t.modeChangeDuration) == null ? Ay : c, this.enableWheel = (l = t.enableWheel) == null ? !0 : l, typeof window < "u") if ("renderer" in t) t.renderer instanceof Jm && this.throwError(/* @__PURE__ */ Error("cannot render a internal renderer")), this.renderer = t.renderer;
|
|
26305
26378
|
else try {
|
|
26306
26379
|
this.renderer = new Jm({
|
|
26307
26380
|
preserveDrawingBuffer: t.preserveDrawingBuffer,
|
|
@@ -26311,7 +26384,7 @@ var Sy = function(...e) {
|
|
|
26311
26384
|
precision: t.precision,
|
|
26312
26385
|
powerPreference: t.powerPreference
|
|
26313
26386
|
});
|
|
26314
|
-
let e =
|
|
26387
|
+
let e = Yv();
|
|
26315
26388
|
this.renderer.setPixelRatio(e === 1 ? window.devicePixelRatio : 1), this.renderer.setSize(512, 512), this.renderer.setClearColor(this.backgroundColor, this.backgroundAlpha);
|
|
26316
26389
|
} catch (e) {
|
|
26317
26390
|
let t = e instanceof Error ? e : Error(String(e));
|
|
@@ -26325,7 +26398,7 @@ var Sy = function(...e) {
|
|
|
26325
26398
|
bottom: 0,
|
|
26326
26399
|
width: 1,
|
|
26327
26400
|
height: 1
|
|
26328
|
-
}, t.viewport), this.camera = new Zt(
|
|
26401
|
+
}, t.viewport), this.camera = new Zt(jy), this.scene = new th(), this.xrCustomObjectsScene = new e.Scene(), this.scene.add(this.xrCustomObjectsScene), this.scene.matrixAutoUpdate = !1, this.loadWorkTask = Promise.resolve(), this.requestProxy = (f = t.requestProxy) == null ? My : f, this.networkSubscribe = new sr(), this.networkSubscribe.on("network", (e, t, n, r) => {
|
|
26329
26402
|
var i;
|
|
26330
26403
|
this.emit("network.resource", Q("network.resource", {
|
|
26331
26404
|
source: e,
|
|
@@ -26333,17 +26406,17 @@ var Sy = function(...e) {
|
|
|
26333
26406
|
requestState: n,
|
|
26334
26407
|
detail: r
|
|
26335
26408
|
})), (i = this.analysis) == null || i.network(this.works, e, t, n, r);
|
|
26336
|
-
}), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup),
|
|
26409
|
+
}), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup), zy.set(this, By), this.modelScene = new Qf({ fiveId: this.fiveId }), this.modelScene.addEventListener("model.create", (e) => {
|
|
26337
26410
|
this.bindModel(e.model);
|
|
26338
26411
|
}), this.scene.add(this.modelScene);
|
|
26339
|
-
let [p] = this.modelScene.setModels(
|
|
26412
|
+
let [p] = this.modelScene.setModels(By, { forceReplaceImmediately: !0 });
|
|
26340
26413
|
V(p, "loaded", {
|
|
26341
26414
|
get() {
|
|
26342
26415
|
return !1;
|
|
26343
26416
|
},
|
|
26344
26417
|
set(e) {}
|
|
26345
|
-
}), this.videoTexture = new e.VideoTexture(t.videoInstance ||
|
|
26346
|
-
let m =
|
|
26418
|
+
}), this.videoTexture = new e.VideoTexture(t.videoInstance || Kv());
|
|
26419
|
+
let m = qv();
|
|
26347
26420
|
this.scene.add(m), this.state = {
|
|
26348
26421
|
mode: this.currentMode,
|
|
26349
26422
|
workCode: this.pano.workCode,
|
|
@@ -26373,7 +26446,7 @@ var Sy = function(...e) {
|
|
|
26373
26446
|
}
|
|
26374
26447
|
}
|
|
26375
26448
|
}
|
|
26376
|
-
|
|
26449
|
+
Gv(this), this.fiveRenderer = new qm(), this.adaptiveLuminancePass = new Em(), this.adaptiveLuminancePass.enabled = !1, this.fiveRenderer.composer.addPass(this.adaptiveLuminancePass), this.eyeDomeLightingPass = new km(this.camera), this.eyeDomeLightingPass.enabled = !1, this.fiveRenderer.composer.addPass(this.eyeDomeLightingPass), t.webgl2 ? (this.pbmGaussianSplattingRenderMesh = new Oy(), this.scene.add(this.pbmGaussianSplattingRenderMesh)) : this.scene.add(new ky());
|
|
26377
26450
|
}
|
|
26378
26451
|
get ident() {
|
|
26379
26452
|
return this.fiveId;
|
|
@@ -26387,11 +26460,11 @@ var Sy = function(...e) {
|
|
|
26387
26460
|
dispose() {
|
|
26388
26461
|
var t;
|
|
26389
26462
|
if (this.destroyed === !0) return;
|
|
26390
|
-
delete
|
|
26463
|
+
delete Vy[this.fiveId], this.emit("dispose"), this.destroyed = !0, this.pause(), this.stopAnimationLoop && (this.stopAnimationLoop(), this.stopAnimationLoop = void 0), this.off(), this.networkSubscribe.off(), this.controller && (this.controller.destroy(), this.controller = void 0);
|
|
26391
26464
|
let n = this.getElement();
|
|
26392
26465
|
n && n.parentNode && n.parentNode.removeChild(n);
|
|
26393
26466
|
let r = this.modelScene.parameter;
|
|
26394
|
-
r.pano0 && r.pano0.map.dispose(), r.pano1 && r.pano1.map !== ((t = r.pano0) == null ? void 0 : t.map) && r.pano1.map.dispose(), r.reset("pano0", "pano1"), this.modelScene.dispose(), this.scene.dispose(), this.xrCustomObjectsScene.dispose(),
|
|
26467
|
+
r.pano0 && r.pano0.map.dispose(), r.pano1 && r.pano1.map !== ((t = r.pano0) == null ? void 0 : t.map) && r.pano1.map.dispose(), r.reset("pano0", "pano1"), this.modelScene.dispose(), this.scene.dispose(), this.xrCustomObjectsScene.dispose(), zy.set(this, By), this.renderer && this.renderer.render(new e.Scene(), new e.Camera()), this.fiveRenderer.dispose(), this.renderer instanceof Jm && (this.renderer.forceContextLoss && this.renderer.forceContextLoss(), this.renderer.dispose());
|
|
26395
26468
|
}
|
|
26396
26469
|
setViewport(e) {
|
|
26397
26470
|
Object.assign(this.viewport, e), this.needsRender = !0;
|
|
@@ -26426,7 +26499,7 @@ var Sy = function(...e) {
|
|
|
26426
26499
|
if (!this.renderer) return;
|
|
26427
26500
|
let a = this.renderer.domElement.parentNode, { width: o = (n = a == null ? void 0 : a.offsetWidth) == null ? 512 : n, height: s = (r = a == null ? void 0 : a.offsetHeight) == null ? 512 : r } = e;
|
|
26428
26501
|
if (o = Math.max(1, o), s = Math.max(1, s), !t) {
|
|
26429
|
-
let e =
|
|
26502
|
+
let e = Yv(), n = typeof window < "u" ? window.devicePixelRatio : 1;
|
|
26430
26503
|
if (t = (i = e === 1 ? n : 1) == null ? 1 : i, t > 1) {
|
|
26431
26504
|
let e = Math.max(o, s) * t, n = Math.min(this.renderer.capabilities.maxTextureSize, 4096);
|
|
26432
26505
|
e > n && (t = Math.max(t / e * n, 1), t = Math.floor(t * 100) / 100);
|
|
@@ -26460,7 +26533,7 @@ var Sy = function(...e) {
|
|
|
26460
26533
|
return this.controller.updateCameraWithKeyframes(e, t, n);
|
|
26461
26534
|
}
|
|
26462
26535
|
get works() {
|
|
26463
|
-
return
|
|
26536
|
+
return zy.get(this) || By;
|
|
26464
26537
|
}
|
|
26465
26538
|
get work() {
|
|
26466
26539
|
return this.works[0];
|
|
@@ -26484,7 +26557,7 @@ var Sy = function(...e) {
|
|
|
26484
26557
|
load_(n, r, i, a = !0) {
|
|
26485
26558
|
var o, s, c, l, u, d, f, p, m, h;
|
|
26486
26559
|
let g = {};
|
|
26487
|
-
typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works ===
|
|
26560
|
+
typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works === By && (g.duration === void 0 && (g.duration = 0), g.effect === void 0 && (g.effect = "instant"));
|
|
26488
26561
|
let _ = {};
|
|
26489
26562
|
Object.assign(_, g.model), !_["3d-tiles"] && g["3d-tiles"] && (_["3d-tiles"] = g["3d-tiles"]), !_.textureOptions && g.textureOptions && (_.textureOptions = g.textureOptions), !_.textureOptions && this.textureOptions && (_.textureOptions = this.textureOptions);
|
|
26490
26563
|
let v = [];
|
|
@@ -26498,7 +26571,7 @@ var Sy = function(...e) {
|
|
|
26498
26571
|
return this.throwError(e), Promise.reject(e);
|
|
26499
26572
|
}
|
|
26500
26573
|
for (let e of y) this.bindWorkFetcher(e);
|
|
26501
|
-
r === void 0 && (r = "inherit"), r === "inherit" && this.works ===
|
|
26574
|
+
r === void 0 && (r = "inherit"), r === "inherit" && this.works === By && (r = "initial");
|
|
26502
26575
|
let b = this.currentMode, x = y.initial, S = x.work.observers[0], C = S ? {
|
|
26503
26576
|
workCode: S.work.workCode,
|
|
26504
26577
|
panoIndex: S.panoIndex
|
|
@@ -26569,7 +26642,7 @@ var Sy = function(...e) {
|
|
|
26569
26642
|
duration: E,
|
|
26570
26643
|
effect: D,
|
|
26571
26644
|
userAction: a
|
|
26572
|
-
} }, this.commonParams()), this.controllerInits[e]), c =
|
|
26645
|
+
} }, this.commonParams()), this.controllerInits[e]), c = Hv[o.mode].initAnimationEndState(s);
|
|
26573
26646
|
if (this.controller && b === e) this.controller.updateWork(y, c, {
|
|
26574
26647
|
effect: D,
|
|
26575
26648
|
duration: E
|
|
@@ -26577,7 +26650,7 @@ var Sy = function(...e) {
|
|
|
26577
26650
|
else {
|
|
26578
26651
|
if (this.controller) this.controller.destroy();
|
|
26579
26652
|
else {
|
|
26580
|
-
let t =
|
|
26653
|
+
let t = Hv[e].initAnimationEndState(s);
|
|
26581
26654
|
this.camera.setFromPose(t), this.emit("camera.update", Q("camera.update", {
|
|
26582
26655
|
state: this.getCurrentState(),
|
|
26583
26656
|
userAction: a
|
|
@@ -26598,7 +26671,7 @@ var Sy = function(...e) {
|
|
|
26598
26671
|
}
|
|
26599
26672
|
this.updateTime(this.currentUpdateArgs.time, 0, ...this.currentUpdateArgs.args);
|
|
26600
26673
|
};
|
|
26601
|
-
|
|
26674
|
+
zy.set(this, y);
|
|
26602
26675
|
let k = Promise.resolve();
|
|
26603
26676
|
if (w === t.Mode.Floorplan || w === t.Mode.Topview || w === t.Mode.Mapview || w === t.Mode.Model) {
|
|
26604
26677
|
this.modelScene.loaded === !1 && (this.camera.setFromPose(T), Mh(this.state, this.camera.pose));
|
|
@@ -26649,12 +26722,12 @@ var Sy = function(...e) {
|
|
|
26649
26722
|
pano0: null,
|
|
26650
26723
|
pano1: null,
|
|
26651
26724
|
modelAlpha: 1
|
|
26652
|
-
}),
|
|
26725
|
+
}), zy.set(this, By), this.modelScene.setModels(By, { forceReplaceImmediately: !0 }), this.renderer && this.modelScene.update(this.renderer, this.camera), this.needsRender = !0, this.currentMode = "Panorama", this.pano = {
|
|
26653
26726
|
workCode: "",
|
|
26654
26727
|
panoIndex: 0
|
|
26655
26728
|
}, this.camera.setFromPose({
|
|
26656
26729
|
distance: 0,
|
|
26657
|
-
fov:
|
|
26730
|
+
fov: jy,
|
|
26658
26731
|
longitude: 0,
|
|
26659
26732
|
latitude: 0,
|
|
26660
26733
|
offset: new e.Vector3(0, 0, 0)
|
|
@@ -26703,7 +26776,7 @@ var Sy = function(...e) {
|
|
|
26703
26776
|
duration: f,
|
|
26704
26777
|
effect: p,
|
|
26705
26778
|
userAction: i
|
|
26706
|
-
} }, this.commonParams()), this.controllerInits[e]), a =
|
|
26779
|
+
} }, this.commonParams()), this.controllerInits[e]), a = Hv[e].initAnimationEndState(r), o = Q("mode.change.request", {
|
|
26707
26780
|
prevMode: this.currentMode,
|
|
26708
26781
|
mode: e,
|
|
26709
26782
|
state: a,
|
|
@@ -26738,10 +26811,10 @@ var Sy = function(...e) {
|
|
|
26738
26811
|
let c = H(), l = this.renderer.getPixelRatio(), u = this.renderer.getRenderTarget(), d = this.getSize(new e.Vector2()), f = 0, p = 0, m = 1, h = 1, g, _, v, y, b;
|
|
26739
26812
|
typeof t == "number" ? (f = t, typeof n == "number" && (p = n), typeof r == "number" && (m = r), typeof i == "number" && (h = i), g = a, _ = o, b = s) : (f = t.x, p = t.y, m = t.width, h = t.height, g = t.pixelRatio, _ = t.flipY, v = t.helperVisible, y = t.skipPanorama, b = t.buffer), f = Math.floor(f), p = Math.floor(p), m = Math.floor(m), h = Math.floor(h), g = Math.floor(g == null ? l : g), _ = _ == null ? !1 : _;
|
|
26740
26813
|
let x = this.helperVisible, S = this.modelScene.parameter.modelAlpha;
|
|
26741
|
-
this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof
|
|
26814
|
+
this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof Hv.Panorama || this.controller instanceof Hv.VRPanorama || this.controller instanceof Hv.XRPanorama) && y === !0 && this.modelScene.parameter.set("modelAlpha", 1), this.modelScene.update(this.renderer, this.camera);
|
|
26742
26815
|
let C = this.getPixelsRenderTarget;
|
|
26743
26816
|
C.setSize(m * g, h * g), this.renderer.setRenderTarget(C), this.camera.pixelRatio = g, this.camera.resolution.set(m, h), this.camera.setViewOffset(d.width, d.height, f, d.height - p - h, m, h), this.camera.aspect = d.width / d.height, this.camera.updateTime(c), this.scene.update(this.renderer, this.camera);
|
|
26744
|
-
let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O =
|
|
26817
|
+
let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O = Ly.copy(this.renderer.getClearColor()), k = this.renderer.getClearAlpha(), A = this.renderer.getScissorTest();
|
|
26745
26818
|
this.renderer.autoClear = !0, this.renderer.autoClearColor = !0, this.renderer.autoClearDepth = !0, this.renderer.autoClearStencil = !0, this.renderer.setScissorTest(!1);
|
|
26746
26819
|
let j = this.scene.background;
|
|
26747
26820
|
this.scene.background = this.camera.isOrthographicCamera ? null : j, this.renderer.render(this.scene, this.camera), this.scene.background = j, this.renderer.autoClear = w, this.renderer.autoClearColor = T, this.renderer.autoClearDepth = E, this.renderer.autoClearStencil = D, this.renderer.setClearColor(O, k), this.renderer.setScissorTest(A), this.helperVisible = x, S === void 0 ? this.modelScene.parameter.reset("modelAlpha") : this.modelScene.parameter.set("modelAlpha", S), this.renderer.setRenderTarget(u), this.camera.clearViewOffset(), this.camera.pixelRatio = l, this.camera.resolution.copy(d), this.camera.aspect = this.camera.resolution.width / this.camera.resolution.height, this.camera.updateTime(c), this.modelScene.update(this.renderer, this.camera), this.scene.update(this.renderer, this.camera);
|
|
@@ -26764,9 +26837,9 @@ var Sy = function(...e) {
|
|
|
26764
26837
|
if (!t) return;
|
|
26765
26838
|
let n = t.getRenderTarget();
|
|
26766
26839
|
t.setRenderTarget(null);
|
|
26767
|
-
let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s =
|
|
26840
|
+
let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s = Ly.copy(t.getClearColor()), c = t.getClearAlpha(), l = t.getViewport(Fy), u = t.getScissor(Iy), d = t.getScissorTest();
|
|
26768
26841
|
t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0;
|
|
26769
|
-
let f = t.getSize(
|
|
26842
|
+
let f = t.getSize(Ry), p = Math.floor(f.x * this.viewport.left), m = Math.floor(f.y * this.viewport.bottom), h = Math.floor(f.x * this.viewport.width), g = Math.floor(f.y * this.viewport.height);
|
|
26770
26843
|
t.setClearColor(this.backgroundColor, this.backgroundAlpha), t.setViewport(p, m, h, g), t.setScissor(p, m, h, g);
|
|
26771
26844
|
let _ = this.viewport.bottom !== 0 || this.viewport.left !== 0 || this.viewport.width !== 1 || this.viewport.height !== 1;
|
|
26772
26845
|
t.setScissorTest(_);
|
|
@@ -26775,7 +26848,7 @@ var Sy = function(...e) {
|
|
|
26775
26848
|
let y = !0;
|
|
26776
26849
|
if (this.controller && this.controller.render() && (y = !1), y) {
|
|
26777
26850
|
let e = this.fiveRenderer.render(t, this.scene, this.modelScene, this.camera, this.needsRender);
|
|
26778
|
-
this.poweredByRealsee && e &&
|
|
26851
|
+
this.poweredByRealsee && e && ly(t);
|
|
26779
26852
|
}
|
|
26780
26853
|
this.scene.background = v, t.autoClear = r, t.autoClearColor = i, t.autoClearDepth = a, t.autoClearStencil = o, t.setClearColor(s, c), t.setViewport(l), t.setScissor(u), t.setScissorTest(d), t.setRenderTarget(n), e && ri.shared.add(e, !0);
|
|
26781
26854
|
}
|
|
@@ -26793,8 +26866,8 @@ var Sy = function(...e) {
|
|
|
26793
26866
|
}, !0, 0, 10);
|
|
26794
26867
|
}
|
|
26795
26868
|
if (this.camera.autoNearFar) {
|
|
26796
|
-
|
|
26797
|
-
let t =
|
|
26869
|
+
Py.makeEmpty(), Py.expandByObject(this.modelScene.boundingMesh);
|
|
26870
|
+
let t = Py.getBoundingSphere(Ny), n = t.radius * 2;
|
|
26798
26871
|
t.containsPoint(this.camera.position) || (n = this.camera.position.distanceTo(t.center) + t.radius), n = U(n, 800);
|
|
26799
26872
|
let r = n / 1e4;
|
|
26800
26873
|
r = U(r, .03, .1), this.camera.near !== r && (this.camera.near = r), this.camera.far !== n && (this.camera.far = n), this.camera.updateTime(e);
|
|
@@ -26924,7 +26997,7 @@ var Sy = function(...e) {
|
|
|
26924
26997
|
duration: this.modeChangeDuration,
|
|
26925
26998
|
effect: "fly",
|
|
26926
26999
|
userAction: !1
|
|
26927
|
-
} }, this.commonParams()), this.controllerInits[h]), i =
|
|
27000
|
+
} }, this.commonParams()), this.controllerInits[h]), i = Hv[h].initAnimationEndState(r);
|
|
26928
27001
|
g = i.longitude, _ = i.latitude, v = i.fov, y = i.offset, b = i.distance;
|
|
26929
27002
|
} else g = (s = t.longitude) == null ? this.state.longitude : s, _ = (c = t.latitude) == null ? this.state.latitude : c, v = (l = t.fov) == null ? this.state.fov : l, y = (u = t.offset) == null ? this.state.offset : u, b = (d = t.distance) == null ? this.state.distance : d;
|
|
26930
27003
|
let x = {
|
|
@@ -26962,7 +27035,7 @@ var Sy = function(...e) {
|
|
|
26962
27035
|
return this.changeMode(this.state.mode, e, this.modeChangeDuration, this.controller.userAction), !0;
|
|
26963
27036
|
}
|
|
26964
27037
|
if (!this.controller.isReady()) return !1;
|
|
26965
|
-
if (this.controller instanceof
|
|
27038
|
+
if (this.controller instanceof Hv.Model) {
|
|
26966
27039
|
if (bh(this.camera.pose.offset, this.state.offset)) {
|
|
26967
27040
|
let e = {
|
|
26968
27041
|
longitude: this.state.longitude,
|
|
@@ -26988,7 +27061,7 @@ var Sy = function(...e) {
|
|
|
26988
27061
|
return this.controller.moveToPano(e, t, !1), !0;
|
|
26989
27062
|
}
|
|
26990
27063
|
}
|
|
26991
|
-
if (this.controller instanceof
|
|
27064
|
+
if (this.controller instanceof Hv.Floorplan || this.controller instanceof Hv.Topview || this.controller instanceof Hv.Mapview) {
|
|
26992
27065
|
let t = .2, n = Math.PI / 45, r = i ? this.state.fov : ym(this.camera.pose.fov, this.state.fov, 1), a = Math.abs(this.camera.pose.distance - this.state.distance), o = a > t * 15 ? a / 15 : .2, s = i ? this.state.distance : ym(this.camera.pose.distance, this.state.distance, o), c = this.camera.pose.offset.distanceTo(this.state.offset), l = c > t * 15 ? c / 15 : t, u = i ? new e.Vector3().copy(this.state.offset) : bm(this.camera.pose.offset, this.state.offset, l), { longitude: d, latitude: f } = i ? {
|
|
26993
27066
|
longitude: this.state.longitude,
|
|
26994
27067
|
latitude: this.state.latitude
|
|
@@ -27035,7 +27108,7 @@ var Sy = function(...e) {
|
|
|
27035
27108
|
if (!(e === t.Mode.Floorplan || e === t.Mode.Topview || e === t.Mode.Mapview || e === t.Mode.Model) || this.modelScene.loaded) {
|
|
27036
27109
|
let e = this.readyCallbacks.slice();
|
|
27037
27110
|
this.readyCallbacks.length = 0;
|
|
27038
|
-
for (let t of e) this.controller instanceof
|
|
27111
|
+
for (let t of e) this.controller instanceof Hv.Panorama && t.tile === !0 && !this.controller.isTileReady() ? this.readyCallbacks.push(t) : t();
|
|
27039
27112
|
}
|
|
27040
27113
|
}
|
|
27041
27114
|
return !1;
|
|
@@ -27135,14 +27208,14 @@ var Sy = function(...e) {
|
|
|
27135
27208
|
}
|
|
27136
27209
|
applyController(e, n) {
|
|
27137
27210
|
if (!this.renderer) throw Error("renderer is not initialized.");
|
|
27138
|
-
let r =
|
|
27211
|
+
let r = Hv[e];
|
|
27139
27212
|
this.currentMode = e;
|
|
27140
27213
|
let i = new r(n);
|
|
27141
|
-
for (let e of
|
|
27214
|
+
for (let e of Wv) i.on(e, (...t) => {
|
|
27142
27215
|
if (this.emit(e, ...t)) return !1;
|
|
27143
27216
|
});
|
|
27144
27217
|
{
|
|
27145
|
-
let t =
|
|
27218
|
+
let t = Hv[e].initAnimationEndState(n), r = n.initial.userAction;
|
|
27146
27219
|
jh(this.state, t) || (Ah(this.state, t), this.emit("state.change", Q("state.change", {
|
|
27147
27220
|
userAction: r,
|
|
27148
27221
|
state: this.state
|
|
@@ -27326,7 +27399,7 @@ var Sy = function(...e) {
|
|
|
27326
27399
|
this.modelScene.needsRender = e;
|
|
27327
27400
|
}
|
|
27328
27401
|
};
|
|
27329
|
-
|
|
27402
|
+
Hy.Mode = {
|
|
27330
27403
|
Panorama: "Panorama",
|
|
27331
27404
|
Model: "Model",
|
|
27332
27405
|
Floorplan: "Floorplan",
|
|
@@ -27336,12 +27409,12 @@ Ry.Mode = {
|
|
|
27336
27409
|
XRPanorama: "XRPanorama"
|
|
27337
27410
|
}, typeof window < "u" && Object.assign(window, { __FIVE_DEBUG__: {
|
|
27338
27411
|
THREE: e,
|
|
27339
|
-
constructor:
|
|
27340
|
-
instances:
|
|
27412
|
+
constructor: Hy,
|
|
27413
|
+
instances: Vy
|
|
27341
27414
|
} });
|
|
27342
27415
|
//#endregion
|
|
27343
27416
|
//#region build/five/webxr/xrButton.js
|
|
27344
|
-
var
|
|
27417
|
+
var Uy = class {
|
|
27345
27418
|
static createButton(e) {
|
|
27346
27419
|
let t = document.createElement("button");
|
|
27347
27420
|
function n() {
|
|
@@ -27372,4 +27445,4 @@ var zy = class {
|
|
|
27372
27445
|
}
|
|
27373
27446
|
};
|
|
27374
27447
|
//#endregion
|
|
27375
|
-
export { Em as AdaptiveLuminancePass, ri as AnimationFrameLoop, Xf as BoundingMesh, Zt as Camera, sn as CustomShader, sn as PBMCustomShader, nm as EffectComposer, km as EyeDomeLightingPass, fr as Fetcher,
|
|
27448
|
+
export { Em as AdaptiveLuminancePass, ri as AnimationFrameLoop, Xf as BoundingMesh, Zt as Camera, sn as CustomShader, sn as PBMCustomShader, nm as EffectComposer, km as EyeDomeLightingPass, fr as Fetcher, Hy as Five, im as FivePass, qm as FiveRenderer, rm as FullScreenQuad, gm as Histogram, Jm as InternalWebGLRenderer, Vf as Model, Qf as ModelScene, X as Motion, sr as NetworkSubscribe, Kn as PBMContainer, Yn as PBMGSObject, bt as PBMGroup, gn as PBMMesh, hn as PBMMeshMaterial, cn as PBMPanoFilter, En as PBMPointCloud, Tn as PBMPointCloudMaterial, _n as PBMSkinnedMesh, on as PBMUpdateable, Wv as PROXY_CONTROLLER_EVENT_NAMES, oh as PanoCircleMesh, gh as PanoCircleMeshCustom, dh as PanoCircleMeshSolid, G as Parameter, th as Scene, an as Subscribe, hi as TextureLoader, Il as Tile, bf as Tile3D, bf as Tile3DModel, cd as TileCache, Zu as TileNode, ad as TileRequestScheduler, md as Tileset, td as Trajectory, nd as TrajectoryNode, Zp as Work, em as WorkResolvedObserver, Uy as XRButton, Uv as controllersDefaultInitArgs, Rt as coordinatesToVector, jl as createDebugBoundingMesh, tm as createWorks, Kr as defaultImageURLTransform, eo as draco, Yv as getViewportScale, Vt as headingToLongitude, kr as imageSupport, El as isBoundingVolume, _p as isPanoId, co as ktx2, ea as loadAt3d, cs as loadB3dm, ia as loadDome, da as loadDomez, Cc as loadFbx, _s as loadGltf, Mi as loadPbm, ys as loadPly, hs as loadPnts, ol as loadSplat, es as loadSpz, rl as loadX3p, Bt as longitudeToHeading, Dl as makeBoundingVolume, gp as panoEqual, hp as panoParse, Z as panoStringify, Qp as parseWork, zt as vectorToCoordinates, rp as workToJson };
|