@realsee/five 5.0.0-alpha.11 → 5.0.0-alpha.112
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/README.md +75 -63
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +134 -0
- package/docs/assets/icons.css +1043 -0
- package/docs/assets/{images/icons.png → icons.png} +0 -0
- package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
- package/docs/assets/main.js +52 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1413 -0
- package/docs/assets/{images/widgets.png → widgets.png} +0 -0
- package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
- package/docs/classes/five.AnimationFrameLoop.html +15 -0
- package/docs/classes/five.BVH.html +10 -0
- package/docs/classes/five.BVHIntersect.html +1 -0
- package/docs/classes/five.BVHNode.html +7 -0
- package/docs/classes/five.BVHVector3.html +1 -0
- package/docs/classes/five.Camera.html +11 -0
- package/docs/classes/five.Five.html +303 -0
- package/docs/classes/five.InternalWebGLRenderer.html +1 -0
- package/docs/classes/five.IntersectMesh.html +1 -0
- package/docs/classes/five.LegacyPanoCircleMesh.html +5 -0
- package/docs/classes/five.Model.html +77 -0
- package/docs/classes/five.NetworkSubscribe.html +50 -0
- package/docs/classes/five.PBMContainer.html +17 -0
- package/docs/classes/five.PBMGroup.html +19 -0
- package/docs/classes/five.PBMMaterial.html +15 -0
- package/docs/classes/five.PBMMesh.html +7 -0
- package/docs/classes/five.PanoCircleMesh.html +7 -0
- package/docs/classes/five.Scene.html +3 -0
- package/docs/classes/five.Subscribe.html +56 -0
- package/docs/classes/five.Work.html +30 -0
- package/docs/classes/gltf_loader.GLTFLoader.html +17 -0
- package/docs/classes/gltf_loader.GLTFObject.html +7 -0
- package/docs/classes/line.Line.html +1 -0
- package/docs/classes/line.LineGeometry.html +1 -0
- package/docs/classes/line.LineMaterial.html +1 -0
- package/docs/classes/line.LineSegmentsGeometry.html +1 -0
- package/docs/classes/line.THREE_Line2.html +1 -0
- package/docs/classes/line.THREE_LineSegments2.html +1 -0
- package/docs/classes/react.Store.html +29 -0
- package/docs/classes/server.BVH.html +10 -0
- package/docs/classes/server.BVHIntersect.html +1 -0
- package/docs/classes/server.BVHNode.html +7 -0
- package/docs/classes/server.BVHVector3.html +1 -0
- package/docs/classes/server.Model.html +63 -0
- package/docs/classes/server.PBMGroup.html +9 -0
- package/docs/classes/server.PBMMesh.html +7 -0
- package/docs/classes/sticker.Sticker.html +32 -0
- package/docs/index.html +166 -420
- package/docs/interfaces/five.AddableObject.html +1 -0
- package/docs/interfaces/five.AnimationFrame.html +1 -0
- package/docs/interfaces/five.CameraPose.html +1 -0
- package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +28 -0
- package/docs/interfaces/five.EventCallback.html +391 -0
- package/docs/interfaces/five.FiveInitArgs.html +96 -0
- package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +15 -0
- package/docs/interfaces/five.ImageOptions.html +18 -0
- package/docs/interfaces/five.ImageURLOptions.html +15 -0
- package/docs/interfaces/five.IntersectMeshInterface.html +3 -0
- package/docs/interfaces/five.Intersection.html +7 -0
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +20 -0
- package/docs/interfaces/five.ModelEventCallback.html +22 -0
- package/docs/interfaces/five.MovePanoOptions.html +40 -0
- package/docs/interfaces/five.PBMPanoPicture.html +7 -0
- package/docs/interfaces/five.PBMParameters.html +15 -0
- package/docs/interfaces/five.PanoCircleMeshInterface.html +19 -0
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +28 -0
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +20 -0
- package/docs/interfaces/five.Pose.html +35 -0
- package/docs/interfaces/five.Scissor.html +14 -0
- package/docs/interfaces/five.State.html +19 -0
- package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.off.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.on.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.once.html +1 -0
- package/docs/interfaces/five.TextureOptions.html +20 -0
- package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -0
- package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +24 -0
- package/docs/interfaces/five.WorkCubeImage.html +13 -0
- package/docs/interfaces/five.WorkImage.html +21 -0
- package/docs/interfaces/five.WorkInitial.html +13 -0
- package/docs/interfaces/five.WorkModel.html +11 -0
- package/docs/interfaces/five.WorkObserver.html +25 -0
- package/docs/interfaces/five.WorkTile.html +1 -0
- package/docs/interfaces/five.WorkVideo.html +9 -0
- package/docs/interfaces/gltf_loader.GLTF.html +7 -0
- package/docs/interfaces/react.FiveActionReactCallbacks.html +62 -0
- package/docs/interfaces/react.FiveInjectionTypes.html +191 -0
- package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -0
- package/docs/interfaces/server.Intersection.html +7 -0
- package/docs/interfaces/server.ModelEventCallback.html +18 -0
- package/docs/interfaces/sticker.IntersectionLike.html +8 -0
- package/docs/modules/five.SubscribeMixinType.html +1 -0
- package/docs/modules/five.html +481 -0
- package/docs/modules/gltf_loader.html +1 -0
- package/docs/modules/line.html +1 -0
- package/docs/modules/react.html +130 -941
- package/docs/modules/server.html +18 -0
- package/docs/modules/sticker.html +1 -0
- package/docs/modules.html +1 -119
- package/exporters/staticify.js +203 -0
- package/five/index.d.ts +2073 -0
- package/five/index.js +372 -0
- package/gltf-loader/index.d.ts +75 -0
- package/gltf-loader/index.js +260 -0
- package/line/index.d.ts +68 -0
- package/line/index.js +260 -0
- package/package.json +20 -18
- package/react/index.d.ts +812 -17
- package/react/index.js +260 -1
- package/resource/{basis_transcoder.js → basis/basis_transcoder.js} +0 -0
- package/resource/{basis_transcoder.wasm → basis/basis_transcoder.wasm} +0 -0
- package/resource/gltf/draco_decoder.js +31 -0
- package/resource/gltf/draco_decoder.wasm +0 -0
- package/resource/gltf/draco_wasm_wrapper.js +119 -0
- package/scripts/five-staticify.js +21 -0
- package/server/index.d.ts +568 -5
- package/server/index.js +367 -1
- package/sticker/index.d.ts +70 -0
- package/sticker/index.js +260 -0
- package/templates/plugin/examples/index.html +1 -1
- package/templates/quick-start/README.md +1 -1
- package/templates/quick-start/index.tsx +1 -1
- package/templates/quick-start/package.json +1 -1
- package/templates/react-component/examples/index.html +1 -1
- package/templates/react-component/examples/index.tsx +4 -4
- package/templates/react-component/lib/index.tsx +5 -5
- package/umd/five-gltf-loader.js +2 -0
- package/umd/five-gltf-loader.js.LICENSE.txt +14 -0
- package/umd/five-line.js +2 -0
- package/umd/five-line.js.LICENSE.txt +14 -0
- package/umd/five-react.js +2 -0
- package/umd/five-react.js.LICENSE.txt +14 -0
- package/umd/five-sticker.js +2 -0
- package/umd/five-sticker.js.LICENSE.txt +14 -0
- package/umd/five.js +2 -0
- package/umd/five.js.LICENSE.txt +116 -0
- package/application/constant.d.ts +0 -6
- package/application/constant.js +0 -1
- package/application/controllers.d.ts +0 -31
- package/application/controllers.js +0 -1
- package/application/events.d.ts +0 -140
- package/application/events.js +0 -1
- package/application/five.d.ts +0 -418
- package/application/five.js +0 -1
- package/application/fiveInitArgs.d.ts +0 -157
- package/application/fiveInitArgs.js +0 -1
- package/application/generateDefaultVideoElement.d.ts +0 -2
- package/application/generateDefaultVideoElement.js +0 -1
- package/application/getViewportScale.d.ts +0 -2
- package/application/getViewportScale.js +0 -1
- package/application/initLights.d.ts +0 -3
- package/application/initLights.js +0 -1
- package/bundles/five.js +0 -2
- package/bundles/five.js.LICENSE.txt +0 -160
- package/controllers/base.d.ts +0 -80
- package/controllers/base.js +0 -1
- package/controllers/depthPanorama.d.ts +0 -40
- package/controllers/depthPanorama.js +0 -1
- package/controllers/events.d.ts +0 -273
- package/controllers/events.js +0 -1
- package/controllers/floorplan.d.ts +0 -102
- package/controllers/floorplan.js +0 -1
- package/controllers/model.d.ts +0 -23
- package/controllers/model.js +0 -1
- package/controllers/panorama.d.ts +0 -69
- package/controllers/panorama.js +0 -1
- package/controllers/panoramaLike.d.ts +0 -88
- package/controllers/panoramaLike.js +0 -1
- package/controllers/topview.d.ts +0 -28
- package/controllers/topview.js +0 -1
- package/controllers/vrPanorama.d.ts +0 -40
- package/controllers/vrPanorama.js +0 -1
- package/core/camera.d.ts +0 -15
- package/core/camera.js +0 -1
- package/core/cubeTexture.d.ts +0 -6
- package/core/cubeTexture.js +0 -1
- package/core/internalWebGLRenderer.d.ts +0 -11
- package/core/internalWebGLRenderer.js +0 -1
- package/core/pbmGroup.d.ts +0 -22
- package/core/pbmGroup.js +0 -1
- package/core/pbmMaterial.d.ts +0 -39
- package/core/pbmMaterial.js +0 -1
- package/core/pbmMesh.d.ts +0 -10
- package/core/pbmMesh.js +0 -1
- package/core/pbmParameters.d.ts +0 -36
- package/core/pbmParameters.js +0 -1
- package/core/scene.d.ts +0 -5
- package/core/scene.js +0 -1
- package/core/subscribe.d.ts +0 -76
- package/core/subscribe.js +0 -1
- package/core/updatableTexture.d.ts +0 -12
- package/core/updatableTexture.js +0 -1
- package/docs/assets/css/main.css +0 -2660
- package/docs/assets/js/main.js +0 -248
- package/docs/assets/js/search.js +0 -1
- package/docs/classes/index.five.html +0 -2567
- package/docs/classes/index.fivecamera.html +0 -427
- package/docs/classes/index.fiveline.html +0 -458
- package/docs/classes/index.fivescene.html +0 -302
- package/docs/classes/index.internalwebglrenderer.html +0 -316
- package/docs/classes/index.model.html +0 -999
- package/docs/classes/index.pbmgroup.html +0 -531
- package/docs/classes/index.pbmmaterial.html +0 -637
- package/docs/classes/index.pbmmesh.html +0 -358
- package/docs/classes/index.subscribe.html +0 -672
- package/docs/interfaces/index.depthpanoramacontrollercustominitargs.html +0 -524
- package/docs/interfaces/index.fiveeventcallback.html +0 -2568
- package/docs/interfaces/index.fiveinitargs.html +0 -811
- package/docs/interfaces/index.floorplancontrollercustominitargs.html +0 -399
- package/docs/interfaces/index.imageoptions.html +0 -436
- package/docs/interfaces/index.intersection.html +0 -331
- package/docs/interfaces/index.intersectmeshinterface.html +0 -292
- package/docs/interfaces/index.modelcontrollercustominitargs.html +0 -470
- package/docs/interfaces/index.modeleventcallback.html +0 -432
- package/docs/interfaces/index.movepanooptions.html +0 -573
- package/docs/interfaces/index.panocirclemeshinterface.html +0 -465
- package/docs/interfaces/index.panoramacontrollercustominitargs.html +0 -549
- package/docs/interfaces/index.panoramalikecontrollercustominitargs.html +0 -468
- package/docs/interfaces/index.pbmparameters.html +0 -578
- package/docs/interfaces/index.pose.html +0 -374
- package/docs/interfaces/index.scissor.html +0 -356
- package/docs/interfaces/index.state.html +0 -404
- package/docs/interfaces/index.topviewcontrollercustominitargs.html +0 -330
- package/docs/interfaces/index.vrpanoramacontrollercustominitargs.html +0 -536
- package/docs/interfaces/react.fiveactionreactcallbacks.html +0 -530
- package/docs/interfaces/react.injectfivetoprops.html +0 -231
- package/docs/modules/index.html +0 -925
- package/five.js.LICENSE.txt +0 -160
- package/index.d.ts +0 -33
- package/index.js +0 -1
- package/loaders/basis/BasisTextureLoader.d.ts +0 -116
- package/loaders/basis/BasisTextureLoader.js +0 -1
- package/loaders/basis/index.d.ts +0 -3
- package/loaders/basis/index.js +0 -1
- package/loaders/cubeTexture/imagePool.d.ts +0 -7
- package/loaders/cubeTexture/imagePool.js +0 -1
- package/loaders/cubeTexture/index.d.ts +0 -58
- package/loaders/cubeTexture/index.js +0 -1
- package/loaders/depthTexture/index.d.ts +0 -60
- package/loaders/depthTexture/index.js +0 -1
- package/loaders/model/at3d.d.ts +0 -7
- package/loaders/model/at3d.js +0 -1
- package/loaders/model/dome.d.ts +0 -14
- package/loaders/model/dome.js +0 -1
- package/loaders/model/domez.d.ts +0 -7
- package/loaders/model/domez.js +0 -1
- package/loaders/model/index.d.ts +0 -135
- package/loaders/model/index.js +0 -1
- package/loaders/model/pbm.d.ts +0 -27
- package/loaders/model/pbm.js +0 -1
- package/loaders/model/tools/bvhtree/index.d.ts +0 -2
- package/loaders/model/tools/bvhtree/index.js +0 -1
- package/loaders/model/tools/lzma/index.d.ts +0 -2
- package/loaders/model/tools/lzma/index.js +0 -1
- package/loaders/model/tools/lzma/lzma-caller.d.ts +0 -13
- package/loaders/model/tools/lzma/lzma-caller.js +0 -1
- package/loaders/model/tools/lzma/lzma.d.ts +0 -2
- package/loaders/model/tools/lzma/lzma.js +0 -1
- package/loaders/model/tools/lzma/lzmaWorker.d.ts +0 -1
- package/loaders/model/tools/lzma/lzmaWorker.js +0 -1
- package/loaders/tileTexture/index.d.ts +0 -26
- package/loaders/tileTexture/index.js +0 -1
- package/meshes/boundingMesh.d.ts +0 -9
- package/meshes/boundingMesh.js +0 -1
- package/meshes/intersectMesh.d.ts +0 -11
- package/meshes/intersectMesh.js +0 -1
- package/meshes/panoCircleMesh.d.ts +0 -29
- package/meshes/panoCircleMesh.js +0 -1
- package/meshes/panoSphereMesh.d.ts +0 -16
- package/meshes/panoSphereMesh.js +0 -1
- package/objects/line/circle_png.d.ts +0 -1
- package/objects/line/circle_png.js +0 -1
- package/objects/line/index.d.ts +0 -12
- package/objects/line/index.js +0 -1
- package/objects/line/utils/Line2.d.ts +0 -7
- package/objects/line/utils/Line2.js +0 -1
- package/objects/line/utils/LineGeometry.d.ts +0 -10
- package/objects/line/utils/LineGeometry.js +0 -1
- package/objects/line/utils/LineMaterial.d.ts +0 -20
- package/objects/line/utils/LineMaterial.js +0 -1
- package/objects/line/utils/LineSegments2.d.ts +0 -11
- package/objects/line/utils/LineSegments2.js +0 -1
- package/objects/line/utils/LineSegmentsGeometry.d.ts +0 -15
- package/objects/line/utils/LineSegmentsGeometry.js +0 -1
- package/react/canvas.d.ts +0 -19
- package/react/canvas.js +0 -1
- package/react/context.d.ts +0 -9
- package/react/context.js +0 -1
- package/react/createProvider.d.ts +0 -65
- package/react/createProvider.js +0 -1
- package/react/createStore.d.ts +0 -138
- package/react/createStore.js +0 -1
- package/react/hooks/unsafe__useFiveInstance.d.ts +0 -9
- package/react/hooks/unsafe__useFiveInstance.js +0 -1
- package/react/hooks/useFiveAction.d.ts +0 -154
- package/react/hooks/useFiveAction.js +0 -1
- package/react/hooks/useFiveCameraDirection.d.ts +0 -7
- package/react/hooks/useFiveCameraDirection.js +0 -1
- package/react/hooks/useFiveCameraRaycaster.d.ts +0 -7
- package/react/hooks/useFiveCameraRaycaster.js +0 -1
- package/react/hooks/useFiveCurrentState.d.ts +0 -15
- package/react/hooks/useFiveCurrentState.js +0 -1
- package/react/hooks/useFiveEvent.d.ts +0 -12
- package/react/hooks/useFiveEvent.js +0 -1
- package/react/hooks/useFiveModelIntersectRaycaster.d.ts +0 -21
- package/react/hooks/useFiveModelIntersectRaycaster.js +0 -1
- package/react/hooks/useFiveModelReadyState.d.ts +0 -8
- package/react/hooks/useFiveModelReadyState.js +0 -1
- package/react/hooks/useFiveProject2d.d.ts +0 -20
- package/react/hooks/useFiveProject2d.js +0 -1
- package/react/hooks/useFiveScene.d.ts +0 -16
- package/react/hooks/useFiveScene.js +0 -1
- package/react/hooks/useFiveState.d.ts +0 -6
- package/react/hooks/useFiveState.js +0 -1
- package/react/hooks/useFiveWork.d.ts +0 -30
- package/react/hooks/useFiveWork.js +0 -1
- package/react/rendererPool.d.ts +0 -8
- package/react/rendererPool.js +0 -1
- package/react/withFive.d.ts +0 -239
- package/react/withFive.js +0 -1
- package/scripts/export-five-resource/chfs.exe +0 -0
- package/scripts/export-five-resource/fileify.js +0 -192
- package/scripts/export-five-resource/format-work.js +0 -71
- package/scripts/export-five-resource/staticify.js +0 -327
- package/scripts/transcode-model/BufferGeometryUtils.js +0 -832
- package/scripts/transcode-model/LoaderSupport.js +0 -1545
- package/scripts/transcode-model/MTLLoader.js +0 -602
- package/scripts/transcode-model/OBJLoader2.js +0 -1470
- package/scripts/transcode-model/obj2pbm.js +0 -65
- package/server/core/pbmGroup.d.ts +0 -11
- package/server/core/pbmGroup.js +0 -1
- package/server/core/pbmMesh.d.ts +0 -9
- package/server/core/pbmMesh.js +0 -1
- package/server/model/at3d.d.ts +0 -5
- package/server/model/at3d.js +0 -1
- package/server/model/dome.d.ts +0 -11
- package/server/model/dome.js +0 -1
- package/server/model/domez.d.ts +0 -5
- package/server/model/domez.js +0 -1
- package/server/model/index.d.ts +0 -134
- package/server/model/index.js +0 -1
- package/server/model/pbm.d.ts +0 -24
- package/server/model/pbm.js +0 -1
- package/server/model/tools/bvhtree/index.d.ts +0 -2
- package/server/model/tools/bvhtree/index.js +0 -1
- package/server/model/tools/fetchArraybuffer.d.ts +0 -2
- package/server/model/tools/fetchArraybuffer.js +0 -1
- package/server/model/tools/lzma/index.d.ts +0 -2
- package/server/model/tools/lzma/index.js +0 -1
- package/server/model/tools/lzma/lzma.d.ts +0 -2
- package/server/model/tools/lzma/lzma.js +0 -1
- package/shaders/depth/fragment.d.ts +0 -2
- package/shaders/depth/fragment.js +0 -1
- package/shaders/depth/vertex.d.ts +0 -2
- package/shaders/depth/vertex.js +0 -1
- package/shaders/pbm/fragment.d.ts +0 -2
- package/shaders/pbm/fragment.js +0 -1
- package/shaders/pbm/vertex.d.ts +0 -2
- package/shaders/pbm/vertex.js +0 -1
- package/three-version-check.d.ts +0 -1
- package/three-version-check.js +0 -1
- package/types/imageOptions.d.ts +0 -24
- package/types/imageOptions.js +0 -1
- package/types/mode.d.ts +0 -23
- package/types/mode.js +0 -1
- package/types/movePanoOptions.d.ts +0 -40
- package/types/movePanoOptions.js +0 -1
- package/types/plugin.d.ts +0 -26
- package/types/plugin.js +0 -1
- package/types/pose.d.ts +0 -16
- package/types/pose.js +0 -1
- package/types/scissor.d.ts +0 -18
- package/types/scissor.js +0 -1
- package/types/state.d.ts +0 -18
- package/types/state.js +0 -1
- package/utils/BufferGeometryUtils.d.ts +0 -31
- package/utils/BufferGeometryUtils.js +0 -1
- package/utils/ajax.d.ts +0 -13
- package/utils/ajax.js +0 -1
- package/utils/animationFrame.d.ts +0 -24
- package/utils/animationFrame.js +0 -1
- package/utils/arrayMax.d.ts +0 -10
- package/utils/arrayMax.js +0 -1
- package/utils/arrayMin.d.ts +0 -11
- package/utils/arrayMin.js +0 -1
- package/utils/busy.d.ts +0 -13
- package/utils/busy.js +0 -1
- package/utils/calculateProgress.d.ts +0 -37
- package/utils/calculateProgress.js +0 -1
- package/utils/calculateThreeMouse.d.ts +0 -13
- package/utils/calculateThreeMouse.js +0 -1
- package/utils/cameraWorldToLocal.d.ts +0 -13
- package/utils/cameraWorldToLocal.js +0 -1
- package/utils/coordinatesToVector.d.ts +0 -7
- package/utils/coordinatesToVector.js +0 -1
- package/utils/createImage.d.ts +0 -2
- package/utils/createImage.js +0 -1
- package/utils/detector.d.ts +0 -13
- package/utils/detector.js +0 -1
- package/utils/formatRad.d.ts +0 -7
- package/utils/formatRad.js +0 -1
- package/utils/headingToLongitude.d.ts +0 -6
- package/utils/headingToLongitude.js +0 -1
- package/utils/imageLoader.d.ts +0 -10
- package/utils/imageLoader.js +0 -1
- package/utils/imageURL.d.ts +0 -9
- package/utils/imageURL.js +0 -1
- package/utils/isAbsoluteURL.d.ts +0 -6
- package/utils/isAbsoluteURL.js +0 -1
- package/utils/isNil.d.ts +0 -6
- package/utils/isNil.js +0 -1
- package/utils/longitudeToHeading.d.ts +0 -6
- package/utils/longitudeToHeading.js +0 -1
- package/utils/mouseWheel.d.ts +0 -17
- package/utils/mouseWheel.js +0 -1
- package/utils/noop.d.ts +0 -6
- package/utils/noop.js +0 -1
- package/utils/now.d.ts +0 -5
- package/utils/now.js +0 -1
- package/utils/preload.d.ts +0 -5
- package/utils/preload.js +0 -1
- package/utils/tween.d.ts +0 -88
- package/utils/tween.js +0 -1
- package/utils/uuid.d.ts +0 -5
- package/utils/uuid.js +0 -1
- package/utils/vectorTocoordinates.d.ts +0 -7
- package/utils/vectorTocoordinates.js +0 -1
- package/utils/webglError.d.ts +0 -7
- package/utils/webglError.js +0 -1
- package/webvr/helper.img.d.ts +0 -1
- package/webvr/helper.img.js +0 -1
- package/webvr/vrEffect.d.ts +0 -13
- package/webvr/vrEffect.js +0 -1
- package/work/index.d.ts +0 -5
- package/work/index.js +0 -1
- package/work/looseWorkType.d.ts +0 -61
- package/work/looseWorkType.js +0 -1
- package/work/parse.d.ts +0 -4
- package/work/parse.js +0 -1
- package/work/stringify.d.ts +0 -4
- package/work/stringify.js +0 -1
- package/work/workType.d.ts +0 -49
- package/work/workType.js +0 -1
package/application/five.d.ts
DELETED
|
@@ -1,418 +0,0 @@
|
|
|
1
|
-
import * as THREE from "three";
|
|
2
|
-
import { Camera } from "../core/camera";
|
|
3
|
-
import { Scene } from "../core/scene";
|
|
4
|
-
import { Model as ModelClz } from "../loaders/model";
|
|
5
|
-
import { FiveLine } from "../objects/line";
|
|
6
|
-
import { Subscribe } from "../core/subscribe";
|
|
7
|
-
import { ImageOptions } from "../types/imageOptions";
|
|
8
|
-
import { Work, LooseWork } from "../work";
|
|
9
|
-
import { Pose } from "../types/pose";
|
|
10
|
-
import { State } from "../types/state";
|
|
11
|
-
import { Scissor } from "../types/scissor";
|
|
12
|
-
import { MovePanoOptions } from "../types/movePanoOptions";
|
|
13
|
-
import { Mode } from "./controllers";
|
|
14
|
-
import { EventType } from "./events";
|
|
15
|
-
import { FivePluginInstance } from "../types/plugin";
|
|
16
|
-
import { FiveInitArgs } from "./fiveInitArgs";
|
|
17
|
-
declare type Mirror<T extends string> = Record<T, T>;
|
|
18
|
-
/**
|
|
19
|
-
* 如视 VR Web展示器
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```
|
|
23
|
-
* // 初始化构造函数
|
|
24
|
-
* const five = new Five();
|
|
25
|
-
* // 将绘制区域添加到页面上
|
|
26
|
-
* five.appendTo(document.body);
|
|
27
|
-
* // 加载 Work 数据
|
|
28
|
-
* five.load({...});
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
declare class Five extends Subscribe<EventType> {
|
|
32
|
-
/**
|
|
33
|
-
* Five 的显示模式,可以通过 `five.changeMode` `five.setState` 来切换
|
|
34
|
-
* @description
|
|
35
|
-
* ```text
|
|
36
|
-
* Panorama 全景图游走模式
|
|
37
|
-
* Model 模型游走模式
|
|
38
|
-
* Floorplan 模型查看模式
|
|
39
|
-
* Topview 户型图模式
|
|
40
|
-
* DepthPanorama 深度图游走模式
|
|
41
|
-
* VRPanorama VR眼镜模式
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
static Mode: Mirror<Mode>;
|
|
45
|
-
/** Five 线条*/
|
|
46
|
-
static FiveLine: typeof FiveLine;
|
|
47
|
-
/** Five 的动画函数*/
|
|
48
|
-
static Easing: {
|
|
49
|
-
Linear: {
|
|
50
|
-
None: (amount: number) => number;
|
|
51
|
-
};
|
|
52
|
-
Quadratic: {
|
|
53
|
-
In: (amount: number) => number;
|
|
54
|
-
Out: (amount: number) => number;
|
|
55
|
-
InOut: (amount: number) => number;
|
|
56
|
-
};
|
|
57
|
-
Cubic: {
|
|
58
|
-
In: (amount: number) => number;
|
|
59
|
-
Out: (amount: number) => number;
|
|
60
|
-
InOut: (amount: number) => number;
|
|
61
|
-
};
|
|
62
|
-
Quartic: {
|
|
63
|
-
In: (amount: number) => number;
|
|
64
|
-
Out: (amount: number) => number;
|
|
65
|
-
InOut: (amount: number) => number;
|
|
66
|
-
};
|
|
67
|
-
Quintic: {
|
|
68
|
-
In: (amount: number) => number;
|
|
69
|
-
Out: (amount: number) => number;
|
|
70
|
-
InOut: (amount: number) => number;
|
|
71
|
-
};
|
|
72
|
-
Sinusoidal: {
|
|
73
|
-
In: (amount: number) => number;
|
|
74
|
-
Out: (amount: number) => number;
|
|
75
|
-
InOut: (amount: number) => number;
|
|
76
|
-
};
|
|
77
|
-
Exponential: {
|
|
78
|
-
In: (amount: number) => number;
|
|
79
|
-
Out: (amount: number) => number;
|
|
80
|
-
InOut: (amount: number) => number;
|
|
81
|
-
};
|
|
82
|
-
Circular: {
|
|
83
|
-
In: (amount: number) => number;
|
|
84
|
-
Out: (amount: number) => number;
|
|
85
|
-
InOut: (amount: number) => number;
|
|
86
|
-
};
|
|
87
|
-
Elastic: {
|
|
88
|
-
In: (amount: number) => number;
|
|
89
|
-
Out: (amount: number) => number;
|
|
90
|
-
InOut: (amount: number) => number;
|
|
91
|
-
};
|
|
92
|
-
Back: {
|
|
93
|
-
In: (amount: number) => number;
|
|
94
|
-
Out: (amount: number) => number;
|
|
95
|
-
InOut: (amount: number) => number;
|
|
96
|
-
};
|
|
97
|
-
Bounce: {
|
|
98
|
-
In: (amount: number) => number;
|
|
99
|
-
Out: (amount: number) => number;
|
|
100
|
-
InOut: (amount: number) => number;
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* 自动播放状态是否暂停
|
|
105
|
-
* @description
|
|
106
|
-
* 可以通过 `five.play` `five.pause` 方法播放或暂停
|
|
107
|
-
*/
|
|
108
|
-
paused: boolean;
|
|
109
|
-
/** 当前点位序号 */
|
|
110
|
-
panoIndex?: number;
|
|
111
|
-
/** 当前展示的模式 */
|
|
112
|
-
currentMode?: Mode;
|
|
113
|
-
/** 内部使用的 `THREE.Scene` */
|
|
114
|
-
scene: Scene;
|
|
115
|
-
/** 内部使用的 `Camera` */
|
|
116
|
-
camera: Camera;
|
|
117
|
-
/**
|
|
118
|
-
* 当前设置的 `scissor`
|
|
119
|
-
* @description
|
|
120
|
-
* 可通过初始化,或者 setScissor 方式设置
|
|
121
|
-
* `scissor` 是将屏幕中的内容渲染到 `renderer` 的指定区域。
|
|
122
|
-
* 页面整体长宽均为 `1`。通过类似 css 的 `left` `bottom` `width` `height` 来确定区域。
|
|
123
|
-
* @example
|
|
124
|
-
* ```
|
|
125
|
-
* scissor: { left: 0.75, bottom: 0, width: 0.25, height: 1 }
|
|
126
|
-
* ```
|
|
127
|
-
*/
|
|
128
|
-
scissor: Scissor;
|
|
129
|
-
/**
|
|
130
|
-
* 当前使用的 THREE.WebGLRenderer。
|
|
131
|
-
* @description
|
|
132
|
-
* 如果初始化时传入了 `renderer` 则直接时该值
|
|
133
|
-
* 否则会通过 `preserveDrawingBuffer` `backgroundColor` `backgroundAlpha` `antialias` 创建一个 `THREE.WebGLRenderer`
|
|
134
|
-
*/
|
|
135
|
-
renderer: THREE.WebGLRenderer;
|
|
136
|
-
/** 当前加载的模型 */
|
|
137
|
-
model: ModelClz;
|
|
138
|
-
/** 当前加载的 work 数据 */
|
|
139
|
-
work?: Work;
|
|
140
|
-
/**
|
|
141
|
-
* 是否需要渲染
|
|
142
|
-
* @description
|
|
143
|
-
* 如果初始化设置了 `onlyRenderIfNeeds: true`, 则会激活按需渲染
|
|
144
|
-
* 可以通过设置 `five.needsRender = true` 来告知,five 会在下一帧渲染画面。
|
|
145
|
-
*/
|
|
146
|
-
needsRender: boolean;
|
|
147
|
-
/**
|
|
148
|
-
* 全景图的配置参数
|
|
149
|
-
* @description
|
|
150
|
-
* 可以动态对配置在 `work` 数据中的全景图片在 runtime 做 url 调整。
|
|
151
|
-
* 平衡加载时间和图片质量
|
|
152
|
-
*/
|
|
153
|
-
imageOptions: ImageOptions;
|
|
154
|
-
/**
|
|
155
|
-
* 模型贴图的配置参数
|
|
156
|
-
* @description
|
|
157
|
-
* 可以动态对配置在 `work` 数据中的模型贴图在 runtime 做 url 调整。
|
|
158
|
-
* 平衡加载时间和图片质量
|
|
159
|
-
*/
|
|
160
|
-
textureOptions: ImageOptions;
|
|
161
|
-
/**
|
|
162
|
-
* 模型贴图的配置参数
|
|
163
|
-
* @description
|
|
164
|
-
* 可以动态对配置在 `work` 数据中的模型贴图在 runtime 做 url 调整。
|
|
165
|
-
* 平衡加载时间和图片质量
|
|
166
|
-
*/
|
|
167
|
-
videoTexture: THREE.VideoTexture;
|
|
168
|
-
/**
|
|
169
|
-
* 当前状态
|
|
170
|
-
* @description
|
|
171
|
-
* ```text
|
|
172
|
-
* five 设置了以下状态
|
|
173
|
-
*
|
|
174
|
-
* - mode: Mode
|
|
175
|
-
* - panoIndex: number
|
|
176
|
-
* - longitude: number
|
|
177
|
-
* - latitude: number
|
|
178
|
-
* - fov: number
|
|
179
|
-
* - offset: THREE.Vector3
|
|
180
|
-
*
|
|
181
|
-
* 可以通过 five.state 和 five.setState 来获取和设置。
|
|
182
|
-
* 通过 state 设置后,five 会通过合适的动画运动来达到设置的位置。
|
|
183
|
-
* 来迎合一些通过数据驱动的场景。
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
state: State;
|
|
187
|
-
/** 插件暴露的方法 */
|
|
188
|
-
plugins: {
|
|
189
|
-
[key: string]: FivePluginInstance<any>;
|
|
190
|
-
};
|
|
191
|
-
private ident;
|
|
192
|
-
private modeChangeDuration;
|
|
193
|
-
private onlyRenderIfNeeds;
|
|
194
|
-
private maxFps;
|
|
195
|
-
private controller?;
|
|
196
|
-
private destroyed;
|
|
197
|
-
private statePending;
|
|
198
|
-
private stateSynced;
|
|
199
|
-
private controllerInits;
|
|
200
|
-
private panoramaLikeSavedPose;
|
|
201
|
-
private extraElements;
|
|
202
|
-
private moveToPanoQueue?;
|
|
203
|
-
private getPixelsRenderTarget;
|
|
204
|
-
private tweenCoordinates?;
|
|
205
|
-
constructor(initArgs?: FiveInitArgs);
|
|
206
|
-
/**
|
|
207
|
-
* 析构 five 对象。
|
|
208
|
-
* @description
|
|
209
|
-
* 一旦调用了析构方法,则不能再使用当前 five 对象了。
|
|
210
|
-
* 你可以新建一个新的。
|
|
211
|
-
*/
|
|
212
|
-
dispose(): void;
|
|
213
|
-
/**
|
|
214
|
-
* 设置 `scissor`
|
|
215
|
-
* @param scissor
|
|
216
|
-
* `scissor` 是将屏幕中的内容渲染到 `renderer` 的指定区域。
|
|
217
|
-
* 请确保在 five 初始化时传入 `renderer` 对象
|
|
218
|
-
* 页面整体长宽均为 `1`。通过类似 css 的 `left` `bottom` `width` `height` 来确定区域。
|
|
219
|
-
* @example
|
|
220
|
-
* ```
|
|
221
|
-
* five.setScissor({ left: 0.75, bottom: 0, width: 0.25, height: 1 })
|
|
222
|
-
* ```
|
|
223
|
-
*/
|
|
224
|
-
setScissor(scissor: Scissor): void;
|
|
225
|
-
/**
|
|
226
|
-
* 将显示区域加载到页面 DOM 中
|
|
227
|
-
* @description
|
|
228
|
-
* 如果你是传入的 `renderer`. 则你需要自行来方式显示区域该方法并不生效
|
|
229
|
-
*
|
|
230
|
-
* @param element 加载到页面的 DOM 元素
|
|
231
|
-
* @param size 显示区域尺寸 默认铺满这个 DOM 元素
|
|
232
|
-
*/
|
|
233
|
-
appendTo(element: HTMLElement, size?: {
|
|
234
|
-
width?: number;
|
|
235
|
-
height?: number;
|
|
236
|
-
}): void;
|
|
237
|
-
/**
|
|
238
|
-
* 设置显示区域尺寸
|
|
239
|
-
* @description
|
|
240
|
-
* 如果你是传入的 `renderer`. 则你需要自行来设置显示区域尺寸,该方法并不生效
|
|
241
|
-
*
|
|
242
|
-
* @param size 显示区域尺寸 默认铺满这个 DOM 元素
|
|
243
|
-
* @param pixelRatio 像素比 默认继承之前的设置
|
|
244
|
-
*/
|
|
245
|
-
refresh(size?: {
|
|
246
|
-
width?: number;
|
|
247
|
-
height?: number;
|
|
248
|
-
}, pixelRatio?: number): void;
|
|
249
|
-
/**
|
|
250
|
-
* 绑定一个额外 DOM 区域,接受触控/鼠标事件
|
|
251
|
-
* @returns 解除该绑定
|
|
252
|
-
*/
|
|
253
|
-
addExtraElement(element: HTMLElement): () => void;
|
|
254
|
-
/**
|
|
255
|
-
* 解除绑定的一个额外 DOM 区域
|
|
256
|
-
*/
|
|
257
|
-
removeExtraElement(element: HTMLElement): void;
|
|
258
|
-
/**
|
|
259
|
-
* 获取当前相机姿态, 可以使用 getCurrentState 代替
|
|
260
|
-
*/
|
|
261
|
-
getPose(): Pose;
|
|
262
|
-
/**
|
|
263
|
-
* 移动相机。(不触发点位移动)
|
|
264
|
-
* @description
|
|
265
|
-
* 如果动画中途被打断(用户触发行为,或者调用 setState, load, changeMode)的等
|
|
266
|
-
* 会 Promise.reject。运动完成则 Promise.resolve
|
|
267
|
-
* @param pose 相机目标位置
|
|
268
|
-
* @param duration 动画触发的时常
|
|
269
|
-
* @returns Promise 是否移动成功
|
|
270
|
-
*/
|
|
271
|
-
updateCamera(pose: Partial<Pose>, duration: number): Promise<void>;
|
|
272
|
-
/**
|
|
273
|
-
* @deprecated
|
|
274
|
-
* 获取当前相机经纬度
|
|
275
|
-
*/
|
|
276
|
-
getLongitudeAndLatitude(): Pick<Pose, "longitude" | "latitude">;
|
|
277
|
-
/**
|
|
278
|
-
* @deprecated
|
|
279
|
-
* 获取当前相机位置
|
|
280
|
-
*/
|
|
281
|
-
getOffset(): Pose["offset"];
|
|
282
|
-
/**
|
|
283
|
-
* 获取当前相机的姿态(用于内部的 python 脚本截图)
|
|
284
|
-
* @deprecated
|
|
285
|
-
*/
|
|
286
|
-
getCameraLocal(): {
|
|
287
|
-
theta: number;
|
|
288
|
-
phi: number;
|
|
289
|
-
lookAtVector: THREE.Vector3;
|
|
290
|
-
};
|
|
291
|
-
/**
|
|
292
|
-
* 初始化 initBasisLoader
|
|
293
|
-
* @description
|
|
294
|
-
* 同初始化的 initBasisLoader 参数。用于初始化 basisLoader。
|
|
295
|
-
* basisLoader 只会初始化一次,一旦初始化则不会再修改。
|
|
296
|
-
*
|
|
297
|
-
* @param transcoderResourcePath
|
|
298
|
-
* 如果不设置,使用默认解析器 basis 解析器。
|
|
299
|
-
* 可以传入解析器的 `resourcePath`, 则使用指定的解析器
|
|
300
|
-
* @example
|
|
301
|
-
* ```
|
|
302
|
-
* // 使用默认解析器
|
|
303
|
-
* five.initialBasisLoader();
|
|
304
|
-
*
|
|
305
|
-
* // 使用指定解析器
|
|
306
|
-
* // 会调用这个目录下的 basis_transcoder.js basis_transcoder.wasm 文件作为解析器
|
|
307
|
-
* five.initialBasisLoader("https://vrlab-public.ljcdn.com/release/static/image/release/five/basis/");
|
|
308
|
-
* ```
|
|
309
|
-
*/
|
|
310
|
-
initBasisLoader(transcoderResourcePath?: string): void;
|
|
311
|
-
/**
|
|
312
|
-
* 加载 Work 数据
|
|
313
|
-
* @param inputWork Work 数据
|
|
314
|
-
* @param state 初始化姿态
|
|
315
|
-
* - "inherit" 使用当前姿态
|
|
316
|
-
* - "initial" 使用 Work 数据中的 initial 姿态
|
|
317
|
-
* - State 自定义姿态
|
|
318
|
-
* @param duration 切换时间
|
|
319
|
-
*/
|
|
320
|
-
load(inputWork: Work | LooseWork | any, state?: "inherit" | "initial" | Partial<Omit<State, "offset">>, duration?: number): void;
|
|
321
|
-
/**
|
|
322
|
-
* 切换模态
|
|
323
|
-
* @param mode 切换到的模态
|
|
324
|
-
* @param state 切换完成时的姿态
|
|
325
|
-
* @param duration 模态切换动画用时
|
|
326
|
-
* @param userAction 是否时用户动作触发 默认 true
|
|
327
|
-
*/
|
|
328
|
-
changeMode<T extends Mode>(mode: T, state?: Partial<Omit<State, "mode">>, duration?: number, userAction?: boolean): Promise<void>;
|
|
329
|
-
/**
|
|
330
|
-
* 获取画面中的像素颜色
|
|
331
|
-
* @param x 获取像素区域的起始坐标 x
|
|
332
|
-
* @param y 获取像素区域的起始坐标 y
|
|
333
|
-
* @param width 获取像素区域的宽度
|
|
334
|
-
* @param height 获取像素区域的高度
|
|
335
|
-
* @param pixelRatio 获取区域的像素比
|
|
336
|
-
* @returns rgba颜色平铺的 Uint8Array
|
|
337
|
-
*/
|
|
338
|
-
getPixels(x: number, y: number, width: number, height: number, pixelRatio?: number): Uint8Array;
|
|
339
|
-
/**
|
|
340
|
-
* 获取显示用的画布(Canvas DOM节点)
|
|
341
|
-
*/
|
|
342
|
-
getElement(): HTMLCanvasElement;
|
|
343
|
-
/**
|
|
344
|
-
* 但停自动播放
|
|
345
|
-
*/
|
|
346
|
-
pause(): void;
|
|
347
|
-
/**
|
|
348
|
-
* 强制渲染
|
|
349
|
-
* @description
|
|
350
|
-
* 调用 `five.render()` 和设置 `five.needsRender = true` 均可在按需渲染时,使得画面渲染一次
|
|
351
|
-
* 区别在于:
|
|
352
|
-
* - `five.needsRender = true` 为在下帧渲染画面
|
|
353
|
-
* - `five.render()` 在当前帧渲染画面
|
|
354
|
-
* 推荐使用 `five.needsRender = true`, 可以更加流畅。但是如果需要截图等同步操作,可以使用 `five.render()`
|
|
355
|
-
*
|
|
356
|
-
* @param callback 渲染完成回调
|
|
357
|
-
*/
|
|
358
|
-
render(callback?: () => void): void;
|
|
359
|
-
play(): void;
|
|
360
|
-
/**
|
|
361
|
-
* 转化到 Panorama 模态,并移动到对应序号的观察点。
|
|
362
|
-
* @param panoIndex 观察点序号
|
|
363
|
-
* @param options 移动点位参数
|
|
364
|
-
* @param userAction 是否用户触犯
|
|
365
|
-
*/
|
|
366
|
-
moveToPano(panoIndex: number, options?: MovePanoOptions, userAction?: boolean): void;
|
|
367
|
-
/**
|
|
368
|
-
* 预加载点位图片资源
|
|
369
|
-
* @param panoIndex 观察点序号
|
|
370
|
-
* @param callback 加载完成回调, 并传递加载用时。
|
|
371
|
-
* @returns 加载完成的 Promise 参数同 callback
|
|
372
|
-
*/
|
|
373
|
-
preloadPano(panoIndex: number, callback?: (costs: number) => void): Promise<number>;
|
|
374
|
-
/**
|
|
375
|
-
* 计算三维坐标对应到屏幕的二维坐标
|
|
376
|
-
* @description
|
|
377
|
-
* 如果三维坐标不在屏幕中,则返回 null
|
|
378
|
-
* @param vector 三维坐标
|
|
379
|
-
* @param testModel 是否计算模型遮挡
|
|
380
|
-
* @returns 二维坐标 或者 null
|
|
381
|
-
*/
|
|
382
|
-
project2d(vector: THREE.Vector3, testModel?: boolean): THREE.Vector2 | null;
|
|
383
|
-
/**
|
|
384
|
-
* 获取当前在屏幕视锥中的 mesh。
|
|
385
|
-
* @param object 如果传入则检查这个对象中的mesh,如果不传,则检查整个 scene
|
|
386
|
-
*/
|
|
387
|
-
getRenderMeshes(object?: THREE.Object3D): THREE.Object3D[];
|
|
388
|
-
getCurrentState(): State;
|
|
389
|
-
/**
|
|
390
|
-
* 设置 State
|
|
391
|
-
* @description
|
|
392
|
-
* ```text
|
|
393
|
-
* five 设置了以下状态
|
|
394
|
-
*
|
|
395
|
-
* - mode: Mode
|
|
396
|
-
* - panoIndex: number
|
|
397
|
-
* - longitude: number
|
|
398
|
-
* - latitude: number
|
|
399
|
-
* - fov: number
|
|
400
|
-
* - offset: THREE.Vector3
|
|
401
|
-
*
|
|
402
|
-
* 可以通过 five.state 和 five.setState 来获取和设置。
|
|
403
|
-
* 通过 state 设置后,five 会通过合适的动画运动来达到设置的位置。
|
|
404
|
-
* 来迎合一些通过数据驱动的场景。
|
|
405
|
-
*
|
|
406
|
-
* @param state 目标状态
|
|
407
|
-
* @param immediately 是否马上转换,马上转换会尽快达到目标状态,尽量减少中间状态,更少动画。
|
|
408
|
-
*/
|
|
409
|
-
setState(state: Partial<State>, immediately?: boolean): void;
|
|
410
|
-
private syncState;
|
|
411
|
-
private updateResolution;
|
|
412
|
-
private throwError;
|
|
413
|
-
private loadModel;
|
|
414
|
-
private commonParams;
|
|
415
|
-
private saveControllerPose;
|
|
416
|
-
private applyController;
|
|
417
|
-
}
|
|
418
|
-
export { Five, FiveInitArgs };
|
package/application/five.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Five=void 0;var e=require("tslib"),t=e.__importStar(require("three")),o=require("../core/camera"),r=require("../core/scene"),n=require("../core/internalWebGLRenderer"),i=require("../utils/isNil"),a=require("../utils/noop"),s=require("../utils/uuid"),d=require("../utils/animationFrame"),l=require("../meshes/boundingMesh"),u=require("../loaders/model"),h=require("../utils/cameraWorldToLocal"),c=require("../utils/now"),f=require("../utils/busy"),p=require("../utils/webglError"),m=require("../utils/imageURL"),v=require("../utils/preload"),g=require("../utils/tween"),y=require("../utils/calculateProgress"),w=require("../utils/calculateProgress"),x=require("../utils/tween"),M=require("../objects/line"),P=require("../loaders/basis"),b=require("../core/subscribe"),C=require("../work"),E=require("./controllers"),L=require("./controllers"),I=require("./events"),S=require("./generateDefaultVideoElement"),R=require("./initLights"),T=require("./getViewportScale"),q=new t.Box3(new t.Vector3(-50,-50,-50),new t.Vector3(50,50,50)),k=new t.Frustum,_=new t.Matrix4,F=function(b){function F(e){var i,a,h,c,f,p,m,v,g,y,w,x;void 0===e&&(e={});var M=b.call(this)||this;if(M.ident=s.uuid(),M.panoIndex=0,M.needsRender=!1,M.getPixelsRenderTarget=new t.WebGLRenderTarget(1,1),M.onlyRenderIfNeeds=null===(i=e.onlyRenderIfNeeds)||void 0===i||i,M.maxFps=null!==(a=e.maxFps)&&void 0!==a&&a,M.imageOptions=e.imageOptions||{},M.textureOptions=e.textureOptions||M.imageOptions||{},M.extraElements=[],M.controllerInits={Panorama:null!==(h=e.panorama)&&void 0!==h?h:{},Model:null!==(c=e.model)&&void 0!==c?c:{},Floorplan:null!==(f=e.floorplan)&&void 0!==f?f:{},Topview:null!==(p=e.topview)&&void 0!==p?p:{},DepthPanorama:null!==(m=e.depthPanorama)&&void 0!==m?m:{},VRPanorama:null!==(v=e.vrPanorama)&&void 0!==v?v:{}},M.modeChangeDuration=null!==(g=e.modeChangeDuration)&&void 0!==g?g:1e3,M.panoramaLikeSavedPose={},e.renderer)e.renderer instanceof n.InternalWebGLRenderer&&M.throwError(new Error("cannot render a internal renderer")),M.renderer=e.renderer;else try{M.renderer=new n.InternalWebGLRenderer({preserveDrawingBuffer:e.preserveDrawingBuffer,backgroundColor:e.backgroundColor,backgroundAlpha:e.backgroundAlpha,antialias:e.antialias});var P=T.getViewportScale();M.renderer.setPixelRatio(1===P?window.devicePixelRatio:1),M.renderer.setSize(512,512)}catch(e){M.throwError(e)}M.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),M.camera=new o.Camera(L.DEFAULT_FOV),M.scene=new r.Scene,M.model=new u.Model;var C=l.generateBoundingMesh(q);if(M.model.add(C),M.model.name="model_empty",M.model.empty=!0,M.model.loaded=!1,M.videoTexture=new t.VideoTexture(e.videoInstance||S.generateDefaultVideoElement()),M.plugins={},e.plugins)for(var E=0,I=e.plugins;E<I.length;E++){var k=I[E];if("function"==typeof k)k(M);else if(Array.isArray(k)){var _=k[0],F=k[1],O=k[2],V=_(M,O);"string"==typeof F&&(M.plugins[F]&&M.throwError(new Error("plugin name "+F+" is exists.")),M.plugins[F]=V)}}return R.initLights(M.scene),M.state={mode:null!==(y=M.currentMode)&&void 0!==y?y:L.DEFAULT_MODE,panoIndex:null!==(w=M.panoIndex)&&void 0!==w?w:0,longitude:M.camera.pose.longitude,latitude:M.camera.pose.latitude,fov:M.camera.pose.fov,offset:M.camera.pose.offset.clone()},M.statePending=!1,M.stateSynced=!1,M.destroyed=!1,M.paused=!0,!1!==e.play&&M.play(),!1!==(null!==(x=e.initialBasisLoader)&&void 0!==x&&x)&&("string"==typeof e.initialBasisLoader?M.initBasisLoader(e.initialBasisLoader):M.initBasisLoader()),d.requestAnimationFrameInterval((function(){return M.syncState()})),M}return e.__extends(F,b),F.prototype.dispose=function(){if(!0!==this.destroyed){this.emit("dispose"),this.destroyed=!0,this.pause(),this.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var e=this.getElement();e&&e.parentNode&&e.parentNode.removeChild(e),this.scene.remove(this.model);var t=this.model.getMaterial();t&&(t.pano0Map&&t.pano0Map.dispose(),t.pano1Map&&t.pano1Map!==t.pano0Map&&t.pano1Map.dispose()),this.renderer instanceof n.InternalWebGLRenderer&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},F.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.resize&&this.controller.resize()},F.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer instanceof n.InternalWebGLRenderer){e.appendChild(this.getElement()),this.refresh(t);var o=window.getComputedStyle(e).position;"relative"!==o&&"absolute"!==o&&"fixed"!==o&&"sticky"!==o&&(e.style.position="relative")}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},F.prototype.refresh=function(e,o){void 0===e&&(e={});var r=this.getElement().parentNode;if(r&&r.nodeName){var i=e.width,a=void 0===i?r.offsetWidth:i,s=e.height,d=void 0===s?r.offsetHeight:s;this.renderer instanceof n.InternalWebGLRenderer&&(o&&this.renderer.setPixelRatio(o),this.renderer.setSize(a,d))}var l=this.renderer.getSize(new t.Vector2);this.camera.aspect=l.x/l.y,this.scissor&&(this.camera.aspect*=this.scissor.width/this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.resize&&this.controller.resize(),this.needsRender=!0},F.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},F.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},F.prototype.getPose=function(){return this.camera.copyPose()},F.prototype.updateCamera=function(e,t){var o=this;return new Promise((function(r,n){if(o.controller){var i=o.getPose(),a=i.longitude,s=i.latitude,d=i.fov,l=e.longitude,u=void 0===l?a:l,h=e.latitude,c=void 0===h?s:h,f=e.fov,p=void 0===f?d:f;o.controller.tweenCoordinates&&(o.controller.tweenCoordinates.destroy(),delete o.controller.tweenCoordinates),o.tweenCoordinates&&(o.tweenCoordinates.destroy(),delete o.tweenCoordinates);var m=o.tweenCoordinates=g.tweenProgress(t,x.Easing.Linear.None).onUpdate((function(e){var t,r=e.progress,n=y.progressRad(a,u,r),i=y.progressNumber(s,c,r),l=y.progressNumber(d,p,r);null===(t=o.controller)||void 0===t||t.updateCamera({longitude:n,latitude:i,fov:l},!0,!0)})).onCancel((function(){for(var e=0,t=w;e<t.length;e++){(0,t[e])()}delete o.tweenCoordinates,n(new Error("updateCamera animation canceled"))})).onComplete((function(){for(var e=0,t=w;e<t.length;e++){(0,t[e])()}m.destroy(),delete o.tweenCoordinates,r()})),v=function(){return m.destroy()},w=[o.on("gesture",v),o.on("setState",v),o.on("load",v)]}else{var M=new Error("controller never initialized");n(M)}}))},F.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},F.prototype.getOffset=function(){return this.getPose().offset},F.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var e=this.work.observers[this.panoIndex],o=new t.Object3D;return o.position.copy(e.position),o.quaternion.copy(e.quaternion),o.scale.set(1,1,1),o.updateMatrixWorld(!0),h.cameraWorldToLocal(this.camera,o)}},F.prototype.initBasisLoader=function(e){try{if("undefined"==typeof Promise||"undefined"==typeof WeakMap||"undefined"==typeof WebAssembly)throw new Error("Basis loader not support.");"string"==typeof e&&P.basisLoader.setResourcePath(e),P.basisLoader.workerConfig.format||P.basisLoader.detectSupport(this.renderer),P.basisLoader._allocateWorker(0)}catch(e){this.throwError(e)}},F.prototype.load=function(t,o,r){var n,i,s,d,l,u,h,c,f,p,m,v,g=this,y=this.work,w=C.parseWork(t);void 0===o&&(o=y?"inherit":"initial"),"inherit"===o?(p="number"==typeof this.panoIndex&&w.observers[this.panoIndex]?this.panoIndex:w.initial.panoIndex,m=null!==(n=this.currentMode)&&void 0!==n?n:w.initial.mode,v={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===o?(m=null!==(i=this.currentMode)&&void 0!==i?i:w.initial.mode,p=w.initial.panoIndex,v="Panorama"===m||"DepthPanorama"===m||"Model"===m||"VRPanorama"===m?{longitude:w.initial.longitude,latitude:w.initial.latitude,fov:w.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(p=null!==(s=o.panoIndex)&&void 0!==s?s:w.initial.panoIndex,m=null!==(l=null!==(d=o.mode)&&void 0!==d?d:this.currentMode)&&void 0!==l?l:L.DEFAULT_MODE,v={longitude:null!==(u=o.longitude)&&void 0!==u?u:w.initial.longitude,latitude:null!==(h=o.latitude)&&void 0!==h?h:w.initial.latitude,fov:null!==(c=o.fov)&&void 0!==c?c:w.initial.fov}),this.emit("willLoad",t,w,{panoIndex:p,mode:m,longitude:v.longitude,latitude:v.latitude,fov:v.fov});var x=function(){g.work=w,g.panoIndex=p,g.panoramaLikeSavedPose.longitude=w.initial.longitude,g.panoramaLikeSavedPose.latitude=w.initial.latitude,g.panoramaLikeSavedPose.fov=w.initial.fov;var o=null!=r?r:void 0===y?0:g.modeChangeDuration,n={panoIndex:p,longitude:v.longitude,latitude:v.latitude,fov:v.fov},i=e.__assign(e.__assign({panoIndex:p,initial:[{longitude:v.longitude,latitude:v.latitude,fov:v.fov},o,!0]},g.commonParams()),g.controllerInits[m]);g.controller?!1===g.controller.updateWork(w,n,o,!0)&&(g.controller.destroy(),g.controller=g.applyController(m,i)):g.controller=g.applyController(m,i),g.emit("load",t,w,{panoIndex:p,mode:m,longitude:v.longitude,latitude:v.latitude,fov:v.fov})},M=function(e,t){var o,r;void 0===t&&(t=a.noop),e&&((null===(o=null==y?void 0:y.model)||void 0===o?void 0:o.file)!==(null===(r=w.model)||void 0===r?void 0:r.file)?(g.emit("modelWillLoad",e),g.loadModel(e,t,!0)):t&&(!0===g.model.loaded?t():g.once("modelLoaded",(function(){return t()}))))};m===F.Mode.Floorplan||m===F.Mode.Topview||m===F.Mode.Model?M(w.model,(function(){x()})):(x(),null===(f=this.controller)||void 0===f||f.once("panoLoaded",(function(){return M(w.model)})))},F.prototype.changeMode=function(t,o,r,n){var a=this;return void 0===o&&(o={}),void 0===r&&(r=this.modeChangeDuration),void 0===n&&(n=!0),new Promise((function(s,d){var l;if(!F.Mode.hasOwnProperty(t)){var u=new Error('mode "'+t+'" is not existed');return a.throwError(u),void d(u)}if(t!==F.Mode.Floorplan&&t!==F.Mode.Topview&&t!==F.Mode.Model||!i.isNil(a.model)&&!0===a.model.loaded){if(i.isNil(a.controller))return a.currentMode=t,a.panoIndex=null!==(l=o.panoIndex)&&void 0!==l?l:a.panoIndex,a.updateCamera(o,r);var h=a.controller,c=a.currentMode,f=function(){var i,d;a.saveControllerPose(h);var l=e.__assign(e.__assign({panoIndex:null!==(d=null!==(i=o.panoIndex)&&void 0!==i?i:a.panoIndex)&&void 0!==d?d:0,initial:[E.isPoseSaveMode(t)?a.panoramaLikeSavedPose:o,r,n]},a.commonParams()),a.controllerInits[t]);a.emit("wantsChangeMode",t,c)||(h.destroy(),a.controller=a.applyController(t,l),a.controller.once("initAnimationWillStart",(function(e,o){a.emit("modeChange",t,c,e,o)})),a.emit("currentStateChange",a.getCurrentState(),n),s())};t===F.Mode.VRPanorama&&"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)f();else{var t=new Error("Request DeviceOrientation Permission denied.");a.throwError(t),d(t)}})).catch((function(e){a.throwError(e),d(e)})):f()}else{u=new Error("model is not ready.");a.throwError(u)}}))},F.prototype.getPixels=function(e,o,r,n,i){void 0===i&&(i=1);var a=this.getPixelsRenderTarget,s=this.renderer.getSize(new t.Vector2);e=Math.min(Math.max(e,Math.floor(r/2)),Math.floor(s.x-r)),o=Math.min(Math.max(o,Math.floor(n/2)),Math.floor(s.y-n)),e*=i,o*=i,r*=i,n*=i,a.setSize(s.x*i,s.y*i),a.scissor.set(e,o,r,n),a.scissorTest=!0,this.renderer.setRenderTarget(a);var d=new Uint8Array(r*n*4);return this.controller?this.controller.render():this.renderer.render(this.scene,this.camera),this.renderer.readRenderTargetPixels(a,e,o,r,n,d),this.renderer.setRenderTarget(null),a.setSize(1,1),a.scissor.set(0,0,0,0),a.scissorTest=!1,d},F.prototype.getElement=function(){return this.renderer.domElement},F.prototype.pause=function(){},F.prototype.render=function(e){if(this.updateResolution(),this.controller){var o=new t.Vector2,r=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||0!==this.scissor.height;if(r){this.renderer.getSize(o);var n=Math.floor(o.x*this.scissor.left),i=Math.floor(o.y*this.scissor.bottom),a=Math.floor(o.x*this.scissor.width),s=Math.floor(o.y*this.scissor.height);this.renderer.setViewport(n,i,a,s),this.renderer.setScissor(n,i,a,s),this.renderer.setScissorTest(!0)}this.controller.render(),r&&(this.renderer.setViewport(0,0,o.x,o.y),this.renderer.setScissor(0,0,o.x,o.y),this.renderer.setScissorTest(!1)),(l=p.webglError(this.renderer.getContext()))&&this.throwError(l)}else{var l;this.renderer.render(this.scene,this.camera),(l=p.webglError(this.renderer.getContext()))&&this.throwError(l)}e&&d.nextFrame(e)},F.prototype.play=function(){var e=this;this.pause(),this.needsRender=!0;var t=c.now(),o=c.now(),i=0;this.paused=!1;var a=d.requestAnimationFrameInterval((function(){if(!0!==e.paused&&!e.destroyed){var n=c.now();if(e.maxFps){if(n-t+1<=1e3/e.maxFps)return;t=n}if(e.currentMode!==F.Mode.VRPanorama&&e.onlyRenderIfNeeds){for(var a=0,s=e.getRenderMeshes();a<s.length;a++)for(var d=s[a];d;)!0===d.needsRender&&(d.needsRender=!1,e.needsRender=!0),(d=d.parent)&&d instanceof r.Scene&&(d=null);e.controller&&!0===e.controller.needsRender&&(e.controller.needsRender=!1,e.needsRender=!0),!1!==e.needsRender&&e.render()}else e.render();e.needsRender=!1,e.hasListener("renderFrame")&&e.emit("renderFrame"),e.hasListener("fps")&&(o&&n-o<1e3?i++:(o&&e.emit("fps",i),o=n,i=0))}}));this.pause=function(){e.paused=!0,a(),e.renderer&&e.renderer instanceof n.InternalWebGLRenderer&&e.renderer.clear(!0,!0,!0)}},F.prototype.moveToPano=function(e,t,o){var r;void 0===t&&(t={}),void 0===o&&(o=!0);var n=this.moveToPanoQueue=this.moveToPanoQueue||[],a=this.controller,s=this.currentMode;if(a)if(s===F.Mode.Floorplan||s===F.Mode.Topview)n.length=0,delete n.dequeue,i.isNil(e)||(this.panoIndex=e,this.changeMode(F.Mode.Panorama,t));else{if((null===(r=this.controller)||void 0===r?void 0:r.tweenPosition)||(n.length=0,delete n.dequeue),n.push([e,t,o]),n.length>2&&(n.length=2),n.dequeue)return;var l=function(){if(0!==n.length){var e=n.shift(),t=e[0],o=e[1],r=void 0===o?{}:o,i=e[2],s=Object.assign({},r);s.moveEndCallback=function(){for(var e,t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];return r.moveEndCallback&&(e=r.moveEndCallback.apply(this,t)),setTimeout(l),e},s.moveCancelCallback=function(){for(var e,t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];return r.moveCancelCallback&&(e=r.moveCancelCallback.apply(this,t)),setTimeout(l),e},a&&"moveToPano"in a&&d.nextFrame((function(){return a.moveToPano(t,s,i)}))}else delete n.dequeue};n.dequeue=!0,l()}},F.prototype.preloadPano=function(t,o){var r=this;if(void 0===o&&(o=a.noop),!this.work)return Promise.reject(new Error("work never loaded"));var n=this.work.observers[t],i=c.now();return Promise.all(["right","left","up","down","front","back"].map((function(o){var i=e.__assign({key:["cube",t,o].join("."),basisLoaderInitialized:P.basisLoader.isInitialized()},r.imageOptions);return v.preload(m.imageURL(n.images[o],i))}))).then((function(){var e=c.now()-i;return o(e),e}))},F.prototype.project2d=function(e,o){if(void 0===o&&(o=!1),!1===this.model.empty&&o){var r=this.camera.position,n=e.clone().sub(r),i=new t.Raycaster(r,n.clone().normalize()),a=this.model.intersectRaycaster(i)[0];if(a&&a.distance+.01<n.length())return null}var s=e.clone().project(this.camera);if(Math.abs(s.z)>1)return null;var d=this.renderer.getSize(new t.Vector2),l=d.x*this.scissor.width,u=d.y*this.scissor.height,h=d.x*this.scissor.left+(s.x+1)/2*l,c=d.y*(1-this.scissor.bottom-this.scissor.height)+(1-s.y)/2*u;return new t.Vector2(h,c)},F.prototype.getRenderMeshes=function(e){_.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),k.setFromProjectionMatrix(_),e||(e=this.scene);var o=[];return e.traverseVisible((function(e){(e instanceof t.Mesh||e instanceof t.Line||e instanceof t.Points)&&(e instanceof t.ImmediateRenderObject||!e.frustumCulled||k.intersectsObject(e))&&o.push(e)})),o},F.prototype.getCurrentState=function(){return e.__assign(e.__assign({},this.camera.copyPose()),{mode:this.currentMode||F.Mode.Panorama,panoIndex:this.panoIndex||0})},F.prototype.setState=function(t,o){var r,n,a,s,d,l;void 0===o&&(o=!1);var u,h,c,f,p=null!==(r=t.panoIndex)&&void 0!==r?r:this.state.panoIndex,m=null!==(n=t.mode)&&void 0!==n?n:this.state.mode;if(t.mode!==F.Mode.Floorplan&&t.mode!==F.Mode.Topview&&t.mode!==F.Mode.Model||!i.isNil(this.model)&&!0===this.model.loaded){if(this.state.mode!==m){var v=void 0;v=E.isPoseSaveMode(this.state.mode)&&E.isPoseSaveMode(m)?this.state:E.isPoseSaveMode(m)?this.panoramaLikeSavedPose:t;var g=e.__assign(e.__assign({panoIndex:p,initial:[v,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[m]),y=E.Controllers[m].initAnimationEndPose(g);u=y.longitude,h=y.latitude,c=y.fov,f=y.offset}else u=null!==(a=t.longitude)&&void 0!==a?a:this.state.longitude,h=null!==(s=t.latitude)&&void 0!==s?s:this.state.latitude,c=null!==(d=t.fov)&&void 0!==d?d:this.state.fov,f=null!==(l=t.offset)&&void 0!==l?l:this.state.offset;this.emit("setState",{longitude:u,latitude:h,fov:c,offset:f,mode:m,panoIndex:p}),(p!==this.state.panoIndex||m!==this.state.mode||u!==this.state.longitude||h!==this.state.latitude||c!==this.state.fov||!f.equals(this.state.offset))&&(this.state.panoIndex=p,this.state.mode=m,this.state.longitude=u,this.state.latitude=h,this.state.fov=c,this.state.offset.copy(f),o&&this.syncState(o),this.emit("stateChange",this.state,!0))}else this.throwError(new Error("model is not ready."))},F.prototype.syncState=function(e){if(void 0===e&&(e=!1),this.controller&&!0!==this.statePending){var o=this.stateSynced;if(this.stateSynced=!1,this.state.mode===this.currentMode){if(this.controller instanceof E.Controllers.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var r={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return void this.controller.moveToPosition(this.state.offset,r,!1)}}else if(this.state.panoIndex!==this.panoIndex){r={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return void this.controller.moveToPano(this.state.panoIndex,r,!1)}if(this.controller instanceof E.Controllers.Topview){var n=e?new t.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new t.Vector3(w.stepNumber(this.camera.pose.offset.x,this.state.offset.x,.2),w.stepNumber(this.camera.pose.offset.y,this.state.offset.y,.2),w.stepNumber(this.camera.pose.offset.z,this.state.offset.z,.2));if(!this.camera.pose.offset.equals(n))return void this.controller.updateCamera({offset:n},!1,!1)}else{var i=Math.PI/45,a=e?this.state.fov:w.stepNumber(this.camera.pose.fov,this.state.fov,1),s=e?{longitude:this.state.longitude,latitude:this.state.latitude}:w.stepCoordinates({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},i),d=s.longitude,l=s.latitude;if(a!==this.camera.pose.fov||d!==this.camera.pose.longitude||l!==this.camera.pose.latitude)return this.controller.tweenCoordinates&&(this.controller.tweenCoordinates.destroy(),delete this.controller.tweenCoordinates),void this.controller.updateCamera({longitude:d,latitude:l,fov:a},!1,!1)}this.stateSynced=!0,!1===o&&this.emit("stateSynced",this.state)}else{var u={panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};this.changeMode(this.state.mode,u,this.modeChangeDuration,!1)}}},F.prototype.updateResolution=function(){var e=this.renderer.getSize(new t.Vector2);this.scene.traverseVisible((function(t){t instanceof M.FiveLine&&t.setResolution(e.x,e.y)}))},F.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},F.prototype.loadModel=function(e,t,o){var r=this,n=e.async||!1;this.emit("modelWillLoad",e);var i=new u.Model;i.once("bvhLoaded",(function(){r.emit("modelBvhLoaded",i)})),i.once("geometryLoaded",(function(){r.emit("modelGeometryLoaded",i)})),i.on("error",(function(e){r.emit("modelLoadError",e,i),r.throwError(e)})),i.once("loaded",(function(){if(!r.destroyed){i.bounding.max.y-i.bounding.min.y<1.5&&(i.bounding.max.y=i.bounding.min.y+10);var a,s=r.model;s&&(a=s.getMaterial()||{},r.scene.remove(s),s.dispose(),i.setTransparent(s.getTransparent()),i.visible=s.visible),r.model=Object.assign(i,{loaded:!0}),a&&r.model.setMaterial(a),s&&r.currentMode!==F.Mode.Panorama&&(n=!1);var u=function(){var n;t(),r.emit("modelLoaded",i),d.nextFrame((function(){return r.emit("modelMaterialLoaded",i)})),null===(n=r.controller)||void 0===n||n.resetModel(r.model,o),e.bvh&&f.delay((function(){return i.buildBVH()})),"function"==typeof gc&&gc(),r.needsRender=!0};if(n){var h=[].concat(r.model.children);r.model.children.length=0;var c=l.generateBoundingMesh(q);c.name="uniformKeeper",c.visible=!1,c.setMaterial(a||{}),r.model.add(c),r.scene.add(r.model);var p=function(){f.delay((function(){var e=h.shift();e?(r.model.setMaterial.call(e,r.model.getMaterial()||{}),r.model.add(e),null===r.model.shownfloor?r.model.show():r.model.show(r.model.shownfloor),d.nextFrame(p,2)):(r.model.remove(c),u())}))};p()}else s?(r.scene.add(r.model),u()):f.delay((function(){r.scene.add(r.model),u()}))}})),i.load(e,this.textureOptions)},F.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,extraElements:this.extraElements,videoTexture:this.videoTexture}},F.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&E.isPoseSaveMode(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},F.prototype.applyController=function(t,o){var r=this,n=E.Controllers[t];t===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(t===F.Mode.Floorplan||t===F.Mode.Topview||t===F.Mode.Model),this.currentMode=t,this.statePending=!0;for(var i=new n(o),a=function(t){i.on(t,(function(){for(var o=[],n=0;n<arguments.length;n++)o[n]=arguments[n];var i=r.emit.apply(r,e.__spreadArray([t],o));if(i)return!1}))},s=0,d=I.PROXY_CONTROLLER_EVENT_NAMES;s<d.length;s++){a(d[s])}return i.on("initAnimationWillStart",(function(e,o,n){n&&(r.state.mode=t,r.state.panoIndex=e,r.state.longitude=o.longitude,r.state.latitude=o.latitude,r.state.fov=o.fov,r.state.offset.copy(o.offset),r.emit("stateChange",r.state,n)),r.statePending=!0})),i.on("initAnimationEnded",(function(e,o,n){n&&(r.state.mode=t,r.state.panoIndex=e,r.state.longitude=o.longitude,r.state.latitude=o.latitude,r.state.fov=o.fov,r.state.offset.copy(o.offset),r.emit("stateChange",r.state,n)),r.statePending=!1})),i.on("moveToPano",(function(e,t){r.statePending=!0,r.emit("currentStateChange",r.getCurrentState(),t)})),i.on("moveToPanoCanceled",(function(){r.statePending=!1})),i.on("panoWillArrive",(function(e,t,o){r.panoIndex=e,o&&(r.state.panoIndex=e,r.state.longitude=t.longitude,r.state.latitude=t.latitude,r.state.fov=t.fov,r.state.offset.copy(t.offset),r.emit("stateChange",r.state,o))})),i.on("panoArrived",(function(){"function"==typeof gc&&gc(),r.statePending=!1})),i.on("wantsMoveToPano",(function(e,t,o){var n=r.emit("wantsMoveToPano",e,t,o);n||(n=r.emit("wantsToMoveToPano",e,t,o)),n||r.moveToPano(e,t,o)})),i.on("cameraUpdate",(function(e,t){t&&r.state.mode===r.currentMode&&r.state.panoIndex===r.panoIndex&&(r.state.longitude=e.longitude,r.state.latitude=e.latitude,r.state.fov=e.fov,r.state.offset.copy(e.offset),r.emit("stateChange",r.state,t)),r.emit("currentStateChange",r.getCurrentState(),t)})),i.on("vrWantsToExit",(function(){r.currentMode===F.Mode.VRPanorama&&r.changeMode(F.Mode.Panorama)})),i.on("error",(function(e){return r.emit("error",e)})),i},F.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama"},F.FiveLine=M.FiveLine,F.Easing=x.Easing,F}(b.Subscribe);exports.Five=F;
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import * as THREE from "three";
|
|
2
|
-
import { ImageOptions } from "../types/imageOptions";
|
|
3
|
-
import { Scissor } from "../types/scissor";
|
|
4
|
-
import { ControllerCustomInitTypes } from "./controllers";
|
|
5
|
-
import { FivePlugin, FivePluginInit } from "../types/plugin";
|
|
6
|
-
/** Five 初始化参数 */
|
|
7
|
-
interface FiveInitArgs {
|
|
8
|
-
/**
|
|
9
|
-
* 外部传入的 `THREE.WebGLRenderer`。
|
|
10
|
-
* @description
|
|
11
|
-
* 如果需要使用 `scissor` 分割画布功能,则必须使用外部传入 renderer,
|
|
12
|
-
* 并且设置为 `preserveDrawingBuffer: false`。
|
|
13
|
-
* 如果设置了 `renderer`, 则 `preserveDrawingBuffer`
|
|
14
|
-
* `backgroundColor` `backgroundAlpha` `antialias`
|
|
15
|
-
* 均不再生效。
|
|
16
|
-
*/
|
|
17
|
-
renderer?: THREE.WebGLRenderer;
|
|
18
|
-
/**
|
|
19
|
-
* 内部 `THREE.WebGLRenderer` 是否通过像素拷贝的方式绘制。
|
|
20
|
-
* @description
|
|
21
|
-
* 当你想做屏幕截图等要确定取得屏幕像素时,请设置为 `true`。
|
|
22
|
-
* 如果设置了参数 `renderer` 参数,则不生效,请对传入的 `renderer` 自行设置。
|
|
23
|
-
* @default `false`
|
|
24
|
-
*/
|
|
25
|
-
preserveDrawingBuffer?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* 输出画面的背景颜色。
|
|
28
|
-
* @description
|
|
29
|
-
* 通过数字类型传入。
|
|
30
|
-
* 如果设置了参数 `renderer` 参数,则不生效,请对传入的 `renderer` 自行设置。
|
|
31
|
-
* @default `0x181A1C`
|
|
32
|
-
* @example
|
|
33
|
-
* ```
|
|
34
|
-
* backgroundColor: 0xffffff // 白色
|
|
35
|
-
* backgroundColor: 0xff0000 // 红色
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
backgroundColor?: number;
|
|
39
|
-
/**
|
|
40
|
-
* 输出画面的背景透明度
|
|
41
|
-
* @description
|
|
42
|
-
* 通过数字类型传入。取值范围 [0-1]
|
|
43
|
-
* 如果设置了参数 `renderer` 参数,则不生效,请对传入的 `renderer` 自行设置。
|
|
44
|
-
* @default `1`
|
|
45
|
-
*/
|
|
46
|
-
backgroundAlpha?: number;
|
|
47
|
-
/**
|
|
48
|
-
* 是否开启 `THREE.WebGLRenderer` 的抗锯齿功能
|
|
49
|
-
* @description
|
|
50
|
-
* 这个抗锯齿功能是 `WEBGL` 自带的抗锯齿,并不是类似 fxaa taa 等后处理方式,比较吃性能。
|
|
51
|
-
* 如果设置了参数 `renderer` 参数,则不生效,请对传入的 `renderer` 自行设置。
|
|
52
|
-
* @default `false`
|
|
53
|
-
*/
|
|
54
|
-
antialias?: boolean;
|
|
55
|
-
/**
|
|
56
|
-
* 屏幕渲染区域
|
|
57
|
-
* @description
|
|
58
|
-
* 请确保设置了 `renderer` 参数,`scissor` 参数才可生效
|
|
59
|
-
* `scissor` 是将屏幕中的内容渲染到 `renderer` 的指定区域。
|
|
60
|
-
* 页面整体长宽均为 `1`。通过类似 css 的 `left` `bottom` `width` `height` 来确定区域。
|
|
61
|
-
* @example
|
|
62
|
-
* ```
|
|
63
|
-
* scissor: { left: 0.75, bottom: 0, width: 0.25, height: 1 }
|
|
64
|
-
* ```
|
|
65
|
-
*/
|
|
66
|
-
scissor?: Scissor;
|
|
67
|
-
/**
|
|
68
|
-
* 是否自动播放。
|
|
69
|
-
* @description
|
|
70
|
-
* 播放即把内存中计算的内容渲染到画面上。play则是进行每帧播放。
|
|
71
|
-
* 如果 `play: false` 则不自动播放。屏幕不显示。
|
|
72
|
-
* 你还可以通过 `five.play()` `five.pause()` 的方式来控制播放。
|
|
73
|
-
* @default `true`
|
|
74
|
-
*/
|
|
75
|
-
play?: boolean;
|
|
76
|
-
/**
|
|
77
|
-
* 全景图的配置参数
|
|
78
|
-
* @description
|
|
79
|
-
* 可以动态对配置在 `work` 数据中的全景图片在 runtime 做 url 调整。
|
|
80
|
-
* 平衡加载时间和图片质量
|
|
81
|
-
*/
|
|
82
|
-
imageOptions?: ImageOptions;
|
|
83
|
-
/**
|
|
84
|
-
* 模型贴图的配置参数
|
|
85
|
-
* @description
|
|
86
|
-
* 可以动态对配置在 `work` 数据中的模型贴图在 runtime 做 url 调整。
|
|
87
|
-
* 平衡加载时间和图片质量
|
|
88
|
-
*/
|
|
89
|
-
textureOptions?: ImageOptions;
|
|
90
|
-
/**
|
|
91
|
-
* 是否按需渲染
|
|
92
|
-
* @description
|
|
93
|
-
* 按需渲染时,如果页面中的渲染有 `needsRender: true` 属性。或者 `five.needsRender: true` 时
|
|
94
|
-
* 才会重新渲染屏幕,降低无用渲染产生的消耗。
|
|
95
|
-
* @default `true`
|
|
96
|
-
*/
|
|
97
|
-
onlyRenderIfNeeds?: boolean;
|
|
98
|
-
/**
|
|
99
|
-
* 最高 fps 限制
|
|
100
|
-
* @description
|
|
101
|
-
* 如果为 `false`, 则不限制。最好也就是屏幕刷新率,不会再高了。
|
|
102
|
-
* @default `false`
|
|
103
|
-
*/
|
|
104
|
-
maxFps?: number | false;
|
|
105
|
-
/**
|
|
106
|
-
* 是否初始化 `basisLoader`。
|
|
107
|
-
* @description
|
|
108
|
-
* 当你需要加载 basis 格式图片时请启用。
|
|
109
|
-
* 如果设置为 `true` 使用默认解析器 basis 解析器。
|
|
110
|
-
* 如果要自定义,可以传入解析器的 `resourcePath`, 则使用指定的解析器
|
|
111
|
-
* @default `false`
|
|
112
|
-
* @example
|
|
113
|
-
* ```
|
|
114
|
-
* // 使用默认解析器
|
|
115
|
-
* initialBasisLoader: true
|
|
116
|
-
*
|
|
117
|
-
* // 使用指定解析器
|
|
118
|
-
* // 会调用这个目录下的 basis_transcoder.js basis_transcoder.wasm 文件作为解析器
|
|
119
|
-
* initialBasisLoader: "https://vrlab-public.ljcdn.com/release/static/image/release/five/basis/"
|
|
120
|
-
* ```
|
|
121
|
-
*/
|
|
122
|
-
initialBasisLoader?: boolean | string;
|
|
123
|
-
/**
|
|
124
|
-
* 外挂视频对象。
|
|
125
|
-
* @description
|
|
126
|
-
* 当点位中有视频元素,则会使用。如果不传入也会外部新建,
|
|
127
|
-
* 加入传入的原因是,视频自动播放在不同浏览器或者 webview 中有不同的特性。
|
|
128
|
-
* 给予更多外部操作的空间。
|
|
129
|
-
*/
|
|
130
|
-
videoInstance?: HTMLVideoElement;
|
|
131
|
-
/** 全景图游走模式下的特定参数 */
|
|
132
|
-
panorama?: ControllerCustomInitTypes["Panorama"];
|
|
133
|
-
/** 模型游走模式下的特定参数 */
|
|
134
|
-
model?: ControllerCustomInitTypes["Model"];
|
|
135
|
-
/** 模型查看模式下的特定参数 */
|
|
136
|
-
floorplan?: ControllerCustomInitTypes["Floorplan"];
|
|
137
|
-
/** 户型图模式下的特定参数 */
|
|
138
|
-
topview?: ControllerCustomInitTypes["Topview"];
|
|
139
|
-
/** 深度图游走模式下的特定参数 */
|
|
140
|
-
depthPanorama?: ControllerCustomInitTypes["DepthPanorama"];
|
|
141
|
-
/** VR眼镜模式下的特定参数 */
|
|
142
|
-
vrPanorama?: ControllerCustomInitTypes["VRPanorama"];
|
|
143
|
-
/**
|
|
144
|
-
* 模式间切换时的过度动画时间
|
|
145
|
-
* @description
|
|
146
|
-
* 单位毫秒
|
|
147
|
-
* @default `1000`
|
|
148
|
-
*/
|
|
149
|
-
modeChangeDuration?: number;
|
|
150
|
-
/**
|
|
151
|
-
* 插件定义
|
|
152
|
-
* @description
|
|
153
|
-
* 详见插件部分。
|
|
154
|
-
*/
|
|
155
|
-
plugins?: (FivePlugin<void> | FivePluginInit<FivePlugin<any, any>> | FivePluginInit<FivePlugin<void, any>>)[];
|
|
156
|
-
}
|
|
157
|
-
export { FiveInitArgs };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateDefaultVideoElement=void 0,exports.generateDefaultVideoElement=function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";function t(t){for(var e,r,i={},o=0,n=t.split(/(\;|\,)/);o<n.length;o++){var l=n[o].split("="),a=null===(e=l[0])||void 0===e?void 0:e.trim(),u=null===(r=l[1])||void 0===r?void 0:r.trim();a&&u&&(i[a]=u)}return i}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getViewportScale=void 0,exports.getViewportScale=function(){for(var e,r=document.getElementsByTagName("meta"),i=0;i<r.length;i++){var o=r[i];if("viewport"===o.getAttribute("name")){var n=t(null!==(e=o.getAttribute("content"))&&void 0!==e?e:""),l=Number(n["initial-scale"]);if(!isNaN(l))return l}}return 1};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initLights=void 0;var e=require("tslib").__importStar(require("three"));exports.initLights=function(i){(t=new e.DirectionalLight(16777215,.1)).position.copy(new e.Vector3(1,1,1)),i.add(t);var t=new e.DirectionalLight(16777215,.1);i.add(t),t=new e.AmbientLight(16777215,1),i.add(t)};
|