@realsee/five-webgpu 1.0.0-alpha.12 → 1.0.0-alpha.14
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/_virtual/_rolldown/runtime.js +3 -3
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
- package/docs/classes/index.BoundingMesh.html +1 -1
- package/docs/classes/index.Camera.html +1 -1
- package/docs/classes/index.EyeDomeLightingPass.html +1 -1
- package/docs/classes/index.Five.html +41 -32
- package/docs/classes/index.FivePass.html +1 -1
- package/docs/classes/index.FiveRenderer.html +7 -2
- package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
- package/docs/classes/index.FlowingLight2DPass.html +1 -1
- package/docs/classes/index.FlowingLight3DPass.html +1 -1
- package/docs/classes/index.GaussianBlurPass.html +1 -1
- package/docs/classes/index.InternalWebGPURenderer.html +4 -5
- package/docs/classes/index.Model.html +1 -1
- package/docs/classes/index.ModelScene.html +1 -1
- package/docs/classes/index.NetworkSubscribe.html +1 -1
- package/docs/classes/index.PBMCustomNode.html +1 -1
- package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +9 -9
- package/docs/classes/index.PBMGaussianSplattingObject.html +49 -11
- package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +71 -16
- package/docs/classes/index.PBMGroup.html +1 -1
- package/docs/classes/index.PBMMesh.html +1 -1
- package/docs/classes/index.PBMMeshBasicMaterial.html +1 -1
- package/docs/classes/index.PBMMeshBasicNodeMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhongMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhongNodeMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhysicalMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +1 -1
- package/docs/classes/index.PBMPanoFilter.html +1 -1
- package/docs/classes/index.PBMPointCloud.html +1 -1
- package/docs/classes/index.PBMPointCloudMaterial.html +1 -1
- package/docs/classes/index.PBMSkinnedMesh.html +1 -1
- package/docs/classes/index.PBMUpdateable.html +1 -1
- package/docs/classes/index.PanoCircleMesh.html +1 -1
- package/docs/classes/index.PanoCircleMeshCustom.html +1 -1
- package/docs/classes/index.PanoCircleMeshSolid.html +1 -1
- package/docs/classes/index.Parameter.html +24 -22
- package/docs/classes/index.Scene.html +1 -1
- package/docs/classes/index.Subscribe.html +1 -1
- package/docs/classes/index.Tile3D.html +22 -22
- package/docs/classes/index.TileNode.html +2 -2
- package/docs/classes/index.TrajectoryNode.html +1 -1
- package/docs/classes/index.Work.html +15 -22
- package/docs/classes/index.WorkResolvedObserver.html +22 -22
- package/docs/functions/index.createWorks.html +1 -1
- package/docs/functions/index.parseWork.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/index.AddableObject.html +1 -1
- package/docs/interfaces/index.AjaxOptions.html +1 -1
- package/docs/interfaces/index.BaseEvent.html +1 -1
- package/docs/interfaces/index.Clock.html +1 -1
- package/docs/interfaces/index.DeviceProfile.html +2 -2
- package/docs/interfaces/index.EventCallback.html +3 -3
- package/docs/interfaces/index.GestureEvent.html +1 -1
- package/docs/interfaces/index.IPBMMaterial.html +1 -1
- package/docs/interfaces/index.ImageOptions.html +1 -1
- package/docs/interfaces/index.IntersectEvent.html +1 -1
- package/docs/interfaces/index.IntersectMesh.html +1 -1
- package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/index.Intersection.html +1 -1
- package/docs/interfaces/index.LooseWorkWithExtrinsics.html +8 -8
- package/docs/interfaces/index.ModeChangeEvent.html +1 -1
- package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ModelEvent.html +1 -1
- package/docs/interfaces/index.ModelSceneEvent.html +1 -1
- package/docs/interfaces/index.ModelTileEvent.html +1 -1
- package/docs/interfaces/index.MovePanoOptions.html +1 -1
- package/docs/interfaces/index.NetworkAbortError.html +1 -1
- package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
- package/docs/interfaces/index.NetworkOptions.html +1 -1
- package/docs/interfaces/index.NetworkProxyError.html +1 -1
- package/docs/interfaces/index.NetworkResourceEvent.html +1 -1
- package/docs/interfaces/index.NetworkResponseError.html +1 -1
- package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
- package/docs/interfaces/index.ObjectEvent.html +1 -1
- package/docs/interfaces/index.PBMGaussianSplattingNodeMaterialOptions.html +3 -3
- package/docs/interfaces/index.PanoCircleMeshInterface.html +1 -1
- package/docs/interfaces/index.PanoEvent.html +1 -1
- package/docs/interfaces/index.PanoPrepareEvent.html +1 -1
- package/docs/interfaces/index.PanoTextureEvent.html +1 -1
- package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ParameterMaterialValue.html +8 -6
- package/docs/interfaces/index.ParameterTilesetValue.html +15 -15
- package/docs/interfaces/index.ParameterValue.html +21 -19
- package/docs/interfaces/index.Pose.html +1 -1
- package/docs/interfaces/index.RenderEvent.html +1 -1
- package/docs/interfaces/index.ResolvedParameterValue.html +22 -20
- package/docs/interfaces/index.SplatData.html +10 -6
- package/docs/interfaces/index.State.html +1 -1
- package/docs/interfaces/index.StateEvent.html +1 -1
- package/docs/interfaces/index.TextureOptions.html +1 -1
- package/docs/interfaces/index.Tile3DOptions.html +2 -2
- package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ViewLayer.html +22 -22
- package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +2 -2
- package/docs/interfaces/index.WorkCubeImage.html +2 -2
- package/docs/interfaces/index.WorkImage.html +5 -5
- package/docs/interfaces/index.WorkInitial.html +8 -8
- package/docs/interfaces/index.WorkInitialJson.html +2 -2
- package/docs/interfaces/index.WorkJson.html +2 -4
- package/docs/interfaces/index.WorkModel.html +8 -8
- package/docs/interfaces/index.WorkModelJson.html +2 -2
- package/docs/interfaces/index.WorkModelLayer.html +6 -6
- package/docs/interfaces/index.WorkModelLayerJson.html +2 -2
- package/docs/interfaces/index.WorkObserver.html +23 -23
- package/docs/interfaces/index.WorkObserverJson.html +2 -2
- package/docs/interfaces/index.WorkPanoramaJson.html +2 -2
- package/docs/interfaces/index.WorkPanoramasJson.html +2 -2
- package/docs/interfaces/index.WorkTile.html +5 -5
- package/docs/interfaces/index.WorkVideo.html +4 -4
- package/docs/interfaces/index.WorksEvent.html +1 -1
- package/docs/interfaces/index.XRControllerEvent.html +1 -1
- package/docs/interfaces/index.XRGestureEvent.html +2 -2
- package/docs/interfaces/index.XRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.XRSessionEvent.html +1 -1
- package/docs/modules/index.html +1 -1
- package/docs/types/index.LegacyEventType.html +3 -3
- package/docs/types/index.OutputTextureDataType.html +1 -1
- package/docs/types/index.ParseOptions.html +8 -8
- package/docs/types/index.PointCloudTransparencyMode.html +2 -0
- package/docs/types/index.Works.html +1 -1
- package/docs/variables/index.loadAt3d.html +2 -0
- package/docs/variables/index.loadDome.html +2 -0
- package/docs/variables/index.loadDomez.html +2 -0
- package/docs/variables/index.loadGltf.html +2 -0
- package/docs/variables/index.loadPbm.html +2 -0
- package/docs/variables/index.loadPly.html +2 -0
- package/five/application/five.d.ts +13 -0
- package/five/chunks/at3d.js +338 -0
- package/five/chunks/at3d.mjs +338 -0
- package/five/chunks/dome.js +338 -0
- package/five/chunks/dome.mjs +338 -0
- package/five/chunks/domez.js +338 -0
- package/five/chunks/domez.mjs +338 -0
- package/five/chunks/fbx.js +338 -0
- package/five/chunks/fbx.mjs +338 -0
- package/five/chunks/fflate.js +338 -0
- package/five/chunks/fflate.mjs +338 -0
- package/five/chunks/glTF-helpers.js +804 -0
- package/five/chunks/glTF-helpers.mjs +804 -0
- package/five/chunks/gltf.js +338 -0
- package/five/chunks/gltf.mjs +338 -0
- package/five/chunks/imageBitmap.js +338 -0
- package/five/chunks/imageBitmap.mjs +338 -0
- package/five/chunks/imageSupport.js +338 -0
- package/five/chunks/imageSupport.mjs +338 -0
- package/five/chunks/lzma.js +383 -0
- package/five/chunks/lzma.mjs +383 -0
- package/five/chunks/memoryUsage.js +339 -0
- package/five/chunks/memoryUsage.mjs +339 -0
- package/five/chunks/minimal.js +338 -0
- package/five/chunks/minimal.mjs +338 -0
- package/five/chunks/pbm.js +338 -0
- package/five/chunks/pbm.mjs +338 -0
- package/five/chunks/pbmGaussianSplattingObject.js +338 -0
- package/five/chunks/pbmGaussianSplattingObject.mjs +338 -0
- package/five/chunks/pbmMeshMaterial.js +338 -0
- package/five/chunks/pbmMeshMaterial.mjs +338 -0
- package/five/chunks/pick.js +338 -0
- package/five/chunks/pick.mjs +338 -0
- package/five/chunks/ply.js +339 -0
- package/five/chunks/ply.mjs +339 -0
- package/five/chunks/spz.js +364 -0
- package/five/chunks/spz.mjs +364 -0
- package/five/controllers/xrPanorama.d.ts +13 -0
- package/five/core/internalWebGPURenderer.d.ts +0 -3
- package/five/core/panoVideo.d.ts +2 -0
- package/five/core/webglBlendEquationFix.d.ts +41 -0
- package/five/gaussian-splatting/arena/splatArena.d.ts +227 -0
- package/five/gaussian-splatting/cullConstants.d.ts +68 -0
- package/five/gaussian-splatting/hybridConstants.d.ts +60 -0
- package/five/gaussian-splatting/instancePacking.d.ts +46 -0
- package/five/gaussian-splatting/mirrors/layoutMirror.d.ts +44 -0
- package/five/gaussian-splatting/mirrors/mirrorBuffer.d.ts +72 -0
- package/five/gaussian-splatting/mirrors/mirrorSet.d.ts +17 -0
- package/five/gaussian-splatting/mirrors/objectParamsMirror.d.ts +35 -0
- package/five/gaussian-splatting/mirrors/transformMirror.d.ts +26 -0
- package/five/gaussian-splatting/pipelines/gpuSortPipeline.d.ts +5 -31
- package/five/gaussian-splatting/pipelines/pipelineMode.d.ts +1 -2
- package/five/gaussian-splatting/sh-core/codec.d.ts +13 -0
- package/five/gaussian-splatting/sh-core/constants.d.ts +29 -0
- package/five/gaussian-splatting/sh-core/index.d.ts +4 -0
- package/five/gaussian-splatting/sh-core/rebakePolicy.d.ts +20 -0
- package/five/gaussian-splatting/sh-core/texelRange.d.ts +18 -0
- package/five/gaussian-splatting/shAssembler.d.ts +14 -0
- package/five/gaussian-splatting/shBakeScheduler.d.ts +26 -0
- package/five/gaussian-splatting/shBaker.d.ts +44 -0
- package/five/gaussian-splatting/shTileResource.d.ts +22 -0
- package/five/gaussian-splatting/splatAssembler.d.ts +1 -1
- package/five/gaussian-splatting/transformStore.d.ts +2 -2
- package/five/gaussian-splatting/worker/decodeWorker.d.ts +72 -0
- package/five/index.d.ts +0 -1
- package/five/index.js +138 -640
- package/five/index.mjs +229 -29261
- package/five/model/index.d.ts +18 -6
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +1 -1
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +1 -1
- package/five/model/loaders/ply.d.ts +22 -6
- package/five/model/loaders/spz.d.ts +9 -49
- package/five/model/loaders/spz.worker.d.ts +37 -0
- package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +6 -12
- package/five/model/objects/pbmGaussianSplattingObject.d.ts +91 -6
- package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +357 -15
- package/five/model/parameter.d.ts +4 -0
- package/five/renderer/compute-renderers/binned/binned-core.d.ts +45 -2
- package/five/renderer/compute-renderers/binned/binned-pipelines.d.ts +82 -1
- package/five/renderer/compute-renderers/color-space.d.ts +13 -0
- package/five/renderer/compute-renderers/composite-pipelines.d.ts +36 -0
- package/five/renderer/compute-renderers/frame-plan.d.ts +166 -0
- package/five/renderer/compute-renderers/gsplat-hybrid-renderer.d.ts +386 -0
- package/five/renderer/compute-renderers/pointcloud-compute-renderer.d.ts +101 -16
- package/five/renderer/compute-renderers/shaders/composite-blend.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/gsplatHybridIndirect.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/gsplatProjector.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/gsplatQuad.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/write-additive.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/write-blend.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/write-opaque.d.ts +2 -0
- package/five/renderer/compute-renderers/tile-uniform-writer.d.ts +70 -0
- package/five/renderer/compute-renderers/transparency-buffers.d.ts +59 -0
- package/five/renderer/compute-renderers/transparency-math.d.ts +70 -0
- package/five/renderer/compute-renderers/transparency-settings.d.ts +24 -0
- package/five/renderer/compute-renderers/uniform-layout.d.ts +11 -2
- package/five/renderer/five-renderer.d.ts +28 -3
- package/five/renderer/index.d.ts +1 -1
- package/five/renderer/postprocessing/passes/pass.js +3 -3
- package/five/renderer/postprocessing/passes/pass.mjs +3 -3
- package/five/renderer/tools/full-screen-quad.js +3 -3
- package/five/renderer/tools/full-screen-quad.mjs +3 -3
- package/five/texture/videoTextureBridge.d.ts +152 -0
- package/five/thirdparty/sha256.d.ts +149 -0
- package/five/utils/calculateThreeMouse.js +3 -3
- package/five/utils/calculateThreeMouse.mjs +3 -3
- package/five/utils/distance.js +3 -3
- package/five/utils/distance.mjs +3 -3
- package/five/utils/isNil.js +3 -3
- package/five/utils/isNil.mjs +3 -3
- package/five/utils/memoryUsage.d.ts +1 -1
- package/five/utils/uuid.js +3 -3
- package/five/utils/uuid.mjs +3 -3
- package/five/work/work.d.ts +0 -7
- package/five/work/workJsonType.d.ts +0 -2
- package/gltf-loader/index.js +3 -3
- package/gltf-loader/index.mjs +3 -50
- package/line/index.js +3 -3
- package/line/index.mjs +3 -88
- package/package.json +1 -1
- package/plugins/BackgroundPlugin/Controller.js +4 -4
- package/plugins/BackgroundPlugin/Controller.mjs +4 -4
- package/plugins/BackgroundPlugin/index.js +3 -3
- package/plugins/BackgroundPlugin/index.mjs +3 -3
- package/plugins/BasePlugin/index.js +3 -3
- package/plugins/BasePlugin/index.mjs +3 -3
- package/plugins/CSS2DPlugin/Controller.js +3 -3
- package/plugins/CSS2DPlugin/Controller.mjs +3 -3
- package/plugins/CSS2DPlugin/index.js +3 -3
- package/plugins/CSS2DPlugin/index.mjs +3 -3
- package/plugins/CSS2DPlugin/style.css_raw.js +4 -4
- package/plugins/CSS2DPlugin/style.css_raw.mjs +4 -4
- package/plugins/CSS3DPlugin/Controller.js +3 -3
- package/plugins/CSS3DPlugin/Controller.mjs +3 -3
- package/plugins/CSS3DPlugin/index.js +3 -3
- package/plugins/CSS3DPlugin/index.mjs +3 -3
- package/plugins/CSS3DPlugin/style.css_raw.js +4 -4
- package/plugins/CSS3DPlugin/style.css_raw.mjs +4 -4
- package/plugins/FloorplanPlugin/Controller.js +3 -3
- package/plugins/FloorplanPlugin/Controller.mjs +3 -3
- package/plugins/FloorplanPlugin/index.js +3 -3
- package/plugins/FloorplanPlugin/index.mjs +3 -3
- package/plugins/FloorplanPlugin/render/assets.js +3 -3
- package/plugins/FloorplanPlugin/render/assets.mjs +3 -3
- package/plugins/FloorplanPlugin/render/index.js +3 -3
- package/plugins/FloorplanPlugin/render/index.mjs +3 -3
- package/plugins/FloorplanPlugin/render/isPointInPolygon.js +3 -3
- package/plugins/FloorplanPlugin/render/isPointInPolygon.mjs +3 -3
- package/plugins/FloorplanPlugin/render/renderFloor.js +3 -3
- package/plugins/FloorplanPlugin/render/renderFloor.mjs +3 -3
- package/plugins/FloorplanPlugin/render/roomLabelVisibility.js +3 -3
- package/plugins/FloorplanPlugin/render/roomLabelVisibility.mjs +3 -3
- package/plugins/FloorplanPlugin/render/style.css_raw.js +4 -4
- package/plugins/FloorplanPlugin/render/style.css_raw.mjs +4 -4
- package/plugins/FloorplanPlugin/utils/changeMode.js +3 -3
- package/plugins/FloorplanPlugin/utils/changeMode.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.js +3 -3
- package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/correctFiveState.js +3 -3
- package/plugins/FloorplanPlugin/utils/correctFiveState.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/equal.js +3 -3
- package/plugins/FloorplanPlugin/utils/equal.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/filter.js +3 -3
- package/plugins/FloorplanPlugin/utils/filter.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/fiveModelLoad.js +3 -3
- package/plugins/FloorplanPlugin/utils/fiveModelLoad.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/formatData.js +3 -3
- package/plugins/FloorplanPlugin/utils/formatData.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/formatFloorplanJson.js +3 -3
- package/plugins/FloorplanPlugin/utils/formatFloorplanJson.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/formatPosition.js +3 -3
- package/plugins/FloorplanPlugin/utils/formatPosition.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/getDistanceFromModel.js +3 -3
- package/plugins/FloorplanPlugin/utils/getDistanceFromModel.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/getPxmm.js +3 -3
- package/plugins/FloorplanPlugin/utils/getPxmm.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/isTruelyObject.js +3 -3
- package/plugins/FloorplanPlugin/utils/isTruelyObject.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/nearlyEqual.js +3 -3
- package/plugins/FloorplanPlugin/utils/nearlyEqual.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/polylabel.js +3 -3
- package/plugins/FloorplanPlugin/utils/polylabel.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/to.js +3 -3
- package/plugins/FloorplanPlugin/utils/to.mjs +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +6 -0
- package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.js +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.mjs +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/index.js +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/index.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controller.js +3 -3
- package/plugins/Object3DHelperPlugin/Controller.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BaseController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BaseController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/MoveController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/MoveController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/RotateController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/RotateController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/FiveControllerWrapper.js +3 -3
- package/plugins/Object3DHelperPlugin/FiveControllerWrapper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BaseHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BaseHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/MoveHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/MoveHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/RotateHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/RotateHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/constant.js +3 -3
- package/plugins/Object3DHelperPlugin/constant.mjs +3 -3
- package/plugins/Object3DHelperPlugin/index.js +3 -3
- package/plugins/Object3DHelperPlugin/index.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/ArrowGroup.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/ArrowGroup.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/CenterHandle.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/CenterHandle.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/PlaneHandle.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/PlaneHandle.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/cameraHooks.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/cameraHooks.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/direction.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/direction.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/solidGuide.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/solidGuide.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/tipsDom.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/tipsDom.mjs +3 -3
- package/plugins/PanoAnimePlugin/Controller.js +3 -3
- package/plugins/PanoAnimePlugin/Controller.mjs +3 -3
- package/plugins/PanoAnimePlugin/index.js +3 -3
- package/plugins/PanoAnimePlugin/index.mjs +3 -3
- package/plugins/WordPassPlugin/Controller.js +3 -3
- package/plugins/WordPassPlugin/Controller.mjs +3 -3
- package/plugins/WordPassPlugin/hersheyFont.js +3 -3
- package/plugins/WordPassPlugin/hersheyFont.mjs +3 -3
- package/plugins/WordPassPlugin/index.js +3 -3
- package/plugins/WordPassPlugin/index.mjs +3 -3
- package/plugins/WordPassPlugin/textToStrokeOrderStrokes.js +4 -4
- package/plugins/WordPassPlugin/textToStrokeOrderStrokes.mjs +4 -4
- package/plugins/WordPassPlugin/word-pass.js +3 -3
- package/plugins/WordPassPlugin/word-pass.mjs +3 -3
- package/plugins/index.js +3 -3
- package/plugins/index.mjs +3 -3
- package/plugins/thirdParty/CSS2DRenderer.js +3 -3
- package/plugins/thirdParty/CSS2DRenderer.mjs +3 -3
- package/plugins/thirdParty/CSS3DRenderer.js +3 -3
- package/plugins/thirdParty/CSS3DRenderer.mjs +3 -3
- package/plugins/thirdParty/doctorstrange-model.js +75 -75
- package/plugins/thirdParty/doctorstrange-model.mjs +75 -75
- package/plugins/thirdParty/domevents.js +3 -3
- package/plugins/thirdParty/domevents.mjs +3 -3
- package/plugins/utils/absoluteUrl.js +3 -3
- package/plugins/utils/absoluteUrl.mjs +3 -3
- package/plugins/utils/calculatePath.js +3 -3
- package/plugins/utils/calculatePath.mjs +3 -3
- package/plugins/utils/clamp.js +3 -3
- package/plugins/utils/clamp.mjs +3 -3
- package/plugins/utils/uuid.js +3 -3
- package/plugins/utils/uuid.mjs +3 -3
- package/react/hooks/useFiveModelReadyState.d.ts +1 -1
- package/react/index.js +3 -3
- package/react/index.mjs +3 -644
- package/sticker/index.d.ts +7 -0
- package/sticker/index.js +46 -3
- package/sticker/index.mjs +43 -103
- 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 +2 -2
- package/umd/five-sticker.js +46 -3
- package/umd/five-vfx.js +2 -2
- package/umd/five.js +216 -179
- package/vfx/index.js +3 -3
- package/vfx/index.mjs +3 -486
- package/work-downloader/index.js +3 -3
- package/work-downloader/index.mjs +3 -315
- package/docs/functions/index.loadAt3d.html +0 -1
- package/docs/functions/index.loadDome.html +0 -1
- package/docs/functions/index.loadDomez.html +0 -1
- package/docs/functions/index.loadGltf.html +0 -1
- package/docs/functions/index.loadPbm.html +0 -1
- package/docs/functions/index.loadPly.html +0 -1
- package/five/certificates/hardware.d.ts +0 -1
- package/five/gaussian-splatting/shStore.d.ts +0 -22
- package/five/thirdparty/jsrsasign.d.ts +0 -753
- package/five/work/keychain.d.ts +0 -5
- package/five/work/verify.d.ts +0 -7
- package/five/work/workVerify.d.ts +0 -2
- /package/five/{work/_ALLOW_HOST.d.ts → renderer/compute-renderers/shaders/composite-additive.d.ts} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/const e=require("../../_virtual/_rolldown/runtime.js"),t=require("../BasePlugin/index.js"),n=require("./utils/formatData.js"),r=require("./utils/to.js"),i=require("./utils/filter.js"),a=require("./utils/correctFiveState.js"),o=require("./utils/changeModelCanvasOpacity.js"),s=require("./utils/getPxmm.js"),c=require("./utils/fiveModelLoad.js"),l=require("./utils/equal.js"),u=require("./render/index.js"),d=require("./render/style.css_raw.js");let f=require("tslib"),p=require("three/webgpu");p=e.__toESM(p,1);var m=500,h=.01;function g(e){let{latitude:t,longitude:n}=e,r=Math.abs(t-Math.PI/2)>5*Math.PI/180,i=n>Math.PI/180*5&&n<Math.PI/180*355;return r||i}function _(e){let{latitude:t,longitude:n}=e,r=Math.abs(t-Math.PI/2)<10*Math.PI/180,i=n<Math.PI/180*30||n>Math.PI/180*330;return r&&i}var v=class extends t.BasePlugin.Controller{constructor(e,t){var n,s,l;super(e),this.name=`FloorplanPlugin`,this.renderer=new u.FloorplanRenderer,this.styleSheet=new CSSStyleSheet,this.panoIndex=0,this.floorIndex=0,this.lastPanoramaLongitude=0,this.size={width:0,height:0},this.hasAddedEventListener=!1,this.isHiddenByHideFunc=!1,this.highlightData={},this.store={roomOnMouse:null},this.dispose=()=>{var e,t;this.removeEventListener(),(e=this.resizeObserver)==null||e.disconnect(),(t=this.removeExtraElement)==null||t.call(this),this.removeExtraElement=void 0,this.pendingCameraUpdateFrame!==void 0&&cancelAnimationFrame(this.pendingCameraUpdateFrame),this.pendingResizeFrame!==void 0&&cancelAnimationFrame(this.pendingResizeFrame),this.renderer.dispose(),this.wrapper=void 0,this.data=void 0,this.hooks.emit(`dispose`)},this.show=(...e)=>(0,f.__awaiter)(this,[...e],void 0,function*(e={}){var t;if(!this.state.enabled||!this.showPromise&&this.state.visible)return;let n=(t=e.userAction)==null?!0:t;return this.updateState({visible:!0},n),this._show(e)}),this.hide=(...e)=>(0,f.__awaiter)(this,[...e],void 0,function*(e={}){var t;this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},(t=e.userAction)==null?!0:t),this._hide(e)))}),this.highlight=e=>{this.state.config.highlightEnable&&(this.highlightData=e,this.renderCurrent())},this.unhighlight=()=>{this.highlightData={},this.renderCurrent()},this.updateShowState=e=>{this.showState=Object.assign(Object.assign({},this.showState),e)},this.onRoomHover=e=>{this.store.roomOnMouse=e},this.handleClick=()=>{if(this.state.visible&&this.hooks.emit(`click`,this.store.roomOnMouse))return!1},this.onFiveModelLoaded=()=>{var e,t,n;this.state.enabled!==!1&&(this.floorIndex=(n=(t=(e=this.five.work)==null?void 0:e.observers[this.panoIndex])==null?void 0:t.floorIndex)==null?0:n,this.renderCurrent())},this.onFiveModeChange=e=>{e!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))},this.onFiveInertiaPan=(e,t)=>{t&&(this.state.visible||this.state.config.autoShowEnable!==!1&&(this.isHiddenByHideFunc||this.five.currentMode===this.showState.mode&&_(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0}))))},this.onFivePanoArrived=e=>{var t,n;this.five.work&&(this.panoIndex=e,this.floorIndex=(n=(t=this.five.work.observers[e])==null?void 0:t.floorIndex)==null?this.floorIndex:n)},this.onFiveCameraUpdate=(e,t)=>{this.state.visible&&(this.showPromise||(this.scheduleCameraUpdate(),g(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!1},t),this._hide({userAction:t}))))},this.onFiveWantsPanGesture=(e,t)=>{if(this.five.currentMode===this.showState.mode&&this.state.config.autoShowEnable!==!1&&t&&this.state.visible)return this.five.updateCamera(i.omit(this.showState,[`mode`,`offset`]),0),!1},this.onFiveWantsTapGesture=()=>this.handleClick(),this.onFiveWantsChangeMode=(e,t)=>{t===`Panorama`&&e===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)},this.onModelShownFloorChange=e=>{var t,n,r;if(this.floorIndex!==e){if(e===null){this.floorIndex=(r=(n=(t=this.five.work)==null?void 0:t.observers[this.panoIndex])==null?void 0:n.floorIndex)==null?this.floorIndex:r;return}this.floorIndex=e,this.updateSize(),this.renderCurrent()}},this._show=e=>(0,f.__awaiter)(this,void 0,void 0,function*(){var t;if(!this.state.enabled)return;if(!((t=this.five.model)!=null&&t.loaded))throw Error(`ModelNotLoaded`);if(!this.data)throw Error(`DataNotLoaded`);if(this.showPromise)return this.showPromise;let n=Object.assign({floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},e),i=()=>(0,f.__awaiter)(this,void 0,void 0,function*(){var e;this.hooks.emit(`show`,{userAction:n.userAction,auto:n.isAutoShow});let t=!1,i;this.showRejection=e=>{t=!0,i=e};let[o]=yield r.default(a.correctFiveState(this.five,this.showState,n.userAction));if(o)throw o;if(t)throw Error(i||`UnknownError`);if(!this.updateSize())throw Error(`UpdateSizeError`);this.updatePosition(),this.floorIndex=n.floorIndex,(e=this.five.model)==null||e.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=i().then(()=>{this.showPromise=void 0,this.showRejection=void 0;let e=n.immediately?0:m;o.changeModelCanvasOpacity(this.five,n.modelOpacity,e),this.renderWithDuration(e),this.hooks.emit(`showAnimationEnded`,{auto:n.isAutoShow,userAction:n.userAction})}).catch(e=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},n.userAction),!n.isAutoShow)throw e}),this.showPromise}),this._hide=e=>{var t;(t=this.showRejection)==null||t.call(this,`BreakOffByHide`),this.showPromise=void 0;let n=Object.assign({userAction:!0,isAutoHide:!1},e);o.changeModelCanvasOpacity(this.five,1,0),this.hooks.emit(`hide`,{auto:n.isAutoHide,userAction:n.userAction}),this.renderCurrent()},this.five=e,this.styleSheet.replaceSync(d.default),typeof document<`u`&&document.adoptedStyleSheets.push(this.styleSheet),this.showState=Object.assign({mode:`Mapview`,longitude:0,latitude:Math.PI/2,fov:80},t==null?void 0:t.showState);let p={northDesc:`北`,modelOpacity:h,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomNameOtherTypeEnable:!0,roomDimensionEnable:!0,cameraImageUrl:void 0,attachedTo:3,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,missingFloorConfig:{imageWidth:200,imageHeight:120,text:`暂无平面图`,textFontSize:14},i18n:e=>e,getRoomAreaText:e=>(e/1e6).toFixed(1)+`㎡`,getRoomDimensionText:(e,t)=>(e/1e3).toFixed(1)+`m × `+(t/1e3).toFixed(1)+`m`,getRuleDistanceText:e=>e.toString()},v=Object.assign(Object.assign(Object.assign({},p),t==null?void 0:t.config),{missingFloorConfig:Object.assign(Object.assign({},p.missingFloorConfig),(n=t==null?void 0:t.config)==null?void 0:n.missingFloorConfig)});this.state={enabled:!0,visible:!1,config:v},Object.assign(this.state,i.omit((s=t==null?void 0:t.initialState)==null?{}:s,[`config`])),this.panoIndex=(l=e.state.panoIndex)==null?0:l,this.initContainer(),c.waitFiveModelLoaded(e).then(this.onFiveModelLoaded),e.once(`dispose`,this.dispose),this.state.enabled?this.addEventListener():this.styleSheet.disabled=!0}load(e,t){return(0,f.__awaiter)(this,arguments,void 0,function*(e,t,r=!0){let i=`data`in e?e.data:e,a=this.data;this.data=yield n.default(i),this.hooks.emit(`dataLoaded`,this.data),this.hooks.emit(`dataChange`,this.data,a),t&&this.updateState(t,r),this.updateSize(),this.updatePosition(),this.renderCurrent()})}loadItems(e){this.data&&(this.data.floorDatas.forEach((t,n)=>{t.items=e[n]}),this.renderCurrent())}appendTo(e){this.wrapper=e,this.state.enabled&&(e.appendChild(this.renderer.rootElement),this.observeResize(e),this.registerExtraElement(),this.updateSize(),this.updatePosition(),this.renderCurrent())}enable(e={}){var t;if(this.state.enabled)return;let n=(t=e.userAction)==null?!0:t;this.updateState({enabled:!0},n),this._enable({userAction:n})}disable(e={}){var t;if(!this.state.enabled)return;let n=(t=e.userAction)==null?!0:t;this.updateState({enabled:!1},n),this._disable({userAction:n})}setState(e,t={}){var n;let r=this.state,i=(n=t.userAction)==null?!0:n;this.updateState(e,i),e.enabled!==void 0&&r.enabled!==e.enabled&&(e.enabled?this._enable({userAction:i}):this._disable({userAction:i})),e.visible!==void 0&&r.visible!==e.visible&&(e.visible?this._show({userAction:i}):this._hide({userAction:i}))}changeConfigs(e,t=!0){this.updateState({config:Object.assign(Object.assign({},this.state.config),e)},t),this.renderCurrent()}updateSize(){if(!this.data||!this.wrapper)return!1;let{min:e,max:t}=this.data.bounding,n=t.x-e.x,r=t.y-e.y,i=this.getPxmmWithRotation(),a=Math.ceil(n*i),o=Math.ceil(r*i);return this.size.width===a&&this.size.height===o?!0:(this.renderer.rootElement.style.width=a+`px`,this.renderer.rootElement.style.height=o+`px`,this.size={width:a,height:o},!0)}updatePosition(){if(!this.wrapper)return;let e=s.getAttachedY(this.five,this.floorIndex,this.state.config.attachedTo),t=this.five.modelScene.boundingBox.getCenter(new p.Vector3);t.y=e;let n=t.clone().project(this.five.camera),r=(n.x+1)/2,i=-(n.y-1)/2;this.renderer.rootElement.style.position=`absolute`,this.renderer.rootElement.style.left=r*100+`%`,this.renderer.rootElement.style.top=i*100+`%`,this.renderer.rootElement.style.transform=`translate(-50%, -50%)`}getPxmmWithRotation(){if(!this.wrapper)return 0;let e={attachedTo:this.state.config.attachedTo};return s.getPxmm(this.five,this.wrapper,this.floorIndex,e)}updateState(e,t){let n=this.state,r=e.config?Object.assign(Object.assign({},n.config),e.config):n.config;this.state=Object.assign(Object.assign(Object.assign({},this.state),e),{config:r}),!l.equal(this.state,n,{deep:!0})&&this.hooks.emit(`stateChange`,{state:this.state,prevState:n,userAction:t})}initContainer(){this.renderer.rootElement.classList.add(`floorplan-plugin`)}registerExtraElement(){var e;(e=this.removeExtraElement)==null||e.call(this),this.removeExtraElement=this.five.addExtraElement(this.renderer.rootElement)}observeResize(e){var t;(t=this.resizeObserver)==null||t.disconnect(),this.resizeObserver=new ResizeObserver(()=>{this.scheduleResizeUpdate()}),this.resizeObserver.observe(e)}scheduleResizeUpdate(){this.pendingResizeFrame===void 0&&(this.pendingResizeFrame=requestAnimationFrame(()=>{this.pendingResizeFrame=void 0,this.updateSize(),this.updatePosition(),this.data&&this.renderer.updateLabelsVisibility(this.data,this.floorIndex,this.state.config.adaptiveRoomLabelVisibleEnable)}))}renderCurrent(){this.data&&this.renderer.render({visible:this.state.visible,duration:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;this.hasAddedEventListener=!0;let e=this.five;e.on(`modeChange`,this.onFiveModeChange),e.on(`interiaPan`,this.onFiveInertiaPan),e.on(`panoArrived`,this.onFivePanoArrived),e.on(`cameraUpdate`,this.onFiveCameraUpdate),e.on(`wantsPanGesture`,this.onFiveWantsPanGesture),e.on(`wantsTapGesture`,this.onFiveWantsTapGesture),e.on(`wantsChangeMode`,this.onFiveWantsChangeMode),e.on(`modelShownFloorChange`,this.onModelShownFloorChange)}removeEventListener(){this.hasAddedEventListener=!1;let e=this.five;e.off(`modeChange`,this.onFiveModeChange),e.off(`interiaPan`,this.onFiveInertiaPan),e.off(`panoArrived`,this.onFivePanoArrived),e.off(`cameraUpdate`,this.onFiveCameraUpdate),e.off(`wantsPanGesture`,this.onFiveWantsPanGesture),e.off(`wantsTapGesture`,this.onFiveWantsTapGesture),e.off(`wantsChangeMode`,this.onFiveWantsChangeMode),e.off(`modelShownFloorChange`,this.onModelShownFloorChange)}scheduleCameraUpdate(){this.pendingCameraUpdateFrame===void 0&&(this.pendingCameraUpdateFrame=requestAnimationFrame(()=>{this.pendingCameraUpdateFrame=void 0,this.updatePosition(),this.updateSize()}))}getRelativePose(e){let t=this.showState.longitude||0,n=((e.longitude-t)%(2*Math.PI)+2*Math.PI)%(2*Math.PI);return{latitude:e.latitude,longitude:n}}_enable(e){this.styleSheet.disabled=!1,this.addEventListener(),this.wrapper&&(this.wrapper.appendChild(this.renderer.rootElement),this.registerExtraElement()),this.hooks.emit(`enable`,{userAction:e.userAction}),this.state.visible&&this._show({userAction:e.userAction})}_disable(e){var t,n;this.styleSheet.disabled=!0,(t=this.showRejection)==null||t.call(this,`BreakOffByDisable`),this.showPromise=void 0,this.renderer.rootElement.remove(),(n=this.removeExtraElement)==null||n.call(this),this.removeExtraElement=void 0,this.removeEventListener(),this.hooks.emit(`disable`,{userAction:e.userAction})}renderWithDuration(e){this.data&&this.renderer.render({visible:this.state.visible,duration:e,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}};exports.Controller=v;
|
|
338
|
+
*/const require_runtime=require("../../_virtual/_rolldown/runtime.js"),require_index=require("../BasePlugin/index.js"),require_formatData=require("./utils/formatData.js"),require_to=require("./utils/to.js"),require_filter=require("./utils/filter.js"),require_correctFiveState=require("./utils/correctFiveState.js"),require_changeModelCanvasOpacity=require("./utils/changeModelCanvasOpacity.js"),require_getPxmm=require("./utils/getPxmm.js"),require_fiveModelLoad=require("./utils/fiveModelLoad.js"),require_equal=require("./utils/equal.js"),require_index$1=require("./render/index.js"),require_style=require("./render/style.css_raw.js");let tslib=require("tslib"),three_webgpu=require("three/webgpu");three_webgpu=require_runtime.__toESM(three_webgpu,1);var SHOW_ANIME_DURATION=500,DEFAULT_SHOW_MODEL_OPACITY=.01;function shouldFloorplanHideWithPose(pose){let{latitude,longitude}=pose,latitudeHide=Math.abs(latitude-Math.PI/2)>5*Math.PI/180,longitudeHide=longitude>Math.PI/180*5&&longitude<Math.PI/180*355;return latitudeHide||longitudeHide}function shouldFloorplanShowWithPose(pose){let{latitude,longitude}=pose,latitudeVisible=Math.abs(latitude-Math.PI/2)<10*Math.PI/180,longitudeVisible=longitude<Math.PI/180*30||longitude>Math.PI/180*330;return latitudeVisible&&longitudeVisible}var Controller=class extends require_index.BasePlugin.Controller{constructor(five,params){var _a,_b,_c;super(five),this.name=`FloorplanPlugin`,this.renderer=new require_index$1.FloorplanRenderer,this.styleSheet=new CSSStyleSheet,this.panoIndex=0,this.floorIndex=0,this.lastPanoramaLongitude=0,this.size={width:0,height:0},this.hasAddedEventListener=!1,this.isHiddenByHideFunc=!1,this.highlightData={},this.store={roomOnMouse:null},this.dispose=()=>{var _a,_b;this.removeEventListener(),(_a=this.resizeObserver)==null||_a.disconnect(),(_b=this.removeExtraElement)==null||_b.call(this),this.removeExtraElement=void 0,this.pendingCameraUpdateFrame!==void 0&&cancelAnimationFrame(this.pendingCameraUpdateFrame),this.pendingResizeFrame!==void 0&&cancelAnimationFrame(this.pendingResizeFrame),this.renderer.dispose(),this.wrapper=void 0,this.data=void 0,this.hooks.emit(`dispose`)},this.show=(...args_1)=>(0,tslib.__awaiter)(this,[...args_1],void 0,function*(options={}){var _a;if(!this.state.enabled||!this.showPromise&&this.state.visible)return;let userAction=(_a=options.userAction)==null?!0:_a;return this.updateState({visible:!0},userAction),this._show(options)}),this.hide=(...args_1)=>(0,tslib.__awaiter)(this,[...args_1],void 0,function*(options={}){var _a;this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},(_a=options.userAction)==null?!0:_a),this._hide(options)))}),this.highlight=highlightData=>{this.state.config.highlightEnable&&(this.highlightData=highlightData,this.renderCurrent())},this.unhighlight=()=>{this.highlightData={},this.renderCurrent()},this.updateShowState=showState=>{this.showState=Object.assign(Object.assign({},this.showState),showState)},this.onRoomHover=room=>{this.store.roomOnMouse=room},this.handleClick=()=>{if(this.state.visible&&this.hooks.emit(`click`,this.store.roomOnMouse))return!1},this.onFiveModelLoaded=()=>{var _a,_b,_c;this.state.enabled!==!1&&(this.floorIndex=(_c=(_b=(_a=this.five.work)==null?void 0:_a.observers[this.panoIndex])==null?void 0:_b.floorIndex)==null?0:_c,this.renderCurrent())},this.onFiveModeChange=mode=>{mode!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))},this.onFiveInertiaPan=(_,isFinal)=>{isFinal&&(this.state.visible||this.state.config.autoShowEnable!==!1&&(this.isHiddenByHideFunc||this.five.currentMode===this.showState.mode&&shouldFloorplanShowWithPose(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0}))))},this.onFivePanoArrived=index=>{var _a,_b;this.five.work&&(this.panoIndex=index,this.floorIndex=(_b=(_a=this.five.work.observers[index])==null?void 0:_a.floorIndex)==null?this.floorIndex:_b)},this.onFiveCameraUpdate=(_,userAction)=>{this.state.visible&&(this.showPromise||(this.scheduleCameraUpdate(),shouldFloorplanHideWithPose(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!1},userAction),this._hide({userAction}))))},this.onFiveWantsPanGesture=(_,isFinal)=>{if(this.five.currentMode===this.showState.mode&&this.state.config.autoShowEnable!==!1&&isFinal&&this.state.visible)return this.five.updateCamera(require_filter.omit(this.showState,[`mode`,`offset`]),0),!1},this.onFiveWantsTapGesture=()=>this.handleClick(),this.onFiveWantsChangeMode=(mode,prevMode)=>{prevMode===`Panorama`&&mode===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)},this.onModelShownFloorChange=shownFloor=>{var _a,_b,_c;if(this.floorIndex!==shownFloor){if(shownFloor===null){this.floorIndex=(_c=(_b=(_a=this.five.work)==null?void 0:_a.observers[this.panoIndex])==null?void 0:_b.floorIndex)==null?this.floorIndex:_c;return}this.floorIndex=shownFloor,this.updateSize(),this.renderCurrent()}},this._show=options=>(0,tslib.__awaiter)(this,void 0,void 0,function*(){var _a;if(!this.state.enabled)return;if(!((_a=this.five.model)!=null&&_a.loaded))throw Error(`ModelNotLoaded`);if(!this.data)throw Error(`DataNotLoaded`);if(this.showPromise)return this.showPromise;let mergedOptions=Object.assign({floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},options),getShowPromise=()=>(0,tslib.__awaiter)(this,void 0,void 0,function*(){var _a;this.hooks.emit(`show`,{userAction:mergedOptions.userAction,auto:mergedOptions.isAutoShow});let hasRejected=!1,externalErrorMsg;this.showRejection=errorMsg=>{hasRejected=!0,externalErrorMsg=errorMsg};let[correctError]=yield require_to.default(require_correctFiveState.correctFiveState(this.five,this.showState,mergedOptions.userAction));if(correctError)throw correctError;if(hasRejected)throw Error(externalErrorMsg||`UnknownError`);if(!this.updateSize())throw Error(`UpdateSizeError`);this.updatePosition(),this.floorIndex=mergedOptions.floorIndex,(_a=this.five.model)==null||_a.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=getShowPromise().then(()=>{this.showPromise=void 0,this.showRejection=void 0;let renderDuration=mergedOptions.immediately?0:SHOW_ANIME_DURATION;require_changeModelCanvasOpacity.changeModelCanvasOpacity(this.five,mergedOptions.modelOpacity,renderDuration),this.renderWithDuration(renderDuration),this.hooks.emit(`showAnimationEnded`,{auto:mergedOptions.isAutoShow,userAction:mergedOptions.userAction})}).catch(error=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},mergedOptions.userAction),!mergedOptions.isAutoShow)throw error}),this.showPromise}),this._hide=options=>{var _a;(_a=this.showRejection)==null||_a.call(this,`BreakOffByHide`),this.showPromise=void 0;let mergedOptions=Object.assign({userAction:!0,isAutoHide:!1},options);require_changeModelCanvasOpacity.changeModelCanvasOpacity(this.five,1,0),this.hooks.emit(`hide`,{auto:mergedOptions.isAutoHide,userAction:mergedOptions.userAction}),this.renderCurrent()},this.five=five,this.styleSheet.replaceSync(require_style.default),typeof document<`u`&&document.adoptedStyleSheets.push(this.styleSheet),this.showState=Object.assign({mode:`Mapview`,longitude:0,latitude:Math.PI/2,fov:80},params==null?void 0:params.showState);let baseConfig={northDesc:`北`,modelOpacity:DEFAULT_SHOW_MODEL_OPACITY,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomNameOtherTypeEnable:!0,roomDimensionEnable:!0,cameraImageUrl:void 0,attachedTo:3,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,missingFloorConfig:{imageWidth:200,imageHeight:120,text:`暂无平面图`,textFontSize:14},i18n:key=>key,getRoomAreaText:size=>(size/1e6).toFixed(1)+`㎡`,getRoomDimensionText:(width,height)=>(width/1e3).toFixed(1)+`m × `+(height/1e3).toFixed(1)+`m`,getRuleDistanceText:distance=>distance.toString()},config=Object.assign(Object.assign(Object.assign({},baseConfig),params==null?void 0:params.config),{missingFloorConfig:Object.assign(Object.assign({},baseConfig.missingFloorConfig),(_a=params==null?void 0:params.config)==null?void 0:_a.missingFloorConfig)});this.state={enabled:!0,visible:!1,config},Object.assign(this.state,require_filter.omit((_b=params==null?void 0:params.initialState)==null?{}:_b,[`config`])),this.panoIndex=(_c=five.state.panoIndex)==null?0:_c,this.initContainer(),require_fiveModelLoad.waitFiveModelLoaded(five).then(this.onFiveModelLoaded),five.once(`dispose`,this.dispose),this.state.enabled?this.addEventListener():this.styleSheet.disabled=!0}load(serverData_1,state_1){return(0,tslib.__awaiter)(this,arguments,void 0,function*(serverData,state,userAction=!0){let raw=`data`in serverData?serverData.data:serverData,prevData=this.data;this.data=yield require_formatData.default(raw),this.hooks.emit(`dataLoaded`,this.data),this.hooks.emit(`dataChange`,this.data,prevData),state&&this.updateState(state,userAction),this.updateSize(),this.updatePosition(),this.renderCurrent()})}loadItems(itemsByFloor){this.data&&(this.data.floorDatas.forEach((floorData,index)=>{floorData.items=itemsByFloor[index]}),this.renderCurrent())}appendTo(wrapper){this.wrapper=wrapper,this.state.enabled&&(wrapper.appendChild(this.renderer.rootElement),this.observeResize(wrapper),this.registerExtraElement(),this.updateSize(),this.updatePosition(),this.renderCurrent())}enable(options={}){var _a;if(this.state.enabled)return;let userAction=(_a=options.userAction)==null?!0:_a;this.updateState({enabled:!0},userAction),this._enable({userAction})}disable(options={}){var _a;if(!this.state.enabled)return;let userAction=(_a=options.userAction)==null?!0:_a;this.updateState({enabled:!1},userAction),this._disable({userAction})}setState(state,options={}){var _a;let prevState=this.state,userAction=(_a=options.userAction)==null?!0:_a;this.updateState(state,userAction),state.enabled!==void 0&&prevState.enabled!==state.enabled&&(state.enabled?this._enable({userAction}):this._disable({userAction})),state.visible!==void 0&&prevState.visible!==state.visible&&(state.visible?this._show({userAction}):this._hide({userAction}))}changeConfigs(config,userAction=!0){this.updateState({config:Object.assign(Object.assign({},this.state.config),config)},userAction),this.renderCurrent()}updateSize(){if(!this.data||!this.wrapper)return!1;let{min,max}=this.data.bounding,width=max.x-min.x,height=max.y-min.y,pxmm=this.getPxmmWithRotation(),nextWidth=Math.ceil(width*pxmm),nextHeight=Math.ceil(height*pxmm);return this.size.width===nextWidth&&this.size.height===nextHeight?!0:(this.renderer.rootElement.style.width=nextWidth+`px`,this.renderer.rootElement.style.height=nextHeight+`px`,this.size={width:nextWidth,height:nextHeight},!0)}updatePosition(){if(!this.wrapper)return;let y=require_getPxmm.getAttachedY(this.five,this.floorIndex,this.state.config.attachedTo),modelPosition=this.five.modelScene.boundingBox.getCenter(new three_webgpu.Vector3);modelPosition.y=y;let ndcPosition=modelPosition.clone().project(this.five.camera),left=(ndcPosition.x+1)/2,top=-(ndcPosition.y-1)/2;this.renderer.rootElement.style.position=`absolute`,this.renderer.rootElement.style.left=left*100+`%`,this.renderer.rootElement.style.top=top*100+`%`,this.renderer.rootElement.style.transform=`translate(-50%, -50%)`}getPxmmWithRotation(){if(!this.wrapper)return 0;let options={attachedTo:this.state.config.attachedTo};return require_getPxmm.getPxmm(this.five,this.wrapper,this.floorIndex,options)}updateState(state,userAction){let prevState=this.state,config=state.config?Object.assign(Object.assign({},prevState.config),state.config):prevState.config;this.state=Object.assign(Object.assign(Object.assign({},this.state),state),{config}),!require_equal.equal(this.state,prevState,{deep:!0})&&this.hooks.emit(`stateChange`,{state:this.state,prevState,userAction})}initContainer(){this.renderer.rootElement.classList.add(`floorplan-plugin`)}registerExtraElement(){var _a;(_a=this.removeExtraElement)==null||_a.call(this),this.removeExtraElement=this.five.addExtraElement(this.renderer.rootElement)}observeResize(wrapper){var _a;(_a=this.resizeObserver)==null||_a.disconnect(),this.resizeObserver=new ResizeObserver(()=>{this.scheduleResizeUpdate()}),this.resizeObserver.observe(wrapper)}scheduleResizeUpdate(){this.pendingResizeFrame===void 0&&(this.pendingResizeFrame=requestAnimationFrame(()=>{this.pendingResizeFrame=void 0,this.updateSize(),this.updatePosition(),this.data&&this.renderer.updateLabelsVisibility(this.data,this.floorIndex,this.state.config.adaptiveRoomLabelVisibleEnable)}))}renderCurrent(){this.data&&this.renderer.render({visible:this.state.visible,duration:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;this.hasAddedEventListener=!0;let five=this.five;five.on(`modeChange`,this.onFiveModeChange),five.on(`interiaPan`,this.onFiveInertiaPan),five.on(`panoArrived`,this.onFivePanoArrived),five.on(`cameraUpdate`,this.onFiveCameraUpdate),five.on(`wantsPanGesture`,this.onFiveWantsPanGesture),five.on(`wantsTapGesture`,this.onFiveWantsTapGesture),five.on(`wantsChangeMode`,this.onFiveWantsChangeMode),five.on(`modelShownFloorChange`,this.onModelShownFloorChange)}removeEventListener(){this.hasAddedEventListener=!1;let five=this.five;five.off(`modeChange`,this.onFiveModeChange),five.off(`interiaPan`,this.onFiveInertiaPan),five.off(`panoArrived`,this.onFivePanoArrived),five.off(`cameraUpdate`,this.onFiveCameraUpdate),five.off(`wantsPanGesture`,this.onFiveWantsPanGesture),five.off(`wantsTapGesture`,this.onFiveWantsTapGesture),five.off(`wantsChangeMode`,this.onFiveWantsChangeMode),five.off(`modelShownFloorChange`,this.onModelShownFloorChange)}scheduleCameraUpdate(){this.pendingCameraUpdateFrame===void 0&&(this.pendingCameraUpdateFrame=requestAnimationFrame(()=>{this.pendingCameraUpdateFrame=void 0,this.updatePosition(),this.updateSize()}))}getRelativePose(pose){let baseLongitude=this.showState.longitude||0,normalizedLongitude=((pose.longitude-baseLongitude)%(2*Math.PI)+2*Math.PI)%(2*Math.PI);return{latitude:pose.latitude,longitude:normalizedLongitude}}_enable(options){this.styleSheet.disabled=!1,this.addEventListener(),this.wrapper&&(this.wrapper.appendChild(this.renderer.rootElement),this.registerExtraElement()),this.hooks.emit(`enable`,{userAction:options.userAction}),this.state.visible&&this._show({userAction:options.userAction})}_disable(options){var _a,_b;this.styleSheet.disabled=!0,(_a=this.showRejection)==null||_a.call(this,`BreakOffByDisable`),this.showPromise=void 0,this.renderer.rootElement.remove(),(_b=this.removeExtraElement)==null||_b.call(this),this.removeExtraElement=void 0,this.removeEventListener(),this.hooks.emit(`disable`,{userAction:options.userAction})}renderWithDuration(duration){this.data&&this.renderer.render({visible:this.state.visible,duration,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}};exports.Controller=Controller;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/import{BasePlugin as e}from"../BasePlugin/index.mjs";import t from"./utils/formatData.mjs";import n from"./utils/to.mjs";import{omit as r}from"./utils/filter.mjs";import{correctFiveState as i}from"./utils/correctFiveState.mjs";import{changeModelCanvasOpacity as a}from"./utils/changeModelCanvasOpacity.mjs";import{getAttachedY as o,getPxmm as s}from"./utils/getPxmm.mjs";import{waitFiveModelLoaded as c}from"./utils/fiveModelLoad.mjs";import{equal as l}from"./utils/equal.mjs";import{FloorplanRenderer as u}from"./render/index.mjs";import d from"./render/style.css_raw.mjs";import{__awaiter as f}from"tslib";import*as p from"three/webgpu";var m=500,h=.01;function g(e){let{latitude:t,longitude:n}=e,r=Math.abs(t-Math.PI/2)>5*Math.PI/180,i=n>Math.PI/180*5&&n<Math.PI/180*355;return r||i}function _(e){let{latitude:t,longitude:n}=e,r=Math.abs(t-Math.PI/2)<10*Math.PI/180,i=n<Math.PI/180*30||n>Math.PI/180*330;return r&&i}var v=class extends e.Controller{constructor(e,t){var o,s,l;super(e),this.name=`FloorplanPlugin`,this.renderer=new u,this.styleSheet=new CSSStyleSheet,this.panoIndex=0,this.floorIndex=0,this.lastPanoramaLongitude=0,this.size={width:0,height:0},this.hasAddedEventListener=!1,this.isHiddenByHideFunc=!1,this.highlightData={},this.store={roomOnMouse:null},this.dispose=()=>{var e,t;this.removeEventListener(),(e=this.resizeObserver)==null||e.disconnect(),(t=this.removeExtraElement)==null||t.call(this),this.removeExtraElement=void 0,this.pendingCameraUpdateFrame!==void 0&&cancelAnimationFrame(this.pendingCameraUpdateFrame),this.pendingResizeFrame!==void 0&&cancelAnimationFrame(this.pendingResizeFrame),this.renderer.dispose(),this.wrapper=void 0,this.data=void 0,this.hooks.emit(`dispose`)},this.show=(...e)=>f(this,[...e],void 0,function*(e={}){var t;if(!this.state.enabled||!this.showPromise&&this.state.visible)return;let n=(t=e.userAction)==null?!0:t;return this.updateState({visible:!0},n),this._show(e)}),this.hide=(...e)=>f(this,[...e],void 0,function*(e={}){var t;this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},(t=e.userAction)==null?!0:t),this._hide(e)))}),this.highlight=e=>{this.state.config.highlightEnable&&(this.highlightData=e,this.renderCurrent())},this.unhighlight=()=>{this.highlightData={},this.renderCurrent()},this.updateShowState=e=>{this.showState=Object.assign(Object.assign({},this.showState),e)},this.onRoomHover=e=>{this.store.roomOnMouse=e},this.handleClick=()=>{if(this.state.visible&&this.hooks.emit(`click`,this.store.roomOnMouse))return!1},this.onFiveModelLoaded=()=>{var e,t,n;this.state.enabled!==!1&&(this.floorIndex=(n=(t=(e=this.five.work)==null?void 0:e.observers[this.panoIndex])==null?void 0:t.floorIndex)==null?0:n,this.renderCurrent())},this.onFiveModeChange=e=>{e!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))},this.onFiveInertiaPan=(e,t)=>{t&&(this.state.visible||this.state.config.autoShowEnable!==!1&&(this.isHiddenByHideFunc||this.five.currentMode===this.showState.mode&&_(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0}))))},this.onFivePanoArrived=e=>{var t,n;this.five.work&&(this.panoIndex=e,this.floorIndex=(n=(t=this.five.work.observers[e])==null?void 0:t.floorIndex)==null?this.floorIndex:n)},this.onFiveCameraUpdate=(e,t)=>{this.state.visible&&(this.showPromise||(this.scheduleCameraUpdate(),g(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!1},t),this._hide({userAction:t}))))},this.onFiveWantsPanGesture=(e,t)=>{if(this.five.currentMode===this.showState.mode&&this.state.config.autoShowEnable!==!1&&t&&this.state.visible)return this.five.updateCamera(r(this.showState,[`mode`,`offset`]),0),!1},this.onFiveWantsTapGesture=()=>this.handleClick(),this.onFiveWantsChangeMode=(e,t)=>{t===`Panorama`&&e===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)},this.onModelShownFloorChange=e=>{var t,n,r;if(this.floorIndex!==e){if(e===null){this.floorIndex=(r=(n=(t=this.five.work)==null?void 0:t.observers[this.panoIndex])==null?void 0:n.floorIndex)==null?this.floorIndex:r;return}this.floorIndex=e,this.updateSize(),this.renderCurrent()}},this._show=e=>f(this,void 0,void 0,function*(){var t;if(!this.state.enabled)return;if(!((t=this.five.model)!=null&&t.loaded))throw Error(`ModelNotLoaded`);if(!this.data)throw Error(`DataNotLoaded`);if(this.showPromise)return this.showPromise;let r=Object.assign({floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},e),o=()=>f(this,void 0,void 0,function*(){var e;this.hooks.emit(`show`,{userAction:r.userAction,auto:r.isAutoShow});let t=!1,a;this.showRejection=e=>{t=!0,a=e};let[o]=yield n(i(this.five,this.showState,r.userAction));if(o)throw o;if(t)throw Error(a||`UnknownError`);if(!this.updateSize())throw Error(`UpdateSizeError`);this.updatePosition(),this.floorIndex=r.floorIndex,(e=this.five.model)==null||e.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=o().then(()=>{this.showPromise=void 0,this.showRejection=void 0;let e=r.immediately?0:m;a(this.five,r.modelOpacity,e),this.renderWithDuration(e),this.hooks.emit(`showAnimationEnded`,{auto:r.isAutoShow,userAction:r.userAction})}).catch(e=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},r.userAction),!r.isAutoShow)throw e}),this.showPromise}),this._hide=e=>{var t;(t=this.showRejection)==null||t.call(this,`BreakOffByHide`),this.showPromise=void 0;let n=Object.assign({userAction:!0,isAutoHide:!1},e);a(this.five,1,0),this.hooks.emit(`hide`,{auto:n.isAutoHide,userAction:n.userAction}),this.renderCurrent()},this.five=e,this.styleSheet.replaceSync(d),typeof document<`u`&&document.adoptedStyleSheets.push(this.styleSheet),this.showState=Object.assign({mode:`Mapview`,longitude:0,latitude:Math.PI/2,fov:80},t==null?void 0:t.showState);let p={northDesc:`北`,modelOpacity:h,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomNameOtherTypeEnable:!0,roomDimensionEnable:!0,cameraImageUrl:void 0,attachedTo:3,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,missingFloorConfig:{imageWidth:200,imageHeight:120,text:`暂无平面图`,textFontSize:14},i18n:e=>e,getRoomAreaText:e=>(e/1e6).toFixed(1)+`㎡`,getRoomDimensionText:(e,t)=>(e/1e3).toFixed(1)+`m × `+(t/1e3).toFixed(1)+`m`,getRuleDistanceText:e=>e.toString()},v=Object.assign(Object.assign(Object.assign({},p),t==null?void 0:t.config),{missingFloorConfig:Object.assign(Object.assign({},p.missingFloorConfig),(o=t==null?void 0:t.config)==null?void 0:o.missingFloorConfig)});this.state={enabled:!0,visible:!1,config:v},Object.assign(this.state,r((s=t==null?void 0:t.initialState)==null?{}:s,[`config`])),this.panoIndex=(l=e.state.panoIndex)==null?0:l,this.initContainer(),c(e).then(this.onFiveModelLoaded),e.once(`dispose`,this.dispose),this.state.enabled?this.addEventListener():this.styleSheet.disabled=!0}load(e,n){return f(this,arguments,void 0,function*(e,n,r=!0){let i=`data`in e?e.data:e,a=this.data;this.data=yield t(i),this.hooks.emit(`dataLoaded`,this.data),this.hooks.emit(`dataChange`,this.data,a),n&&this.updateState(n,r),this.updateSize(),this.updatePosition(),this.renderCurrent()})}loadItems(e){this.data&&(this.data.floorDatas.forEach((t,n)=>{t.items=e[n]}),this.renderCurrent())}appendTo(e){this.wrapper=e,this.state.enabled&&(e.appendChild(this.renderer.rootElement),this.observeResize(e),this.registerExtraElement(),this.updateSize(),this.updatePosition(),this.renderCurrent())}enable(e={}){var t;if(this.state.enabled)return;let n=(t=e.userAction)==null?!0:t;this.updateState({enabled:!0},n),this._enable({userAction:n})}disable(e={}){var t;if(!this.state.enabled)return;let n=(t=e.userAction)==null?!0:t;this.updateState({enabled:!1},n),this._disable({userAction:n})}setState(e,t={}){var n;let r=this.state,i=(n=t.userAction)==null?!0:n;this.updateState(e,i),e.enabled!==void 0&&r.enabled!==e.enabled&&(e.enabled?this._enable({userAction:i}):this._disable({userAction:i})),e.visible!==void 0&&r.visible!==e.visible&&(e.visible?this._show({userAction:i}):this._hide({userAction:i}))}changeConfigs(e,t=!0){this.updateState({config:Object.assign(Object.assign({},this.state.config),e)},t),this.renderCurrent()}updateSize(){if(!this.data||!this.wrapper)return!1;let{min:e,max:t}=this.data.bounding,n=t.x-e.x,r=t.y-e.y,i=this.getPxmmWithRotation(),a=Math.ceil(n*i),o=Math.ceil(r*i);return this.size.width===a&&this.size.height===o?!0:(this.renderer.rootElement.style.width=a+`px`,this.renderer.rootElement.style.height=o+`px`,this.size={width:a,height:o},!0)}updatePosition(){if(!this.wrapper)return;let e=o(this.five,this.floorIndex,this.state.config.attachedTo),t=this.five.modelScene.boundingBox.getCenter(new p.Vector3);t.y=e;let n=t.clone().project(this.five.camera),r=(n.x+1)/2,i=-(n.y-1)/2;this.renderer.rootElement.style.position=`absolute`,this.renderer.rootElement.style.left=r*100+`%`,this.renderer.rootElement.style.top=i*100+`%`,this.renderer.rootElement.style.transform=`translate(-50%, -50%)`}getPxmmWithRotation(){if(!this.wrapper)return 0;let e={attachedTo:this.state.config.attachedTo};return s(this.five,this.wrapper,this.floorIndex,e)}updateState(e,t){let n=this.state,r=e.config?Object.assign(Object.assign({},n.config),e.config):n.config;this.state=Object.assign(Object.assign(Object.assign({},this.state),e),{config:r}),!l(this.state,n,{deep:!0})&&this.hooks.emit(`stateChange`,{state:this.state,prevState:n,userAction:t})}initContainer(){this.renderer.rootElement.classList.add(`floorplan-plugin`)}registerExtraElement(){var e;(e=this.removeExtraElement)==null||e.call(this),this.removeExtraElement=this.five.addExtraElement(this.renderer.rootElement)}observeResize(e){var t;(t=this.resizeObserver)==null||t.disconnect(),this.resizeObserver=new ResizeObserver(()=>{this.scheduleResizeUpdate()}),this.resizeObserver.observe(e)}scheduleResizeUpdate(){this.pendingResizeFrame===void 0&&(this.pendingResizeFrame=requestAnimationFrame(()=>{this.pendingResizeFrame=void 0,this.updateSize(),this.updatePosition(),this.data&&this.renderer.updateLabelsVisibility(this.data,this.floorIndex,this.state.config.adaptiveRoomLabelVisibleEnable)}))}renderCurrent(){this.data&&this.renderer.render({visible:this.state.visible,duration:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;this.hasAddedEventListener=!0;let e=this.five;e.on(`modeChange`,this.onFiveModeChange),e.on(`interiaPan`,this.onFiveInertiaPan),e.on(`panoArrived`,this.onFivePanoArrived),e.on(`cameraUpdate`,this.onFiveCameraUpdate),e.on(`wantsPanGesture`,this.onFiveWantsPanGesture),e.on(`wantsTapGesture`,this.onFiveWantsTapGesture),e.on(`wantsChangeMode`,this.onFiveWantsChangeMode),e.on(`modelShownFloorChange`,this.onModelShownFloorChange)}removeEventListener(){this.hasAddedEventListener=!1;let e=this.five;e.off(`modeChange`,this.onFiveModeChange),e.off(`interiaPan`,this.onFiveInertiaPan),e.off(`panoArrived`,this.onFivePanoArrived),e.off(`cameraUpdate`,this.onFiveCameraUpdate),e.off(`wantsPanGesture`,this.onFiveWantsPanGesture),e.off(`wantsTapGesture`,this.onFiveWantsTapGesture),e.off(`wantsChangeMode`,this.onFiveWantsChangeMode),e.off(`modelShownFloorChange`,this.onModelShownFloorChange)}scheduleCameraUpdate(){this.pendingCameraUpdateFrame===void 0&&(this.pendingCameraUpdateFrame=requestAnimationFrame(()=>{this.pendingCameraUpdateFrame=void 0,this.updatePosition(),this.updateSize()}))}getRelativePose(e){let t=this.showState.longitude||0,n=((e.longitude-t)%(2*Math.PI)+2*Math.PI)%(2*Math.PI);return{latitude:e.latitude,longitude:n}}_enable(e){this.styleSheet.disabled=!1,this.addEventListener(),this.wrapper&&(this.wrapper.appendChild(this.renderer.rootElement),this.registerExtraElement()),this.hooks.emit(`enable`,{userAction:e.userAction}),this.state.visible&&this._show({userAction:e.userAction})}_disable(e){var t,n;this.styleSheet.disabled=!0,(t=this.showRejection)==null||t.call(this,`BreakOffByDisable`),this.showPromise=void 0,this.renderer.rootElement.remove(),(n=this.removeExtraElement)==null||n.call(this),this.removeExtraElement=void 0,this.removeEventListener(),this.hooks.emit(`disable`,{userAction:e.userAction})}renderWithDuration(e){this.data&&this.renderer.render({visible:this.state.visible,duration:e,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}};export{v as Controller};
|
|
338
|
+
*/import{BasePlugin}from"../BasePlugin/index.mjs";import formatData from"./utils/formatData.mjs";import to from"./utils/to.mjs";import{omit}from"./utils/filter.mjs";import{correctFiveState}from"./utils/correctFiveState.mjs";import{changeModelCanvasOpacity}from"./utils/changeModelCanvasOpacity.mjs";import{getAttachedY,getPxmm}from"./utils/getPxmm.mjs";import{waitFiveModelLoaded}from"./utils/fiveModelLoad.mjs";import{equal}from"./utils/equal.mjs";import{FloorplanRenderer}from"./render/index.mjs";import style_default from"./render/style.css_raw.mjs";import{__awaiter}from"tslib";import*as THREE from"three/webgpu";var SHOW_ANIME_DURATION=500,DEFAULT_SHOW_MODEL_OPACITY=.01;function shouldFloorplanHideWithPose(pose){let{latitude,longitude}=pose,latitudeHide=Math.abs(latitude-Math.PI/2)>5*Math.PI/180,longitudeHide=longitude>Math.PI/180*5&&longitude<Math.PI/180*355;return latitudeHide||longitudeHide}function shouldFloorplanShowWithPose(pose){let{latitude,longitude}=pose,latitudeVisible=Math.abs(latitude-Math.PI/2)<10*Math.PI/180,longitudeVisible=longitude<Math.PI/180*30||longitude>Math.PI/180*330;return latitudeVisible&&longitudeVisible}var Controller=class extends BasePlugin.Controller{constructor(five,params){var _a,_b,_c;super(five),this.name=`FloorplanPlugin`,this.renderer=new FloorplanRenderer,this.styleSheet=new CSSStyleSheet,this.panoIndex=0,this.floorIndex=0,this.lastPanoramaLongitude=0,this.size={width:0,height:0},this.hasAddedEventListener=!1,this.isHiddenByHideFunc=!1,this.highlightData={},this.store={roomOnMouse:null},this.dispose=()=>{var _a,_b;this.removeEventListener(),(_a=this.resizeObserver)==null||_a.disconnect(),(_b=this.removeExtraElement)==null||_b.call(this),this.removeExtraElement=void 0,this.pendingCameraUpdateFrame!==void 0&&cancelAnimationFrame(this.pendingCameraUpdateFrame),this.pendingResizeFrame!==void 0&&cancelAnimationFrame(this.pendingResizeFrame),this.renderer.dispose(),this.wrapper=void 0,this.data=void 0,this.hooks.emit(`dispose`)},this.show=(...args_1)=>__awaiter(this,[...args_1],void 0,function*(options={}){var _a;if(!this.state.enabled||!this.showPromise&&this.state.visible)return;let userAction=(_a=options.userAction)==null?!0:_a;return this.updateState({visible:!0},userAction),this._show(options)}),this.hide=(...args_1)=>__awaiter(this,[...args_1],void 0,function*(options={}){var _a;this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},(_a=options.userAction)==null?!0:_a),this._hide(options)))}),this.highlight=highlightData=>{this.state.config.highlightEnable&&(this.highlightData=highlightData,this.renderCurrent())},this.unhighlight=()=>{this.highlightData={},this.renderCurrent()},this.updateShowState=showState=>{this.showState=Object.assign(Object.assign({},this.showState),showState)},this.onRoomHover=room=>{this.store.roomOnMouse=room},this.handleClick=()=>{if(this.state.visible&&this.hooks.emit(`click`,this.store.roomOnMouse))return!1},this.onFiveModelLoaded=()=>{var _a,_b,_c;this.state.enabled!==!1&&(this.floorIndex=(_c=(_b=(_a=this.five.work)==null?void 0:_a.observers[this.panoIndex])==null?void 0:_b.floorIndex)==null?0:_c,this.renderCurrent())},this.onFiveModeChange=mode=>{mode!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))},this.onFiveInertiaPan=(_,isFinal)=>{isFinal&&(this.state.visible||this.state.config.autoShowEnable!==!1&&(this.isHiddenByHideFunc||this.five.currentMode===this.showState.mode&&shouldFloorplanShowWithPose(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0}))))},this.onFivePanoArrived=index=>{var _a,_b;this.five.work&&(this.panoIndex=index,this.floorIndex=(_b=(_a=this.five.work.observers[index])==null?void 0:_a.floorIndex)==null?this.floorIndex:_b)},this.onFiveCameraUpdate=(_,userAction)=>{this.state.visible&&(this.showPromise||(this.scheduleCameraUpdate(),shouldFloorplanHideWithPose(this.getRelativePose(this.five.getCurrentState()))&&(this.updateState({visible:!1},userAction),this._hide({userAction}))))},this.onFiveWantsPanGesture=(_,isFinal)=>{if(this.five.currentMode===this.showState.mode&&this.state.config.autoShowEnable!==!1&&isFinal&&this.state.visible)return this.five.updateCamera(omit(this.showState,[`mode`,`offset`]),0),!1},this.onFiveWantsTapGesture=()=>this.handleClick(),this.onFiveWantsChangeMode=(mode,prevMode)=>{prevMode===`Panorama`&&mode===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)},this.onModelShownFloorChange=shownFloor=>{var _a,_b,_c;if(this.floorIndex!==shownFloor){if(shownFloor===null){this.floorIndex=(_c=(_b=(_a=this.five.work)==null?void 0:_a.observers[this.panoIndex])==null?void 0:_b.floorIndex)==null?this.floorIndex:_c;return}this.floorIndex=shownFloor,this.updateSize(),this.renderCurrent()}},this._show=options=>__awaiter(this,void 0,void 0,function*(){var _a;if(!this.state.enabled)return;if(!((_a=this.five.model)!=null&&_a.loaded))throw Error(`ModelNotLoaded`);if(!this.data)throw Error(`DataNotLoaded`);if(this.showPromise)return this.showPromise;let mergedOptions=Object.assign({floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},options),getShowPromise=()=>__awaiter(this,void 0,void 0,function*(){var _a;this.hooks.emit(`show`,{userAction:mergedOptions.userAction,auto:mergedOptions.isAutoShow});let hasRejected=!1,externalErrorMsg;this.showRejection=errorMsg=>{hasRejected=!0,externalErrorMsg=errorMsg};let[correctError]=yield to(correctFiveState(this.five,this.showState,mergedOptions.userAction));if(correctError)throw correctError;if(hasRejected)throw Error(externalErrorMsg||`UnknownError`);if(!this.updateSize())throw Error(`UpdateSizeError`);this.updatePosition(),this.floorIndex=mergedOptions.floorIndex,(_a=this.five.model)==null||_a.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=getShowPromise().then(()=>{this.showPromise=void 0,this.showRejection=void 0;let renderDuration=mergedOptions.immediately?0:SHOW_ANIME_DURATION;changeModelCanvasOpacity(this.five,mergedOptions.modelOpacity,renderDuration),this.renderWithDuration(renderDuration),this.hooks.emit(`showAnimationEnded`,{auto:mergedOptions.isAutoShow,userAction:mergedOptions.userAction})}).catch(error=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},mergedOptions.userAction),!mergedOptions.isAutoShow)throw error}),this.showPromise}),this._hide=options=>{var _a;(_a=this.showRejection)==null||_a.call(this,`BreakOffByHide`),this.showPromise=void 0;let mergedOptions=Object.assign({userAction:!0,isAutoHide:!1},options);changeModelCanvasOpacity(this.five,1,0),this.hooks.emit(`hide`,{auto:mergedOptions.isAutoHide,userAction:mergedOptions.userAction}),this.renderCurrent()},this.five=five,this.styleSheet.replaceSync(style_default),typeof document<`u`&&document.adoptedStyleSheets.push(this.styleSheet),this.showState=Object.assign({mode:`Mapview`,longitude:0,latitude:Math.PI/2,fov:80},params==null?void 0:params.showState);let baseConfig={northDesc:`北`,modelOpacity:DEFAULT_SHOW_MODEL_OPACITY,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomNameOtherTypeEnable:!0,roomDimensionEnable:!0,cameraImageUrl:void 0,attachedTo:3,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,missingFloorConfig:{imageWidth:200,imageHeight:120,text:`暂无平面图`,textFontSize:14},i18n:key=>key,getRoomAreaText:size=>(size/1e6).toFixed(1)+`㎡`,getRoomDimensionText:(width,height)=>(width/1e3).toFixed(1)+`m × `+(height/1e3).toFixed(1)+`m`,getRuleDistanceText:distance=>distance.toString()},config=Object.assign(Object.assign(Object.assign({},baseConfig),params==null?void 0:params.config),{missingFloorConfig:Object.assign(Object.assign({},baseConfig.missingFloorConfig),(_a=params==null?void 0:params.config)==null?void 0:_a.missingFloorConfig)});this.state={enabled:!0,visible:!1,config},Object.assign(this.state,omit((_b=params==null?void 0:params.initialState)==null?{}:_b,[`config`])),this.panoIndex=(_c=five.state.panoIndex)==null?0:_c,this.initContainer(),waitFiveModelLoaded(five).then(this.onFiveModelLoaded),five.once(`dispose`,this.dispose),this.state.enabled?this.addEventListener():this.styleSheet.disabled=!0}load(serverData_1,state_1){return __awaiter(this,arguments,void 0,function*(serverData,state,userAction=!0){let raw=`data`in serverData?serverData.data:serverData,prevData=this.data;this.data=yield formatData(raw),this.hooks.emit(`dataLoaded`,this.data),this.hooks.emit(`dataChange`,this.data,prevData),state&&this.updateState(state,userAction),this.updateSize(),this.updatePosition(),this.renderCurrent()})}loadItems(itemsByFloor){this.data&&(this.data.floorDatas.forEach((floorData,index)=>{floorData.items=itemsByFloor[index]}),this.renderCurrent())}appendTo(wrapper){this.wrapper=wrapper,this.state.enabled&&(wrapper.appendChild(this.renderer.rootElement),this.observeResize(wrapper),this.registerExtraElement(),this.updateSize(),this.updatePosition(),this.renderCurrent())}enable(options={}){var _a;if(this.state.enabled)return;let userAction=(_a=options.userAction)==null?!0:_a;this.updateState({enabled:!0},userAction),this._enable({userAction})}disable(options={}){var _a;if(!this.state.enabled)return;let userAction=(_a=options.userAction)==null?!0:_a;this.updateState({enabled:!1},userAction),this._disable({userAction})}setState(state,options={}){var _a;let prevState=this.state,userAction=(_a=options.userAction)==null?!0:_a;this.updateState(state,userAction),state.enabled!==void 0&&prevState.enabled!==state.enabled&&(state.enabled?this._enable({userAction}):this._disable({userAction})),state.visible!==void 0&&prevState.visible!==state.visible&&(state.visible?this._show({userAction}):this._hide({userAction}))}changeConfigs(config,userAction=!0){this.updateState({config:Object.assign(Object.assign({},this.state.config),config)},userAction),this.renderCurrent()}updateSize(){if(!this.data||!this.wrapper)return!1;let{min,max}=this.data.bounding,width=max.x-min.x,height=max.y-min.y,pxmm=this.getPxmmWithRotation(),nextWidth=Math.ceil(width*pxmm),nextHeight=Math.ceil(height*pxmm);return this.size.width===nextWidth&&this.size.height===nextHeight?!0:(this.renderer.rootElement.style.width=nextWidth+`px`,this.renderer.rootElement.style.height=nextHeight+`px`,this.size={width:nextWidth,height:nextHeight},!0)}updatePosition(){if(!this.wrapper)return;let y=getAttachedY(this.five,this.floorIndex,this.state.config.attachedTo),modelPosition=this.five.modelScene.boundingBox.getCenter(new THREE.Vector3);modelPosition.y=y;let ndcPosition=modelPosition.clone().project(this.five.camera),left=(ndcPosition.x+1)/2,top=-(ndcPosition.y-1)/2;this.renderer.rootElement.style.position=`absolute`,this.renderer.rootElement.style.left=left*100+`%`,this.renderer.rootElement.style.top=top*100+`%`,this.renderer.rootElement.style.transform=`translate(-50%, -50%)`}getPxmmWithRotation(){if(!this.wrapper)return 0;let options={attachedTo:this.state.config.attachedTo};return getPxmm(this.five,this.wrapper,this.floorIndex,options)}updateState(state,userAction){let prevState=this.state,config=state.config?Object.assign(Object.assign({},prevState.config),state.config):prevState.config;this.state=Object.assign(Object.assign(Object.assign({},this.state),state),{config}),!equal(this.state,prevState,{deep:!0})&&this.hooks.emit(`stateChange`,{state:this.state,prevState,userAction})}initContainer(){this.renderer.rootElement.classList.add(`floorplan-plugin`)}registerExtraElement(){var _a;(_a=this.removeExtraElement)==null||_a.call(this),this.removeExtraElement=this.five.addExtraElement(this.renderer.rootElement)}observeResize(wrapper){var _a;(_a=this.resizeObserver)==null||_a.disconnect(),this.resizeObserver=new ResizeObserver(()=>{this.scheduleResizeUpdate()}),this.resizeObserver.observe(wrapper)}scheduleResizeUpdate(){this.pendingResizeFrame===void 0&&(this.pendingResizeFrame=requestAnimationFrame(()=>{this.pendingResizeFrame=void 0,this.updateSize(),this.updatePosition(),this.data&&this.renderer.updateLabelsVisibility(this.data,this.floorIndex,this.state.config.adaptiveRoomLabelVisibleEnable)}))}renderCurrent(){this.data&&this.renderer.render({visible:this.state.visible,duration:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;this.hasAddedEventListener=!0;let five=this.five;five.on(`modeChange`,this.onFiveModeChange),five.on(`interiaPan`,this.onFiveInertiaPan),five.on(`panoArrived`,this.onFivePanoArrived),five.on(`cameraUpdate`,this.onFiveCameraUpdate),five.on(`wantsPanGesture`,this.onFiveWantsPanGesture),five.on(`wantsTapGesture`,this.onFiveWantsTapGesture),five.on(`wantsChangeMode`,this.onFiveWantsChangeMode),five.on(`modelShownFloorChange`,this.onModelShownFloorChange)}removeEventListener(){this.hasAddedEventListener=!1;let five=this.five;five.off(`modeChange`,this.onFiveModeChange),five.off(`interiaPan`,this.onFiveInertiaPan),five.off(`panoArrived`,this.onFivePanoArrived),five.off(`cameraUpdate`,this.onFiveCameraUpdate),five.off(`wantsPanGesture`,this.onFiveWantsPanGesture),five.off(`wantsTapGesture`,this.onFiveWantsTapGesture),five.off(`wantsChangeMode`,this.onFiveWantsChangeMode),five.off(`modelShownFloorChange`,this.onModelShownFloorChange)}scheduleCameraUpdate(){this.pendingCameraUpdateFrame===void 0&&(this.pendingCameraUpdateFrame=requestAnimationFrame(()=>{this.pendingCameraUpdateFrame=void 0,this.updatePosition(),this.updateSize()}))}getRelativePose(pose){let baseLongitude=this.showState.longitude||0,normalizedLongitude=((pose.longitude-baseLongitude)%(2*Math.PI)+2*Math.PI)%(2*Math.PI);return{latitude:pose.latitude,longitude:normalizedLongitude}}_enable(options){this.styleSheet.disabled=!1,this.addEventListener(),this.wrapper&&(this.wrapper.appendChild(this.renderer.rootElement),this.registerExtraElement()),this.hooks.emit(`enable`,{userAction:options.userAction}),this.state.visible&&this._show({userAction:options.userAction})}_disable(options){var _a,_b;this.styleSheet.disabled=!0,(_a=this.showRejection)==null||_a.call(this,`BreakOffByDisable`),this.showPromise=void 0,this.renderer.rootElement.remove(),(_b=this.removeExtraElement)==null||_b.call(this),this.removeExtraElement=void 0,this.removeEventListener(),this.hooks.emit(`disable`,{userAction:options.userAction})}renderWithDuration(duration){this.data&&this.renderer.render({visible:this.state.visible,duration,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,config:this.state.config,highlightData:this.highlightData,store:this.store,onRoomHover:this.onRoomHover})}};export{Controller};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/const
|
|
338
|
+
*/const require_Controller=require("./Controller.js"),require_formatFloorplanJson=require("./utils/formatFloorplanJson.js");var FloorplanPlugin=(five,params)=>new require_Controller.Controller(five,params);exports.FloorplanPlugin=FloorplanPlugin,exports.formatFloorplanJson=require_formatFloorplanJson.default;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/import{Controller
|
|
338
|
+
*/import{Controller}from"./Controller.mjs";import formatFloorplanJson from"./utils/formatFloorplanJson.mjs";var FloorplanPlugin=(five,params)=>new Controller(five,params);export{FloorplanPlugin,formatFloorplanJson};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/var e=`data:image/png;base64,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`,t=`data:image/png;base64,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`;exports.CAMERA_IMAGE=e,exports.COMPASS_IMAGE=t;
|
|
338
|
+
*/var CAMERA_IMAGE=`data:image/png;base64,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`,COMPASS_IMAGE=`data:image/png;base64,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`;exports.CAMERA_IMAGE=CAMERA_IMAGE,exports.COMPASS_IMAGE=COMPASS_IMAGE;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/var e=`data:image/png;base64,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`,t=`data:image/png;base64,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`;export{e as CAMERA_IMAGE,t as COMPASS_IMAGE};
|
|
338
|
+
*/var CAMERA_IMAGE=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAMAAAANf8AYAAAC2VBMVEUAAACCnP+Dn/+Enf+HqP+Gp/+Fof+Gpf+IrP+Lsf+Dof+Cmv+Lsv+Mtf+Eo/+Bmf+JrP+Hqf+Env+Krv+Fo/+Pu/+Ms/+Qvv+Hqf+RwP+KsP+Fpf+Mtv+Gov+Bnf+Qv/+Nt/+Krv+Ho/+Rwf+Ouv+Emv+Amv+SxP+Sw/+NuP+Mtf/G0f6huP+Ot/+JrP+Jqv+Dnv+crf6Uqv////+QvP+PvP+Ms//J0/3p9/+Ux/+Ouf+Krf+Iqf+Fpv+/zf6WsP+MpP+RqP+Uyf+Jy//V3P6Yuf+Qqf+Rqv/5/f+Sxf+Jy/////+Lx/+Ouf+Nw/+Owv+PwP+Jr/+Jq/+VvP+Vuv/c4v+Fnf+btP+InP+Blf/3+P6Txf+Jzf+Jyf+NxP+Qwf/t8/6Svv+Tvf/O1f7Czv3T2f6cu/+qvP7a4fvo7v77/v/o9//p9//0+v////+Vy//w9//k8/+B1f/v9/+D0/+UyP/u9v+D0v/i8f+F0v/g7/+G0P+KzP+Hz/////+Lx//s8/+Puf/h7P+Mxv/w9f7q8v/q8f2RwP/r8f6JrP/t8v6RvP/l6f7////j6P6VvP/f5/7q8P7a4P/U2f6au/+ZuP+ewf+auP+iu//n6f2Fn//j6P/h4fn9/v/4/P/3/P/o9v/l9P+F1P+B1f/i8v+UyP+J0f+E0f/h7//r8v6Izf/g7v/q8v6Pv//f7P7f7f/g7f+Lxf+MyP+Mw//k7v6Ow/+Ov//v8/2Pu//t8f+Tvv/p8P6Uu//q7v/i6P2Xvf+WuP/L1vypu//Azv7K0/zy8v/l8v/A4P/o9f/x+f+I0f/j8v+J0P/s9v/h8P+I0P/t9v/r9P6Lyv+Lyf/s9P/g7P+Myv/s8/7j7v+Jrv/q8P2Uwf+Epf+TuP/a3vzh5f3w8P/a4P20v//Nzfzx8f/Pz/Cg0P/f7//u9f/q8v7o8v7s8/7s8v3w9f+Sv/+TuP+Gp//s8fr///8/HFXHAAAA8nRSTlMANUQ/Z2JJXXaKTjCPmVMre3E6gFiylLxsxoVYnk5JwaOFU8utOjrV0KieQS2icWwzMC4Dt7aTQvjfrHprXD0zMyvpvUxGNjH+2sK9raeYkoiAcF5TUi0rKCYY2cy3pIJ/eGpEQDcxLx0S/Pv19PPu7Ovr5+Tk4eDe3NXU09DIsq2opKCViYN9e3V1cmZlXllVTk1GQDs2NTMwJw0K/vn28u/u5+Pj3tjNycjGw8DAua2pqJ6SjYyMf3BvaWNgWk5NSTc3MxT79PHw6efl2trY19PHurWysqWZe2xkXVlUPjo6OSskCO7Qzs6+vKCedmhdN1av0hoAAAV1SURBVEjHjZT3P9RxHMe1nCjcObo4cjpX5w53l7pUbnBGkr2TPZJKmiqVEQlJhGjvvfcm2nvvvXf5C3q/P98bkuR1D7+9n16v1/vzvtPrnAade/ty6anHJfFHOjkfXbe07PGxkuL4oqIjCzoDjHtxurzsRHmFStokjBDG/59JrwurOF2hkkUoIyKEQmFqatG3/xDnXlSGPZcKI5VKiVgsli+vrakpfNAx8UoVlpRWH6mUeMsVcm8vhah6WfXB3A6IlSlVKoE4KjxcgtNGRl1Ayzw9H+Z20DypMVkZZWKiUIi6oHj2PAbPs6Eh/+6/kBUpVUliIEQKGGcwGPbdiBpCQ/O//AMZJ218XW9igoHsGTwY7kopdMmSvTvbz/VGmiyhCARwWJ/Ss5CQ9pl3zVJZJCEwEszb6BtaGxrCn3XIyZP3trW3rybBWTCB1jy0sNGHeWM7+BgzrX4kJu752E57mWA5mIjsMRVxgGkrJpPpRvtJSywt3X2rPUSMuUgqIIzx37vRaLQeqNKEhN03/womg/bYhDJBBzdqvjsqYeHCHdfa1k9BF0QoEyuwoOadWc4sFutoXNzWGW2W3Axd8E3AxAZ6WNGeEoDl7EwPho/T0cDAtswb2Bi6kFx2VkwaDYgRI5zo9EUGRIGHD82e+ufrJ8uo+l31oQogYMJiOdFh2BQ03NTscEDAn8wKgQCeUsRTI8QEMhkYDDc1NTMLMuNwLAP8/a9Pbl0mJQlXhvVtrO2YNLce3Uew6IvAAsYtLS17gvwLCrKR0d3la0DsgdG3NiZVMBZacMh8L9CB2NjsS61eRiCtB4YH/Q21CMQKAgLnh1hYWAyJ3b9/40Qd09woppJhFytAnIPpBmBCCBjvjdrn59eKSU+SRWkZphu40IMBgRpAAMBmO7DZbL/786+s0TIpKqXOhgqGCKcnhOrd28HBlmj+2LFZWia9KjkqnHoa3BmsjG7wKIgDuSzQw9F29Gh+3jDunTseWas1zKtKYbiIsrEjZdAF2iPiYOvIz+Nyuebm5h6+HuvGa2xU0qhwBbkzayzjDO8y3IwgbAdHPp87zNx8sIvLYN/tvhc1TF1lWqSEwaMWgG3ABpIB4sC2HY2Ei0sf0O2YmLWr1CdQGRYp8SK3ic/ZnRWMLqQ+2xGRwUD069dvV8zcuRom+rlA6Y2MbgGmhAGEz4VYSPQF5cyZM6GFYl6eTlN6ixi6aE6PqDLQZRi4EKI/KOfGFjUzqCKsXu6l2RpuAKJxiI1tHhcQJAYOHDhgwOZZs4ZSTHR5lQQYPDW1DS4aELQxdyEIAANGjtk8c6aaqTslk8gVwIAN0w3rAEL2bMtHm12AIOHqenXaNDWztEwo9hKJGHjR6OO0yDSI1IGdoQ0iY0a6Tt+06fKUDRQzqKw8Qlxr1AXrwNqwDvGBA+BrGUDc3d3Xr5+SQZj0E2ERqXIjPAJYNUbD18FoWEeDbHLPzLyQ4ePjQ5i3x1RCubfmpqkjMMNo6KOJ5uqe+f58C9GoaD29XyVSYS1h4DftKeWDDN4AbACZMZAsExEKghWUNKXWhlPfA2P1qjmUT556a9jmQotWi/VOFael1lR7ep4JfRZy8nhpwtG4wMMB/gdi9/nNH+vhezsmJ+fG5quX12fomHl6J+KFy88uA2RJyJPE4wkL4wIPBfgXxO5HxGN7zNw5W2bNnLZhio+OmaR3LD6tplrLfKeYAwX7/O6Dje/2dpniwuKiwoMHH+bn7723Z8/uHTu2fpg9+3p29sYrWVnr1l1cO2HCUFCGT+tshUcWLPj6IDf37ued27Z9unXz2owZU6dOnnxp4sQ1q1ePH79KN6vbQWc1SrfrTit6lO5NO6/F8yZNmofBfgNTwRQLsPLsHQAAAABJRU5ErkJggg==`,COMPASS_IMAGE=`data:image/png;base64,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`;export{CAMERA_IMAGE,COMPASS_IMAGE};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/const
|
|
338
|
+
*/const require_renderFloor=require("./renderFloor.js");var FloorplanRenderer=class{constructor(){this.floorElements=new Map,this.currentFloorIndex=-1,this.isVisible=!1,this.rootElement=document.createElement(`div`),this.rootElement.className=`floorplan-plugin__main`}render(props){let{floorplanData,config}=props;this.rootElement.style.transitionDuration=props.duration+`ms`,props.visible!==this.isVisible&&(this.isVisible=props.visible,props.visible?(this.rootElement.classList.remove(`floorplan-plugin__main--visible`),requestAnimationFrame(()=>{this.rootElement.classList.add(`floorplan-plugin__main--visible`)})):this.rootElement.classList.remove(`floorplan-plugin__main--visible`));let validFloorIndexes=new Set(floorplanData.floorDatas.map(f=>f.floorIndex));for(let[floorIndex,element]of this.floorElements)validFloorIndexes.has(floorIndex)||(element.remove(),this.floorElements.delete(floorIndex));for(let floorData of floorplanData.floorDatas){let floorEl=require_renderFloor.renderFloor({floorplanData,floorIndex:floorData.floorIndex,panoIndex:props.panoIndex,lastPanoramaLongitude:props.lastPanoramaLongitude,config,highlightData:props.highlightData,store:props.store,onRoomHover:props.onRoomHover}),prevEl=this.floorElements.get(floorData.floorIndex);prevEl?this.rootElement.replaceChild(floorEl,prevEl):this.rootElement.appendChild(floorEl),this.floorElements.set(floorData.floorIndex,floorEl)}this.currentFloorIndex!==props.floorIndex&&(this.currentFloorIndex=props.floorIndex);for(let[floorIndex,element]of this.floorElements)element.classList.toggle(`floorplan-plugin__floor--is-current`,floorIndex===props.floorIndex);let currentFloorEl=this.floorElements.get(props.floorIndex);currentFloorEl&&requestAnimationFrame(()=>{require_renderFloor.updateRoomLabelsVisibility(currentFloorEl,floorplanData,props.floorIndex,config.adaptiveRoomLabelVisibleEnable)})}updateLabelsVisibility(floorplanData,floorIndex,adaptiveEnable){let currentFloorEl=this.floorElements.get(floorIndex);currentFloorEl&&require_renderFloor.updateRoomLabelsVisibility(currentFloorEl,floorplanData,floorIndex,adaptiveEnable)}dispose(){this.rootElement.remove(),this.floorElements.clear()}};exports.FloorplanRenderer=FloorplanRenderer;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/import{renderFloor
|
|
338
|
+
*/import{renderFloor,updateRoomLabelsVisibility}from"./renderFloor.mjs";var FloorplanRenderer=class{constructor(){this.floorElements=new Map,this.currentFloorIndex=-1,this.isVisible=!1,this.rootElement=document.createElement(`div`),this.rootElement.className=`floorplan-plugin__main`}render(props){let{floorplanData,config}=props;this.rootElement.style.transitionDuration=props.duration+`ms`,props.visible!==this.isVisible&&(this.isVisible=props.visible,props.visible?(this.rootElement.classList.remove(`floorplan-plugin__main--visible`),requestAnimationFrame(()=>{this.rootElement.classList.add(`floorplan-plugin__main--visible`)})):this.rootElement.classList.remove(`floorplan-plugin__main--visible`));let validFloorIndexes=new Set(floorplanData.floorDatas.map(f=>f.floorIndex));for(let[floorIndex,element]of this.floorElements)validFloorIndexes.has(floorIndex)||(element.remove(),this.floorElements.delete(floorIndex));for(let floorData of floorplanData.floorDatas){let floorEl=renderFloor({floorplanData,floorIndex:floorData.floorIndex,panoIndex:props.panoIndex,lastPanoramaLongitude:props.lastPanoramaLongitude,config,highlightData:props.highlightData,store:props.store,onRoomHover:props.onRoomHover}),prevEl=this.floorElements.get(floorData.floorIndex);prevEl?this.rootElement.replaceChild(floorEl,prevEl):this.rootElement.appendChild(floorEl),this.floorElements.set(floorData.floorIndex,floorEl)}this.currentFloorIndex!==props.floorIndex&&(this.currentFloorIndex=props.floorIndex);for(let[floorIndex,element]of this.floorElements)element.classList.toggle(`floorplan-plugin__floor--is-current`,floorIndex===props.floorIndex);let currentFloorEl=this.floorElements.get(props.floorIndex);currentFloorEl&&requestAnimationFrame(()=>{updateRoomLabelsVisibility(currentFloorEl,floorplanData,props.floorIndex,config.adaptiveRoomLabelVisibleEnable)})}updateLabelsVisibility(floorplanData,floorIndex,adaptiveEnable){let currentFloorEl=this.floorElements.get(floorIndex);currentFloorEl&&updateRoomLabelsVisibility(currentFloorEl,floorplanData,floorIndex,adaptiveEnable)}dispose(){this.rootElement.remove(),this.floorElements.clear()}};export{FloorplanRenderer};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/function
|
|
338
|
+
*/function isPointInPolygon(point,polygon){let[x,y]=point,inside=!1;for(let i=0,j=polygon.length-1;i<polygon.length;j=i++){let[xi,yi]=polygon[i],[xj,yj]=polygon[j];yi>y!=yj>y&&x<(xj-xi)*(y-yi)/(yj-yi)+xi&&(inside=!inside)}return inside}exports.isPointInPolygon=isPointInPolygon;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/function
|
|
338
|
+
*/function isPointInPolygon(point,polygon){let[x,y]=point,inside=!1;for(let i=0,j=polygon.length-1;i<polygon.length;j=i++){let[xi,yi]=polygon[i],[xj,yj]=polygon[j];yi>y!=yj>y&&x<(xj-xi)*(y-yi)/(yj-yi)+xi&&(inside=!inside)}return inside}export{isPointInPolygon};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/3
|
|
5
|
+
* Version: 1.0.0-alpha.14
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/const e=require("../utils/formatPosition.js"),t=require("./roomLabelVisibility.js"),n=require("./assets.js");var r=e=>e*180/Math.PI;function i(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function a(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,e);if(t)for(let e in t)n.setAttribute(e,t[e]);return n}function o(e){let t=i(`div`,`floorplan-plugin__missing-floor`),{imageURL:n,imageWidth:r=200,imageHeight:a=120,text:o,textFontSize:s=14}=e.missingFloorConfig;if(n){let e=i(`img`);e.src=n,e.alt=`缺省楼层展位图`,e.style.width=r+`px`,e.style.height=a+`px`,e.style.maxWidth=`none`,t.appendChild(e)}if(o){let e=i(`span`,`floorplan-plugin__missing-floor-text`);e.style.fontSize=s+`px`,e.textContent=o,t.appendChild(e)}return t}var s=0;function c(e,t){e.appendChild(a(`path`,{d:t,fill:`#2F313A`}))}function l(e,t){let n=`fpm-room-pattern-tile-${s++}`,r=a(`defs`),i=a(`pattern`,{id:n,x:`0`,y:`0`,width:`12`,height:`12`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});i.appendChild(a(`rect`,{x:`0`,y:`0`,width:`12`,height:`12`,fill:`#323747`})),i.appendChild(a(`path`,{d:`M0 6 h 12 M6 0 v 12`,stroke:`#ffffff`,"stroke-opacity":`0.06`,"stroke-width":`0.5`,fill:`none`})),r.appendChild(i),e.appendChild(r),e.appendChild(a(`path`,{d:t,fill:`url(#${n})`}))}function u(e,t){let n=`fpm-room-pattern-wood-1-${s++}`,r=`fpm-room-pattern-wood-2-${s++}`,i=a(`defs`),o=a(`pattern`,{id:n,x:`0`,y:`0`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});o.appendChild(a(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`}));let c=a(`pattern`,{id:r,x:`6`,y:`25`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});c.appendChild(a(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`})),i.appendChild(o),i.appendChild(c),e.appendChild(i),e.appendChild(a(`path`,{d:t,fill:`#43434D`})),e.appendChild(a(`path`,{d:t,fill:`url(#${n})`})),e.appendChild(a(`path`,{d:t,fill:`url(#${r})`}))}function d(t){let{vertical:n,horizontal:r}=t;if(!(!n||n.length<2||!r||r.length<2))return`${e.pathD([{x:n[1].x,y:n[1].y+53},{x:n[1].x-60,y:n[1].y+124},{x:n[1].x+60,y:n[1].y+124}],{needZ:!0})} ${e.pathD([{x:n[0].x,y:n[0].y-53},{x:n[0].x-60,y:n[0].y-124},{x:n[0].x+60,y:n[0].y-124}],{needZ:!0})} ${e.pathD([{x:r[0].x+53,y:r[0].y},{x:r[0].x+124,y:r[0].y+60},{x:r[0].x+124,y:r[0].y-60}],{needZ:!0})} ${e.pathD([{x:r[1].x-53,y:r[1].y},{x:r[1].x-124,y:r[1].y+60},{x:r[1].x-124,y:r[1].y-60}],{needZ:!0})}`}function f(t,n,r){let o=i(`div`,`floorplan-plugin__room-material`),{bounding:s}=n,f=s.max.x-s.min.x,p=s.max.y-s.min.y,m=r.roomLabelsEnable&&r.roomDimensionEnable;for(let n of t.rooms){let t=e.pathD(n.path.map(t=>e.formatFloorplanPoint(t,s)),{needZ:!0}),r=a(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${f} ${p}`});if(n.floorType===1?c(r,t):n.floorType===0?u(r,t):l(r,t),o.appendChild(r),m&&n.dimension){let e=d(n.dimension);if(e){let t=a(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${f} ${p}`});t.appendChild(a(`path`,{d:e,fill:`#969696`,stroke:`#969696`,"stroke-width":`1`,"fill-rule":`evenodd`})),o.appendChild(t)}}}return o}function p(t,n,r){let o=i(`div`,`floorplan-plugin__room-highlight`),{bounding:s}=n,c=a(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${s.max.x-s.min.x} ${s.max.y-s.min.y}`});for(let n of t.rooms){let t=a(`path`,{d:e.pathD(n.path,{needZ:!0,format:t=>e.formatFloorplanPoint(t,s)}),id:`${r.floorIndex}_${n.id}`}),i=r.highlightData[`${r.floorIndex}_${n.id}`];i&&(i.fill&&(t.style.fill=i.fill),i.opacity!==void 0&&t.style.setProperty(`--opacity`,String(i.opacity)),t.style.pointerEvents=i.disabled?`none`:`auto`),t.addEventListener(`mouseenter`,()=>r.onRoomHover(n)),t.addEventListener(`mouseleave`,()=>r.onRoomHover(null)),c.appendChild(t)}return o.appendChild(c),o}function m(e,t){let n=i(`div`,`floorplan-plugin__base-image`),r=e.outlines[t];if(r!=null&&r.svgContent)n.innerHTML=r.svgContent;else if(r!=null&&r.url){let e=i(`img`);e.src=r.url,e.alt=`floorplan image`,n.appendChild(e)}return n}function h(e){var t;let n=i(`div`,`floorplan-plugin__items`);for(let r of(t=e.items)==null?[]:t){let e=i(`div`,`floorplan-plugin__item`);e.style.left=r.positionInImage.x*100+`%`,e.style.top=r.positionInImage.y*100+`%`,e.style.width=r.width*100+`%`,e.style.height=r.height*100+`%`;let t=i(`img`,`floorplan-plugin__item-img`);if(t.src=r.src,t.alt=``,t.style.transform=`rotate(${r.rotateZ}deg) scaleX(${r.rotateX?-1:1}) scaleY(${r.rotateY?-1:1})`,e.appendChild(t),r.notes){let t=i(`span`,`floorplan-plugin__item-notes`);t.textContent=r.notes,e.appendChild(t)}n.appendChild(e)}return n}function g(e,t,n,r){var a,o;let s=i(`div`,`floorplan-plugin__room-label-item`);s.style.left=e.roomLabel.positionInImage.x*100+`%`,s.style.top=e.roomLabel.positionInImage.y*100+`%`;let c=r===e.id,{bounding:l}=t,u=l.max.x-l.min.x;s.dataset.roomId=e.id,s.dataset.roomLabelX=String(e.roomLabel.position.x),s.dataset.roomLabelY=String(e.roomLabel.position.y),s.dataset.boundingWidth=String(u);let d=(a=n.getLabelElement)==null?void 0:a.call(n,e);if(d)return s.appendChild(d),s;let f=i(`div`,`floorplan-plugin__room-part1`);if(n.roomNameEnable){let t=i(`span`,`floorplan-plugin__room-name`);t.textContent=n.roomNameOtherTypeEnable?e.name:e.roomType===`100900000012`?(o=e.customizedName)==null?e.name:o:e.name,f.appendChild(t)}if(n.roomAreaEnable&&e.size){let t=i(`span`,`floorplan-plugin__room-area`);t.textContent=n.getRoomAreaText(e.size),f.appendChild(t)}if(s.appendChild(f),n.roomDimensionEnable&&e.dimension){let t=i(`span`,`floorplan-plugin__room-size`);t.textContent=n.getRoomDimensionText(e.dimension.width,e.dimension.height),s.appendChild(t)}return c&&(s.style.opacity=`1`,f.style.opacity=`1`),s}function _(e,t,n,r){let a=i(`div`,`floorplan-plugin__room-labels`);for(let i of e.rooms)a.appendChild(g(i,t,n,r));return a}function v(e,t,n,a){let o=e.observers[t];if(!o)return;let s=i(`div`,`floorplan-plugin__camera-position`);s.style.left=o.positionInImage.x*100+`%`,s.style.top=o.positionInImage.y*100+`%`;let c=i(`div`,`floorplan-plugin__camera-rotate`),l=document.body.clientWidth,u=document.body.clientHeight,d=`${(l<500||u<500?17:37)/16}rem`;return c.style.width=d,c.style.height=d,c.style.left=`-`+d,c.style.top=`-`+d,c.style.transform=`rotate(${-r(n)+45}deg)`,c.style.transformOrigin=`${d} ${d}`,c.style.backgroundImage=`url(${a||`data:image/png;base64,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`})`,s.appendChild(c),s}var y=1e3,b=180;function x(e,t,n,r){let a=e===`top`||e===`bottom`,o=n.max.x-n.min.x-(y-b)*2,s=n.max.y-n.min.y-(y-b)*2,c=t.map(([e,t])=>a?[e.x,t.x]:[e.y,t.y]).flat().sort((e,t)=>e-t).filter((e,t,n)=>t===0||e!==n[t-1]),l=c.map(e=>({left:a?(e-n.min.x-y+b)/o:0,bottom:a?0:(e-n.min.y-y+b)/s}));l.unshift({left:0,bottom:0}),l.push(a?{left:1,bottom:0}:{left:0,bottom:1});let u=c.length?c[c.length-1]-c[0]:0,d=c.map((e,t,r)=>{let i=t===0?0:e-r[t-1],c=t===0?0:(e+r[t-1])/2;return{left:a?(c-n.min.x-y+b)/o:0,bottom:a?0:(c-n.min.y-y+b)/s,distance:i}}).filter(({distance:e})=>u?e/u>.1:!1),f=i(`div`,`floorplan-plugin__rule-labels floorplan-plugin__rule-labels--${e}${a?` is-row`:``}`);f.style.width=a?`100%`:`0.0625rem`,f.style.height=a?`0.0625rem`:`100%`,f.appendChild(i(`div`,`floorplan-plugin__rule-line`));let p=i(`div`,`floorplan-plugin__rule-scale-wrapper${a?` is-row`:``}`);for(let{left:e,bottom:t}of l){let n=i(`div`,`floorplan-plugin__rule-scale`);n.style.left=e*100+`%`,n.style.bottom=t*100+`%`,p.appendChild(n)}f.appendChild(p);let m=i(`div`,`floorplan-plugin__rule-text-wrapper`);for(let{left:e,bottom:t,distance:n}of d){let o=i(`div`,`floorplan-plugin__rule-text-item`);o.style.left=e*100+`%`,o.style.bottom=t*100+`%`;let s=i(`div`,`floorplan-plugin__rule-text${a?` is-row`:``}`);s.textContent=r(n),o.appendChild(s),m.appendChild(o)}return f.appendChild(m),f}function S(e,t,n){let r=t.bounding,a=r.max.x-r.min.x,o=r.max.y-r.min.y,s=a-(y-b)*2,c=o-(y-b)*2,l=i(`div`,`floorplan-plugin__rule-labels-wrapper`);l.style.width=s/a*100+`%`,l.style.height=c/o*100+`%`;let u=e.rules;for(let e of[`top`,`right`,`bottom`,`left`]){let t=u[e];!t||t.length===0||l.appendChild(x(e,t,r,n.getRuleDistanceText))}return l}function C(e,t){var a;let o=(a=e.entrance)==null?void 0:a.northRad;if(typeof o!=`number`)return;let s=i(`div`,`floorplan-plugin__compass`),c=r(o);s.style.transform=`translateX(-50%) translateZ(10px) rotate(${-c+90}deg)`;let l=i(`div`,`floorplan-plugin__compass-image`);l.style.backgroundImage=`url(${n.COMPASS_IMAGE})`,s.appendChild(l);let u=i(`span`,`floorplan-plugin__compass-text`);return u.textContent=t,s.appendChild(u),s}function w(e){var t,n;let{floorplanData:r,floorIndex:a,config:s}=e,c=r.floorDatas[a],l=i(`div`,`floorplan-plugin__floor`);if(!(c.rooms.length>0||c.is_has_wall))return l.appendChild(o(s)),l;if(l.appendChild(f(c,r,s)),(s.highlightEnable||s.hoverEnable)&&l.appendChild(p(c,r,e)),l.appendChild(m(r,a)),l.appendChild(h(c)),s.roomLabelsEnable&&l.appendChild(_(c,r,s,(n=(t=e.store.roomOnMouse)==null?void 0:t.id)==null?null:n)),s.ruleLabelsEnable&&l.appendChild(S(c,r,s)),s.cameraEnable){let t=v(r,e.panoIndex,e.lastPanoramaLongitude,s.cameraImageUrl);t&&l.appendChild(t)}if(s.compassEnable){let e=C(r,s.northDesc);e&&l.appendChild(e)}return l}function T(e,n,r,i){let a=e.querySelector(`.floorplan-plugin__room-labels`);if(!a)return;let o=a.clientWidth;if(!o)return;let s=n.floorDatas[r],c=new Map(s.rooms.map(e=>[e.id,e])),{max:l,min:u}=n.bounding,d=o/(l.x-u.x);a.querySelectorAll(`.floorplan-plugin__room-label-item`).forEach(e=>{if(!i){e.style.opacity=`1`;return}let n=e.dataset.roomId,r=n?c.get(n):void 0;if(!r)return;let a=e.querySelector(`.floorplan-plugin__room-part1`),o=e.querySelector(`.floorplan-plugin__room-size`),s=t.isLabelInRoom(r,{width:e.clientWidth,height:e.clientHeight},d),l=a?t.isLabelInRoom(r,{width:a.clientWidth,height:a.clientHeight},d):s;e.style.opacity=s||l?`1`:`0`,a&&(a.style.opacity=l?`1`:`0`),o&&(o.style.opacity=s?`0.6`:`0`)})}exports.renderFloor=w,exports.updateRoomLabelsVisibility=T;
|
|
338
|
+
*/const require_formatPosition=require("../utils/formatPosition.js"),require_roomLabelVisibility=require("./roomLabelVisibility.js"),require_assets=require("./assets.js");var rad2Deg=rad=>rad*180/Math.PI;function el(tag,className){let node=document.createElement(tag);return className&&(node.className=className),node}function svgEl(tag,attrs){let node=document.createElementNS(`http://www.w3.org/2000/svg`,tag);if(attrs)for(let key in attrs)node.setAttribute(key,attrs[key]);return node}function renderMissingFloor(config){let wrapper=el(`div`,`floorplan-plugin__missing-floor`),{imageURL,imageWidth=200,imageHeight=120,text,textFontSize=14}=config.missingFloorConfig;if(imageURL){let img=el(`img`);img.src=imageURL,img.alt=`缺省楼层展位图`,img.style.width=imageWidth+`px`,img.style.height=imageHeight+`px`,img.style.maxWidth=`none`,wrapper.appendChild(img)}if(text){let span=el(`span`,`floorplan-plugin__missing-floor-text`);span.style.fontSize=textFontSize+`px`,span.textContent=text,wrapper.appendChild(span)}return wrapper}var materialPatternIdSeq=0;function appendRoomMaterial0(svg,d){svg.appendChild(svgEl(`path`,{d,fill:`#2F313A`}))}function appendRoomMaterial1(svg,d){let patternId=`fpm-room-pattern-tile-${materialPatternIdSeq++}`,defs=svgEl(`defs`),pattern=svgEl(`pattern`,{id:patternId,x:`0`,y:`0`,width:`12`,height:`12`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});pattern.appendChild(svgEl(`rect`,{x:`0`,y:`0`,width:`12`,height:`12`,fill:`#323747`})),pattern.appendChild(svgEl(`path`,{d:`M0 6 h 12 M6 0 v 12`,stroke:`#ffffff`,"stroke-opacity":`0.06`,"stroke-width":`0.5`,fill:`none`})),defs.appendChild(pattern),svg.appendChild(defs),svg.appendChild(svgEl(`path`,{d,fill:`url(#${patternId})`}))}function appendRoomMaterial2(svg,d){let patternId1=`fpm-room-pattern-wood-1-${materialPatternIdSeq++}`,patternId2=`fpm-room-pattern-wood-2-${materialPatternIdSeq++}`,defs=svgEl(`defs`),pattern1=svgEl(`pattern`,{id:patternId1,x:`0`,y:`0`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});pattern1.appendChild(svgEl(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`}));let pattern2=svgEl(`pattern`,{id:patternId2,x:`6`,y:`25`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});pattern2.appendChild(svgEl(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`})),defs.appendChild(pattern1),defs.appendChild(pattern2),svg.appendChild(defs),svg.appendChild(svgEl(`path`,{d,fill:`#43434D`})),svg.appendChild(svgEl(`path`,{d,fill:`url(#${patternId1})`})),svg.appendChild(svgEl(`path`,{d,fill:`url(#${patternId2})`}))}function buildRoomTrianglePath(dimension){let{vertical,horizontal}=dimension;if(!(!vertical||vertical.length<2||!horizontal||horizontal.length<2))return`${require_formatPosition.pathD([{x:vertical[1].x,y:vertical[1].y+53},{x:vertical[1].x-60,y:vertical[1].y+124},{x:vertical[1].x+60,y:vertical[1].y+124}],{needZ:!0})} ${require_formatPosition.pathD([{x:vertical[0].x,y:vertical[0].y-53},{x:vertical[0].x-60,y:vertical[0].y-124},{x:vertical[0].x+60,y:vertical[0].y-124}],{needZ:!0})} ${require_formatPosition.pathD([{x:horizontal[0].x+53,y:horizontal[0].y},{x:horizontal[0].x+124,y:horizontal[0].y+60},{x:horizontal[0].x+124,y:horizontal[0].y-60}],{needZ:!0})} ${require_formatPosition.pathD([{x:horizontal[1].x-53,y:horizontal[1].y},{x:horizontal[1].x-124,y:horizontal[1].y+60},{x:horizontal[1].x-124,y:horizontal[1].y-60}],{needZ:!0})}`}function renderRoomMaterial(floorData,floorplanData,config){let wrapper=el(`div`,`floorplan-plugin__room-material`),{bounding}=floorplanData,boundingWidth=bounding.max.x-bounding.min.x,boundingHeight=bounding.max.y-bounding.min.y,allowShowArrow=config.roomLabelsEnable&&config.roomDimensionEnable;for(let room of floorData.rooms){let d=require_formatPosition.pathD(room.path.map(p=>require_formatPosition.formatFloorplanPoint(p,bounding)),{needZ:!0}),svg=svgEl(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${boundingWidth} ${boundingHeight}`});if(room.floorType===1?appendRoomMaterial0(svg,d):room.floorType===0?appendRoomMaterial2(svg,d):appendRoomMaterial1(svg,d),wrapper.appendChild(svg),allowShowArrow&&room.dimension){let trianglePath=buildRoomTrianglePath(room.dimension);if(trianglePath){let triangleSvg=svgEl(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${boundingWidth} ${boundingHeight}`});triangleSvg.appendChild(svgEl(`path`,{d:trianglePath,fill:`#969696`,stroke:`#969696`,"stroke-width":`1`,"fill-rule":`evenodd`})),wrapper.appendChild(triangleSvg)}}}return wrapper}function renderRoomHighlight(floorData,floorplanData,ctx){let wrapper=el(`div`,`floorplan-plugin__room-highlight`),{bounding}=floorplanData,svg=svgEl(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${bounding.max.x-bounding.min.x} ${bounding.max.y-bounding.min.y}`});for(let room of floorData.rooms){let path=svgEl(`path`,{d:require_formatPosition.pathD(room.path,{needZ:!0,format:p=>require_formatPosition.formatFloorplanPoint(p,bounding)}),id:`${ctx.floorIndex}_${room.id}`}),highlight=ctx.highlightData[`${ctx.floorIndex}_${room.id}`];highlight&&(highlight.fill&&(path.style.fill=highlight.fill),highlight.opacity!==void 0&&path.style.setProperty(`--opacity`,String(highlight.opacity)),path.style.pointerEvents=highlight.disabled?`none`:`auto`),path.addEventListener(`mouseenter`,()=>ctx.onRoomHover(room)),path.addEventListener(`mouseleave`,()=>ctx.onRoomHover(null)),svg.appendChild(path)}return wrapper.appendChild(svg),wrapper}function renderBaseImage(floorplanData,floorIndex){let wrapper=el(`div`,`floorplan-plugin__base-image`),outline=floorplanData.outlines[floorIndex];if(outline!=null&&outline.svgContent)wrapper.innerHTML=outline.svgContent;else if(outline!=null&&outline.url){let img=el(`img`);img.src=outline.url,img.alt=`floorplan image`,wrapper.appendChild(img)}return wrapper}function renderItems(floorData){var _a;let wrapper=el(`div`,`floorplan-plugin__items`);for(let item of(_a=floorData.items)==null?[]:_a){let itemEl=el(`div`,`floorplan-plugin__item`);itemEl.style.left=item.positionInImage.x*100+`%`,itemEl.style.top=item.positionInImage.y*100+`%`,itemEl.style.width=item.width*100+`%`,itemEl.style.height=item.height*100+`%`;let img=el(`img`,`floorplan-plugin__item-img`);if(img.src=item.src,img.alt=``,img.style.transform=`rotate(${item.rotateZ}deg) scaleX(${item.rotateX?-1:1}) scaleY(${item.rotateY?-1:1})`,itemEl.appendChild(img),item.notes){let notes=el(`span`,`floorplan-plugin__item-notes`);notes.textContent=item.notes,itemEl.appendChild(notes)}wrapper.appendChild(itemEl)}return wrapper}function renderRoomLabel(room,floorplanData,config,hoveredRoomId){var _a,_b;let item=el(`div`,`floorplan-plugin__room-label-item`);item.style.left=room.roomLabel.positionInImage.x*100+`%`,item.style.top=room.roomLabel.positionInImage.y*100+`%`;let isHovered=hoveredRoomId===room.id,{bounding}=floorplanData,boundingWidth=bounding.max.x-bounding.min.x;item.dataset.roomId=room.id,item.dataset.roomLabelX=String(room.roomLabel.position.x),item.dataset.roomLabelY=String(room.roomLabel.position.y),item.dataset.boundingWidth=String(boundingWidth);let userElement=(_a=config.getLabelElement)==null?void 0:_a.call(config,room);if(userElement)return item.appendChild(userElement),item;let part1=el(`div`,`floorplan-plugin__room-part1`);if(config.roomNameEnable){let name=el(`span`,`floorplan-plugin__room-name`);name.textContent=config.roomNameOtherTypeEnable?room.name:room.roomType===`100900000012`?(_b=room.customizedName)==null?room.name:_b:room.name,part1.appendChild(name)}if(config.roomAreaEnable&&room.size){let area=el(`span`,`floorplan-plugin__room-area`);area.textContent=config.getRoomAreaText(room.size),part1.appendChild(area)}if(item.appendChild(part1),config.roomDimensionEnable&&room.dimension){let size=el(`span`,`floorplan-plugin__room-size`);size.textContent=config.getRoomDimensionText(room.dimension.width,room.dimension.height),item.appendChild(size)}return isHovered&&(item.style.opacity=`1`,part1.style.opacity=`1`),item}function renderRoomLabels(floorData,floorplanData,config,hoveredRoomId){let wrapper=el(`div`,`floorplan-plugin__room-labels`);for(let room of floorData.rooms)wrapper.appendChild(renderRoomLabel(room,floorplanData,config,hoveredRoomId));return wrapper}function renderCamera(floorplanData,panoIndex,lastPanoramaLongitude,cameraImageUrl){let observer=floorplanData.observers[panoIndex];if(!observer)return;let wrapper=el(`div`,`floorplan-plugin__camera-position`);wrapper.style.left=observer.positionInImage.x*100+`%`,wrapper.style.top=observer.positionInImage.y*100+`%`;let rotate=el(`div`,`floorplan-plugin__camera-rotate`),bodyWidth=document.body.clientWidth,bodyHeight=document.body.clientHeight,domSize=`${(bodyWidth<500||bodyHeight<500?17:37)/16}rem`;return rotate.style.width=domSize,rotate.style.height=domSize,rotate.style.left=`-`+domSize,rotate.style.top=`-`+domSize,rotate.style.transform=`rotate(${-rad2Deg(lastPanoramaLongitude)+45}deg)`,rotate.style.transformOrigin=`${domSize} ${domSize}`,rotate.style.backgroundImage=`url(${cameraImageUrl||`data:image/png;base64,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`})`,wrapper.appendChild(rotate),wrapper}var RULE_PADDING=1e3,RULE_EXTERIOR_WALL_OFFSET=180;function renderRuleItem(type,segments,bounding,getRuleDistanceText){let isRow=type===`top`||type===`bottom`,contentWidth=bounding.max.x-bounding.min.x-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,contentHeight=bounding.max.y-bounding.min.y-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,rulerPoints=segments.map(([start,end])=>isRow?[start.x,end.x]:[start.y,end.y]).flat().sort((a,b)=>a-b).filter((x,index,arr)=>index===0||x!==arr[index-1]),rulerLabels=rulerPoints.map(num=>({left:isRow?(num-bounding.min.x-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentWidth:0,bottom:isRow?0:(num-bounding.min.y-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentHeight}));rulerLabels.unshift({left:0,bottom:0}),rulerLabels.push(isRow?{left:1,bottom:0}:{left:0,bottom:1});let length=rulerPoints.length?rulerPoints[rulerPoints.length-1]-rulerPoints[0]:0,rulerTexts=rulerPoints.map((num,index,arr)=>{let distance=index===0?0:num-arr[index-1],positionNum=index===0?0:(num+arr[index-1])/2;return{left:isRow?(positionNum-bounding.min.x-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentWidth:0,bottom:isRow?0:(positionNum-bounding.min.y-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentHeight,distance}}).filter(({distance})=>length?distance/length>.1:!1),wrapper=el(`div`,`floorplan-plugin__rule-labels floorplan-plugin__rule-labels--${type}${isRow?` is-row`:``}`);wrapper.style.width=isRow?`100%`:`0.0625rem`,wrapper.style.height=isRow?`0.0625rem`:`100%`,wrapper.appendChild(el(`div`,`floorplan-plugin__rule-line`));let scaleWrapper=el(`div`,`floorplan-plugin__rule-scale-wrapper${isRow?` is-row`:``}`);for(let{left,bottom}of rulerLabels){let scale=el(`div`,`floorplan-plugin__rule-scale`);scale.style.left=left*100+`%`,scale.style.bottom=bottom*100+`%`,scaleWrapper.appendChild(scale)}wrapper.appendChild(scaleWrapper);let textWrapper=el(`div`,`floorplan-plugin__rule-text-wrapper`);for(let{left,bottom,distance}of rulerTexts){let textItem=el(`div`,`floorplan-plugin__rule-text-item`);textItem.style.left=left*100+`%`,textItem.style.bottom=bottom*100+`%`;let text=el(`div`,`floorplan-plugin__rule-text${isRow?` is-row`:``}`);text.textContent=getRuleDistanceText(distance),textItem.appendChild(text),textWrapper.appendChild(textItem)}return wrapper.appendChild(textWrapper),wrapper}function renderRuleLabels(floorData,floorplanData,config){let bounding=floorplanData.bounding,boundingWidth=bounding.max.x-bounding.min.x,boundingHeight=bounding.max.y-bounding.min.y,contentWidth=boundingWidth-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,contentHeight=boundingHeight-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,wrapper=el(`div`,`floorplan-plugin__rule-labels-wrapper`);wrapper.style.width=contentWidth/boundingWidth*100+`%`,wrapper.style.height=contentHeight/boundingHeight*100+`%`;let rules=floorData.rules;for(let key of[`top`,`right`,`bottom`,`left`]){let segments=rules[key];!segments||segments.length===0||wrapper.appendChild(renderRuleItem(key,segments,bounding,config.getRuleDistanceText))}return wrapper}function renderCompass(floorplanData,northDesc){var _a;let northRad=(_a=floorplanData.entrance)==null?void 0:_a.northRad;if(typeof northRad!=`number`)return;let wrapper=el(`div`,`floorplan-plugin__compass`),rotate=rad2Deg(northRad);wrapper.style.transform=`translateX(-50%) translateZ(10px) rotate(${-rotate+90}deg)`;let image=el(`div`,`floorplan-plugin__compass-image`);image.style.backgroundImage=`url(${require_assets.COMPASS_IMAGE})`,wrapper.appendChild(image);let text=el(`span`,`floorplan-plugin__compass-text`);return text.textContent=northDesc,wrapper.appendChild(text),wrapper}function renderFloor(ctx){var _a,_b;let{floorplanData,floorIndex,config}=ctx,floorData=floorplanData.floorDatas[floorIndex],floorEl=el(`div`,`floorplan-plugin__floor`);if(!(floorData.rooms.length>0||floorData.is_has_wall))return floorEl.appendChild(renderMissingFloor(config)),floorEl;if(floorEl.appendChild(renderRoomMaterial(floorData,floorplanData,config)),(config.highlightEnable||config.hoverEnable)&&floorEl.appendChild(renderRoomHighlight(floorData,floorplanData,ctx)),floorEl.appendChild(renderBaseImage(floorplanData,floorIndex)),floorEl.appendChild(renderItems(floorData)),config.roomLabelsEnable&&floorEl.appendChild(renderRoomLabels(floorData,floorplanData,config,(_b=(_a=ctx.store.roomOnMouse)==null?void 0:_a.id)==null?null:_b)),config.ruleLabelsEnable&&floorEl.appendChild(renderRuleLabels(floorData,floorplanData,config)),config.cameraEnable){let camera=renderCamera(floorplanData,ctx.panoIndex,ctx.lastPanoramaLongitude,config.cameraImageUrl);camera&&floorEl.appendChild(camera)}if(config.compassEnable){let compass=renderCompass(floorplanData,config.northDesc);compass&&floorEl.appendChild(compass)}return floorEl}function updateRoomLabelsVisibility(floorEl,floorplanData,floorIndex,adaptiveEnable){let labelsWrapper=floorEl.querySelector(`.floorplan-plugin__room-labels`);if(!labelsWrapper)return;let clientWidth=labelsWrapper.clientWidth;if(!clientWidth)return;let floorData=floorplanData.floorDatas[floorIndex],roomsById=new Map(floorData.rooms.map(room=>[room.id,room])),{max,min}=floorplanData.bounding,pxmm=clientWidth/(max.x-min.x);labelsWrapper.querySelectorAll(`.floorplan-plugin__room-label-item`).forEach(item=>{if(!adaptiveEnable){item.style.opacity=`1`;return}let roomId=item.dataset.roomId,room=roomId?roomsById.get(roomId):void 0;if(!room)return;let part1=item.querySelector(`.floorplan-plugin__room-part1`),sizeEl=item.querySelector(`.floorplan-plugin__room-size`),wrapperVisible=require_roomLabelVisibility.isLabelInRoom(room,{width:item.clientWidth,height:item.clientHeight},pxmm),mainVisible=part1?require_roomLabelVisibility.isLabelInRoom(room,{width:part1.clientWidth,height:part1.clientHeight},pxmm):wrapperVisible;item.style.opacity=wrapperVisible||mainVisible?`1`:`0`,part1&&(part1.style.opacity=mainVisible?`1`:`0`),sizeEl&&(sizeEl.style.opacity=wrapperVisible?`0.6`:`0`)})}exports.renderFloor=renderFloor,exports.updateRoomLabelsVisibility=updateRoomLabelsVisibility;
|