@realsee/dnalogel 0.1.7 → 2.0.0-alpha.1

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 (477) hide show
  1. package/README.md +6 -90
  2. package/dist/dnalogel.es.js +37145 -0
  3. package/dist/dnalogel.umd.js +2 -0
  4. package/dist/style.css +1 -0
  5. package/{plugins → libs}/CSS3DRenderPlugin/index.d.ts +1 -1
  6. package/libs/CSS3DRenderPlugin/index.js +181 -0
  7. package/libs/CSS3DRenderPlugin/utils/createResizeObserver.d.ts +7 -0
  8. package/libs/CSS3DRenderPlugin/utils/createResizeObserver.js +18 -0
  9. package/{plugins → libs}/CameraMovementPlugin/index.d.ts +0 -0
  10. package/libs/CameraMovementPlugin/index.js +159 -0
  11. package/{plugins → libs}/CameraMovementPlugin/typing.d.ts +0 -0
  12. package/libs/CameraMovementPlugin/typing.js +17 -0
  13. package/{plugins → libs}/ModelChassisCompassPlugin/index.d.ts +1 -1
  14. package/libs/ModelChassisCompassPlugin/index.js +75 -0
  15. package/{plugins → libs}/ModelEntryDoorGuidePlugin/index.d.ts +6 -2
  16. package/libs/ModelEntryDoorGuidePlugin/index.js +136 -0
  17. package/libs/ModelRoomLabelPlugin/Assets/roomLabelBg.d.ts +1 -0
  18. package/libs/ModelRoomLabelPlugin/Assets/roomLabelBg.js +1 -0
  19. package/{plugins → libs}/ModelRoomLabelPlugin/Controller.d.ts +3 -2
  20. package/libs/ModelRoomLabelPlugin/Controller.js +100 -0
  21. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte +63 -0
  22. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte.map +1 -0
  23. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte +80 -0
  24. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte.map +1 -0
  25. package/libs/ModelRoomLabelPlugin/index.d.ts +12 -0
  26. package/libs/ModelRoomLabelPlugin/index.js +9 -0
  27. package/{plugins → libs}/ModelRoomLabelPlugin/typings.d.ts +2 -2
  28. package/libs/ModelRoomLabelPlugin/typings.js +1 -0
  29. package/{plugins → libs}/ModelRoomLabelPlugin/utils/parseData.d.ts +0 -0
  30. package/libs/ModelRoomLabelPlugin/utils/parseData.js +14 -0
  31. package/{plugins → libs}/ModelViewPlugin/index.d.ts +0 -0
  32. package/libs/ModelViewPlugin/index.js +160 -0
  33. package/{plugins → libs}/PanoCursorRaycasterPlugin/index.d.ts +2 -3
  34. package/libs/PanoCursorRaycasterPlugin/index.js +74 -0
  35. package/libs/floorplan/Assets/camera.d.ts +1 -0
  36. package/libs/floorplan/Assets/camera.js +1 -0
  37. package/libs/floorplan/Assets/floorplanExtraObject.d.ts +1 -0
  38. package/libs/floorplan/Assets/floorplanExtraObject.js +1 -0
  39. package/libs/floorplan/Components/BaseImage.svelte +25 -0
  40. package/libs/floorplan/Components/BaseImage.svelte.map +1 -0
  41. package/libs/floorplan/Components/Normalmage.svelte +11 -0
  42. package/libs/floorplan/Components/Normalmage.svelte.map +1 -0
  43. package/libs/floorplan/Components/RoomHighlight/Room.svelte +21 -0
  44. package/libs/floorplan/Components/RoomHighlight/Room.svelte.map +1 -0
  45. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte +60 -0
  46. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte.map +1 -0
  47. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte +35 -0
  48. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte.map +1 -0
  49. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte +7 -0
  50. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte.map +1 -0
  51. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte +16 -0
  52. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte.map +1 -0
  53. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte +17 -0
  54. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte.map +1 -0
  55. package/libs/floorplan/Components/SvgImage.svelte +25 -0
  56. package/libs/floorplan/Components/SvgImage.svelte.map +1 -0
  57. package/libs/floorplan/ModelFloorplanPlugin/Assets/compass.d.ts +1 -0
  58. package/libs/floorplan/ModelFloorplanPlugin/Assets/compass.js +1 -0
  59. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte +46 -0
  60. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte.map +1 -0
  61. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.svelte +48 -0
  62. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.svelte.map +1 -0
  63. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.svelte +37 -0
  64. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.svelte.map +1 -0
  65. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.svelte +50 -0
  66. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.svelte.map +1 -0
  67. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.svelte +41 -0
  68. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.svelte.map +1 -0
  69. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.svelte +25 -0
  70. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.svelte.map +1 -0
  71. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.svelte +148 -0
  72. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.svelte.map +1 -0
  73. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.svelte +15 -0
  74. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.svelte.map +1 -0
  75. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/Controller.d.ts +16 -14
  76. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +357 -0
  77. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/index.d.ts +1 -1
  78. package/libs/floorplan/ModelFloorplanPlugin/index.js +5 -0
  79. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/typings/events.type.d.ts +0 -0
  80. package/libs/floorplan/ModelFloorplanPlugin/typings/events.type.js +1 -0
  81. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/utils/constant.d.ts +1 -1
  82. package/libs/floorplan/ModelFloorplanPlugin/utils/constant.js +16 -0
  83. package/{plugins → libs}/floorplan/ModelFloorplanPlugin/utils/correctFiveState.d.ts +0 -0
  84. package/libs/floorplan/ModelFloorplanPlugin/utils/correctFiveState.js +46 -0
  85. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte +84 -0
  86. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte.map +1 -0
  87. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte +18 -0
  88. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte.map +1 -0
  89. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte +40 -0
  90. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte.map +1 -0
  91. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte +61 -0
  92. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte.map +1 -0
  93. package/{plugins → libs}/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +6 -11
  94. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +88 -0
  95. package/{plugins → libs}/floorplan/PanoFloorplanRadarPlugin/index.d.ts +0 -0
  96. package/libs/floorplan/PanoFloorplanRadarPlugin/index.js +5 -0
  97. package/{plugins → libs}/floorplan/TopviewFloorplanPlugin/Controller.d.ts +15 -11
  98. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +189 -0
  99. package/{plugins → libs}/floorplan/TopviewFloorplanPlugin/index.d.ts +0 -0
  100. package/libs/floorplan/TopviewFloorplanPlugin/index.js +5 -0
  101. package/{plugins → libs}/floorplan/TopviewFloorplanPlugin/style.d.ts +0 -0
  102. package/libs/floorplan/TopviewFloorplanPlugin/style.js +8 -0
  103. package/{plugins → libs}/floorplan/typings/floorplanData.d.ts +6 -0
  104. package/libs/floorplan/typings/floorplanData.js +6 -0
  105. package/{plugins → libs}/floorplan/typings/floorplanServerData.d.ts +4 -2
  106. package/libs/floorplan/typings/floorplanServerData.js +101 -0
  107. package/libs/floorplan/typings/utility.d.ts +2 -0
  108. package/libs/floorplan/typings/utility.js +1 -0
  109. package/{plugins → libs}/floorplan/utils/formatData.d.ts +3 -3
  110. package/libs/floorplan/utils/formatData.js +94 -0
  111. package/{plugins → libs}/floorplan/utils/formatPosition.d.ts +3 -4
  112. package/libs/floorplan/utils/formatPosition.js +50 -0
  113. package/libs/index.d.ts +17 -0
  114. package/libs/index.js +10 -0
  115. package/{shared-utils → libs/shared-utils}/Preloader.d.ts +0 -0
  116. package/libs/shared-utils/Preloader.js +38 -0
  117. package/{shared-utils → libs/shared-utils}/Subscribe.d.ts +3 -3
  118. package/libs/shared-utils/Subscribe.js +101 -0
  119. package/{shared-utils → libs/shared-utils}/animationFrame/BetterTween.d.ts +0 -0
  120. package/libs/shared-utils/animationFrame/BetterTween.js +30 -0
  121. package/{shared-utils → libs/shared-utils}/animationFrame/calculateProgress.d.ts +0 -0
  122. package/libs/shared-utils/animationFrame/calculateProgress.js +23 -0
  123. package/{shared-utils → libs/shared-utils}/animationFrame/formatRad.d.ts +0 -0
  124. package/libs/shared-utils/animationFrame/formatRad.js +20 -0
  125. package/{shared-utils → libs/shared-utils}/animationFrame/index.d.ts +0 -0
  126. package/libs/shared-utils/animationFrame/index.js +48 -0
  127. package/{shared-utils → libs/shared-utils}/animationFrame/tween.d.ts +0 -0
  128. package/libs/shared-utils/animationFrame/tween.js +44 -0
  129. package/libs/shared-utils/changeModelCanvasOpacity.d.ts +2 -0
  130. package/libs/shared-utils/changeModelCanvasOpacity.js +15 -0
  131. package/{shared-utils → libs/shared-utils}/createCanvasTextTexture.d.ts +0 -0
  132. package/libs/shared-utils/createCanvasTextTexture.js +19 -0
  133. package/{shared-utils → libs/shared-utils}/createLine/index.d.ts +1 -1
  134. package/libs/shared-utils/createLine/index.js +8 -0
  135. package/{shared-utils → libs/shared-utils}/debounce.d.ts +1 -1
  136. package/libs/shared-utils/debounce.js +14 -0
  137. package/{shared-utils → libs/shared-utils}/equal.d.ts +0 -0
  138. package/libs/shared-utils/equal.js +84 -0
  139. package/{shared-utils → libs/shared-utils}/filter.d.ts +0 -0
  140. package/libs/shared-utils/filter.js +53 -0
  141. package/{shared-utils → libs/shared-utils}/five/changeMode.d.ts +0 -0
  142. package/libs/shared-utils/five/changeMode.js +15 -0
  143. package/{shared-utils → libs/shared-utils}/five/useFivePlugin.d.ts +0 -0
  144. package/libs/shared-utils/five/useFivePlugin.js +8 -0
  145. package/{shared-utils → libs/shared-utils}/formatRad.d.ts +0 -0
  146. package/libs/shared-utils/formatRad.js +10 -0
  147. package/{shared-utils → libs/shared-utils}/getPxmm.d.ts +0 -0
  148. package/libs/shared-utils/getPxmm.js +20 -0
  149. package/{shared-utils → libs/shared-utils}/getRandomColor.d.ts +0 -0
  150. package/libs/shared-utils/getRandomColor.js +10 -0
  151. package/{shared-utils → libs/shared-utils}/isNil.d.ts +0 -0
  152. package/libs/shared-utils/isNil.js +14 -0
  153. package/{shared-utils → libs/shared-utils}/isTruelyObject.d.ts +0 -0
  154. package/libs/shared-utils/isTruelyObject.js +20 -0
  155. package/libs/shared-utils/math/evenNumber.d.ts +3 -0
  156. package/libs/shared-utils/math/evenNumber.js +4 -0
  157. package/{shared-utils → libs/shared-utils}/math/planimetry.d.ts +4 -4
  158. package/libs/shared-utils/math/planimetry.js +288 -0
  159. package/{shared-utils → libs/shared-utils}/math/rad2Deg.d.ts +0 -0
  160. package/libs/shared-utils/math/rad2Deg.js +3 -0
  161. package/{shared-utils → libs/shared-utils}/nearlyEqual.d.ts +0 -0
  162. package/libs/shared-utils/nearlyEqual.js +9 -0
  163. package/{shared-utils → libs/shared-utils}/nextFrame.d.ts +0 -0
  164. package/libs/shared-utils/nextFrame.js +6 -0
  165. package/{shared-utils → libs/shared-utils}/noop.d.ts +0 -0
  166. package/libs/shared-utils/noop.js +7 -0
  167. package/{shared-utils → libs/shared-utils}/object3d2LocalMatrix.d.ts +0 -0
  168. package/libs/shared-utils/object3d2LocalMatrix.js +29 -0
  169. package/{shared-utils → libs/shared-utils}/px2rem.d.ts +0 -0
  170. package/libs/shared-utils/px2rem.js +4 -0
  171. package/libs/shared-utils/removeArrayItem.d.ts +7 -0
  172. package/libs/shared-utils/removeArrayItem.js +12 -0
  173. package/{shared-utils → libs/shared-utils}/tap.d.ts +0 -0
  174. package/{shared-utils → libs/shared-utils}/tap.js +4 -13
  175. package/{shared-utils → libs/shared-utils}/three/centerPoint.d.ts +0 -0
  176. package/libs/shared-utils/three/centerPoint.js +4 -0
  177. package/{shared-utils → libs/shared-utils}/three/getExtraModelLoader.d.ts +0 -0
  178. package/libs/shared-utils/three/getExtraModelLoader.js +18 -0
  179. package/{shared-utils → libs/shared-utils}/three/getNormal.d.ts +0 -0
  180. package/libs/shared-utils/three/getNormal.js +6 -0
  181. package/{shared-utils → libs/shared-utils}/three/getTextureLoader.d.ts +0 -0
  182. package/libs/shared-utils/three/getTextureLoader.js +17 -0
  183. package/{shared-utils → libs/shared-utils}/three/loadFbxObj.d.ts +0 -0
  184. package/libs/shared-utils/three/loadFbxObj.js +13 -0
  185. package/libs/shared-utils/three/loadTexture.d.ts +2 -0
  186. package/libs/shared-utils/three/loadTexture.js +10 -0
  187. package/{shared-utils → libs/shared-utils}/three/transformPositionToVector3.d.ts +0 -0
  188. package/libs/shared-utils/three/transformPositionToVector3.js +3 -0
  189. package/{shared-utils → libs/shared-utils}/three/transfromToMeshBasicMaterial.d.ts +0 -0
  190. package/libs/shared-utils/three/transfromToMeshBasicMaterial.js +14 -0
  191. package/{shared-utils → libs/shared-utils}/throttle.d.ts +1 -1
  192. package/libs/shared-utils/throttle.js +18 -0
  193. package/{shared-utils → libs/shared-utils}/to.d.ts +0 -0
  194. package/libs/shared-utils/to.js +18 -0
  195. package/{shared-utils → libs/shared-utils}/useDebounce.d.ts +0 -0
  196. package/libs/shared-utils/useDebounce.js +22 -0
  197. package/{shared-utils → libs/shared-utils}/useThrottle.d.ts +0 -0
  198. package/libs/shared-utils/useThrottle.js +25 -0
  199. package/libs/{gltf-viewer → shared-utils}/uuid.d.ts +0 -0
  200. package/libs/shared-utils/uuid.js +11 -0
  201. package/{shared-utils → libs/shared-utils}/vectorTocoordinates.d.ts +0 -0
  202. package/libs/shared-utils/vectorTocoordinates.js +9 -0
  203. package/{typings → libs/typings}/math.type.d.ts +0 -0
  204. package/libs/typings/math.type.js +1 -0
  205. package/{typings → libs/typings}/utils.type.d.ts +0 -0
  206. package/libs/typings/utils.type.js +1 -0
  207. package/package.json +45 -17
  208. package/TERMS.txt +0 -56
  209. package/components/ARVideoFigure/ARVideoFigureMesh.d.ts +0 -44
  210. package/components/ARVideoFigure/ARVideoFigureMesh.js +0 -371
  211. package/components/ARVideoFigure/ARVideoFigureScene.d.ts +0 -11
  212. package/components/ARVideoFigure/ARVideoFigureScene.js +0 -85
  213. package/components/ARVideoFigure/ImgBgTransparent.d.ts +0 -16
  214. package/components/ARVideoFigure/ImgBgTransparent.js +0 -65
  215. package/components/ARVideoFigure/ImgBgTransparentMesh.d.ts +0 -30
  216. package/components/ARVideoFigure/ImgBgTransparentMesh.js +0 -183
  217. package/components/ARVideoFigure/fragmentShader.d.ts +0 -5
  218. package/components/ARVideoFigure/fragmentShader.js +0 -18
  219. package/components/ARVideoFigure/index.d.ts +0 -15
  220. package/components/ARVideoFigure/index.js +0 -80
  221. package/components/ARVideoFigure/vertexShader.d.ts +0 -1
  222. package/components/ARVideoFigure/vertexShader.js +0 -10
  223. package/components/GLTFView/index.d.ts +0 -72
  224. package/components/GLTFView/index.js +0 -149
  225. package/components/GlassFilters/index.d.ts +0 -32
  226. package/components/GlassFilters/index.js +0 -78
  227. package/components/ModelView/ModelViewController.d.ts +0 -18
  228. package/components/ModelView/ModelViewController.js +0 -157
  229. package/components/ModelView/index.d.ts +0 -10
  230. package/components/ModelView/index.js +0 -24
  231. package/components/PaintBrush/index.d.ts +0 -16
  232. package/components/PaintBrush/index.js +0 -47
  233. package/components/PanoTag/index.d.ts +0 -4
  234. package/components/PanoTag/index.js +0 -13
  235. package/custom.d.js +0 -3
  236. package/data/1aGKl9JmrlXMXx8d.d.ts +0 -104
  237. package/data/1aGKl9JmrlXMXx8d.js +0 -537
  238. package/data/54djM0oR6ky3Ey8e.d.ts +0 -55
  239. package/data/54djM0oR6ky3Ey8e.js +0 -350
  240. package/data/6gyq3v1verxD7JO1.d.ts +0 -104
  241. package/data/6gyq3v1verxD7JO1.js +0 -462
  242. package/data/8054djM0oR6ky3Ey8e.d.ts +0 -55
  243. package/data/8054djM0oR6ky3Ey8e.js +0 -350
  244. package/data/KpokNd82rwjhackhQTBEoYKHg8zGbPXe.d.ts +0 -84
  245. package/data/KpokNd82rwjhackhQTBEoYKHg8zGbPXe.js +0 -600
  246. package/data/PrXel3aqGbp34JQn.d.ts +0 -389
  247. package/data/PrXel3aqGbp34JQn.js +0 -4649
  248. package/data/XJ6NMLWnkAY3Rdx8.d.ts +0 -843
  249. package/data/XJ6NMLWnkAY3Rdx8.js +0 -7989
  250. package/data/YdoNP9K4rwQDwjJr.d.ts +0 -83
  251. package/data/YdoNP9K4rwQDwjJr.js +0 -1453
  252. package/data/ZLvK29zj4L29Jowd.d.ts +0 -55
  253. package/data/ZLvK29zj4L29Jowd.js +0 -372
  254. package/data/auto3d-njL5J99VwCmnjtQElOmXQr.d.ts +0 -86
  255. package/data/auto3d-njL5J99VwCmnjtQElOmXQr.js +0 -711
  256. package/data/extrude-walls/ZLvK29zj4L29Jowd.d.ts +0 -5
  257. package/data/extrude-walls/ZLvK29zj4L29Jowd.js +0 -14
  258. package/data/extrude-walls/lo024DEgzanMj5BE.d.ts +0 -5
  259. package/data/extrude-walls/lo024DEgzanMj5BE.js +0 -14
  260. package/data/jd6oMOzPxnQ3BvxY_B7yw51J9rXlhYhjhGTOgRVqu6WeEqjNX.d.ts +0 -85
  261. package/data/jd6oMOzPxnQ3BvxY_B7yw51J9rXlhYhjhGTOgRVqu6WeEqjNX.js +0 -511
  262. package/data/lo024DEgzanMj5BE.d.ts +0 -55
  263. package/data/lo024DEgzanMj5BE.js +0 -966
  264. package/data/oPzy3ApbjjpD8YdR.d.ts +0 -83
  265. package/data/oPzy3ApbjjpD8YdR.js +0 -283
  266. package/data/qjAxMG4XbPn96wKG.d.ts +0 -104
  267. package/data/qjAxMG4XbPn96wKG.js +0 -637
  268. package/data/rXel3aPQRRBD4JQn.d.ts +0 -86
  269. package/data/rXel3aPQRRBD4JQn.js +0 -622
  270. package/data/vLykj3NWrllMrG06.d.ts +0 -91
  271. package/data/vLykj3NWrllMrG06.js +0 -2729
  272. package/data/wz0QV9KA4ugyo9ME.d.ts +0 -39
  273. package/data/wz0QV9KA4ugyo9ME.js +0 -136
  274. package/data/zxMawr9raSg8LYjG.d.ts +0 -53
  275. package/data/zxMawr9raSg8LYjG.js +0 -590
  276. package/examples/FiveStateController/index.js +0 -134
  277. package/examples/VRHouse/Mobile.js +0 -36
  278. package/examples/VRHouse/PC.js +0 -36
  279. package/examples/VRHouse/index.js +0 -36
  280. package/index.d.ts +0 -15
  281. package/index.js +0 -45
  282. package/libs/gltf-viewer/Subscribe.d.ts +0 -76
  283. package/libs/gltf-viewer/Subscribe.js +0 -231
  284. package/libs/gltf-viewer/coordsMoveByOffset.d.ts +0 -13
  285. package/libs/gltf-viewer/coordsMoveByOffset.js +0 -22
  286. package/libs/gltf-viewer/coordsToDirection.d.ts +0 -5
  287. package/libs/gltf-viewer/coordsToDirection.js +0 -41
  288. package/libs/gltf-viewer/formatRad.d.ts +0 -1
  289. package/libs/gltf-viewer/formatRad.js +0 -13
  290. package/libs/gltf-viewer/getFrameTime.d.ts +0 -1
  291. package/libs/gltf-viewer/getFrameTime.js +0 -28
  292. package/libs/gltf-viewer/index.d.ts +0 -55
  293. package/libs/gltf-viewer/index.js +0 -650
  294. package/libs/gltf-viewer/mouseWheel.d.ts +0 -2
  295. package/libs/gltf-viewer/mouseWheel.js +0 -59
  296. package/libs/gltf-viewer/requestAnimationFrame.d.ts +0 -1
  297. package/libs/gltf-viewer/requestAnimationFrame.js +0 -18
  298. package/libs/gltf-viewer/requestAnimationFrameInterval.d.ts +0 -1
  299. package/libs/gltf-viewer/requestAnimationFrameInterval.js +0 -31
  300. package/libs/gltf-viewer/uuid.js +0 -28
  301. package/plugins/AutoPreloadPlugin/index.d.ts +0 -23
  302. package/plugins/AutoPreloadPlugin/index.js +0 -111
  303. package/plugins/CSS3DRenderPlugin/components/Marker/index.d.ts +0 -12
  304. package/plugins/CSS3DRenderPlugin/components/Marker/index.js +0 -121
  305. package/plugins/CSS3DRenderPlugin/index.js +0 -298
  306. package/plugins/CameraMovementPlugin/index.js +0 -362
  307. package/plugins/CameraMovementPlugin/typing.js +0 -37
  308. package/plugins/ModelChassisCompassPlugin/index.js +0 -157
  309. package/plugins/ModelEntryDoorGuidePlugin/index.js +0 -247
  310. package/plugins/ModelExtrudeWallsPlugin/index.d.ts +0 -16
  311. package/plugins/ModelExtrudeWallsPlugin/index.js +0 -252
  312. package/plugins/ModelRoomLabelPlugin/Controller.js +0 -153
  313. package/plugins/ModelRoomLabelPlugin/RoomLabelItem.d.ts +0 -8
  314. package/plugins/ModelRoomLabelPlugin/RoomLabelItem.js +0 -66
  315. package/plugins/ModelRoomLabelPlugin/RoomLabelItems.d.ts +0 -7
  316. package/plugins/ModelRoomLabelPlugin/RoomLabelItems.js +0 -159
  317. package/plugins/ModelRoomLabelPlugin/index.d.ts +0 -8
  318. package/plugins/ModelRoomLabelPlugin/index.js +0 -18
  319. package/plugins/ModelRoomLabelPlugin/typings.js +0 -7
  320. package/plugins/ModelRoomLabelPlugin/utils/parseData.js +0 -35
  321. package/plugins/ModelTVVideoPlugin/index.d.ts +0 -21
  322. package/plugins/ModelTVVideoPlugin/index.js +0 -397
  323. package/plugins/ModelViewPlugin/index.js +0 -223
  324. package/plugins/PanoCursorRaycasterPlugin/PanoCursorRaycasterPluginUsage.d.ts +0 -48
  325. package/plugins/PanoCursorRaycasterPlugin/components/MovePointTowardsCamera.d.ts +0 -9
  326. package/plugins/PanoCursorRaycasterPlugin/components/MovePointTowardsCamera.js +0 -117
  327. package/plugins/PanoCursorRaycasterPlugin/components/PointAxesHelper.d.ts +0 -11
  328. package/plugins/PanoCursorRaycasterPlugin/components/PointAxesHelper.js +0 -39
  329. package/plugins/PanoCursorRaycasterPlugin/index.js +0 -126
  330. package/plugins/PanoCursorRaycasterPlugin/utils/addLineToFive.d.ts +0 -5
  331. package/plugins/PanoCursorRaycasterPlugin/utils/addLineToFive.js +0 -27
  332. package/plugins/PanoCursorRaycasterPlugin/utils/createLine.d.ts +0 -3
  333. package/plugins/PanoCursorRaycasterPlugin/utils/createLine.js +0 -48
  334. package/plugins/PanoDoorLabelPlugin/index.d.ts +0 -4
  335. package/plugins/PanoDoorLabelPlugin/index.js +0 -14
  336. package/plugins/PanoIRobotPlugin/index.d.ts +0 -10
  337. package/plugins/PanoIRobotPlugin/index.js +0 -18
  338. package/plugins/PanoMaskSelectorPlugin/compare.d.ts +0 -1
  339. package/plugins/PanoMaskSelectorPlugin/compare.js +0 -17
  340. package/plugins/PanoMaskSelectorPlugin/createBox.d.ts +0 -7
  341. package/plugins/PanoMaskSelectorPlugin/createBox.js +0 -79
  342. package/plugins/PanoMaskSelectorPlugin/createTextures.d.ts +0 -3
  343. package/plugins/PanoMaskSelectorPlugin/createTextures.js +0 -45
  344. package/plugins/PanoMaskSelectorPlugin/fragmentShader.d.ts +0 -1
  345. package/plugins/PanoMaskSelectorPlugin/fragmentShader.js +0 -10
  346. package/plugins/PanoMaskSelectorPlugin/index.d.ts +0 -49
  347. package/plugins/PanoMaskSelectorPlugin/index.js +0 -348
  348. package/plugins/PanoMaskSelectorPlugin/vertexShader.d.ts +0 -1
  349. package/plugins/PanoMaskSelectorPlugin/vertexShader.js +0 -10
  350. package/plugins/PanoRulerPlugin/data/roomInfo.d.ts +0 -3
  351. package/plugins/PanoRulerPlugin/data/roomInfo.js +0 -51
  352. package/plugins/PanoRulerPlugin/data/roomRules.d.ts +0 -3
  353. package/plugins/PanoRulerPlugin/data/roomRules.js +0 -235
  354. package/plugins/PanoRulerPlugin/index.d.ts +0 -27
  355. package/plugins/PanoRulerPlugin/index.js +0 -637
  356. package/plugins/PanoRulerPlugin/typings.d.ts +0 -21
  357. package/plugins/PanoRulerPlugin/typings.js +0 -7
  358. package/plugins/PanoTVVideoPlugin/index.d.ts +0 -26
  359. package/plugins/PanoTVVideoPlugin/index.js +0 -433
  360. package/plugins/TreasurePlugin/Controller.d.ts +0 -73
  361. package/plugins/TreasurePlugin/Controller.js +0 -250
  362. package/plugins/TreasurePlugin/TreasureFaceAnime.d.ts +0 -25
  363. package/plugins/TreasurePlugin/TreasureFaceAnime.js +0 -143
  364. package/plugins/TreasurePlugin/TreasureObject.d.ts +0 -53
  365. package/plugins/TreasurePlugin/TreasureObject.js +0 -406
  366. package/plugins/TreasurePlugin/TreasureOpenAnime.d.ts +0 -25
  367. package/plugins/TreasurePlugin/TreasureOpenAnime.js +0 -127
  368. package/plugins/TreasurePlugin/constants.d.ts +0 -33
  369. package/plugins/TreasurePlugin/constants.js +0 -67
  370. package/plugins/TreasurePlugin/index.d.ts +0 -11
  371. package/plugins/TreasurePlugin/index.js +0 -26
  372. package/plugins/TreasurePlugin/typings.d.ts +0 -2
  373. package/plugins/TreasurePlugin/typings.js +0 -7
  374. package/plugins/floorplan/Assets/floorplanExtraObject.d.ts +0 -1
  375. package/plugins/floorplan/Assets/floorplanExtraObject.js +0 -10
  376. package/plugins/floorplan/ModelFloorplanPlugin/Controller.js +0 -626
  377. package/plugins/floorplan/ModelFloorplanPlugin/components/Camera.d.ts +0 -13
  378. package/plugins/floorplan/ModelFloorplanPlugin/components/Camera.js +0 -78
  379. package/plugins/floorplan/ModelFloorplanPlugin/components/Compass.d.ts +0 -5
  380. package/plugins/floorplan/ModelFloorplanPlugin/components/Compass.js +0 -84
  381. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomHighlight.d.ts +0 -10
  382. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomHighlight.js +0 -129
  383. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomLabels.d.ts +0 -13
  384. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomLabels.js +0 -118
  385. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/index.d.ts +0 -13
  386. package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/index.js +0 -62
  387. package/plugins/floorplan/ModelFloorplanPlugin/components/index.d.ts +0 -20
  388. package/plugins/floorplan/ModelFloorplanPlugin/components/index.js +0 -88
  389. package/plugins/floorplan/ModelFloorplanPlugin/controller.style.d.ts +0 -1
  390. package/plugins/floorplan/ModelFloorplanPlugin/controller.style.js +0 -16
  391. package/plugins/floorplan/ModelFloorplanPlugin/index.js +0 -20
  392. package/plugins/floorplan/ModelFloorplanPlugin/typings/events.type.js +0 -7
  393. package/plugins/floorplan/ModelFloorplanPlugin/utils/constant.js +0 -33
  394. package/plugins/floorplan/ModelFloorplanPlugin/utils/correctFiveState.js +0 -154
  395. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.d.ts +0 -13
  396. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.js +0 -113
  397. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.style.d.ts +0 -3
  398. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.style.js +0 -39
  399. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/ExtraObjects.d.ts +0 -5
  400. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/ExtraObjects.js +0 -66
  401. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/RoomHighlight.d.ts +0 -9
  402. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/RoomHighlight.js +0 -126
  403. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/index.d.ts +0 -11
  404. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/index.js +0 -58
  405. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.d.ts +0 -17
  406. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.js +0 -85
  407. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.style.d.ts +0 -2
  408. package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/index.style.js +0 -15
  409. package/plugins/floorplan/PanoFloorplanRadarPlugin/Controller.js +0 -211
  410. package/plugins/floorplan/PanoFloorplanRadarPlugin/index.js +0 -20
  411. package/plugins/floorplan/TopviewFloorplanPlugin/Controller.js +0 -262
  412. package/plugins/floorplan/TopviewFloorplanPlugin/index.js +0 -18
  413. package/plugins/floorplan/TopviewFloorplanPlugin/style.js +0 -16
  414. package/plugins/floorplan/components/FloorplanImage.d.ts +0 -7
  415. package/plugins/floorplan/components/FloorplanImage.js +0 -90
  416. package/plugins/floorplan/typings/floorplanData.js +0 -7
  417. package/plugins/floorplan/typings/floorplanServerData.js +0 -382
  418. package/plugins/floorplan/utils/formatData.js +0 -217
  419. package/plugins/floorplan/utils/formatPosition.js +0 -89
  420. package/shared-utils/Preloader.js +0 -57
  421. package/shared-utils/Subscribe.js +0 -230
  422. package/shared-utils/animationFrame/BetterTween.js +0 -103
  423. package/shared-utils/animationFrame/calculateProgress.js +0 -40
  424. package/shared-utils/animationFrame/formatRad.js +0 -36
  425. package/shared-utils/animationFrame/index.js +0 -81
  426. package/shared-utils/animationFrame/tween.js +0 -92
  427. package/shared-utils/changeModelCanvansOpacity.d.ts +0 -2
  428. package/shared-utils/changeModelCanvansOpacity.js +0 -38
  429. package/shared-utils/createCanvasTextTexture.js +0 -31
  430. package/shared-utils/createFiveContainer.d.ts +0 -10
  431. package/shared-utils/createFiveContainer.js +0 -171
  432. package/shared-utils/createLine/index.js +0 -43
  433. package/shared-utils/debounce.js +0 -30
  434. package/shared-utils/equal.js +0 -107
  435. package/shared-utils/filter.js +0 -127
  436. package/shared-utils/five/changeMode.js +0 -82
  437. package/shared-utils/five/useFivePlugin.js +0 -17
  438. package/shared-utils/formatRad.js +0 -18
  439. package/shared-utils/getPxmm.js +0 -51
  440. package/shared-utils/getRandomColor.js +0 -23
  441. package/shared-utils/isNil.js +0 -26
  442. package/shared-utils/isTruelyObject.js +0 -31
  443. package/shared-utils/math/evenNumber.d.ts +0 -1
  444. package/shared-utils/math/evenNumber.js +0 -13
  445. package/shared-utils/math/planimetry.js +0 -352
  446. package/shared-utils/math/rad2Deg.js +0 -12
  447. package/shared-utils/nearlyEqual.js +0 -19
  448. package/shared-utils/nextFrame.js +0 -15
  449. package/shared-utils/noop.js +0 -19
  450. package/shared-utils/object3d2LocalMatrix.js +0 -79
  451. package/shared-utils/px2rem.js +0 -22
  452. package/shared-utils/three/centerPoint.js +0 -14
  453. package/shared-utils/three/getExtraModelLoader.js +0 -45
  454. package/shared-utils/three/getNormal.js +0 -17
  455. package/shared-utils/three/getTextureLoader.js +0 -50
  456. package/shared-utils/three/loadFbxObj.js +0 -54
  457. package/shared-utils/three/loadTexture.d.ts +0 -2
  458. package/shared-utils/three/loadTexture.js +0 -46
  459. package/shared-utils/three/transformPositionToVector3.js +0 -20
  460. package/shared-utils/three/transfromToMeshBasicMaterial.js +0 -33
  461. package/shared-utils/throttle.js +0 -29
  462. package/shared-utils/to.js +0 -67
  463. package/shared-utils/useDebounce.js +0 -49
  464. package/shared-utils/useThrottle.js +0 -47
  465. package/shared-utils/uuid.d.ts +0 -4
  466. package/shared-utils/uuid.js +0 -28
  467. package/shared-utils/vectorTocoordinates.js +0 -18
  468. package/typedoc/components.d.ts +0 -6
  469. package/typedoc/components.js +0 -7
  470. package/typedoc/plugins.d.ts +0 -19
  471. package/typedoc/plugins.js +0 -165
  472. package/typedoc/shared-utils.d.ts +0 -3
  473. package/typedoc/shared-utils.js +0 -7
  474. package/typedoc/typings.d.ts +0 -3
  475. package/typedoc/typings.js +0 -7
  476. package/typings/math.type.js +0 -7
  477. package/typings/utils.type.js +0 -7
@@ -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>
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"AAAA,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CjB,CAAC,CAAC,MAAM;;AAER,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY;AACtE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;AACjH,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,CAAC,CAAC,GAAG;AACT,EAAE,CAAC,CAAC,EAAE;AACN,CAAC,CAAC,GAAG;;AAEL,CAAC,KAAK;AACN,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1B,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;AACf,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC;AAChB,IAAI,OAAO,CAAC,CAAC,IAAI;AACjB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AAC3B,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;AACvB,EAAE;;AAEF,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;AACpC,IAAI,QAAQ,CAAC,CAAC,QAAQ;AACtB,EAAE;AACF,CAAC,CAAC,KAAK;","names":[],"sources":["Main.svelte"]}
@@ -1,25 +1,21 @@
1
- import * as React from 'react';
2
- import { Five } from '@realsee/five';
3
- import { FloorplanServerData } from '../typings/floorplanServerData';
4
- import { FloorplanExtraObject3D } from '../typings/floorplanData';
1
+ import type { Five } from '@realsee/five';
2
+ import type { FloorplanServerData } from '../typings/floorplanServerData';
3
+ import type { FloorplanExtraObject3D } from '../typings/floorplanData';
5
4
  export interface PanoFloorplanRadarPluginControllerParameter {
6
5
  wrapper?: string | Element;
7
6
  configs?: {
8
7
  hoverEnable?: boolean;
9
- cameraImage?: {
10
- style: React.CSSProperties;
11
- };
8
+ cameraImageUrl?: string;
12
9
  };
13
10
  }
14
11
  export default class PanoFloorplanRadarPluginController {
12
+ private app?;
15
13
  private five;
16
- private pxmm;
17
14
  private wrapperSelector;
18
15
  private data?;
19
16
  private wrapper;
20
- private size;
21
17
  private extraObjects?;
22
- private orginExtraObjects?;
18
+ private originExtraObjects?;
23
19
  private configs;
24
20
  constructor(five: Five, params?: PanoFloorplanRadarPluginControllerParameter);
25
21
  dispose: () => void;
@@ -28,6 +24,5 @@ export default class PanoFloorplanRadarPluginController {
28
24
  appendTo(wrapper: Element): void;
29
25
  changeConfigs(configs: PanoFloorplanRadarPluginController['configs']): void;
30
26
  setExtraObjectsWith3DPositions(data: FloorplanExtraObject3D[]): void;
31
- private updateSize;
32
27
  private render;
33
28
  }
@@ -0,0 +1,88 @@
1
+ import Main from './Components/Main.svelte';
2
+ import formatData, { formatExtraObjects } from '../utils/formatData';
3
+ export default class PanoFloorplanRadarPluginController {
4
+ app;
5
+ five;
6
+ wrapperSelector = '';
7
+ data;
8
+ wrapper = null;
9
+ extraObjects;
10
+ originExtraObjects;
11
+ configs = {};
12
+ constructor(five, params) {
13
+ this.five = five;
14
+ params?.configs && Object.assign(this.configs, params.configs);
15
+ if (typeof params?.wrapper === 'string')
16
+ this.wrapperSelector = params.wrapper;
17
+ else if (params?.wrapper instanceof Element)
18
+ this.wrapper = params.wrapper;
19
+ five.once('dispose', this.dispose);
20
+ }
21
+ dispose = () => {
22
+ this.app?.$destroy();
23
+ };
24
+ load = async (data) => {
25
+ const copyData = JSON.parse(JSON.stringify(data));
26
+ const floorplanData = await formatData(copyData);
27
+ this.data = floorplanData;
28
+ // const loadImage = async () => {
29
+ // const floorIndex = this.five.work.observers[this.five.getCurrentState().panoIndex].floorIndex
30
+ // // 当有 svgString 时,没有加载过程
31
+ // if (floorplanData.outlines[floorIndex]?.svgContent) return
32
+ // // 如果当前楼层图片不存在,不存在加载过程
33
+ // const nowFloorImageSrc = floorplanData.outlines[floorIndex]?.url
34
+ // if (!nowFloorImageSrc) return
35
+ // // 图片加载完成时再 render
36
+ // await new Promise<void>((resolve) => {
37
+ // const nowFloorImage = new Image()
38
+ // nowFloorImage.src = nowFloorImageSrc
39
+ // nowFloorImage.onload = () => resolve()
40
+ // })
41
+ // }
42
+ // await loadImage()
43
+ this.render();
44
+ };
45
+ /** 把插件的渲染DOM插入到对应的容器中去 */
46
+ appendTo(wrapper) {
47
+ this.wrapper = wrapper;
48
+ this.render();
49
+ }
50
+ changeConfigs(configs) {
51
+ Object.assign(this.configs, configs);
52
+ this.render();
53
+ }
54
+ setExtraObjectsWith3DPositions(data) {
55
+ this.originExtraObjects = data;
56
+ if (!this.data)
57
+ return;
58
+ this.extraObjects = formatExtraObjects(data, this.five, this.data);
59
+ this.render();
60
+ }
61
+ render() {
62
+ // 处理 wrapper
63
+ if (!this.wrapper) {
64
+ const _wrapper = document.querySelector(this.wrapperSelector);
65
+ this.wrapper = _wrapper;
66
+ }
67
+ if (!this.data || !this.wrapper)
68
+ return;
69
+ if (!this.extraObjects && this.originExtraObjects) {
70
+ this.extraObjects = formatExtraObjects(this.originExtraObjects, this.five, this.data);
71
+ }
72
+ const props = {
73
+ five: this.five,
74
+ floorplanData: this.data,
75
+ extraObjects: this.extraObjects,
76
+ cameraImageUrl: this.configs.cameraImageUrl,
77
+ hoverEnable: this.configs.hoverEnable ?? false,
78
+ };
79
+ if (!this.app) {
80
+ this.app = new Main({
81
+ target: this.wrapper,
82
+ props,
83
+ });
84
+ return;
85
+ }
86
+ this.app.$set(props);
87
+ }
88
+ }
@@ -0,0 +1,5 @@
1
+ import PanoFloorplanRadarPluginController from './Controller';
2
+ export const PanoFloorplanRadarPlugin = (five, params) => {
3
+ return new PanoFloorplanRadarPluginController(five, params);
4
+ };
5
+ export default PanoFloorplanRadarPlugin;
@@ -1,15 +1,17 @@
1
- import * as React from 'react';
2
- import { Five } from '@realsee/five';
3
- import { FloorplanServerData } from '../typings/floorplanServerData';
4
- import { FloorplanRoomItem } from '../typings/floorplanData';
1
+ import type { Five } from '@realsee/five';
2
+ import type { FloorplanServerData } from '../typings/floorplanServerData';
3
+ import type { FloorplanRoomItem } from '../typings/floorplanData';
5
4
  export interface TopviewFloorplanPluginParameterType {
6
5
  selector?: string | Element;
7
6
  scale?: number;
7
+ modelOpacity?: number;
8
+ cameraImageUrl?: string;
8
9
  hoverEnable?: boolean;
10
+ compassEnable?: boolean;
9
11
  autoShowEnable?: boolean;
10
- cameraImage?: {
11
- style: React.CSSProperties;
12
- };
12
+ ruleLabelsEnable?: boolean;
13
+ roomLabelsEnable?: boolean;
14
+ preventRoomClick?: boolean;
13
15
  getLabelElement?: (room: FloorplanRoomItem) => Element | null;
14
16
  }
15
17
  export declare type TopviewFloorplanPluginReturnType = TopviewFloorplanPluginController;
@@ -19,13 +21,13 @@ export declare class TopviewFloorplanPluginController {
19
21
  height: number;
20
22
  };
21
23
  visible: boolean;
24
+ private pxmm;
25
+ private app?;
22
26
  private five;
23
- protected pxmm: number;
24
27
  private panoIndex;
25
28
  private floorIndex;
26
29
  private configs;
27
30
  private lastPanoramaLongitude;
28
- private handleClick;
29
31
  private selector?;
30
32
  private floorplanData?;
31
33
  private wrapper?;
@@ -40,8 +42,10 @@ export declare class TopviewFloorplanPluginController {
40
42
  private onModelShownFloorChange;
41
43
  /** panoIndex 改变时,更新 floorIndex */
42
44
  private handlePanoArrived;
43
- /** 在户型图展示时阻止 Five 的所有行为 */
44
- private handleWantsGesture;
45
+ /** 配置了 preventRoomClick 后,在户型图展示时阻止 Five 走点 */
46
+ private handleWantsMoveToPano;
47
+ /** 在户型图展示时阻止 Five 滑动行为 */
48
+ private handleWantsPanGesture;
45
49
  private handleModelLoaded;
46
50
  /** 非 Topview 态隐藏户型图 */
47
51
  private handleModeChange;
@@ -0,0 +1,189 @@
1
+ import { pluginStyle } from './style';
2
+ import formatData from '../utils/formatData';
3
+ import { omit } from '../../shared-utils/filter';
4
+ import getPxmm from '../../shared-utils/getPxmm';
5
+ import Main from "../ModelFloorplanPlugin/Components/Main.svelte";
6
+ import changeModelCanvasOpacity from '../../shared-utils/changeModelCanvasOpacity';
7
+ export class TopviewFloorplanPluginController {
8
+ size = { width: 0, height: 0 };
9
+ visible = false;
10
+ pxmm = 0;
11
+ app;
12
+ five;
13
+ panoIndex = 0;
14
+ floorIndex = 0;
15
+ configs = {};
16
+ lastPanoramaLongitude = 0;
17
+ selector;
18
+ floorplanData;
19
+ wrapper;
20
+ container = document.createElement('div');
21
+ constructor(five, params) {
22
+ this.five = five;
23
+ this.selector = params.selector;
24
+ this.configs = omit(params, ['selector']);
25
+ // 设置 container 样式
26
+ this.container.classList.add('floorplan-plugin');
27
+ Object.assign(this.container.style, pluginStyle);
28
+ // 如果初始化的时候模型已经加载完毕了,就不用再等 modelLoaded
29
+ this.five.model.loaded ? this.handleModelLoaded() : five.once('modelLoaded', this.handleModelLoaded);
30
+ this.five.once('dispose', this.dispose);
31
+ this.five.on('modeChange', this.handleModeChange);
32
+ this.five.on('panoArrived', this.handlePanoArrived);
33
+ this.five.on('initAnimationEnded', this.handleInitAnimationEnded);
34
+ this.five.on('modelShownFloorChange', this.onModelShownFloorChange);
35
+ }
36
+ /** 加载户型图数据 */
37
+ async load(data) {
38
+ const copyData = JSON.parse(JSON.stringify(data));
39
+ this.floorplanData = await formatData(copyData);
40
+ this.render();
41
+ }
42
+ /** 把插件的渲染DOM插入到对应的容器中去 */
43
+ appendTo(wrapper) {
44
+ this.wrapper = wrapper;
45
+ wrapper.appendChild(this.container);
46
+ return this;
47
+ }
48
+ dispose = () => {
49
+ this.hide();
50
+ this.container?.remove();
51
+ this.app?.$destroy();
52
+ this.five.off('modeChange', this.handleModeChange);
53
+ this.five.off('panoArrived', this.handlePanoArrived);
54
+ this.five.off('modelLoaded', this.handleModelLoaded);
55
+ this.five.off('wantsMoveToPano', this.handleWantsMoveToPano);
56
+ this.five.off('wantsPanGesture', this.handleWantsPanGesture);
57
+ this.five.off('initAnimationEnded', this.handleInitAnimationEnded);
58
+ this.five.off('modelShownFloorChange', this.onModelShownFloorChange);
59
+ };
60
+ /** 模型楼层高亮改变时,自动进行楼层切换 */
61
+ onModelShownFloorChange = (shownFloor) => {
62
+ if (shownFloor === null)
63
+ return;
64
+ this.floorIndex = shownFloor;
65
+ this.render();
66
+ };
67
+ /** panoIndex 改变时,更新 floorIndex */
68
+ handlePanoArrived = (index) => {
69
+ if (!this.five?.work)
70
+ return;
71
+ this.panoIndex = index;
72
+ this.floorIndex = this.five.work.observers[index].floorIndex;
73
+ };
74
+ /** 配置了 preventRoomClick 后,在户型图展示时阻止 Five 走点 */
75
+ handleWantsMoveToPano = () => {
76
+ if (!this.visible)
77
+ return;
78
+ if (this.configs.preventRoomClick)
79
+ return false;
80
+ return;
81
+ };
82
+ /** 在户型图展示时阻止 Five 滑动行为 */
83
+ handleWantsPanGesture = () => {
84
+ if (!this.visible)
85
+ return;
86
+ return false;
87
+ };
88
+ handleModelLoaded = () => {
89
+ if (this.wrapper)
90
+ return;
91
+ if (!this.selector)
92
+ return;
93
+ const wrapper = this.selector instanceof Element ? this.selector : document.querySelector(this.selector);
94
+ if (!wrapper)
95
+ throw new Error('不正确的父容器选择器');
96
+ this.wrapper = wrapper;
97
+ wrapper.append(this.container);
98
+ };
99
+ /** 非 Topview 态隐藏户型图 */
100
+ handleModeChange = (mode) => {
101
+ if (mode !== 'Topview')
102
+ return this.hide();
103
+ };
104
+ /** 动画结束后是 Topview 态就展示户型图 */
105
+ handleInitAnimationEnded = () => {
106
+ const { mode } = this.five.getCurrentState();
107
+ if (mode === 'Topview')
108
+ this.show();
109
+ };
110
+ show() {
111
+ this.visible = true;
112
+ this.updateSize();
113
+ this.five.model.show(this.floorIndex);
114
+ const renderDuration = 500;
115
+ const modelOpacity = this.configs.modelOpacity;
116
+ if (typeof modelOpacity === 'number') {
117
+ changeModelCanvasOpacity(this.five, modelOpacity, renderDuration);
118
+ }
119
+ this.render(renderDuration);
120
+ this.five.on('wantsMoveToPano', this.handleWantsMoveToPano);
121
+ this.five.on('wantsPanGesture', this.handleWantsPanGesture);
122
+ }
123
+ hide() {
124
+ const modelOpacity = 1;
125
+ const renderDuration = 0;
126
+ this.visible = false;
127
+ changeModelCanvasOpacity(this.five, modelOpacity, renderDuration);
128
+ this.render();
129
+ this.five.on('wantsMoveToPano', this.handleWantsMoveToPano);
130
+ this.five.on('wantsPanGesture', this.handleWantsPanGesture);
131
+ }
132
+ /** 更新户型图大小 */
133
+ updateSize = () => {
134
+ if (!this.floorplanData)
135
+ return;
136
+ if (!this.container || !this.wrapper)
137
+ return;
138
+ if (this.five.getCurrentState().mode !== 'Topview')
139
+ return;
140
+ // 计算户型图展示大小
141
+ const { min, max } = this.floorplanData.bounding;
142
+ const width = max.x - min.x;
143
+ const height = max.y - min.y;
144
+ // 每毫米对应的 px 值
145
+ const pxmm = getPxmm(this.five, this.wrapper);
146
+ const _width = Math.ceil(width * pxmm);
147
+ const _height = Math.ceil(height * pxmm);
148
+ this.pxmm = pxmm;
149
+ this.size = { width: _width, height: _height };
150
+ this.container.style.width = _width + 'px';
151
+ this.container.style.height = _height + 'px';
152
+ };
153
+ render(duration) {
154
+ if (!this.container || !this.floorplanData)
155
+ return;
156
+ if (this.size.width === 0)
157
+ return;
158
+ const { getLabelElement, cameraImageUrl, preventRoomClick, hoverEnable, compassEnable, roomLabelsEnable, ruleLabelsEnable, } = this.configs;
159
+ const handleClick = preventRoomClick ? () => false : undefined;
160
+ console.log('🚀 ~ TopviewFloorplanPluginController ~ handleClick', handleClick);
161
+ const props = {
162
+ five: this.five,
163
+ pxmm: this.pxmm,
164
+ cameraImageUrl,
165
+ visible: this.visible,
166
+ duration: duration ?? 0,
167
+ panoIndex: this.panoIndex,
168
+ floorIndex: this.floorIndex,
169
+ floorplanData: this.floorplanData,
170
+ hoverEnable: hoverEnable ?? false,
171
+ compassEnable: compassEnable ?? true,
172
+ ruleLabelsEnable: ruleLabelsEnable ?? true,
173
+ roomLabelsEnable: roomLabelsEnable ?? true,
174
+ lastPanoramaLongitude: this.lastPanoramaLongitude,
175
+ getLabelElement,
176
+ onRoomHeightClick: handleClick,
177
+ };
178
+ if (!this.app) {
179
+ this.app = new Main({
180
+ target: this.container,
181
+ intro: true,
182
+ props,
183
+ });
184
+ }
185
+ else {
186
+ this.app.$set(props);
187
+ }
188
+ }
189
+ }
@@ -0,0 +1,5 @@
1
+ import { TopviewFloorplanPluginController, } from './Controller';
2
+ export const TopviewFloorplanPlugin = (five, params) => {
3
+ return new TopviewFloorplanPluginController(five, params);
4
+ };
5
+ export default TopviewFloorplanPlugin;