@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.
Files changed (445) hide show
  1. package/README.md +75 -63
  2. package/docs/.nojekyll +1 -0
  3. package/docs/assets/highlight.css +134 -0
  4. package/docs/assets/icons.css +1043 -0
  5. package/docs/assets/{images/icons.png → icons.png} +0 -0
  6. package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
  7. package/docs/assets/main.js +52 -0
  8. package/docs/assets/search.js +1 -0
  9. package/docs/assets/style.css +1413 -0
  10. package/docs/assets/{images/widgets.png → widgets.png} +0 -0
  11. package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
  12. package/docs/classes/five.AnimationFrameLoop.html +15 -0
  13. package/docs/classes/five.BVH.html +10 -0
  14. package/docs/classes/five.BVHIntersect.html +1 -0
  15. package/docs/classes/five.BVHNode.html +7 -0
  16. package/docs/classes/five.BVHVector3.html +1 -0
  17. package/docs/classes/five.Camera.html +11 -0
  18. package/docs/classes/five.Five.html +303 -0
  19. package/docs/classes/five.InternalWebGLRenderer.html +1 -0
  20. package/docs/classes/five.IntersectMesh.html +1 -0
  21. package/docs/classes/five.LegacyPanoCircleMesh.html +5 -0
  22. package/docs/classes/five.Model.html +77 -0
  23. package/docs/classes/five.NetworkSubscribe.html +50 -0
  24. package/docs/classes/five.PBMContainer.html +17 -0
  25. package/docs/classes/five.PBMGroup.html +19 -0
  26. package/docs/classes/five.PBMMaterial.html +15 -0
  27. package/docs/classes/five.PBMMesh.html +7 -0
  28. package/docs/classes/five.PanoCircleMesh.html +7 -0
  29. package/docs/classes/five.Scene.html +3 -0
  30. package/docs/classes/five.Subscribe.html +56 -0
  31. package/docs/classes/five.Work.html +30 -0
  32. package/docs/classes/gltf_loader.GLTFLoader.html +17 -0
  33. package/docs/classes/gltf_loader.GLTFObject.html +7 -0
  34. package/docs/classes/line.Line.html +1 -0
  35. package/docs/classes/line.LineGeometry.html +1 -0
  36. package/docs/classes/line.LineMaterial.html +1 -0
  37. package/docs/classes/line.LineSegmentsGeometry.html +1 -0
  38. package/docs/classes/line.THREE_Line2.html +1 -0
  39. package/docs/classes/line.THREE_LineSegments2.html +1 -0
  40. package/docs/classes/react.Store.html +29 -0
  41. package/docs/classes/server.BVH.html +10 -0
  42. package/docs/classes/server.BVHIntersect.html +1 -0
  43. package/docs/classes/server.BVHNode.html +7 -0
  44. package/docs/classes/server.BVHVector3.html +1 -0
  45. package/docs/classes/server.Model.html +63 -0
  46. package/docs/classes/server.PBMGroup.html +9 -0
  47. package/docs/classes/server.PBMMesh.html +7 -0
  48. package/docs/classes/sticker.Sticker.html +32 -0
  49. package/docs/index.html +166 -420
  50. package/docs/interfaces/five.AddableObject.html +1 -0
  51. package/docs/interfaces/five.AnimationFrame.html +1 -0
  52. package/docs/interfaces/five.CameraPose.html +1 -0
  53. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +28 -0
  54. package/docs/interfaces/five.EventCallback.html +391 -0
  55. package/docs/interfaces/five.FiveInitArgs.html +96 -0
  56. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +15 -0
  57. package/docs/interfaces/five.ImageOptions.html +18 -0
  58. package/docs/interfaces/five.ImageURLOptions.html +15 -0
  59. package/docs/interfaces/five.IntersectMeshInterface.html +3 -0
  60. package/docs/interfaces/five.Intersection.html +7 -0
  61. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +20 -0
  62. package/docs/interfaces/five.ModelEventCallback.html +22 -0
  63. package/docs/interfaces/five.MovePanoOptions.html +40 -0
  64. package/docs/interfaces/five.PBMPanoPicture.html +7 -0
  65. package/docs/interfaces/five.PBMParameters.html +15 -0
  66. package/docs/interfaces/five.PanoCircleMeshInterface.html +19 -0
  67. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +28 -0
  68. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +20 -0
  69. package/docs/interfaces/five.Pose.html +35 -0
  70. package/docs/interfaces/five.Scissor.html +14 -0
  71. package/docs/interfaces/five.State.html +19 -0
  72. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -0
  73. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -0
  74. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -0
  75. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -0
  76. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -0
  77. package/docs/interfaces/five.TextureOptions.html +20 -0
  78. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -0
  79. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +24 -0
  80. package/docs/interfaces/five.WorkCubeImage.html +13 -0
  81. package/docs/interfaces/five.WorkImage.html +21 -0
  82. package/docs/interfaces/five.WorkInitial.html +13 -0
  83. package/docs/interfaces/five.WorkModel.html +11 -0
  84. package/docs/interfaces/five.WorkObserver.html +25 -0
  85. package/docs/interfaces/five.WorkTile.html +1 -0
  86. package/docs/interfaces/five.WorkVideo.html +9 -0
  87. package/docs/interfaces/gltf_loader.GLTF.html +7 -0
  88. package/docs/interfaces/react.FiveActionReactCallbacks.html +62 -0
  89. package/docs/interfaces/react.FiveInjectionTypes.html +191 -0
  90. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -0
  91. package/docs/interfaces/server.Intersection.html +7 -0
  92. package/docs/interfaces/server.ModelEventCallback.html +18 -0
  93. package/docs/interfaces/sticker.IntersectionLike.html +8 -0
  94. package/docs/modules/five.SubscribeMixinType.html +1 -0
  95. package/docs/modules/five.html +481 -0
  96. package/docs/modules/gltf_loader.html +1 -0
  97. package/docs/modules/line.html +1 -0
  98. package/docs/modules/react.html +130 -941
  99. package/docs/modules/server.html +18 -0
  100. package/docs/modules/sticker.html +1 -0
  101. package/docs/modules.html +1 -119
  102. package/exporters/staticify.js +203 -0
  103. package/five/index.d.ts +2073 -0
  104. package/five/index.js +372 -0
  105. package/gltf-loader/index.d.ts +75 -0
  106. package/gltf-loader/index.js +260 -0
  107. package/line/index.d.ts +68 -0
  108. package/line/index.js +260 -0
  109. package/package.json +20 -18
  110. package/react/index.d.ts +812 -17
  111. package/react/index.js +260 -1
  112. package/resource/{basis_transcoder.js → basis/basis_transcoder.js} +0 -0
  113. package/resource/{basis_transcoder.wasm → basis/basis_transcoder.wasm} +0 -0
  114. package/resource/gltf/draco_decoder.js +31 -0
  115. package/resource/gltf/draco_decoder.wasm +0 -0
  116. package/resource/gltf/draco_wasm_wrapper.js +119 -0
  117. package/scripts/five-staticify.js +21 -0
  118. package/server/index.d.ts +568 -5
  119. package/server/index.js +367 -1
  120. package/sticker/index.d.ts +70 -0
  121. package/sticker/index.js +260 -0
  122. package/templates/plugin/examples/index.html +1 -1
  123. package/templates/quick-start/README.md +1 -1
  124. package/templates/quick-start/index.tsx +1 -1
  125. package/templates/quick-start/package.json +1 -1
  126. package/templates/react-component/examples/index.html +1 -1
  127. package/templates/react-component/examples/index.tsx +4 -4
  128. package/templates/react-component/lib/index.tsx +5 -5
  129. package/umd/five-gltf-loader.js +2 -0
  130. package/umd/five-gltf-loader.js.LICENSE.txt +14 -0
  131. package/umd/five-line.js +2 -0
  132. package/umd/five-line.js.LICENSE.txt +14 -0
  133. package/umd/five-react.js +2 -0
  134. package/umd/five-react.js.LICENSE.txt +14 -0
  135. package/umd/five-sticker.js +2 -0
  136. package/umd/five-sticker.js.LICENSE.txt +14 -0
  137. package/umd/five.js +2 -0
  138. package/umd/five.js.LICENSE.txt +116 -0
  139. package/application/constant.d.ts +0 -6
  140. package/application/constant.js +0 -1
  141. package/application/controllers.d.ts +0 -31
  142. package/application/controllers.js +0 -1
  143. package/application/events.d.ts +0 -140
  144. package/application/events.js +0 -1
  145. package/application/five.d.ts +0 -418
  146. package/application/five.js +0 -1
  147. package/application/fiveInitArgs.d.ts +0 -157
  148. package/application/fiveInitArgs.js +0 -1
  149. package/application/generateDefaultVideoElement.d.ts +0 -2
  150. package/application/generateDefaultVideoElement.js +0 -1
  151. package/application/getViewportScale.d.ts +0 -2
  152. package/application/getViewportScale.js +0 -1
  153. package/application/initLights.d.ts +0 -3
  154. package/application/initLights.js +0 -1
  155. package/bundles/five.js +0 -2
  156. package/bundles/five.js.LICENSE.txt +0 -160
  157. package/controllers/base.d.ts +0 -80
  158. package/controllers/base.js +0 -1
  159. package/controllers/depthPanorama.d.ts +0 -40
  160. package/controllers/depthPanorama.js +0 -1
  161. package/controllers/events.d.ts +0 -273
  162. package/controllers/events.js +0 -1
  163. package/controllers/floorplan.d.ts +0 -102
  164. package/controllers/floorplan.js +0 -1
  165. package/controllers/model.d.ts +0 -23
  166. package/controllers/model.js +0 -1
  167. package/controllers/panorama.d.ts +0 -69
  168. package/controllers/panorama.js +0 -1
  169. package/controllers/panoramaLike.d.ts +0 -88
  170. package/controllers/panoramaLike.js +0 -1
  171. package/controllers/topview.d.ts +0 -28
  172. package/controllers/topview.js +0 -1
  173. package/controllers/vrPanorama.d.ts +0 -40
  174. package/controllers/vrPanorama.js +0 -1
  175. package/core/camera.d.ts +0 -15
  176. package/core/camera.js +0 -1
  177. package/core/cubeTexture.d.ts +0 -6
  178. package/core/cubeTexture.js +0 -1
  179. package/core/internalWebGLRenderer.d.ts +0 -11
  180. package/core/internalWebGLRenderer.js +0 -1
  181. package/core/pbmGroup.d.ts +0 -22
  182. package/core/pbmGroup.js +0 -1
  183. package/core/pbmMaterial.d.ts +0 -39
  184. package/core/pbmMaterial.js +0 -1
  185. package/core/pbmMesh.d.ts +0 -10
  186. package/core/pbmMesh.js +0 -1
  187. package/core/pbmParameters.d.ts +0 -36
  188. package/core/pbmParameters.js +0 -1
  189. package/core/scene.d.ts +0 -5
  190. package/core/scene.js +0 -1
  191. package/core/subscribe.d.ts +0 -76
  192. package/core/subscribe.js +0 -1
  193. package/core/updatableTexture.d.ts +0 -12
  194. package/core/updatableTexture.js +0 -1
  195. package/docs/assets/css/main.css +0 -2660
  196. package/docs/assets/js/main.js +0 -248
  197. package/docs/assets/js/search.js +0 -1
  198. package/docs/classes/index.five.html +0 -2567
  199. package/docs/classes/index.fivecamera.html +0 -427
  200. package/docs/classes/index.fiveline.html +0 -458
  201. package/docs/classes/index.fivescene.html +0 -302
  202. package/docs/classes/index.internalwebglrenderer.html +0 -316
  203. package/docs/classes/index.model.html +0 -999
  204. package/docs/classes/index.pbmgroup.html +0 -531
  205. package/docs/classes/index.pbmmaterial.html +0 -637
  206. package/docs/classes/index.pbmmesh.html +0 -358
  207. package/docs/classes/index.subscribe.html +0 -672
  208. package/docs/interfaces/index.depthpanoramacontrollercustominitargs.html +0 -524
  209. package/docs/interfaces/index.fiveeventcallback.html +0 -2568
  210. package/docs/interfaces/index.fiveinitargs.html +0 -811
  211. package/docs/interfaces/index.floorplancontrollercustominitargs.html +0 -399
  212. package/docs/interfaces/index.imageoptions.html +0 -436
  213. package/docs/interfaces/index.intersection.html +0 -331
  214. package/docs/interfaces/index.intersectmeshinterface.html +0 -292
  215. package/docs/interfaces/index.modelcontrollercustominitargs.html +0 -470
  216. package/docs/interfaces/index.modeleventcallback.html +0 -432
  217. package/docs/interfaces/index.movepanooptions.html +0 -573
  218. package/docs/interfaces/index.panocirclemeshinterface.html +0 -465
  219. package/docs/interfaces/index.panoramacontrollercustominitargs.html +0 -549
  220. package/docs/interfaces/index.panoramalikecontrollercustominitargs.html +0 -468
  221. package/docs/interfaces/index.pbmparameters.html +0 -578
  222. package/docs/interfaces/index.pose.html +0 -374
  223. package/docs/interfaces/index.scissor.html +0 -356
  224. package/docs/interfaces/index.state.html +0 -404
  225. package/docs/interfaces/index.topviewcontrollercustominitargs.html +0 -330
  226. package/docs/interfaces/index.vrpanoramacontrollercustominitargs.html +0 -536
  227. package/docs/interfaces/react.fiveactionreactcallbacks.html +0 -530
  228. package/docs/interfaces/react.injectfivetoprops.html +0 -231
  229. package/docs/modules/index.html +0 -925
  230. package/five.js.LICENSE.txt +0 -160
  231. package/index.d.ts +0 -33
  232. package/index.js +0 -1
  233. package/loaders/basis/BasisTextureLoader.d.ts +0 -116
  234. package/loaders/basis/BasisTextureLoader.js +0 -1
  235. package/loaders/basis/index.d.ts +0 -3
  236. package/loaders/basis/index.js +0 -1
  237. package/loaders/cubeTexture/imagePool.d.ts +0 -7
  238. package/loaders/cubeTexture/imagePool.js +0 -1
  239. package/loaders/cubeTexture/index.d.ts +0 -58
  240. package/loaders/cubeTexture/index.js +0 -1
  241. package/loaders/depthTexture/index.d.ts +0 -60
  242. package/loaders/depthTexture/index.js +0 -1
  243. package/loaders/model/at3d.d.ts +0 -7
  244. package/loaders/model/at3d.js +0 -1
  245. package/loaders/model/dome.d.ts +0 -14
  246. package/loaders/model/dome.js +0 -1
  247. package/loaders/model/domez.d.ts +0 -7
  248. package/loaders/model/domez.js +0 -1
  249. package/loaders/model/index.d.ts +0 -135
  250. package/loaders/model/index.js +0 -1
  251. package/loaders/model/pbm.d.ts +0 -27
  252. package/loaders/model/pbm.js +0 -1
  253. package/loaders/model/tools/bvhtree/index.d.ts +0 -2
  254. package/loaders/model/tools/bvhtree/index.js +0 -1
  255. package/loaders/model/tools/lzma/index.d.ts +0 -2
  256. package/loaders/model/tools/lzma/index.js +0 -1
  257. package/loaders/model/tools/lzma/lzma-caller.d.ts +0 -13
  258. package/loaders/model/tools/lzma/lzma-caller.js +0 -1
  259. package/loaders/model/tools/lzma/lzma.d.ts +0 -2
  260. package/loaders/model/tools/lzma/lzma.js +0 -1
  261. package/loaders/model/tools/lzma/lzmaWorker.d.ts +0 -1
  262. package/loaders/model/tools/lzma/lzmaWorker.js +0 -1
  263. package/loaders/tileTexture/index.d.ts +0 -26
  264. package/loaders/tileTexture/index.js +0 -1
  265. package/meshes/boundingMesh.d.ts +0 -9
  266. package/meshes/boundingMesh.js +0 -1
  267. package/meshes/intersectMesh.d.ts +0 -11
  268. package/meshes/intersectMesh.js +0 -1
  269. package/meshes/panoCircleMesh.d.ts +0 -29
  270. package/meshes/panoCircleMesh.js +0 -1
  271. package/meshes/panoSphereMesh.d.ts +0 -16
  272. package/meshes/panoSphereMesh.js +0 -1
  273. package/objects/line/circle_png.d.ts +0 -1
  274. package/objects/line/circle_png.js +0 -1
  275. package/objects/line/index.d.ts +0 -12
  276. package/objects/line/index.js +0 -1
  277. package/objects/line/utils/Line2.d.ts +0 -7
  278. package/objects/line/utils/Line2.js +0 -1
  279. package/objects/line/utils/LineGeometry.d.ts +0 -10
  280. package/objects/line/utils/LineGeometry.js +0 -1
  281. package/objects/line/utils/LineMaterial.d.ts +0 -20
  282. package/objects/line/utils/LineMaterial.js +0 -1
  283. package/objects/line/utils/LineSegments2.d.ts +0 -11
  284. package/objects/line/utils/LineSegments2.js +0 -1
  285. package/objects/line/utils/LineSegmentsGeometry.d.ts +0 -15
  286. package/objects/line/utils/LineSegmentsGeometry.js +0 -1
  287. package/react/canvas.d.ts +0 -19
  288. package/react/canvas.js +0 -1
  289. package/react/context.d.ts +0 -9
  290. package/react/context.js +0 -1
  291. package/react/createProvider.d.ts +0 -65
  292. package/react/createProvider.js +0 -1
  293. package/react/createStore.d.ts +0 -138
  294. package/react/createStore.js +0 -1
  295. package/react/hooks/unsafe__useFiveInstance.d.ts +0 -9
  296. package/react/hooks/unsafe__useFiveInstance.js +0 -1
  297. package/react/hooks/useFiveAction.d.ts +0 -154
  298. package/react/hooks/useFiveAction.js +0 -1
  299. package/react/hooks/useFiveCameraDirection.d.ts +0 -7
  300. package/react/hooks/useFiveCameraDirection.js +0 -1
  301. package/react/hooks/useFiveCameraRaycaster.d.ts +0 -7
  302. package/react/hooks/useFiveCameraRaycaster.js +0 -1
  303. package/react/hooks/useFiveCurrentState.d.ts +0 -15
  304. package/react/hooks/useFiveCurrentState.js +0 -1
  305. package/react/hooks/useFiveEvent.d.ts +0 -12
  306. package/react/hooks/useFiveEvent.js +0 -1
  307. package/react/hooks/useFiveModelIntersectRaycaster.d.ts +0 -21
  308. package/react/hooks/useFiveModelIntersectRaycaster.js +0 -1
  309. package/react/hooks/useFiveModelReadyState.d.ts +0 -8
  310. package/react/hooks/useFiveModelReadyState.js +0 -1
  311. package/react/hooks/useFiveProject2d.d.ts +0 -20
  312. package/react/hooks/useFiveProject2d.js +0 -1
  313. package/react/hooks/useFiveScene.d.ts +0 -16
  314. package/react/hooks/useFiveScene.js +0 -1
  315. package/react/hooks/useFiveState.d.ts +0 -6
  316. package/react/hooks/useFiveState.js +0 -1
  317. package/react/hooks/useFiveWork.d.ts +0 -30
  318. package/react/hooks/useFiveWork.js +0 -1
  319. package/react/rendererPool.d.ts +0 -8
  320. package/react/rendererPool.js +0 -1
  321. package/react/withFive.d.ts +0 -239
  322. package/react/withFive.js +0 -1
  323. package/scripts/export-five-resource/chfs.exe +0 -0
  324. package/scripts/export-five-resource/fileify.js +0 -192
  325. package/scripts/export-five-resource/format-work.js +0 -71
  326. package/scripts/export-five-resource/staticify.js +0 -327
  327. package/scripts/transcode-model/BufferGeometryUtils.js +0 -832
  328. package/scripts/transcode-model/LoaderSupport.js +0 -1545
  329. package/scripts/transcode-model/MTLLoader.js +0 -602
  330. package/scripts/transcode-model/OBJLoader2.js +0 -1470
  331. package/scripts/transcode-model/obj2pbm.js +0 -65
  332. package/server/core/pbmGroup.d.ts +0 -11
  333. package/server/core/pbmGroup.js +0 -1
  334. package/server/core/pbmMesh.d.ts +0 -9
  335. package/server/core/pbmMesh.js +0 -1
  336. package/server/model/at3d.d.ts +0 -5
  337. package/server/model/at3d.js +0 -1
  338. package/server/model/dome.d.ts +0 -11
  339. package/server/model/dome.js +0 -1
  340. package/server/model/domez.d.ts +0 -5
  341. package/server/model/domez.js +0 -1
  342. package/server/model/index.d.ts +0 -134
  343. package/server/model/index.js +0 -1
  344. package/server/model/pbm.d.ts +0 -24
  345. package/server/model/pbm.js +0 -1
  346. package/server/model/tools/bvhtree/index.d.ts +0 -2
  347. package/server/model/tools/bvhtree/index.js +0 -1
  348. package/server/model/tools/fetchArraybuffer.d.ts +0 -2
  349. package/server/model/tools/fetchArraybuffer.js +0 -1
  350. package/server/model/tools/lzma/index.d.ts +0 -2
  351. package/server/model/tools/lzma/index.js +0 -1
  352. package/server/model/tools/lzma/lzma.d.ts +0 -2
  353. package/server/model/tools/lzma/lzma.js +0 -1
  354. package/shaders/depth/fragment.d.ts +0 -2
  355. package/shaders/depth/fragment.js +0 -1
  356. package/shaders/depth/vertex.d.ts +0 -2
  357. package/shaders/depth/vertex.js +0 -1
  358. package/shaders/pbm/fragment.d.ts +0 -2
  359. package/shaders/pbm/fragment.js +0 -1
  360. package/shaders/pbm/vertex.d.ts +0 -2
  361. package/shaders/pbm/vertex.js +0 -1
  362. package/three-version-check.d.ts +0 -1
  363. package/three-version-check.js +0 -1
  364. package/types/imageOptions.d.ts +0 -24
  365. package/types/imageOptions.js +0 -1
  366. package/types/mode.d.ts +0 -23
  367. package/types/mode.js +0 -1
  368. package/types/movePanoOptions.d.ts +0 -40
  369. package/types/movePanoOptions.js +0 -1
  370. package/types/plugin.d.ts +0 -26
  371. package/types/plugin.js +0 -1
  372. package/types/pose.d.ts +0 -16
  373. package/types/pose.js +0 -1
  374. package/types/scissor.d.ts +0 -18
  375. package/types/scissor.js +0 -1
  376. package/types/state.d.ts +0 -18
  377. package/types/state.js +0 -1
  378. package/utils/BufferGeometryUtils.d.ts +0 -31
  379. package/utils/BufferGeometryUtils.js +0 -1
  380. package/utils/ajax.d.ts +0 -13
  381. package/utils/ajax.js +0 -1
  382. package/utils/animationFrame.d.ts +0 -24
  383. package/utils/animationFrame.js +0 -1
  384. package/utils/arrayMax.d.ts +0 -10
  385. package/utils/arrayMax.js +0 -1
  386. package/utils/arrayMin.d.ts +0 -11
  387. package/utils/arrayMin.js +0 -1
  388. package/utils/busy.d.ts +0 -13
  389. package/utils/busy.js +0 -1
  390. package/utils/calculateProgress.d.ts +0 -37
  391. package/utils/calculateProgress.js +0 -1
  392. package/utils/calculateThreeMouse.d.ts +0 -13
  393. package/utils/calculateThreeMouse.js +0 -1
  394. package/utils/cameraWorldToLocal.d.ts +0 -13
  395. package/utils/cameraWorldToLocal.js +0 -1
  396. package/utils/coordinatesToVector.d.ts +0 -7
  397. package/utils/coordinatesToVector.js +0 -1
  398. package/utils/createImage.d.ts +0 -2
  399. package/utils/createImage.js +0 -1
  400. package/utils/detector.d.ts +0 -13
  401. package/utils/detector.js +0 -1
  402. package/utils/formatRad.d.ts +0 -7
  403. package/utils/formatRad.js +0 -1
  404. package/utils/headingToLongitude.d.ts +0 -6
  405. package/utils/headingToLongitude.js +0 -1
  406. package/utils/imageLoader.d.ts +0 -10
  407. package/utils/imageLoader.js +0 -1
  408. package/utils/imageURL.d.ts +0 -9
  409. package/utils/imageURL.js +0 -1
  410. package/utils/isAbsoluteURL.d.ts +0 -6
  411. package/utils/isAbsoluteURL.js +0 -1
  412. package/utils/isNil.d.ts +0 -6
  413. package/utils/isNil.js +0 -1
  414. package/utils/longitudeToHeading.d.ts +0 -6
  415. package/utils/longitudeToHeading.js +0 -1
  416. package/utils/mouseWheel.d.ts +0 -17
  417. package/utils/mouseWheel.js +0 -1
  418. package/utils/noop.d.ts +0 -6
  419. package/utils/noop.js +0 -1
  420. package/utils/now.d.ts +0 -5
  421. package/utils/now.js +0 -1
  422. package/utils/preload.d.ts +0 -5
  423. package/utils/preload.js +0 -1
  424. package/utils/tween.d.ts +0 -88
  425. package/utils/tween.js +0 -1
  426. package/utils/uuid.d.ts +0 -5
  427. package/utils/uuid.js +0 -1
  428. package/utils/vectorTocoordinates.d.ts +0 -7
  429. package/utils/vectorTocoordinates.js +0 -1
  430. package/utils/webglError.d.ts +0 -7
  431. package/utils/webglError.js +0 -1
  432. package/webvr/helper.img.d.ts +0 -1
  433. package/webvr/helper.img.js +0 -1
  434. package/webvr/vrEffect.d.ts +0 -13
  435. package/webvr/vrEffect.js +0 -1
  436. package/work/index.d.ts +0 -5
  437. package/work/index.js +0 -1
  438. package/work/looseWorkType.d.ts +0 -61
  439. package/work/looseWorkType.js +0 -1
  440. package/work/parse.d.ts +0 -4
  441. package/work/parse.js +0 -1
  442. package/work/stringify.d.ts +0 -4
  443. package/work/stringify.js +0 -1
  444. package/work/workType.d.ts +0 -49
  445. package/work/workType.js +0 -1
@@ -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 };
@@ -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,2 +0,0 @@
1
- declare function generateDefaultVideoElement(): HTMLVideoElement;
2
- export { generateDefaultVideoElement };
@@ -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,2 +0,0 @@
1
- declare function getViewportScale(): number;
2
- export { getViewportScale };
@@ -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,3 +0,0 @@
1
- import * as THREE from "three";
2
- declare function initLights(scene: THREE.Scene): void;
3
- export { initLights };
@@ -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)};