@realsee/dnalogel 3.81.14 → 3.81.15

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 (611) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +10 -0
  3. package/dist/MeasurePlugin/Controller.d.ts +12 -0
  4. package/dist/MeasurePlugin/index.d.ts +1 -1
  5. package/dist/index.cjs.js +4 -4
  6. package/dist/index.js +240 -225
  7. package/dist/index.umd.js +4 -4
  8. package/docs/assets/navigation.js +1 -1
  9. package/docs/assets/search.js +1 -1
  10. package/docs/classes/AnimationScriptAdapterSafetyError.html +2 -2
  11. package/docs/classes/AreaMakerPluginType.AreaMakerController.html +2 -2
  12. package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +2 -2
  13. package/docs/classes/CSS3DRender.html +2 -2
  14. package/docs/classes/DigitalHuman.html +2 -2
  15. package/docs/classes/DigitalPerformanceV2.DigitalPerformanceNameplate.html +2 -2
  16. package/docs/classes/DigitalPerformanceV2.DigitalPerformanceV2PluginController.html +2 -2
  17. package/docs/classes/DigitalPlayground.html +2 -2
  18. package/docs/classes/DigitalStateMachine.html +2 -2
  19. package/docs/classes/FireControl.html +2 -2
  20. package/docs/classes/FireScenePlayer.html +2 -2
  21. package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
  22. package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
  23. package/docs/classes/ModelMakerPluginInstance.html +2 -2
  24. package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +2 -2
  25. package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +2 -2
  26. package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +2 -2
  27. package/docs/classes/ModelRoomLabelController.html +2 -2
  28. package/docs/classes/MoveController.html +2 -2
  29. package/docs/classes/Object3DHelperController.html +2 -2
  30. package/docs/classes/PaintBrush.html +2 -2
  31. package/docs/classes/PanoMeasurePluginLine.html +2 -2
  32. package/docs/classes/PanoMeasurePluginModel.html +2 -2
  33. package/docs/classes/PanoMeasurePluginPoint.html +2 -2
  34. package/docs/classes/PanoMeasurePluginPolyline.html +2 -2
  35. package/docs/classes/PanoTagPluginController.html +2 -2
  36. package/docs/classes/Sculpt.html +2 -2
  37. package/docs/classes/Util.BetterTween.html +2 -2
  38. package/docs/classes/Util.FiveDomEvents.html +2 -2
  39. package/docs/classes/Util.FivePuppet.html +2 -2
  40. package/docs/classes/Util.Interval.html +2 -2
  41. package/docs/classes/Util.LegacyPointHelper.html +2 -2
  42. package/docs/classes/Util.LightTag.html +2 -2
  43. package/docs/classes/Util.LineSegments.html +2 -2
  44. package/docs/classes/Util.Magnifier.html +2 -2
  45. package/docs/classes/Util.Object3D.html +2 -2
  46. package/docs/classes/Util.PointDomHelper.html +2 -2
  47. package/docs/classes/Util.PointHelper.html +2 -2
  48. package/docs/classes/Util.PointSelector.html +2 -2
  49. package/docs/classes/Util.PointSelectorHelper.html +2 -2
  50. package/docs/classes/Util.Rectangle.html +2 -2
  51. package/docs/classes/Util.sculpt.BaseEditor.html +2 -2
  52. package/docs/classes/Util.sculpt.BoxMesh.html +2 -2
  53. package/docs/classes/Util.sculpt.BoxMeshEditor.html +2 -2
  54. package/docs/classes/Util.sculpt.CircleMesh.html +2 -2
  55. package/docs/classes/Util.sculpt.CircleMeshEditor.html +2 -2
  56. package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +2 -2
  57. package/docs/classes/Util.sculpt.CylinderMesh.html +2 -2
  58. package/docs/classes/Util.sculpt.CylinderMeshEditor.html +2 -2
  59. package/docs/classes/Util.sculpt.LineMesh.html +2 -2
  60. package/docs/classes/Util.sculpt.PointMesh.html +2 -2
  61. package/docs/classes/Util.sculpt.PolygonMesh.html +2 -2
  62. package/docs/classes/Util.sculpt.PrismMesh.html +2 -2
  63. package/docs/classes/Util.sculpt.PrismMeshEditor.html +2 -2
  64. package/docs/classes/Util.sculpt.RectangleMesh.html +2 -2
  65. package/docs/classes/Util.sculpt.RectangleMeshEditor.html +2 -2
  66. package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +2 -2
  67. package/docs/classes/WalkController.html +2 -2
  68. package/docs/enums/CameraMovementEffect.html +2 -2
  69. package/docs/enums/ContentType.html +2 -2
  70. package/docs/enums/DIRECTION.html +2 -2
  71. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +2 -2
  72. package/docs/enums/DimensionType.html +2 -2
  73. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +2 -2
  74. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +2 -2
  75. package/docs/enums/PaintBrushTypeEnum.html +2 -2
  76. package/docs/enums/PointType.html +2 -2
  77. package/docs/enums/Rotation.html +2 -2
  78. package/docs/functions/AreaMakerPlugin.html +1 -1
  79. package/docs/functions/CSS3DRenderPlugin.html +1 -1
  80. package/docs/functions/CameraMovementPlugin.html +2 -2
  81. package/docs/functions/CruisePlugin.html +1 -1
  82. package/docs/functions/CurrentPanoImagePlugin.html +1 -1
  83. package/docs/functions/DigitalPerformancePlugin.html +1 -1
  84. package/docs/functions/DigitalPerformanceV2.DigitalPerformanceV2Plugin.html +1 -1
  85. package/docs/functions/DigitalPerformanceV2.normalizeDigitalPerformanceName.html +2 -2
  86. package/docs/functions/FloorplanGuidePlugin.html +1 -1
  87. package/docs/functions/GuideLinePlugin.html +1 -1
  88. package/docs/functions/ItemLabelPlugin.html +1 -1
  89. package/docs/functions/MapviewFloorplanPlugin.html +1 -1
  90. package/docs/functions/MeasurePlugin.html +1 -1
  91. package/docs/functions/ModelChassisCompassPlugin.html +2 -2
  92. package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -2
  93. package/docs/functions/ModelFloorplanPlugin.html +1 -1
  94. package/docs/functions/ModelItemLabelPlugin.html +1 -1
  95. package/docs/functions/ModelMakerPlugin.html +1 -1
  96. package/docs/functions/ModelRoomLabelPlugin.html +1 -1
  97. package/docs/functions/ModelTVVideoPlugin.html +1 -1
  98. package/docs/functions/ModelViewPlugin.html +2 -2
  99. package/docs/functions/MovePlugin.html +1 -1
  100. package/docs/functions/Object3DHelperPlugin.html +1 -1
  101. package/docs/functions/PanoCompassPlugin.html +1 -1
  102. package/docs/functions/PanoCursorRaycasterPlugin.html +2 -2
  103. package/docs/functions/PanoDoorLabelPlugin.html +1 -1
  104. package/docs/functions/PanoFloorplanRadarPlugin.html +1 -1
  105. package/docs/functions/PanoMeasurePlugin.html +1 -1
  106. package/docs/functions/PanoRulerPlugin.html +2 -2
  107. package/docs/functions/PanoRulerProPlugin.html +2 -2
  108. package/docs/functions/PanoSpatialTagPlugin.html +2 -2
  109. package/docs/functions/PanoTagPlugin.html +1 -1
  110. package/docs/functions/PanoVideoPlugin.html +2 -2
  111. package/docs/functions/PipelinePlugin.html +1 -1
  112. package/docs/functions/SculptPlugin.html +2 -2
  113. package/docs/functions/SculptPluginForFive.html +2 -2
  114. package/docs/functions/TopviewFloorplanPlugin.html +1 -1
  115. package/docs/functions/Util.awaitNextFrame.html +1 -1
  116. package/docs/functions/Util.blink.html +2 -2
  117. package/docs/functions/Util.blinkWithPreset.html +2 -2
  118. package/docs/functions/Util.bounding.html +1 -1
  119. package/docs/functions/Util.boundingBox.html +1 -1
  120. package/docs/functions/Util.boundingSphere.html +1 -1
  121. package/docs/functions/Util.boxVertex.html +2 -2
  122. package/docs/functions/Util.boxVertexes.html +1 -1
  123. package/docs/functions/Util.checkFiveModelLoaded.html +2 -2
  124. package/docs/functions/Util.cleanup.html +2 -2
  125. package/docs/functions/Util.convexHull.html +2 -2
  126. package/docs/functions/Util.equal.html +2 -2
  127. package/docs/functions/Util.fiveModelIsLoaded.html +2 -2
  128. package/docs/functions/Util.generatePolygonGeometry.html +2 -2
  129. package/docs/functions/Util.getCoordsFromClient.html +1 -1
  130. package/docs/functions/Util.getCoordsFromElement.html +1 -1
  131. package/docs/functions/Util.getFrameTime.html +2 -2
  132. package/docs/functions/Util.getGeometryArea.html +1 -1
  133. package/docs/functions/Util.getGeometryInfo.html +1 -1
  134. package/docs/functions/Util.getIntersectFromRelativePosition.html +1 -1
  135. package/docs/functions/Util.getRaycasterFromFivePointer.html +1 -1
  136. package/docs/functions/Util.initialCSS3DRender.html +1 -1
  137. package/docs/functions/Util.inside.html +1 -1
  138. package/docs/functions/Util.isModelLike.html +1 -1
  139. package/docs/functions/Util.isNil.html +2 -2
  140. package/docs/functions/Util.isPanoramaLike.html +1 -1
  141. package/docs/functions/Util.lookObject.html +2 -2
  142. package/docs/functions/Util.lookPoint.html +2 -2
  143. package/docs/functions/Util.nextFrame.html +1 -1
  144. package/docs/functions/Util.notNil.html +2 -2
  145. package/docs/functions/Util.reblink.html +2 -2
  146. package/docs/functions/Util.replaceStaticPrefix.html +2 -2
  147. package/docs/functions/Util.requestAnimationFrameInterval.html +2 -2
  148. package/docs/functions/Util.sculpt.createBox.html +1 -1
  149. package/docs/functions/Util.sculpt.createCircle.html +1 -1
  150. package/docs/functions/Util.sculpt.createCylinder.html +1 -1
  151. package/docs/functions/Util.sculpt.createLine.html +2 -2
  152. package/docs/functions/Util.sculpt.createPoint.html +1 -1
  153. package/docs/functions/Util.sculpt.createPolygon.html +1 -1
  154. package/docs/functions/Util.sculpt.createPrism.html +1 -1
  155. package/docs/functions/Util.sculpt.createRectangle.html +2 -2
  156. package/docs/functions/Util.sculpt.transformUnit.html +2 -2
  157. package/docs/functions/Util.sculpt.transformUnitSquare.html +1 -1
  158. package/docs/functions/Util.tag.html +1 -1
  159. package/docs/functions/Util.triangleArea.html +2 -2
  160. package/docs/functions/Util.triangleCenter.html +2 -2
  161. package/docs/functions/Util.tweenProgress.html +1 -1
  162. package/docs/functions/Util.uuid.html +2 -2
  163. package/docs/functions/Util.waitFiveModelLoaded.html +2 -2
  164. package/docs/functions/Util.worldBounding.html +1 -1
  165. package/docs/functions/Util.worldBoundingBox.html +1 -1
  166. package/docs/functions/Util.worldBoundingSphere.html +1 -1
  167. package/docs/functions/classifyMovementTrack.html +1 -1
  168. package/docs/functions/createPolyline.html +2 -2
  169. package/docs/functions/getAreaBox3.html +2 -2
  170. package/docs/functions/getAreaVertices.html +2 -2
  171. package/docs/functions/getEffectivePointActionDuration.html +1 -1
  172. package/docs/functions/getEntryArea.html +2 -2
  173. package/docs/functions/getMovementActionDuration.html +1 -1
  174. package/docs/functions/hasMovementV2Signal.html +1 -1
  175. package/docs/functions/isConverterSafeMovementMatrix.html +1 -1
  176. package/docs/functions/pluginFlag.html +1 -1
  177. package/docs/functions/transformAnimationDetailToDigitalScript.html +2 -2
  178. package/docs/functions/transformScriptData.html +2 -2
  179. package/docs/functions/validatePolygon.html +1 -1
  180. package/docs/hierarchy.html +1 -1
  181. package/docs/index.html +9 -2
  182. package/docs/interfaces/AnimationScriptAdapterOptions.html +2 -2
  183. package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +2 -2
  184. package/docs/interfaces/AreaMakerPluginType.Config.html +2 -2
  185. package/docs/interfaces/AreaMakerPluginType.EventMap.html +2 -2
  186. package/docs/interfaces/AreaMakerPluginType.Params.html +2 -2
  187. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +2 -2
  188. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +2 -2
  189. package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +2 -2
  190. package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +2 -2
  191. package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +2 -2
  192. package/docs/interfaces/AreaMakerPluginType.State.html +2 -2
  193. package/docs/interfaces/BoxAnimationConfig.html +2 -2
  194. package/docs/interfaces/BoxPosition.html +2 -2
  195. package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
  196. package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
  197. package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
  198. package/docs/interfaces/ChapterLocation.html +2 -2
  199. package/docs/interfaces/ChapterTimeInfo.html +2 -2
  200. package/docs/interfaces/ContentTypeMapInterface.html +2 -2
  201. package/docs/interfaces/CruisePluginTypes.Config.html +2 -2
  202. package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +2 -2
  203. package/docs/interfaces/CruisePluginTypes.EventMap.html +2 -2
  204. package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +2 -2
  205. package/docs/interfaces/CruisePluginTypes.MoveAction.html +2 -2
  206. package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +2 -2
  207. package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +2 -2
  208. package/docs/interfaces/CruisePluginTypes.PluginData.html +2 -2
  209. package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -2
  210. package/docs/interfaces/CruisePluginTypes.PluginState.html +2 -2
  211. package/docs/interfaces/CurrentPanoImagePluginType.Config.html +2 -2
  212. package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +2 -2
  213. package/docs/interfaces/CurrentPanoImagePluginType.Params.html +2 -2
  214. package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +2 -2
  215. package/docs/interfaces/CurrentPanoImagePluginType.State.html +2 -2
  216. package/docs/interfaces/DigitalCameraKeyframe.html +2 -2
  217. package/docs/interfaces/DigitalCameraPlayer.html +2 -2
  218. package/docs/interfaces/DigitalCameraState.html +2 -2
  219. package/docs/interfaces/DigitalChapter.html +2 -2
  220. package/docs/interfaces/DigitalDataPlayer.html +2 -2
  221. package/docs/interfaces/DigitalDataState.html +2 -2
  222. package/docs/interfaces/DigitalEffectKeyframe.html +2 -2
  223. package/docs/interfaces/DigitalEffectState.html +2 -2
  224. package/docs/interfaces/DigitalItemKeyframe.html +2 -2
  225. package/docs/interfaces/DigitalItemState.html +2 -2
  226. package/docs/interfaces/DigitalModelKeyframe.html +2 -2
  227. package/docs/interfaces/DigitalModelPlayer.html +2 -2
  228. package/docs/interfaces/DigitalModelPlayerEffect.html +2 -2
  229. package/docs/interfaces/DigitalModelPlayerItem.html +2 -2
  230. package/docs/interfaces/DigitalModelState.html +2 -2
  231. package/docs/interfaces/DigitalPerformancePluginConfig.html +2 -2
  232. package/docs/interfaces/DigitalPerformanceV2.CameraState.html +2 -2
  233. package/docs/interfaces/DigitalPerformanceV2.DigitalCameraKeyframe.html +2 -2
  234. package/docs/interfaces/DigitalPerformanceV2.DigitalCameraPlayer.html +2 -2
  235. package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceNameplateBinding.html +2 -2
  236. package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceNameplateOptions.html +2 -2
  237. package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceNameplateRenderContext.html +2 -2
  238. package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceV2PluginConfig.html +2 -2
  239. package/docs/interfaces/DigitalPerformanceV2.GroupChapterTimeInfo.html +2 -2
  240. package/docs/interfaces/DigitalPerformanceV2.GroupProgress.html +2 -2
  241. package/docs/interfaces/DigitalPerformanceV2.V2Progress.html +2 -2
  242. package/docs/interfaces/DigitalScript.html +2 -2
  243. package/docs/interfaces/DigitalSubTitleKeyframe.html +2 -2
  244. package/docs/interfaces/DigitalSubTitlePlayer.html +2 -2
  245. package/docs/interfaces/DigitalSubTitleState.html +2 -2
  246. package/docs/interfaces/ExtendedAnimationConfig.html +2 -2
  247. package/docs/interfaces/FireArea.html +2 -2
  248. package/docs/interfaces/FireModel.html +2 -2
  249. package/docs/interfaces/FireSceneConfig.html +2 -2
  250. package/docs/interfaces/FireSequencePlayerOptions.html +2 -2
  251. package/docs/interfaces/FireSequenceStep.html +2 -2
  252. package/docs/interfaces/FireVector3.html +2 -2
  253. package/docs/interfaces/FloorplanBounding.html +2 -2
  254. package/docs/interfaces/FloorplanData.html +2 -2
  255. package/docs/interfaces/FloorplanEntrance.html +2 -2
  256. package/docs/interfaces/FloorplanExtraObject.html +2 -2
  257. package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
  258. package/docs/interfaces/FloorplanFloorData.html +2 -2
  259. package/docs/interfaces/FloorplanImagePosition.html +2 -2
  260. package/docs/interfaces/FloorplanObserver.html +2 -2
  261. package/docs/interfaces/FloorplanOutlineItem.html +2 -2
  262. package/docs/interfaces/FloorplanPosition.html +2 -2
  263. package/docs/interfaces/FloorplanRoomItem.html +2 -2
  264. package/docs/interfaces/FloorplanRoomLabelItem.html +2 -2
  265. package/docs/interfaces/FloorplanServerBounding.html +2 -2
  266. package/docs/interfaces/FloorplanServerComputedData.html +2 -2
  267. package/docs/interfaces/FloorplanServerData.html +2 -2
  268. package/docs/interfaces/FloorplanServerDoorItem.html +2 -2
  269. package/docs/interfaces/FloorplanServerDoorPosition.html +2 -2
  270. package/docs/interfaces/FloorplanServerEntrance.html +2 -2
  271. package/docs/interfaces/FloorplanServerFloorData.html +2 -2
  272. package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
  273. package/docs/interfaces/FloorplanServerObserver.html +2 -2
  274. package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
  275. package/docs/interfaces/FloorplanServerPosition.html +2 -2
  276. package/docs/interfaces/FloorplanServerRoomItem.html +2 -2
  277. package/docs/interfaces/FloorplanServerRoomLabelItem.html +2 -2
  278. package/docs/interfaces/FloorplanServerStyledFloorplan.html +2 -2
  279. package/docs/interfaces/FloorplanServerStyledImage.html +2 -2
  280. package/docs/interfaces/GlobalProgress.html +2 -2
  281. package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +2 -2
  282. package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +2 -2
  283. package/docs/interfaces/GuideLinePluginType.EventMap.html +2 -2
  284. package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +2 -2
  285. package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +2 -2
  286. package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -2
  287. package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +2 -2
  288. package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +2 -2
  289. package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +2 -2
  290. package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +2 -2
  291. package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +2 -2
  292. package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +2 -2
  293. package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -1
  294. package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -2
  295. package/docs/interfaces/GuideLinePluginType.PluginState.html +2 -2
  296. package/docs/interfaces/GuideLinePluginType.Route.html +2 -2
  297. package/docs/interfaces/HelperOffset.html +2 -2
  298. package/docs/interfaces/ImagePlaneGroup.html +2 -2
  299. package/docs/interfaces/ItemLabelPluginData.html +2 -2
  300. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +2 -2
  301. package/docs/interfaces/ItemLabelPluginParametersType.html +2 -2
  302. package/docs/interfaces/LegacyScriptTransformer.html +2 -2
  303. package/docs/interfaces/MinMax.html +2 -2
  304. package/docs/interfaces/ModelChassisCompassPluginData.html +2 -2
  305. package/docs/interfaces/ModelChassisCompassPluginExportType.html +2 -2
  306. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +2 -2
  307. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +2 -2
  308. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +2 -2
  309. package/docs/interfaces/ModelItemLabelPluginData.html +2 -2
  310. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +2 -2
  311. package/docs/interfaces/ModelItemLabelPluginParametersType.html +2 -2
  312. package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +2 -2
  313. package/docs/interfaces/ModelMakerPluginType.EventMap.html +2 -2
  314. package/docs/interfaces/ModelMakerPluginType.ModelMakerPluginConfig.html +2 -2
  315. package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +2 -2
  316. package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +2 -2
  317. package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +2 -2
  318. package/docs/interfaces/ModelMakerPluginType.ServerData.html +2 -2
  319. package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +2 -2
  320. package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +2 -2
  321. package/docs/interfaces/ModelMakerPluginType.State.html +2 -2
  322. package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +2 -2
  323. package/docs/interfaces/ModelRoomLabelPluginData.html +2 -2
  324. package/docs/interfaces/ModelTVVideoPluginData.html +2 -2
  325. package/docs/interfaces/ModelTVVideoPluginExportType.html +2 -2
  326. package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -2
  327. package/docs/interfaces/ModelViewPluginExportType.html +2 -2
  328. package/docs/interfaces/Object3DHelperState.html +2 -2
  329. package/docs/interfaces/ObjectHelperControllers.html +2 -2
  330. package/docs/interfaces/PaintBrushAction.html +2 -2
  331. package/docs/interfaces/PaintBrushConfigs.html +2 -2
  332. package/docs/interfaces/PaintBrushState.html +2 -2
  333. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +2 -2
  334. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
  335. package/docs/interfaces/PanoMeasureParameterType.html +2 -2
  336. package/docs/interfaces/PanoMeasurePluginLineJson.html +2 -2
  337. package/docs/interfaces/PanoMeasurePluginOpenParameter.html +2 -2
  338. package/docs/interfaces/PanoMeasurePluginPointJson.html +2 -2
  339. package/docs/interfaces/PanoMeasurePluginPolylineJson.html +2 -2
  340. package/docs/interfaces/PanoRulerPluginExportType.html +2 -2
  341. package/docs/interfaces/PanoRulerPluginOptions.html +2 -2
  342. package/docs/interfaces/PanoRulerPluginParameterType.html +2 -2
  343. package/docs/interfaces/PanoRulerProPluginExportType.html +2 -2
  344. package/docs/interfaces/PanoRulerProPluginOptions.html +2 -2
  345. package/docs/interfaces/PanoRulerProPluginParameterType.html +2 -2
  346. package/docs/interfaces/PanoRulerProPluginState.html +2 -2
  347. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
  348. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
  349. package/docs/interfaces/PanoSpatialTagPluginData.html +2 -2
  350. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +2 -2
  351. package/docs/interfaces/PanoSpatialTagPluginExportType.html +2 -2
  352. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +2 -2
  353. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +2 -2
  354. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +2 -2
  355. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +2 -2
  356. package/docs/interfaces/PanoVideoPluginType.LoadParams.html +2 -2
  357. package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +2 -2
  358. package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -2
  359. package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +2 -2
  360. package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -2
  361. package/docs/interfaces/PanoVideoPluginType.VideoItem.html +2 -2
  362. package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +2 -2
  363. package/docs/interfaces/PlaybackController.html +2 -2
  364. package/docs/interfaces/PlaybackManager.html +2 -2
  365. package/docs/interfaces/PlaybackSession.html +2 -2
  366. package/docs/interfaces/PluginEventMap.html +2 -2
  367. package/docs/interfaces/Point.html +2 -2
  368. package/docs/interfaces/ProgressBarEvents.html +2 -2
  369. package/docs/interfaces/Room.html +2 -2
  370. package/docs/interfaces/RoomInfo.html +2 -2
  371. package/docs/interfaces/RoomLabel.html +2 -2
  372. package/docs/interfaces/RoomRules.html +1 -1
  373. package/docs/interfaces/Rooms.html +1 -1
  374. package/docs/interfaces/Scissor.html +2 -2
  375. package/docs/interfaces/SculptConfig.html +2 -2
  376. package/docs/interfaces/State.html +2 -2
  377. package/docs/interfaces/StyledFloorplan.html +2 -2
  378. package/docs/interfaces/StyledFloorplanImage.html +2 -2
  379. package/docs/interfaces/StyledFloorplanRoomLabel.html +2 -2
  380. package/docs/interfaces/TagCacheInterface.html +2 -2
  381. package/docs/interfaces/TagConfig.html +2 -2
  382. package/docs/interfaces/TagGLTFObjectGroup.html +2 -2
  383. package/docs/interfaces/TagIconAnimationConfig.html +2 -2
  384. package/docs/interfaces/TagIconUrl.html +2 -2
  385. package/docs/interfaces/TagObjectGroup.html +2 -2
  386. package/docs/interfaces/TagState.html +2 -2
  387. package/docs/interfaces/TagStyle.html +2 -2
  388. package/docs/interfaces/Tags.html +2 -2
  389. package/docs/interfaces/TemporaryState.html +2 -2
  390. package/docs/interfaces/TraceManager.html +2 -2
  391. package/docs/interfaces/TracePoint.html +2 -2
  392. package/docs/interfaces/Util.AnimeInstance.html +2 -2
  393. package/docs/interfaces/Util.BlinkAnimeOptions.html +2 -2
  394. package/docs/interfaces/Util.EventHandlerConfig.html +2 -2
  395. package/docs/interfaces/Util.FiveDomEvent.html +2 -2
  396. package/docs/interfaces/Util.FiveDomEventMap.html +2 -2
  397. package/docs/interfaces/Util.LegacyMouseGroupParameter.html +2 -2
  398. package/docs/interfaces/Util.MagnifierParameter.html +2 -2
  399. package/docs/interfaces/Util.MouseGroupParameter.html +2 -2
  400. package/docs/interfaces/Util.ObjectInitialState.html +2 -2
  401. package/docs/interfaces/Util.PointIntersection.html +2 -2
  402. package/docs/interfaces/Util.PointSelectorHelperConfig.html +2 -2
  403. package/docs/interfaces/Util.ReBlinkAnimeOptions.html +2 -2
  404. package/docs/modules/AreaMakerPluginType.html +2 -2
  405. package/docs/modules/CruisePluginTypes.html +2 -2
  406. package/docs/modules/CurrentPanoImagePluginType.html +2 -2
  407. package/docs/modules/DigitalPerformanceV2.html +2 -2
  408. package/docs/modules/GuideLineItem.html +2 -2
  409. package/docs/modules/GuideLineModeItem.html +2 -2
  410. package/docs/modules/GuideLinePluginType.html +2 -2
  411. package/docs/modules/ModelMakerPluginType.html +2 -2
  412. package/docs/modules/PanoVideoPluginType.html +2 -2
  413. package/docs/modules/SculptData.html +2 -2
  414. package/docs/modules/SculptType.html +2 -2
  415. package/docs/modules/Util.html +2 -2
  416. package/docs/modules/Util.sculpt.html +2 -2
  417. package/docs/modules.html +3 -2
  418. package/docs/types/AddObject3DHelperConfig.html +2 -2
  419. package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +2 -2
  420. package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -1
  421. package/docs/types/AreaMakerPluginType.PluginData.html +2 -2
  422. package/docs/types/AreaMakerPluginType.ServerData.html +2 -2
  423. package/docs/types/ArrayPosition.html +1 -1
  424. package/docs/types/AudioAppearance.html +1 -1
  425. package/docs/types/BoxTag.html +2 -2
  426. package/docs/types/CSS3DRenderExportType.html +1 -1
  427. package/docs/types/CSS3DRenderPluginExportType.html +1 -1
  428. package/docs/types/CSS3DRenderPluginParameterType.html +1 -1
  429. package/docs/types/CanonicalMovementTrackPlan.html +1 -1
  430. package/docs/types/ClassFunctionParameters.html +1 -1
  431. package/docs/types/Color.html +1 -1
  432. package/docs/types/ContentTypeConfigKey.html +1 -1
  433. package/docs/types/ContentTypeConfigKeySplit.html +1 -1
  434. package/docs/types/ContentTypeMap.html +1 -1
  435. package/docs/types/Create3DDomContainerReturnType.html +1 -1
  436. package/docs/types/Create3DElementReturnType.html +1 -1
  437. package/docs/types/CruisePluginExportType.html +1 -1
  438. package/docs/types/CruisePluginTypes.CruiseData.html +2 -2
  439. package/docs/types/CruisePluginTypes.MoveEffect.html +1 -1
  440. package/docs/types/CurrentPanoImagePluginExportType.html +1 -1
  441. package/docs/types/DeprecatedMediaPlaneProperty.html +2 -2
  442. package/docs/types/DeprecatedTagProperty.html +2 -2
  443. package/docs/types/DigitalPerformancePluginExportInterface.html +1 -1
  444. package/docs/types/DigitalPerformancePluginParamsInterface.html +1 -1
  445. package/docs/types/DigitalPerformanceV2.CameraCoordinateSpace.html +2 -2
  446. package/docs/types/DigitalPerformanceV2.CameraTransition.html +2 -2
  447. package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginExportInterface.html +1 -1
  448. package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginParamsInterface.html +1 -1
  449. package/docs/types/DigitalPerformanceV2.V2ProgressListener.html +1 -1
  450. package/docs/types/Direction-1.html +1 -1
  451. package/docs/types/Direction4.html +1 -1
  452. package/docs/types/ElementRenderer.html +2 -2
  453. package/docs/types/FireModelType.html +2 -2
  454. package/docs/types/FireSequenceKind.html +2 -2
  455. package/docs/types/FireSpreadBounds.html +2 -2
  456. package/docs/types/FloorplanAffineTransform.html +1 -1
  457. package/docs/types/FloorplanGuidePluginParameterType.html +1 -1
  458. package/docs/types/FloorplanGuidePluginReturnType.html +1 -1
  459. package/docs/types/FloorplanRuleLabels.html +2 -2
  460. package/docs/types/FloorplanServerAffineTransform.html +1 -1
  461. package/docs/types/FloorplanServerRuleLabels.html +1 -1
  462. package/docs/types/GuideLinePluginExportType.html +1 -1
  463. package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -2
  464. package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -1
  465. package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -1
  466. package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -2
  467. package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -2
  468. package/docs/types/GuideLinePluginType.PathItem.html +2 -2
  469. package/docs/types/GuideLinePluginType.PluginData.html +2 -2
  470. package/docs/types/GuideLinePluginType.RouteConfig.html +2 -2
  471. package/docs/types/HelperEventMap.html +1 -1
  472. package/docs/types/InternalHelperEventMap.html +1 -1
  473. package/docs/types/KeyframeType.html +1 -1
  474. package/docs/types/MapviewFloorplanPluginParameterType.html +1 -1
  475. package/docs/types/MapviewFloorplanPluginReturnType.html +1 -1
  476. package/docs/types/MaskPosition.html +2 -2
  477. package/docs/types/MaskTag.html +2 -2
  478. package/docs/types/MeasureEndReason.html +1 -1
  479. package/docs/types/MeasureInteractionState.html +2 -0
  480. package/docs/types/MeasurePluginConfig.html +2 -2
  481. package/docs/types/MeasurePluginEventMap.html +1 -1
  482. package/docs/types/MediaData.html +2 -2
  483. package/docs/types/MediaOperations.html +1 -1
  484. package/docs/types/MediaStore.html +1 -1
  485. package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -1
  486. package/docs/types/ModelFloorplanPluginParameterType.html +1 -1
  487. package/docs/types/ModelFloorplanPluginReturnType.html +1 -1
  488. package/docs/types/ModelId.html +1 -1
  489. package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -1
  490. package/docs/types/ModelMakerPluginType.ItemType.html +2 -2
  491. package/docs/types/ModelMakerPluginType.MarkerItem.html +1 -1
  492. package/docs/types/ModelMakerPluginType.ServerItem.html +2 -2
  493. package/docs/types/ModelMakerPluginType.TagOcclusionScope.html +2 -2
  494. package/docs/types/ModelMakerPluginType.TagOcclusionScopeConfig.html +2 -2
  495. package/docs/types/ModelRoomLabelPluginParameters.html +1 -1
  496. package/docs/types/ModelRoomLabelPluginReturnType.html +1 -1
  497. package/docs/types/MoveArgs.html +2 -2
  498. package/docs/types/MoveOpts.html +2 -2
  499. package/docs/types/MovementConfig.html +1 -1
  500. package/docs/types/MovementPosition.html +1 -1
  501. package/docs/types/MovementTrackClassification.html +1 -1
  502. package/docs/types/MovementTrackConflictReason.html +1 -1
  503. package/docs/types/MovementTrackProjection.html +1 -1
  504. package/docs/types/Object3DHelperEventMap.html +1 -1
  505. package/docs/types/ObjectFit.html +1 -1
  506. package/docs/types/PaintBrushEventMap.html +1 -1
  507. package/docs/types/PanoCompassPluginData.html +1 -1
  508. package/docs/types/PanoCompassPluginExportType.html +1 -1
  509. package/docs/types/PanoCompassPluginParameterType.html +1 -1
  510. package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -1
  511. package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -1
  512. package/docs/types/PanoIndex.html +1 -1
  513. package/docs/types/PanoMeasurePluginEvent.html +1 -1
  514. package/docs/types/PanoMeasureReturnType.html +1 -1
  515. package/docs/types/PanoSpatialTagPluginId.html +1 -1
  516. package/docs/types/PanoTagPluginExportInterface.html +1 -1
  517. package/docs/types/PanoTagPluginParamsInterface.html +1 -1
  518. package/docs/types/PanoVideoPluginParameterType.html +1 -1
  519. package/docs/types/PanoVideoPluginReturnType.html +1 -1
  520. package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -2
  521. package/docs/types/PipelinePluginParameterType.html +1 -1
  522. package/docs/types/PipelinePluginReturnType.html +1 -1
  523. package/docs/types/PlaneTag.html +2 -2
  524. package/docs/types/Point2DTag.html +2 -2
  525. package/docs/types/Point3DTag.html +2 -2
  526. package/docs/types/PointAction.html +1 -1
  527. package/docs/types/PointTagInstance.html +1 -1
  528. package/docs/types/PolygonPosition.html +2 -2
  529. package/docs/types/PolygonTag.html +2 -2
  530. package/docs/types/Position.html +1 -1
  531. package/docs/types/PositionFrom.html +1 -1
  532. package/docs/types/ProgressListener.html +1 -1
  533. package/docs/types/RotateArgs.html +2 -2
  534. package/docs/types/RotateOpts.html +2 -2
  535. package/docs/types/RuleLabelsKey.html +1 -1
  536. package/docs/types/RuleLabelsValue.html +1 -1
  537. package/docs/types/ScaleCallback.html +1 -1
  538. package/docs/types/ScalePosition.html +2 -2
  539. package/docs/types/SculptData.BoxData.html +1 -1
  540. package/docs/types/SculptData.CircleData.html +1 -1
  541. package/docs/types/SculptData.CylinderData.html +1 -1
  542. package/docs/types/SculptData.PointData.html +1 -1
  543. package/docs/types/SculptData.PolygonData.html +1 -1
  544. package/docs/types/SculptData.PolylineData.html +1 -1
  545. package/docs/types/SculptData.PrismData.html +1 -1
  546. package/docs/types/SculptData.RectangleData.html +1 -1
  547. package/docs/types/SculptType.Theme.html +2 -2
  548. package/docs/types/StateType.html +1 -1
  549. package/docs/types/StickType.html +1 -1
  550. package/docs/types/Tag.html +2 -2
  551. package/docs/types/Tag2D.html +2 -2
  552. package/docs/types/Tag3D.html +2 -2
  553. package/docs/types/TagClickParams.html +1 -1
  554. package/docs/types/TagConfigByKey.html +1 -1
  555. package/docs/types/TagContentType.html +1 -1
  556. package/docs/types/TagContentTypeMapping.html +1 -1
  557. package/docs/types/TagDimensionType.html +1 -1
  558. package/docs/types/TagElement.html +2 -2
  559. package/docs/types/TagEvents.html +1 -1
  560. package/docs/types/TagGLTFObject.html +1 -1
  561. package/docs/types/TagHooks.html +1 -1
  562. package/docs/types/TagId.html +1 -1
  563. package/docs/types/TagInstance.html +1 -1
  564. package/docs/types/TagPlacement.html +2 -2
  565. package/docs/types/TagPointType.html +2 -2
  566. package/docs/types/TagRendererMap.html +1 -1
  567. package/docs/types/TopviewFloorplanPluginParameterType.html +1 -1
  568. package/docs/types/TopviewFloorplanPluginReturnType.html +1 -1
  569. package/docs/types/TrackPoint.html +1 -1
  570. package/docs/types/Util.ActionIfNoIntersection.html +1 -1
  571. package/docs/types/Util.AdherePoint.html +2 -2
  572. package/docs/types/Util.PointSelectorConfig.html +1 -1
  573. package/docs/types/Util.SupportedTarget.html +2 -2
  574. package/docs/types/Util.Target.html +2 -2
  575. package/docs/types/Util.ThreeObject.html +2 -2
  576. package/docs/types/WorkCode.html +1 -1
  577. package/docs/variables/DigitalPerformanceV2.DEFAULT_DIGITAL_PERFORMANCE_NAME_MAX_LENGTH.html +1 -1
  578. package/docs/variables/FIRE_ACTION_DURATION_MS.html +2 -2
  579. package/docs/variables/FIRE_SPREAD_SPEED.html +2 -2
  580. package/docs/variables/FLOOR_TYPE_MAP.html +2 -2
  581. package/docs/variables/MODEL_SCALE_RANGE.html +2 -2
  582. package/docs/variables/MOVEMENT_OCCURRENCE_EPSILON.html +1 -1
  583. package/docs/variables/MOVEMENT_POSITION_EPSILON.html +1 -1
  584. package/docs/variables/MOVEMENT_SCHEMA_VERSION.html +1 -1
  585. package/docs/variables/PLUGIN.html +1 -1
  586. package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -2
  587. package/docs/variables/ROOM_TYPE_MAP.html +2 -2
  588. package/docs/variables/Util.ANIME_PRESETS.html +2 -2
  589. package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +2 -2
  590. package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +2 -2
  591. package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +2 -2
  592. package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +2 -2
  593. package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +2 -2
  594. package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +2 -2
  595. package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +2 -2
  596. package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +2 -2
  597. package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +2 -2
  598. package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +2 -2
  599. package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +2 -2
  600. package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +2 -2
  601. package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +2 -2
  602. package/docs/variables/defaultGlobalConfig.html +1 -1
  603. package/docs/variables/itemLabelPluginServerParams.html +1 -1
  604. package/docs/variables/modelItemLabelPluginServerParams.html +1 -1
  605. package/docs/variables/modelRoomLabelPluginServerParams.html +1 -1
  606. package/libs/MeasurePlugin/Controller.d.ts +12 -0
  607. package/libs/MeasurePlugin/Controller.js +205 -190
  608. package/libs/MeasurePlugin/index.d.ts +1 -1
  609. package/libs/base/BasePlugin.js +1 -1
  610. package/libs/shared-utils/logger.js +1 -1
  611. package/package.json +1 -1
@@ -1,16 +1,16 @@
1
1
  var H = Object.defineProperty, B = Object.defineProperties;
2
2
  var V = Object.getOwnPropertyDescriptors;
3
- var _ = Object.getOwnPropertySymbols;
3
+ var D = Object.getOwnPropertySymbols;
4
4
  var U = Object.prototype.hasOwnProperty, T = Object.prototype.propertyIsEnumerable;
5
- var D = (m, f, e) => f in m ? H(m, f, { enumerable: !0, configurable: !0, writable: !0, value: e }) : m[f] = e, p = (m, f) => {
5
+ var I = (m, f, e) => f in m ? H(m, f, { enumerable: !0, configurable: !0, writable: !0, value: e }) : m[f] = e, d = (m, f) => {
6
6
  for (var e in f || (f = {}))
7
- U.call(f, e) && D(m, e, f[e]);
8
- if (_)
9
- for (var e of _(f))
10
- T.call(f, e) && D(m, e, f[e]);
7
+ U.call(f, e) && I(m, e, f[e]);
8
+ if (D)
9
+ for (var e of D(f))
10
+ T.call(f, e) && I(m, e, f[e]);
11
11
  return m;
12
12
  }, E = (m, f) => B(m, V(f));
13
- var s = (m, f, e) => (D(m, typeof f != "symbol" ? f + "" : f, e), e);
13
+ var o = (m, f, e) => (I(m, typeof f != "symbol" ? f + "" : f, e), e);
14
14
  import * as u from "three";
15
15
  import "../shared-utils/tag.js";
16
16
  import "../vendor/hammerjs/hammer.js";
@@ -19,7 +19,7 @@ import { PointSelector as O } from "../shared-utils/three/PointSelector/index.js
19
19
  import { getObjectVisible as A } from "../shared-utils/three/getObjectVisible.js";
20
20
  import "../shared-utils/three/CSS3DRenderer/index.js";
21
21
  import "../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
22
- import { LineMesh as k } from "../Sculpt/Meshes/Line.js";
22
+ import { LineMesh as _ } from "../Sculpt/Meshes/Line.js";
23
23
  import "../shared-utils/three/core/Sphere.js";
24
24
  import "../shared-utils/three/blink.js";
25
25
  import "../vendor/@tweenjs/tween/dist/tween.esm.js.js";
@@ -27,7 +27,7 @@ import "../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
27
27
  import "../vendor/earcut/src/earcut.js";
28
28
  import { FiveDomEvents as G } from "../shared-utils/five/FiveDomEvents.js";
29
29
  import "../shared-utils/five/FivePuppet.js";
30
- import { MeasureMesh as I } from "./utils/MeasureMesh.js";
30
+ import { MeasureMesh as k } from "./utils/MeasureMesh.js";
31
31
  import { PointMesh as x } from "../Sculpt/Meshes/Point.js";
32
32
  import { LineWithDotsMesh as N } from "../Sculpt/Meshes/LineWithDots.js";
33
33
  import { hotkeys as y } from "../vendor/hotkeys-js/dist/hotkeys.esm.js";
@@ -100,31 +100,36 @@ import "../Sculpt/utils/Modules/DeleteIconSVG.js";
100
100
  class Ct extends z {
101
101
  constructor(e, t) {
102
102
  super();
103
- s(this, "name", "MeasurePlugin");
104
- s(this, "currentMeasureMesh");
105
- s(this, "five");
106
- s(this, "group");
103
+ o(this, "name", "MeasurePlugin");
104
+ o(this, "currentMeasureMesh");
105
+ o(this, "five");
106
+ o(this, "group");
107
107
  // 当前测量结束的原因
108
- s(this, "currentEndReason", "enter");
108
+ o(this, "currentEndReason", "enter");
109
109
  // Repositioning state
110
- s(this, "repositioningState", null);
110
+ o(this, "repositioningState", null);
111
111
  // Long press visual feedback
112
- s(this, "longPressIndicator", null);
113
- s(this, "cleanupPendingPress");
114
- s(this, "cleanupRepositioningListeners");
115
- s(this, "endpointPointerElement");
116
- s(this, "endpointPressHandlers", /* @__PURE__ */ new WeakMap());
117
- s(this, "_pointSelector");
118
- s(this, "_fiveDomEvents");
119
- s(this, "_cursor");
120
- s(this, "_config");
121
- s(this, "lineStyle", {
112
+ o(this, "longPressIndicator", null);
113
+ o(this, "cleanupPendingPress");
114
+ o(this, "cleanupRepositioningListeners");
115
+ o(this, "endpointPointerElement");
116
+ o(this, "endpointPressHandlers", /* @__PURE__ */ new WeakMap());
117
+ o(this, "interactionPhase", "idle");
118
+ o(this, "interactionResult");
119
+ o(this, "publishInteraction", (e, t) => {
120
+ this.interactionPhase = e, this.interactionResult = t, this.emit("interactionChange", this.interactionState);
121
+ });
122
+ o(this, "_pointSelector");
123
+ o(this, "_fiveDomEvents");
124
+ o(this, "_cursor");
125
+ o(this, "_config");
126
+ o(this, "lineStyle", {
122
127
  lengthEnable: !0,
123
128
  occlusionVisibility: !0,
124
129
  lengthUnit: "m",
125
130
  precision: 2
126
131
  });
127
- s(this, "polygonStyle", {
132
+ o(this, "polygonStyle", {
128
133
  lengthEnable: !0,
129
134
  occlusionVisibility: !0,
130
135
  opacity: 0.2,
@@ -133,161 +138,161 @@ class Ct extends z {
133
138
  /**
134
139
  * @description Initialize event listeners for all existing meshes
135
140
  */
136
- s(this, "initEventListeners", () => {
141
+ o(this, "initEventListeners", () => {
137
142
  this.group.children.forEach(this.addMeshEventListeners);
138
143
  });
139
144
  /**
140
145
  * @description 开始测量
141
146
  */
142
- s(this, "measure", () => {
143
- var w;
144
- (w = this.cleanupPendingPress) == null || w.call(this), this.repositioningState && this.cancelRepositioning(), this.listener.addMeasureListener(), y.unbind("delete, backspace"), this.group.children.forEach((c) => c.unselect()), this.cursor.removeDeleteButton();
145
- const e = new I({
147
+ o(this, "measure", () => {
148
+ var C;
149
+ (C = this.cleanupPendingPress) == null || C.call(this), this.repositioningState && this.cancelRepositioning(), this.listener.addMeasureListener(), y.unbind("delete, backspace"), this.group.children.forEach((a) => a.unselect()), this.cursor.removeDeleteButton();
150
+ const e = new k({
146
151
  lineStyle: this.lineStyle,
147
152
  polygonStyle: this.polygonStyle
148
153
  });
149
154
  this.currentMeasureMesh = e, e.line.setStyle({ cssStyle: "pointer-events: none;" }), this.pointSelector.actionIfNoIntersection = "disable", this.updateSelectAdsorbedHelper();
150
- const t = new x({ occlusionMode: "depthTest", occlusionVisibility: !0 }), n = new N(E(p({}, this.lineStyle), { dashed: !0, cssStyle: "pointer-events: none;" })), i = new W(this.polygonStyle), r = new k(E(p({}, this.lineStyle), {
155
+ const t = new x({ occlusionMode: "depthTest", occlusionVisibility: !0 }), n = new N(E(d({}, this.lineStyle), { dashed: !0, cssStyle: "pointer-events: none;" })), i = new W(this.polygonStyle), r = new _(E(d({}, this.lineStyle), {
151
156
  lineOpacity: 0.5,
152
157
  lineColor: 3407837,
153
158
  dashed: !0,
154
159
  cssStyle: "pointer-events: none; opacity: 0.5;"
155
- })), a = new k(E(p({}, this.lineStyle), {
160
+ })), c = new _(E(d({}, this.lineStyle), {
156
161
  lineOpacity: 0.5,
157
162
  lineColor: 3407837,
158
163
  dashed: !0,
159
164
  cssStyle: "pointer-events: none; opacity: 0.5;"
160
165
  })), l = new x({ occlusionMode: "depthTest", occlusionVisibility: !0, color: 3407837, opacity: 0.5 });
161
- let o = null, h = !1, v = !1;
162
- const g = (c) => {
163
- c.key === "Shift" && (v = !0);
164
- }, M = (c) => {
165
- c.key === "Shift" && (v = !1);
166
+ let s = null, p = !1, v = !1;
167
+ const g = (a) => {
168
+ a.key === "Shift" && (v = !0);
169
+ }, M = (a) => {
170
+ a.key === "Shift" && (v = !1);
166
171
  }, P = () => {
167
- t.removeFromParent(), n.removeFromParent(), i.removeFromParent(), r.removeFromParent(), a.removeFromParent(), l.removeFromParent();
172
+ t.removeFromParent(), n.removeFromParent(), i.removeFromParent(), r.removeFromParent(), c.removeFromParent(), l.removeFromParent();
168
173
  };
169
174
  this.group.add(e), document.addEventListener("keydown", g), document.addEventListener("keyup", M);
170
- const L = (c) => {
171
- if (!c) {
172
- P(), o = null, h = !1;
175
+ const L = (a) => {
176
+ if (!a) {
177
+ P(), s = null, p = !1;
173
178
  return;
174
179
  }
175
- if (e.points.length === 0 && (this.pointSelector.actionIfNoIntersection = "disable", this.group.addIfNotExists(t), t.position.copy(c.point), o = null, h = !1), e.points.length >= 1)
176
- if (this.pointSelector.actionIfNoIntersection = "virtualPoint", t.removeFromParent(), this.group.addIfNotExists(n), n.setStyle(E(p({}, this.lineStyle), { dashed: !0, cssStyle: "pointer-events: none;" })), n.setPoints([e.points.at(-1), c.point]), c.isAdsorbed)
177
- r.removeFromParent(), a.removeFromParent(), l.removeFromParent(), o = null, h = !1;
180
+ if (e.points.length === 0 && (this.pointSelector.actionIfNoIntersection = "disable", this.group.addIfNotExists(t), t.position.copy(a.point), s = null, p = !1), e.points.length >= 1)
181
+ if (this.pointSelector.actionIfNoIntersection = "virtualPoint", t.removeFromParent(), this.group.addIfNotExists(n), n.setStyle(E(d({}, this.lineStyle), { dashed: !0, cssStyle: "pointer-events: none;" })), n.setPoints([e.points.at(-1), a.point]), a.isAdsorbed)
182
+ r.removeFromParent(), c.removeFromParent(), l.removeFromParent(), s = null, p = !1;
178
183
  else {
179
- const d = e.points.at(-1);
180
- if (Math.abs(c.point.y - d.y) > 0.2) {
181
- const S = new u.Vector3(c.point.x, d.y, c.point.z);
182
- r.setStyle(E(p({}, this.lineStyle), {
184
+ const h = e.points.at(-1);
185
+ if (Math.abs(a.point.y - h.y) > 0.2) {
186
+ const S = new u.Vector3(a.point.x, h.y, a.point.z);
187
+ r.setStyle(E(d({}, this.lineStyle), {
183
188
  lineOpacity: 0.5,
184
189
  lineColor: 3407837,
185
190
  dashed: !0,
186
191
  cssStyle: "pointer-events: none; opacity: 0.5;"
187
- })), a.setStyle(E(p({}, this.lineStyle), {
192
+ })), c.setStyle(E(d({}, this.lineStyle), {
188
193
  lineOpacity: 0.5,
189
194
  lineColor: 3407837,
190
195
  dashed: !0,
191
196
  cssStyle: "pointer-events: none; opacity: 0.5;"
192
- })), r.setPoints([d, S]), a.setPoints([S, c.point]), l.position.copy(S), o = S.clone(), h = !0;
197
+ })), r.setPoints([h, S]), c.setPoints([S, a.point]), l.position.copy(S), s = S.clone(), p = !0;
193
198
  } else {
194
199
  let S = new u.Vector3();
195
- Math.abs(c.point.x - d.x) < Math.abs(c.point.z - d.z) ? S = new u.Vector3(c.point.x, d.y, d.z) : S = new u.Vector3(d.x, d.y, c.point.z), r.setStyle(E(p({}, this.lineStyle), {
200
+ Math.abs(a.point.x - h.x) < Math.abs(a.point.z - h.z) ? S = new u.Vector3(a.point.x, h.y, h.z) : S = new u.Vector3(h.x, h.y, a.point.z), r.setStyle(E(d({}, this.lineStyle), {
196
201
  lineOpacity: 0.5,
197
202
  lineColor: 3407837,
198
203
  dashed: !0,
199
204
  cssStyle: "pointer-events: none; opacity: 0.5;"
200
- })), a.setStyle(E(p({}, this.lineStyle), {
205
+ })), c.setStyle(E(d({}, this.lineStyle), {
201
206
  lineOpacity: 0.5,
202
207
  lineColor: 3407837,
203
208
  dashed: !0,
204
209
  cssStyle: "pointer-events: none; opacity: 0.5;"
205
- })), r.setPoints([d, S]), a.setPoints([S, c.point]), l.position.copy(S), o = S.clone(), h = !0;
210
+ })), r.setPoints([h, S]), c.setPoints([S, a.point]), l.position.copy(S), s = S.clone(), p = !0;
206
211
  }
207
- this.group.addIfNotExists(r, a, l);
212
+ this.group.addIfNotExists(r, c, l);
208
213
  }
209
214
  if (e.points.length >= 2) {
210
- const d = [...e.points, c.point];
211
- X(d) ? (i.setStyle(p({}, this.polygonStyle)), i.setPoints(d), this.group.addIfNotExists(i)) : i.removeFromParent();
215
+ const h = [...e.points, a.point];
216
+ X(h) ? (i.setStyle(d({}, this.polygonStyle)), i.setPoints(h), this.group.addIfNotExists(i)) : i.removeFromParent();
212
217
  }
213
- }, b = (c) => {
214
- if (!c)
218
+ }, b = (a) => {
219
+ if (!a)
215
220
  return;
216
- let d = c.point;
217
- v && h && o && e.points.length >= 1 && (d = o.clone()), P(), e.setPoints([...e.points, d]), this.updateSelectAdsorbedHelper(), e.isPolygon && (this.currentEndReason = "polygon", this.pointSelector.disable());
221
+ let h = a.point;
222
+ v && p && s && e.points.length >= 1 && (h = s.clone()), P(), e.setPoints([...e.points, h]), this.updateSelectAdsorbedHelper(), this.publishInteraction("drawing"), e.isPolygon && (this.currentEndReason = "polygon", this.pointSelector.disable());
218
223
  }, R = () => {
219
- var c, d;
220
- e == null || e.setPoints(e.points.slice(0, -1)), P(), (d = (c = this.pointSelector.pointSelectorHelper) == null ? void 0 : c.magnifier) == null || d.render(), this.updateSelectAdsorbedHelper(), this.five.needsRender = !0;
221
- }, C = () => {
222
- this.pointSelector.off("intersectionUpdate", L), this.pointSelector.off("select", b), this.pointSelector.off("disable", C), this.off("undo", R), document.removeEventListener("keydown", g), document.removeEventListener("keyup", M), e.line.setStyle({ cssStyle: "pointer-events: auto;" }), P();
223
- let c = this.currentEndReason, d = !0;
224
- c === "escape" ? d = !1 : e.points.length < 2 ? (e.removeFromParent(), c = "points_insufficient", d = !1) : this.addMeshEventListeners(e), e.__five_pano_index = this.five.panoIndex, this.currentMeasureMesh = null, this.listener.removeMeasureListener(), this.emit("measureEnd", c, d ? e.points : []), this.currentEndReason = "enter";
224
+ var a, h;
225
+ e == null || e.setPoints(e.points.slice(0, -1)), P(), (h = (a = this.pointSelector.pointSelectorHelper) == null ? void 0 : a.magnifier) == null || h.render(), this.updateSelectAdsorbedHelper(), this.publishInteraction("drawing"), this.five.needsRender = !0;
226
+ }, w = () => {
227
+ this.pointSelector.off("intersectionUpdate", L), this.pointSelector.off("select", b), this.pointSelector.off("disable", w), this.off("undo", R), document.removeEventListener("keydown", g), document.removeEventListener("keyup", M), e.line.setStyle({ cssStyle: "pointer-events: auto;" }), P();
228
+ let a = this.currentEndReason, h = !0;
229
+ a === "escape" ? h = !1 : e.points.length < 2 ? (e.removeFromParent(), a = "points_insufficient", h = !1) : this.addMeshEventListeners(e), e.__five_pano_index = this.five.panoIndex, this.currentMeasureMesh = null, this.publishInteraction("idle"), this.listener.removeMeasureListener(), this.emit("measureEnd", a, h ? e.points : []), this.currentEndReason = "enter";
225
230
  };
226
- this.on("undo", R), this.pointSelector.on("intersectionUpdate", L), this.pointSelector.on("select", b), this.pointSelector.on("disable", C), this.pointSelector.enable();
231
+ this.on("undo", R), this.pointSelector.on("intersectionUpdate", L), this.pointSelector.on("select", b), this.pointSelector.on("disable", w), this.pointSelector.enable(), this.publishInteraction("drawing");
227
232
  });
228
233
  /**
229
234
  * @description 结束测量
230
235
  */
231
- s(this, "endMeasure", () => {
236
+ o(this, "endMeasure", () => {
232
237
  this.currentEndReason = "external", this.pointSelector.disable();
233
238
  });
234
239
  /**
235
240
  * @description 通过Enter键结束测量
236
241
  */
237
- s(this, "endMeasureByEnter", () => {
242
+ o(this, "endMeasureByEnter", () => {
238
243
  this.currentEndReason = "enter", this.endMeasure();
239
244
  });
240
245
  /**
241
246
  * @description 通过模式改变结束测量
242
247
  */
243
- s(this, "endMeasureByModeChange", () => {
248
+ o(this, "endMeasureByModeChange", () => {
244
249
  this.currentEndReason = "mode_change", this.endMeasure();
245
250
  });
246
251
  /**
247
252
  * @description 通过全景移动结束测量
248
253
  */
249
- s(this, "endMeasureByPanoMove", () => {
254
+ o(this, "endMeasureByPanoMove", () => {
250
255
  this.currentEndReason = "pano_move", this.endMeasure();
251
256
  });
252
257
  /**
253
258
  * @description 通过楼层改变结束测量
254
259
  */
255
- s(this, "endMeasureByFloorChange", () => {
260
+ o(this, "endMeasureByFloorChange", () => {
256
261
  this.currentEndReason = "floor_change", this.endMeasure();
257
262
  });
258
263
  /**
259
264
  * Enable or disable the display of length measurements
260
265
  * @param enable - Whether to display length measurements
261
266
  */
262
- s(this, "setLengthEnable", (e) => {
267
+ o(this, "setLengthEnable", (e) => {
263
268
  this.lineStyle.lengthEnable = e, this.polygonStyle.lengthEnable = e, this.group.children.forEach((t) => {
264
269
  t.changeConfig({
265
- lineStyle: p({}, this.lineStyle),
266
- polygonStyle: p({}, this.polygonStyle)
270
+ lineStyle: d({}, this.lineStyle),
271
+ polygonStyle: d({}, this.polygonStyle)
267
272
  }), this.addMeshEventListeners(t);
268
273
  }), this.currentMeasureMesh && this.currentMeasureMesh.changeConfig({
269
- lineStyle: p({}, this.lineStyle),
270
- polygonStyle: p({}, this.polygonStyle)
274
+ lineStyle: d({}, this.lineStyle),
275
+ polygonStyle: d({}, this.polygonStyle)
271
276
  }), this.five.needsRender = !0;
272
277
  });
273
278
  /**
274
279
  * Switch the measurement unit without resetting the plugin
275
280
  * @param unit - The new unit to use ('m' for metric, 'ft' for imperial, or 'mm' for millimeters)
276
281
  */
277
- s(this, "setUnit", (e) => {
282
+ o(this, "setUnit", (e) => {
278
283
  if (this._config && (this._config.unit = e), this.lineStyle.lengthUnit = e, this.polygonStyle.lengthUnit = e, this.group.children.forEach((t) => {
279
284
  try {
280
285
  t.changeConfig({
281
- lineStyle: p({}, this.lineStyle),
282
- polygonStyle: p({}, this.polygonStyle)
286
+ lineStyle: d({}, this.lineStyle),
287
+ polygonStyle: d({}, this.polygonStyle)
283
288
  }), this.addMeshEventListeners(t);
284
289
  } catch (n) {
285
290
  }
286
291
  }), this.currentMeasureMesh)
287
292
  try {
288
293
  this.currentMeasureMesh.changeConfig({
289
- lineStyle: p({}, this.lineStyle),
290
- polygonStyle: p({}, this.polygonStyle)
294
+ lineStyle: d({}, this.lineStyle),
295
+ polygonStyle: d({}, this.polygonStyle)
291
296
  });
292
297
  } catch (t) {
293
298
  }
@@ -298,20 +303,20 @@ class Ct extends z {
298
303
  * @param precision - For metric (`m`): decimal places. For imperial (`ft`): inch fraction denominator (1 | 4 | 8 | 16).
299
304
  * Area measurements remain at fixed 2 decimal places.
300
305
  */
301
- s(this, "setPrecision", (e) => {
306
+ o(this, "setPrecision", (e) => {
302
307
  if (this._config && (this._config.precision = e), this.lineStyle.precision = e, this.group.children.forEach((t) => {
303
308
  try {
304
309
  t.changeConfig({
305
- lineStyle: p({}, this.lineStyle),
306
- polygonStyle: p({}, this.polygonStyle)
310
+ lineStyle: d({}, this.lineStyle),
311
+ polygonStyle: d({}, this.polygonStyle)
307
312
  }), this.addMeshEventListeners(t);
308
313
  } catch (n) {
309
314
  }
310
315
  }), this.currentMeasureMesh)
311
316
  try {
312
317
  this.currentMeasureMesh.changeConfig({
313
- lineStyle: p({}, this.lineStyle),
314
- polygonStyle: p({}, this.polygonStyle)
318
+ lineStyle: d({}, this.lineStyle),
319
+ polygonStyle: d({}, this.polygonStyle)
315
320
  });
316
321
  } catch (t) {
317
322
  }
@@ -320,35 +325,35 @@ class Ct extends z {
320
325
  /**
321
326
  * @description 取消本次测量
322
327
  */
323
- s(this, "cancel", () => {
328
+ o(this, "cancel", () => {
324
329
  var e;
325
330
  this.currentEndReason = "escape", (e = this.currentMeasureMesh) == null || e.removeFromParent(), this.pointSelector.disable();
326
331
  });
327
332
  /**
328
333
  * @description 撤销上一步
329
334
  */
330
- s(this, "undo", () => {
335
+ o(this, "undo", () => {
331
336
  this.emit("undo");
332
337
  });
333
338
  /**
334
339
  * @description 清空正在测量的内容
335
340
  */
336
- s(this, "clearCurrentMeasure", () => {
341
+ o(this, "clearCurrentMeasure", () => {
337
342
  var e;
338
343
  (e = this.currentMeasureMesh) == null || e.removeFromParent(), this.currentMeasureMesh = null, this.pointSelector.disable();
339
344
  });
340
345
  /**
341
346
  * @description 清空所有测量内容
342
347
  */
343
- s(this, "clear", () => {
348
+ o(this, "clear", () => {
344
349
  var e;
345
- (e = this.cleanupPendingPress) == null || e.call(this), this.cancelRepositioning(), this.currentMeasureMesh = null, this.pointSelector.disable(), this.group.children.forEach(this.removeMeshEventListeners), this.group.removeChildren(), this.cursor.removeDeleteButton();
350
+ (e = this.cleanupPendingPress) == null || e.call(this), this.cancelRepositioning(), this.currentMeasureMesh = null, this.pointSelector.disable(), this.group.children.forEach(this.removeMeshEventListeners), this.group.removeChildren(), this.cursor.removeDeleteButton(), this.publishInteraction("idle");
346
351
  });
347
- s(this, "dispose", () => {
352
+ o(this, "dispose", () => {
348
353
  var e, t;
349
354
  this.listener.removeMeasureListener(), this.listener.removeClickListener(), this.pointSelector.disable(), this.clear(), (e = this.endpointPointerElement) == null || e.removeEventListener("pointerdown", this.onEndpointPointerDown, !0), this.endpointPointerElement = void 0, (t = this._fiveDomEvents) == null || t.dispose();
350
355
  });
351
- s(this, "listener", {
356
+ o(this, "listener", {
352
357
  // 点击事件
353
358
  addClickListener: () => {
354
359
  this.five.on("panoArrived", this.onMoveToPano), this.five.on("modeChange", this.onModeChange), y("delete, backspace", this.deleteSelectedMesh), this.initEventListeners();
@@ -369,7 +374,7 @@ class Ct extends z {
369
374
  y.unbind("ctrl+z, command+z"), y.unbind("esc"), y.unbind("enter"), this.five.off("mode.change", this.endMeasureByModeChange), this.five.off("pano.moveTo", this.endMeasureByPanoMove), this.five.off("model.changeShownFloor", this.endMeasureByFloorChange);
370
375
  }
371
376
  });
372
- s(this, "onMoveToPano", (e) => {
377
+ o(this, "onMoveToPano", (e) => {
373
378
  var i;
374
379
  (i = this.cleanupPendingPress) == null || i.call(this), this.cancelRepositioning();
375
380
  const t = this.group.children.filter((r) => r !== this.currentMeasureMesh), n = new $();
@@ -379,26 +384,26 @@ class Ct extends z {
379
384
  r.visible = !0;
380
385
  return;
381
386
  }
382
- ((l = r.line.points) == null ? void 0 : l.some((o) => {
387
+ ((l = r.line.points) == null ? void 0 : l.some((s) => {
383
388
  var b, R;
384
- const h = o.clone().sub(this.five.camera.position).normalize();
385
- n.set(this.five.camera.position, h);
389
+ const p = s.clone().sub(this.five.camera.position).normalize();
390
+ n.set(this.five.camera.position, p);
386
391
  const v = (R = (b = this.five.model.intersectRaycaster(n)) == null ? void 0 : b[0]) == null ? void 0 : R.point;
387
392
  if (!v)
388
393
  return !0;
389
- const g = 0.01, M = o.distanceTo(this.five.camera.position);
394
+ const g = 0.01, M = s.distanceTo(this.five.camera.position);
390
395
  return v.distanceTo(this.five.camera.position) + g > M;
391
396
  })) ? r.visible = !0 : r.visible = !1, this.five.needsRender = !0;
392
397
  });
393
398
  });
394
- s(this, "onModeChange", (e) => {
399
+ o(this, "onModeChange", (e) => {
395
400
  var t;
396
401
  (t = this.cleanupPendingPress) == null || t.call(this), this.cancelRepositioning(), e === "Mapview" && this.group.children.forEach((n) => {
397
402
  n.visible = !0;
398
403
  });
399
404
  });
400
- s(this, "onClick", ({ origDomEvent: e, target: t }) => {
401
- var o;
405
+ o(this, "onClick", ({ origDomEvent: e, target: t }) => {
406
+ var s;
402
407
  const n = t;
403
408
  if (!n)
404
409
  return;
@@ -409,51 +414,52 @@ class Ct extends z {
409
414
  let i, r;
410
415
  if (e && ("touches" in e && e.touches && e.touches[0] ? (i = e.touches[0].clientX, r = e.touches[0].clientY) : "clientX" in e && "clientY" in e && (i = e.clientX, r = e.clientY)), i === void 0 || r === void 0)
411
416
  return;
412
- this.group.children.forEach((h) => h.unselect()), n.select();
413
- const a = () => {
414
- this.removeMeshEventListeners(n), n.removeFromParent(), this.cursor.removeDeleteButton(), this.five.needsRender = !0;
415
- }, l = ((o = this.five.getElement()) == null ? void 0 : o.parentElement) || document.body;
417
+ this.group.children.forEach((p) => p.unselect()), n.select();
418
+ const c = () => {
419
+ this.removeMeshEventListeners(n), n.removeFromParent(), this.publishInteraction("idle"), this.cursor.removeDeleteButton(), this.five.needsRender = !0;
420
+ }, l = ((s = this.five.getElement()) == null ? void 0 : s.parentElement) || document.body;
416
421
  this.cursor.showDeleteButton({
417
422
  clientX: i,
418
423
  clientY: r,
419
424
  container: l,
420
- onClick: a
425
+ onClick: c
421
426
  }), this.five.once("cameraUpdate", () => {
422
427
  n.unselect(), this.cursor.removeDeleteButton();
423
428
  });
424
429
  });
425
- s(this, "onHover", ({ target: e }) => {
430
+ o(this, "onHover", ({ target: e }) => {
426
431
  if (this.currentMeasureMesh)
427
432
  return;
428
433
  const t = e;
429
434
  t && t.hover();
430
435
  });
431
- s(this, "onUnHover", ({ target: e }) => {
436
+ o(this, "onUnHover", ({ target: e }) => {
432
437
  if (this.currentMeasureMesh)
433
438
  return;
434
439
  const t = e;
435
440
  t && t.unhover();
436
441
  });
437
- s(this, "deleteSelectedMesh", () => {
438
- this.group.children.filter((t) => t.selected).forEach((t) => {
439
- this.removeMeshEventListeners(t), t.removeFromParent();
440
- }), this.cursor.removeDeleteButton(), this.five.needsRender = !0;
442
+ o(this, "deleteSelectedMesh", () => {
443
+ var t;
444
+ (t = this.cleanupPendingPress) == null || t.call(this), this.cancelRepositioning(), this.group.children.filter((n) => n.selected).forEach((n) => {
445
+ this.removeMeshEventListeners(n), n.removeFromParent();
446
+ }), this.cursor.removeDeleteButton(), this.publishInteraction("idle"), this.five.needsRender = !0;
441
447
  });
442
448
  // Helper method to remove all event listeners from a mesh
443
- s(this, "removeMeshEventListeners", (e) => {
449
+ o(this, "removeMeshEventListeners", (e) => {
444
450
  var t, n;
445
451
  this.removeEndpointLongPressListeners(e), (t = e.line.doms) == null || t.forEach((i) => {
446
452
  i != null && i.container && (i.container.onclick = null, i.container.onmouseenter = null, i.container.onmouseleave = null);
447
453
  }), (n = e.polygon.areaDom) != null && n.container && (e.polygon.areaDom.container.onclick = null, e.polygon.areaDom.container.onmouseenter = null, e.polygon.areaDom.container.onmouseleave = null), this.fiveDomEvents.removeEventListener(e, "click"), this.fiveDomEvents.removeEventListener(e, "hover"), this.fiveDomEvents.removeEventListener(e, "unHover");
448
454
  });
449
- s(this, "removeEndpointLongPressListeners", (e) => {
455
+ o(this, "removeEndpointLongPressListeners", (e) => {
450
456
  var t;
451
457
  (t = e.line.pointMeshes) == null || t.forEach((n) => {
452
458
  const i = n.__longPressCleanup;
453
459
  i && (i(), delete n.__longPressCleanup);
454
460
  });
455
461
  });
456
- s(this, "updateSelectAdsorbedHelper", () => {
462
+ o(this, "updateSelectAdsorbedHelper", () => {
457
463
  if (!this.currentMeasureMesh || this.currentMeasureMesh.points.length === 0) {
458
464
  this.pointSelector.setAdherePoints(null), this.pointSelector.adhereLine = [], this.pointSelector.adherePlane = [];
459
465
  return;
@@ -477,61 +483,61 @@ class Ct extends z {
477
483
  } else
478
484
  this.pointSelector.adherePlane = [];
479
485
  });
480
- s(this, "addMeshEventListeners", (e) => {
486
+ o(this, "addMeshEventListeners", (e) => {
481
487
  var t, n;
482
488
  this.removeMeshEventListeners(e), this.addEndpointLongPressListeners(e), (t = e.line.doms) == null || t.forEach((i) => {
483
489
  i != null && i.container && (i.container.onclick = (r) => this.onClick({ origDomEvent: r, target: e }), i.container.onmouseenter = () => this.onHover({ target: e }), i.container.onmouseleave = () => this.onUnHover({ target: e }));
484
490
  }), (n = e.polygon.areaDom) != null && n.container && (e.polygon.areaDom.container.onclick = (i) => this.onClick({ origDomEvent: i, target: e }), e.polygon.areaDom.container.onmouseenter = () => this.onHover({ target: e }), e.polygon.areaDom.container.onmouseleave = () => this.onUnHover({ target: e })), this.fiveDomEvents.addEventListener(e, "click", this.onClick), this.fiveDomEvents.addEventListener(e, "hover", this.onHover), this.fiveDomEvents.addEventListener(e, "unHover", this.onUnHover);
485
491
  });
486
- s(this, "onEndpointPointerDown", (e) => {
492
+ o(this, "onEndpointPointerDown", (e) => {
487
493
  var r;
488
494
  if (e.button !== 0 || !e.isPrimary || this.currentMeasureMesh || this.repositioningState)
489
495
  return;
490
496
  const t = this.five.getElement().getBoundingClientRect();
491
497
  let n, i = e.pointerType === "touch" ? 30 : 12;
492
- for (const a of this.group.children)
493
- for (const l of a.line.pointMeshes) {
498
+ for (const c of this.group.children)
499
+ for (const l of c.line.pointMeshes) {
494
500
  if (!A(l))
495
501
  continue;
496
- const o = l.getWorldPosition(new u.Vector3()).project(this.five.camera);
497
- if (o.z < -1 || o.z > 1)
502
+ const s = l.getWorldPosition(new u.Vector3()).project(this.five.camera);
503
+ if (s.z < -1 || s.z > 1)
498
504
  continue;
499
- const h = t.left + (o.x + 1) * t.width / 2, v = t.top + (1 - o.y) * t.height / 2, g = Math.hypot(e.clientX - h, e.clientY - v);
505
+ const p = t.left + (s.x + 1) * t.width / 2, v = t.top + (1 - s.y) * t.height / 2, g = Math.hypot(e.clientX - p, e.clientY - v);
500
506
  g <= i && (n = l, i = g);
501
507
  }
502
- n && ((r = this.endpointPressHandlers.get(n)) == null || r(e));
508
+ n ? (r = this.endpointPressHandlers.get(n)) == null || r(e) : this.interactionResult && this.publishInteraction("idle");
503
509
  });
504
- s(this, "addEndpointLongPressListeners", (e) => {
510
+ o(this, "addEndpointLongPressListeners", (e) => {
505
511
  var n;
506
512
  const t = this.five.getElement();
507
513
  t !== this.endpointPointerElement && ((n = this.endpointPointerElement) == null || n.removeEventListener("pointerdown", this.onEndpointPointerDown, !0), this.endpointPointerElement = t, t == null || t.addEventListener("pointerdown", this.onEndpointPointerDown, !0)), e.line.pointMeshes.forEach((i, r) => {
508
- const a = e.isPolygon && r >= e.points.length - 1 ? 0 : r;
509
- let l = !1, o;
510
- const h = (g) => {
511
- var w;
512
- (w = this.cleanupPendingPress) == null || w.call(this), l = !1;
514
+ const c = e.isPolygon && r >= e.points.length - 1 ? 0 : r;
515
+ let l = !1, s;
516
+ const p = (g) => {
517
+ var a;
518
+ (a = this.cleanupPendingPress) == null || a.call(this), l = !1;
513
519
  const M = { x: g.clientX, y: g.clientY };
514
520
  this.showLongPressIndicator(i, M);
515
- const P = (c) => {
516
- c.pointerId === g.pointerId && (!(c.buttons & 1) || Math.hypot(c.clientX - M.x, c.clientY - M.y) > 10) && (o == null || o());
517
- }, L = (c) => {
518
- c.pointerId === g.pointerId && (o == null || o());
519
- }, b = (c) => {
520
- c.pointerId !== g.pointerId && (o == null || o());
521
- }, R = (c) => {
522
- c.key === "Escape" && (o == null || o());
523
- }, C = setTimeout(() => {
524
- o == null || o(), l = !0, this.startRepositioning(e, a, !0, M, g);
521
+ const P = (h) => {
522
+ h.pointerId === g.pointerId && (!(h.buttons & 1) || Math.hypot(h.clientX - M.x, h.clientY - M.y) > 10) && (s == null || s());
523
+ }, L = (h) => {
524
+ h.pointerId === g.pointerId && (s == null || s());
525
+ }, b = (h) => {
526
+ h.pointerId !== g.pointerId && (s == null || s());
527
+ }, R = (h) => {
528
+ h.key === "Escape" && (s == null || s());
529
+ }, w = () => s == null ? void 0 : s(), C = setTimeout(() => {
530
+ s == null || s(!1), l = !0, this.startRepositioning(e, c, !0, M, g);
525
531
  }, 500);
526
- o = () => {
527
- clearTimeout(C), document.removeEventListener("pointermove", P, !0), document.removeEventListener("pointerup", L, !0), document.removeEventListener("pointercancel", L, !0), document.removeEventListener("pointerdown", b, !0), document.removeEventListener("keydown", R), window.removeEventListener("blur", o), this.hideLongPressIndicator(), this.cleanupPendingPress === o && (this.cleanupPendingPress = void 0);
528
- }, this.cleanupPendingPress = o, document.addEventListener("pointermove", P, !0), document.addEventListener("pointerup", L, !0), document.addEventListener("pointercancel", L, !0), document.addEventListener("pointerdown", b, !0), document.addEventListener("keydown", R), window.addEventListener("blur", o);
532
+ s = (h = !0) => {
533
+ clearTimeout(C), document.removeEventListener("pointermove", P, !0), document.removeEventListener("pointerup", L, !0), document.removeEventListener("pointercancel", L, !0), document.removeEventListener("pointerdown", b, !0), document.removeEventListener("keydown", R), window.removeEventListener("blur", w), this.hideLongPressIndicator(), this.cleanupPendingPress === s && (this.cleanupPendingPress = void 0, h && this.publishInteraction("idle"));
534
+ }, this.cleanupPendingPress = s, document.addEventListener("pointermove", P, !0), document.addEventListener("pointerup", L, !0), document.addEventListener("pointercancel", L, !0), document.addEventListener("pointerdown", b, !0), document.addEventListener("keydown", R), window.addEventListener("blur", w), this.publishInteraction("holding");
529
535
  }, v = (g) => {
530
536
  if (l)
531
537
  return g.stopPropagation(), l = !1, !1;
532
538
  };
533
- this.endpointPressHandlers.set(i, h), this.fiveDomEvents.addEventListener(i, "click", v), i.__longPressCleanup = () => {
534
- this.cleanupPendingPress === o && (o == null || o()), this.endpointPressHandlers.delete(i), this.fiveDomEvents.removeEventListener(i, "click", v);
539
+ this.endpointPressHandlers.set(i, p), this.fiveDomEvents.addEventListener(i, "click", v), i.__longPressCleanup = () => {
540
+ this.cleanupPendingPress === s && (s == null || s()), this.endpointPressHandlers.delete(i), this.fiveDomEvents.removeEventListener(i, "click", v);
535
541
  };
536
542
  });
537
543
  });
@@ -539,33 +545,33 @@ class Ct extends z {
539
545
  * @description Load measurement data from external source
540
546
  * @param data Array of point data for measurements
541
547
  */
542
- s(this, "load", (e) => {
548
+ o(this, "load", (e) => {
543
549
  this.clear(), e.forEach((t) => {
544
- const n = new I({
550
+ const n = new k({
545
551
  lineStyle: this.lineStyle,
546
552
  polygonStyle: this.polygonStyle
547
553
  });
548
554
  this.group.add(n), n.setPoints(t.points), this.addMeshEventListeners(n), n.__five_pano_index = this.five.panoIndex;
549
- }), this.five.needsRender = !0;
555
+ }), this.publishInteraction("idle"), this.five.needsRender = !0;
550
556
  });
551
557
  /**
552
558
  * Start repositioning an endpoint
553
559
  */
554
- s(this, "startRepositioning", (e, t, n = !1, i, r) => {
560
+ o(this, "startRepositioning", (e, t, n = !1, i, r) => {
555
561
  this.currentMeasureMesh || this.repositioningState || (this.repositioningState = {
556
562
  measureMesh: e,
557
563
  pointIndex: t,
558
564
  originalOpacity: e.line.lineOpacity,
559
- originalMeshState: e.points.map((a) => a.clone()),
565
+ originalMeshState: e.points.map((c) => c.clone()),
560
566
  isDragMode: n,
561
567
  mouseDownPosition: i || void 0,
562
568
  hasMoved: !1
563
- }, this.applyRepositioningStyle(e, !0), this.five.on("wantsGesture", this.preventFiveGestures), n ? this.enableGlobalPointerTracking(r) : (this.pointSelector.actionIfNoIntersection = "virtualPoint", this.pointSelector.enable(), this.pointSelector.on("intersectionUpdate", this.onRepositioningMove), this.pointSelector.on("select", this.onRepositioningConfirm), this.pointSelector.on("disable", this.cancelRepositioning)), y("esc", this.cancelRepositioning));
569
+ }, this.applyRepositioningStyle(e, !0), this.five.on("wantsGesture", this.preventFiveGestures), n ? this.enableGlobalPointerTracking(r) : (this.pointSelector.actionIfNoIntersection = "virtualPoint", this.pointSelector.enable(), this.pointSelector.on("intersectionUpdate", this.onRepositioningMove), this.pointSelector.on("select", this.onRepositioningConfirm), this.pointSelector.on("disable", this.cancelRepositioning)), this.repositioningState && (y("esc", this.cancelRepositioning), this.publishInteraction("editing")));
564
570
  });
565
571
  /**
566
572
  * Helper method to safely update polygon points while maintaining closure
567
573
  */
568
- s(this, "updatePolygonPoints", (e, t, n, i = !1) => {
574
+ o(this, "updatePolygonPoints", (e, t, n, i = !1) => {
569
575
  if (e.isPolygon && t.length > 3 && n !== void 0) {
570
576
  const r = t.length - 1;
571
577
  n === 0 ? t[r] = t[0].clone() : n === r && (t[0] = t[r].clone());
@@ -573,26 +579,26 @@ class Ct extends z {
573
579
  if (e.points = t, i && this.repositioningState) {
574
580
  const r = e.line;
575
581
  if (r.points = t, t.length >= 2) {
576
- const a = t.flatMap((l) => [l.x, l.y, l.z]);
577
- r.line1.geometry.setPositions(a), r.line1.computeLineDistances();
582
+ const c = t.flatMap((l) => [l.x, l.y, l.z]);
583
+ r.line1.geometry.setPositions(c), r.line1.computeLineDistances();
578
584
  }
579
585
  if (n !== void 0 && e.line.pointMeshes) {
580
- const a = t[n];
586
+ const c = t[n];
581
587
  if (e.isPolygon && t.length > 3) {
582
588
  const l = t.length - 1;
583
589
  if (n === 0) {
584
- const o = e.line.pointMeshes[0], h = e.line.pointMeshes[l];
585
- o && o.position.copy(a), h && h.position.copy(a);
590
+ const s = e.line.pointMeshes[0], p = e.line.pointMeshes[l];
591
+ s && s.position.copy(c), p && p.position.copy(c);
586
592
  } else if (n === l) {
587
- const o = e.line.pointMeshes[0], h = e.line.pointMeshes[l];
588
- o && o.position.copy(a), h && h.position.copy(a);
593
+ const s = e.line.pointMeshes[0], p = e.line.pointMeshes[l];
594
+ s && s.position.copy(c), p && p.position.copy(c);
589
595
  } else {
590
- const o = e.line.pointMeshes[n];
591
- o && o.position.copy(a);
596
+ const s = e.line.pointMeshes[n];
597
+ s && s.position.copy(c);
592
598
  }
593
599
  } else {
594
600
  const l = e.line.pointMeshes[n];
595
- l && l.position.copy(a);
601
+ l && l.position.copy(c);
596
602
  }
597
603
  }
598
604
  e.isPolygon && e.polygon.setPoints(t);
@@ -602,7 +608,7 @@ class Ct extends z {
602
608
  /**
603
609
  * Handle mouse movement during repositioning
604
610
  */
605
- s(this, "onRepositioningMove", (e) => {
611
+ o(this, "onRepositioningMove", (e) => {
606
612
  if (!this.repositioningState || !e)
607
613
  return;
608
614
  const { measureMesh: t, pointIndex: n } = this.repositioningState;
@@ -613,34 +619,34 @@ class Ct extends z {
613
619
  /**
614
620
  * Confirm repositioning with click
615
621
  */
616
- s(this, "onRepositioningConfirm", (e) => {
622
+ o(this, "onRepositioningConfirm", (e) => {
617
623
  if (!this.repositioningState || !e)
618
624
  return;
619
625
  const { measureMesh: t, pointIndex: n } = this.repositioningState, i = [...t.points];
620
- i[n] = e.point.clone(), this.updatePolygonPoints(t, i, n, !1), this.applyRepositioningStyle(t, !1), this.addEndpointLongPressListeners(t), this.cleanupRepositioning();
626
+ i[n] = e.point.clone(), this.updatePolygonPoints(t, i, n, !1), this.applyRepositioningStyle(t, !1), this.addEndpointLongPressListeners(t), this.cleanupRepositioning(), this.publishInteraction("idle", "confirmed");
621
627
  });
622
628
  /**
623
629
  * Confirm repositioning when drag ends (mouse up after long press drag)
624
630
  */
625
- s(this, "confirmRepositioningOnDragEnd", () => {
631
+ o(this, "confirmRepositioningOnDragEnd", () => {
626
632
  if (!this.repositioningState)
627
633
  return;
628
634
  const { measureMesh: e, pointIndex: t } = this.repositioningState, n = [...e.points];
629
- this.updatePolygonPoints(e, n, t, !1), this.applyRepositioningStyle(e, !1), this.addEndpointLongPressListeners(e), this.cleanupRepositioning();
635
+ this.updatePolygonPoints(e, n, t, !1), this.applyRepositioningStyle(e, !1), this.addEndpointLongPressListeners(e), this.cleanupRepositioning(), this.publishInteraction("idle", "confirmed");
630
636
  });
631
637
  /**
632
638
  * Cancel repositioning (restore original position)
633
639
  */
634
- s(this, "cancelRepositioning", () => {
640
+ o(this, "cancelRepositioning", () => {
635
641
  if (!this.repositioningState)
636
642
  return;
637
643
  const { measureMesh: e, originalMeshState: t } = this.repositioningState;
638
- this.updatePolygonPoints(e, t, void 0, !1), this.applyRepositioningStyle(e, !1), this.addEndpointLongPressListeners(e), this.cleanupRepositioning();
644
+ this.updatePolygonPoints(e, t, void 0, !1), this.applyRepositioningStyle(e, !1), this.addEndpointLongPressListeners(e), this.cleanupRepositioning(), this.publishInteraction("idle", "cancelled");
639
645
  });
640
646
  /**
641
647
  * Apply or remove repositioning preview styling
642
648
  */
643
- s(this, "applyRepositioningStyle", (e, t) => {
649
+ o(this, "applyRepositioningStyle", (e, t) => {
644
650
  const n = t ? 0.4 : 1, i = t;
645
651
  e.line.setStyle({
646
652
  lineOpacity: n,
@@ -656,7 +662,7 @@ class Ct extends z {
656
662
  });
657
663
  });
658
664
  /** Track one editing pointer; hover and other pointers cannot move its endpoint. */
659
- s(this, "enableGlobalPointerTracking", (e) => {
665
+ o(this, "enableGlobalPointerTracking", (e) => {
660
666
  const t = this.five.getElement();
661
667
  if (!t || !e) {
662
668
  this.cancelRepositioning();
@@ -670,31 +676,31 @@ class Ct extends z {
670
676
  return;
671
677
  }
672
678
  l.preventDefault();
673
- const o = t.getBoundingClientRect(), h = new u.Raycaster();
674
- h.setFromCamera(new u.Vector2(
675
- (l.clientX - o.left) / o.width * 2 - 1,
676
- -((l.clientY - o.top) / o.height) * 2 + 1
679
+ const s = t.getBoundingClientRect(), p = new u.Raycaster();
680
+ p.setFromCamera(new u.Vector2(
681
+ (l.clientX - s.left) / s.width * 2 - 1,
682
+ -((l.clientY - s.top) / s.height) * 2 + 1
677
683
  ), this.five.camera);
678
- const v = this.five.model.intersectRaycaster(h)[0];
679
- this.onRepositioningMove(v ? E(p({}, v), { raycaster: h }) : {
680
- point: h.ray.at(5, new u.Vector3()),
684
+ const v = this.five.model.intersectRaycaster(p)[0];
685
+ this.onRepositioningMove(v ? E(d({}, v), { raycaster: p }) : {
686
+ point: p.ray.at(5, new u.Vector3()),
681
687
  distance: 5,
682
- raycaster: h,
688
+ raycaster: p,
683
689
  isVirtual: !0
684
690
  });
685
691
  }, r = (l) => {
686
692
  l.pointerId === e.pointerId && (l.type === "pointerup" ? this.confirmRepositioningOnDragEnd() : this.cancelRepositioning());
687
- }, a = (l) => {
693
+ }, c = (l) => {
688
694
  l.pointerId !== e.pointerId && this.cancelRepositioning();
689
695
  };
690
- document.addEventListener("pointermove", i, { capture: !0, passive: !1 }), document.addEventListener("pointerup", r, !0), document.addEventListener("pointercancel", r, !0), document.addEventListener("pointerdown", a, !0), n == null || n.addEventListener("lostpointercapture", this.cancelRepositioning), window.addEventListener("blur", this.cancelRepositioning), this.cleanupRepositioningListeners = () => {
691
- document.removeEventListener("pointermove", i, !0), document.removeEventListener("pointerup", r, !0), document.removeEventListener("pointercancel", r, !0), document.removeEventListener("pointerdown", a, !0), n == null || n.removeEventListener("lostpointercapture", this.cancelRepositioning), window.removeEventListener("blur", this.cancelRepositioning), n != null && n.hasPointerCapture(e.pointerId) && n.releasePointerCapture(e.pointerId);
696
+ document.addEventListener("pointermove", i, { capture: !0, passive: !1 }), document.addEventListener("pointerup", r, !0), document.addEventListener("pointercancel", r, !0), document.addEventListener("pointerdown", c, !0), n == null || n.addEventListener("lostpointercapture", this.cancelRepositioning), window.addEventListener("blur", this.cancelRepositioning), this.cleanupRepositioningListeners = () => {
697
+ document.removeEventListener("pointermove", i, !0), document.removeEventListener("pointerup", r, !0), document.removeEventListener("pointercancel", r, !0), document.removeEventListener("pointerdown", c, !0), n == null || n.removeEventListener("lostpointercapture", this.cancelRepositioning), window.removeEventListener("blur", this.cancelRepositioning), n != null && n.hasPointerCapture(e.pointerId) && n.releasePointerCapture(e.pointerId);
692
698
  }, n == null || n.setPointerCapture(e.pointerId);
693
699
  });
694
700
  /**
695
701
  * Show long press visual feedback circle
696
702
  */
697
- s(this, "showLongPressIndicator", (e, t) => {
703
+ o(this, "showLongPressIndicator", (e, t) => {
698
704
  this.hideLongPressIndicator();
699
705
  const n = this.five.getElement();
700
706
  if (!n)
@@ -718,31 +724,40 @@ class Ct extends z {
718
724
  if (t)
719
725
  i.style.left = `${t.x}px`, i.style.top = `${t.y}px`, i.style.transform = "translate(-50%, -50%)";
720
726
  else {
721
- const a = e.getWorldPosition(new u.Vector3()).clone().project(this.five.camera), l = n.getBoundingClientRect(), o = (a.x + 1) * l.width / 2 + l.left, h = (-a.y + 1) * l.height / 2 + l.top;
722
- i.style.left = `${o}px`, i.style.top = `${h}px`, i.style.transform = "translate(-50%, -50%)";
727
+ const c = e.getWorldPosition(new u.Vector3()).clone().project(this.five.camera), l = n.getBoundingClientRect(), s = (c.x + 1) * l.width / 2 + l.left, p = (-c.y + 1) * l.height / 2 + l.top;
728
+ i.style.left = `${s}px`, i.style.top = `${p}px`, i.style.transform = "translate(-50%, -50%)";
723
729
  }
724
730
  document.body.appendChild(i), this.longPressIndicator = i;
725
731
  });
726
732
  /**
727
733
  * Hide long press visual feedback circle
728
734
  */
729
- s(this, "hideLongPressIndicator", () => {
735
+ o(this, "hideLongPressIndicator", () => {
730
736
  this.longPressIndicator && (this.longPressIndicator.remove(), this.longPressIndicator = null);
731
737
  });
732
738
  /**
733
739
  * Prevent Five canvas gestures during repositioning
734
740
  */
735
- s(this, "preventFiveGestures", () => !1);
741
+ o(this, "preventFiveGestures", () => !1);
736
742
  /**
737
743
  * Clean up repositioning state and event listeners
738
744
  */
739
- s(this, "cleanupRepositioning", () => {
745
+ o(this, "cleanupRepositioning", () => {
740
746
  var e;
741
747
  (e = this.cleanupRepositioningListeners) == null || e.call(this), this.cleanupRepositioningListeners = void 0, this.repositioningState && (this.repositioningState.isDragMode || (this.pointSelector.off("intersectionUpdate", this.onRepositioningMove), this.pointSelector.off("select", this.onRepositioningConfirm), this.pointSelector.off("disable", this.cancelRepositioning), this.pointSelector.disable())), this.five.off("wantsGesture", this.preventFiveGestures), y.unbind("esc", this.cancelRepositioning), this.repositioningState = null, this.five.needsRender = !0;
742
748
  });
743
749
  this.five = e;
744
750
  const n = { unit: "m", lengthEnable: !0, precision: 2 };
745
- this.config = t ? p(p({}, n), t) : n, this.group = new Y(), this.group.name = "MeasureGroup", this.group.__five__ = this.five, this.five.scene.add(this.group), this.five.on("panoArrived", this.onMoveToPano), this.five.on("modeChange", this.onModeChange), y("delete, backspace", this.deleteSelectedMesh), this.initEventListeners();
751
+ this.config = t ? d(d({}, n), t) : n, this.group = new Y(), this.group.name = "MeasureGroup", this.group.__five__ = this.five, this.five.scene.add(this.group), this.five.on("panoArrived", this.onMoveToPano), this.five.on("modeChange", this.onModeChange), y("delete, backspace", this.deleteSelectedMesh), this.initEventListeners();
752
+ }
753
+ get interactionState() {
754
+ var e, t;
755
+ return {
756
+ phase: this.interactionPhase,
757
+ measurementCount: this.group.children.filter((n) => n.isMeasureMesh && n !== this.currentMeasureMesh && n.points.length >= 2).length,
758
+ pointCount: (t = (e = this.currentMeasureMesh) == null ? void 0 : e.points.length) != null ? t : 0,
759
+ result: this.interactionResult
760
+ };
746
761
  }
747
762
  get pointSelector() {
748
763
  return this._pointSelector ? this._pointSelector : (this._pointSelector = new O(this.five, { mode: "cursor", helper: { pointHelper: "highlight" }, skipPanorama: !0 }), this._pointSelector);