@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
|
-
*/import{formatFloorplanPoint as e,pathD as t}from"../utils/formatPosition.mjs";import{isLabelInRoom as n}from"./roomLabelVisibility.mjs";import{COMPASS_IMAGE as r}from"./assets.mjs";var i=e=>e*180/Math.PI;function a(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function o(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 s(e){let t=a(`div`,`floorplan-plugin__missing-floor`),{imageURL:n,imageWidth:r=200,imageHeight:i=120,text:o,textFontSize:s=14}=e.missingFloorConfig;if(n){let e=a(`img`);e.src=n,e.alt=`缺省楼层展位图`,e.style.width=r+`px`,e.style.height=i+`px`,e.style.maxWidth=`none`,t.appendChild(e)}if(o){let e=a(`span`,`floorplan-plugin__missing-floor-text`);e.style.fontSize=s+`px`,e.textContent=o,t.appendChild(e)}return t}var c=0;function l(e,t){e.appendChild(o(`path`,{d:t,fill:`#2F313A`}))}function u(e,t){let n=`fpm-room-pattern-tile-${c++}`,r=o(`defs`),i=o(`pattern`,{id:n,x:`0`,y:`0`,width:`12`,height:`12`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});i.appendChild(o(`rect`,{x:`0`,y:`0`,width:`12`,height:`12`,fill:`#323747`})),i.appendChild(o(`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(o(`path`,{d:t,fill:`url(#${n})`}))}function d(e,t){let n=`fpm-room-pattern-wood-1-${c++}`,r=`fpm-room-pattern-wood-2-${c++}`,i=o(`defs`),a=o(`pattern`,{id:n,x:`0`,y:`0`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});a.appendChild(o(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`}));let s=o(`pattern`,{id:r,x:`6`,y:`25`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});s.appendChild(o(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`})),i.appendChild(a),i.appendChild(s),e.appendChild(i),e.appendChild(o(`path`,{d:t,fill:`#43434D`})),e.appendChild(o(`path`,{d:t,fill:`url(#${n})`})),e.appendChild(o(`path`,{d:t,fill:`url(#${r})`}))}function f(e){let{vertical:n,horizontal:r}=e;if(!(!n||n.length<2||!r||r.length<2))return`${t([{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})} ${t([{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})} ${t([{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})} ${t([{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 p(n,r,i){let s=a(`div`,`floorplan-plugin__room-material`),{bounding:c}=r,p=c.max.x-c.min.x,m=c.max.y-c.min.y,h=i.roomLabelsEnable&&i.roomDimensionEnable;for(let r of n.rooms){let n=t(r.path.map(t=>e(t,c)),{needZ:!0}),i=o(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${p} ${m}`});if(r.floorType===1?l(i,n):r.floorType===0?d(i,n):u(i,n),s.appendChild(i),h&&r.dimension){let e=f(r.dimension);if(e){let t=o(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${p} ${m}`});t.appendChild(o(`path`,{d:e,fill:`#969696`,stroke:`#969696`,"stroke-width":`1`,"fill-rule":`evenodd`})),s.appendChild(t)}}}return s}function m(n,r,i){let s=a(`div`,`floorplan-plugin__room-highlight`),{bounding:c}=r,l=o(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${c.max.x-c.min.x} ${c.max.y-c.min.y}`});for(let r of n.rooms){let n=o(`path`,{d:t(r.path,{needZ:!0,format:t=>e(t,c)}),id:`${i.floorIndex}_${r.id}`}),a=i.highlightData[`${i.floorIndex}_${r.id}`];a&&(a.fill&&(n.style.fill=a.fill),a.opacity!==void 0&&n.style.setProperty(`--opacity`,String(a.opacity)),n.style.pointerEvents=a.disabled?`none`:`auto`),n.addEventListener(`mouseenter`,()=>i.onRoomHover(r)),n.addEventListener(`mouseleave`,()=>i.onRoomHover(null)),l.appendChild(n)}return s.appendChild(l),s}function h(e,t){let n=a(`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=a(`img`);e.src=r.url,e.alt=`floorplan image`,n.appendChild(e)}return n}function g(e){var t;let n=a(`div`,`floorplan-plugin__items`);for(let r of(t=e.items)==null?[]:t){let e=a(`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=a(`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=a(`span`,`floorplan-plugin__item-notes`);t.textContent=r.notes,e.appendChild(t)}n.appendChild(e)}return n}function _(e,t,n,r){var i,o;let s=a(`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=(i=n.getLabelElement)==null?void 0:i.call(n,e);if(d)return s.appendChild(d),s;let f=a(`div`,`floorplan-plugin__room-part1`);if(n.roomNameEnable){let t=a(`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=a(`span`,`floorplan-plugin__room-area`);t.textContent=n.getRoomAreaText(e.size),f.appendChild(t)}if(s.appendChild(f),n.roomDimensionEnable&&e.dimension){let t=a(`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 v(e,t,n,r){let i=a(`div`,`floorplan-plugin__room-labels`);for(let a of e.rooms)i.appendChild(_(a,t,n,r));return i}function y(e,t,n,r){let o=e.observers[t];if(!o)return;let s=a(`div`,`floorplan-plugin__camera-position`);s.style.left=o.positionInImage.x*100+`%`,s.style.top=o.positionInImage.y*100+`%`;let c=a(`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(${-i(n)+45}deg)`,c.style.transformOrigin=`${d} ${d}`,c.style.backgroundImage=`url(${r||`data:image/png;base64,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`})`,s.appendChild(c),s}var b=1e3,x=180;function S(e,t,n,r){let i=e===`top`||e===`bottom`,o=n.max.x-n.min.x-(b-x)*2,s=n.max.y-n.min.y-(b-x)*2,c=t.map(([e,t])=>i?[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:i?(e-n.min.x-b+x)/o:0,bottom:i?0:(e-n.min.y-b+x)/s}));l.unshift({left:0,bottom:0}),l.push(i?{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 a=t===0?0:e-r[t-1],c=t===0?0:(e+r[t-1])/2;return{left:i?(c-n.min.x-b+x)/o:0,bottom:i?0:(c-n.min.y-b+x)/s,distance:a}}).filter(({distance:e})=>u?e/u>.1:!1),f=a(`div`,`floorplan-plugin__rule-labels floorplan-plugin__rule-labels--${e}${i?` is-row`:``}`);f.style.width=i?`100%`:`0.0625rem`,f.style.height=i?`0.0625rem`:`100%`,f.appendChild(a(`div`,`floorplan-plugin__rule-line`));let p=a(`div`,`floorplan-plugin__rule-scale-wrapper${i?` is-row`:``}`);for(let{left:e,bottom:t}of l){let n=a(`div`,`floorplan-plugin__rule-scale`);n.style.left=e*100+`%`,n.style.bottom=t*100+`%`,p.appendChild(n)}f.appendChild(p);let m=a(`div`,`floorplan-plugin__rule-text-wrapper`);for(let{left:e,bottom:t,distance:n}of d){let o=a(`div`,`floorplan-plugin__rule-text-item`);o.style.left=e*100+`%`,o.style.bottom=t*100+`%`;let s=a(`div`,`floorplan-plugin__rule-text${i?` is-row`:``}`);s.textContent=r(n),o.appendChild(s),m.appendChild(o)}return f.appendChild(m),f}function C(e,t,n){let r=t.bounding,i=r.max.x-r.min.x,o=r.max.y-r.min.y,s=i-(b-x)*2,c=o-(b-x)*2,l=a(`div`,`floorplan-plugin__rule-labels-wrapper`);l.style.width=s/i*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(S(e,t,r,n.getRuleDistanceText))}return l}function w(e,t){var n;let o=(n=e.entrance)==null?void 0:n.northRad;if(typeof o!=`number`)return;let s=a(`div`,`floorplan-plugin__compass`),c=i(o);s.style.transform=`translateX(-50%) translateZ(10px) rotate(${-c+90}deg)`;let l=a(`div`,`floorplan-plugin__compass-image`);l.style.backgroundImage=`url(${r})`,s.appendChild(l);let u=a(`span`,`floorplan-plugin__compass-text`);return u.textContent=t,s.appendChild(u),s}function T(e){var t,n;let{floorplanData:r,floorIndex:i,config:o}=e,c=r.floorDatas[i],l=a(`div`,`floorplan-plugin__floor`);if(!(c.rooms.length>0||c.is_has_wall))return l.appendChild(s(o)),l;if(l.appendChild(p(c,r,o)),(o.highlightEnable||o.hoverEnable)&&l.appendChild(m(c,r,e)),l.appendChild(h(r,i)),l.appendChild(g(c)),o.roomLabelsEnable&&l.appendChild(v(c,r,o,(n=(t=e.store.roomOnMouse)==null?void 0:t.id)==null?null:n)),o.ruleLabelsEnable&&l.appendChild(C(c,r,o)),o.cameraEnable){let t=y(r,e.panoIndex,e.lastPanoramaLongitude,o.cameraImageUrl);t&&l.appendChild(t)}if(o.compassEnable){let e=w(r,o.northDesc);e&&l.appendChild(e)}return l}function E(e,t,r,i){let a=e.querySelector(`.floorplan-plugin__room-labels`);if(!a)return;let o=a.clientWidth;if(!o)return;let s=t.floorDatas[r],c=new Map(s.rooms.map(e=>[e.id,e])),{max:l,min:u}=t.bounding,d=o/(l.x-u.x);a.querySelectorAll(`.floorplan-plugin__room-label-item`).forEach(e=>{if(!i){e.style.opacity=`1`;return}let t=e.dataset.roomId,r=t?c.get(t):void 0;if(!r)return;let a=e.querySelector(`.floorplan-plugin__room-part1`),o=e.querySelector(`.floorplan-plugin__room-size`),s=n(r,{width:e.clientWidth,height:e.clientHeight},d),l=a?n(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`)})}export{T as renderFloor,E as updateRoomLabelsVisibility};
|
|
338
|
+
*/import{formatFloorplanPoint,pathD}from"../utils/formatPosition.mjs";import{isLabelInRoom}from"./roomLabelVisibility.mjs";import{COMPASS_IMAGE}from"./assets.mjs";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`${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})} ${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})} ${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})} ${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=pathD(room.path.map(p=>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:pathD(room.path,{needZ:!0,format:p=>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(${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=isLabelInRoom(room,{width:item.clientWidth,height:item.clientHeight},pxmm),mainVisible=part1?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`)})}export{renderFloor,updateRoomLabelsVisibility};
|
|
@@ -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_isPointInPolygon=require("./isPointInPolygon.js");function isLabelInRoom(room,labelSize,pxmm){if(labelSize.width===0||labelSize.height===0)return!1;let polygon=room.path.map(({x,y})=>[x,y]),{x,y}=room.roomLabel.position,halfWidth=labelSize.width/2,halfHeight=labelSize.height/2,clientX=x*pxmm,clientY=y*pxmm,clientPolygon=polygon.map(([px,py])=>[px*pxmm,py*pxmm]);return[[clientX+halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY+halfHeight],[clientX+halfWidth,clientY+halfHeight]].every(point=>require_isPointInPolygon.isPointInPolygon(point,clientPolygon))}exports.isLabelInRoom=isLabelInRoom;
|
|
@@ -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{isPointInPolygon
|
|
338
|
+
*/import{isPointInPolygon}from"./isPointInPolygon.mjs";function isLabelInRoom(room,labelSize,pxmm){if(labelSize.width===0||labelSize.height===0)return!1;let polygon=room.path.map(({x,y})=>[x,y]),{x,y}=room.roomLabel.position,halfWidth=labelSize.width/2,halfHeight=labelSize.height/2,clientX=x*pxmm,clientY=y*pxmm,clientPolygon=polygon.map(([px,py])=>[px*pxmm,py*pxmm]);return[[clientX+halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY+halfHeight],[clientX+halfWidth,clientY+halfHeight]].every(point=>isPointInPolygon(point,clientPolygon))}export{isLabelInRoom};
|
|
@@ -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,7 +335,7 @@
|
|
|
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
|
|
338
|
+
*/var style_default=`.floorplan-plugin__main {
|
|
339
339
|
position: absolute;
|
|
340
340
|
pointer-events: none;
|
|
341
341
|
opacity: 0;
|
|
@@ -665,4 +665,4 @@
|
|
|
665
665
|
font-size: 10px;
|
|
666
666
|
color: #fff;
|
|
667
667
|
}
|
|
668
|
-
`;exports.default=
|
|
668
|
+
`;exports.default=style_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,7 +335,7 @@
|
|
|
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
|
|
338
|
+
*/var style_default=`.floorplan-plugin__main {
|
|
339
339
|
position: absolute;
|
|
340
340
|
pointer-events: none;
|
|
341
341
|
opacity: 0;
|
|
@@ -665,4 +665,4 @@
|
|
|
665
665
|
font-size: 10px;
|
|
666
666
|
color: #fff;
|
|
667
667
|
}
|
|
668
|
-
`;export{
|
|
668
|
+
`;export{style_default as 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
|
-
*/const
|
|
338
|
+
*/const require_nearlyEqual=require("./nearlyEqual.js"),require_to=require("./to.js");let tslib=require("tslib");function isVector3(value){return Object.prototype.toString.call(value)===`[object Object]`&&!!value.isVector3}function checkPose(targetPose,fivePose){return Object.keys(targetPose).every(key=>{let fiveItem=fivePose[key],targetItem=targetPose[key];return fiveItem===void 0||targetItem===void 0?!0:key===`longitude`||key===`latitude`?require_nearlyEqual.nearlyEqualRad(fiveItem,targetItem,2):typeof fiveItem==`number`&&typeof targetItem==`number`?require_nearlyEqual.nearlyEqual(fiveItem,targetItem,2):isVector3(targetItem)&&isVector3(fiveItem)?targetItem.distanceTo(fiveItem)<.01:fiveItem===targetItem})}function changeMode(five,changeModeParams){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){let[changeModeError]=yield require_to.default(five.changeMode(...changeModeParams));if(changeModeError)throw Error(`change mode canceled`);yield new Promise(resolve=>{five.once(`initAnimationWillStart`,()=>{five.once(`initAnimationEnded`,()=>resolve())})});let targetPose=changeModeParams[1];if(targetPose&&!checkPose(targetPose,five.getCurrentState()))throw Error(`pose 与预期不符`)})}exports.changeMode=changeMode;
|
|
@@ -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{nearlyEqual
|
|
338
|
+
*/import{nearlyEqual,nearlyEqualRad}from"./nearlyEqual.mjs";import to from"./to.mjs";import{__awaiter}from"tslib";function isVector3(value){return Object.prototype.toString.call(value)===`[object Object]`&&!!value.isVector3}function checkPose(targetPose,fivePose){return Object.keys(targetPose).every(key=>{let fiveItem=fivePose[key],targetItem=targetPose[key];return fiveItem===void 0||targetItem===void 0?!0:key===`longitude`||key===`latitude`?nearlyEqualRad(fiveItem,targetItem,2):typeof fiveItem==`number`&&typeof targetItem==`number`?nearlyEqual(fiveItem,targetItem,2):isVector3(targetItem)&&isVector3(fiveItem)?targetItem.distanceTo(fiveItem)<.01:fiveItem===targetItem})}function changeMode(five,changeModeParams){return __awaiter(this,void 0,void 0,function*(){let[changeModeError]=yield to(five.changeMode(...changeModeParams));if(changeModeError)throw Error(`change mode canceled`);yield new Promise(resolve=>{five.once(`initAnimationWillStart`,()=>{five.once(`initAnimationEnded`,()=>resolve())})});let targetPose=changeModeParams[1];if(targetPose&&!checkPose(targetPose,five.getCurrentState()))throw Error(`pose 与预期不符`)})}export{changeMode};
|
|
@@ -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 changeModelCanvasOpacity(five,opacity,duration=300){let fiveEle=five.getElement();if(!fiveEle)return;fiveEle.style.opacity=opacity+``;let parent=fiveEle.parentElement;if(parent)for(let i=0;i<parent.children.length;i++){let child=parent.children[i];child instanceof HTMLElement&&child.dataset.infive===`1`&&(child.style.opacity=opacity+``)}fiveEle.style.transition=duration===0?`none`:`opacity ${duration}ms linear`,duration!==0&&Promise.race([new Promise(res=>fiveEle.addEventListener(`transitionend`,()=>res(),{once:!0})),new Promise(res=>setTimeout(res,duration))]).then(()=>{fiveEle.style.transition=`none`})}exports.changeModelCanvasOpacity=changeModelCanvasOpacity;
|
|
@@ -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 changeModelCanvasOpacity(five,opacity,duration=300){let fiveEle=five.getElement();if(!fiveEle)return;fiveEle.style.opacity=opacity+``;let parent=fiveEle.parentElement;if(parent)for(let i=0;i<parent.children.length;i++){let child=parent.children[i];child instanceof HTMLElement&&child.dataset.infive===`1`&&(child.style.opacity=opacity+``)}fiveEle.style.transition=duration===0?`none`:`opacity ${duration}ms linear`,duration!==0&&Promise.race([new Promise(res=>fiveEle.addEventListener(`transitionend`,()=>res(),{once:!0})),new Promise(res=>setTimeout(res,duration))]).then(()=>{fiveEle.style.transition=`none`})}export{changeModelCanvasOpacity};
|
|
@@ -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_nearlyEqual=require("./nearlyEqual.js"),require_to=require("./to.js"),require_changeMode=require("./changeMode.js"),require_getDistanceFromModel=require("./getDistanceFromModel.js"),require_filter=require("./filter.js");let tslib=require("tslib");function checkShowState(five,showState){if(five.currentMode!==showState.mode)return!1;let currentState=five.getCurrentState(),fov=five.camera.fov;return!(!require_nearlyEqual.nearlyEqual(currentState.latitude,showState.latitude,2)||!require_nearlyEqual.nearlyEqual(currentState.longitude,showState.longitude,2)||showState.fov!==void 0&&!require_nearlyEqual.nearlyEqual(fov,showState.fov,2)||showState.offset&¤tState.offset.distanceTo(showState.offset)>.01)}function correctFiveState(five_1,showState_1){return(0,tslib.__awaiter)(this,arguments,void 0,function*(five,showState,userAction=!0){var _a;if(checkShowState(five,showState))return;let currentFiveState=five.getCurrentState();if(five.currentMode!==showState.mode){let innerModel=five.models.find(m=>m.name===five.state.workCode),effectiveFov=typeof showState.fov==`number`?showState.fov:80;innerModel&&(showState.distance=require_getDistanceFromModel.getDistanceFromModel(five,effectiveFov,five.camera.aspect));let[changeModeError]=yield require_to.default(require_changeMode.changeMode(five,[showState.mode,showState,void 0,userAction]));if(changeModeError)throw changeModeError;return}let{latitude,longitude,fov}=currentFiveState,targetFov=(_a=showState.fov)==null?fov:_a,time=Math.min(1e3,Math.max(200,Math.abs(latitude-Math.PI/2)*1e3,(longitude>Math.PI?Math.PI*2-longitude:longitude)*500,Number.isFinite(targetFov)?Math.abs(fov-targetFov)*10:1/0)),[updateCameraError]=yield require_to.default(five.updateCamera(require_filter.omit(showState,[`mode`]),time,userAction));if(updateCameraError)throw Error(`UpdateCameraError`)})}exports.correctFiveState=correctFiveState;
|
|
@@ -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{nearlyEqual
|
|
338
|
+
*/import{nearlyEqual}from"./nearlyEqual.mjs";import to from"./to.mjs";import{changeMode}from"./changeMode.mjs";import{getDistanceFromModel}from"./getDistanceFromModel.mjs";import{omit}from"./filter.mjs";import{__awaiter}from"tslib";function checkShowState(five,showState){if(five.currentMode!==showState.mode)return!1;let currentState=five.getCurrentState(),fov=five.camera.fov;return!(!nearlyEqual(currentState.latitude,showState.latitude,2)||!nearlyEqual(currentState.longitude,showState.longitude,2)||showState.fov!==void 0&&!nearlyEqual(fov,showState.fov,2)||showState.offset&¤tState.offset.distanceTo(showState.offset)>.01)}function correctFiveState(five_1,showState_1){return __awaiter(this,arguments,void 0,function*(five,showState,userAction=!0){var _a;if(checkShowState(five,showState))return;let currentFiveState=five.getCurrentState();if(five.currentMode!==showState.mode){let innerModel=five.models.find(m=>m.name===five.state.workCode),effectiveFov=typeof showState.fov==`number`?showState.fov:80;innerModel&&(showState.distance=getDistanceFromModel(five,effectiveFov,five.camera.aspect));let[changeModeError]=yield to(changeMode(five,[showState.mode,showState,void 0,userAction]));if(changeModeError)throw changeModeError;return}let{latitude,longitude,fov}=currentFiveState,targetFov=(_a=showState.fov)==null?fov:_a,time=Math.min(1e3,Math.max(200,Math.abs(latitude-Math.PI/2)*1e3,(longitude>Math.PI?Math.PI*2-longitude:longitude)*500,Number.isFinite(targetFov)?Math.abs(fov-targetFov)*10:1/0)),[updateCameraError]=yield to(five.updateCamera(omit(showState,[`mode`]),time,userAction));if(updateCameraError)throw Error(`UpdateCameraError`)})}export{correctFiveState};
|
|
@@ -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_isTruelyObject=require("./isTruelyObject.js");function baseIsEqual(value,other){return!!(value===other||typeof value==`number`&&typeof other==`number`&&Number.isNaN(value)&&Number.isNaN(other))}function objEqualShallow(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>baseIsEqual(value[key],other[key])):!1}function objEqualDeep(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>isDeepEqual(value[key],other[key])):!1}function arrayEqualShallow(value,other){return value.length===other.length?value.every((item,index)=>baseIsEqual(item,other[index])):!1}function arrayEqualDeep(value,other){return value.length===other.length?value.every((item,index)=>isDeepEqual(item,other[index])):!1}function isShallowEqual(value,other){return baseIsEqual(value,other)?!0:require_isTruelyObject.isTruelyObject(value)&&require_isTruelyObject.isTruelyObject(other)?objEqualShallow(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualShallow(value,other):!1}function isDeepEqual(value,other){return baseIsEqual(value,other)?!0:require_isTruelyObject.isTruelyObject(value)&&require_isTruelyObject.isTruelyObject(other)?objEqualDeep(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualDeep(value,other):!1}function equal(value,other,opt={deep:!1}){return opt.deep?isDeepEqual(value,other):isShallowEqual(value,other)}exports.equal=equal,exports.isDeepEqual=isDeepEqual,exports.isShallowEqual=isShallowEqual;
|
|
@@ -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{isTruelyObject
|
|
338
|
+
*/import{isTruelyObject}from"./isTruelyObject.mjs";function baseIsEqual(value,other){return!!(value===other||typeof value==`number`&&typeof other==`number`&&Number.isNaN(value)&&Number.isNaN(other))}function objEqualShallow(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>baseIsEqual(value[key],other[key])):!1}function objEqualDeep(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>isDeepEqual(value[key],other[key])):!1}function arrayEqualShallow(value,other){return value.length===other.length?value.every((item,index)=>baseIsEqual(item,other[index])):!1}function arrayEqualDeep(value,other){return value.length===other.length?value.every((item,index)=>isDeepEqual(item,other[index])):!1}function isShallowEqual(value,other){return baseIsEqual(value,other)?!0:isTruelyObject(value)&&isTruelyObject(other)?objEqualShallow(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualShallow(value,other):!1}function isDeepEqual(value,other){return baseIsEqual(value,other)?!0:isTruelyObject(value)&&isTruelyObject(other)?objEqualDeep(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualDeep(value,other):!1}function equal(value,other,opt={deep:!1}){return opt.deep?isDeepEqual(value,other):isShallowEqual(value,other)}export{equal,isDeepEqual,isShallowEqual};
|
|
@@ -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 omit(object,props){let result=Object.assign({},object);for(let prop of props)delete result[prop];return result}exports.omit=omit;
|
|
@@ -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 omit(object,props){let result=Object.assign({},object);for(let prop of props)delete result[prop];return result}export{omit};
|
|
@@ -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
|
-
*/let
|
|
338
|
+
*/let tslib=require("tslib");function getFiveModel(five){var _a;return((_a=five.models)==null?void 0:_a.filter(m=>m.name===five.state.workCode)[0])||five.model}function fiveModelIsLoaded(five){var _a;return!!((_a=getFiveModel(five))!=null&&_a.loaded)}function waitFiveModelLoaded(five){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){return new Promise(resolve=>{if(fiveModelIsLoaded(five)){resolve();return}let handleModelLoaded=model=>{model===getFiveModel(five)&&(five.off(`modelLoaded`,handleModelLoaded),resolve())};five.on(`modelLoaded`,handleModelLoaded)})})}exports.fiveModelIsLoaded=fiveModelIsLoaded,exports.getFiveModel=getFiveModel,exports.waitFiveModelLoaded=waitFiveModelLoaded;
|
|
@@ -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{__awaiter
|
|
338
|
+
*/import{__awaiter}from"tslib";function getFiveModel(five){var _a;return((_a=five.models)==null?void 0:_a.filter(m=>m.name===five.state.workCode)[0])||five.model}function fiveModelIsLoaded(five){var _a;return!!((_a=getFiveModel(five))!=null&&_a.loaded)}function waitFiveModelLoaded(five){return __awaiter(this,void 0,void 0,function*(){return new Promise(resolve=>{if(fiveModelIsLoaded(five)){resolve();return}let handleModelLoaded=model=>{model===getFiveModel(five)&&(five.off(`modelLoaded`,handleModelLoaded),resolve())};five.on(`modelLoaded`,handleModelLoaded)})})}export{fiveModelIsLoaded,getFiveModel,waitFiveModelLoaded};
|
|
@@ -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
|
-
*/let
|
|
338
|
+
*/let tslib=require("tslib");function formatOutlines(outlines){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){return Promise.all(outlines.map(outline=>(0,tslib.__awaiter)(this,void 0,void 0,function*(){if(!outline.svg_url)return{url:outline.url,index:outline.index};let svgContent=yield fetch(outline.svg_url).then(res=>res.text()).catch(()=>void 0);return{url:outline.url,index:outline.index,svgUrl:outline.svg_url,svgContent}})))})}function formatRoom(data){let{room_type,floor_type,room_label,observer_indexs,customized_name,dimension}=data,rest=(0,tslib.__rest)(data,[`room_type`,`floor_type`,`room_label`,`observer_indexs`,`customized_name`,`dimension`]);return Object.assign(Object.assign({},rest),{roomType:room_type,floorType:floor_type,roomLabel:{position:room_label.position,positionInImage:room_label.position_in_image},observerIndexs:observer_indexs,customizedName:customized_name,dimension:dimension?{width:dimension.width,height:dimension.height,vertical:dimension.vertical,horizontal:dimension.horizontal}:void 0})}function formatFloorData(data){let{floor_name,floor_index,rooms}=data,rest=(0,tslib.__rest)(data,[`floor_name`,`floor_index`,`rooms`]);return Object.assign(Object.assign({},rest),{floorName:floor_name,floorIndex:floor_index,rooms:rooms.map(formatRoom)})}function formateFloorplanObserver(data){return{floorIndex:data.floor_index,positionInImage:data.position_in_image}}function formatFloorplanEntrance(data){return{positionInImage:data.position_in_image,northRad:data.north_rad,roomId:data.room_id,floorIndex:data.floor_index}}function formatData(data){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){var _a,_b;let{computed_data}=data;return{outlines:yield formatOutlines((_a=data.outlines)==null?[]:_a),bounding:computed_data.bounding,floorDatas:computed_data.floor_datas.map(formatFloorData),entrance:computed_data.entrance?formatFloorplanEntrance(computed_data.entrance):null,observers:((_b=computed_data.observers)==null?[]:_b).map(formateFloorplanObserver)}})}exports.default=formatData,exports.formatData=formatData;
|
|
@@ -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{__awaiter
|
|
338
|
+
*/import{__awaiter,__rest}from"tslib";function formatOutlines(outlines){return __awaiter(this,void 0,void 0,function*(){return Promise.all(outlines.map(outline=>__awaiter(this,void 0,void 0,function*(){if(!outline.svg_url)return{url:outline.url,index:outline.index};let svgContent=yield fetch(outline.svg_url).then(res=>res.text()).catch(()=>void 0);return{url:outline.url,index:outline.index,svgUrl:outline.svg_url,svgContent}})))})}function formatRoom(data){let{room_type,floor_type,room_label,observer_indexs,customized_name,dimension}=data,rest=__rest(data,[`room_type`,`floor_type`,`room_label`,`observer_indexs`,`customized_name`,`dimension`]);return Object.assign(Object.assign({},rest),{roomType:room_type,floorType:floor_type,roomLabel:{position:room_label.position,positionInImage:room_label.position_in_image},observerIndexs:observer_indexs,customizedName:customized_name,dimension:dimension?{width:dimension.width,height:dimension.height,vertical:dimension.vertical,horizontal:dimension.horizontal}:void 0})}function formatFloorData(data){let{floor_name,floor_index,rooms}=data,rest=__rest(data,[`floor_name`,`floor_index`,`rooms`]);return Object.assign(Object.assign({},rest),{floorName:floor_name,floorIndex:floor_index,rooms:rooms.map(formatRoom)})}function formateFloorplanObserver(data){return{floorIndex:data.floor_index,positionInImage:data.position_in_image}}function formatFloorplanEntrance(data){return{positionInImage:data.position_in_image,northRad:data.north_rad,roomId:data.room_id,floorIndex:data.floor_index}}function formatData(data){return __awaiter(this,void 0,void 0,function*(){var _a,_b;let{computed_data}=data;return{outlines:yield formatOutlines((_a=data.outlines)==null?[]:_a),bounding:computed_data.bounding,floorDatas:computed_data.floor_datas.map(formatFloorData),entrance:computed_data.entrance?formatFloorplanEntrance(computed_data.entrance):null,observers:((_b=computed_data.observers)==null?[]:_b).map(formateFloorplanObserver)}})}export{formatData as default,formatData};
|
|
@@ -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_distance=require("../../../five/utils/distance.js"),require_doctorstrange_model=require("../../thirdParty/doctorstrange-model.js"),require_polylabel=require("./polylabel.js");var MIN_RULE_LENGTH=500;function formatFloorplanJson(floorplanJson,options={}){let{observers=[],locate=`zh-CN`,outlines=[]}=options;if(!floorplanJson||floorplanJson.floorplans.length===0)return null;let canvasArray=floorplanJson.floorplans.map(floorplan=>{let canvas=new require_doctorstrange_model.Canvas;return canvas.load(floorplan),canvas}),bounding=getBounding(canvasArray,floorplanJson.vrData),toImagePosition=point=>floorplanPosition2ImagePosition(point,bounding);return{outlines,computed_data:{floor_datas:getFloorDatas(canvasArray,floorplanJson,observers,bounding,locate),bounding,entrance:getEntrance(canvasArray,toImagePosition),observers:getObservers(canvasArray,floorplanJson.vrData,observers,toImagePosition)}}}function getFloorDatas(canvasArray,floorplanJson,observers,bounding,locate){return canvasArray.map((canvas,floorIndex)=>{let rooms=canvas.areas.map(area=>{let path=getCompleteRoomPoints(canvas,area),position=getCenterPointOfPath(path),room_label={position,position_in_image:floorplanPosition2ImagePosition(position,bounding)};return{id:area.id,size:canvas.info.ruleType===1?area.size(!1):area.size(),name:area.labelName(locate),customized_name:area.customizedName||void 0,path,room_type:area.roomType(),floor_type:area.floorType(),room_label,observer_indexs:[],dimension:getDimensionOfArea(area,position)}}),areas=canvas.areas,lastAreaIndex=0;return observers.filter(observer=>observer.floor_index===floorIndex).forEach(observer=>{let point=observerWorldPoint(observer,floorplanJson.vrData),findIndex=-1;for(let i=lastAreaIndex;i<areas.length&&findIndex===-1;i++)areas[i].isPointInArea(point)&&(findIndex=i);for(let i=lastAreaIndex;i>=0&&findIndex===-1;i--)areas[i].isPointInArea(point)&&(findIndex=i);findIndex!==-1&&(lastAreaIndex=findIndex,rooms[findIndex].observer_indexs.push(observer.index))}),{floor_name:floorplanJson.floorplans[floorIndex].name,floor_index:floorIndex,is_has_wall:canvas.lines.length>0,rules:getFloorplanRules(canvas),rooms}})}function getCompleteRoomPoints(canvas,area){let points=[],firstPoint=area.points[0];return area.points.concat(firstPoint).reduce((prevPoint,currPoint)=>{points.push(prevPoint);let line=canvas.getLineByPoints(prevPoint,currPoint);if(!line)return currPoint;if(line.curve){let centerPoint=line.curveCenterPoint(),curveR=line.curveR(),assistantCurveAbs=Math.abs(curveR-require_distance.distance(centerPoint,currPoint)*line.length()/Math.abs(line.curve)/4),p3=[line.curveCenterPoint.call({curve:assistantCurveAbs,points:[prevPoint,centerPoint]}),line.curveCenterPoint.call({curve:-assistantCurveAbs,points:[prevPoint,centerPoint]})].sort((a,b)=>require_distance.distance(b,currPoint)-require_distance.distance(a,currPoint))[0],p4=[line.curveCenterPoint.call({curve:assistantCurveAbs,points:[centerPoint,currPoint]}),line.curveCenterPoint.call({curve:-assistantCurveAbs,points:[centerPoint,currPoint]})].sort((a,b)=>require_distance.distance(b,prevPoint)-require_distance.distance(a,prevPoint))[0];points.push(p3,centerPoint,p4)}if(!line.isEdge()||line.items.length===0)return currPoint;let lineItems=line.items.filter(lineItem=>lineItem.type===7||lineItem.type===11);return lineItems.length===0||lineItems.forEach(lineItem=>{let start=lineItem.startPointAt(),end=lineItem.endPointAt();require_distance.distance(start,prevPoint)>require_distance.distance(end,prevPoint)&&([start,end]=[end,start]);let[offsetStart,offsetEnd]=parallelLineOfLine(700,[start,end])[0];points.push(start,offsetStart,offsetEnd,end)}),currPoint},firstPoint),points.map(({x,y})=>({x,y}))}function getCenterPointOfPath(path){let[x,y]=require_polylabel.polylabel([path.map(({x,y})=>[Math.trunc(x),Math.trunc(y)])],1);return{x,y}}function getDimensionOfArea(area,centerPoint){let points=area.innerPath();if(points.length===0)return;let minX=1/0,maxX=-1/0,minY=1/0,maxY=-1/0;points.forEach(point=>{minX=Math.min(minX,point.x),maxX=Math.max(maxX,point.x),minY=Math.min(minY,point.y),maxY=Math.max(maxY,point.y)});let width=maxX-minX,height=maxY-minY,x=Math.round(centerPoint.x),y=Math.round(centerPoint.y);return{width,height,vertical:[{x,y:minY},{x,y:maxY}],horizontal:[{x:minX,y},{x:maxX,y}]}}function getBounding(canvasArray,vrData){let padding=1e3,result={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0},origin:{x:0,y:0}};function applyResult({x,y}){result.min.x=Math.min(x,result.min.x),result.min.y=Math.min(y,result.min.y),result.max.x=Math.max(x,result.max.x),result.max.y=Math.max(y,result.max.y)}return canvasArray.forEach(canvas=>{canvas.points.forEach(point=>applyResult(point)),canvas.lines.forEach(line=>{line.curve!==0&&applyResult(line.curveCenterPoint())})}),result.min.x-=padding,result.min.y-=padding,result.max.x+=padding,result.max.y+=padding,result.origin.x=vrData.origin.left,result.origin.y=vrData.origin.top,result}function floorplanPosition2ImagePosition(point,bounding){let boundingWidth=bounding.max.x-bounding.min.x,boundingHeight=bounding.max.y-bounding.min.y;return{x:boundingWidth===0?0:(point.x-bounding.min.x)/boundingWidth,y:boundingHeight===0?0:(bounding.max.y-point.y)/boundingHeight}}function getEntrance(canvasArray,toImagePosition){let lineItem=canvasArray.map(canvas=>canvas.lineItems).reduce((acc,val)=>acc.concat(val),[]).find(item=>item.entrance!==null);if(!lineItem)return null;let canvas=lineItem.canvas,area=canvas.areas.find(area=>lineItem.line.points.every(point=>area.points.indexOf(point)>=0));if(!area)return null;let position=getCenterPointOfPoints([lineItem.startPointAt(),lineItem.endPointAt()]),northRad=lineItem.towardsRadWithArea(area)+lineItem.entrance/180*Math.PI;return{position_in_image:toImagePosition(position),north_rad:northRad,room_id:area.id,floor_index:canvasArray.findIndex(canvasItem=>canvasItem===canvas)}}function getObservers(canvasArray,vrData,observers,toImagePosition){return observers.filter(observer=>canvasArray[observer.floor_index]).map(observer=>({floor_index:observer.floor_index,position_in_image:toImagePosition(observerWorldPoint(observer,vrData))}))}function observerWorldPoint(observer,vrData){return{x:observer.position[0]*1e3+vrData.origin.left,y:-observer.position[2]*1e3+vrData.origin.top}}function getFloorplanRules(canvas){let top=[],right=[],bottom=[],left=[];for(let line of canvas.lines){if(!line.edgeComputed||!line.points.length)continue;let area=canvas.areas.find(area=>line.points.every(point=>area.points.includes(point)));if(!area)continue;let linePoints=line.edgePoints(!0),areaInnerPath=area.innerPath(!0,!1),[pt0,pt1]=linePoints.filter(point=>areaInnerPath.some(p=>samePointAt(p,point)));if(!pt0||!pt1)continue;let roundedPt0={x:pt0.x|0,y:pt0.y|0},roundedPt1={x:pt1.x|0,y:pt1.y|0},towardsRad=line.towardsRadWithArea(area),relativeX=Math.cos(towardsRad),relativeY=Math.sin(towardsRad);Math.abs(roundedPt0.y-roundedPt1.y)>MIN_RULE_LENGTH&&(relativeX<0?left.push([roundedPt0,roundedPt1].sort((a,b)=>a.y-b.y)):relativeX>0&&right.push([roundedPt0,roundedPt1].sort((a,b)=>a.y-b.y))),Math.abs(roundedPt0.x-roundedPt1.x)>MIN_RULE_LENGTH&&(relativeY<0?bottom.push([roundedPt0,roundedPt1].sort((a,b)=>a.x-b.x)):relativeY>0&&top.push([roundedPt0,roundedPt1].sort((a,b)=>a.x-b.x)))}return{top,right,bottom,left}}function samePointAt(point1,point2){return point1.x===point2.x&&point1.y===point2.y}function parallelLineOfLine(distanceOfLine,linePoints){let k=getK(linePoints[1],linePoints[0]),dx,dy;Math.abs(k)===1/0?(dy=0,dx=distanceOfLine):(dy=Math.sqrt(distanceOfLine*distanceOfLine/(k*k+1)),dx=dy/-(1/k));let result=[[{x:linePoints[0].x-dx,y:linePoints[0].y-dy},{x:linePoints[1].x-dx,y:linePoints[1].y-dy}],[{x:linePoints[0].x+dx,y:linePoints[0].y+dy},{x:linePoints[1].x+dx,y:linePoints[1].y+dy}]];return linePoints[1].x-linePoints[0].x<0?result:linePoints[1].x-linePoints[0].x>0||linePoints[1].y-linePoints[0].y<0?result.reverse():result}function getK(p0,p1){return(p0.y-p1.y)/(p0.x-p1.x)}function getCenterPointOfPoints(points){let minX=Math.min(...points.map(p=>p.x)),maxX=Math.max(...points.map(p=>p.x)),minY=Math.min(...points.map(p=>p.y)),maxY=Math.max(...points.map(p=>p.y));return{x:(minX+maxX)/2,y:(minY+maxY)/2}}exports.default=formatFloorplanJson,exports.formatFloorplanJson=formatFloorplanJson;
|