@realsee/dnalogel 0.1.7 → 2.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/README.md +6 -89
  2. package/dist/dnalogel.cjs.js +2 -0
  3. package/dist/dnalogel.es.js +37288 -0
  4. package/dist/dnalogel.umd.js +2 -0
  5. package/dist/style.css +1 -0
  6. package/{plugins → libs}/CSS3DRenderPlugin/index.d.ts +1 -1
  7. package/libs/CSS3DRenderPlugin/index.js +181 -0
  8. package/libs/CSS3DRenderPlugin/utils/createResizeObserver.d.ts +7 -0
  9. package/libs/CSS3DRenderPlugin/utils/createResizeObserver.js +18 -0
  10. package/{plugins → libs}/CameraMovementPlugin/index.d.ts +0 -0
  11. package/libs/CameraMovementPlugin/index.js +159 -0
  12. package/{plugins → libs}/CameraMovementPlugin/typing.d.ts +0 -0
  13. package/libs/CameraMovementPlugin/typing.js +17 -0
  14. package/{plugins → libs}/ModelChassisCompassPlugin/index.d.ts +1 -1
  15. package/libs/ModelChassisCompassPlugin/index.js +75 -0
  16. package/{plugins → libs}/ModelEntryDoorGuidePlugin/index.d.ts +6 -2
  17. package/libs/ModelEntryDoorGuidePlugin/index.js +136 -0
  18. package/libs/ModelRoomLabelPlugin/Assets/roomLabelBg.d.ts +1 -0
  19. package/libs/ModelRoomLabelPlugin/Assets/roomLabelBg.js +1 -0
  20. package/{plugins → libs}/ModelRoomLabelPlugin/Controller.d.ts +3 -2
  21. package/libs/ModelRoomLabelPlugin/Controller.js +100 -0
  22. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte +63 -0
  23. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte.map +1 -0
  24. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte +80 -0
  25. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte.map +1 -0
  26. package/libs/ModelRoomLabelPlugin/index.d.ts +12 -0
  27. package/libs/ModelRoomLabelPlugin/index.js +9 -0
  28. package/{plugins → libs}/ModelRoomLabelPlugin/typings.d.ts +2 -2
  29. package/libs/ModelRoomLabelPlugin/typings.js +1 -0
  30. package/{plugins → libs}/ModelRoomLabelPlugin/utils/parseData.d.ts +0 -0
  31. package/libs/ModelRoomLabelPlugin/utils/parseData.js +14 -0
  32. package/{plugins → libs}/ModelViewPlugin/index.d.ts +0 -0
  33. package/libs/ModelViewPlugin/index.js +160 -0
  34. package/libs/PanoCompassPlugin/index.d.ts +25 -0
  35. package/libs/PanoCompassPlugin/index.js +89 -0
  36. package/{plugins → libs}/PanoCursorRaycasterPlugin/index.d.ts +2 -3
  37. package/libs/PanoCursorRaycasterPlugin/index.js +74 -0
  38. package/libs/floorplan/Assets/camera.d.ts +1 -0
  39. package/libs/floorplan/Assets/camera.js +1 -0
  40. package/libs/floorplan/Assets/floorplanExtraObject.d.ts +1 -0
  41. package/libs/floorplan/Assets/floorplanExtraObject.js +1 -0
  42. package/libs/floorplan/Components/BaseImage.svelte +25 -0
  43. package/libs/floorplan/Components/BaseImage.svelte.map +1 -0
  44. package/libs/floorplan/Components/Normalmage.svelte +11 -0
  45. package/libs/floorplan/Components/Normalmage.svelte.map +1 -0
  46. package/libs/floorplan/Components/RoomHighlight/Room.svelte +21 -0
  47. package/libs/floorplan/Components/RoomHighlight/Room.svelte.map +1 -0
  48. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte +60 -0
  49. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte.map +1 -0
  50. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte +35 -0
  51. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte.map +1 -0
  52. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte +7 -0
  53. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte.map +1 -0
  54. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte +16 -0
  55. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte.map +1 -0
  56. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte +17 -0
  57. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte.map +1 -0
  58. package/libs/floorplan/Components/SvgImage.svelte +25 -0
  59. package/libs/floorplan/Components/SvgImage.svelte.map +1 -0
  60. package/libs/floorplan/ModelFloorplanPlugin/Assets/compass.d.ts +1 -0
  61. package/libs/floorplan/ModelFloorplanPlugin/Assets/compass.js +1 -0
  62. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte +46 -0
  63. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte.map +1 -0
  64. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.svelte +48 -0
  65. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.svelte.map +1 -0
  66. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.svelte +37 -0
  67. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.svelte.map +1 -0
  68. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.svelte +50 -0
  69. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.svelte.map +1 -0
  70. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.svelte +41 -0
  71. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.svelte.map +1 -0
  72. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.svelte +25 -0
  73. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.svelte.map +1 -0
  74. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.svelte +148 -0
  75. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.svelte.map +1 -0
  76. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.svelte +15 -0
  77. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.svelte.map +1 -0
  78. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/Controller.d.ts +16 -14
  79. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +357 -0
  80. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/index.d.ts +1 -1
  81. package/libs/floorplan/ModelFloorplanPlugin/index.js +5 -0
  82. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/typings/events.type.d.ts +0 -0
  83. package/libs/floorplan/ModelFloorplanPlugin/typings/events.type.js +1 -0
  84. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/utils/constant.d.ts +1 -1
  85. package/libs/floorplan/ModelFloorplanPlugin/utils/constant.js +16 -0
  86. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/utils/correctFiveState.d.ts +0 -0
  87. package/libs/floorplan/ModelFloorplanPlugin/utils/correctFiveState.js +46 -0
  88. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte +84 -0
  89. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte.map +1 -0
  90. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte +18 -0
  91. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte.map +1 -0
  92. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte +40 -0
  93. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte.map +1 -0
  94. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte +61 -0
  95. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte.map +1 -0
  96. package/{plugins → libs}/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +6 -11
  97. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +88 -0
  98. package/{plugins → libs}/floorplan/PanoFloorplanRadarPlugin/index.d.ts +0 -0
  99. package/libs/floorplan/PanoFloorplanRadarPlugin/index.js +5 -0
  100. package/{plugins → libs}/floorplan/TopviewFloorplanPlugin/Controller.d.ts +15 -11
  101. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +189 -0
  102. package/{plugins → libs}/floorplan/TopviewFloorplanPlugin/index.d.ts +0 -0
  103. package/libs/floorplan/TopviewFloorplanPlugin/index.js +5 -0
  104. package/{plugins → libs}/floorplan/TopviewFloorplanPlugin/style.d.ts +0 -0
  105. package/libs/floorplan/TopviewFloorplanPlugin/style.js +8 -0
  106. package/{plugins → libs}/floorplan/typings/floorplanData.d.ts +6 -0
  107. package/libs/floorplan/typings/floorplanData.js +6 -0
  108. package/{plugins → libs}/floorplan/typings/floorplanServerData.d.ts +4 -2
  109. package/libs/floorplan/typings/floorplanServerData.js +101 -0
  110. package/libs/floorplan/typings/utility.d.ts +2 -0
  111. package/libs/floorplan/typings/utility.js +1 -0
  112. package/{plugins → libs}/floorplan/utils/formatData.d.ts +3 -3
  113. package/libs/floorplan/utils/formatData.js +94 -0
  114. package/{plugins → libs}/floorplan/utils/formatPosition.d.ts +3 -4
  115. package/libs/floorplan/utils/formatPosition.js +50 -0
  116. package/libs/index.d.ts +19 -0
  117. package/libs/index.js +11 -0
  118. package/{shared-utils → libs/shared-utils}/Preloader.d.ts +0 -0
  119. package/libs/shared-utils/Preloader.js +38 -0
  120. package/{shared-utils → libs/shared-utils}/Subscribe.d.ts +3 -3
  121. package/libs/shared-utils/Subscribe.js +101 -0
  122. package/{shared-utils → libs/shared-utils}/animationFrame/BetterTween.d.ts +0 -0
  123. package/libs/shared-utils/animationFrame/BetterTween.js +30 -0
  124. package/{shared-utils → libs/shared-utils}/animationFrame/calculateProgress.d.ts +0 -0
  125. package/libs/shared-utils/animationFrame/calculateProgress.js +23 -0
  126. package/{shared-utils → libs/shared-utils}/animationFrame/formatRad.d.ts +0 -0
  127. package/libs/shared-utils/animationFrame/formatRad.js +20 -0
  128. package/{shared-utils → libs/shared-utils}/animationFrame/index.d.ts +0 -0
  129. package/libs/shared-utils/animationFrame/index.js +48 -0
  130. package/{shared-utils → libs/shared-utils}/animationFrame/tween.d.ts +0 -0
  131. package/libs/shared-utils/animationFrame/tween.js +44 -0
  132. package/libs/shared-utils/changeModelCanvasOpacity.d.ts +2 -0
  133. package/libs/shared-utils/changeModelCanvasOpacity.js +15 -0
  134. package/{shared-utils → libs/shared-utils}/createCanvasTextTexture.d.ts +0 -0
  135. package/libs/shared-utils/createCanvasTextTexture.js +19 -0
  136. package/{shared-utils → libs/shared-utils}/createLine/index.d.ts +1 -1
  137. package/libs/shared-utils/createLine/index.js +8 -0
  138. package/{shared-utils → libs/shared-utils}/debounce.d.ts +1 -1
  139. package/libs/shared-utils/debounce.js +14 -0
  140. package/{shared-utils → libs/shared-utils}/equal.d.ts +0 -0
  141. package/libs/shared-utils/equal.js +84 -0
  142. package/{shared-utils → libs/shared-utils}/filter.d.ts +0 -0
  143. package/libs/shared-utils/filter.js +53 -0
  144. package/{shared-utils → libs/shared-utils}/five/changeMode.d.ts +0 -0
  145. package/libs/shared-utils/five/changeMode.js +15 -0
  146. package/{shared-utils → libs/shared-utils}/five/useFivePlugin.d.ts +0 -0
  147. package/libs/shared-utils/five/useFivePlugin.js +8 -0
  148. package/{shared-utils → libs/shared-utils}/formatRad.d.ts +0 -0
  149. package/libs/shared-utils/formatRad.js +10 -0
  150. package/{shared-utils → libs/shared-utils}/getPxmm.d.ts +0 -0
  151. package/libs/shared-utils/getPxmm.js +20 -0
  152. package/{shared-utils → libs/shared-utils}/getRandomColor.d.ts +0 -0
  153. package/libs/shared-utils/getRandomColor.js +10 -0
  154. package/{shared-utils → libs/shared-utils}/isNil.d.ts +0 -0
  155. package/libs/shared-utils/isNil.js +14 -0
  156. package/{shared-utils → libs/shared-utils}/isTruelyObject.d.ts +0 -0
  157. package/libs/shared-utils/isTruelyObject.js +20 -0
  158. package/libs/shared-utils/math/evenNumber.d.ts +3 -0
  159. package/libs/shared-utils/math/evenNumber.js +4 -0
  160. package/{shared-utils → libs/shared-utils}/math/planimetry.d.ts +4 -4
  161. package/libs/shared-utils/math/planimetry.js +288 -0
  162. package/{shared-utils → libs/shared-utils}/math/rad2Deg.d.ts +0 -0
  163. package/libs/shared-utils/math/rad2Deg.js +3 -0
  164. package/{shared-utils → libs/shared-utils}/nearlyEqual.d.ts +0 -0
  165. package/libs/shared-utils/nearlyEqual.js +9 -0
  166. package/{shared-utils → libs/shared-utils}/nextFrame.d.ts +0 -0
  167. package/libs/shared-utils/nextFrame.js +6 -0
  168. package/{shared-utils → libs/shared-utils}/noop.d.ts +0 -0
  169. package/libs/shared-utils/noop.js +7 -0
  170. package/{shared-utils → libs/shared-utils}/object3d2LocalMatrix.d.ts +0 -0
  171. package/libs/shared-utils/object3d2LocalMatrix.js +29 -0
  172. package/{shared-utils → libs/shared-utils}/px2rem.d.ts +0 -0
  173. package/libs/shared-utils/px2rem.js +4 -0
  174. package/libs/shared-utils/removeArrayItem.d.ts +7 -0
  175. package/libs/shared-utils/removeArrayItem.js +12 -0
  176. package/{shared-utils → libs/shared-utils}/tap.d.ts +0 -0
  177. package/{shared-utils → libs/shared-utils}/tap.js +4 -13
  178. package/{shared-utils → libs/shared-utils}/three/centerPoint.d.ts +0 -0
  179. package/libs/shared-utils/three/centerPoint.js +4 -0
  180. package/{shared-utils → libs/shared-utils}/three/getExtraModelLoader.d.ts +0 -0
  181. package/libs/shared-utils/three/getExtraModelLoader.js +18 -0
  182. package/{shared-utils → libs/shared-utils}/three/getNormal.d.ts +0 -0
  183. package/libs/shared-utils/three/getNormal.js +6 -0
  184. package/{shared-utils → libs/shared-utils}/three/getTextureLoader.d.ts +0 -0
  185. package/libs/shared-utils/three/getTextureLoader.js +17 -0
  186. package/{shared-utils → libs/shared-utils}/three/loadFbxObj.d.ts +0 -0
  187. package/libs/shared-utils/three/loadFbxObj.js +13 -0
  188. package/libs/shared-utils/three/loadTexture.d.ts +2 -0
  189. package/libs/shared-utils/three/loadTexture.js +10 -0
  190. package/{shared-utils → libs/shared-utils}/three/transformPositionToVector3.d.ts +0 -0
  191. package/libs/shared-utils/three/transformPositionToVector3.js +3 -0
  192. package/{shared-utils → libs/shared-utils}/three/transfromToMeshBasicMaterial.d.ts +0 -0
  193. package/libs/shared-utils/three/transfromToMeshBasicMaterial.js +14 -0
  194. package/{shared-utils → libs/shared-utils}/throttle.d.ts +1 -1
  195. package/libs/shared-utils/throttle.js +18 -0
  196. package/{shared-utils → libs/shared-utils}/to.d.ts +0 -0
  197. package/libs/shared-utils/to.js +18 -0
  198. package/{shared-utils → libs/shared-utils}/useDebounce.d.ts +0 -0
  199. package/libs/shared-utils/useDebounce.js +22 -0
  200. package/{shared-utils → libs/shared-utils}/useThrottle.d.ts +0 -0
  201. package/libs/shared-utils/useThrottle.js +25 -0
  202. package/libs/{gltf-viewer → shared-utils}/uuid.d.ts +0 -0
  203. package/libs/shared-utils/uuid.js +11 -0
  204. package/{shared-utils → libs/shared-utils}/vectorTocoordinates.d.ts +0 -0
  205. package/libs/shared-utils/vectorTocoordinates.js +9 -0
  206. package/{typings → libs/typings}/math.type.d.ts +0 -0
  207. package/libs/typings/math.type.js +1 -0
  208. package/{typings → libs/typings}/utils.type.d.ts +0 -0
  209. package/libs/typings/utils.type.js +1 -0
  210. package/package.json +45 -17
  211. package/TERMS.txt +0 -56
  212. package/components/ARVideoFigure/ARVideoFigureMesh.d.ts +0 -44
  213. package/components/ARVideoFigure/ARVideoFigureMesh.js +0 -371
  214. package/components/ARVideoFigure/ARVideoFigureScene.d.ts +0 -11
  215. package/components/ARVideoFigure/ARVideoFigureScene.js +0 -85
  216. package/components/ARVideoFigure/ImgBgTransparent.d.ts +0 -16
  217. package/components/ARVideoFigure/ImgBgTransparent.js +0 -65
  218. package/components/ARVideoFigure/ImgBgTransparentMesh.d.ts +0 -30
  219. package/components/ARVideoFigure/ImgBgTransparentMesh.js +0 -183
  220. package/components/ARVideoFigure/fragmentShader.d.ts +0 -5
  221. package/components/ARVideoFigure/fragmentShader.js +0 -18
  222. package/components/ARVideoFigure/index.d.ts +0 -15
  223. package/components/ARVideoFigure/index.js +0 -80
  224. package/components/ARVideoFigure/vertexShader.d.ts +0 -1
  225. package/components/ARVideoFigure/vertexShader.js +0 -10
  226. package/components/GLTFView/index.d.ts +0 -72
  227. package/components/GLTFView/index.js +0 -149
  228. package/components/GlassFilters/index.d.ts +0 -32
  229. package/components/GlassFilters/index.js +0 -78
  230. package/components/ModelView/ModelViewController.d.ts +0 -18
  231. package/components/ModelView/ModelViewController.js +0 -157
  232. package/components/ModelView/index.d.ts +0 -10
  233. package/components/ModelView/index.js +0 -24
  234. package/components/PaintBrush/index.d.ts +0 -16
  235. package/components/PaintBrush/index.js +0 -47
  236. package/components/PanoTag/index.d.ts +0 -4
  237. package/components/PanoTag/index.js +0 -13
  238. package/custom.d.js +0 -3
  239. package/data/1aGKl9JmrlXMXx8d.d.ts +0 -104
  240. package/data/1aGKl9JmrlXMXx8d.js +0 -537
  241. package/data/54djM0oR6ky3Ey8e.d.ts +0 -55
  242. package/data/54djM0oR6ky3Ey8e.js +0 -350
  243. package/data/6gyq3v1verxD7JO1.d.ts +0 -104
  244. package/data/6gyq3v1verxD7JO1.js +0 -462
  245. package/data/8054djM0oR6ky3Ey8e.d.ts +0 -55
  246. package/data/8054djM0oR6ky3Ey8e.js +0 -350
  247. package/data/KpokNd82rwjhackhQTBEoYKHg8zGbPXe.d.ts +0 -84
  248. package/data/KpokNd82rwjhackhQTBEoYKHg8zGbPXe.js +0 -600
  249. package/data/PrXel3aqGbp34JQn.d.ts +0 -389
  250. package/data/PrXel3aqGbp34JQn.js +0 -4649
  251. package/data/XJ6NMLWnkAY3Rdx8.d.ts +0 -843
  252. package/data/XJ6NMLWnkAY3Rdx8.js +0 -7989
  253. package/data/YdoNP9K4rwQDwjJr.d.ts +0 -83
  254. package/data/YdoNP9K4rwQDwjJr.js +0 -1453
  255. package/data/ZLvK29zj4L29Jowd.d.ts +0 -55
  256. package/data/ZLvK29zj4L29Jowd.js +0 -372
  257. package/data/auto3d-njL5J99VwCmnjtQElOmXQr.d.ts +0 -86
  258. package/data/auto3d-njL5J99VwCmnjtQElOmXQr.js +0 -711
  259. package/data/extrude-walls/ZLvK29zj4L29Jowd.d.ts +0 -5
  260. package/data/extrude-walls/ZLvK29zj4L29Jowd.js +0 -14
  261. package/data/extrude-walls/lo024DEgzanMj5BE.d.ts +0 -5
  262. package/data/extrude-walls/lo024DEgzanMj5BE.js +0 -14
  263. package/data/jd6oMOzPxnQ3BvxY_B7yw51J9rXlhYhjhGTOgRVqu6WeEqjNX.d.ts +0 -85
  264. package/data/jd6oMOzPxnQ3BvxY_B7yw51J9rXlhYhjhGTOgRVqu6WeEqjNX.js +0 -511
  265. package/data/lo024DEgzanMj5BE.d.ts +0 -55
  266. package/data/lo024DEgzanMj5BE.js +0 -966
  267. package/data/oPzy3ApbjjpD8YdR.d.ts +0 -83
  268. package/data/oPzy3ApbjjpD8YdR.js +0 -283
  269. package/data/qjAxMG4XbPn96wKG.d.ts +0 -104
  270. package/data/qjAxMG4XbPn96wKG.js +0 -637
  271. package/data/rXel3aPQRRBD4JQn.d.ts +0 -86
  272. package/data/rXel3aPQRRBD4JQn.js +0 -622
  273. package/data/vLykj3NWrllMrG06.d.ts +0 -91
  274. package/data/vLykj3NWrllMrG06.js +0 -2729
  275. package/data/wz0QV9KA4ugyo9ME.d.ts +0 -39
  276. package/data/wz0QV9KA4ugyo9ME.js +0 -136
  277. package/data/zxMawr9raSg8LYjG.d.ts +0 -53
  278. package/data/zxMawr9raSg8LYjG.js +0 -590
  279. package/examples/FiveStateController/index.js +0 -134
  280. package/examples/VRHouse/Mobile.js +0 -36
  281. package/examples/VRHouse/PC.js +0 -36
  282. package/examples/VRHouse/index.js +0 -36
  283. package/index.d.ts +0 -15
  284. package/index.js +0 -45
  285. package/libs/gltf-viewer/Subscribe.d.ts +0 -76
  286. package/libs/gltf-viewer/Subscribe.js +0 -231
  287. package/libs/gltf-viewer/coordsMoveByOffset.d.ts +0 -13
  288. package/libs/gltf-viewer/coordsMoveByOffset.js +0 -22
  289. package/libs/gltf-viewer/coordsToDirection.d.ts +0 -5
  290. package/libs/gltf-viewer/coordsToDirection.js +0 -41
  291. package/libs/gltf-viewer/formatRad.d.ts +0 -1
  292. package/libs/gltf-viewer/formatRad.js +0 -13
  293. package/libs/gltf-viewer/getFrameTime.d.ts +0 -1
  294. package/libs/gltf-viewer/getFrameTime.js +0 -28
  295. package/libs/gltf-viewer/index.d.ts +0 -55
  296. package/libs/gltf-viewer/index.js +0 -650
  297. package/libs/gltf-viewer/mouseWheel.d.ts +0 -2
  298. package/libs/gltf-viewer/mouseWheel.js +0 -59
  299. package/libs/gltf-viewer/requestAnimationFrame.d.ts +0 -1
  300. package/libs/gltf-viewer/requestAnimationFrame.js +0 -18
  301. package/libs/gltf-viewer/requestAnimationFrameInterval.d.ts +0 -1
  302. package/libs/gltf-viewer/requestAnimationFrameInterval.js +0 -31
  303. package/libs/gltf-viewer/uuid.js +0 -28
  304. package/plugins/AutoPreloadPlugin/index.d.ts +0 -23
  305. package/plugins/AutoPreloadPlugin/index.js +0 -111
  306. package/plugins/CSS3DRenderPlugin/components/Marker/index.d.ts +0 -12
  307. package/plugins/CSS3DRenderPlugin/components/Marker/index.js +0 -121
  308. package/plugins/CSS3DRenderPlugin/index.js +0 -298
  309. package/plugins/CameraMovementPlugin/index.js +0 -362
  310. package/plugins/CameraMovementPlugin/typing.js +0 -37
  311. package/plugins/ModelChassisCompassPlugin/index.js +0 -157
  312. package/plugins/ModelEntryDoorGuidePlugin/index.js +0 -247
  313. package/plugins/ModelExtrudeWallsPlugin/index.d.ts +0 -16
  314. package/plugins/ModelExtrudeWallsPlugin/index.js +0 -252
  315. package/plugins/ModelRoomLabelPlugin/Controller.js +0 -153
  316. package/plugins/ModelRoomLabelPlugin/RoomLabelItem.d.ts +0 -8
  317. package/plugins/ModelRoomLabelPlugin/RoomLabelItem.js +0 -66
  318. package/plugins/ModelRoomLabelPlugin/RoomLabelItems.d.ts +0 -7
  319. package/plugins/ModelRoomLabelPlugin/RoomLabelItems.js +0 -159
  320. package/plugins/ModelRoomLabelPlugin/index.d.ts +0 -8
  321. package/plugins/ModelRoomLabelPlugin/index.js +0 -18
  322. package/plugins/ModelRoomLabelPlugin/typings.js +0 -7
  323. package/plugins/ModelRoomLabelPlugin/utils/parseData.js +0 -35
  324. package/plugins/ModelTVVideoPlugin/index.d.ts +0 -21
  325. package/plugins/ModelTVVideoPlugin/index.js +0 -397
  326. package/plugins/ModelViewPlugin/index.js +0 -223
  327. package/plugins/PanoCursorRaycasterPlugin/PanoCursorRaycasterPluginUsage.d.ts +0 -48
  328. package/plugins/PanoCursorRaycasterPlugin/components/MovePointTowardsCamera.d.ts +0 -9
  329. package/plugins/PanoCursorRaycasterPlugin/components/MovePointTowardsCamera.js +0 -117
  330. package/plugins/PanoCursorRaycasterPlugin/components/PointAxesHelper.d.ts +0 -11
  331. package/plugins/PanoCursorRaycasterPlugin/components/PointAxesHelper.js +0 -39
  332. package/plugins/PanoCursorRaycasterPlugin/index.js +0 -126
  333. package/plugins/PanoCursorRaycasterPlugin/utils/addLineToFive.d.ts +0 -5
  334. package/plugins/PanoCursorRaycasterPlugin/utils/addLineToFive.js +0 -27
  335. package/plugins/PanoCursorRaycasterPlugin/utils/createLine.d.ts +0 -3
  336. package/plugins/PanoCursorRaycasterPlugin/utils/createLine.js +0 -48
  337. package/plugins/PanoDoorLabelPlugin/index.d.ts +0 -4
  338. package/plugins/PanoDoorLabelPlugin/index.js +0 -14
  339. package/plugins/PanoIRobotPlugin/index.d.ts +0 -10
  340. package/plugins/PanoIRobotPlugin/index.js +0 -18
  341. package/plugins/PanoMaskSelectorPlugin/compare.d.ts +0 -1
  342. package/plugins/PanoMaskSelectorPlugin/compare.js +0 -17
  343. package/plugins/PanoMaskSelectorPlugin/createBox.d.ts +0 -7
  344. package/plugins/PanoMaskSelectorPlugin/createBox.js +0 -79
  345. package/plugins/PanoMaskSelectorPlugin/createTextures.d.ts +0 -3
  346. package/plugins/PanoMaskSelectorPlugin/createTextures.js +0 -45
  347. package/plugins/PanoMaskSelectorPlugin/fragmentShader.d.ts +0 -1
  348. package/plugins/PanoMaskSelectorPlugin/fragmentShader.js +0 -10
  349. package/plugins/PanoMaskSelectorPlugin/index.d.ts +0 -49
  350. package/plugins/PanoMaskSelectorPlugin/index.js +0 -348
  351. package/plugins/PanoMaskSelectorPlugin/vertexShader.d.ts +0 -1
  352. package/plugins/PanoMaskSelectorPlugin/vertexShader.js +0 -10
  353. package/plugins/PanoRulerPlugin/data/roomInfo.d.ts +0 -3
  354. package/plugins/PanoRulerPlugin/data/roomInfo.js +0 -51
  355. package/plugins/PanoRulerPlugin/data/roomRules.d.ts +0 -3
  356. package/plugins/PanoRulerPlugin/data/roomRules.js +0 -235
  357. package/plugins/PanoRulerPlugin/index.d.ts +0 -27
  358. package/plugins/PanoRulerPlugin/index.js +0 -637
  359. package/plugins/PanoRulerPlugin/typings.d.ts +0 -21
  360. package/plugins/PanoRulerPlugin/typings.js +0 -7
  361. package/plugins/PanoTVVideoPlugin/index.d.ts +0 -26
  362. package/plugins/PanoTVVideoPlugin/index.js +0 -433
  363. package/plugins/TreasurePlugin/Controller.d.ts +0 -73
  364. package/plugins/TreasurePlugin/Controller.js +0 -250
  365. package/plugins/TreasurePlugin/TreasureFaceAnime.d.ts +0 -25
  366. package/plugins/TreasurePlugin/TreasureFaceAnime.js +0 -143
  367. package/plugins/TreasurePlugin/TreasureObject.d.ts +0 -53
  368. package/plugins/TreasurePlugin/TreasureObject.js +0 -406
  369. package/plugins/TreasurePlugin/TreasureOpenAnime.d.ts +0 -25
  370. package/plugins/TreasurePlugin/TreasureOpenAnime.js +0 -127
  371. package/plugins/TreasurePlugin/constants.d.ts +0 -33
  372. package/plugins/TreasurePlugin/constants.js +0 -67
  373. package/plugins/TreasurePlugin/index.d.ts +0 -11
  374. package/plugins/TreasurePlugin/index.js +0 -26
  375. package/plugins/TreasurePlugin/typings.d.ts +0 -2
  376. package/plugins/TreasurePlugin/typings.js +0 -7
  377. package/plugins/floorplan/Assets/floorplanExtraObject.d.ts +0 -1
  378. package/plugins/floorplan/Assets/floorplanExtraObject.js +0 -10
  379. package/plugins/floorplan/ModelFloorplanPlugin/Controller.js +0 -626
  380. package/plugins/floorplan/ModelFloorplanPlugin/components/Camera.d.ts +0 -13
  381. package/plugins/floorplan/ModelFloorplanPlugin/components/Camera.js +0 -78
  382. package/plugins/floorplan/ModelFloorplanPlugin/components/Compass.d.ts +0 -5
  383. package/plugins/floorplan/ModelFloorplanPlugin/components/Compass.js +0 -84
  384. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomHighlight.d.ts +0 -10
  385. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomHighlight.js +0 -129
  386. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomLabels.d.ts +0 -13
  387. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomLabels.js +0 -118
  388. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/index.d.ts +0 -13
  389. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/index.js +0 -62
  390. package/plugins/floorplan/ModelFloorplanPlugin/components/index.d.ts +0 -20
  391. package/plugins/floorplan/ModelFloorplanPlugin/components/index.js +0 -88
  392. package/plugins/floorplan/ModelFloorplanPlugin/controller.style.d.ts +0 -1
  393. package/plugins/floorplan/ModelFloorplanPlugin/controller.style.js +0 -16
  394. package/plugins/floorplan/ModelFloorplanPlugin/index.js +0 -20
  395. package/plugins/floorplan/ModelFloorplanPlugin/typings/events.type.js +0 -7
  396. package/plugins/floorplan/ModelFloorplanPlugin/utils/constant.js +0 -33
  397. package/plugins/floorplan/ModelFloorplanPlugin/utils/correctFiveState.js +0 -154
  398. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.d.ts +0 -13
  399. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.js +0 -113
  400. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.style.d.ts +0 -3
  401. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.style.js +0 -39
  402. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/ExtraObjects.d.ts +0 -5
  403. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/ExtraObjects.js +0 -66
  404. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/RoomHighlight.d.ts +0 -9
  405. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/RoomHighlight.js +0 -126
  406. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/index.d.ts +0 -11
  407. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/index.js +0 -58
  408. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.d.ts +0 -17
  409. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.js +0 -85
  410. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.style.d.ts +0 -2
  411. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.style.js +0 -15
  412. package/plugins/floorplan/PanoFloorplanRadarPlugin/Controller.js +0 -211
  413. package/plugins/floorplan/PanoFloorplanRadarPlugin/index.js +0 -20
  414. package/plugins/floorplan/TopviewFloorplanPlugin/Controller.js +0 -262
  415. package/plugins/floorplan/TopviewFloorplanPlugin/index.js +0 -18
  416. package/plugins/floorplan/TopviewFloorplanPlugin/style.js +0 -16
  417. package/plugins/floorplan/components/FloorplanImage.d.ts +0 -7
  418. package/plugins/floorplan/components/FloorplanImage.js +0 -90
  419. package/plugins/floorplan/typings/floorplanData.js +0 -7
  420. package/plugins/floorplan/typings/floorplanServerData.js +0 -382
  421. package/plugins/floorplan/utils/formatData.js +0 -217
  422. package/plugins/floorplan/utils/formatPosition.js +0 -89
  423. package/shared-utils/Preloader.js +0 -57
  424. package/shared-utils/Subscribe.js +0 -230
  425. package/shared-utils/animationFrame/BetterTween.js +0 -103
  426. package/shared-utils/animationFrame/calculateProgress.js +0 -40
  427. package/shared-utils/animationFrame/formatRad.js +0 -36
  428. package/shared-utils/animationFrame/index.js +0 -81
  429. package/shared-utils/animationFrame/tween.js +0 -92
  430. package/shared-utils/changeModelCanvansOpacity.d.ts +0 -2
  431. package/shared-utils/changeModelCanvansOpacity.js +0 -38
  432. package/shared-utils/createCanvasTextTexture.js +0 -31
  433. package/shared-utils/createFiveContainer.d.ts +0 -10
  434. package/shared-utils/createFiveContainer.js +0 -171
  435. package/shared-utils/createLine/index.js +0 -43
  436. package/shared-utils/debounce.js +0 -30
  437. package/shared-utils/equal.js +0 -107
  438. package/shared-utils/filter.js +0 -127
  439. package/shared-utils/five/changeMode.js +0 -82
  440. package/shared-utils/five/useFivePlugin.js +0 -17
  441. package/shared-utils/formatRad.js +0 -18
  442. package/shared-utils/getPxmm.js +0 -51
  443. package/shared-utils/getRandomColor.js +0 -23
  444. package/shared-utils/isNil.js +0 -26
  445. package/shared-utils/isTruelyObject.js +0 -31
  446. package/shared-utils/math/evenNumber.d.ts +0 -1
  447. package/shared-utils/math/evenNumber.js +0 -13
  448. package/shared-utils/math/planimetry.js +0 -352
  449. package/shared-utils/math/rad2Deg.js +0 -12
  450. package/shared-utils/nearlyEqual.js +0 -19
  451. package/shared-utils/nextFrame.js +0 -15
  452. package/shared-utils/noop.js +0 -19
  453. package/shared-utils/object3d2LocalMatrix.js +0 -79
  454. package/shared-utils/px2rem.js +0 -22
  455. package/shared-utils/three/centerPoint.js +0 -14
  456. package/shared-utils/three/getExtraModelLoader.js +0 -45
  457. package/shared-utils/three/getNormal.js +0 -17
  458. package/shared-utils/three/getTextureLoader.js +0 -50
  459. package/shared-utils/three/loadFbxObj.js +0 -54
  460. package/shared-utils/three/loadTexture.d.ts +0 -2
  461. package/shared-utils/three/loadTexture.js +0 -46
  462. package/shared-utils/three/transformPositionToVector3.js +0 -20
  463. package/shared-utils/three/transfromToMeshBasicMaterial.js +0 -33
  464. package/shared-utils/throttle.js +0 -29
  465. package/shared-utils/to.js +0 -67
  466. package/shared-utils/useDebounce.js +0 -49
  467. package/shared-utils/useThrottle.js +0 -47
  468. package/shared-utils/uuid.d.ts +0 -4
  469. package/shared-utils/uuid.js +0 -28
  470. package/shared-utils/vectorTocoordinates.js +0 -18
  471. package/typedoc/components.d.ts +0 -6
  472. package/typedoc/components.js +0 -7
  473. package/typedoc/plugins.d.ts +0 -19
  474. package/typedoc/plugins.js +0 -165
  475. package/typedoc/shared-utils.d.ts +0 -3
  476. package/typedoc/shared-utils.js +0 -7
  477. package/typedoc/typings.d.ts +0 -3
  478. package/typedoc/typings.js +0 -7
  479. package/typings/math.type.js +0 -7
  480. package/typings/utils.type.js +0 -7
@@ -0,0 +1,357 @@
1
+ import Main from './Components/Main.svelte';
2
+ import to from '../../shared-utils/to';
3
+ import formatData from '../utils/formatData';
4
+ import equal from '../../shared-utils/equal';
5
+ import getPxmm from '../../shared-utils/getPxmm';
6
+ import correctFiveState, { checkShowState } from './utils/correctFiveState';
7
+ import changeModelCanvasOpacity from '../../shared-utils/changeModelCanvasOpacity';
8
+ import { omit } from '../../shared-utils/filter';
9
+ import { Subscribe } from '@realsee/five';
10
+ import { FloorplanErrorType, FIVE_CAMERA_DEFAULT_FOV, SHOW_ANIME_DURATION } from './utils/constant';
11
+ export const MODEL_FLOORPLAN_PLUGIN_NAME = 'modelFloorplanPlugin';
12
+ export default class ModelFloorplanPluginController {
13
+ name = MODEL_FLOORPLAN_PLUGIN_NAME;
14
+ /** 用于绑定事件钩子 */
15
+ hooks;
16
+ /** 展示状态 */
17
+ visible = false;
18
+ /** 户型图大小 */
19
+ size = { width: 0, height: 0 };
20
+ app = undefined;
21
+ pxmm = 0;
22
+ five;
23
+ panoIndex = 0;
24
+ floorIndex = 0;
25
+ configs = {};
26
+ lastPanoramaLongitude = 0;
27
+ selector;
28
+ floorplanData;
29
+ wrapper;
30
+ container = document.createElement('div');
31
+ showState;
32
+ /** 记录上次 show 的参数,如果不一致,需要 reject 掉正在进行的 showPromise */
33
+ ModelFloorplanPluginsShowOpts;
34
+ showPromise;
35
+ showRejection;
36
+ constructor(five, params) {
37
+ this.five = five;
38
+ this.hooks = new Subscribe();
39
+ this.selector = params.selector;
40
+ this.configs = omit(params, ['selector']);
41
+ this.showState = { longitude: 0, latitude: Math.PI / 2, fov: FIVE_CAMERA_DEFAULT_FOV / (params?.scale ?? 1) };
42
+ // 设置 container 样式
43
+ this.container.classList.add('floorplan-plugin');
44
+ Object.assign(this.container.style, {
45
+ position: 'absolute',
46
+ left: '50%',
47
+ top: '50%',
48
+ transform: 'translate(-50%, -50%)',
49
+ pointerEvents: 'none',
50
+ zIndex: 10,
51
+ });
52
+ // 如果初始化的时候模型已经加载完毕了,就不用再等 modelLoaded
53
+ this.five.model.loaded ? this.handleModelLoaded() : five.once('modelLoaded', this.handleModelLoaded);
54
+ five.once('dispose', this.dispose);
55
+ five.on('modeChange', this.handleModeChange);
56
+ five.on('panGesture', this.handlePanGesture);
57
+ five.on('panoArrived', this.handlePanoArrived);
58
+ five.on('wantsChangeMode', this.handleWantsChangeMode);
59
+ five.on('wantsInteriaPan', this.handleWantsInteriaPan);
60
+ five.on('modelShownFloorChange', this.onModelShownFloorChange);
61
+ }
62
+ dispose = () => {
63
+ const five = this.five;
64
+ this.hide();
65
+ this.app?.$destroy();
66
+ this.container?.remove();
67
+ five.off('modelLoaded', this.handleModelLoaded);
68
+ five.off('modeChange', this.handleModeChange);
69
+ five.off('panGesture', this.handlePanGesture);
70
+ five.off('panoArrived', this.handlePanoArrived);
71
+ five.off('wantsChangeMode', this.handleWantsChangeMode);
72
+ five.off('wantsInteriaPan', this.handleWantsInteriaPan);
73
+ five.off('wantsTapGesture', this.handleWantsTapGesture);
74
+ five.off('modelShownFloorChange', this.onModelShownFloorChange);
75
+ };
76
+ /** 加载户型图数据 */
77
+ async load(data) {
78
+ const copyData = JSON.parse(JSON.stringify(data));
79
+ this.floorplanData = await formatData(copyData);
80
+ this.render();
81
+ }
82
+ /** 把插件的渲染DOM插入到对应的容器中去 */
83
+ appendTo(wrapper) {
84
+ this.wrapper = wrapper;
85
+ wrapper.appendChild(this.container);
86
+ return this;
87
+ }
88
+ /** 更新户型图大小 */
89
+ updateSize = () => {
90
+ if (!this.floorplanData)
91
+ return;
92
+ if (!checkShowState(this.five, this.showState))
93
+ return;
94
+ if (!this.container || !this.wrapper)
95
+ return;
96
+ // 计算户型图展示大小
97
+ const { min, max } = this.floorplanData.bounding;
98
+ const width = max.x - min.x;
99
+ const height = max.y - min.y;
100
+ // 每毫米对应的 px 值
101
+ const pxmm = getPxmm(this.five, this.wrapper);
102
+ const _width = Math.ceil(width * pxmm);
103
+ const _height = Math.ceil(height * pxmm);
104
+ if (this.size.width === _width && this.size.height === _height)
105
+ return;
106
+ this.pxmm = pxmm;
107
+ this.size = { width: _width, height: _height };
108
+ this.container.style.width = _width + 'px';
109
+ this.container.style.height = _height + 'px';
110
+ };
111
+ /** 展示户型图
112
+ * 1. show 函数大部分情况下需要耗时
113
+ * 2. 如果当前已经在展示中,将不会触发任何事件
114
+ * 3. 如果展示过程被中断,将抛出错误
115
+ * 4. 多次调用 show 方法,只会触发一次 showAnimationEnded 事件,但是展示结果会取决于最后一次调用参数
116
+ * 5. 如果多次调用 show 方法,参数与上次参数不一致时,上次 show Promise 会被 reject
117
+ * @param opts.floorIndex 楼层
118
+ * @param opts.modelOpacity 模型透明度
119
+ * @param opts.immediately 是否立即展示
120
+ * @param opts.isAutoShow 是否是自动展示
121
+ */
122
+ show = async (opts) => {
123
+ // 已经在展示中了
124
+ if (!this.showPromise && this.visible)
125
+ return true;
126
+ if (!this.five.model?.loaded)
127
+ throw new Error(FloorplanErrorType.ModelNotLoaded);
128
+ if (!this.floorplanData)
129
+ throw new Error(FloorplanErrorType.DataNotLoaded);
130
+ this.visible = true;
131
+ if (this.showPromise) {
132
+ const sameWithLastOpts = equal(opts, this.ModelFloorplanPluginsShowOpts, { deep: false });
133
+ if (!!this.showPromise && sameWithLastOpts)
134
+ return this.showPromise;
135
+ if (!!this.showPromise && !sameWithLastOpts)
136
+ this.showRejection?.(FloorplanErrorType.DifferentShowParams);
137
+ }
138
+ this.ModelFloorplanPluginsShowOpts = opts;
139
+ const getShowPromise = async () => {
140
+ let hasRejected = false;
141
+ let externalErrorMsg;
142
+ this.showRejection = (errorMsg) => {
143
+ hasRejected = true;
144
+ externalErrorMsg = errorMsg;
145
+ };
146
+ const [correctError] = await to(correctFiveState(this.five, this.showState, opts?.userAction));
147
+ if (correctError)
148
+ throw correctError;
149
+ // 异步结束要判断当前是不是被中断了,是不是调用了隐藏
150
+ if (hasRejected)
151
+ throw externalErrorMsg ? new Error(externalErrorMsg) : new Error(FloorplanErrorType.UnknownError);
152
+ if (!this.visible)
153
+ throw new Error(FloorplanErrorType.UnknownError);
154
+ // 更新户型图状态
155
+ this.visible = true;
156
+ // 更新户型图大小
157
+ this.updateSize();
158
+ // 高亮当前楼层,有两个目的
159
+ // 1. 点击模型时,可以跳转到当前楼层的点位上
160
+ // 2. 当前楼层比较小时,户型图也比较小,如果展示全部楼层,会展示户型图外有一圈模型
161
+ if (opts?.floorIndex)
162
+ this.floorIndex = opts.floorIndex;
163
+ this.five.model.show(this.floorIndex);
164
+ // 模型消失, 渲染户型图
165
+ const modelOpacity = opts?.modelOpacity ?? this.configs.modelOpacity ?? 1;
166
+ const renderDuration = opts?.immediately ? 0 : SHOW_ANIME_DURATION;
167
+ changeModelCanvasOpacity(this.five, modelOpacity, renderDuration);
168
+ this.render(renderDuration);
169
+ // 展示之后的事件监听
170
+ this.five.on('wantsGesture', this.handleWantsGesture);
171
+ this.five.on('wantsTapGesture', this.handleWantsTapGesture);
172
+ return true;
173
+ };
174
+ const showPromise = getShowPromise()
175
+ .then(() => {
176
+ this.hooks.emit('showAnimationEnded', { auto: !!opts?.isAutoShow, userAction: opts?.userAction ?? true });
177
+ return true;
178
+ })
179
+ .catch((error) => {
180
+ // 自动展示的报错内部处理
181
+ if (opts?.isAutoShow)
182
+ return false;
183
+ if (!(error instanceof Error))
184
+ return false;
185
+ // 非自动展示的报错继续向外抛出
186
+ throw error;
187
+ })
188
+ .finally(() => {
189
+ this.showPromise = undefined;
190
+ this.showRejection = undefined;
191
+ });
192
+ this.showPromise = showPromise;
193
+ return showPromise;
194
+ };
195
+ /** 隐藏户型图 */
196
+ hide = (options) => {
197
+ if (this.size.width === 0)
198
+ return true;
199
+ if (this.visible === false)
200
+ return true;
201
+ const isAutoHide = !!options?.isAutoHide;
202
+ this.five.off('wantsGesture', this.handleWantsGesture);
203
+ this.five.off('wantsTapGesture', this.handleWantsTapGesture);
204
+ this.visible = false;
205
+ this.showRejection?.(FloorplanErrorType.BreakOffByHide);
206
+ changeModelCanvasOpacity(this.five, 1, 0);
207
+ this.render();
208
+ this.hooks.emit('hide', { auto: isAutoHide, userAction: options?.userAction ?? true });
209
+ return true;
210
+ };
211
+ /** 更改户型图楼层 */
212
+ changeFloor(floorIndex) {
213
+ this.five.model.show(floorIndex);
214
+ this.floorIndex = floorIndex;
215
+ this.render();
216
+ }
217
+ changeConfigs(params) {
218
+ Object.assign(this.configs, params);
219
+ if (!this.container)
220
+ return;
221
+ this.render();
222
+ }
223
+ /** 模型楼层高亮改变时,自动进行楼层切换 */
224
+ onModelShownFloorChange = (shownFloor) => {
225
+ if (shownFloor === null)
226
+ return;
227
+ this.floorIndex = shownFloor;
228
+ this.render();
229
+ };
230
+ handleModelLoaded = () => {
231
+ if (this.wrapper)
232
+ return;
233
+ if (!this.selector)
234
+ return;
235
+ const wrapper = this.selector instanceof Element ? this.selector : document.querySelector(this.selector);
236
+ if (!wrapper)
237
+ throw new Error('不正确的父容器选择器');
238
+ this.wrapper = wrapper;
239
+ wrapper.append(this.container);
240
+ };
241
+ handleClick = () => {
242
+ if (!this.visible)
243
+ return;
244
+ const prevented = this.hooks.emit('click');
245
+ if (prevented)
246
+ return false;
247
+ };
248
+ handleWantsTapGesture = () => this.handleClick();
249
+ /** 从 Panorama 切换到其他模态时,记录当前的相机水平视角 */
250
+ handleWantsChangeMode = (mode) => {
251
+ if (mode !== 'Panorama') {
252
+ this.lastPanoramaLongitude = this.five.getCurrentState().longitude;
253
+ }
254
+ if (mode !== 'Floorplan')
255
+ this.hide();
256
+ };
257
+ /** 监听模型态变化,只有在模型态才进行手势动作监听 */
258
+ handleModeChange = (mode) => {
259
+ if (mode === 'Floorplan') {
260
+ this.five.on('panGesture', this.handlePanGesture);
261
+ }
262
+ else {
263
+ this.hide();
264
+ this.five.off('panGesture', this.handlePanGesture);
265
+ }
266
+ };
267
+ /** panoIndex 改变时,更新 floorIndex */
268
+ handlePanoArrived = (index) => {
269
+ if (!this.five?.work)
270
+ return;
271
+ this.panoIndex = index;
272
+ this.floorIndex = this.five.work.observers[index].floorIndex;
273
+ };
274
+ /** 当户型图正在展示中的时候禁用惯性 */
275
+ handleWantsInteriaPan = () => {
276
+ if (this.visible)
277
+ return false;
278
+ };
279
+ /** 在户型图展示时阻止多指操作, 阻止鼠标放大 */
280
+ handleWantsGesture = (type, pointers) => {
281
+ if (!this.visible)
282
+ return;
283
+ if (pointers.length > 1)
284
+ return false;
285
+ if (type === 'mouseWheel')
286
+ return false;
287
+ };
288
+ /** 监听三维模型滑动
289
+ * 1. 在三维模型转动结束时,如果达到设置的阈值,会自动切换到户型图
290
+ * 2. 如何户型图已经展示,滑动时关闭户型图
291
+ */
292
+ handlePanGesture = async ({ latitude, longitude }, isFinal) => {
293
+ if (this.configs.autoShowEnable === false)
294
+ return;
295
+ // 如果操作结束后,户型图还在展示中,初始化模型状态
296
+ if (isFinal && this.visible)
297
+ return this.five.setState(this.showState, true);
298
+ // 满足消失的条件:
299
+ // 水平旋转角大于正负 5 度 || 俯仰角度大于 5 度
300
+ const latitudeHide = Math.abs(latitude - Math.PI / 2) > (5 * Math.PI) / 180;
301
+ const longitudeHide = longitude > 5 * (Math.PI / 180) && longitude < 355 * (Math.PI / 180);
302
+ const canHide = latitudeHide || longitudeHide;
303
+ if (this.visible && canHide)
304
+ return this.hide({ isAutoHide: true });
305
+ if (this.five.camera.fov / FIVE_CAMERA_DEFAULT_FOV < 0.8)
306
+ return;
307
+ // 户型图展示条件:
308
+ // 水平旋转角正负 30 度 && 俯仰角度小于 10 度
309
+ const latitudeVisible = Math.abs(latitude - Math.PI / 2) < (10 * Math.PI) / 180;
310
+ const longitudeVisible = longitude < 30 * (Math.PI / 180) || longitude > 330 * (Math.PI / 180);
311
+ if (isFinal && !this.visible && latitudeVisible && longitudeVisible) {
312
+ // 当手指离开时需要等惯性结束之后在进行判断
313
+ const handleInteriaPan = async (any, isFinal) => {
314
+ if (!isFinal)
315
+ return;
316
+ this.five.off('interiaPan', handleInteriaPan);
317
+ await this.show({ isAutoShow: true });
318
+ };
319
+ this.five.on('interiaPan', handleInteriaPan);
320
+ return;
321
+ }
322
+ };
323
+ render(duration) {
324
+ if (!this.container || !this.floorplanData)
325
+ return;
326
+ if (this.size.width === 0)
327
+ return;
328
+ const { hoverEnable, cameraImageUrl, getLabelElement, roomLabelsEnable, compassEnable, ruleLabelsEnable } = this.configs;
329
+ const props = {
330
+ five: this.five,
331
+ pxmm: this.pxmm,
332
+ cameraImageUrl,
333
+ visible: this.visible,
334
+ duration: duration ?? 0,
335
+ panoIndex: this.panoIndex,
336
+ floorIndex: this.floorIndex,
337
+ floorplanData: this.floorplanData,
338
+ hoverEnable: hoverEnable ?? false,
339
+ compassEnable: compassEnable ?? true,
340
+ ruleLabelsEnable: ruleLabelsEnable ?? true,
341
+ roomLabelsEnable: roomLabelsEnable ?? true,
342
+ lastPanoramaLongitude: this.lastPanoramaLongitude,
343
+ getLabelElement,
344
+ onRoomHeightClick: this.handleClick,
345
+ };
346
+ if (!this.app) {
347
+ this.app = new Main({
348
+ target: this.container,
349
+ intro: true,
350
+ props,
351
+ });
352
+ }
353
+ else {
354
+ this.app.$set(props);
355
+ }
356
+ }
357
+ }
@@ -1,4 +1,4 @@
1
- import { FivePlugin } from '@realsee/five';
1
+ import type { FivePlugin } from '@realsee/five';
2
2
  import FloorplanPluginController, { ModelFloorplanParameterType } from './Controller';
3
3
  export declare const ModelFloorplanPlugin: FivePlugin<ModelFloorplanParameterType, ModelFloorplanPluginReturnType>;
4
4
  export default ModelFloorplanPlugin;
@@ -0,0 +1,5 @@
1
+ import FloorplanPluginController from './Controller';
2
+ export const ModelFloorplanPlugin = (five, params) => {
3
+ return new FloorplanPluginController(five, params);
4
+ };
5
+ export default ModelFloorplanPlugin;
@@ -1,5 +1,5 @@
1
1
  export declare const enum FloorplanErrorType {
2
- UnknowError = "UnknowError",
2
+ UnknownError = "UnknowError",
3
3
  DataNotLoaded = "DataNotLoaded",
4
4
  BreakOffByHide = "BreakOffByHide",
5
5
  ModelNotLoaded = "ModelNotLoaded",
@@ -0,0 +1,16 @@
1
+ export var FloorplanErrorType;
2
+ (function (FloorplanErrorType) {
3
+ FloorplanErrorType["UnknownError"] = "UnknowError";
4
+ FloorplanErrorType["DataNotLoaded"] = "DataNotLoaded";
5
+ FloorplanErrorType["BreakOffByHide"] = "BreakOffByHide";
6
+ FloorplanErrorType["ModelNotLoaded"] = "ModelNotLoaded";
7
+ FloorplanErrorType["ChangeModeError"] = "ChangeModeError";
8
+ FloorplanErrorType["UpdateCameraError"] = "UpdateCameraError";
9
+ FloorplanErrorType["DifferentShowParams"] = "DifferentShowParams";
10
+ })(FloorplanErrorType || (FloorplanErrorType = {}));
11
+ /** 户型图展示 & 模型消失的默认时间 */
12
+ export const SHOW_ANIME_DURATION = 500;
13
+ /** Five camera 默认 fov */
14
+ export const FIVE_CAMERA_DEFAULT_FOV = 80;
15
+ /** 展示户型图时,默认模型的透明度 */
16
+ export const DEFAULT_SHOW_MODEL_OPACITY = 0.01;
@@ -0,0 +1,46 @@
1
+ import { Five } from '@realsee/five';
2
+ import changeMode from '../../../shared-utils/five/changeMode';
3
+ import { FloorplanErrorType } from './constant';
4
+ import to from '../../../shared-utils/to';
5
+ import nearlyEqual from '../../../shared-utils/nearlyEqual';
6
+ /** 判断当前状态是否可以展示户型图 */
7
+ export function checkShowState(five, showState) {
8
+ if (five.currentMode !== Five.Mode.Floorplan)
9
+ return false;
10
+ const { latitude, longitude, fov } = showState;
11
+ const { latitude: _latitude, longitude: _longitude } = five.getCurrentState();
12
+ const _fov = five.camera.fov;
13
+ if (nearlyEqual(latitude, _latitude, 1) && nearlyEqual(longitude, _longitude, 1) && fov === _fov)
14
+ return true;
15
+ return false;
16
+ }
17
+ /** 更改 Five 状态到展示户型图的状态
18
+ * 1. 判断状态不符合时,会纠正到正确的状态
19
+ * 2. 内置了相应的动画时间计算
20
+ * 3. 纠正成功会返回 true,失败「可能会被用户行为中断」会返回 false
21
+ */
22
+ export default async function correctFiveState(five, showState, userAction = true) {
23
+ // 当前已满足状态,不需要变更
24
+ const result = checkShowState(five, showState);
25
+ if (result === true)
26
+ return;
27
+ // 纠正 mode
28
+ if (five.currentMode !== Five.Mode.Floorplan) {
29
+ const [changeModeError] = await to(changeMode(five, Five.Mode.Floorplan, showState, undefined, userAction));
30
+ if (changeModeError)
31
+ throw changeModeError;
32
+ // changeMode 是异步行为,可能会被打断,需要在结束后加一次判断
33
+ const result = checkShowState(five, showState);
34
+ if (result === false)
35
+ throw new Error(FloorplanErrorType.ChangeModeError);
36
+ return;
37
+ }
38
+ // 纠正相机状态
39
+ // 根据 latitude、longitude、fov 计算动画时间,最多 1s
40
+ const { latitude, longitude, fov } = five.getCurrentState();
41
+ const time = Math.min(1000, Math.max(200, Math.abs(latitude - Math.PI / 2) * 1000, (longitude > Math.PI ? 2 * Math.PI - longitude : longitude) * 500, Math.abs(fov - showState.fov) * 10));
42
+ const [updateCameraError] = await to(five.updateCamera(showState, time, userAction));
43
+ if (updateCameraError)
44
+ throw new Error(FloorplanErrorType.UpdateCameraError);
45
+ return;
46
+ }
@@ -0,0 +1,84 @@
1
+ <script>import { onMount, onDestroy } from 'svelte';
2
+ import { CAMERA_IMAGE } from '../../Assets/camera';
3
+ import throttle from '../../../shared-utils/throttle';
4
+ export let five;
5
+ export let pxmm;
6
+ export let floorplanData;
7
+ export let cameraImageUrl;
8
+ /** 获取相机在当前 Five 状态下的位移 */
9
+ function getCameraPositionTransform(panoIndex) {
10
+ const observer = floorplanData.observers[panoIndex];
11
+ const bounding = floorplanData.bounding;
12
+ const clientWidth = (bounding.max.x - bounding.min.x) * pxmm;
13
+ const clientHeight = (bounding.max.y - bounding.min.y) * pxmm;
14
+ if (!observer)
15
+ return '';
16
+ const left = Math.floor(observer.positionInImage.x * clientWidth);
17
+ const top = Math.floor(observer.positionInImage.y * clientHeight);
18
+ return `translate(${left}px, ${top}px)`;
19
+ }
20
+ /** 获取相机在当前 Five 状态下的旋转 */
21
+ function getCameraRotationTransform() {
22
+ const { longitude } = five.getCurrentState();
23
+ // 为什么要加 45 ==> 因为 UI 给的图初始角度是 -45
24
+ const rotate = Math.floor((longitude / Math.PI) * 180) * -1 + 45;
25
+ return `rotate(${rotate}deg)`;
26
+ }
27
+ const changePosition = (panoIndex) => {
28
+ positionTransform = getCameraPositionTransform(panoIndex);
29
+ };
30
+ const changeRotate = throttle(() => {
31
+ rotateTransform = getCameraRotationTransform();
32
+ }, 1000 / 60);
33
+ // 初始状态,不能等 mount 之后再计算,那样第一次 camera 展示的时候也会有动画
34
+ let rotateTransform = getCameraRotationTransform();
35
+ let positionTransform = getCameraPositionTransform(five.getCurrentState().panoIndex);
36
+ onMount(() => {
37
+ five.on('panoWillArrive', changePosition);
38
+ five.on('cameraDirectionUpdate', changeRotate);
39
+ });
40
+ onDestroy(() => {
41
+ five.off('panoWillArrive', changePosition);
42
+ five.off('cameraDirectionUpdate', changeRotate);
43
+ });
44
+ </script>
45
+
46
+ <div class="plugin-radar__camera-wrapper">
47
+ <div class="plugin-radar__camera-position" style:transform="{positionTransform}">
48
+ <div
49
+ class="plugin-radar__camera-rotate"
50
+ style:transform="{rotateTransform}"
51
+ style="background-image: url({cameraImageUrl || CAMERA_IMAGE})"
52
+ ></div>
53
+ </div>
54
+ </div>
55
+
56
+ <style>
57
+ .plugin-radar__camera-wrapper {
58
+ width: 100%;
59
+ height: 100%;
60
+ position: absolute;
61
+ pointer-events: none;
62
+ }
63
+ .plugin-radar__camera-position {
64
+ position: absolute;
65
+ left: 0;
66
+ top: 0;
67
+ width: 0;
68
+ height: 0;
69
+ transform: none;
70
+ pointer-events: none;
71
+ transition: transform 1s linear;
72
+ }
73
+ .plugin-radar__camera-rotate {
74
+ position: absolute;
75
+ left: -15px;
76
+ top: -15px;
77
+ width: 17px;
78
+ height: 17px;
79
+ transform-origin: 15px 15px;
80
+ transform: rotate(45deg);
81
+ background-repeat: no-repeat;
82
+ background-size: 100%;
83
+ }
84
+ </style>
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"AAAA,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDjB,CAAC,CAAC,MAAM;;AAER,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;AACzC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAClF,IAAI,CAAC;AACL,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;AACxC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;AACxC,MAAM,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AACpE,IAAI,CAAC,CAAC,CAAC,GAAG;AACV,EAAE,CAAC,CAAC,GAAG;AACP,CAAC,CAAC,GAAG;;AAEL,CAAC,KAAK;AACN,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;AAChC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;AACf,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC;AAChB,IAAI,QAAQ,CAAC,CAAC,QAAQ;AACtB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI;AACxB,EAAE;AACF,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;AACjC,IAAI,QAAQ,CAAC,CAAC,QAAQ;AACtB,IAAI,IAAI,CAAC,CAAC,CAAC;AACX,IAAI,GAAG,CAAC,CAAC,CAAC;AACV,IAAI,KAAK,CAAC,CAAC,CAAC;AACZ,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,IAAI,SAAS,CAAC,CAAC,IAAI;AACnB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI;AACxB,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM;AACnC,EAAE;AACF,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AAC/B,IAAI,QAAQ,CAAC,CAAC,QAAQ;AACtB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;AACf,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI;AACd,IAAI,KAAK,CAAC,CAAC,IAAI;AACf,IAAI,MAAM,CAAC,CAAC,IAAI;AAChB,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI;AAC/B,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM;AAChC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AACzB,EAAE;AACF,CAAC,CAAC,KAAK;","names":[],"sources":["Camera.svelte"]}
@@ -0,0 +1,18 @@
1
+ <script>import ExtraObjects from './ExtraObjects.svelte';
2
+ import BaseImage from '../../../Components/BaseImage.svelte';
3
+ import Highlight from '../../../Components/RoomHighlight/RoomHighlight.svelte';
4
+ export let five;
5
+ export let pxmm;
6
+ export let floorIndex;
7
+ export let hoverEnable;
8
+ export let floorplanData;
9
+ export let extraObjects = [];
10
+ $: currentFloorExtraObjects = extraObjects?.filter((object) => object.floorIndex === floorIndex);
11
+ const onRoomHeightClick = undefined;
12
+ </script>
13
+
14
+ <BaseImage {...{ floorIndex, floorplanData }} />
15
+ <ExtraObjects extraObjects="{currentFloorExtraObjects}" />
16
+ {#if hoverEnable}
17
+ <Highlight {...{ five, pxmm, floorIndex, floorplanData, onRoomHeightClick }} />
18
+ {/if}
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"AAAA,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;AAgBjB,CAAC,CAAC,MAAM;;AAER,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC,EAAE,CAAC,WAAW;AAChB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC,EAAE;","names":[],"sources":["CurrentFloor.svelte"]}
@@ -0,0 +1,40 @@
1
+ <script>export let extraObjects = [];
2
+ </script>
3
+
4
+ <div class="plugin-pano-floorplan__extra-objects">
5
+ {#each extraObjects as extraObject (extraObject.id)}
6
+ <div
7
+ class="plugin-pano-floorplan__extra-object-item--position"
8
+ style:top="{extraObject.positionInImage.y * 100}%"
9
+ style:left="{extraObject.positionInImage.x * 100}%"
10
+ >
11
+ <div
12
+ class="plugin-pano-floorplan__extra-object-item"
13
+ style:width="{extraObject.icon.width / 16}rem"
14
+ style:height="{extraObject.icon.height / 16}rem"
15
+ style="background-image: {`url(${extraObject.icon.url})`}"
16
+ ></div>
17
+ </div>
18
+ {/each}
19
+ </div>
20
+
21
+ <style>
22
+ .plugin-pano-floorplan__extra-objects {
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ width: 100%;
27
+ height: 100%;
28
+ pointer-events: none;
29
+ }
30
+
31
+ .plugin-pano-floorplan__extra-object-item--position {
32
+ position: absolute;
33
+ width: 0;
34
+ height: 0;
35
+ }
36
+
37
+ .plugin-pano-floorplan__extra-object-item {
38
+ transform: translate(-50%, -50%);
39
+ }
40
+ </style>
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"AAAA,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAIjB,CAAC,CAAC,MAAM;;AAER,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACjD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;AACrD,IAAI,CAAC;AACL,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;AAC/D,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI;AACJ,MAAM,CAAC;AACP,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI;AACvD,QAAQ,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;AACrD,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;AACvD,QAAQ,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,CAAC,CAAC,GAAG;AACZ,IAAI,CAAC,CAAC,GAAG;AACT,EAAE,CAAC,CAAC,IAAI;AACR,CAAC,CAAC,GAAG;;AAEL,CAAC,KAAK;AACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACxC,IAAI,QAAQ,CAAC,CAAC,QAAQ;AACtB,IAAI,GAAG,CAAC,CAAC,CAAC;AACV,IAAI,IAAI,CAAC,CAAC,CAAC;AACX,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;AACf,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC;AAChB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI;AACxB,EAAE;;AAEF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AACtD,IAAI,QAAQ,CAAC,CAAC,QAAQ;AACtB,IAAI,KAAK,CAAC,CAAC,CAAC;AACZ,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE;;AAEF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpC,EAAE;AACF,CAAC,CAAC,KAAK;","names":[],"sources":["ExtraObjects.svelte"]}
@@ -0,0 +1,61 @@
1
+ <script>import { onMount } from 'svelte';
2
+ import Camera from './Camera.svelte';
3
+ import CurrentFloor from './CurrentFloor/CurrentFloor.svelte';
4
+ export let five;
5
+ export let hoverEnable;
6
+ export let floorplanData;
7
+ export let cameraImageUrl;
8
+ export let extraObjects = [];
9
+ let pxmm = 0;
10
+ let floorIndex = 0;
11
+ let clientWidth = 0;
12
+ let clientHeight = 0;
13
+ let contentWidth = 0;
14
+ let contentHeight = 0;
15
+ $: {
16
+ const size = Math.min(clientWidth, clientHeight);
17
+ const { max, min } = floorplanData.bounding;
18
+ const boundingWidth = max.x - min.x;
19
+ const boundingHeight = max.y - min.y;
20
+ const contentSize = (function getSize() {
21
+ if (boundingWidth > boundingHeight)
22
+ return [size, (size / boundingWidth) * boundingHeight];
23
+ return [(size / boundingHeight) * boundingWidth, size];
24
+ })();
25
+ contentWidth = contentSize[0];
26
+ contentHeight = contentSize[1];
27
+ pxmm = contentWidth / boundingWidth;
28
+ }
29
+ function handlePanoArrived(panoIndex) {
30
+ floorIndex = five.work.observers[panoIndex].floorIndex;
31
+ }
32
+ onMount(() => {
33
+ five.on('panoArrived', handlePanoArrived);
34
+ return () => {
35
+ five.off('panoArrived', handlePanoArrived);
36
+ };
37
+ });
38
+ </script>
39
+
40
+ <div class="plugin-floorplan-radar" bind:clientWidth bind:clientHeight>
41
+ {#if clientWidth !== 0}
42
+ <div class="plugin-floorplan-radar-container" style:width="{contentWidth}px" style:height="{contentHeight}px">
43
+ <CurrentFloor {...{ five, pxmm, floorIndex, floorplanData, hoverEnable, extraObjects }} />
44
+ <Camera {...{ pxmm, five, floorplanData, cameraImageUrl }} />
45
+ </div>
46
+ {/if}
47
+ </div>
48
+
49
+ <style>
50
+ .plugin-floorplan-radar {
51
+ width: 100%;
52
+ height: 100%;
53
+ display: flex;
54
+ justify-content: center;
55
+ align-items: center;
56
+ }
57
+
58
+ .plugin-floorplan-radar-container {
59
+ position: relative;
60
+ }
61
+ </style>