@realsee/dnalogel 2.0.0-alpha.44 → 2.0.0-alpha.45

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 (652) hide show
  1. package/dist/CSS3DRenderPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  2. package/dist/CSS3DRenderPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  3. package/dist/CSS3DRenderPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  4. package/dist/CSS3DRenderPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  5. package/dist/CSS3DRenderPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  6. package/dist/CSS3DRenderPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  7. package/dist/CSS3DRenderPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  8. package/dist/CameraMovementPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  9. package/dist/CameraMovementPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  10. package/dist/CameraMovementPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  11. package/dist/CameraMovementPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  12. package/dist/CameraMovementPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  13. package/dist/CameraMovementPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  14. package/dist/CameraMovementPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  15. package/dist/ItemLabelPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  16. package/dist/ItemLabelPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  17. package/dist/ItemLabelPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  18. package/dist/ItemLabelPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  19. package/dist/ItemLabelPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  20. package/dist/ItemLabelPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  21. package/dist/ItemLabelPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  22. package/dist/ItemLabelPlugin/index.js +77 -35
  23. package/dist/ItemLabelPlugin/typings.d.ts +2 -1
  24. package/dist/ModelChassisCompassPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  25. package/dist/ModelChassisCompassPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  26. package/dist/ModelChassisCompassPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  27. package/dist/ModelChassisCompassPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  28. package/dist/ModelChassisCompassPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  29. package/dist/ModelChassisCompassPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  30. package/dist/ModelChassisCompassPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  31. package/dist/ModelEntryDoorGuidePlugin/ItemLabelPlugin/typings.d.ts +2 -1
  32. package/dist/ModelEntryDoorGuidePlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  33. package/dist/ModelEntryDoorGuidePlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  34. package/dist/ModelEntryDoorGuidePlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  35. package/dist/ModelEntryDoorGuidePlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  36. package/dist/ModelEntryDoorGuidePlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  37. package/dist/ModelEntryDoorGuidePlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  38. package/dist/ModelItemLabelPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  39. package/dist/ModelItemLabelPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  40. package/dist/ModelItemLabelPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  41. package/dist/ModelItemLabelPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  42. package/dist/ModelItemLabelPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  43. package/dist/ModelItemLabelPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  44. package/dist/ModelItemLabelPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  45. package/dist/ModelRoomLabelPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  46. package/dist/ModelRoomLabelPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  47. package/dist/ModelRoomLabelPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  48. package/dist/ModelRoomLabelPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  49. package/dist/ModelRoomLabelPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  50. package/dist/ModelRoomLabelPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  51. package/dist/ModelRoomLabelPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  52. package/dist/ModelTVVideoPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  53. package/dist/ModelTVVideoPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  54. package/dist/ModelTVVideoPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  55. package/dist/ModelTVVideoPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  56. package/dist/ModelTVVideoPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  57. package/dist/ModelTVVideoPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  58. package/dist/ModelTVVideoPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  59. package/dist/ModelViewPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  60. package/dist/ModelViewPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  61. package/dist/ModelViewPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  62. package/dist/ModelViewPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  63. package/dist/ModelViewPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  64. package/dist/ModelViewPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  65. package/dist/ModelViewPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  66. package/dist/PanoCompassPlugin/{controller.d.ts → Controller.d.ts} +0 -0
  67. package/dist/PanoCompassPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  68. package/dist/PanoCompassPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  69. package/dist/PanoCompassPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  70. package/dist/PanoCompassPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  71. package/dist/PanoCompassPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  72. package/dist/PanoCompassPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  73. package/dist/PanoCompassPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  74. package/dist/PanoCursorRaycasterPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  75. package/dist/PanoCursorRaycasterPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  76. package/dist/PanoCursorRaycasterPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  77. package/dist/PanoCursorRaycasterPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  78. package/dist/PanoCursorRaycasterPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  79. package/dist/PanoCursorRaycasterPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  80. package/dist/PanoCursorRaycasterPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  81. package/dist/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  82. package/{libs/src → dist/PanoDoorLabelPlugin}/CSS3DRenderPlugin/Plugin.d.ts +0 -0
  83. package/{libs/src → dist/PanoDoorLabelPlugin}/CSS3DRenderPlugin/index.d.ts +0 -0
  84. package/{libs/src → dist/PanoDoorLabelPlugin}/CSS3DRenderPlugin/utils/createResizeObserver.d.ts +0 -0
  85. package/{libs/src → dist/PanoDoorLabelPlugin}/CameraMovementPlugin/CameraMovementPlugin.d.ts +0 -0
  86. package/{libs/src → dist/PanoDoorLabelPlugin}/CameraMovementPlugin/index.d.ts +0 -0
  87. package/{libs/src → dist/PanoDoorLabelPlugin}/CameraMovementPlugin/typing.d.ts +0 -0
  88. package/dist/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  89. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/Plugin.d.ts +0 -0
  90. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/events.type.d.ts +0 -0
  91. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/index.d.ts +0 -0
  92. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/typings.d.ts +7 -1
  93. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/utils/getLabelTransform.d.ts +0 -0
  94. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/utils/getStrokeLength.d.ts +0 -0
  95. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/utils/isImpacted.d.ts +0 -0
  96. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/utils/parseData.d.ts +0 -0
  97. package/{libs/src → dist/PanoDoorLabelPlugin}/ItemLabelPlugin/utils/transform2RenderData.d.ts +0 -0
  98. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelChassisCompassPlugin/Plugin.d.ts +0 -0
  99. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelChassisCompassPlugin/index.d.ts +0 -0
  100. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelEntryDoorGuidePlugin/Plugin.d.ts +0 -0
  101. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelEntryDoorGuidePlugin/index.d.ts +0 -0
  102. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelItemLabelPlugin/ModelItemLabelPlugin.d.ts +0 -0
  103. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelItemLabelPlugin/events.type.d.ts +0 -0
  104. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelItemLabelPlugin/index.d.ts +0 -0
  105. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelItemLabelPlugin/typings.d.ts +1 -1
  106. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelItemLabelPlugin/utils/parseData.d.ts +0 -0
  107. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelRoomLabelPlugin/Assets/roomLabelBg.d.ts +0 -0
  108. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelRoomLabelPlugin/Controller.d.ts +0 -0
  109. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelRoomLabelPlugin/index.d.ts +0 -0
  110. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelRoomLabelPlugin/typings.d.ts +0 -0
  111. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelRoomLabelPlugin/utils/parseData.d.ts +0 -0
  112. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelTVVideoPlugin/Plugin.d.ts +0 -0
  113. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelTVVideoPlugin/index.d.ts +0 -0
  114. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelTVVideoPlugin/typings.d.ts +0 -0
  115. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelTVVideoPlugin/utils/parseData.d.ts +0 -0
  116. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelViewPlugin/Plugin.d.ts +0 -0
  117. package/{libs/src → dist/PanoDoorLabelPlugin}/ModelViewPlugin/index.d.ts +0 -0
  118. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoCompassPlugin/Assets/roomInfoIcon.d.ts +0 -0
  119. package/{libs/PanoCompassPlugin/controller.d.ts → dist/PanoDoorLabelPlugin/PanoCompassPlugin/Controller.d.ts} +0 -0
  120. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoCompassPlugin/getRoomInfoInstance.d.ts +0 -0
  121. package/dist/PanoDoorLabelPlugin/PanoCompassPlugin/index.d.ts +7 -0
  122. package/dist/PanoDoorLabelPlugin/PanoCompassPlugin/typings.d.ts +57 -0
  123. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoCursorRaycasterPlugin/index.d.ts +0 -0
  124. package/dist/PanoDoorLabelPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  125. package/dist/PanoDoorLabelPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  126. package/dist/PanoDoorLabelPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  127. package/dist/PanoDoorLabelPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  128. package/dist/PanoDoorLabelPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  129. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Controller/BaseController.d.ts +0 -0
  130. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Controller/EditController.d.ts +0 -0
  131. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Controller/MixedController.d.ts +0 -0
  132. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Controller/ShortcutKeyController.d.ts +0 -0
  133. package/dist/PanoDoorLabelPlugin/PanoMeasurePlugin/Controller/ViewController.d.ts +16 -0
  134. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Controller/WatchController.d.ts +0 -0
  135. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Controller/index.d.ts +1 -1
  136. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Model/index.d.ts +0 -0
  137. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Model/line.d.ts +0 -0
  138. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Model/point.d.ts +0 -0
  139. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Model/polyline.d.ts +0 -0
  140. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.d.ts +0 -0
  141. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.d.ts +0 -0
  142. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.d.ts +0 -0
  143. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/DeleteDom/index.d.ts +0 -0
  144. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/FiveHelper.d.ts +0 -0
  145. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/GuideController.d.ts +0 -0
  146. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/Magnifier.d.ts +0 -0
  147. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/UIController/HTML.d.ts +0 -0
  148. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/UIController/MainBtnController.d.ts +0 -0
  149. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/UIController/Revoke/index.d.ts +0 -0
  150. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/UIController/index.d.ts +0 -0
  151. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/UIController/mobileHTML.d.ts +0 -0
  152. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/UIController/mobileMainBtnController.d.ts +0 -0
  153. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/UIController/style.d.ts +0 -0
  154. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/rangePiece/html.d.ts +0 -0
  155. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +0 -0
  156. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/index.d.ts +0 -0
  157. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/typings/data.d.ts +0 -0
  158. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/typings/event.type.d.ts +0 -0
  159. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/typings/utils.type.d.ts +0 -0
  160. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/calculateThreeMouse.d.ts +0 -0
  161. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/clearGroup.d.ts +0 -0
  162. package/dist/PanoDoorLabelPlugin/PanoMeasurePlugin/utils/constants.d.ts +4 -0
  163. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/distanceDom.d.ts +2 -2
  164. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/findAssociatedLines.d.ts +0 -0
  165. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/findClosestPoint.d.ts +0 -0
  166. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/getIntersectionFromEvent.d.ts +0 -0
  167. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/getPointFromHammerEvent.d.ts +0 -0
  168. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/ironbox.d.ts +0 -0
  169. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/isNDCPointInScreen.d.ts +0 -0
  170. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/line.d.ts +3 -3
  171. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/math.d.ts +0 -0
  172. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/mouseGroup.d.ts +0 -0
  173. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoMeasurePlugin/utils/ndc2Screen.d.ts +0 -0
  174. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoRulerPlugin/Plugin.d.ts +0 -0
  175. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoRulerPlugin/index.d.ts +0 -0
  176. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoRulerPlugin/style.d.ts +0 -0
  177. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoRulerPlugin/typings.d.ts +0 -0
  178. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoRulerProPlugin/Controller.d.ts +0 -0
  179. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoRulerProPlugin/index.d.ts +0 -0
  180. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoRulerProPlugin/typings.d.ts +0 -0
  181. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoSpatialTagPlugin/Plugin.d.ts +0 -0
  182. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoSpatialTagPlugin/index.d.ts +0 -0
  183. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoSpatialTagPlugin/store.d.ts +0 -0
  184. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoSpatialTagPlugin/style.d.ts +0 -0
  185. package/{libs/src → dist/PanoDoorLabelPlugin}/PanoSpatialTagPlugin/typings.d.ts +0 -0
  186. package/{libs/src → dist/PanoDoorLabelPlugin}/base/BasePlugin.d.ts +0 -4
  187. package/{libs/src → dist/PanoDoorLabelPlugin}/base/BasePluginWithData.d.ts +0 -0
  188. package/{libs/src → dist/PanoDoorLabelPlugin}/components/PaintBrush/Controller.d.ts +0 -0
  189. package/{libs/src → dist/PanoDoorLabelPlugin}/components/PaintBrush/Subscribe.d.ts +0 -0
  190. package/{libs/src → dist/PanoDoorLabelPlugin}/components/PaintBrush/index.d.ts +0 -0
  191. package/{libs/src → dist/PanoDoorLabelPlugin}/components/PaintBrush/style.d.ts +0 -0
  192. package/{libs/src → dist/PanoDoorLabelPlugin}/components/PaintBrush/tween.d.ts +0 -0
  193. package/{libs/src → dist/PanoDoorLabelPlugin}/components/PaintBrush/typings.d.ts +0 -0
  194. package/{libs/src → dist/PanoDoorLabelPlugin}/components/PaintBrush/utils.d.ts +0 -0
  195. package/{libs/src → dist/PanoDoorLabelPlugin}/components/index.d.ts +0 -0
  196. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/Assets/camera.d.ts +0 -0
  197. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/Assets/compass.d.ts +0 -0
  198. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/Assets/floorplanExtraObject.d.ts +0 -0
  199. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/ModelFloorplanPlugin/Controller.d.ts +0 -0
  200. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/ModelFloorplanPlugin/index.d.ts +0 -0
  201. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/ModelFloorplanPlugin/typing.d.ts +0 -0
  202. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +0 -0
  203. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/PanoFloorplanRadarPlugin/index.d.ts +0 -0
  204. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/PanoFloorplanRadarPlugin/typing.d.ts +0 -0
  205. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/TopviewFloorplanPlugin/Controller.d.ts +0 -0
  206. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/TopviewFloorplanPlugin/index.d.ts +0 -0
  207. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/TopviewFloorplanPlugin/style.d.ts +0 -0
  208. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/TopviewFloorplanPlugin/typing.d.ts +0 -0
  209. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/constant.d.ts +0 -0
  210. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/index.d.ts +0 -0
  211. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/typings/floorplanData.d.ts +0 -0
  212. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/typings/floorplanServerData.d.ts +13 -0
  213. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/typings/utility.d.ts +0 -0
  214. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/utils/constant.d.ts +0 -0
  215. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/utils/correctFiveState.d.ts +0 -0
  216. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/utils/formatData.d.ts +0 -0
  217. package/{libs/src → dist/PanoDoorLabelPlugin}/floorplan/utils/formatPosition.d.ts +0 -0
  218. package/dist/PanoDoorLabelPlugin/index.d.ts +7 -0
  219. package/dist/PanoDoorLabelPlugin/index.js +775 -0
  220. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/Preloader.d.ts +0 -0
  221. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/Subscribe.d.ts +0 -0
  222. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/animationFrame/BetterTween.d.ts +0 -0
  223. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/animationFrame/calculateProgress.d.ts +0 -0
  224. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/animationFrame/formatRad.d.ts +0 -0
  225. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/animationFrame/index.d.ts +0 -0
  226. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/animationFrame/tween.d.ts +0 -0
  227. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/changeModelCanvasOpacity.d.ts +0 -0
  228. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/createCanvasTextTexture.d.ts +0 -0
  229. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/createLine/index.d.ts +0 -0
  230. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/debounce.d.ts +0 -0
  231. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/equal.d.ts +0 -0
  232. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/filter.d.ts +0 -0
  233. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/five/changeMode.d.ts +0 -0
  234. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/formatRad.d.ts +0 -0
  235. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/getPxmm.d.ts +0 -0
  236. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/getRandomColor.d.ts +0 -0
  237. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/index.d.ts +0 -0
  238. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/isNil.d.ts +0 -0
  239. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/isTruelyObject.d.ts +0 -0
  240. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/logger.d.ts +0 -0
  241. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/math/Interval.d.ts +0 -0
  242. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/math/Rectangle.d.ts +0 -0
  243. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/math/evenNumber.d.ts +0 -0
  244. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/math/index.d.ts +0 -0
  245. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/math/planimetry.d.ts +0 -0
  246. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/math/rad2Deg.d.ts +0 -0
  247. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/nearlyEqual.d.ts +0 -0
  248. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/nextFrame.d.ts +0 -0
  249. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/noop.d.ts +0 -0
  250. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/object3d2LocalMatrix.d.ts +0 -0
  251. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/px2rem.d.ts +0 -0
  252. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/removeArrayItem.d.ts +0 -0
  253. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/tap.d.ts +0 -0
  254. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/centerPoint.d.ts +0 -0
  255. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/getExtraModelLoader.d.ts +0 -0
  256. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/getNormal.d.ts +0 -0
  257. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/getTextureLoader.d.ts +0 -0
  258. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/loadFbxObj.d.ts +0 -0
  259. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/loadTexture.d.ts +0 -0
  260. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/transformPositionToVector3.d.ts +0 -0
  261. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/three/transfromToMeshBasicMaterial.d.ts +0 -0
  262. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/throttle.d.ts +0 -0
  263. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/tinyEJSrender.d.ts +0 -0
  264. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/to.d.ts +0 -0
  265. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/uuid.d.ts +0 -0
  266. package/{libs/src → dist/PanoDoorLabelPlugin}/shared-utils/vectorTocoordinates.d.ts +0 -0
  267. package/{libs/src → dist/PanoDoorLabelPlugin}/typings/math.type.d.ts +0 -0
  268. package/{libs/src → dist/PanoDoorLabelPlugin}/typings/utils.type.d.ts +0 -0
  269. package/dist/PanoDoorLabelPlugin/typings.d.ts +33 -0
  270. package/dist/PanoDoorLabelPlugin/utils.d.ts +5 -0
  271. package/dist/PanoMeasurePlugin/ItemLabelPlugin/typings.d.ts +2 -1
  272. package/dist/PanoMeasurePlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  273. package/dist/PanoMeasurePlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  274. package/dist/PanoMeasurePlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  275. package/dist/PanoMeasurePlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  276. package/dist/PanoMeasurePlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  277. package/dist/PanoMeasurePlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  278. package/dist/PanoRulerPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  279. package/dist/PanoRulerPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  280. package/dist/PanoRulerPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  281. package/dist/PanoRulerPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  282. package/dist/PanoRulerPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  283. package/dist/PanoRulerPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  284. package/dist/PanoRulerPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  285. package/dist/PanoRulerProPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  286. package/dist/PanoRulerProPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  287. package/dist/PanoRulerProPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  288. package/dist/PanoRulerProPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  289. package/dist/PanoRulerProPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  290. package/dist/PanoRulerProPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  291. package/dist/PanoRulerProPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  292. package/dist/PanoSpatialTagPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  293. package/dist/PanoSpatialTagPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  294. package/dist/PanoSpatialTagPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  295. package/dist/PanoSpatialTagPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  296. package/dist/PanoSpatialTagPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  297. package/dist/PanoSpatialTagPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  298. package/dist/PanoSpatialTagPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  299. package/dist/floorplan/ModelFloorplanPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  300. package/dist/floorplan/ModelFloorplanPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  301. package/dist/floorplan/ModelFloorplanPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  302. package/dist/floorplan/ModelFloorplanPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  303. package/dist/floorplan/ModelFloorplanPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  304. package/dist/floorplan/ModelFloorplanPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  305. package/dist/floorplan/ModelFloorplanPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  306. package/dist/floorplan/PanoFloorplanRadarPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  307. package/dist/floorplan/PanoFloorplanRadarPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  308. package/dist/floorplan/PanoFloorplanRadarPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  309. package/dist/floorplan/PanoFloorplanRadarPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  310. package/dist/floorplan/PanoFloorplanRadarPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  311. package/dist/floorplan/PanoFloorplanRadarPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  312. package/dist/floorplan/PanoFloorplanRadarPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  313. package/dist/floorplan/TopviewFloorplanPlugin/ItemLabelPlugin/typings.d.ts +2 -1
  314. package/dist/floorplan/TopviewFloorplanPlugin/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  315. package/dist/floorplan/TopviewFloorplanPlugin/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  316. package/dist/floorplan/TopviewFloorplanPlugin/PanoDoorLabelPlugin/index.d.ts +7 -0
  317. package/dist/floorplan/TopviewFloorplanPlugin/PanoDoorLabelPlugin/typings.d.ts +33 -0
  318. package/dist/floorplan/TopviewFloorplanPlugin/PanoDoorLabelPlugin/utils.d.ts +5 -0
  319. package/dist/floorplan/TopviewFloorplanPlugin/floorplan/typings/floorplanServerData.d.ts +13 -0
  320. package/dist/floorplan/typings/floorplanServerData.d.ts +13 -0
  321. package/dist/index.d.ts +2 -1
  322. package/dist/index.es.js +962 -190
  323. package/dist/index.js +961 -188
  324. package/dist/index.umd.js +961 -188
  325. package/docs/assets/search.js +1 -1
  326. package/docs/classes/Magnifier.html +4 -4
  327. package/docs/classes/ModelRoomLabelController.html +4 -4
  328. package/docs/enums/CameraMovementEffect.html +2 -2
  329. package/docs/enums/DIRECTION.html +1 -1
  330. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +1 -1
  331. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -1
  332. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +1 -1
  333. package/docs/enums/Rotation.html +2 -2
  334. package/docs/index.html +2 -2
  335. package/docs/interfaces/CSS3DRenderPluginExportType.html +2 -2
  336. package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
  337. package/docs/interfaces/FloorplanBounding.html +4 -4
  338. package/docs/interfaces/FloorplanData.html +2 -2
  339. package/docs/interfaces/FloorplanEntrance.html +7 -7
  340. package/docs/interfaces/FloorplanExtraObject.html +3 -3
  341. package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
  342. package/docs/interfaces/FloorplanFloorData.html +2 -2
  343. package/docs/interfaces/FloorplanImagePosition.html +2 -2
  344. package/docs/interfaces/FloorplanObserver.html +2 -2
  345. package/docs/interfaces/FloorplanOutlineItem.html +2 -2
  346. package/docs/interfaces/FloorplanPosition.html +2 -2
  347. package/docs/interfaces/FloorplanRoomItem.html +6 -6
  348. package/docs/interfaces/FloorplanRoomLabelItem.html +3 -3
  349. package/docs/interfaces/FloorplanServerBounding.html +4 -4
  350. package/docs/interfaces/FloorplanServerComputedData.html +1 -1
  351. package/docs/interfaces/FloorplanServerData.html +2 -2
  352. package/docs/interfaces/FloorplanServerDoorItem.html +1 -0
  353. package/docs/interfaces/FloorplanServerDoorPosition.html +1 -0
  354. package/docs/interfaces/FloorplanServerEntrance.html +7 -7
  355. package/docs/interfaces/FloorplanServerFloorData.html +2 -2
  356. package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
  357. package/docs/interfaces/FloorplanServerObserver.html +2 -2
  358. package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
  359. package/docs/interfaces/FloorplanServerPosition.html +2 -2
  360. package/docs/interfaces/FloorplanServerRoomItem.html +7 -7
  361. package/docs/interfaces/FloorplanServerRoomLabelItem.html +3 -3
  362. package/docs/interfaces/ItemLabelPluginData.html +1 -1
  363. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +1 -1
  364. package/docs/interfaces/ItemLabelPluginParametersType.html +1 -1
  365. package/docs/interfaces/LineJson.html +1 -1
  366. package/docs/interfaces/ModelChassisCompassPluginData.html +1 -1
  367. package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -1
  368. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -1
  369. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -1
  370. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -1
  371. package/docs/interfaces/ModelItemLabelPluginData.html +1 -1
  372. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +1 -1
  373. package/docs/interfaces/ModelItemLabelPluginParametersType.html +1 -1
  374. package/docs/interfaces/ModelRoomLabelPluginData.html +1 -1
  375. package/docs/interfaces/ModelTVVideoPluginData.html +1 -1
  376. package/docs/interfaces/ModelTVVideoPluginExportType.html +1 -1
  377. package/docs/interfaces/ModelTVVideoPluginParameterType.html +1 -1
  378. package/docs/interfaces/ModelViewPluginExportType.html +1 -1
  379. package/docs/interfaces/OpenParameter.html +2 -2
  380. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +6 -6
  381. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
  382. package/docs/interfaces/PanoMeasureParameterType.html +1 -1
  383. package/docs/interfaces/PanoRulerPluginExportType.html +1 -1
  384. package/docs/interfaces/PanoRulerPluginOptions.html +1 -1
  385. package/docs/interfaces/PanoRulerPluginParameterType.html +1 -1
  386. package/docs/interfaces/PanoRulerProPluginExportType.html +1 -1
  387. package/docs/interfaces/PanoRulerProPluginOptions.html +1 -1
  388. package/docs/interfaces/PanoRulerProPluginParameterType.html +1 -1
  389. package/docs/interfaces/PanoRulerProPluginState.html +1 -1
  390. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
  391. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
  392. package/docs/interfaces/PanoSpatialTagPluginData.html +1 -1
  393. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +1 -1
  394. package/docs/interfaces/PanoSpatialTagPluginExportType.html +1 -1
  395. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +1 -1
  396. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +1 -1
  397. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +1 -1
  398. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +1 -1
  399. package/docs/interfaces/Point.html +1 -1
  400. package/docs/interfaces/PointJson.html +1 -1
  401. package/docs/interfaces/Room.html +1 -1
  402. package/docs/interfaces/RoomInfo.html +1 -1
  403. package/docs/interfaces/RoomLabel.html +7 -7
  404. package/docs/interfaces/RoomRules.html +1 -1
  405. package/docs/interfaces/Rooms.html +1 -1
  406. package/docs/modules.html +18 -18
  407. package/libs/ItemLabelPlugin/ItemLabelItem.js +76 -36
  408. package/libs/ItemLabelPlugin/Plugin.js +1 -1
  409. package/libs/ItemLabelPlugin/typings.d.ts +1 -1
  410. package/libs/ModelItemLabelPlugin/ModelItemLabelPlugin.js +1 -1
  411. package/libs/ModelItemLabelPlugin/typings.d.ts +1 -1
  412. package/libs/ModelRoomLabelPlugin/Controller.js +1 -1
  413. package/libs/PanoCompassPlugin/Controller.d.ts +84 -0
  414. package/libs/PanoCompassPlugin/{controller.js → Controller.js} +0 -0
  415. package/libs/PanoDoorLabelPlugin/BaseController.d.ts +60 -0
  416. package/libs/PanoDoorLabelPlugin/BaseController.js +103 -0
  417. package/libs/PanoDoorLabelPlugin/Controller.d.ts +36 -0
  418. package/libs/PanoDoorLabelPlugin/Controller.js +434 -0
  419. package/libs/PanoDoorLabelPlugin/DoorLabelItem.js +159 -0
  420. package/libs/PanoDoorLabelPlugin/index.d.ts +7 -0
  421. package/libs/PanoDoorLabelPlugin/index.js +6 -0
  422. package/libs/PanoDoorLabelPlugin/typings.d.ts +33 -0
  423. package/libs/{src/ModelRoomLabelPlugin → PanoDoorLabelPlugin}/typings.js +0 -0
  424. package/libs/PanoDoorLabelPlugin/utils.d.ts +5 -0
  425. package/libs/PanoDoorLabelPlugin/utils.js +55 -0
  426. package/libs/PanoRulerProPlugin/Controller.js +1 -1
  427. package/libs/PanoSpatialTagPlugin/Plugin.js +2 -2
  428. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +1 -1
  429. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +1 -1
  430. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +1 -1
  431. package/libs/floorplan/typings/floorplanServerData.d.ts +13 -0
  432. package/libs/index.d.ts +2 -1
  433. package/libs/index.js +3 -1
  434. package/package.json +1 -1
  435. package/dist/PanoCompassPlugin/Plugin.d.ts +0 -47
  436. package/libs/ItemLabelPlugin/ItemLabelComponent.svelte +0 -251
  437. package/libs/ItemLabelPlugin/ItemLabelItem.svelte +0 -180
  438. package/libs/ModelItemLabelPlugin/ItemLabelComponent.svelte +0 -155
  439. package/libs/ModelItemLabelPlugin/ItemLabelItem.svelte +0 -100
  440. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte +0 -63
  441. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte +0 -94
  442. package/libs/PanoCompassPlugin/Plugin.d.ts +0 -47
  443. package/libs/PanoCompassPlugin/Plugin.js +0 -267
  444. package/libs/PanoCompassPlugin/typeings.d.ts +0 -0
  445. package/libs/PanoCompassPlugin/typeings.js +0 -0
  446. package/libs/PanoRulerProPlugin/RulerItem.svelte +0 -166
  447. package/libs/PanoRulerProPlugin/RulerItems.svelte +0 -212
  448. package/libs/PanoSpatialTagPlugin/Components/origins.svelte +0 -58
  449. package/libs/PanoSpatialTagPlugin/Components/tag.svelte +0 -292
  450. package/libs/floorplan/Components/BaseImage.svelte +0 -26
  451. package/libs/floorplan/Components/Camera.svelte +0 -46
  452. package/libs/floorplan/Components/Compass.svelte +0 -51
  453. package/libs/floorplan/Components/CurrentFloor.svelte +0 -46
  454. package/libs/floorplan/Components/Main.svelte +0 -51
  455. package/libs/floorplan/Components/Normalmage.svelte +0 -11
  456. package/libs/floorplan/Components/RoomHighlight/Room.svelte +0 -27
  457. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte +0 -29
  458. package/libs/floorplan/Components/RoomLabels/RoomLabel.svelte +0 -119
  459. package/libs/floorplan/Components/RoomLabels/RoomLabels.svelte +0 -35
  460. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte +0 -42
  461. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte +0 -7
  462. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte +0 -24
  463. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte +0 -33
  464. package/libs/floorplan/Components/RuleLabels/RuleItem.svelte +0 -174
  465. package/libs/floorplan/Components/RuleLabels/RuleLabels.svelte +0 -32
  466. package/libs/floorplan/Components/SvgImage.svelte +0 -28
  467. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte +0 -85
  468. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte +0 -18
  469. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte +0 -40
  470. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte +0 -64
  471. package/libs/package.json +0 -68
  472. package/libs/src/CSS3DRenderPlugin/Plugin.js +0 -182
  473. package/libs/src/CSS3DRenderPlugin/index.js +0 -3
  474. package/libs/src/CSS3DRenderPlugin/utils/createResizeObserver.js +0 -18
  475. package/libs/src/CameraMovementPlugin/CameraMovementPlugin.js +0 -159
  476. package/libs/src/CameraMovementPlugin/index.js +0 -4
  477. package/libs/src/CameraMovementPlugin/typing.js +0 -17
  478. package/libs/src/ItemLabelPlugin/Plugin.js +0 -120
  479. package/libs/src/ItemLabelPlugin/events.type.js +0 -1
  480. package/libs/src/ItemLabelPlugin/index.js +0 -8
  481. package/libs/src/ItemLabelPlugin/typings.js +0 -7
  482. package/libs/src/ItemLabelPlugin/utils/getLabelTransform.js +0 -3
  483. package/libs/src/ItemLabelPlugin/utils/getStrokeLength.js +0 -16
  484. package/libs/src/ItemLabelPlugin/utils/isImpacted.js +0 -13
  485. package/libs/src/ItemLabelPlugin/utils/parseData.js +0 -4
  486. package/libs/src/ItemLabelPlugin/utils/transform2RenderData.js +0 -4
  487. package/libs/src/ModelChassisCompassPlugin/Plugin.js +0 -77
  488. package/libs/src/ModelChassisCompassPlugin/index.js +0 -3
  489. package/libs/src/ModelEntryDoorGuidePlugin/Plugin.js +0 -140
  490. package/libs/src/ModelEntryDoorGuidePlugin/index.js +0 -3
  491. package/libs/src/ModelItemLabelPlugin/ModelItemLabelPlugin.js +0 -120
  492. package/libs/src/ModelItemLabelPlugin/events.type.js +0 -1
  493. package/libs/src/ModelItemLabelPlugin/index.js +0 -8
  494. package/libs/src/ModelItemLabelPlugin/typings.js +0 -7
  495. package/libs/src/ModelItemLabelPlugin/utils/parseData.js +0 -4
  496. package/libs/src/ModelRoomLabelPlugin/Assets/roomLabelBg.js +0 -1
  497. package/libs/src/ModelRoomLabelPlugin/Controller.js +0 -142
  498. package/libs/src/ModelRoomLabelPlugin/index.js +0 -9
  499. package/libs/src/ModelRoomLabelPlugin/utils/parseData.js +0 -14
  500. package/libs/src/ModelTVVideoPlugin/Plugin.js +0 -254
  501. package/libs/src/ModelTVVideoPlugin/index.js +0 -4
  502. package/libs/src/ModelTVVideoPlugin/typings.js +0 -8
  503. package/libs/src/ModelTVVideoPlugin/utils/parseData.js +0 -13
  504. package/libs/src/ModelViewPlugin/Plugin.js +0 -159
  505. package/libs/src/ModelViewPlugin/index.js +0 -3
  506. package/libs/src/PanoCompassPlugin/Assets/roomInfoIcon.js +0 -1
  507. package/libs/src/PanoCompassPlugin/Plugin.d.ts +0 -47
  508. package/libs/src/PanoCompassPlugin/Plugin.js +0 -249
  509. package/libs/src/PanoCompassPlugin/getRoomInfoInstance.js +0 -48
  510. package/libs/src/PanoCompassPlugin/index.d.ts +0 -8
  511. package/libs/src/PanoCompassPlugin/index.js +0 -7
  512. package/libs/src/PanoCursorRaycasterPlugin/index.js +0 -76
  513. package/libs/src/PanoMeasurePlugin/Controller/BaseController.js +0 -132
  514. package/libs/src/PanoMeasurePlugin/Controller/EditController.js +0 -329
  515. package/libs/src/PanoMeasurePlugin/Controller/MixedController.js +0 -337
  516. package/libs/src/PanoMeasurePlugin/Controller/ShortcutKeyController.js +0 -64
  517. package/libs/src/PanoMeasurePlugin/Controller/WatchController.js +0 -316
  518. package/libs/src/PanoMeasurePlugin/Controller/index.js +0 -306
  519. package/libs/src/PanoMeasurePlugin/Model/index.js +0 -139
  520. package/libs/src/PanoMeasurePlugin/Model/line.js +0 -114
  521. package/libs/src/PanoMeasurePlugin/Model/point.js +0 -48
  522. package/libs/src/PanoMeasurePlugin/Model/polyline.js +0 -65
  523. package/libs/src/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.js +0 -12
  524. package/libs/src/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.js +0 -2
  525. package/libs/src/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.js +0 -2
  526. package/libs/src/PanoMeasurePlugin/Modules/DeleteDom/index.js +0 -190
  527. package/libs/src/PanoMeasurePlugin/Modules/FiveHelper.js +0 -48
  528. package/libs/src/PanoMeasurePlugin/Modules/GuideController.js +0 -110
  529. package/libs/src/PanoMeasurePlugin/Modules/Magnifier.js +0 -278
  530. package/libs/src/PanoMeasurePlugin/Modules/UIController/HTML.js +0 -128
  531. package/libs/src/PanoMeasurePlugin/Modules/UIController/MainBtnController.js +0 -126
  532. package/libs/src/PanoMeasurePlugin/Modules/UIController/Revoke/index.js +0 -73
  533. package/libs/src/PanoMeasurePlugin/Modules/UIController/index.js +0 -117
  534. package/libs/src/PanoMeasurePlugin/Modules/UIController/mobileHTML.js +0 -80
  535. package/libs/src/PanoMeasurePlugin/Modules/UIController/mobileMainBtnController.js +0 -98
  536. package/libs/src/PanoMeasurePlugin/Modules/UIController/style.js +0 -71
  537. package/libs/src/PanoMeasurePlugin/Modules/rangePiece/html.js +0 -64
  538. package/libs/src/PanoMeasurePlugin/Modules/rangePiece/index.js +0 -264
  539. package/libs/src/PanoMeasurePlugin/index.js +0 -7
  540. package/libs/src/PanoMeasurePlugin/typings/data.js +0 -1
  541. package/libs/src/PanoMeasurePlugin/typings/event.type.js +0 -1
  542. package/libs/src/PanoMeasurePlugin/typings/utils.type.js +0 -1
  543. package/libs/src/PanoMeasurePlugin/utils/calculateThreeMouse.js +0 -15
  544. package/libs/src/PanoMeasurePlugin/utils/clearGroup.js +0 -3
  545. package/libs/src/PanoMeasurePlugin/utils/constants.d.ts +0 -4
  546. package/libs/src/PanoMeasurePlugin/utils/constants.js +0 -31
  547. package/libs/src/PanoMeasurePlugin/utils/distanceDom.js +0 -120
  548. package/libs/src/PanoMeasurePlugin/utils/findAssociatedLines.js +0 -21
  549. package/libs/src/PanoMeasurePlugin/utils/findClosestPoint.js +0 -27
  550. package/libs/src/PanoMeasurePlugin/utils/getIntersectionFromEvent.js +0 -9
  551. package/libs/src/PanoMeasurePlugin/utils/getPointFromHammerEvent.js +0 -14
  552. package/libs/src/PanoMeasurePlugin/utils/ironbox.js +0 -1
  553. package/libs/src/PanoMeasurePlugin/utils/isNDCPointInScreen.js +0 -6
  554. package/libs/src/PanoMeasurePlugin/utils/line.js +0 -33
  555. package/libs/src/PanoMeasurePlugin/utils/math.js +0 -44
  556. package/libs/src/PanoMeasurePlugin/utils/mouseGroup.js +0 -69
  557. package/libs/src/PanoMeasurePlugin/utils/ndc2Screen.js +0 -6
  558. package/libs/src/PanoRulerPlugin/Plugin.js +0 -403
  559. package/libs/src/PanoRulerPlugin/index.js +0 -3
  560. package/libs/src/PanoRulerPlugin/style.js +0 -88
  561. package/libs/src/PanoRulerPlugin/typings.js +0 -1
  562. package/libs/src/PanoRulerProPlugin/Controller.js +0 -110
  563. package/libs/src/PanoRulerProPlugin/index.js +0 -8
  564. package/libs/src/PanoRulerProPlugin/typings.js +0 -1
  565. package/libs/src/PanoSpatialTagPlugin/Plugin.js +0 -426
  566. package/libs/src/PanoSpatialTagPlugin/index.js +0 -5
  567. package/libs/src/PanoSpatialTagPlugin/store.js +0 -2
  568. package/libs/src/PanoSpatialTagPlugin/style.js +0 -8
  569. package/libs/src/PanoSpatialTagPlugin/typings.js +0 -1
  570. package/libs/src/base/BasePlugin.js +0 -41
  571. package/libs/src/base/BasePluginWithData.js +0 -4
  572. package/libs/src/components/PaintBrush/Controller.js +0 -575
  573. package/libs/src/components/PaintBrush/Subscribe.js +0 -121
  574. package/libs/src/components/PaintBrush/index.js +0 -57
  575. package/libs/src/components/PaintBrush/style.js +0 -102
  576. package/libs/src/components/PaintBrush/tween.js +0 -15
  577. package/libs/src/components/PaintBrush/typings.js +0 -6
  578. package/libs/src/components/PaintBrush/utils.js +0 -51
  579. package/libs/src/components/index.js +0 -3
  580. package/libs/src/floorplan/Assets/camera.js +0 -1
  581. package/libs/src/floorplan/Assets/compass.js +0 -1
  582. package/libs/src/floorplan/Assets/floorplanExtraObject.js +0 -1
  583. package/libs/src/floorplan/ModelFloorplanPlugin/Controller.js +0 -701
  584. package/libs/src/floorplan/ModelFloorplanPlugin/index.js +0 -5
  585. package/libs/src/floorplan/ModelFloorplanPlugin/typing.js +0 -1
  586. package/libs/src/floorplan/PanoFloorplanRadarPlugin/Controller.js +0 -240
  587. package/libs/src/floorplan/PanoFloorplanRadarPlugin/index.js +0 -5
  588. package/libs/src/floorplan/PanoFloorplanRadarPlugin/typing.js +0 -1
  589. package/libs/src/floorplan/TopviewFloorplanPlugin/Controller.js +0 -486
  590. package/libs/src/floorplan/TopviewFloorplanPlugin/index.js +0 -5
  591. package/libs/src/floorplan/TopviewFloorplanPlugin/style.js +0 -8
  592. package/libs/src/floorplan/TopviewFloorplanPlugin/typing.js +0 -1
  593. package/libs/src/floorplan/constant.js +0 -6
  594. package/libs/src/floorplan/index.js +0 -7
  595. package/libs/src/floorplan/typings/floorplanData.js +0 -6
  596. package/libs/src/floorplan/typings/floorplanServerData.js +0 -101
  597. package/libs/src/floorplan/typings/utility.js +0 -1
  598. package/libs/src/floorplan/utils/constant.js +0 -23
  599. package/libs/src/floorplan/utils/correctFiveState.js +0 -46
  600. package/libs/src/floorplan/utils/formatData.js +0 -94
  601. package/libs/src/floorplan/utils/formatPosition.js +0 -50
  602. package/libs/src/index.d.ts +0 -16
  603. package/libs/src/index.js +0 -28
  604. package/libs/src/shared-utils/Preloader.js +0 -38
  605. package/libs/src/shared-utils/Subscribe.js +0 -108
  606. package/libs/src/shared-utils/animationFrame/BetterTween.js +0 -59
  607. package/libs/src/shared-utils/animationFrame/calculateProgress.js +0 -23
  608. package/libs/src/shared-utils/animationFrame/formatRad.js +0 -20
  609. package/libs/src/shared-utils/animationFrame/index.js +0 -48
  610. package/libs/src/shared-utils/animationFrame/tween.js +0 -44
  611. package/libs/src/shared-utils/changeModelCanvasOpacity.js +0 -15
  612. package/libs/src/shared-utils/createCanvasTextTexture.js +0 -20
  613. package/libs/src/shared-utils/createLine/index.js +0 -8
  614. package/libs/src/shared-utils/debounce.js +0 -14
  615. package/libs/src/shared-utils/equal.js +0 -84
  616. package/libs/src/shared-utils/filter.js +0 -53
  617. package/libs/src/shared-utils/five/changeMode.js +0 -36
  618. package/libs/src/shared-utils/formatRad.js +0 -10
  619. package/libs/src/shared-utils/getPxmm.js +0 -39
  620. package/libs/src/shared-utils/getRandomColor.js +0 -10
  621. package/libs/src/shared-utils/index.js +0 -1
  622. package/libs/src/shared-utils/isNil.js +0 -14
  623. package/libs/src/shared-utils/isTruelyObject.js +0 -20
  624. package/libs/src/shared-utils/logger.js +0 -47
  625. package/libs/src/shared-utils/math/Interval.js +0 -40
  626. package/libs/src/shared-utils/math/Rectangle.js +0 -50
  627. package/libs/src/shared-utils/math/evenNumber.js +0 -4
  628. package/libs/src/shared-utils/math/index.js +0 -2
  629. package/libs/src/shared-utils/math/planimetry.js +0 -288
  630. package/libs/src/shared-utils/math/rad2Deg.js +0 -3
  631. package/libs/src/shared-utils/nearlyEqual.js +0 -9
  632. package/libs/src/shared-utils/nextFrame.js +0 -6
  633. package/libs/src/shared-utils/noop.js +0 -7
  634. package/libs/src/shared-utils/object3d2LocalMatrix.js +0 -29
  635. package/libs/src/shared-utils/px2rem.js +0 -4
  636. package/libs/src/shared-utils/removeArrayItem.js +0 -12
  637. package/libs/src/shared-utils/tap.js +0 -12
  638. package/libs/src/shared-utils/three/centerPoint.js +0 -4
  639. package/libs/src/shared-utils/three/getExtraModelLoader.js +0 -18
  640. package/libs/src/shared-utils/three/getNormal.js +0 -6
  641. package/libs/src/shared-utils/three/getTextureLoader.js +0 -17
  642. package/libs/src/shared-utils/three/loadFbxObj.js +0 -13
  643. package/libs/src/shared-utils/three/loadTexture.js +0 -10
  644. package/libs/src/shared-utils/three/transformPositionToVector3.js +0 -3
  645. package/libs/src/shared-utils/three/transfromToMeshBasicMaterial.js +0 -15
  646. package/libs/src/shared-utils/throttle.js +0 -18
  647. package/libs/src/shared-utils/tinyEJSrender.js +0 -210
  648. package/libs/src/shared-utils/to.js +0 -18
  649. package/libs/src/shared-utils/uuid.js +0 -12
  650. package/libs/src/shared-utils/vectorTocoordinates.js +0 -9
  651. package/libs/src/typings/math.type.js +0 -1
  652. package/libs/src/typings/utils.type.js +0 -1
@@ -1,69 +0,0 @@
1
- import { CurvePath, DoubleSide, Group, LineCurve3, Mesh, MeshBasicMaterial, PlaneGeometry, ShaderMaterial, SphereGeometry, sRGBEncoding, TextureLoader, TubeGeometry, Vector3, } from 'three';
2
- // 移动端纹理贴图(只有十字不带圆圈)
3
- const mobileTextureUrl = `data:image/png;base64,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`;
4
- // pc端纹理贴图(带圆圈)
5
- const pcTextureUrl = `data:image/png;base64,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`;
6
- const vertexShader = `
7
- varying vec2 vUv;
8
- void main() {
9
- vUv = uv;
10
- vec4 mvPosition = modelViewMatrix * vec4(position, 1);
11
- gl_Position = projectionMatrix * mvPosition;
12
- }
13
- `;
14
- const fragmentShader = `
15
- varying vec2 vUv;
16
- void main() {
17
- vec2 uv = vec2(vUv.x, vUv.y);
18
- float a = 1.0;
19
- float match = 1.0 - uv.x;
20
- gl_FragColor = vec4(1.0,1.0,1.0,match);
21
- }
22
- `;
23
- export function getMouseGroup(params) {
24
- var _a, _b;
25
- const isMobile = (_a = params.isMobile) !== null && _a !== void 0 ? _a : true;
26
- const useNormalVector = (_b = params.useNormalVector) !== null && _b !== void 0 ? _b : true;
27
- let ballColor = 0x9ded6b;
28
- if (useNormalVector && params.ballColor >= 0) {
29
- ballColor = params.ballColor;
30
- }
31
- const group = new Group();
32
- // 底部纹理贴图面片
33
- const planGeometry = new PlaneGeometry(0.3, 0.3);
34
- const planTextureUrl = isMobile ? mobileTextureUrl : pcTextureUrl;
35
- const planTexture = new TextureLoader().load(planTextureUrl);
36
- planTexture.encoding = sRGBEncoding;
37
- const planMaterial = new MeshBasicMaterial({
38
- map: planTexture,
39
- transparent: true,
40
- depthTest: false,
41
- });
42
- const planMesh = new Mesh(planGeometry, planMaterial);
43
- // 法向量垂直管
44
- const zPath = new CurvePath();
45
- zPath.add(new LineCurve3(new Vector3(0, 0, 0), new Vector3(0, 0, 0.1)));
46
- const zGeometry = new TubeGeometry(zPath, 8, 0.003);
47
- const zMaterial = new ShaderMaterial({
48
- vertexShader: vertexShader,
49
- fragmentShader: fragmentShader,
50
- depthTest: false,
51
- transparent: true,
52
- });
53
- const zMesh = new Mesh(zGeometry, zMaterial);
54
- // 法向量圆球
55
- const ballGeometry = new SphereGeometry(0.01, 20, 20);
56
- const ballMaterial = new MeshBasicMaterial({
57
- color: ballColor,
58
- depthTest: false,
59
- transparent: true,
60
- side: DoubleSide,
61
- });
62
- const ballMesh = new Mesh(ballGeometry, ballMaterial);
63
- ballMesh.position.set(0, 0, 0.1);
64
- group.name = 'mouse-current';
65
- group.add(planMesh);
66
- if (useNormalVector)
67
- group.add(zMesh, ballMesh);
68
- return group;
69
- }
@@ -1,6 +0,0 @@
1
- import { Vector2 } from 'three';
2
- export default function ndc2Screen(ndcPosition, containerSize) {
3
- const left = ((ndcPosition.x + 1) / 2) * containerSize.width;
4
- const top = (-(ndcPosition.y - 1) / 2) * containerSize.height;
5
- return new Vector2(left, top);
6
- }
@@ -1,403 +0,0 @@
1
- import { Five } from '@realsee/five';
2
- import { Raycaster, Vector3 } from 'three';
3
- import { intersectionOfLine } from '../shared-utils/math/planimetry';
4
- import { nextFrame } from '../shared-utils/nextFrame';
5
- import throttle from '../shared-utils/throttle';
6
- import PanoRulerStyle from './style';
7
- const getDistance = (p1, p2) => {
8
- return Math.sqrt(Math.pow(p1.z - p2.z, 2) + Math.pow(p1.x - p2.x, 2));
9
- };
10
- const getRoomHeightInfo = (roomInfo, five) => {
11
- const roomHeightInfo = {};
12
- const raycaster = new Raycaster();
13
- const work = five.work;
14
- if (!work)
15
- return roomHeightInfo;
16
- const observers = roomInfo.observers;
17
- work.observers.forEach((observer, index) => {
18
- const { standingPosition: position } = observer;
19
- const point = new Vector3(position.x, position.y, position.z);
20
- raycaster.set(point, new Vector3(0, 1, 0));
21
- const [intersection] = five.model.intersectRaycaster(raycaster);
22
- // 虚景 VR 没有天花板碰撞射线无相交,默认固定层高2.7m
23
- const verticalY = intersection ? intersection.point.y : 2.7;
24
- const id = observers[index];
25
- if (!id)
26
- return roomHeightInfo;
27
- const observerRoomName = roomInfo.rooms[id].name;
28
- if (roomHeightInfo[observerRoomName] === undefined) {
29
- roomHeightInfo[observerRoomName] = {
30
- __roof: [verticalY],
31
- __floor: [point.y],
32
- };
33
- }
34
- else {
35
- roomHeightInfo[observerRoomName].__roof.push(verticalY);
36
- roomHeightInfo[observerRoomName].__floor.push(point.y);
37
- }
38
- });
39
- // 地板高度求中位数,屋顶高度取最高
40
- for (const roomName in roomHeightInfo) {
41
- const room = roomHeightInfo[roomName];
42
- room.__roof.sort();
43
- room.__floor.sort();
44
- room.floor = room.__floor[~~(room.__floor.length / 2)];
45
- room.roof = room.__roof[room.__roof.length - 1];
46
- }
47
- return roomHeightInfo;
48
- };
49
- /**
50
- * 全景标尺插件
51
- */
52
- export const PanoRulerPlugin = (five, params) => {
53
- const state = {
54
- enable: false,
55
- loaded: false,
56
- options: params.options || {
57
- distanceText: (distance) => `${distance.toFixed(1)}m`,
58
- },
59
- };
60
- const tpl = (name, distance) => {
61
- const domStr = `
62
- <div class="PanoRulerPlugin-rule-line">
63
- <em></em>
64
- <div class="PanoRulerPlugin-rule-label">
65
- <div class="PanoRulerPlugin-rule-label-name">${state.options.distanceText(distance)}</div>
66
- </div>
67
- </div>
68
- `;
69
- const res = document.createElement('div');
70
- res.setAttribute('class', 'PanoRulerPlugin-rule');
71
- res.setAttribute('data-name', name);
72
- res.setAttribute('style', 'display: none');
73
- res.innerHTML = domStr;
74
- return res;
75
- };
76
- const $rule = document.createElement('div');
77
- $rule.setAttribute('style', `position: absolute;pointer-events: none;width: 100%;height: 100%;left: 0;top: 0;overflow: hidden;`);
78
- // 添加标尺样式
79
- const style = document.createElement('div');
80
- style.innerHTML = PanoRulerStyle;
81
- $rule.appendChild(style);
82
- const __rule = {};
83
- const _load = (roomInfo, roomRules) => {
84
- // if (state.loaded) {
85
- // throw new Error('标尺被重复初始化!')
86
- // }
87
- const roomHeightInfo = getRoomHeightInfo(roomInfo, five);
88
- const work = five.work;
89
- if (!work)
90
- return false;
91
- for (const obKey in roomRules) {
92
- const points = roomRules[obKey];
93
- const { standingPosition: defaultPosition } = work.observers[0];
94
- const roomPoints = points.map(({ x, z, observers }) => {
95
- const pointRoomName = observers.length > 0 ? roomInfo.rooms[roomInfo.observers[observers[0]]].name : '';
96
- const medianFloorHeight = roomHeightInfo[pointRoomName] ? roomHeightInfo[pointRoomName].floor : null;
97
- let minDistance = Infinity;
98
- let nearestPoint = {
99
- index: 0,
100
- x: defaultPosition.x,
101
- y: defaultPosition.y,
102
- z: defaultPosition.z,
103
- };
104
- observers.forEach((index) => {
105
- if (!work.observers[index])
106
- return;
107
- const { standingPosition: position } = work.observers[index];
108
- const observerPoint = {
109
- index,
110
- x: position.x,
111
- y: position.y,
112
- z: position.z,
113
- };
114
- const distance = getDistance({ x, z }, observerPoint);
115
- if (medianFloorHeight) {
116
- // 取最近点时排除高度与房间平均高度差大于0.3米的点
117
- if (distance < minDistance && Math.abs(observerPoint.y - medianFloorHeight) < 0.3) {
118
- minDistance = distance;
119
- nearestPoint = observerPoint;
120
- }
121
- }
122
- else {
123
- if (distance < minDistance) {
124
- minDistance = distance;
125
- nearestPoint = observerPoint;
126
- }
127
- }
128
- });
129
- const _origin = new Vector3(x, nearestPoint.y, z);
130
- Object.assign(_origin, { observers });
131
- const verticalY = roomHeightInfo[pointRoomName] ? roomHeightInfo[pointRoomName].roof : null;
132
- const _vertical = !verticalY ? null : new Vector3(x, verticalY, z);
133
- if (_vertical)
134
- Object.assign(_vertical, { observers });
135
- const origin = _origin;
136
- const vertical = _vertical;
137
- return { origin, vertical };
138
- });
139
- __rule[obKey] = {
140
- origins: roomPoints.map((roomPoint) => roomPoint.origin),
141
- rules: [],
142
- };
143
- for (const { origin, vertical } of roomPoints) {
144
- if (!vertical)
145
- continue;
146
- const $element = tpl(obKey, origin.distanceTo(vertical));
147
- $rule.append($element);
148
- __rule[obKey].rules.push({ vertical: true, rule: [origin, vertical], $element });
149
- }
150
- for (let index = 0; index < roomPoints.length; index++) {
151
- let nextIndex = index + 1;
152
- if (nextIndex >= roomPoints.length)
153
- nextIndex = 0;
154
- const { origin } = roomPoints[index];
155
- const { origin: next } = roomPoints[nextIndex];
156
- const $element = tpl(obKey, origin.distanceTo(next));
157
- $rule.append($element);
158
- __rule[obKey].rules.push({ vertical: false, rule: [origin, next], $element });
159
- }
160
- }
161
- state.loaded = true;
162
- freshRule();
163
- return true;
164
- };
165
- const load = async (_roomInfo, _roomRules, options) => {
166
- const roomInfo = _roomInfo || params.roomInfo;
167
- const roomRules = _roomRules || params.roomRules;
168
- if (!roomInfo || !roomRules) {
169
- throw new Error('标尺数据依赖不齐全!');
170
- }
171
- state.loaded = false;
172
- state.options = Object.assign(Object.assign({}, state.options), options || {});
173
- if (five.model.loaded) {
174
- return _load(roomInfo, roomRules);
175
- }
176
- else {
177
- return await new Promise((resolve) => five.once('modelLoaded', () => resolve(_load(roomInfo, roomRules))));
178
- }
179
- };
180
- if (params.roomInfo && params.roomRules) {
181
- load(params.roomInfo, params.roomRules);
182
- }
183
- const getRuleScreenIntr = (startPoint, endPoint, canvasWidth, canvasHeight) => {
184
- const screenLines = [
185
- [
186
- { x: 0, y: 0 },
187
- { x: canvasWidth, y: 0 },
188
- ],
189
- [
190
- { x: 0, y: 0 },
191
- { x: 0, y: canvasHeight },
192
- ],
193
- [
194
- { x: canvasWidth, y: 0 },
195
- { x: canvasWidth, y: canvasHeight },
196
- ],
197
- [
198
- { x: 0, y: canvasHeight },
199
- { x: canvasWidth, y: canvasHeight },
200
- ],
201
- ];
202
- const intr = [];
203
- for (let i = 0; i < screenLines.length; i++) {
204
- const result = intersectionOfLine([startPoint, endPoint], [screenLines[i][0], screenLines[i][1]], true);
205
- if (result)
206
- intr.push(result);
207
- }
208
- if (intr.length === 0)
209
- return false;
210
- else {
211
- return intr;
212
- }
213
- };
214
- const freshRule = () => {
215
- var _a;
216
- const element = (_a = five.getElement()) === null || _a === void 0 ? void 0 : _a.parentElement;
217
- if (!element)
218
- return;
219
- if (!state.loaded)
220
- return;
221
- if (Object.keys(__rule).length <= 0)
222
- return;
223
- const { panoIndex, camera, currentMode } = five;
224
- if (panoIndex === undefined)
225
- return;
226
- let name;
227
- for (const _name in __rule) {
228
- if (_name.split(',').indexOf(panoIndex.toString()) >= 0)
229
- name = _name;
230
- }
231
- if (!name)
232
- return;
233
- const cameraPosition = camera.position;
234
- const cameraDirection = camera.getWorldDirection(new Vector3());
235
- const width = element.clientWidth;
236
- const height = element.clientHeight;
237
- // 非全景模式下隐藏所有标尺
238
- if (currentMode !== Five.Mode.Panorama) {
239
- for (const _name in __rule) {
240
- for (const { $element } of __rule[_name].rules) {
241
- $element.style.display = 'none';
242
- }
243
- }
244
- return;
245
- }
246
- // 隐藏非当前点位的标尺
247
- for (const _name in __rule) {
248
- for (const { $element } of __rule[_name].rules) {
249
- $element.style.display = _name === name ? 'block' : 'none';
250
- }
251
- }
252
- const verticalLines = [];
253
- // 可以看到的角度最小的拐点
254
- const [visibleOrigin] = __rule[name].origins
255
- .slice()
256
- .filter((point) => point.observers.indexOf(panoIndex) >= 0)
257
- .sort((pointA, pointB) => {
258
- const angleA = pointA.clone().setY(0).sub(cameraPosition).normalize().angleTo(cameraDirection.clone().setY(0));
259
- const angleB = pointB.clone().setY(0).sub(cameraPosition).normalize().angleTo(cameraDirection.clone().setY(0));
260
- return angleA - angleB;
261
- });
262
- const shownNotVerticalRules = [];
263
- for (const { rule, vertical, $element } of __rule[name].rules) {
264
- const [start, end] = rule;
265
- const $line = $element.querySelector('.PanoRulerPlugin-rule-line');
266
- if (!$line)
267
- return;
268
- if (!visibleOrigin) {
269
- $element.style.display = 'none';
270
- continue;
271
- }
272
- if (start !== visibleOrigin && end !== visibleOrigin) {
273
- $element.style.display = 'none';
274
- continue;
275
- }
276
- // 线小于0.3m隐藏
277
- if (start.distanceTo(end) < 0.3) {
278
- $element.style.display = 'none';
279
- continue;
280
- }
281
- if (start.observers.indexOf(panoIndex) === -1 || end.observers.indexOf(panoIndex) === -1) {
282
- $element.style.display = 'none';
283
- continue;
284
- }
285
- const startAngle = start.clone().sub(cameraPosition).normalize().angleTo(cameraDirection);
286
- if (startAngle > Math.PI / 2) {
287
- $element.style.display = 'none';
288
- continue;
289
- }
290
- const endAngle = end.clone().sub(cameraPosition).normalize().angleTo(cameraDirection);
291
- if (endAngle > Math.PI / 2) {
292
- $element.style.display = 'none';
293
- continue;
294
- }
295
- const ruleLength = start.distanceTo(end);
296
- const midPoint = end.clone().sub(end.clone().sub(start).divide(new Vector3(2, 2, 2)));
297
- const disFromCameraToMid = midPoint.distanceTo(cameraPosition);
298
- if (disFromCameraToMid / ruleLength > 8) {
299
- $element.style.display = 'none';
300
- continue;
301
- }
302
- if (!vertical)
303
- shownNotVerticalRules.push(rule);
304
- if (vertical)
305
- verticalLines.push({ $element, startAngle });
306
- const mouseStart = start.clone().project(camera);
307
- const startLeft = ((mouseStart.x + 1) / 2) * width;
308
- const startTop = ((-mouseStart.y + 1) / 2) * height;
309
- const mouseEnd = end.clone().project(camera);
310
- const endLeft = ((mouseEnd.x + 1) / 2) * width;
311
- const endTop = ((-mouseEnd.y + 1) / 2) * height;
312
- const distance = Math.sqrt(Math.pow(endLeft - startLeft, 2) + Math.pow(endTop - startTop, 2));
313
- let visibleLength = distance;
314
- let labelOffset = 50;
315
- const intr = getRuleScreenIntr({ x: ~~startLeft, y: ~~startTop }, {
316
- x: ~~endLeft,
317
- y: ~~endTop
318
- }, width, height);
319
- if (intr && intr.length === 1) {
320
- if (visibleOrigin === start) {
321
- visibleLength = Math.sqrt(Math.pow(intr[0].x - startLeft, 2) + Math.pow(intr[0].y - startTop, 2));
322
- labelOffset = (visibleLength / distance) * 50;
323
- }
324
- else if (visibleOrigin === end) {
325
- visibleLength = Math.sqrt(Math.pow(intr[0].x - endLeft, 2) + Math.pow(intr[0].y - endTop, 2));
326
- labelOffset = 100 - (visibleLength / distance) * 50;
327
- }
328
- }
329
- if (intr && intr.length === 2) {
330
- const middlePoint = {
331
- x: (intr[0].x + intr[1].x) / 2,
332
- y: (intr[0].y + intr[1].y) / 2,
333
- };
334
- const distanceFromStart = Math.sqrt(Math.pow(middlePoint.x - startLeft, 2) + Math.pow(middlePoint.y - startTop, 2));
335
- labelOffset = (distanceFromStart / distance) * 100;
336
- }
337
- const rad = Math.PI / 2 - Math.atan2(endLeft - startLeft, startTop - endTop);
338
- const deg = (rad / Math.PI) * 180;
339
- const $label = $line.querySelector('.PanoRulerPlugin-rule-label');
340
- // 线的长度小于标签时或者标签与线两端点重合时隐藏,
341
- const labelWidth = $label.children[0].clientWidth;
342
- if (labelWidth >= distance ||
343
- labelWidth / 2 >= (labelOffset / 100) * distance ||
344
- labelWidth / 2 >= (1 - labelOffset / 100) * distance) {
345
- $line.style.display = 'none';
346
- }
347
- else {
348
- $line.style.display = 'block';
349
- $line.style.width = distance + 'px';
350
- $line.style.left = startLeft + 'px';
351
- $line.style.top = startTop + 'px';
352
- $line.style.transform = `rotate(${-deg}deg)`;
353
- $label.style.left = `${labelOffset}%`;
354
- }
355
- }
356
- };
357
- const nextFrameFreshRule = () => nextFrame(freshRule);
358
- const throttleFreshRule = throttle(freshRule, 80);
359
- const enable = () => {
360
- var _a, _b;
361
- if (!state.loaded)
362
- return false;
363
- if (state.enable)
364
- return true;
365
- $rule.setAttribute('class', 'PanoRulerPlugin' + (state.options.className ? ' ' + state.options.className : ''));
366
- (_b = (_a = five.getElement()) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.append($rule);
367
- freshRule();
368
- five.on('panoArrived', freshRule);
369
- five.on('modeChange', freshRule);
370
- five.on('cameraDirectionUpdate', nextFrameFreshRule);
371
- five.on('movingToPano', nextFrameFreshRule);
372
- five.on('mouseWheel', throttleFreshRule);
373
- five.on('pinchGesture', throttleFreshRule);
374
- state.enable = true;
375
- return true;
376
- };
377
- const disable = () => {
378
- if (!state.enable)
379
- return true;
380
- five.off('panoArrived', freshRule);
381
- five.off('modeChange', freshRule);
382
- five.off('cameraDirectionUpdate', nextFrameFreshRule);
383
- five.off('movingToPano', nextFrameFreshRule);
384
- five.off('mouseWheel', throttleFreshRule);
385
- five.off('pinchGesture', throttleFreshRule);
386
- if ($rule) {
387
- $rule.remove();
388
- }
389
- state.enable = false;
390
- return true;
391
- };
392
- return {
393
- enable,
394
- disable,
395
- load,
396
- state,
397
- };
398
- };
399
- export const panoRulerPluginServerParams = {
400
- name: 'PanoRulerPlugin',
401
- version: 0,
402
- };
403
- export default PanoRulerPlugin;
@@ -1,3 +0,0 @@
1
- import PanoRulerPlugin from './Plugin';
2
- export { PanoRulerPlugin };
3
- export default PanoRulerPlugin;