@realsee/five 6.8.1 → 6.8.3
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/ai_guides/api.md +1 -1
- package/ai_guides/features/event.md +24 -1
- package/ai_guides/release_notes/6.8.md +1 -0
- package/docs/assets/hierarchy.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.BoundingMesh.html +1 -1
- package/docs/classes/five.EyeDomeLightingPass.html +1 -1
- package/docs/classes/five.Five.html +1 -1
- package/docs/classes/five.FivePass.html +1 -1
- package/docs/classes/five.Model.html +1 -1
- package/docs/classes/five.ModelScene.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 +1 -1
- package/docs/classes/five.PBMGroup.html +1 -1
- package/docs/classes/five.PBMMesh.html +1 -1
- package/docs/classes/five.PBMMeshMaterial.html +1 -1
- package/docs/classes/five.PBMPanoFilter.html +1 -1
- package/docs/classes/five.PBMPointCloud.html +1 -1
- package/docs/classes/five.PBMPointCloudMaterial.html +1 -1
- 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 +1 -1
- package/docs/classes/five.Tile3D.html +1 -1
- 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.GLTFObject.html +1 -1
- package/docs/classes/gltf-loader.THREEGLTFLoader.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.CSS2DObject.html +1 -1
- package/docs/classes/plugins.CSS3DObject.html +1 -1
- package/docs/classes/plugins.CSS3DSprite.html +1 -1
- package/docs/classes/plugins.InstancedPrefabBufferGeometry.html +18 -0
- package/docs/classes/plugins.Object3DHelperController.html +1 -1
- package/docs/classes/plugins.PointBufferGeometry.html +12 -0
- package/docs/classes/plugins.PrefabBufferGeometry.html +24 -0
- package/docs/classes/plugins.RoundedBoxGeometry.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 +1 -1
- package/docs/classes/vfx.ParticleGPU.html +1 -1
- package/docs/classes/vfx.SpotLight.html +1 -1
- package/docs/documents/api.html +1 -1
- package/docs/documents/features_event.html +34 -2
- package/docs/documents/release_notes_6.8.html +1 -0
- package/docs/functions/react.useFivePlugin.html +5 -4
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/five.AddableObject.html +1 -1
- package/docs/interfaces/five.EventCallback.html +1 -1
- package/docs/interfaces/five.GestureEvent.html +13 -13
- package/docs/interfaces/five.GesturePointer.html +9 -9
- package/docs/interfaces/five.ImageOptions.html +1 -1
- 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.ModeChangeEvent.html +2 -2
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ModelEvent.html +3 -3
- package/docs/interfaces/five.ModelSceneEvent.html +2 -2
- package/docs/interfaces/five.ModelTileEvent.html +3 -3
- package/docs/interfaces/five.MovePanoOptions.html +1 -1
- package/docs/interfaces/five.NetworkResourceEvent.html +2 -2
- package/docs/interfaces/five.ObjectEvent.html +2 -2
- package/docs/interfaces/five.PBMMaterial.html +1 -1
- package/docs/interfaces/five.PBMMeshMaterialParameters.html +1 -1
- package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
- package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
- package/docs/interfaces/five.PanoPrepareEvent.html +8 -4
- package/docs/interfaces/five.PanoTextureEvent.html +5 -5
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +9 -9
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ParameterMaterialValue.html +1 -1
- package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
- package/docs/interfaces/five.ParameterValue.html +1 -1
- package/docs/interfaces/five.Pose.html +1 -1
- package/docs/interfaces/five.RenderEvent.html +2 -2
- package/docs/interfaces/five.ResolvedParameterValue.html +1 -1
- 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.TopviewControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +9 -9
- package/docs/interfaces/five.ViewLayer.html +1 -1
- 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 +3 -3
- package/docs/interfaces/five.XRControllerEvent.html +4 -4
- package/docs/interfaces/five.XRControllerState.html +4 -4
- package/docs/interfaces/five.XRGestureEvent.html +7 -7
- package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +9 -9
- package/docs/interfaces/five.XRSessionEvent.html +3 -3
- package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
- package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.CSS2DPluginController.html +1 -1
- package/docs/interfaces/plugins.CSS2DPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.CSS2DPluginType.State.html +1 -1
- package/docs/interfaces/plugins.CSS3DPluginController.html +1 -1
- package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.CSS3DPluginType.State.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginController.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +7 -7
- 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 +1 -1
- package/docs/interfaces/plugins.Object3DHelperPluginType.BaseController.html +1 -1
- package/docs/interfaces/plugins.Object3DHelperPluginType.BaseHelper.html +1 -1
- package/docs/interfaces/plugins.Object3DHelperPluginType.BoundingBoxController.html +1 -1
- package/docs/interfaces/plugins.Object3DHelperPluginType.MoveController.html +1 -1
- package/docs/interfaces/plugins.Object3DHelperPluginType.MoveHelperAbstract.html +1 -1
- package/docs/interfaces/plugins.Object3DHelperPluginType.RotateController.html +1 -1
- package/docs/interfaces/plugins.Object3DHelperPluginType.RotateHelperAbstract.html +1 -1
- 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.PluginTemplateType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
- package/docs/interfaces/plugins.TrajectoryController.html +1 -1
- package/docs/interfaces/react.FiveAppProps.html +3 -3
- package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
- package/docs/interfaces/react.UseFivePluginOptions.html +5 -0
- package/docs/interfaces/react.UseFivePluginOptionsWithCreate.html +5 -0
- package/docs/modules/plugins.html +1 -1
- package/docs/modules/react.html +1 -1
- package/docs/types/five.ParseOptions.html +1 -1
- package/docs/variables/react.FiveApp.html +1 -1
- package/five/controllers/panorama.d.ts +2 -2
- package/five/controllers/xrPanorama.d.ts +4 -2
- package/five/index.js +22 -22
- package/five/index.mjs +503 -489
- package/five/utils/event.d.ts +5 -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/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +1 -0
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +3 -3
- package/plugins/index.mjs +608 -482
- package/plugins/thirdParty/instancedPrefabBufferGeometry.d.ts +32 -0
- package/plugins/thirdParty/pointBufferGeometry.d.ts +22 -0
- package/plugins/thirdParty/prefabBufferGeometry.d.ts +38 -0
- package/react/hooks/useFivePlugin.d.ts +7 -11
- package/react/index.d.ts +1 -1
- package/react/index.js +3 -3
- package/react/index.mjs +11 -10
- 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 +3 -3
- package/umd/five-react.js +3 -3
- 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 +8 -8
- 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/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: 2026/
|
|
5
|
-
* Version: 6.8.
|
|
4
|
+
* Generated: 2026/5/11
|
|
5
|
+
* Version: 6.8.3
|
|
6
6
|
* Terms:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
* Update: July 28, 2021
|
|
@@ -13012,7 +13012,7 @@ var ad = class {
|
|
|
13012
13012
|
let e = .3 * Math.max(1 - a / s, 0);
|
|
13013
13013
|
c -= e;
|
|
13014
13014
|
} else a > o && (c += .15);
|
|
13015
|
-
c = U(c,
|
|
13015
|
+
c = U(c, .5, e.maxScreenSpaceError), Math.abs(c - this.currentMaxScreenSpaceError) >= .1 && (this.currentMaxScreenSpaceError = c);
|
|
13016
13016
|
}
|
|
13017
13017
|
} else this.currentMaxScreenSpaceError = e.maxScreenSpaceError;
|
|
13018
13018
|
}
|
|
@@ -19580,6 +19580,8 @@ var Xh = new e.Box3(), Zh = new e.Vector3(), Qh = {
|
|
|
19580
19580
|
l,
|
|
19581
19581
|
c
|
|
19582
19582
|
]), d = this.modelScene.parameter, f = Eh("pano.prepare", {
|
|
19583
|
+
options: n,
|
|
19584
|
+
prevMode: this.mode,
|
|
19583
19585
|
prevPano: this.currentPano,
|
|
19584
19586
|
pano: a
|
|
19585
19587
|
});
|
|
@@ -19587,6 +19589,7 @@ var Xh = new e.Box3(), Zh = new e.Vector3(), Qh = {
|
|
|
19587
19589
|
this.pendingTextureId = null;
|
|
19588
19590
|
return;
|
|
19589
19591
|
}
|
|
19592
|
+
f.options !== n && Object.assign(n, f.options);
|
|
19590
19593
|
let p;
|
|
19591
19594
|
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) => {
|
|
19592
19595
|
var t;
|
|
@@ -20495,12 +20498,12 @@ function Jg(e, t, n, r = 1e3) {
|
|
|
20495
20498
|
}
|
|
20496
20499
|
//#endregion
|
|
20497
20500
|
//#region build/five/controllers/panorama.js
|
|
20498
|
-
var Yg =
|
|
20501
|
+
var Yg = "fly", Xg = Wu, Zg = new e.Raycaster(), Qg = new e.Vector3(), $g = [
|
|
20499
20502
|
new e.Vector3(0, 0, 0).multiplyScalar(.1),
|
|
20500
20503
|
new e.Vector3(1, 0, 0).multiplyScalar(.1),
|
|
20501
20504
|
new e.Vector3(-.5, 0, -Math.sqrt(3) / 2).multiplyScalar(.1),
|
|
20502
20505
|
new e.Vector3(-.5, 0, Math.sqrt(3) / 2).multiplyScalar(.1)
|
|
20503
|
-
],
|
|
20506
|
+
], e_ = Object.assign(Object.assign({}, ng), {
|
|
20504
20507
|
maxAccessibleDistance: 5,
|
|
20505
20508
|
panoTapTriggerRadius: .5,
|
|
20506
20509
|
panoCircleMeshCreator: (e, t) => e.position.distanceTo(e.standingPosition) > t.aerialObserverMinHeight ? new dh() : new oh(),
|
|
@@ -20513,20 +20516,20 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
20513
20516
|
tileAppearDuration: .5,
|
|
20514
20517
|
tileMaxRequest: 3,
|
|
20515
20518
|
flyEffectUseDepthBuffer: !1
|
|
20516
|
-
}),
|
|
20519
|
+
}), t_ = class t extends rg {
|
|
20517
20520
|
static parseArgs(e) {
|
|
20518
20521
|
var n, r, i, a, o, s, c, l;
|
|
20519
20522
|
if (e instanceof t) return e;
|
|
20520
20523
|
let u = super.parseArgs(e);
|
|
20521
20524
|
return Object.assign(Object.assign({}, u), {
|
|
20522
|
-
maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ?
|
|
20523
|
-
panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ?
|
|
20524
|
-
panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ?
|
|
20525
|
-
adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ?
|
|
20526
|
-
tileLevelForFov: (o = e.tileLevelForFov) == null ?
|
|
20527
|
-
tileAppearDuration: (s = e.tileAppearDuration) == null ?
|
|
20528
|
-
tileMaxRequest: (c = e.tileMaxRequest) == null ?
|
|
20529
|
-
flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ?
|
|
20525
|
+
maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ? e_.maxAccessibleDistance : n,
|
|
20526
|
+
panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ? e_.panoTapTriggerRadius : r,
|
|
20527
|
+
panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ? e_.panoCircleMeshCreator : i,
|
|
20528
|
+
adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ? e_.adjustPanoCircleMeshPositionBasedOnModel : a,
|
|
20529
|
+
tileLevelForFov: (o = e.tileLevelForFov) == null ? e_.tileLevelForFov : o,
|
|
20530
|
+
tileAppearDuration: (s = e.tileAppearDuration) == null ? e_.tileAppearDuration : s,
|
|
20531
|
+
tileMaxRequest: (c = e.tileMaxRequest) == null ? e_.tileMaxRequest : c,
|
|
20532
|
+
flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ? e_.flyEffectUseDepthBuffer : l
|
|
20530
20533
|
});
|
|
20531
20534
|
}
|
|
20532
20535
|
static initAnimationEndState(e) {
|
|
@@ -20546,8 +20549,8 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
20546
20549
|
panoId: Z(this.currentPano),
|
|
20547
20550
|
panoPicture: this.modelScene.parameter.resolveValue("pano1"),
|
|
20548
20551
|
position: this.camera.pose.offset.clone(),
|
|
20549
|
-
effect:
|
|
20550
|
-
effectEasing:
|
|
20552
|
+
effect: Yg,
|
|
20553
|
+
effectEasing: Xg,
|
|
20551
20554
|
fixCameraTransform: new e.Matrix4()
|
|
20552
20555
|
}, 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;
|
|
20553
20556
|
}
|
|
@@ -20686,9 +20689,9 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
20686
20689
|
let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Z({
|
|
20687
20690
|
panoIndex: n.panoIndex,
|
|
20688
20691
|
workCode: n.work.workCode
|
|
20689
|
-
}), s =
|
|
20690
|
-
|
|
20691
|
-
let [o] = r.intersectRaycaster(
|
|
20692
|
+
}), s = $g.map((n) => {
|
|
20693
|
+
Zg.ray.origin.copy(a), Zg.ray.origin.add(Qg.copy(n).setY(t)), Zg.ray.direction.set(0, -1, 0), Zg.firstHitOnly = !0, Zg.floorIndex = -1;
|
|
20694
|
+
let [o] = r.intersectRaycaster(Zg);
|
|
20692
20695
|
return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
|
|
20693
20696
|
});
|
|
20694
20697
|
s.sort((e, t) => t.y - e.y);
|
|
@@ -20735,7 +20738,7 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
20735
20738
|
else {
|
|
20736
20739
|
t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
|
|
20737
20740
|
let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
|
|
20738
|
-
e && (
|
|
20741
|
+
e && (Qg.set(e.x, e.y, e.z), Qg.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
|
|
20739
20742
|
}
|
|
20740
20743
|
let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
|
|
20741
20744
|
if (n === Z(this.currentPano)) {
|
|
@@ -20876,76 +20879,80 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
20876
20879
|
}
|
|
20877
20880
|
moveToPano(t, n, r) {
|
|
20878
20881
|
var i, a, o;
|
|
20879
|
-
let s = (i = n.effect) == null ? "fly" : i;
|
|
20880
20882
|
this.userAction = r, this.stopMomentumMovement();
|
|
20881
|
-
let
|
|
20882
|
-
if (!
|
|
20883
|
-
let
|
|
20884
|
-
|
|
20885
|
-
let
|
|
20883
|
+
let s = Z(t), c = this.works.getObserver(t);
|
|
20884
|
+
if (!c) throw Error(`Invalid PanoId ${JSON.stringify(t)}`);
|
|
20885
|
+
let l = Yr(c.images.up), u = this.imageOptions.size;
|
|
20886
|
+
u === void 0 && c && l && (u = Number(l)), u === void 0 && (u = 2048);
|
|
20887
|
+
let d = this.imageOptions.transform, f = Object.assign({ key: `pano.${s}` }, mr(this.imageOptions, [
|
|
20886
20888
|
"format",
|
|
20887
20889
|
"size",
|
|
20888
20890
|
"quality",
|
|
20889
20891
|
"sharpen",
|
|
20890
20892
|
"forceUseExifOrientation",
|
|
20891
20893
|
"mappings"
|
|
20892
|
-
])),
|
|
20893
|
-
right:
|
|
20894
|
-
left:
|
|
20895
|
-
up:
|
|
20896
|
-
down:
|
|
20897
|
-
front:
|
|
20898
|
-
back:
|
|
20899
|
-
},
|
|
20900
|
-
m,
|
|
20894
|
+
])), p = {
|
|
20895
|
+
right: c.images.work.getURL(c.images.right),
|
|
20896
|
+
left: c.images.work.getURL(c.images.left),
|
|
20897
|
+
up: c.images.work.getURL(c.images.up),
|
|
20898
|
+
down: c.images.work.getURL(c.images.down),
|
|
20899
|
+
front: c.images.work.getURL(c.images.front),
|
|
20900
|
+
back: c.images.work.getURL(c.images.back)
|
|
20901
|
+
}, m = "pano:" + pp([
|
|
20901
20902
|
p,
|
|
20902
|
-
f
|
|
20903
|
+
f,
|
|
20904
|
+
d
|
|
20903
20905
|
]);
|
|
20904
20906
|
if (this.pendingPanoTask) {
|
|
20905
|
-
if (this.pendingPanoTask.hash ===
|
|
20907
|
+
if (this.pendingPanoTask.hash === m) return;
|
|
20906
20908
|
{
|
|
20907
20909
|
let e = this.pendingPanoTask.panoId;
|
|
20908
|
-
(
|
|
20910
|
+
(i = this.panoMeshes.get(e)) == null || i.setProgress(0), this.emit("pano.texture.abort", Q("pano.texture.abort", {
|
|
20909
20911
|
error: null,
|
|
20910
20912
|
progress: 0,
|
|
20911
20913
|
meta: null,
|
|
20912
20914
|
pano: {
|
|
20913
|
-
panoIndex:
|
|
20914
|
-
workCode:
|
|
20915
|
+
panoIndex: c.panoIndex,
|
|
20916
|
+
workCode: c.work.workCode
|
|
20915
20917
|
}
|
|
20916
20918
|
}));
|
|
20917
20919
|
}
|
|
20918
20920
|
}
|
|
20919
|
-
let
|
|
20920
|
-
this.pending.add(
|
|
20921
|
-
let
|
|
20921
|
+
let h = "move-to-pano-" + s;
|
|
20922
|
+
this.pending.add(h);
|
|
20923
|
+
let g = Eh("pano.prepare", {
|
|
20924
|
+
options: n,
|
|
20925
|
+
prevMode: this.mode,
|
|
20922
20926
|
prevPano: this.currentPano,
|
|
20923
20927
|
pano: t
|
|
20924
20928
|
});
|
|
20925
|
-
if (this.emit("pano.prepare",
|
|
20926
|
-
this.pending.delete(
|
|
20929
|
+
if (this.emit("pano.prepare", g), g.defaultPrevented) {
|
|
20930
|
+
this.pending.delete(h);
|
|
20927
20931
|
return;
|
|
20928
20932
|
}
|
|
20929
|
-
|
|
20930
|
-
|
|
20933
|
+
g.options !== n && Object.assign(n, g.options);
|
|
20934
|
+
let _ = this.modelScene.parameter, v;
|
|
20935
|
+
_.pano0 && _.pano0.map.name === m ? v = _.pano0 : _.pano1 && _.pano1.map.name === m && (v = _.pano1);
|
|
20936
|
+
let y = (a = n.effect) == null ? Yg : a, b = (o = n.effectEasing) == null ? Xg : o;
|
|
20937
|
+
if (v) {
|
|
20931
20938
|
let r = {
|
|
20932
|
-
panoId:
|
|
20933
|
-
effect:
|
|
20934
|
-
effectEasing:
|
|
20939
|
+
panoId: s,
|
|
20940
|
+
effect: y,
|
|
20941
|
+
effectEasing: b,
|
|
20935
20942
|
panoPicture: {
|
|
20936
|
-
panoId:
|
|
20937
|
-
map:
|
|
20938
|
-
mapHistogram:
|
|
20939
|
-
mapSize:
|
|
20940
|
-
matrix:
|
|
20943
|
+
panoId: v.panoId,
|
|
20944
|
+
map: v.map,
|
|
20945
|
+
mapHistogram: v.mapHistogram,
|
|
20946
|
+
mapSize: v.mapSize,
|
|
20947
|
+
matrix: c.matrix.clone().premultiply(c.work.transform),
|
|
20941
20948
|
zoom: 1
|
|
20942
20949
|
},
|
|
20943
|
-
position:
|
|
20950
|
+
position: c.position.clone().applyMatrix4(c.work.transform),
|
|
20944
20951
|
fixCameraTransform: new e.Matrix4()
|
|
20945
20952
|
};
|
|
20946
|
-
r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture,
|
|
20953
|
+
r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture, c), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(g)).catch((e) => Yh(e)).then((e) => {
|
|
20947
20954
|
var i, a;
|
|
20948
|
-
if (!(e instanceof Error)) this.pending.delete(
|
|
20955
|
+
if (!(e instanceof Error)) this.pending.delete(h), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(s)) == null || i.setProgress(0), this.doMoveToPano(t, r, n);
|
|
20949
20956
|
else {
|
|
20950
20957
|
let t = null;
|
|
20951
20958
|
e instanceof Error && (t || (t = e));
|
|
@@ -20956,8 +20963,8 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
20956
20963
|
options: n,
|
|
20957
20964
|
prevPano: this.currentPano,
|
|
20958
20965
|
pano: {
|
|
20959
|
-
panoIndex:
|
|
20960
|
-
workCode:
|
|
20966
|
+
panoIndex: c.panoIndex,
|
|
20967
|
+
workCode: c.work.workCode
|
|
20961
20968
|
},
|
|
20962
20969
|
progress: 0,
|
|
20963
20970
|
state: r
|
|
@@ -20967,44 +20974,44 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
20967
20974
|
options: n,
|
|
20968
20975
|
prevPano: this.currentPano,
|
|
20969
20976
|
pano: {
|
|
20970
|
-
panoIndex:
|
|
20971
|
-
workCode:
|
|
20977
|
+
panoIndex: c.panoIndex,
|
|
20978
|
+
workCode: c.work.workCode
|
|
20972
20979
|
},
|
|
20973
20980
|
progress: 0,
|
|
20974
20981
|
state: r
|
|
20975
|
-
})), t instanceof Error && t.message && this.emit("error", t), this.pending.delete(
|
|
20982
|
+
})), t instanceof Error && t.message && this.emit("error", t), this.pending.delete(h), this.pendingPanoTask = void 0, (a = this.panoMeshes.get(s)) == null || a.setProgress(0);
|
|
20976
20983
|
}
|
|
20977
20984
|
});
|
|
20978
20985
|
return;
|
|
20979
20986
|
}
|
|
20980
|
-
let
|
|
20981
|
-
|
|
20982
|
-
panoId:
|
|
20983
|
-
hash:
|
|
20987
|
+
let x = this.panoMeshes.get(s);
|
|
20988
|
+
x && x.tap && x.tap(), this.pendingPanoTask = {
|
|
20989
|
+
panoId: s,
|
|
20990
|
+
hash: m,
|
|
20984
20991
|
onLoad: (r) => {
|
|
20985
|
-
var i
|
|
20986
|
-
let
|
|
20987
|
-
if (this.destroyed)
|
|
20992
|
+
var i;
|
|
20993
|
+
let a = r.body;
|
|
20994
|
+
if (this.destroyed) a.dispose();
|
|
20988
20995
|
else {
|
|
20989
|
-
|
|
20990
|
-
let r = Array.isArray(
|
|
20991
|
-
|
|
20992
|
-
let
|
|
20993
|
-
panoId:
|
|
20994
|
-
effect:
|
|
20995
|
-
effectEasing:
|
|
20996
|
+
a.name = m;
|
|
20997
|
+
let r = Array.isArray(a.image) ? a.image[0] : a.image, o = (i = r == null ? void 0 : r.width) == null ? 2048 : i, l = c.images.histogram;
|
|
20998
|
+
l || (l = new gm().formPixels(Uh(this.renderer, a, !0, fm).data), c.images.histogram = l);
|
|
20999
|
+
let u = {
|
|
21000
|
+
panoId: s,
|
|
21001
|
+
effect: y,
|
|
21002
|
+
effectEasing: b,
|
|
20996
21003
|
panoPicture: {
|
|
20997
|
-
panoId:
|
|
20998
|
-
map:
|
|
20999
|
-
mapSize:
|
|
21000
|
-
mapHistogram: new e.Vector4().fromArray(
|
|
21001
|
-
matrix:
|
|
21004
|
+
panoId: s,
|
|
21005
|
+
map: a,
|
|
21006
|
+
mapSize: o,
|
|
21007
|
+
mapHistogram: new e.Vector4().fromArray(l.toArray()),
|
|
21008
|
+
matrix: c.matrix.clone().premultiply(c.work.transform),
|
|
21002
21009
|
zoom: 1
|
|
21003
21010
|
},
|
|
21004
|
-
position:
|
|
21011
|
+
position: c.position.clone().applyMatrix4(c.work.transform),
|
|
21005
21012
|
fixCameraTransform: new e.Matrix4()
|
|
21006
21013
|
};
|
|
21007
|
-
|
|
21014
|
+
u.panoPicture && this.panoPictureObserverMap.set(u.panoPicture, c), this.doMoveToPano(t, u, n);
|
|
21008
21015
|
}
|
|
21009
21016
|
},
|
|
21010
21017
|
onError: (e) => {
|
|
@@ -21015,8 +21022,8 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21015
21022
|
options: n,
|
|
21016
21023
|
prevPano: this.currentPano,
|
|
21017
21024
|
pano: {
|
|
21018
|
-
panoIndex:
|
|
21019
|
-
workCode:
|
|
21025
|
+
panoIndex: c.panoIndex,
|
|
21026
|
+
workCode: c.work.workCode
|
|
21020
21027
|
},
|
|
21021
21028
|
progress: 0,
|
|
21022
21029
|
state: t
|
|
@@ -21026,8 +21033,8 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21026
21033
|
options: n,
|
|
21027
21034
|
prevPano: this.currentPano,
|
|
21028
21035
|
pano: {
|
|
21029
|
-
panoIndex:
|
|
21030
|
-
workCode:
|
|
21036
|
+
panoIndex: c.panoIndex,
|
|
21037
|
+
workCode: c.work.workCode
|
|
21031
21038
|
},
|
|
21032
21039
|
progress: 0,
|
|
21033
21040
|
state: t
|
|
@@ -21040,14 +21047,14 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21040
21047
|
meta: null,
|
|
21041
21048
|
pano: t
|
|
21042
21049
|
}));
|
|
21043
|
-
}).then(() => this.textureLoader.loadCubeTexture(
|
|
21050
|
+
}).then(() => this.textureLoader.loadCubeTexture(p, {
|
|
21044
21051
|
imageURL: {
|
|
21045
|
-
transform:
|
|
21046
|
-
options:
|
|
21052
|
+
transform: d,
|
|
21053
|
+
options: f
|
|
21047
21054
|
},
|
|
21048
21055
|
format: e.RGBFormat,
|
|
21049
21056
|
viaAjax: !0,
|
|
21050
|
-
fetcher: Sf(this.fiveId,
|
|
21057
|
+
fetcher: Sf(this.fiveId, c.work)
|
|
21051
21058
|
}, void 0, void 0, (e) => {
|
|
21052
21059
|
var n, r;
|
|
21053
21060
|
this.emit("pano.texture.progress", Q("pano.texture.progress", {
|
|
@@ -21055,7 +21062,7 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21055
21062
|
progress: e,
|
|
21056
21063
|
meta: null,
|
|
21057
21064
|
pano: t
|
|
21058
|
-
})), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) ===
|
|
21065
|
+
})), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) === m && ((r = this.panoMeshes.get(s)) == null || r.setProgress(e));
|
|
21059
21066
|
}, this.renderer)).catch((e) => {
|
|
21060
21067
|
let n = Yh(e);
|
|
21061
21068
|
return this.emit("pano.texture.error", Q("pano.texture.error", {
|
|
@@ -21064,9 +21071,9 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21064
21071
|
meta: null,
|
|
21065
21072
|
pano: t
|
|
21066
21073
|
})), n;
|
|
21067
|
-
}), Promise.resolve().then(() => Dh(
|
|
21074
|
+
}), Promise.resolve().then(() => Dh(g)).catch((e) => Yh(e))]).then(([e, n]) => {
|
|
21068
21075
|
var r, i, a, o;
|
|
21069
|
-
if (!(e instanceof Error) && !(n instanceof Error)) this.pending.delete(
|
|
21076
|
+
if (!(e instanceof Error) && !(n instanceof Error)) this.pending.delete(h), ((r = this.pendingPanoTask) == null ? void 0 : r.hash) === m ? (this.pendingPanoTask.onLoad(e), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(s)) == null || i.setProgress(0)) : e.body.dispose(), this.emit("pano.texture.success", Q("pano.texture.success", {
|
|
21070
21077
|
error: null,
|
|
21071
21078
|
progress: 1,
|
|
21072
21079
|
meta: e.meta,
|
|
@@ -21074,7 +21081,7 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21074
21081
|
}));
|
|
21075
21082
|
else {
|
|
21076
21083
|
let t = null;
|
|
21077
|
-
e instanceof Error ? t || (t = e) : e.body.dispose(), n instanceof Error && (t || (t = n)), this.pending.delete(
|
|
21084
|
+
e instanceof Error ? t || (t = e) : e.body.dispose(), n instanceof Error && (t || (t = n)), this.pending.delete(h), ((a = this.pendingPanoTask) == null ? void 0 : a.hash) === m && (this.pendingPanoTask.onError(t), this.pendingPanoTask = void 0, (o = this.panoMeshes.get(s)) == null || o.setProgress(0));
|
|
21078
21085
|
}
|
|
21079
21086
|
});
|
|
21080
21087
|
}
|
|
@@ -21339,9 +21346,9 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21339
21346
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
21340
21347
|
}), u = /* @__PURE__ */ new Map(), d = l.slice().sort((e, t) => {
|
|
21341
21348
|
let n = c[e], r = u.get(n);
|
|
21342
|
-
r === void 0 && (r =
|
|
21349
|
+
r === void 0 && (r = Qg.copy(n.standingPosition).applyMatrix4(n.work.transform).distanceTo(a), u.set(n, r));
|
|
21343
21350
|
let i = c[t], o = u.get(i);
|
|
21344
|
-
return o === void 0 && (o =
|
|
21351
|
+
return o === void 0 && (o = Qg.copy(i.standingPosition).applyMatrix4(i.work.transform).distanceTo(a), u.set(i, o)), r - o;
|
|
21345
21352
|
});
|
|
21346
21353
|
u.clear();
|
|
21347
21354
|
for (let e of [
|
|
@@ -21352,13 +21359,13 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21352
21359
|
]) for (let t of d) {
|
|
21353
21360
|
let n = c[t];
|
|
21354
21361
|
if (n) {
|
|
21355
|
-
let t =
|
|
21362
|
+
let t = Qg.copy(n.standingPosition).applyMatrix4(n.work.transform).sub(a);
|
|
21356
21363
|
if (t && t.length() !== 0 && s.angleTo(t) < e) return n;
|
|
21357
21364
|
}
|
|
21358
21365
|
}
|
|
21359
21366
|
let f = null;
|
|
21360
21367
|
if (n) {
|
|
21361
|
-
let e = n.ray.intersectBox(this.modelScene.boundingBox,
|
|
21368
|
+
let e = n.ray.intersectBox(this.modelScene.boundingBox, Qg);
|
|
21362
21369
|
e && (e.project(t), Math.abs(e.z) <= 1 && (f = e.clone()));
|
|
21363
21370
|
} else f = new e.Vector3(0, 0, 0);
|
|
21364
21371
|
if (f) {
|
|
@@ -21370,15 +21377,15 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21370
21377
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
21371
21378
|
}), n = /* @__PURE__ */ new Map(), i = e.slice().sort((e, r) => {
|
|
21372
21379
|
let i = c[e], a = n.get(i);
|
|
21373
|
-
a === void 0 && (a =
|
|
21380
|
+
a === void 0 && (a = Qg.copy(i.position).applyMatrix4(i.work.transform).distanceTo(t.position), n.set(i, a));
|
|
21374
21381
|
let o = c[r], s = n.get(o);
|
|
21375
|
-
return s === void 0 && (s =
|
|
21382
|
+
return s === void 0 && (s = Qg.copy(o.position).applyMatrix4(o.work.transform).distanceTo(t.position), n.set(o, s)), a - s;
|
|
21376
21383
|
});
|
|
21377
21384
|
n.clear();
|
|
21378
21385
|
for (let e of i) {
|
|
21379
21386
|
let n = c[e];
|
|
21380
21387
|
if (n) {
|
|
21381
|
-
let e =
|
|
21388
|
+
let e = Qg.copy(n.position).applyMatrix4(n.work.transform);
|
|
21382
21389
|
if (e.project(t), Math.abs(e.z) > 1) continue;
|
|
21383
21390
|
if (Math.pow(f.x - e.x, 2) + Math.pow(f.y - e.y, 2) < Math.pow(.4, 2)) return n;
|
|
21384
21391
|
}
|
|
@@ -21396,12 +21403,12 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21396
21403
|
let s = o.work.observers, c = o.accessibleNodes.filter((e) => {
|
|
21397
21404
|
if (e === this.currentPano.panoIndex && o.work.workCode === this.currentPano.workCode) return !1;
|
|
21398
21405
|
let t = s[e];
|
|
21399
|
-
return !t ||
|
|
21406
|
+
return !t || Qg.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
|
|
21400
21407
|
}), [l] = this.modelScene.intersectRaycaster(r);
|
|
21401
21408
|
if (l) {
|
|
21402
21409
|
let [e, t] = Rl(c, (e) => {
|
|
21403
21410
|
let t = s[e];
|
|
21404
|
-
return t ?
|
|
21411
|
+
return t ? Qg.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(l.point) : Infinity;
|
|
21405
21412
|
}, !0);
|
|
21406
21413
|
typeof e == "number" && t < this.panoTapTriggerRadius && (a = (n = s[e]) == null ? null : n);
|
|
21407
21414
|
}
|
|
@@ -21461,21 +21468,21 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21461
21468
|
}
|
|
21462
21469
|
}
|
|
21463
21470
|
}
|
|
21464
|
-
},
|
|
21471
|
+
}, n_ = Math.PI / 180, r_ = 180 / Math.PI, i_ = .001, a_ = 1, o_ = (() => {
|
|
21465
21472
|
let e = typeof navigator < "u" && /iPad|iPhone|iPod/.test(navigator.platform);
|
|
21466
21473
|
return () => e;
|
|
21467
|
-
})(),
|
|
21474
|
+
})(), s_ = (() => {
|
|
21468
21475
|
let e = typeof navigator < "u" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
21469
21476
|
return () => e;
|
|
21470
|
-
})(),
|
|
21477
|
+
})(), c_ = (() => {
|
|
21471
21478
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("Firefox") !== -1 && navigator.userAgent.indexOf("Android") !== -1;
|
|
21472
21479
|
return () => e;
|
|
21473
|
-
})(),
|
|
21480
|
+
})(), l_ = (() => {
|
|
21474
21481
|
let e = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9]+)/) : null, t = e ? parseInt(e[1], 10) : null;
|
|
21475
21482
|
return () => t;
|
|
21476
|
-
})(),
|
|
21483
|
+
})(), u_ = (() => {
|
|
21477
21484
|
let e = !1;
|
|
21478
|
-
if (
|
|
21485
|
+
if (l_() === 65) {
|
|
21479
21486
|
let t = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/) : null;
|
|
21480
21487
|
if (t) {
|
|
21481
21488
|
let [n, r, i, a] = t[1].split(".");
|
|
@@ -21483,41 +21490,41 @@ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
|
|
|
21483
21490
|
}
|
|
21484
21491
|
}
|
|
21485
21492
|
return () => e;
|
|
21486
|
-
})(), u_ = (() => {
|
|
21487
|
-
let e = a_() && o_() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
|
|
21488
|
-
return () => e;
|
|
21489
21493
|
})(), d_ = (() => {
|
|
21494
|
+
let e = o_() && s_() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
|
|
21495
|
+
return () => e;
|
|
21496
|
+
})(), f_ = (() => {
|
|
21490
21497
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("R7 Build") !== -1;
|
|
21491
21498
|
return () => e;
|
|
21492
21499
|
})();
|
|
21493
|
-
function
|
|
21500
|
+
function p_() {
|
|
21494
21501
|
let e = typeof window < "u" && (window.orientation == 90 || window.orientation == -90);
|
|
21495
|
-
return
|
|
21496
|
-
}
|
|
21497
|
-
function p_(e) {
|
|
21498
|
-
return !(isNaN(e) || e <= r_ || e > i_);
|
|
21502
|
+
return f_() ? !e : e;
|
|
21499
21503
|
}
|
|
21500
21504
|
function m_(e) {
|
|
21505
|
+
return !(isNaN(e) || e <= i_ || e > a_);
|
|
21506
|
+
}
|
|
21507
|
+
function h_(e) {
|
|
21501
21508
|
return e.w > 1 ? 0 : 2 * Math.acos(e.w);
|
|
21502
21509
|
}
|
|
21503
|
-
var
|
|
21510
|
+
var g_ = (() => {
|
|
21504
21511
|
let e = {};
|
|
21505
21512
|
return (t, n) => {
|
|
21506
21513
|
e[t] === void 0 && (console.warn("cardboard: " + n), e[t] = !0);
|
|
21507
21514
|
};
|
|
21508
21515
|
})();
|
|
21509
|
-
function
|
|
21516
|
+
function __(e) {
|
|
21510
21517
|
let t, n = e.indexOf("://");
|
|
21511
21518
|
t = n === -1 ? 0 : n + 3;
|
|
21512
21519
|
let r = e.indexOf("/", t);
|
|
21513
21520
|
return r === -1 && (r = e.length), e.substring(0, r);
|
|
21514
21521
|
}
|
|
21515
|
-
function
|
|
21522
|
+
function v_() {
|
|
21516
21523
|
if (typeof window > "u" || typeof document > "u") return !1;
|
|
21517
|
-
let e = window.self !== window.top, t =
|
|
21524
|
+
let e = window.self !== window.top, t = __(document.referrer), n = __(window.location.href);
|
|
21518
21525
|
return e && t !== n;
|
|
21519
21526
|
}
|
|
21520
|
-
var
|
|
21527
|
+
var y_ = (() => {
|
|
21521
21528
|
function e(e, t, n) {
|
|
21522
21529
|
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;
|
|
21523
21530
|
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;
|
|
@@ -21533,7 +21540,7 @@ var v_ = (() => {
|
|
|
21533
21540
|
return (r, i, a) => {
|
|
21534
21541
|
e(r, i), a && t(r, r, a), n(r, r);
|
|
21535
21542
|
};
|
|
21536
|
-
})(),
|
|
21543
|
+
})(), b_ = class {
|
|
21537
21544
|
constructor(t = new e.Vector3(), n = 0) {
|
|
21538
21545
|
this.sample = t, this.timestampS = n;
|
|
21539
21546
|
}
|
|
@@ -21543,15 +21550,15 @@ var v_ = (() => {
|
|
|
21543
21550
|
copy(e) {
|
|
21544
21551
|
this.set(e.sample, e.timestampS);
|
|
21545
21552
|
}
|
|
21546
|
-
},
|
|
21553
|
+
}, x_ = class {
|
|
21547
21554
|
constructor(t, n) {
|
|
21548
|
-
this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new
|
|
21555
|
+
this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new b_(), this.currentGyroMeasurement = new b_(), this.previousGyroMeasurement = new b_(), o_() ? 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();
|
|
21549
21556
|
}
|
|
21550
21557
|
addAccelMeasurement(e, t) {
|
|
21551
21558
|
this.currentAccelMeasurement.set(e, t);
|
|
21552
21559
|
}
|
|
21553
21560
|
addGyroMeasurement(e, t) {
|
|
21554
|
-
this.currentGyroMeasurement.set(e, t),
|
|
21561
|
+
this.currentGyroMeasurement.set(e, t), m_(t - this.previousGyroMeasurement.timestampS) && this.run_(), this.previousGyroMeasurement.copy(this.currentGyroMeasurement);
|
|
21555
21562
|
}
|
|
21556
21563
|
getOrientation() {
|
|
21557
21564
|
return this.filterQ;
|
|
@@ -21566,7 +21573,7 @@ var v_ = (() => {
|
|
|
21566
21573
|
let r = new e.Quaternion();
|
|
21567
21574
|
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();
|
|
21568
21575
|
let i = new e.Quaternion();
|
|
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)",
|
|
21576
|
+
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)", r_ * h_(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));
|
|
21570
21577
|
let a = new e.Quaternion();
|
|
21571
21578
|
a.copy(this.filterQ), a.multiply(i), this.filterQ.slerp(a, 1 - this.kFilter), this.previousFilterQ.copy(this.filterQ);
|
|
21572
21579
|
}
|
|
@@ -21580,7 +21587,7 @@ var v_ = (() => {
|
|
|
21580
21587
|
let r = new e.Quaternion(), i = new e.Vector3();
|
|
21581
21588
|
return i.copy(t), i.normalize(), r.setFromAxisAngle(i, t.length() * n), r;
|
|
21582
21589
|
}
|
|
21583
|
-
},
|
|
21590
|
+
}, S_ = class {
|
|
21584
21591
|
constructor(t, n) {
|
|
21585
21592
|
this.predictionTimeS = t, this.isDebug = n, this.previousQ = new e.Quaternion(), this.previousTimestampS = null, this.deltaQ = new e.Quaternion(), this.outQ = new e.Quaternion();
|
|
21586
21593
|
}
|
|
@@ -21589,11 +21596,11 @@ var v_ = (() => {
|
|
|
21589
21596
|
let i = new e.Vector3();
|
|
21590
21597
|
i.copy(n), i.normalize();
|
|
21591
21598
|
let a = n.length();
|
|
21592
|
-
if (a <
|
|
21599
|
+
if (a < n_ * 20) return this.isDebug && console.log("Moving slowly, at %s deg/s: no prediction", (r_ * a).toFixed(1)), this.outQ.copy(t), this.previousQ.copy(t), this.outQ;
|
|
21593
21600
|
let o = a * this.predictionTimeS;
|
|
21594
21601
|
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;
|
|
21595
21602
|
}
|
|
21596
|
-
},
|
|
21603
|
+
}, C_ = class {
|
|
21597
21604
|
constructor(e) {
|
|
21598
21605
|
this.coefficients = e;
|
|
21599
21606
|
}
|
|
@@ -21610,15 +21617,15 @@ var v_ = (() => {
|
|
|
21610
21617
|
for (let e = 0; e < this.coefficients.length; e++) n = t * (n + this.coefficients[e]);
|
|
21611
21618
|
return (n + 1) * e;
|
|
21612
21619
|
}
|
|
21613
|
-
},
|
|
21620
|
+
}, w_ = class {
|
|
21614
21621
|
constructor() {
|
|
21615
21622
|
this.angularAcceleration = null, this.angularVelocity = null, this.linearAcceleration = null, this.linearVelocity = null, this.orientation = null, this.position = null;
|
|
21616
21623
|
}
|
|
21617
|
-
},
|
|
21624
|
+
}, T_ = class {
|
|
21618
21625
|
constructor() {
|
|
21619
21626
|
this.leftDegrees = 0, this.rightDegrees = 0, this.upDegrees = 0, this.downDegrees = 0;
|
|
21620
21627
|
}
|
|
21621
|
-
},
|
|
21628
|
+
}, E_ = class {
|
|
21622
21629
|
constructor(t, n, r, i) {
|
|
21623
21630
|
this.viewer = {
|
|
21624
21631
|
id: "CardboardV1",
|
|
@@ -21646,11 +21653,11 @@ var v_ = (() => {
|
|
|
21646
21653
|
widthMeters: .11,
|
|
21647
21654
|
heightMeters: .062,
|
|
21648
21655
|
bevelMeters: .004
|
|
21649
|
-
}, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new
|
|
21650
|
-
let a =
|
|
21651
|
-
this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion =
|
|
21656
|
+
}, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new x_(t, i), this.posePredictor = new S_(n, i), this.isFirefoxAndroid = c_(), this.isIOS = o_();
|
|
21657
|
+
let a = l_();
|
|
21658
|
+
this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion = u_() || d_(), this.filterToWorldQ = new e.Quaternion(), o_() ? 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();
|
|
21652
21659
|
let o = typeof window < "u" ? -window.orientation * Math.PI / 180 : 0;
|
|
21653
|
-
this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(),
|
|
21660
|
+
this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(), p_() && this.filterToWorldQ.multiply(this.inverseWorldToScreenQ), this.resetQ = new e.Quaternion(), this.orientationOut_ = new Float32Array(4), this.previousTimestampS = Date.now();
|
|
21654
21661
|
}
|
|
21655
21662
|
getPosition() {
|
|
21656
21663
|
return null;
|
|
@@ -21675,20 +21682,20 @@ var v_ = (() => {
|
|
|
21675
21682
|
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_;
|
|
21676
21683
|
}
|
|
21677
21684
|
getPose() {
|
|
21678
|
-
let e = new
|
|
21685
|
+
let e = new w_();
|
|
21679
21686
|
return e.orientation = this.getOrientation(), e;
|
|
21680
21687
|
}
|
|
21681
21688
|
resetPose() {
|
|
21682
|
-
this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(),
|
|
21689
|
+
this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(), p_() && this.resetQ.multiply(this.inverseWorldToScreenQ), this.resetQ.multiply(this.originalPoseAdjustQ);
|
|
21683
21690
|
}
|
|
21684
21691
|
getFrameData(e) {
|
|
21685
21692
|
let t = this.getOrientation(), n = this.getEyeOffset(), r = this.getEyeProjectionMatrix();
|
|
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),
|
|
21693
|
+
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), y_(e.leftViewMatrix, t, n.left), y_(e.rightViewMatrix, t, n.right), e;
|
|
21687
21694
|
}
|
|
21688
21695
|
start() {
|
|
21689
21696
|
if (typeof window > "u") return () => {};
|
|
21690
21697
|
let e = this.onDeviceMotion_.bind(this), t = this.onOrientationChange_.bind(this), n = this.onMessage_.bind(this), r = this.onDeviceOrientation_.bind(this);
|
|
21691
|
-
return
|
|
21698
|
+
return o_() && v_() && window.addEventListener("message", n), window.addEventListener("orientationchange", t), this.isWithoutDeviceMotion ? window.addEventListener("deviceorientation", r) : window.addEventListener("devicemotion", e), () => {
|
|
21692
21699
|
window.removeEventListener("devicemotion", e), window.removeEventListener("deviceorientation", t), window.removeEventListener("orientationchange", t), window.removeEventListener("message", n);
|
|
21693
21700
|
};
|
|
21694
21701
|
}
|
|
@@ -21712,17 +21719,17 @@ var v_ = (() => {
|
|
|
21712
21719
|
right: []
|
|
21713
21720
|
};
|
|
21714
21721
|
{
|
|
21715
|
-
let i = e.left.upDegrees *
|
|
21722
|
+
let i = e.left.upDegrees * n_, a = e.left.downDegrees * n_, o = e.left.leftDegrees * n_, s = e.left.rightDegrees * n_, c = 2 / (o + s), l = 2 / (i + a);
|
|
21716
21723
|
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;
|
|
21717
21724
|
}
|
|
21718
21725
|
{
|
|
21719
|
-
let i = e.right.upDegrees *
|
|
21726
|
+
let i = e.right.upDegrees * n_, a = e.right.downDegrees * n_, o = e.right.leftDegrees * n_, s = e.right.rightDegrees * n_, c = 2 / (o + s), l = 2 / (i + a);
|
|
21720
21727
|
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;
|
|
21721
21728
|
}
|
|
21722
21729
|
return r;
|
|
21723
21730
|
}
|
|
21724
21731
|
getEyeFieldOfView() {
|
|
21725
|
-
let e = this.viewer, t = this.device, n = new
|
|
21732
|
+
let e = this.viewer, t = this.device, n = new C_(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 = r_ * Math.atan(n.distort(i / r)), l = r_ * Math.atan(n.distort(a / r)), u = r_ * Math.atan(n.distort(o / r)), d = r_ * Math.atan(n.distort(s / r)), f = new T_(), p = new T_();
|
|
21726
21733
|
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, {
|
|
21727
21734
|
left: f,
|
|
21728
21735
|
right: p
|
|
@@ -21739,13 +21746,13 @@ var v_ = (() => {
|
|
|
21739
21746
|
updateDeviceMotion_(e) {
|
|
21740
21747
|
let t = e.accelerationIncludingGravity, n = e.rotationRate, r = e.timeStamp / 1e3, i = r - this.previousTimestampS;
|
|
21741
21748
|
if (i < 0) {
|
|
21742
|
-
|
|
21749
|
+
g_("fusion-pose-sensor:invalid:non-monotonic", "Invalid timestamps detected: non-monotonic timestamp from devicemotion"), this.previousTimestampS = r;
|
|
21743
21750
|
return;
|
|
21744
|
-
} else if (i <=
|
|
21745
|
-
|
|
21751
|
+
} else if (i <= i_ || i > a_) {
|
|
21752
|
+
g_("fusion-pose-sensor:invalid:outside-threshold", "Invalid timestamps detected: Timestamp from devicemotion outside expected range."), this.previousTimestampS = r;
|
|
21746
21753
|
return;
|
|
21747
21754
|
}
|
|
21748
|
-
t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (
|
|
21755
|
+
t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (f_() ? 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;
|
|
21749
21756
|
}
|
|
21750
21757
|
onOrientationChange_() {
|
|
21751
21758
|
this.setScreenTransform_();
|
|
@@ -21767,19 +21774,19 @@ var v_ = (() => {
|
|
|
21767
21774
|
}
|
|
21768
21775
|
this.inverseWorldToScreenQ.copy(this.worldToScreenQ), this.inverseWorldToScreenQ.inverse();
|
|
21769
21776
|
}
|
|
21770
|
-
},
|
|
21777
|
+
}, D_ = [
|
|
21771
21778
|
0,
|
|
21772
21779
|
0,
|
|
21773
21780
|
.5,
|
|
21774
21781
|
1
|
|
21775
|
-
],
|
|
21782
|
+
], O_ = [
|
|
21776
21783
|
.5,
|
|
21777
21784
|
0,
|
|
21778
21785
|
.5,
|
|
21779
21786
|
1
|
|
21780
|
-
],
|
|
21787
|
+
], k_ = class {
|
|
21781
21788
|
constructor(t) {
|
|
21782
|
-
this.renderer = t, this.sensor = new
|
|
21789
|
+
this.renderer = t, this.sensor = new E_(.98, .04, !1, !1), this.scale = 1, this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera();
|
|
21783
21790
|
let n = this.sensor.start();
|
|
21784
21791
|
this.dispose = () => {
|
|
21785
21792
|
let t = this.renderer.getSize(new e.Vector2());
|
|
@@ -21792,15 +21799,15 @@ var v_ = (() => {
|
|
|
21792
21799
|
var i = t.autoUpdate;
|
|
21793
21800
|
i && (t.updateMatrixWorld(), t.autoUpdate = !1);
|
|
21794
21801
|
let a = {
|
|
21795
|
-
x: Math.round(r.width * E_[0]),
|
|
21796
|
-
y: Math.round(r.height * E_[1]),
|
|
21797
|
-
width: Math.round(r.width * E_[2]),
|
|
21798
|
-
height: Math.round(r.height * E_[3])
|
|
21799
|
-
}, o = {
|
|
21800
21802
|
x: Math.round(r.width * D_[0]),
|
|
21801
21803
|
y: Math.round(r.height * D_[1]),
|
|
21802
21804
|
width: Math.round(r.width * D_[2]),
|
|
21803
21805
|
height: Math.round(r.height * D_[3])
|
|
21806
|
+
}, o = {
|
|
21807
|
+
x: Math.round(r.width * O_[0]),
|
|
21808
|
+
y: Math.round(r.height * O_[1]),
|
|
21809
|
+
width: Math.round(r.width * O_[2]),
|
|
21810
|
+
height: Math.round(r.height * O_[3])
|
|
21804
21811
|
};
|
|
21805
21812
|
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);
|
|
21806
21813
|
let s = this.sensor.getEyeOffset();
|
|
@@ -21810,7 +21817,7 @@ var v_ = (() => {
|
|
|
21810
21817
|
} else this.renderer.render(t, n);
|
|
21811
21818
|
}
|
|
21812
21819
|
dispose() {}
|
|
21813
|
-
}, k_ = "data:image/png;base64,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", A_ = "data:image/png;base64,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", j_, M_ = {
|
|
21820
|
+
}, A_ = "data:image/png;base64,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", j_ = "data:image/png;base64,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", M_, N_ = {
|
|
21814
21821
|
zh: {
|
|
21815
21822
|
TITLE: "眼镜模式",
|
|
21816
21823
|
HIT: "请将手机横屏放入 VR 眼镜中"
|
|
@@ -21823,7 +21830,7 @@ var v_ = (() => {
|
|
|
21823
21830
|
TITLE: "メガネモード",
|
|
21824
21831
|
HIT: "携帯電話をVRメガネに水平に入れてください。"
|
|
21825
21832
|
}
|
|
21826
|
-
},
|
|
21833
|
+
}, P_ = typeof navigator < "u" ? (M_ = N_[navigator.language.split("-")[0]]) == null ? N_.zh : M_ : N_.zh, F_ = `
|
|
21827
21834
|
<style>
|
|
21828
21835
|
.$id {
|
|
21829
21836
|
all: initial;
|
|
@@ -21906,7 +21913,7 @@ var v_ = (() => {
|
|
|
21906
21913
|
.$id-modal-content-guide-cardboard-image {
|
|
21907
21914
|
width: 100px;
|
|
21908
21915
|
height: 82px;
|
|
21909
|
-
background-image: url(${
|
|
21916
|
+
background-image: url(${A_});
|
|
21910
21917
|
background-size: 100%;
|
|
21911
21918
|
background-repeat: no-repeat;
|
|
21912
21919
|
}
|
|
@@ -21948,7 +21955,7 @@ var v_ = (() => {
|
|
|
21948
21955
|
.$id-modal-content-guide-phone-image {
|
|
21949
21956
|
width: 58px;
|
|
21950
21957
|
height: 56px;
|
|
21951
|
-
background-image: url(${
|
|
21958
|
+
background-image: url(${j_});
|
|
21952
21959
|
background-size: 100%;
|
|
21953
21960
|
background-repeat: no-repeat;
|
|
21954
21961
|
}
|
|
@@ -22025,8 +22032,8 @@ Z
|
|
|
22025
22032
|
</div>
|
|
22026
22033
|
</div>
|
|
22027
22034
|
<div class="$id-modal-content">
|
|
22028
|
-
<div class="$id-modal-content-title">${
|
|
22029
|
-
<div class="$id-modal-content-hit">${
|
|
22035
|
+
<div class="$id-modal-content-title">${P_.TITLE}</div>
|
|
22036
|
+
<div class="$id-modal-content-hit">${P_.HIT}</div>
|
|
22030
22037
|
<div class="$id-modal-content-guide">
|
|
22031
22038
|
<div class="$id-modal-content-guide-phone">
|
|
22032
22039
|
<div class="$id-modal-content-guide-phone-move-x">
|
|
@@ -22085,7 +22092,7 @@ Z
|
|
|
22085
22092
|
</div>
|
|
22086
22093
|
</div>
|
|
22087
22094
|
`;
|
|
22088
|
-
function
|
|
22095
|
+
function I_(e) {
|
|
22089
22096
|
let t = 1, n = document.getElementsByTagName("meta");
|
|
22090
22097
|
for (let e = 0; e < n.length; e++) {
|
|
22091
22098
|
let r = n[e];
|
|
@@ -22095,15 +22102,15 @@ function F_(e) {
|
|
|
22095
22102
|
}
|
|
22096
22103
|
}
|
|
22097
22104
|
let r = (e) => Math.floor(e * t) + "px";
|
|
22098
|
-
return
|
|
22105
|
+
return F_.replace(/\n/g, " ").replace(/\ +/g, " ").replace(/\$id/g, e).replace(/(\d+)px/g, (e, t) => r(Number(t)));
|
|
22099
22106
|
}
|
|
22100
|
-
function
|
|
22101
|
-
let e = "five_vr_helper_" + $t(), t =
|
|
22107
|
+
function L_() {
|
|
22108
|
+
let e = "five_vr_helper_" + $t(), t = I_(e), n = document.createElement("div");
|
|
22102
22109
|
return n.className = e, n.innerHTML = t, n;
|
|
22103
22110
|
}
|
|
22104
22111
|
//#endregion
|
|
22105
22112
|
//#region build/five/meshes/panoSphereMesh.js
|
|
22106
|
-
var
|
|
22113
|
+
var R_ = new e.CircleBufferGeometry(.12, 16), z_ = "\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", B_ = "\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", V_ = "\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", H_ = "\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", U_ = class extends e.Object3D {
|
|
22107
22114
|
constructor() {
|
|
22108
22115
|
super(), this.progress = 0, this.opacity = 0, this.loading = !1, this.current = !1, this.disabled = !1, this.currentMotion = new X({
|
|
22109
22116
|
ringScale: 1.1,
|
|
@@ -22121,16 +22128,16 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22121
22128
|
depthWrite: !1,
|
|
22122
22129
|
transparent: !0
|
|
22123
22130
|
};
|
|
22124
|
-
this.hitTestMesh = new e.Mesh(
|
|
22131
|
+
this.hitTestMesh = new e.Mesh(R_, new e.MeshBasicMaterial(Object.assign(Object.assign({}, t), {
|
|
22125
22132
|
color: 0,
|
|
22126
22133
|
opacity: 0
|
|
22127
|
-
}))), this.hitTestMesh.scale.set(1.5, 1.5, 1.5), this.ringMesh = new e.Mesh(
|
|
22128
|
-
vertexShader:
|
|
22129
|
-
fragmentShader:
|
|
22134
|
+
}))), this.hitTestMesh.scale.set(1.5, 1.5, 1.5), this.ringMesh = new e.Mesh(R_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
|
|
22135
|
+
vertexShader: V_,
|
|
22136
|
+
fragmentShader: H_,
|
|
22130
22137
|
uniforms: { opacity: { value: 0 } }
|
|
22131
|
-
}))), this.panoMesh = new e.Mesh(
|
|
22132
|
-
vertexShader:
|
|
22133
|
-
fragmentShader:
|
|
22138
|
+
}))), this.panoMesh = new e.Mesh(R_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
|
|
22139
|
+
vertexShader: z_,
|
|
22140
|
+
fragmentShader: B_,
|
|
22134
22141
|
uniforms: {
|
|
22135
22142
|
circleScale: { value: 1.1 },
|
|
22136
22143
|
circleFade: { value: 0 },
|
|
@@ -22283,7 +22290,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22283
22290
|
dispose() {
|
|
22284
22291
|
this.hitTestMesh.material.dispose(), this.ringMesh.material.dispose(), this.panoMesh.material.dispose();
|
|
22285
22292
|
}
|
|
22286
|
-
},
|
|
22293
|
+
}, W_ = 1500, G_ = Object.assign({}, hr(e_, ["maxLatitude", "minLatitude"])), K_ = class t extends t_ {
|
|
22287
22294
|
static parseArgs(e) {
|
|
22288
22295
|
if (e instanceof t) return e;
|
|
22289
22296
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -22298,8 +22305,8 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22298
22305
|
}
|
|
22299
22306
|
constructor(e) {
|
|
22300
22307
|
let n = t.parseArgs(e);
|
|
22301
|
-
super(n), this.mode = "VRPanorama", this.cardboard = new
|
|
22302
|
-
let r =
|
|
22308
|
+
super(n), this.mode = "VRPanorama", this.cardboard = new k_(this.renderer);
|
|
22309
|
+
let r = L_();
|
|
22303
22310
|
this.helperElement = r;
|
|
22304
22311
|
let i = new Wh(r);
|
|
22305
22312
|
this.element.parentNode && (this.element.parentNode.insertBefore(r, this.element), this.updateHelperElementSize(), i.on("tap", () => this.emit("vr.requestExit", Q("vr.requestExit", {})))), this.destroyHelper = () => {
|
|
@@ -22408,7 +22415,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22408
22415
|
let n = T.get(t);
|
|
22409
22416
|
n ? (e.position.copy(n.position).applyMatrix4(n.work.transform), T.delete(t)) : (this.helper.remove(e), e.dispose(), this.panoMeshes.delete(t));
|
|
22410
22417
|
}), T.forEach((e, t) => {
|
|
22411
|
-
let n = new
|
|
22418
|
+
let n = new U_();
|
|
22412
22419
|
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);
|
|
22413
22420
|
}), this.camera.pose.distance > .1 || b ? this.panoMeshes.forEach((e, r) => {
|
|
22414
22421
|
e.setOpacity(0), e.updateTime && e.updateTime(t, n), e.visible = !1;
|
|
@@ -22524,7 +22531,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22524
22531
|
this.intersectMesh.visible = !1, this.activePanoMesh = void 0, this.activeTime = void 0;
|
|
22525
22532
|
return;
|
|
22526
22533
|
}
|
|
22527
|
-
if (this.activePanoMesh && this.activeTime && t - this.activeTime >
|
|
22534
|
+
if (this.activePanoMesh && this.activeTime && t - this.activeTime > W_) {
|
|
22528
22535
|
let e = this.activePanoMesh, t = null;
|
|
22529
22536
|
return this.panoMeshes.forEach((n, r) => {
|
|
22530
22537
|
n === e && (t = r);
|
|
@@ -22576,7 +22583,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22576
22583
|
onPinchGesture() {}
|
|
22577
22584
|
onMouseMove() {}
|
|
22578
22585
|
onMouseOut() {}
|
|
22579
|
-
},
|
|
22586
|
+
}, q_ = new e.Vector3(0, 1.6, 0), J_ = new e.Box3(), Y_ = new e.Vector3(), X_ = Object.assign({}, ng), Z_ = class t extends rg {
|
|
22580
22587
|
static parseArgs(e) {
|
|
22581
22588
|
return e instanceof t ? e : super.parseArgs(e);
|
|
22582
22589
|
}
|
|
@@ -22684,9 +22691,9 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22684
22691
|
let n = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), r = [];
|
|
22685
22692
|
for (let e of this.works) {
|
|
22686
22693
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
22687
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
22694
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (J_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), J_.containsPoint(n))) for (let t of e.observers) r.push(t);
|
|
22688
22695
|
}
|
|
22689
|
-
let i = Rl(r, (e) =>
|
|
22696
|
+
let i = Rl(r, (e) => Y_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n));
|
|
22690
22697
|
this.currentPano = i ? {
|
|
22691
22698
|
workCode: i.work.workCode,
|
|
22692
22699
|
panoIndex: i.panoIndex
|
|
@@ -22779,9 +22786,9 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22779
22786
|
}, g = [];
|
|
22780
22787
|
for (let e of this.works) {
|
|
22781
22788
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
22782
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
22789
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (J_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), J_.containsPoint(c))) for (let t of e.observers) g.push(t);
|
|
22783
22790
|
}
|
|
22784
|
-
let _ = Rl(g, (e) =>
|
|
22791
|
+
let _ = Rl(g, (e) => Y_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(c)), v = _ ? {
|
|
22785
22792
|
workCode: _.work.workCode,
|
|
22786
22793
|
panoIndex: _.panoIndex
|
|
22787
22794
|
} : {
|
|
@@ -22850,16 +22857,16 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22850
22857
|
}
|
|
22851
22858
|
}
|
|
22852
22859
|
if (r) {
|
|
22853
|
-
let n = new e.Vector3().copy(r.point).add(
|
|
22860
|
+
let n = new e.Vector3().copy(r.point).add(q_), i = [];
|
|
22854
22861
|
for (let e of this.works) {
|
|
22855
22862
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
22856
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
22863
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (J_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), J_.containsPoint(n))) for (let t of e.observers) i.push(t);
|
|
22857
22864
|
}
|
|
22858
|
-
let [a, o] = Rl(i, (e) =>
|
|
22859
|
-
a && o < 5 && (n.y =
|
|
22865
|
+
let [a, o] = Rl(i, (e) => Y_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n), !0);
|
|
22866
|
+
a && o < 5 && (n.y = Y_.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);
|
|
22860
22867
|
} else this.emit("gesture.tap", t), t.defaultPrevented || this.cameraBounce();
|
|
22861
22868
|
}
|
|
22862
|
-
},
|
|
22869
|
+
}, Q_ = new e.Box3(), $_ = new e.Vector3(), ev = .5, tv = Math.PI / 7, nv = {
|
|
22863
22870
|
defaultLongitude: Math.PI / 4,
|
|
22864
22871
|
defaultLatitude: Math.PI / 4,
|
|
22865
22872
|
defaultDistance: 150,
|
|
@@ -22868,20 +22875,20 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
22868
22875
|
cameraType: "auto",
|
|
22869
22876
|
cameraFence: null,
|
|
22870
22877
|
intersectMeshCreator: () => new Jh()
|
|
22871
|
-
},
|
|
22878
|
+
}, rv = class t extends Gh {
|
|
22872
22879
|
static parseArgs(e) {
|
|
22873
22880
|
var n, r, i, a, o, s, c, l;
|
|
22874
22881
|
if (e instanceof t) return e;
|
|
22875
22882
|
let u = super.parseArgs(e);
|
|
22876
22883
|
return Object.assign(Object.assign({}, u), {
|
|
22877
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
22878
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
22879
|
-
defaultDistance: (i = e.defaultDistance) == null ?
|
|
22880
|
-
maxLatitude: (a = e.maxLatitude) == null ?
|
|
22881
|
-
minLatitude: (o = e.minLatitude) == null ?
|
|
22882
|
-
cameraType: (s = e.cameraType) == null ?
|
|
22883
|
-
cameraFence: (c = e.cameraFence) == null ?
|
|
22884
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
22884
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? nv.defaultLongitude : n,
|
|
22885
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? nv.defaultLatitude : r,
|
|
22886
|
+
defaultDistance: (i = e.defaultDistance) == null ? nv.defaultDistance : i,
|
|
22887
|
+
maxLatitude: (a = e.maxLatitude) == null ? nv.maxLatitude : a,
|
|
22888
|
+
minLatitude: (o = e.minLatitude) == null ? nv.minLatitude : o,
|
|
22889
|
+
cameraType: (s = e.cameraType) == null ? nv.cameraType : s,
|
|
22890
|
+
cameraFence: (c = e.cameraFence) == null ? nv.cameraFence : c,
|
|
22891
|
+
intersectMeshCreator: (l = e.intersectMeshCreator) == null ? nv.intersectMeshCreator : l
|
|
22885
22892
|
});
|
|
22886
22893
|
}
|
|
22887
22894
|
static distanceFromModel(e, t, n) {
|
|
@@ -23081,9 +23088,9 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23081
23088
|
let n = [];
|
|
23082
23089
|
for (let t of this.works) {
|
|
23083
23090
|
let r = this.modelScene.models.find((e) => e.work === t);
|
|
23084
|
-
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (
|
|
23091
|
+
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (Q_.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), Q_.containsPoint(e.ray.origin) || e.ray.intersectsBox(Q_))) for (let e of t.observers) n.push(e);
|
|
23085
23092
|
}
|
|
23086
|
-
let [r, i] = Rl(n, (e) =>
|
|
23093
|
+
let [r, i] = Rl(n, (e) => $_.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
|
|
23087
23094
|
return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
|
|
23088
23095
|
}
|
|
23089
23096
|
coordinatesForOffset(t) {
|
|
@@ -23137,7 +23144,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23137
23144
|
fixFinalState(t) {
|
|
23138
23145
|
if (this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho === 1) return;
|
|
23139
23146
|
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);
|
|
23140
|
-
i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance >
|
|
23147
|
+
i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance > ev + i.near, i.near = this.camera.near, i.far = this.camera.far;
|
|
23141
23148
|
let a;
|
|
23142
23149
|
if (a = this.modelScene.intersectRaycaster(i)[0], a && a.distance < this.camera.near && (a = void 0), !a) {
|
|
23143
23150
|
let t = new e.Plane(new e.Vector3(0, 1, 0), -this.modelScene.boundingBox.min.y), n = i.ray.intersectPlane(t, new e.Vector3());
|
|
@@ -23216,7 +23223,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23216
23223
|
let c = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect) * 2;
|
|
23217
23224
|
s = Math.min(s, c);
|
|
23218
23225
|
let l = this.renderer.getSize(new e.Vector2()), u = 2 * r.x * s / l.y, d = 2 * r.y * s / l.y, f = new e.Vector3();
|
|
23219
|
-
f.setFromMatrixColumn(this.camera.matrix, 0), f.multiplyScalar(-u), a.add(f), this.camera.pose.latitude <
|
|
23226
|
+
f.setFromMatrixColumn(this.camera.matrix, 0), f.multiplyScalar(-u), a.add(f), this.camera.pose.latitude < tv ? f.setFromMatrixColumn(this.camera.matrix, 1) : (f.setFromMatrixColumn(this.camera.matrix, 0), f.crossVectors(this.camera.up, f)), f.multiplyScalar(d), a.add(f);
|
|
23220
23227
|
let p = Object.assign(Object.assign({}, this.currentPano), {
|
|
23221
23228
|
mode: this.mode,
|
|
23222
23229
|
longitude: this.camera.pose.longitude,
|
|
@@ -23241,7 +23248,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23241
23248
|
z: p.offset.z
|
|
23242
23249
|
}, 0).catch(K)), n.isFinal) {
|
|
23243
23250
|
let t = this.renderer.getSize(new e.Vector2()), r = 2 * n.velocityX * s / t.y, i = 2 * n.velocityY * s / t.y, a = new e.Vector3(), o = new e.Vector3();
|
|
23244
|
-
a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), o.add(a), this.camera.pose.latitude <
|
|
23251
|
+
a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), o.add(a), this.camera.pose.latitude < tv ? a.setFromMatrixColumn(this.camera.matrix, 1) : (a.setFromMatrixColumn(this.camera.matrix, 0), a.crossVectors(this.camera.up, a)), a.multiplyScalar(i), o.add(a), this.inMomentumMovement = { uuid: $t() }, this.requestMomentumMovement(n, !0, {
|
|
23245
23252
|
longitude: 0,
|
|
23246
23253
|
latitude: 0,
|
|
23247
23254
|
x: o.x,
|
|
@@ -23300,7 +23307,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23300
23307
|
return;
|
|
23301
23308
|
}
|
|
23302
23309
|
if (i === void 0) return;
|
|
23303
|
-
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,
|
|
23310
|
+
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, ev, Infinity), c = n.state.offset.clone().sub(Rt(n.state).setLength(s)), l = this.modelScene.boundingBox.containsPoint(c), u;
|
|
23304
23311
|
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)) {
|
|
23305
23312
|
if (!("__fixFinalState" in n)) {
|
|
23306
23313
|
let e = n.state;
|
|
@@ -23366,7 +23373,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23366
23373
|
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());
|
|
23367
23374
|
o && (r += o.distanceTo(i));
|
|
23368
23375
|
let s = Math.max(this.locationMotion.value.distance - this.camera.near, 0), c = n.center.delta / 10 * Math.max(s / 5, .1);
|
|
23369
|
-
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >=
|
|
23376
|
+
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >= ev) {
|
|
23370
23377
|
let e = this.locationMotion.value.distance - c;
|
|
23371
23378
|
n.state.distance = e;
|
|
23372
23379
|
} else {
|
|
@@ -23433,6 +23440,8 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23433
23440
|
l,
|
|
23434
23441
|
c
|
|
23435
23442
|
]), d = this.modelScene.parameter, f = Eh("pano.prepare", {
|
|
23443
|
+
options: n,
|
|
23444
|
+
prevMode: this.mode,
|
|
23436
23445
|
prevPano: this.currentPano,
|
|
23437
23446
|
pano: a
|
|
23438
23447
|
});
|
|
@@ -23440,6 +23449,7 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23440
23449
|
this.pendingTextureId = null;
|
|
23441
23450
|
return;
|
|
23442
23451
|
}
|
|
23452
|
+
f.options !== n && Object.assign(n, f.options);
|
|
23443
23453
|
let p;
|
|
23444
23454
|
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) => {
|
|
23445
23455
|
var t;
|
|
@@ -23543,12 +23553,12 @@ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#includ
|
|
|
23543
23553
|
};
|
|
23544
23554
|
//#endregion
|
|
23545
23555
|
//#region build/five/utils/isNil.js
|
|
23546
|
-
function
|
|
23556
|
+
function iv(e) {
|
|
23547
23557
|
return e == null;
|
|
23548
23558
|
}
|
|
23549
23559
|
//#endregion
|
|
23550
23560
|
//#region build/five/webxr/xrController.js
|
|
23551
|
-
var
|
|
23561
|
+
var av = { type: "move" }, ov = class {
|
|
23552
23562
|
constructor() {
|
|
23553
23563
|
this._targetRay = null, this._grip = null, this._hand = null, this._axes = [0, 0];
|
|
23554
23564
|
}
|
|
@@ -23575,7 +23585,7 @@ var iv = { type: "move" }, av = class {
|
|
|
23575
23585
|
}
|
|
23576
23586
|
update(t, n, r) {
|
|
23577
23587
|
let i = null, a = null, o = null, s = this._targetRay, c = this._grip, l = this._hand;
|
|
23578
|
-
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(
|
|
23588
|
+
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(av))), l && t.hand) {
|
|
23579
23589
|
o = !0;
|
|
23580
23590
|
for (let i of t.hand.values()) {
|
|
23581
23591
|
let t = n.getJointPose(i, r);
|
|
@@ -23599,25 +23609,25 @@ var iv = { type: "move" }, av = class {
|
|
|
23599
23609
|
} 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));
|
|
23600
23610
|
return s !== null && (s.visible = i !== null), c !== null && (c.visible = a !== null), l !== null && (l.visible = o !== null), this;
|
|
23601
23611
|
}
|
|
23602
|
-
},
|
|
23612
|
+
}, sv = 1, cv = () => {
|
|
23603
23613
|
try {
|
|
23604
23614
|
let e = /Macintosh/i.test(navigator.userAgent), t = navigator.maxTouchPoints === 5;
|
|
23605
23615
|
return e && t;
|
|
23606
23616
|
} catch (e) {
|
|
23607
23617
|
return console.error("Error determining if the device is an Apple Vision Pro: ", e), !1;
|
|
23608
23618
|
}
|
|
23609
|
-
},
|
|
23619
|
+
}, lv = () => {
|
|
23610
23620
|
try {
|
|
23611
23621
|
return /Oculus/i.test(navigator.userAgent);
|
|
23612
23622
|
} catch (e) {
|
|
23613
23623
|
return console.error("Error determining if the device is an Oculus: ", e), !1;
|
|
23614
23624
|
}
|
|
23615
|
-
},
|
|
23625
|
+
}, uv = class {
|
|
23616
23626
|
constructor(t, n, r) {
|
|
23617
23627
|
var i, a, o, s, c;
|
|
23618
23628
|
this.isPanorama = (i = r == null ? void 0 : r.isPanorama) == null ? !0 : i, navigator.userAgent.toLowerCase();
|
|
23619
23629
|
let l;
|
|
23620
|
-
l =
|
|
23630
|
+
l = cv() ? "VP" : lv() ? "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 ov(), new ov()], 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();
|
|
23621
23631
|
}
|
|
23622
23632
|
getController(e) {
|
|
23623
23633
|
let t = this.controllers[e];
|
|
@@ -23733,7 +23743,7 @@ var iv = { type: "move" }, av = class {
|
|
|
23733
23743
|
alpha: e == null ? void 0 : e.alpha,
|
|
23734
23744
|
depth: e == null ? void 0 : e.depth,
|
|
23735
23745
|
stencil: e == null ? void 0 : e.stencil,
|
|
23736
|
-
framebufferScaleFactor:
|
|
23746
|
+
framebufferScaleFactor: sv
|
|
23737
23747
|
};
|
|
23738
23748
|
if (!this.session) {
|
|
23739
23749
|
console.error("session is lose while set session!");
|
|
@@ -23759,7 +23769,7 @@ var iv = { type: "move" }, av = class {
|
|
|
23759
23769
|
});
|
|
23760
23770
|
}
|
|
23761
23771
|
}
|
|
23762
|
-
},
|
|
23772
|
+
}, dv = class extends e.InstancedBufferGeometry {
|
|
23763
23773
|
constructor() {
|
|
23764
23774
|
super(), this.type = "LineSegmentsGeometry", this.setIndex([
|
|
23765
23775
|
0,
|
|
@@ -23878,10 +23888,10 @@ var iv = { type: "move" }, av = class {
|
|
|
23878
23888
|
}
|
|
23879
23889
|
toJSON() {}
|
|
23880
23890
|
};
|
|
23881
|
-
Object.assign(
|
|
23891
|
+
Object.assign(dv.prototype, { isLineSegmentsGeometry: !0 });
|
|
23882
23892
|
//#endregion
|
|
23883
23893
|
//#region build/line/utils/LineMaterial.js
|
|
23884
|
-
var
|
|
23894
|
+
var fv = {
|
|
23885
23895
|
uniforms: e.UniformsUtils.merge([
|
|
23886
23896
|
e.UniformsLib.common,
|
|
23887
23897
|
e.UniformsLib.fog,
|
|
@@ -23896,12 +23906,12 @@ var dv = {
|
|
|
23896
23906
|
]),
|
|
23897
23907
|
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 ",
|
|
23898
23908
|
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 "
|
|
23899
|
-
},
|
|
23909
|
+
}, pv = class extends e.ShaderMaterial {
|
|
23900
23910
|
constructor(t) {
|
|
23901
23911
|
super({
|
|
23902
|
-
uniforms: e.UniformsUtils.clone(
|
|
23903
|
-
vertexShader:
|
|
23904
|
-
fragmentShader:
|
|
23912
|
+
uniforms: e.UniformsUtils.clone(fv.uniforms),
|
|
23913
|
+
vertexShader: fv.vertexShader,
|
|
23914
|
+
fragmentShader: fv.fragmentShader,
|
|
23905
23915
|
clipping: !0
|
|
23906
23916
|
}), this.type = "LineMaterial", this.dashed = !1, Object.defineProperties(this, {
|
|
23907
23917
|
color: {
|
|
@@ -23970,12 +23980,12 @@ var dv = {
|
|
|
23970
23980
|
}), this.setValues(t);
|
|
23971
23981
|
}
|
|
23972
23982
|
};
|
|
23973
|
-
Object.assign(
|
|
23983
|
+
Object.assign(pv.prototype, { isLineMaterial: !0 });
|
|
23974
23984
|
//#endregion
|
|
23975
23985
|
//#region build/line/utils/LineSegments2.js
|
|
23976
|
-
var
|
|
23986
|
+
var mv = class extends e.Mesh {
|
|
23977
23987
|
constructor(e, t) {
|
|
23978
|
-
super(), this.type = "LineSegments2", this.geometry = e === void 0 ? new
|
|
23988
|
+
super(), this.type = "LineSegments2", this.geometry = e === void 0 ? new dv() : e, this.material = t === void 0 ? new pv({ color: Math.random() * 16777215 }) : t;
|
|
23979
23989
|
}
|
|
23980
23990
|
computeLineDistances() {
|
|
23981
23991
|
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();
|
|
@@ -24012,18 +24022,18 @@ var pv = class extends e.Mesh {
|
|
|
24012
24022
|
}
|
|
24013
24023
|
}
|
|
24014
24024
|
};
|
|
24015
|
-
Object.assign(
|
|
24025
|
+
Object.assign(mv.prototype, { isLineSegments2: !0 });
|
|
24016
24026
|
//#endregion
|
|
24017
24027
|
//#region build/line/utils/Line2.js
|
|
24018
|
-
var
|
|
24028
|
+
var hv = class extends mv {
|
|
24019
24029
|
constructor(e, t) {
|
|
24020
24030
|
super(e, t), this.type = "Line2";
|
|
24021
24031
|
}
|
|
24022
24032
|
};
|
|
24023
|
-
Object.assign(
|
|
24033
|
+
Object.assign(hv.prototype, { isLine2: !0 });
|
|
24024
24034
|
//#endregion
|
|
24025
24035
|
//#region build/line/utils/LineGeometry.js
|
|
24026
|
-
var
|
|
24036
|
+
var gv = class extends dv {
|
|
24027
24037
|
constructor() {
|
|
24028
24038
|
super(), this.type = "LineGeometry";
|
|
24029
24039
|
}
|
|
@@ -24049,24 +24059,24 @@ var hv = class extends uv {
|
|
|
24049
24059
|
return this;
|
|
24050
24060
|
}
|
|
24051
24061
|
};
|
|
24052
|
-
Object.assign(
|
|
24062
|
+
Object.assign(gv.prototype, { isLineGeometry: !0 });
|
|
24053
24063
|
//#endregion
|
|
24054
24064
|
//#region build/line/index.js
|
|
24055
|
-
var
|
|
24065
|
+
var _v = 14467195, vv = 8, yv = 2, bv = 20, xv = null, Sv = class extends e.Object3D {
|
|
24056
24066
|
static get version() {
|
|
24057
|
-
return "6.8.
|
|
24067
|
+
return "6.8.3";
|
|
24058
24068
|
}
|
|
24059
24069
|
constructor(t = new e.Vector3(), n = new e.Vector3()) {
|
|
24060
|
-
super(), this.type = "FiveLine", this.needsRender = !0, this.line = new
|
|
24061
|
-
color:
|
|
24062
|
-
linewidth:
|
|
24063
|
-
dashScale:
|
|
24070
|
+
super(), this.type = "FiveLine", this.needsRender = !0, this.line = new hv(new gv(), new pv({
|
|
24071
|
+
color: _v,
|
|
24072
|
+
linewidth: yv,
|
|
24073
|
+
dashScale: bv,
|
|
24064
24074
|
dashed: !1
|
|
24065
24075
|
}));
|
|
24066
24076
|
let r = new e.BufferGeometry(), i = new e.PointsMaterial({
|
|
24067
|
-
color:
|
|
24068
|
-
size:
|
|
24069
|
-
map:
|
|
24077
|
+
color: _v,
|
|
24078
|
+
size: vv,
|
|
24079
|
+
map: xv || (xv = 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==")),
|
|
24070
24080
|
sizeAttenuation: !1,
|
|
24071
24081
|
transparent: !0
|
|
24072
24082
|
});
|
|
@@ -24094,10 +24104,10 @@ var gv = 14467195, _v = 8, vv = 2, yv = 20, bv = null, xv = class extends e.Obje
|
|
|
24094
24104
|
(n.x !== e || n.y !== t) && (n.set(e, t), this.needsRender = !0);
|
|
24095
24105
|
}
|
|
24096
24106
|
};
|
|
24097
|
-
Object.assign(
|
|
24107
|
+
Object.assign(Sv.prototype, { isFiveLine: !0 });
|
|
24098
24108
|
//#endregion
|
|
24099
24109
|
//#region build/five/webxr/motionHelper.js
|
|
24100
|
-
var
|
|
24110
|
+
var Cv = {
|
|
24101
24111
|
Handedness: Object.freeze({
|
|
24102
24112
|
NONE: "none",
|
|
24103
24113
|
LEFT: "left",
|
|
@@ -24128,24 +24138,24 @@ var Sv = {
|
|
|
24128
24138
|
VISIBILITY: "visibility"
|
|
24129
24139
|
})
|
|
24130
24140
|
};
|
|
24131
|
-
function
|
|
24141
|
+
function wv(e) {
|
|
24132
24142
|
return Vo(this, void 0, void 0, function* () {
|
|
24133
24143
|
let t = yield fetch(e);
|
|
24134
24144
|
if (t.ok) return t.json();
|
|
24135
24145
|
throw Error(t.statusText);
|
|
24136
24146
|
});
|
|
24137
24147
|
}
|
|
24138
|
-
function
|
|
24148
|
+
function Tv(e) {
|
|
24139
24149
|
return Vo(this, void 0, void 0, function* () {
|
|
24140
24150
|
if (!e) throw Error("No basePath supplied");
|
|
24141
|
-
return yield
|
|
24151
|
+
return yield wv(`${e}/profilesList.json`);
|
|
24142
24152
|
});
|
|
24143
24153
|
}
|
|
24144
|
-
function
|
|
24154
|
+
function Ev(e, t) {
|
|
24145
24155
|
return Vo(this, arguments, void 0, function* (e, t, n = null, r = !0) {
|
|
24146
24156
|
if (!e) throw Error("No xrInputSource supplied");
|
|
24147
24157
|
if (!t) throw Error("No basePath supplied");
|
|
24148
|
-
let i = yield
|
|
24158
|
+
let i = yield Tv(t), a;
|
|
24149
24159
|
if (e.profiles.some((e) => {
|
|
24150
24160
|
let n = i[e];
|
|
24151
24161
|
return n && (a = {
|
|
@@ -24163,7 +24173,7 @@ function Tv(e, t) {
|
|
|
24163
24173
|
deprecated: !!e.deprecated
|
|
24164
24174
|
};
|
|
24165
24175
|
}
|
|
24166
|
-
let o = yield
|
|
24176
|
+
let o = yield wv(a.profilePath), s;
|
|
24167
24177
|
if (r) {
|
|
24168
24178
|
let t;
|
|
24169
24179
|
if (t = o.layouts[e.handedness], !t) throw Error(`No matching handedness, ${e.handedness}, in profile ${a.profileId}`);
|
|
@@ -24175,13 +24185,13 @@ function Tv(e, t) {
|
|
|
24175
24185
|
};
|
|
24176
24186
|
});
|
|
24177
24187
|
}
|
|
24178
|
-
var
|
|
24188
|
+
var Dv = {
|
|
24179
24189
|
xAxis: 0,
|
|
24180
24190
|
yAxis: 0,
|
|
24181
24191
|
button: 0,
|
|
24182
|
-
state:
|
|
24192
|
+
state: Cv.ComponentState.DEFAULT
|
|
24183
24193
|
};
|
|
24184
|
-
function
|
|
24194
|
+
function Ov(e = 0, t = 0) {
|
|
24185
24195
|
let n = e, r = t;
|
|
24186
24196
|
if (Math.sqrt(e * e + t * t) > 1) {
|
|
24187
24197
|
let i = Math.atan2(t, e);
|
|
@@ -24192,36 +24202,36 @@ function Dv(e = 0, t = 0) {
|
|
|
24192
24202
|
normalizedYAxis: r * .5 + .5
|
|
24193
24203
|
};
|
|
24194
24204
|
}
|
|
24195
|
-
var
|
|
24205
|
+
var kv = class {
|
|
24196
24206
|
constructor(e) {
|
|
24197
|
-
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty ===
|
|
24207
|
+
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === Cv.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Dv);
|
|
24198
24208
|
}
|
|
24199
24209
|
updateFromComponent({ xAxis: e, yAxis: t, button: n, state: r }) {
|
|
24200
|
-
let { normalizedXAxis: i, normalizedYAxis: a } =
|
|
24210
|
+
let { normalizedXAxis: i, normalizedYAxis: a } = Ov(e, t);
|
|
24201
24211
|
switch (this.componentProperty) {
|
|
24202
|
-
case
|
|
24212
|
+
case Cv.ComponentProperty.X_AXIS:
|
|
24203
24213
|
this.value = this.states.includes(r) ? i : .5;
|
|
24204
24214
|
break;
|
|
24205
|
-
case
|
|
24215
|
+
case Cv.ComponentProperty.Y_AXIS:
|
|
24206
24216
|
this.value = this.states.includes(r) ? a : .5;
|
|
24207
24217
|
break;
|
|
24208
|
-
case
|
|
24218
|
+
case Cv.ComponentProperty.BUTTON:
|
|
24209
24219
|
this.value = this.states.includes(r) ? n : 0;
|
|
24210
24220
|
break;
|
|
24211
|
-
case
|
|
24212
|
-
this.valueNodeProperty ===
|
|
24221
|
+
case Cv.ComponentProperty.STATE:
|
|
24222
|
+
this.valueNodeProperty === Cv.VisualResponseProperty.VISIBILITY ? this.value = this.states.includes(r) : this.value = this.states.includes(r) ? 1 : 0;
|
|
24213
24223
|
break;
|
|
24214
24224
|
default: throw Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`);
|
|
24215
24225
|
}
|
|
24216
24226
|
}
|
|
24217
|
-
},
|
|
24227
|
+
}, Av = class {
|
|
24218
24228
|
constructor(e, t) {
|
|
24219
24229
|
if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0) throw Error("Invalid arguments supplied");
|
|
24220
24230
|
this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((e) => {
|
|
24221
|
-
let n = new
|
|
24231
|
+
let n = new kv(t.visualResponses[e]);
|
|
24222
24232
|
this.visualResponses[e] = n;
|
|
24223
24233
|
}), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
|
|
24224
|
-
state:
|
|
24234
|
+
state: Cv.ComponentState.DEFAULT,
|
|
24225
24235
|
button: this.gamepadIndices.button === void 0 ? void 0 : 0,
|
|
24226
24236
|
xAxis: this.gamepadIndices.xAxis === void 0 ? void 0 : 0,
|
|
24227
24237
|
yAxis: this.gamepadIndices.yAxis === void 0 ? void 0 : 0
|
|
@@ -24231,21 +24241,21 @@ var Ov = class {
|
|
|
24231
24241
|
return Object.assign({ id: this.id }, this.values);
|
|
24232
24242
|
}
|
|
24233
24243
|
updateFromGamepad(e) {
|
|
24234
|
-
if (this.values.state =
|
|
24244
|
+
if (this.values.state = Cv.ComponentState.DEFAULT, this.gamepadIndices.button !== void 0 && e.buttons.length > this.gamepadIndices.button) {
|
|
24235
24245
|
let t = e.buttons[this.gamepadIndices.button];
|
|
24236
|
-
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 =
|
|
24246
|
+
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 = Cv.ComponentState.PRESSED : (t.touched || this.values.button > Cv.ButtonTouchThreshold) && (this.values.state = Cv.ComponentState.TOUCHED);
|
|
24237
24247
|
}
|
|
24238
|
-
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 ===
|
|
24248
|
+
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 === Cv.ComponentState.DEFAULT && Math.abs(this.values.xAxis) > Cv.AxisTouchThreshold && (this.values.state = Cv.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 === Cv.ComponentState.DEFAULT && Math.abs(this.values.yAxis) > Cv.AxisTouchThreshold && (this.values.state = Cv.ComponentState.TOUCHED)), Object.values(this.visualResponses).forEach((e) => {
|
|
24239
24249
|
e.updateFromComponent(this.values);
|
|
24240
24250
|
});
|
|
24241
24251
|
}
|
|
24242
|
-
},
|
|
24252
|
+
}, jv = class {
|
|
24243
24253
|
constructor(e, t, n) {
|
|
24244
24254
|
if (!e) throw Error("No xrInputSource supplied");
|
|
24245
24255
|
if (!t) throw Error("No profile supplied");
|
|
24246
24256
|
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) => {
|
|
24247
24257
|
let t = this.layoutDescription.components[e];
|
|
24248
|
-
this.components[e] = new
|
|
24258
|
+
this.components[e] = new Av(e, t);
|
|
24249
24259
|
}), this.updateFromGamepad();
|
|
24250
24260
|
}
|
|
24251
24261
|
get gripSpace() {
|
|
@@ -24265,7 +24275,7 @@ var Ov = class {
|
|
|
24265
24275
|
e.updateFromGamepad(this.xrInputSource.gamepad);
|
|
24266
24276
|
});
|
|
24267
24277
|
}
|
|
24268
|
-
},
|
|
24278
|
+
}, Mv = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", Nv = "generic-trigger", Pv = class extends r {
|
|
24269
24279
|
constructor() {
|
|
24270
24280
|
super(), this.motionController = null, this.envMap = null;
|
|
24271
24281
|
}
|
|
@@ -24278,21 +24288,21 @@ var Ov = class {
|
|
|
24278
24288
|
super.updateMatrixWorld(e), this.motionController && (this.motionController.updateFromGamepad(), Object.values(this.motionController.components).forEach((e) => {
|
|
24279
24289
|
Object.values(e.visualResponses).forEach((e) => {
|
|
24280
24290
|
let { valueNode: t, minNode: n, maxNode: r, value: i, valueNodeProperty: a } = e;
|
|
24281
|
-
t && (a ===
|
|
24291
|
+
t && (a === Cv.VisualResponseProperty.VISIBILITY ? t.visible = i : a === Cv.VisualResponseProperty.TRANSFORM && (t.quaternion.copy(n.quaternion).slerp(r.quaternion, i), t.position.lerpVectors(n.position, r.position, i)));
|
|
24282
24292
|
});
|
|
24283
24293
|
}));
|
|
24284
24294
|
}
|
|
24285
24295
|
};
|
|
24286
|
-
function
|
|
24296
|
+
function Fv(e, r) {
|
|
24287
24297
|
Object.values(e.components).forEach((e) => {
|
|
24288
24298
|
let { type: a, touchPointNodeName: o, visualResponses: s } = e;
|
|
24289
|
-
if (a ===
|
|
24299
|
+
if (a === Cv.ComponentType.TOUCHPAD) if (e.touchPointNode = r.getObjectByName(o), e.touchPointNode) {
|
|
24290
24300
|
let r = new t(new i(.001), new n({ color: 255 }));
|
|
24291
24301
|
e.touchPointNode.add(r);
|
|
24292
24302
|
} else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);
|
|
24293
24303
|
Object.values(s).forEach((e) => {
|
|
24294
24304
|
let { valueNodeName: t, minNodeName: n, maxNodeName: i, valueNodeProperty: a } = e;
|
|
24295
|
-
if (a ===
|
|
24305
|
+
if (a === Cv.VisualResponseProperty.TRANSFORM) {
|
|
24296
24306
|
if (e.minNode = r.getObjectByName(n), e.maxNode = r.getObjectByName(i), !e.minNode) {
|
|
24297
24307
|
console.warn(`Could not find ${n} in the model`);
|
|
24298
24308
|
return;
|
|
@@ -24306,27 +24316,27 @@ function Pv(e, r) {
|
|
|
24306
24316
|
});
|
|
24307
24317
|
});
|
|
24308
24318
|
}
|
|
24309
|
-
function
|
|
24310
|
-
|
|
24319
|
+
function Iv(t, n) {
|
|
24320
|
+
Fv(t.motionController, n), t.envMap && n.traverse((n) => {
|
|
24311
24321
|
n instanceof e.Mesh && n.isMesh && (n.material.envMap = t.envMap, n.material.needsUpdate = !0);
|
|
24312
24322
|
}), t.add(n);
|
|
24313
24323
|
}
|
|
24314
|
-
var
|
|
24324
|
+
var Lv = class {
|
|
24315
24325
|
constructor(e = null) {
|
|
24316
|
-
this.gltfLoader = e, this.path =
|
|
24326
|
+
this.gltfLoader = e, this.path = Mv, this._assetCache = {};
|
|
24317
24327
|
}
|
|
24318
24328
|
createControllerModel(e) {
|
|
24319
|
-
let t = new
|
|
24329
|
+
let t = new Pv(), n = null;
|
|
24320
24330
|
return e.addEventListener("connected", (e) => {
|
|
24321
24331
|
let r = e.data;
|
|
24322
|
-
r.targetRayMode !== "tracked-pointer" || !r.gamepad ||
|
|
24323
|
-
t.motionController = new
|
|
24332
|
+
r.targetRayMode !== "tracked-pointer" || !r.gamepad || Ev(r, this.path, Nv).then(({ profile: e, assetPath: i }) => {
|
|
24333
|
+
t.motionController = new jv(r, e, i);
|
|
24324
24334
|
let a = this._assetCache[t.motionController.assetUrl];
|
|
24325
|
-
if (a) n = a.scene.clone(),
|
|
24335
|
+
if (a) n = a.scene.clone(), Iv(t, n);
|
|
24326
24336
|
else {
|
|
24327
24337
|
if (!this.gltfLoader) throw Error("GLTFLoader not set.");
|
|
24328
24338
|
this.gltfLoader.load(t.motionController.assetUrl, (e) => {
|
|
24329
|
-
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(),
|
|
24339
|
+
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(), Iv(t, n);
|
|
24330
24340
|
});
|
|
24331
24341
|
}
|
|
24332
24342
|
}).catch((e) => {
|
|
@@ -24336,20 +24346,20 @@ var Iv = class {
|
|
|
24336
24346
|
t.motionController = null, t.remove(n), n = null;
|
|
24337
24347
|
}), t;
|
|
24338
24348
|
}
|
|
24339
|
-
},
|
|
24340
|
-
function
|
|
24349
|
+
}, Rv = "fade", zv = Object.assign({}, hr(e_, ["maxLatitude", "minLatitude"]));
|
|
24350
|
+
function Bv(e, t) {
|
|
24341
24351
|
if (!t) return e;
|
|
24342
24352
|
let n = e.match(/\d+_[a-z].png/);
|
|
24343
24353
|
return e.substring(0, n.index) + t + "/" + e.substring(n.index);
|
|
24344
24354
|
}
|
|
24345
|
-
var
|
|
24355
|
+
var Vv = 300, Hv = new e.Raycaster(), Uv = new e.Vector3(), Wv = {
|
|
24346
24356
|
Floorplan: $h,
|
|
24347
24357
|
Topview: tg,
|
|
24348
|
-
Panorama:
|
|
24349
|
-
VRPanorama:
|
|
24350
|
-
Model:
|
|
24351
|
-
Mapview:
|
|
24352
|
-
XRPanorama: class t extends
|
|
24358
|
+
Panorama: t_,
|
|
24359
|
+
VRPanorama: K_,
|
|
24360
|
+
Model: Z_,
|
|
24361
|
+
Mapview: rv,
|
|
24362
|
+
XRPanorama: class t extends t_ {
|
|
24353
24363
|
static parseArgs(e) {
|
|
24354
24364
|
if (e instanceof t) return e;
|
|
24355
24365
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -24363,7 +24373,7 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24363
24373
|
return Object.assign(Object.assign({}, n), { mode: "XRPanorama" });
|
|
24364
24374
|
}
|
|
24365
24375
|
constructor(t) {
|
|
24366
|
-
super(t), this.xrManager = new
|
|
24376
|
+
super(t), this.xrManager = new uv(this.renderer, this.renderer.getContext(), {
|
|
24367
24377
|
onSessionStart: (e) => {
|
|
24368
24378
|
this.emit("xr.session.start", Q("xr.session.start", {
|
|
24369
24379
|
session: e,
|
|
@@ -24380,14 +24390,14 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24380
24390
|
left: new e.Raycaster(),
|
|
24381
24391
|
right: new e.Raycaster()
|
|
24382
24392
|
}, 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 = {
|
|
24383
|
-
left: new
|
|
24384
|
-
right: new
|
|
24393
|
+
left: new Sv(),
|
|
24394
|
+
right: new Sv()
|
|
24385
24395
|
}, 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()];
|
|
24386
24396
|
let n = this.xrManager.getController(0);
|
|
24387
24397
|
this.controllerWrappers[0].add(n);
|
|
24388
24398
|
let r = this.xrManager.getController(1);
|
|
24389
24399
|
this.controllerWrappers[1].add(r);
|
|
24390
|
-
let i = new
|
|
24400
|
+
let i = new Lv();
|
|
24391
24401
|
i.gltfLoader = { load(e, t) {
|
|
24392
24402
|
pr.ajax(e, { responseType: "arraybuffer" }).then((t) => {
|
|
24393
24403
|
var n;
|
|
@@ -24401,8 +24411,8 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24401
24411
|
panoId: Z(this.currentPano),
|
|
24402
24412
|
leftPanoPicture: null,
|
|
24403
24413
|
position: this.camera.pose.offset.clone(),
|
|
24404
|
-
effect:
|
|
24405
|
-
effectEasing:
|
|
24414
|
+
effect: Rv,
|
|
24415
|
+
effectEasing: Xg,
|
|
24406
24416
|
fixCameraTransform: new e.Matrix4()
|
|
24407
24417
|
}, this.parallaxCameraMatrixs = [];
|
|
24408
24418
|
let a = ri.shared.getContext();
|
|
@@ -24492,33 +24502,32 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24492
24502
|
}
|
|
24493
24503
|
moveToPano(t, n, r) {
|
|
24494
24504
|
var i, a, o;
|
|
24495
|
-
let s = (i = n.effect) == null ? "fade" : i;
|
|
24496
24505
|
this.userAction = r, this.stopMomentumMovement();
|
|
24497
|
-
let
|
|
24498
|
-
if (!
|
|
24499
|
-
let
|
|
24500
|
-
|
|
24501
|
-
let
|
|
24506
|
+
let s = Z(t), c = this.works.getObserver(t);
|
|
24507
|
+
if (!c) throw Error("Invalid PanoIndex");
|
|
24508
|
+
let l = Yr(c.images.up), u = this.imageOptions.size;
|
|
24509
|
+
u === void 0 && c && l && (u = Number(l)), u === void 0 && (u = 2048);
|
|
24510
|
+
let d = this.imageOptions.transform, f = (e, t) => Bv(qr(e, d, t)), p = Object.assign({ key: `pano.${s}` }, mr(this.imageOptions, [
|
|
24502
24511
|
"format",
|
|
24503
24512
|
"size",
|
|
24504
24513
|
"quality"
|
|
24505
|
-
])),
|
|
24506
|
-
right:
|
|
24507
|
-
left:
|
|
24508
|
-
up:
|
|
24509
|
-
down:
|
|
24510
|
-
front:
|
|
24511
|
-
back:
|
|
24512
|
-
},
|
|
24513
|
-
h,
|
|
24514
|
+
])), m = {
|
|
24515
|
+
right: c.images.work.getURL(c.images.right),
|
|
24516
|
+
left: c.images.work.getURL(c.images.left),
|
|
24517
|
+
up: c.images.work.getURL(c.images.up),
|
|
24518
|
+
down: c.images.work.getURL(c.images.down),
|
|
24519
|
+
front: c.images.work.getURL(c.images.front),
|
|
24520
|
+
back: c.images.work.getURL(c.images.back)
|
|
24521
|
+
}, h = "pano:" + pp([
|
|
24514
24522
|
m,
|
|
24515
|
-
|
|
24523
|
+
p,
|
|
24524
|
+
d
|
|
24516
24525
|
]);
|
|
24517
24526
|
if (this.pendingPanoTask) {
|
|
24518
|
-
if (this.pendingPanoTask.hash ===
|
|
24527
|
+
if (this.pendingPanoTask.hash === h) return;
|
|
24519
24528
|
{
|
|
24520
24529
|
let e = this.pendingPanoTask.panoId;
|
|
24521
|
-
(
|
|
24530
|
+
(i = this.panoMeshes.get(e)) == null || i.setProgress(0), this.emit("pano.texture.abort", Q("pano.texture.abort", {
|
|
24522
24531
|
error: null,
|
|
24523
24532
|
progress: 0,
|
|
24524
24533
|
meta: null,
|
|
@@ -24526,39 +24535,44 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24526
24535
|
}));
|
|
24527
24536
|
}
|
|
24528
24537
|
}
|
|
24529
|
-
let
|
|
24530
|
-
this.pending.add(
|
|
24531
|
-
let
|
|
24538
|
+
let g = "move-to-pano-" + s;
|
|
24539
|
+
this.pending.add(g);
|
|
24540
|
+
let _ = Eh("pano.prepare", {
|
|
24541
|
+
options: n,
|
|
24542
|
+
prevMode: this.mode,
|
|
24532
24543
|
prevPano: this.currentPano,
|
|
24533
24544
|
pano: t
|
|
24534
24545
|
});
|
|
24535
|
-
if (this.emit("pano.prepare",
|
|
24536
|
-
this.pending.delete(
|
|
24546
|
+
if (this.emit("pano.prepare", _), _.defaultPrevented) {
|
|
24547
|
+
this.pending.delete(g);
|
|
24537
24548
|
return;
|
|
24538
24549
|
}
|
|
24539
|
-
|
|
24540
|
-
|
|
24550
|
+
_.options !== n && Object.assign(n, _.options);
|
|
24551
|
+
let v = this.modelScene.parameter, y;
|
|
24552
|
+
v.pano0 && v.pano0.map.name === h ? y = v.pano0 : v.pano1 && v.pano1.map.name === h && (y = v.pano1);
|
|
24553
|
+
let b = (a = n.effect) == null ? Rv : a, x = (o = n.effectEasing) == null ? Xg : o;
|
|
24554
|
+
if (y) {
|
|
24541
24555
|
let r = {
|
|
24542
|
-
panoId:
|
|
24543
|
-
effect:
|
|
24544
|
-
effectEasing:
|
|
24556
|
+
panoId: s,
|
|
24557
|
+
effect: b,
|
|
24558
|
+
effectEasing: x,
|
|
24545
24559
|
leftPanoPicture: {
|
|
24546
|
-
panoId:
|
|
24547
|
-
map:
|
|
24548
|
-
mapHistogram:
|
|
24549
|
-
mapSize:
|
|
24550
|
-
matrix:
|
|
24560
|
+
panoId: y.panoId,
|
|
24561
|
+
map: y.map,
|
|
24562
|
+
mapHistogram: y.mapHistogram,
|
|
24563
|
+
mapSize: y.mapSize,
|
|
24564
|
+
matrix: c.matrix.clone().premultiply(c.work.transform),
|
|
24551
24565
|
zoom: 1
|
|
24552
24566
|
},
|
|
24553
|
-
position:
|
|
24567
|
+
position: c.position.clone().applyMatrix4(c.work.transform),
|
|
24554
24568
|
fixCameraTransform: new e.Matrix4()
|
|
24555
24569
|
};
|
|
24556
|
-
r.leftPanoPicture && this.panoPictureObserverMap.set(r.leftPanoPicture,
|
|
24570
|
+
r.leftPanoPicture && this.panoPictureObserverMap.set(r.leftPanoPicture, c), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(_)).catch((e) => {
|
|
24557
24571
|
let t = Yh(e);
|
|
24558
24572
|
return this.emit("error", t), t;
|
|
24559
24573
|
}).then((e) => {
|
|
24560
24574
|
var i, a;
|
|
24561
|
-
if (!(e instanceof Error)) this.pending.delete(
|
|
24575
|
+
if (!(e instanceof Error)) this.pending.delete(g), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(s)) == null || i.setProgress(0), this.doMoveToPano(t, r, n);
|
|
24562
24576
|
else {
|
|
24563
24577
|
let t = null;
|
|
24564
24578
|
e instanceof Error && (t || (t = e));
|
|
@@ -24569,8 +24583,8 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24569
24583
|
options: n,
|
|
24570
24584
|
prevPano: this.currentPano,
|
|
24571
24585
|
pano: {
|
|
24572
|
-
panoIndex:
|
|
24573
|
-
workCode:
|
|
24586
|
+
panoIndex: c.panoIndex,
|
|
24587
|
+
workCode: c.work.workCode
|
|
24574
24588
|
},
|
|
24575
24589
|
progress: 0,
|
|
24576
24590
|
state: r
|
|
@@ -24580,42 +24594,42 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24580
24594
|
options: n,
|
|
24581
24595
|
prevPano: this.currentPano,
|
|
24582
24596
|
pano: {
|
|
24583
|
-
panoIndex:
|
|
24584
|
-
workCode:
|
|
24597
|
+
panoIndex: c.panoIndex,
|
|
24598
|
+
workCode: c.work.workCode
|
|
24585
24599
|
},
|
|
24586
24600
|
progress: 0,
|
|
24587
24601
|
state: r
|
|
24588
|
-
})), t instanceof Error && t.message && this.emit("error", t), this.pending.delete(
|
|
24602
|
+
})), t instanceof Error && t.message && this.emit("error", t), this.pending.delete(g), this.pendingPanoTask = void 0, (a = this.panoMeshes.get(s)) == null || a.setProgress(0);
|
|
24589
24603
|
}
|
|
24590
24604
|
});
|
|
24591
24605
|
return;
|
|
24592
24606
|
}
|
|
24593
|
-
let
|
|
24594
|
-
|
|
24595
|
-
panoId:
|
|
24596
|
-
hash:
|
|
24607
|
+
let S = this.panoMeshes.get(s);
|
|
24608
|
+
S && S.tap && S.tap(), this.pendingPanoTask = {
|
|
24609
|
+
panoId: s,
|
|
24610
|
+
hash: h,
|
|
24597
24611
|
onLoad: (r) => {
|
|
24598
|
-
var i
|
|
24599
|
-
let
|
|
24600
|
-
if (this.destroyed)
|
|
24612
|
+
var i;
|
|
24613
|
+
let a = r.body;
|
|
24614
|
+
if (this.destroyed) a.dispose();
|
|
24601
24615
|
else {
|
|
24602
|
-
|
|
24603
|
-
let r = Array.isArray(
|
|
24604
|
-
panoId:
|
|
24605
|
-
effect:
|
|
24606
|
-
effectEasing:
|
|
24616
|
+
a.name = h;
|
|
24617
|
+
let r = Array.isArray(a.image) ? a.image[0] : a.image, o = (i = r == null ? void 0 : r.width) == null ? 2048 : i, l = new gm().formPixels(Uh(this.renderer, a, !0, fm).data), u = {
|
|
24618
|
+
panoId: s,
|
|
24619
|
+
effect: b,
|
|
24620
|
+
effectEasing: x,
|
|
24607
24621
|
leftPanoPicture: {
|
|
24608
|
-
panoId:
|
|
24609
|
-
map:
|
|
24610
|
-
mapSize:
|
|
24611
|
-
mapHistogram: new e.Vector4().fromArray(
|
|
24612
|
-
matrix:
|
|
24622
|
+
panoId: s,
|
|
24623
|
+
map: a,
|
|
24624
|
+
mapSize: o,
|
|
24625
|
+
mapHistogram: new e.Vector4().fromArray(l.toArray()),
|
|
24626
|
+
matrix: c.matrix.clone(),
|
|
24613
24627
|
zoom: 1
|
|
24614
24628
|
},
|
|
24615
|
-
position:
|
|
24629
|
+
position: c.position.clone(),
|
|
24616
24630
|
fixCameraTransform: new e.Matrix4()
|
|
24617
24631
|
};
|
|
24618
|
-
|
|
24632
|
+
u.leftPanoPicture && this.panoPictureObserverMap.set(u.leftPanoPicture, c), this.doMoveToPano(t, u, n);
|
|
24619
24633
|
}
|
|
24620
24634
|
},
|
|
24621
24635
|
onError: (e) => {
|
|
@@ -24626,8 +24640,8 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24626
24640
|
options: n,
|
|
24627
24641
|
prevPano: this.currentPano,
|
|
24628
24642
|
pano: {
|
|
24629
|
-
panoIndex:
|
|
24630
|
-
workCode:
|
|
24643
|
+
panoIndex: c.panoIndex,
|
|
24644
|
+
workCode: c.work.workCode
|
|
24631
24645
|
},
|
|
24632
24646
|
progress: 0,
|
|
24633
24647
|
state: t
|
|
@@ -24637,8 +24651,8 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24637
24651
|
options: n,
|
|
24638
24652
|
prevPano: this.currentPano,
|
|
24639
24653
|
pano: {
|
|
24640
|
-
panoIndex:
|
|
24641
|
-
workCode:
|
|
24654
|
+
panoIndex: c.panoIndex,
|
|
24655
|
+
workCode: c.work.workCode
|
|
24642
24656
|
},
|
|
24643
24657
|
progress: 0,
|
|
24644
24658
|
state: t
|
|
@@ -24651,14 +24665,14 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24651
24665
|
meta: null,
|
|
24652
24666
|
pano: t
|
|
24653
24667
|
}));
|
|
24654
|
-
}).then(() => this.textureLoader.loadCubeTexture(
|
|
24668
|
+
}).then(() => this.textureLoader.loadCubeTexture(m, {
|
|
24655
24669
|
imageURL: {
|
|
24656
|
-
transform:
|
|
24657
|
-
options:
|
|
24670
|
+
transform: f,
|
|
24671
|
+
options: p
|
|
24658
24672
|
},
|
|
24659
24673
|
format: e.RGBFormat,
|
|
24660
24674
|
viaAjax: !0,
|
|
24661
|
-
fetcher: Sf(this.fiveId,
|
|
24675
|
+
fetcher: Sf(this.fiveId, c.work)
|
|
24662
24676
|
}, void 0, void 0, (e) => {
|
|
24663
24677
|
var n, r;
|
|
24664
24678
|
this.emit("pano.texture.progress", Q("pano.texture.progress", {
|
|
@@ -24666,7 +24680,7 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24666
24680
|
progress: e,
|
|
24667
24681
|
meta: null,
|
|
24668
24682
|
pano: t
|
|
24669
|
-
})), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) ===
|
|
24683
|
+
})), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) === h && ((r = this.panoMeshes.get(s)) == null || r.setProgress(e));
|
|
24670
24684
|
}, this.renderer)).catch((e) => {
|
|
24671
24685
|
let n = Yh(e);
|
|
24672
24686
|
return this.emit("pano.texture.error", Q("pano.texture.error", {
|
|
@@ -24675,9 +24689,9 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24675
24689
|
meta: null,
|
|
24676
24690
|
pano: t
|
|
24677
24691
|
})), n;
|
|
24678
|
-
}), Promise.resolve().then(() => Dh(
|
|
24692
|
+
}), Promise.resolve().then(() => Dh(_)).catch((e) => Yh(e))]).then(([e, n]) => {
|
|
24679
24693
|
var r, i, a, o;
|
|
24680
|
-
if (!(e instanceof Error) && !(n instanceof Error)) this.pending.delete(
|
|
24694
|
+
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(s)) == null || i.setProgress(0)) : e.body.dispose(), this.emit("pano.texture.success", Q("pano.texture.success", {
|
|
24681
24695
|
error: null,
|
|
24682
24696
|
progress: 1,
|
|
24683
24697
|
meta: e.meta,
|
|
@@ -24685,7 +24699,7 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24685
24699
|
}));
|
|
24686
24700
|
else {
|
|
24687
24701
|
let t = null;
|
|
24688
|
-
e instanceof Error ? t || (t = e) : e.body.dispose(), n instanceof Error && (t || (t = n)), this.pending.delete(
|
|
24702
|
+
e instanceof Error ? t || (t = e) : e.body.dispose(), n instanceof Error && (t || (t = n)), this.pending.delete(g), ((a = this.pendingPanoTask) == null ? void 0 : a.hash) === h && (this.pendingPanoTask.onError(t), this.pendingPanoTask = void 0, (o = this.panoMeshes.get(s)) == null || o.setProgress(0));
|
|
24689
24703
|
}
|
|
24690
24704
|
});
|
|
24691
24705
|
}
|
|
@@ -24883,16 +24897,16 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24883
24897
|
let a = i.work.observers, o = i.accessibleNodes.filter((e) => {
|
|
24884
24898
|
if (e === this.currentPano.panoIndex && i.work.workCode === this.currentPano.workCode) return !1;
|
|
24885
24899
|
let t = a[e];
|
|
24886
|
-
return !t ||
|
|
24900
|
+
return !t || Uv.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
|
|
24887
24901
|
}), [s] = this.modelScene.intersectRaycaster(t);
|
|
24888
24902
|
if (s) {
|
|
24889
24903
|
let [e, t] = Rl(o, (e) => {
|
|
24890
24904
|
let t = a[e];
|
|
24891
|
-
return t ?
|
|
24905
|
+
return t ? Uv.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(s.point) : Infinity;
|
|
24892
24906
|
}, !0);
|
|
24893
24907
|
typeof e == "number" && t < this.panoTapTriggerRadius && (r = (n = a[e]) == null ? null : n);
|
|
24894
24908
|
}
|
|
24895
|
-
if (
|
|
24909
|
+
if (iv(r)) {
|
|
24896
24910
|
let e = this.getForwardObserverOrNot(this.xrManager.cameraVR, t);
|
|
24897
24911
|
e && (r = e);
|
|
24898
24912
|
}
|
|
@@ -24909,7 +24923,7 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
24909
24923
|
}
|
|
24910
24924
|
}
|
|
24911
24925
|
}
|
|
24912
|
-
if (
|
|
24926
|
+
if (iv(r)) return this.locationMotion.ended === !0 && this.cameraBounce(), null;
|
|
24913
24927
|
if (!r.active) {
|
|
24914
24928
|
let e = Z({
|
|
24915
24929
|
panoIndex: r.panoIndex,
|
|
@@ -25100,9 +25114,9 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
25100
25114
|
let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Z({
|
|
25101
25115
|
panoIndex: n.panoIndex,
|
|
25102
25116
|
workCode: n.work.workCode
|
|
25103
|
-
}), s =
|
|
25104
|
-
|
|
25105
|
-
let [o] = r.intersectRaycaster(
|
|
25117
|
+
}), s = $g.map((n) => {
|
|
25118
|
+
Hv.ray.origin.copy(a), Hv.ray.origin.add(Uv.copy(n).setY(t)), Hv.ray.direction.set(0, -1, 0), Hv.firstHitOnly = !0, Hv.floorIndex = -1;
|
|
25119
|
+
let [o] = r.intersectRaycaster(Hv);
|
|
25106
25120
|
return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
|
|
25107
25121
|
});
|
|
25108
25122
|
s.sort((e, t) => t.y - e.y);
|
|
@@ -25149,7 +25163,7 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
25149
25163
|
else {
|
|
25150
25164
|
t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
|
|
25151
25165
|
let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
|
|
25152
|
-
e && (
|
|
25166
|
+
e && (Uv.set(e.x, e.y, e.z), Uv.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
|
|
25153
25167
|
}
|
|
25154
25168
|
let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
|
|
25155
25169
|
if (n === Z(this.currentPano)) {
|
|
@@ -25349,7 +25363,7 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
25349
25363
|
leftRay: r,
|
|
25350
25364
|
rightRay: i
|
|
25351
25365
|
} }
|
|
25352
|
-
}))) : n - this.xrHandleState[t].touchStartTime >
|
|
25366
|
+
}))) : n - this.xrHandleState[t].touchStartTime > Vv && this.emit("xr.gesture.press", Q("xr.gesture.tap", {
|
|
25353
25367
|
session: this.xrManager.session,
|
|
25354
25368
|
machineType: this.xrManager.machineType,
|
|
25355
25369
|
buttons: t,
|
|
@@ -25371,7 +25385,7 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
25371
25385
|
leftRay: r,
|
|
25372
25386
|
rightRay: i
|
|
25373
25387
|
} }
|
|
25374
|
-
})), n - this.xrHandleState[t].touchStartTime <=
|
|
25388
|
+
})), n - this.xrHandleState[t].touchStartTime <= Vv) {
|
|
25375
25389
|
let e = Q("xr.gesture.tap", {
|
|
25376
25390
|
session: this.xrManager.session,
|
|
25377
25391
|
machineType: this.xrManager.machineType,
|
|
@@ -25395,18 +25409,18 @@ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
|
|
|
25395
25409
|
});
|
|
25396
25410
|
}
|
|
25397
25411
|
}
|
|
25398
|
-
},
|
|
25412
|
+
}, Gv = {
|
|
25399
25413
|
Floorplan: Qh,
|
|
25400
25414
|
Topview: eg,
|
|
25401
|
-
Panorama:
|
|
25402
|
-
VRPanorama:
|
|
25403
|
-
Model:
|
|
25404
|
-
Mapview:
|
|
25405
|
-
XRPanorama:
|
|
25406
|
-
},
|
|
25415
|
+
Panorama: e_,
|
|
25416
|
+
VRPanorama: G_,
|
|
25417
|
+
Model: X_,
|
|
25418
|
+
Mapview: nv,
|
|
25419
|
+
XRPanorama: zv
|
|
25420
|
+
}, Kv = /* @__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(",");
|
|
25407
25421
|
//#endregion
|
|
25408
25422
|
//#region build/five/application/events-legacy.js
|
|
25409
|
-
function
|
|
25423
|
+
function qv(e) {
|
|
25410
25424
|
e.on("initAnimation.start", (t) => {
|
|
25411
25425
|
e.emit("initAnimationWillStart", t.state.panoIndex, t.state, t.userAction);
|
|
25412
25426
|
}), e.on("initAnimation.end", (t) => {
|
|
@@ -25548,7 +25562,7 @@ function Gv(e) {
|
|
|
25548
25562
|
}
|
|
25549
25563
|
//#endregion
|
|
25550
25564
|
//#region build/five/application/generateDefaultVideoElement.js
|
|
25551
|
-
function
|
|
25565
|
+
function Jv() {
|
|
25552
25566
|
if (typeof window < "u") {
|
|
25553
25567
|
let e = document.createElement("video");
|
|
25554
25568
|
e.loop = !0, e.autoplay = !0, e.playsInline = !0, e.muted = !0, e.crossOrigin = "";
|
|
@@ -25560,7 +25574,7 @@ function Kv() {
|
|
|
25560
25574
|
}
|
|
25561
25575
|
//#endregion
|
|
25562
25576
|
//#region build/five/application/initLights.js
|
|
25563
|
-
function
|
|
25577
|
+
function Yv() {
|
|
25564
25578
|
let t = new e.Group();
|
|
25565
25579
|
t.name = "internalLights";
|
|
25566
25580
|
{
|
|
@@ -25583,7 +25597,7 @@ function qv() {
|
|
|
25583
25597
|
}
|
|
25584
25598
|
//#endregion
|
|
25585
25599
|
//#region build/five/application/getViewportScale.js
|
|
25586
|
-
function
|
|
25600
|
+
function Xv(e) {
|
|
25587
25601
|
var t, n;
|
|
25588
25602
|
let r = {}, i = e.split(/(\;|\,)/);
|
|
25589
25603
|
for (let e of i) {
|
|
@@ -25592,14 +25606,14 @@ function Jv(e) {
|
|
|
25592
25606
|
}
|
|
25593
25607
|
return r;
|
|
25594
25608
|
}
|
|
25595
|
-
function
|
|
25609
|
+
function Zv() {
|
|
25596
25610
|
var e;
|
|
25597
25611
|
if (typeof document < "u") {
|
|
25598
25612
|
let t = document.getElementsByTagName("meta");
|
|
25599
25613
|
for (let n = 0; n < t.length; n++) {
|
|
25600
25614
|
let r = t[n];
|
|
25601
25615
|
if (r.getAttribute("name") === "viewport") {
|
|
25602
|
-
let t =
|
|
25616
|
+
let t = Xv((e = r.getAttribute("content")) == null ? "" : e), n = Number(t["initial-scale"]);
|
|
25603
25617
|
if (!isNaN(n)) return n;
|
|
25604
25618
|
}
|
|
25605
25619
|
}
|
|
@@ -25608,7 +25622,7 @@ function Yv() {
|
|
|
25608
25622
|
}
|
|
25609
25623
|
//#endregion
|
|
25610
25624
|
//#region build/five/assets/realsee-png-data-url.js
|
|
25611
|
-
var
|
|
25625
|
+
var Qv = "data:image/png;base64,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", $v = [351, 63], ey = [20, 20], ty = new Float32Array([
|
|
25612
25626
|
-.5,
|
|
25613
25627
|
-.5,
|
|
25614
25628
|
0,
|
|
@@ -25621,7 +25635,7 @@ var Xv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR
|
|
|
25621
25635
|
.5,
|
|
25622
25636
|
.5,
|
|
25623
25637
|
0
|
|
25624
|
-
]),
|
|
25638
|
+
]), ny = new Float32Array([
|
|
25625
25639
|
0,
|
|
25626
25640
|
0,
|
|
25627
25641
|
1,
|
|
@@ -25630,57 +25644,57 @@ var Xv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR
|
|
|
25630
25644
|
1,
|
|
25631
25645
|
1,
|
|
25632
25646
|
1
|
|
25633
|
-
]),
|
|
25647
|
+
]), ry = new Uint8Array([
|
|
25634
25648
|
0,
|
|
25635
25649
|
1,
|
|
25636
25650
|
2,
|
|
25637
25651
|
1,
|
|
25638
25652
|
3,
|
|
25639
25653
|
2
|
|
25640
|
-
]),
|
|
25641
|
-
|
|
25642
|
-
var
|
|
25654
|
+
]), iy = new e.BufferGeometry();
|
|
25655
|
+
iy.setAttribute("position", new e.BufferAttribute(ty, 3)), iy.setAttribute("uv", new e.BufferAttribute(ny, 2)), iy.setIndex(new e.BufferAttribute(ry, 1));
|
|
25656
|
+
var ay = new e.MeshBasicMaterial({
|
|
25643
25657
|
transparent: !0,
|
|
25644
25658
|
depthTest: !1,
|
|
25645
25659
|
depthWrite: !1,
|
|
25646
25660
|
stencilWrite: !1,
|
|
25647
25661
|
fog: !1
|
|
25648
|
-
}),
|
|
25649
|
-
|
|
25650
|
-
var
|
|
25651
|
-
|
|
25652
|
-
var
|
|
25653
|
-
|
|
25654
|
-
var
|
|
25655
|
-
function
|
|
25656
|
-
if (
|
|
25657
|
-
let e = t.getViewport(
|
|
25658
|
-
t.setViewport(a, o, s, c), t.setScissor(a, o, s, c), t.setScissorTest(!0), t.autoClear = !1, t.render(
|
|
25662
|
+
}), oy = new e.Mesh(iy, ay);
|
|
25663
|
+
oy.matrixAutoUpdate = !1;
|
|
25664
|
+
var sy = new e.Scene();
|
|
25665
|
+
sy.add(oy), sy.matrixAutoUpdate = !1;
|
|
25666
|
+
var cy = new e.OrthographicCamera(-.5, .5, .5, -.5, .1, 1);
|
|
25667
|
+
cy.position.set(0, 0, .5), cy.lookAt(0, 0, 0), cy.updateMatrixWorld(!0), cy.matrixAutoUpdate = !1;
|
|
25668
|
+
var ly = new e.Vector4(), uy = new e.Vector4();
|
|
25669
|
+
function dy(t) {
|
|
25670
|
+
if (ay.map) {
|
|
25671
|
+
let e = t.getViewport(ly), n = t.getScissor(uy), r = t.getScissorTest(), i = t.autoClear, a = n.x + ey[0] / 3, o = n.y + ey[1] / 3, s = $v[0] / 3, c = $v[1] / 3;
|
|
25672
|
+
t.setViewport(a, o, s, c), t.setScissor(a, o, s, c), t.setScissorTest(!0), t.autoClear = !1, t.render(sy, cy), t.setViewport(e), t.setScissor(n), t.setScissorTest(r), t.autoClear = i;
|
|
25659
25673
|
} else {
|
|
25660
25674
|
let t = new e.Texture(), n = new Image();
|
|
25661
25675
|
n.onload = () => {
|
|
25662
|
-
t.image = n, t.wrapS = e.ClampToEdgeWrapping, t.wrapT = e.ClampToEdgeWrapping, t.minFilter = e.LinearFilter, t.needsUpdate = !0, t.generateMipmaps = !1,
|
|
25663
|
-
}, n.src =
|
|
25676
|
+
t.image = n, t.wrapS = e.ClampToEdgeWrapping, t.wrapT = e.ClampToEdgeWrapping, t.minFilter = e.LinearFilter, t.needsUpdate = !0, t.generateMipmaps = !1, ay.needsUpdate = !0, n.onload = K;
|
|
25677
|
+
}, n.src = Qv, ay.map = t;
|
|
25664
25678
|
}
|
|
25665
25679
|
}
|
|
25666
25680
|
//#endregion
|
|
25667
25681
|
//#region build/five/gaussian-splatting/worker/dataWorker.js?worker&inline
|
|
25668
|
-
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" });
|
|
25669
|
-
function
|
|
25682
|
+
var fy = "(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)}})})();", py = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", fy], { type: "text/javascript;charset=utf-8" });
|
|
25683
|
+
function my(e) {
|
|
25670
25684
|
let t;
|
|
25671
25685
|
try {
|
|
25672
|
-
if (t =
|
|
25686
|
+
if (t = py && (self.URL || self.webkitURL).createObjectURL(py), !t) throw "";
|
|
25673
25687
|
let n = new Worker(t, { name: e == null ? void 0 : e.name });
|
|
25674
25688
|
return n.addEventListener("error", () => {
|
|
25675
25689
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
25676
25690
|
}), n;
|
|
25677
25691
|
} catch (t) {
|
|
25678
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
25692
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(fy), { name: e == null ? void 0 : e.name });
|
|
25679
25693
|
}
|
|
25680
25694
|
}
|
|
25681
25695
|
//#endregion
|
|
25682
25696
|
//#region \0@oxc-project+runtime@0.122.0/helpers/asyncToGenerator.js
|
|
25683
|
-
function
|
|
25697
|
+
function hy(e, t, n, r, i, a, o) {
|
|
25684
25698
|
try {
|
|
25685
25699
|
var s = e[a](o), c = s.value;
|
|
25686
25700
|
} catch (e) {
|
|
@@ -25689,16 +25703,16 @@ function py(e, t, n, r, i, a, o) {
|
|
|
25689
25703
|
}
|
|
25690
25704
|
s.done ? t(c) : Promise.resolve(c).then(r, i);
|
|
25691
25705
|
}
|
|
25692
|
-
function
|
|
25706
|
+
function gy(e) {
|
|
25693
25707
|
return function() {
|
|
25694
25708
|
var t = this, n = arguments;
|
|
25695
25709
|
return new Promise(function(r, i) {
|
|
25696
25710
|
var a = e.apply(t, n);
|
|
25697
25711
|
function o(e) {
|
|
25698
|
-
|
|
25712
|
+
hy(a, r, i, o, s, "next", e);
|
|
25699
25713
|
}
|
|
25700
25714
|
function s(e) {
|
|
25701
|
-
|
|
25715
|
+
hy(a, r, i, o, s, "throw", e);
|
|
25702
25716
|
}
|
|
25703
25717
|
o(void 0);
|
|
25704
25718
|
});
|
|
@@ -25706,18 +25720,18 @@ function my(e) {
|
|
|
25706
25720
|
}
|
|
25707
25721
|
//#endregion
|
|
25708
25722
|
//#region build/five/gaussian-splatting/wasm/data.js
|
|
25709
|
-
function
|
|
25710
|
-
return
|
|
25723
|
+
function _y() {
|
|
25724
|
+
return vy.apply(this, arguments);
|
|
25711
25725
|
}
|
|
25712
|
-
function
|
|
25713
|
-
return
|
|
25726
|
+
function vy() {
|
|
25727
|
+
return vy = gy(function* (e = {}) {
|
|
25714
25728
|
var t, n = e, r = !1, i = !0, a = import.meta.url;
|
|
25715
25729
|
if (r || i) {
|
|
25716
25730
|
try {
|
|
25717
25731
|
new URL(".", a).href;
|
|
25718
25732
|
} catch (e) {}
|
|
25719
25733
|
(function() {
|
|
25720
|
-
var e =
|
|
25734
|
+
var e = gy(function* (e) {
|
|
25721
25735
|
var t = yield fetch(e, { credentials: "same-origin" });
|
|
25722
25736
|
if (t.ok) return t.arrayBuffer();
|
|
25723
25737
|
throw Error(t.status + " : " + t.url);
|
|
@@ -25812,21 +25826,21 @@ function gy() {
|
|
|
25812
25826
|
return te(), t = u ? n : new Promise((e, t) => {
|
|
25813
25827
|
c = e;
|
|
25814
25828
|
}), t;
|
|
25815
|
-
}),
|
|
25829
|
+
}), vy.apply(this, arguments);
|
|
25816
25830
|
}
|
|
25817
25831
|
//#endregion
|
|
25818
25832
|
//#region build/five/gaussian-splatting/util/renderData.js
|
|
25819
|
-
var _y = null;
|
|
25820
|
-
function vy() {
|
|
25821
|
-
return _y || (_y = hy()), _y;
|
|
25822
|
-
}
|
|
25823
25833
|
var yy = null;
|
|
25824
25834
|
function by() {
|
|
25825
|
-
return yy || (yy =
|
|
25835
|
+
return yy || (yy = _y()), yy;
|
|
25836
|
+
}
|
|
25837
|
+
var xy = null;
|
|
25838
|
+
function Sy() {
|
|
25839
|
+
return xy || (xy = new my()), xy;
|
|
25826
25840
|
}
|
|
25827
|
-
var
|
|
25841
|
+
var Cy = class {
|
|
25828
25842
|
static warmupWasm() {
|
|
25829
|
-
|
|
25843
|
+
by();
|
|
25830
25844
|
}
|
|
25831
25845
|
constructor(e, t = 0) {
|
|
25832
25846
|
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) => {
|
|
@@ -25846,7 +25860,7 @@ var xy = class {
|
|
|
25846
25860
|
}), 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) => {
|
|
25847
25861
|
let t = this.offsets.get(e);
|
|
25848
25862
|
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);
|
|
25849
|
-
}), this.worker =
|
|
25863
|
+
}), this.worker = Sy(), this.worker.onmessage = (e) => {
|
|
25850
25864
|
if (!this.disposed && e.data.response) {
|
|
25851
25865
|
let t = e.data.response, n = i.get(t.offset);
|
|
25852
25866
|
if (!n) return;
|
|
@@ -25855,7 +25869,7 @@ var xy = class {
|
|
|
25855
25869
|
for (let e = 0; e < n.numPoints; e++) this.transformIndices[t.offset + e] = r, this.layerIndices[t.offset + e] = a;
|
|
25856
25870
|
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;
|
|
25857
25871
|
}
|
|
25858
|
-
},
|
|
25872
|
+
}, by().then((e) => {
|
|
25859
25873
|
if (this.disposed) {
|
|
25860
25874
|
this.completeInitialBuild();
|
|
25861
25875
|
return;
|
|
@@ -25886,7 +25900,7 @@ var xy = class {
|
|
|
25886
25900
|
rebuildSortData() {
|
|
25887
25901
|
return Vo(this, void 0, void 0, function* () {
|
|
25888
25902
|
if (!this.sortDataReleased || this.disposed) return;
|
|
25889
|
-
let e = yield
|
|
25903
|
+
let e = yield by();
|
|
25890
25904
|
if (!this.disposed) {
|
|
25891
25905
|
this.positions = new Float32Array(this.numPoints * 3), this.rotations = new Float32Array(this.numPoints * 4), this.scales = new Float32Array(this.numPoints * 3);
|
|
25892
25906
|
for (let t of this.objectsInOrder) {
|
|
@@ -25913,7 +25927,7 @@ var xy = class {
|
|
|
25913
25927
|
return Vo(this, void 0, void 0, function* () {
|
|
25914
25928
|
if (this.disposed) return !1;
|
|
25915
25929
|
if (e.length === 0) return !0;
|
|
25916
|
-
let t = yield
|
|
25930
|
+
let t = yield by();
|
|
25917
25931
|
if (this.disposed) return !1;
|
|
25918
25932
|
let n = this.numPoints, r = this.objectsInOrder.length, i = n + e.reduce((e, t) => e + t.numPoints, 0), a = r + e.length;
|
|
25919
25933
|
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);
|
|
@@ -25966,26 +25980,26 @@ var xy = class {
|
|
|
25966
25980
|
completeInitialBuild() {
|
|
25967
25981
|
this.initialBuildComplete || (this.initialBuildComplete = !0), this.resolveReadyPromise && (this.resolveReadyPromise(), this.resolveReadyPromise = null);
|
|
25968
25982
|
}
|
|
25969
|
-
}, 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" });
|
|
25970
|
-
function
|
|
25983
|
+
}, wy = "(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)})})();", Ty = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", wy], { type: "text/javascript;charset=utf-8" });
|
|
25984
|
+
function Ey(e) {
|
|
25971
25985
|
let t;
|
|
25972
25986
|
try {
|
|
25973
|
-
if (t =
|
|
25987
|
+
if (t = Ty && (self.URL || self.webkitURL).createObjectURL(Ty), !t) throw "";
|
|
25974
25988
|
let n = new Worker(t, { name: e == null ? void 0 : e.name });
|
|
25975
25989
|
return n.addEventListener("error", () => {
|
|
25976
25990
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
25977
25991
|
}), n;
|
|
25978
25992
|
} catch (t) {
|
|
25979
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
25993
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(wy), { name: e == null ? void 0 : e.name });
|
|
25980
25994
|
}
|
|
25981
25995
|
}
|
|
25982
25996
|
//#endregion
|
|
25983
25997
|
//#region build/five/model/shaders/pbm_gaussian_splatting/vertex.js
|
|
25984
|
-
var
|
|
25998
|
+
var Dy = function(...e) {
|
|
25985
25999
|
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
25986
|
-
}("}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) {
|
|
26000
|
+
}("}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"), Oy = function(...e) {
|
|
25987
26001
|
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
25988
|
-
}("}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"),
|
|
26002
|
+
}("}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"), ky = 2, Ay = class extends e.Mesh {
|
|
25989
26003
|
constructor() {
|
|
25990
26004
|
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) => {
|
|
25991
26005
|
let i = r, a = this.collectObjects(n);
|
|
@@ -26014,7 +26028,7 @@ var Ty = function(...e) {
|
|
|
26014
26028
|
this.geometry = t, this.material = n, this.frustumCulled = !1, this.renderOrder = -99999999999, this.gsSceneState = {
|
|
26015
26029
|
lastObjectsHash: "",
|
|
26016
26030
|
lastClipperHash: ""
|
|
26017
|
-
}, this.sortWorker = new
|
|
26031
|
+
}, this.sortWorker = new Ey(), this.sortWorker.postMessage({ warmup: !0 }), Cy.warmupWasm(), this.sortWorker.onmessage = (e) => {
|
|
26018
26032
|
if (e.data.depthIndex) {
|
|
26019
26033
|
let t = e.data.generation;
|
|
26020
26034
|
if (this.pendingSlot && t === this.pendingSlot.generation) {
|
|
@@ -26070,8 +26084,8 @@ var Ty = function(...e) {
|
|
|
26070
26084
|
}
|
|
26071
26085
|
createMaterial() {
|
|
26072
26086
|
return new e.ShaderMaterial({
|
|
26073
|
-
vertexShader:
|
|
26074
|
-
fragmentShader:
|
|
26087
|
+
vertexShader: Dy,
|
|
26088
|
+
fragmentShader: Oy,
|
|
26075
26089
|
defines: {
|
|
26076
26090
|
NUM_GS_LAYERS: 0,
|
|
26077
26091
|
NUM_GS_CLIPPERS: 0
|
|
@@ -26174,7 +26188,7 @@ var Ty = function(...e) {
|
|
|
26174
26188
|
}
|
|
26175
26189
|
recycleSlot(e) {
|
|
26176
26190
|
if (e) {
|
|
26177
|
-
if (this.freeSlotPool.length >=
|
|
26191
|
+
if (this.freeSlotPool.length >= ky) {
|
|
26178
26192
|
let e = this.freeSlotPool.shift();
|
|
26179
26193
|
this.disposeSlot(e);
|
|
26180
26194
|
}
|
|
@@ -26291,7 +26305,7 @@ var Ty = function(...e) {
|
|
|
26291
26305
|
}
|
|
26292
26306
|
startPendingRebuild(e) {
|
|
26293
26307
|
this.pendingSlot && (this.recycleSlot(this.pendingSlot), this.pendingSlot = null), this.rebuildGeneration += 1;
|
|
26294
|
-
let t = new
|
|
26308
|
+
let t = new Cy(e, this.rebuildGeneration), n = this.freeSlotPool.pop();
|
|
26295
26309
|
if (n) {
|
|
26296
26310
|
n.renderData.dispose();
|
|
26297
26311
|
let e = this.createTextures(t, n.textures);
|
|
@@ -26325,7 +26339,7 @@ var Ty = function(...e) {
|
|
|
26325
26339
|
for (let e of this.freeSlotPool) this.disposeSlot(e);
|
|
26326
26340
|
this.freeSlotPool.length = 0, this.renderData = null, this.sortWorker && this.sortWorker.terminate(), this.bindSlotTextures(null), this.geometry.dispose(), this.material.dispose();
|
|
26327
26341
|
}
|
|
26328
|
-
},
|
|
26342
|
+
}, jy = class extends e.Mesh {
|
|
26329
26343
|
constructor() {
|
|
26330
26344
|
super(), this.onBeforeRender = (e, t, n) => {
|
|
26331
26345
|
this.collectObjects(t).length > 0 && console.warn("未开启webgl2, 3dgs仅支持在开启webgl2模式后使用");
|
|
@@ -26337,9 +26351,9 @@ var Ty = function(...e) {
|
|
|
26337
26351
|
e instanceof Yn && e.visible && t.push(e);
|
|
26338
26352
|
}), t;
|
|
26339
26353
|
}
|
|
26340
|
-
},
|
|
26354
|
+
}, My = 1e3, Ny = 90, Py = (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/"), Fy = new e.Sphere(), Iy = new e.Box3(), Ly = new e.Vector4(), Ry = new e.Vector4(), zy = new e.Color(), By = new e.Vector2(), Vy = /* @__PURE__ */ new WeakMap(), Hy = tm([Qp(null)]), Uy = {}, Wy = class t extends an {
|
|
26341
26355
|
static get version() {
|
|
26342
|
-
return "6.8.
|
|
26356
|
+
return "6.8.3";
|
|
26343
26357
|
}
|
|
26344
26358
|
static get dracoPath() {
|
|
26345
26359
|
return eo.decoderPath;
|
|
@@ -26361,7 +26375,7 @@ var Ty = function(...e) {
|
|
|
26361
26375
|
}
|
|
26362
26376
|
constructor(t = {}) {
|
|
26363
26377
|
var n, r, i, a, o, s, c, l, u, d, f;
|
|
26364
|
-
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = $t(),
|
|
26378
|
+
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = $t(), Uy[this.fiveId] = this, this.currentUpdateArgs = {
|
|
26365
26379
|
time: H(),
|
|
26366
26380
|
args: []
|
|
26367
26381
|
}, this.currentMode = "Panorama", this.pano = {
|
|
@@ -26378,7 +26392,7 @@ var Ty = function(...e) {
|
|
|
26378
26392
|
}, this.fps = {
|
|
26379
26393
|
testCount: 0,
|
|
26380
26394
|
testTime: H()
|
|
26381
|
-
}, this.modeChangeDuration = (c = t.modeChangeDuration) == null ?
|
|
26395
|
+
}, this.modeChangeDuration = (c = t.modeChangeDuration) == null ? My : 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;
|
|
26382
26396
|
else try {
|
|
26383
26397
|
this.renderer = new Jm({
|
|
26384
26398
|
preserveDrawingBuffer: t.preserveDrawingBuffer,
|
|
@@ -26388,7 +26402,7 @@ var Ty = function(...e) {
|
|
|
26388
26402
|
precision: t.precision,
|
|
26389
26403
|
powerPreference: t.powerPreference
|
|
26390
26404
|
});
|
|
26391
|
-
let e =
|
|
26405
|
+
let e = Zv();
|
|
26392
26406
|
this.renderer.setPixelRatio(e === 1 ? window.devicePixelRatio : 1), this.renderer.setSize(512, 512), this.renderer.setClearColor(this.backgroundColor, this.backgroundAlpha);
|
|
26393
26407
|
} catch (e) {
|
|
26394
26408
|
let t = e instanceof Error ? e : Error(String(e));
|
|
@@ -26402,7 +26416,7 @@ var Ty = function(...e) {
|
|
|
26402
26416
|
bottom: 0,
|
|
26403
26417
|
width: 1,
|
|
26404
26418
|
height: 1
|
|
26405
|
-
}, t.viewport), this.camera = new Zt(
|
|
26419
|
+
}, t.viewport), this.camera = new Zt(Ny), 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 ? Py : f, this.networkSubscribe = new sr(), this.networkSubscribe.on("network", (e, t, n, r) => {
|
|
26406
26420
|
var i;
|
|
26407
26421
|
this.emit("network.resource", Q("network.resource", {
|
|
26408
26422
|
source: e,
|
|
@@ -26410,17 +26424,17 @@ var Ty = function(...e) {
|
|
|
26410
26424
|
requestState: n,
|
|
26411
26425
|
detail: r
|
|
26412
26426
|
})), (i = this.analysis) == null || i.network(this.works, e, t, n, r);
|
|
26413
|
-
}), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup),
|
|
26427
|
+
}), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup), Vy.set(this, Hy), this.modelScene = new Qf({ fiveId: this.fiveId }), this.modelScene.addEventListener("model.create", (e) => {
|
|
26414
26428
|
this.bindModel(e.model);
|
|
26415
26429
|
}), this.scene.add(this.modelScene);
|
|
26416
|
-
let [p] = this.modelScene.setModels(
|
|
26430
|
+
let [p] = this.modelScene.setModels(Hy, { forceReplaceImmediately: !0 });
|
|
26417
26431
|
V(p, "loaded", {
|
|
26418
26432
|
get() {
|
|
26419
26433
|
return !1;
|
|
26420
26434
|
},
|
|
26421
26435
|
set(e) {}
|
|
26422
|
-
}), this.videoTexture = new e.VideoTexture(t.videoInstance ||
|
|
26423
|
-
let m =
|
|
26436
|
+
}), this.videoTexture = new e.VideoTexture(t.videoInstance || Jv());
|
|
26437
|
+
let m = Yv();
|
|
26424
26438
|
this.scene.add(m), this.state = {
|
|
26425
26439
|
mode: this.currentMode,
|
|
26426
26440
|
workCode: this.pano.workCode,
|
|
@@ -26450,7 +26464,7 @@ var Ty = function(...e) {
|
|
|
26450
26464
|
}
|
|
26451
26465
|
}
|
|
26452
26466
|
}
|
|
26453
|
-
|
|
26467
|
+
qv(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 Ay(), this.scene.add(this.pbmGaussianSplattingRenderMesh)) : this.scene.add(new jy());
|
|
26454
26468
|
}
|
|
26455
26469
|
get ident() {
|
|
26456
26470
|
return this.fiveId;
|
|
@@ -26464,11 +26478,11 @@ var Ty = function(...e) {
|
|
|
26464
26478
|
dispose() {
|
|
26465
26479
|
var t;
|
|
26466
26480
|
if (this.destroyed === !0) return;
|
|
26467
|
-
delete
|
|
26481
|
+
delete Uy[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);
|
|
26468
26482
|
let n = this.getElement();
|
|
26469
26483
|
n && n.parentNode && n.parentNode.removeChild(n);
|
|
26470
26484
|
let r = this.modelScene.parameter;
|
|
26471
|
-
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(),
|
|
26485
|
+
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(), Vy.set(this, Hy), 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());
|
|
26472
26486
|
}
|
|
26473
26487
|
setViewport(e) {
|
|
26474
26488
|
Object.assign(this.viewport, e), this.needsRender = !0;
|
|
@@ -26503,7 +26517,7 @@ var Ty = function(...e) {
|
|
|
26503
26517
|
if (!this.renderer) return;
|
|
26504
26518
|
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;
|
|
26505
26519
|
if (o = Math.max(1, o), s = Math.max(1, s), !t) {
|
|
26506
|
-
let e =
|
|
26520
|
+
let e = Zv(), n = typeof window < "u" ? window.devicePixelRatio : 1;
|
|
26507
26521
|
if (t = (i = e === 1 ? n : 1) == null ? 1 : i, t > 1) {
|
|
26508
26522
|
let e = Math.max(o, s) * t, n = Math.min(this.renderer.capabilities.maxTextureSize, 4096);
|
|
26509
26523
|
e > n && (t = Math.max(t / e * n, 1), t = Math.floor(t * 100) / 100);
|
|
@@ -26537,7 +26551,7 @@ var Ty = function(...e) {
|
|
|
26537
26551
|
return this.controller.updateCameraWithKeyframes(e, t, n);
|
|
26538
26552
|
}
|
|
26539
26553
|
get works() {
|
|
26540
|
-
return
|
|
26554
|
+
return Vy.get(this) || Hy;
|
|
26541
26555
|
}
|
|
26542
26556
|
get work() {
|
|
26543
26557
|
return this.works[0];
|
|
@@ -26561,7 +26575,7 @@ var Ty = function(...e) {
|
|
|
26561
26575
|
load_(n, r, i, a = !0) {
|
|
26562
26576
|
var o, s, c, l, u, d, f, p, m, h;
|
|
26563
26577
|
let g = {};
|
|
26564
|
-
typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works ===
|
|
26578
|
+
typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works === Hy && (g.duration === void 0 && (g.duration = 0), g.effect === void 0 && (g.effect = "instant"));
|
|
26565
26579
|
let _ = {};
|
|
26566
26580
|
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);
|
|
26567
26581
|
let v = [];
|
|
@@ -26575,7 +26589,7 @@ var Ty = function(...e) {
|
|
|
26575
26589
|
return this.throwError(e), Promise.reject(e);
|
|
26576
26590
|
}
|
|
26577
26591
|
for (let e of y) this.bindWorkFetcher(e);
|
|
26578
|
-
r === void 0 && (r = "inherit"), r === "inherit" && this.works ===
|
|
26592
|
+
r === void 0 && (r = "inherit"), r === "inherit" && this.works === Hy && (r = "initial");
|
|
26579
26593
|
let b = this.currentMode, x = y.initial, S = x.work.observers[0], C = S ? {
|
|
26580
26594
|
workCode: S.work.workCode,
|
|
26581
26595
|
panoIndex: S.panoIndex
|
|
@@ -26646,7 +26660,7 @@ var Ty = function(...e) {
|
|
|
26646
26660
|
duration: E,
|
|
26647
26661
|
effect: D,
|
|
26648
26662
|
userAction: a
|
|
26649
|
-
} }, this.commonParams()), this.controllerInits[e]), c =
|
|
26663
|
+
} }, this.commonParams()), this.controllerInits[e]), c = Wv[o.mode].initAnimationEndState(s);
|
|
26650
26664
|
if (this.controller && b === e) this.controller.updateWork(y, c, {
|
|
26651
26665
|
effect: D,
|
|
26652
26666
|
duration: E
|
|
@@ -26654,7 +26668,7 @@ var Ty = function(...e) {
|
|
|
26654
26668
|
else {
|
|
26655
26669
|
if (this.controller) this.controller.destroy();
|
|
26656
26670
|
else {
|
|
26657
|
-
let t =
|
|
26671
|
+
let t = Wv[e].initAnimationEndState(s);
|
|
26658
26672
|
this.camera.setFromPose(t), this.emit("camera.update", Q("camera.update", {
|
|
26659
26673
|
state: this.getCurrentState(),
|
|
26660
26674
|
userAction: a
|
|
@@ -26675,7 +26689,7 @@ var Ty = function(...e) {
|
|
|
26675
26689
|
}
|
|
26676
26690
|
this.updateTime(this.currentUpdateArgs.time, 0, ...this.currentUpdateArgs.args);
|
|
26677
26691
|
};
|
|
26678
|
-
|
|
26692
|
+
Vy.set(this, y);
|
|
26679
26693
|
let k = Promise.resolve();
|
|
26680
26694
|
if (w === t.Mode.Floorplan || w === t.Mode.Topview || w === t.Mode.Mapview || w === t.Mode.Model) {
|
|
26681
26695
|
this.modelScene.loaded === !1 && (this.camera.setFromPose(T), Mh(this.state, this.camera.pose));
|
|
@@ -26726,12 +26740,12 @@ var Ty = function(...e) {
|
|
|
26726
26740
|
pano0: null,
|
|
26727
26741
|
pano1: null,
|
|
26728
26742
|
modelAlpha: 1
|
|
26729
|
-
}),
|
|
26743
|
+
}), Vy.set(this, Hy), this.modelScene.setModels(Hy, { forceReplaceImmediately: !0 }), this.renderer && this.modelScene.update(this.renderer, this.camera), this.needsRender = !0, this.currentMode = "Panorama", this.pano = {
|
|
26730
26744
|
workCode: "",
|
|
26731
26745
|
panoIndex: 0
|
|
26732
26746
|
}, this.camera.setFromPose({
|
|
26733
26747
|
distance: 0,
|
|
26734
|
-
fov:
|
|
26748
|
+
fov: Ny,
|
|
26735
26749
|
longitude: 0,
|
|
26736
26750
|
latitude: 0,
|
|
26737
26751
|
offset: new e.Vector3(0, 0, 0)
|
|
@@ -26780,7 +26794,7 @@ var Ty = function(...e) {
|
|
|
26780
26794
|
duration: f,
|
|
26781
26795
|
effect: p,
|
|
26782
26796
|
userAction: i
|
|
26783
|
-
} }, this.commonParams()), this.controllerInits[e]), a =
|
|
26797
|
+
} }, this.commonParams()), this.controllerInits[e]), a = Wv[e].initAnimationEndState(r), o = Q("mode.change.request", {
|
|
26784
26798
|
prevMode: this.currentMode,
|
|
26785
26799
|
mode: e,
|
|
26786
26800
|
state: a,
|
|
@@ -26815,10 +26829,10 @@ var Ty = function(...e) {
|
|
|
26815
26829
|
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;
|
|
26816
26830
|
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 : _;
|
|
26817
26831
|
let x = this.helperVisible, S = this.modelScene.parameter.modelAlpha;
|
|
26818
|
-
this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof
|
|
26832
|
+
this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof Wv.Panorama || this.controller instanceof Wv.VRPanorama || this.controller instanceof Wv.XRPanorama) && y === !0 && this.modelScene.parameter.set("modelAlpha", 1), this.modelScene.update(this.renderer, this.camera);
|
|
26819
26833
|
let C = this.getPixelsRenderTarget;
|
|
26820
26834
|
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);
|
|
26821
|
-
let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O =
|
|
26835
|
+
let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O = zy.copy(this.renderer.getClearColor()), k = this.renderer.getClearAlpha(), A = this.renderer.getScissorTest();
|
|
26822
26836
|
this.renderer.autoClear = !0, this.renderer.autoClearColor = !0, this.renderer.autoClearDepth = !0, this.renderer.autoClearStencil = !0, this.renderer.setScissorTest(!1);
|
|
26823
26837
|
let j = this.scene.background;
|
|
26824
26838
|
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);
|
|
@@ -26841,9 +26855,9 @@ var Ty = function(...e) {
|
|
|
26841
26855
|
if (!t) return;
|
|
26842
26856
|
let n = t.getRenderTarget();
|
|
26843
26857
|
t.setRenderTarget(null);
|
|
26844
|
-
let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s =
|
|
26858
|
+
let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s = zy.copy(t.getClearColor()), c = t.getClearAlpha(), l = t.getViewport(Ly), u = t.getScissor(Ry), d = t.getScissorTest();
|
|
26845
26859
|
t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0;
|
|
26846
|
-
let f = t.getSize(
|
|
26860
|
+
let f = t.getSize(By), 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);
|
|
26847
26861
|
t.setClearColor(this.backgroundColor, this.backgroundAlpha), t.setViewport(p, m, h, g), t.setScissor(p, m, h, g);
|
|
26848
26862
|
let _ = this.viewport.bottom !== 0 || this.viewport.left !== 0 || this.viewport.width !== 1 || this.viewport.height !== 1;
|
|
26849
26863
|
t.setScissorTest(_);
|
|
@@ -26852,7 +26866,7 @@ var Ty = function(...e) {
|
|
|
26852
26866
|
let y = !0;
|
|
26853
26867
|
if (this.controller && this.controller.render() && (y = !1), y) {
|
|
26854
26868
|
let e = this.fiveRenderer.render(t, this.scene, this.modelScene, this.camera, this.needsRender);
|
|
26855
|
-
this.poweredByRealsee && e &&
|
|
26869
|
+
this.poweredByRealsee && e && dy(t);
|
|
26856
26870
|
}
|
|
26857
26871
|
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);
|
|
26858
26872
|
}
|
|
@@ -26870,8 +26884,8 @@ var Ty = function(...e) {
|
|
|
26870
26884
|
}, !0, 0, 10);
|
|
26871
26885
|
}
|
|
26872
26886
|
if (this.camera.autoNearFar) {
|
|
26873
|
-
|
|
26874
|
-
let t =
|
|
26887
|
+
Iy.makeEmpty(), Iy.expandByObject(this.modelScene.boundingMesh);
|
|
26888
|
+
let t = Iy.getBoundingSphere(Fy), n = t.radius * 2;
|
|
26875
26889
|
t.containsPoint(this.camera.position) || (n = this.camera.position.distanceTo(t.center) + t.radius), n = U(n, 800);
|
|
26876
26890
|
let r = n / 1e4;
|
|
26877
26891
|
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);
|
|
@@ -27001,7 +27015,7 @@ var Ty = function(...e) {
|
|
|
27001
27015
|
duration: this.modeChangeDuration,
|
|
27002
27016
|
effect: "fly",
|
|
27003
27017
|
userAction: !1
|
|
27004
|
-
} }, this.commonParams()), this.controllerInits[h]), i =
|
|
27018
|
+
} }, this.commonParams()), this.controllerInits[h]), i = Wv[h].initAnimationEndState(r);
|
|
27005
27019
|
g = i.longitude, _ = i.latitude, v = i.fov, y = i.offset, b = i.distance;
|
|
27006
27020
|
} 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;
|
|
27007
27021
|
let x = {
|
|
@@ -27039,7 +27053,7 @@ var Ty = function(...e) {
|
|
|
27039
27053
|
return this.changeMode(this.state.mode, e, this.modeChangeDuration, this.controller.userAction), !0;
|
|
27040
27054
|
}
|
|
27041
27055
|
if (!this.controller.isReady()) return !1;
|
|
27042
|
-
if (this.controller instanceof
|
|
27056
|
+
if (this.controller instanceof Wv.Model) {
|
|
27043
27057
|
if (bh(this.camera.pose.offset, this.state.offset)) {
|
|
27044
27058
|
let e = {
|
|
27045
27059
|
longitude: this.state.longitude,
|
|
@@ -27065,7 +27079,7 @@ var Ty = function(...e) {
|
|
|
27065
27079
|
return this.controller.moveToPano(e, t, !1), !0;
|
|
27066
27080
|
}
|
|
27067
27081
|
}
|
|
27068
|
-
if (this.controller instanceof
|
|
27082
|
+
if (this.controller instanceof Wv.Floorplan || this.controller instanceof Wv.Topview || this.controller instanceof Wv.Mapview) {
|
|
27069
27083
|
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 ? {
|
|
27070
27084
|
longitude: this.state.longitude,
|
|
27071
27085
|
latitude: this.state.latitude
|
|
@@ -27112,7 +27126,7 @@ var Ty = function(...e) {
|
|
|
27112
27126
|
if (!(e === t.Mode.Floorplan || e === t.Mode.Topview || e === t.Mode.Mapview || e === t.Mode.Model) || this.modelScene.loaded) {
|
|
27113
27127
|
let e = this.readyCallbacks.slice();
|
|
27114
27128
|
this.readyCallbacks.length = 0;
|
|
27115
|
-
for (let t of e) this.controller instanceof
|
|
27129
|
+
for (let t of e) this.controller instanceof Wv.Panorama && t.tile === !0 && !this.controller.isTileReady() ? this.readyCallbacks.push(t) : t();
|
|
27116
27130
|
}
|
|
27117
27131
|
}
|
|
27118
27132
|
return !1;
|
|
@@ -27212,14 +27226,14 @@ var Ty = function(...e) {
|
|
|
27212
27226
|
}
|
|
27213
27227
|
applyController(e, n) {
|
|
27214
27228
|
if (!this.renderer) throw Error("renderer is not initialized.");
|
|
27215
|
-
let r =
|
|
27229
|
+
let r = Wv[e];
|
|
27216
27230
|
this.currentMode = e;
|
|
27217
27231
|
let i = new r(n);
|
|
27218
|
-
for (let e of
|
|
27232
|
+
for (let e of Kv) i.on(e, (...t) => {
|
|
27219
27233
|
if (this.emit(e, ...t)) return !1;
|
|
27220
27234
|
});
|
|
27221
27235
|
{
|
|
27222
|
-
let t =
|
|
27236
|
+
let t = Wv[e].initAnimationEndState(n), r = n.initial.userAction;
|
|
27223
27237
|
jh(this.state, t) || (Ah(this.state, t), this.emit("state.change", Q("state.change", {
|
|
27224
27238
|
userAction: r,
|
|
27225
27239
|
state: this.state
|
|
@@ -27403,7 +27417,7 @@ var Ty = function(...e) {
|
|
|
27403
27417
|
this.modelScene.needsRender = e;
|
|
27404
27418
|
}
|
|
27405
27419
|
};
|
|
27406
|
-
|
|
27420
|
+
Wy.Mode = {
|
|
27407
27421
|
Panorama: "Panorama",
|
|
27408
27422
|
Model: "Model",
|
|
27409
27423
|
Floorplan: "Floorplan",
|
|
@@ -27413,12 +27427,12 @@ Hy.Mode = {
|
|
|
27413
27427
|
XRPanorama: "XRPanorama"
|
|
27414
27428
|
}, typeof window < "u" && Object.assign(window, { __FIVE_DEBUG__: {
|
|
27415
27429
|
THREE: e,
|
|
27416
|
-
constructor:
|
|
27417
|
-
instances:
|
|
27430
|
+
constructor: Wy,
|
|
27431
|
+
instances: Uy
|
|
27418
27432
|
} });
|
|
27419
27433
|
//#endregion
|
|
27420
27434
|
//#region build/five/webxr/xrButton.js
|
|
27421
|
-
var
|
|
27435
|
+
var Gy = class {
|
|
27422
27436
|
static createButton(e) {
|
|
27423
27437
|
let t = document.createElement("button");
|
|
27424
27438
|
function n() {
|
|
@@ -27449,4 +27463,4 @@ var Uy = class {
|
|
|
27449
27463
|
}
|
|
27450
27464
|
};
|
|
27451
27465
|
//#endregion
|
|
27452
|
-
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,
|
|
27466
|
+
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, Wy 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, Kv 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, Gy as XRButton, Gv as controllersDefaultInitArgs, Rt as coordinatesToVector, jl as createDebugBoundingMesh, tm as createWorks, Kr as defaultImageURLTransform, eo as draco, Zv 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 };
|