@itwin/core-frontend 5.11.0-dev.9 → 5.11.0

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 (429) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/lib/cjs/AccuDraw.d.ts +2 -0
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +9 -1
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/BingLocation.d.ts +4 -0
  7. package/lib/cjs/BingLocation.d.ts.map +1 -1
  8. package/lib/cjs/BingLocation.js +6 -1
  9. package/lib/cjs/BingLocation.js.map +1 -1
  10. package/lib/cjs/CesiumAccessClient.d.ts +52 -0
  11. package/lib/cjs/CesiumAccessClient.d.ts.map +1 -0
  12. package/lib/cjs/CesiumAccessClient.js +10 -0
  13. package/lib/cjs/CesiumAccessClient.js.map +1 -0
  14. package/lib/cjs/DisplayStyleState.js +2 -2
  15. package/lib/cjs/DisplayStyleState.js.map +1 -1
  16. package/lib/cjs/GeoProviders.d.ts +45 -0
  17. package/lib/cjs/GeoProviders.d.ts.map +1 -0
  18. package/lib/cjs/GeoProviders.js +49 -0
  19. package/lib/cjs/GeoProviders.js.map +1 -0
  20. package/lib/cjs/GraphicalEditingScope.d.ts +22 -1
  21. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  22. package/lib/cjs/GraphicalEditingScope.js +27 -1
  23. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  24. package/lib/cjs/HitDetail.d.ts +1 -1
  25. package/lib/cjs/HitDetail.d.ts.map +1 -1
  26. package/lib/cjs/HitDetail.js +10 -7
  27. package/lib/cjs/HitDetail.js.map +1 -1
  28. package/lib/cjs/IModelApp.d.ts +33 -0
  29. package/lib/cjs/IModelApp.d.ts.map +1 -1
  30. package/lib/cjs/IModelApp.js +33 -0
  31. package/lib/cjs/IModelApp.js.map +1 -1
  32. package/lib/cjs/IModelConnection.d.ts +9 -9
  33. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  34. package/lib/cjs/IModelConnection.js +21 -14
  35. package/lib/cjs/IModelConnection.js.map +1 -1
  36. package/lib/cjs/IpcApp.d.ts +1 -1
  37. package/lib/cjs/IpcApp.js +1 -1
  38. package/lib/cjs/IpcApp.js.map +1 -1
  39. package/lib/cjs/NativeApp.d.ts.map +1 -1
  40. package/lib/cjs/NativeApp.js +1 -3
  41. package/lib/cjs/NativeApp.js.map +1 -1
  42. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -1
  43. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  44. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +23 -5
  45. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  46. package/lib/cjs/SelectionSet.d.ts +7 -7
  47. package/lib/cjs/SelectionSet.js +3 -3
  48. package/lib/cjs/SelectionSet.js.map +1 -1
  49. package/lib/cjs/SubCategoriesCache.d.ts +15 -3
  50. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  51. package/lib/cjs/SubCategoriesCache.js +98 -26
  52. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  53. package/lib/cjs/ViewGlobalLocation.d.ts +1 -1
  54. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  55. package/lib/cjs/ViewGlobalLocation.js +3 -6
  56. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  57. package/lib/cjs/ViewState.d.ts +1 -1
  58. package/lib/cjs/ViewState.js +1 -1
  59. package/lib/cjs/ViewState.js.map +1 -1
  60. package/lib/cjs/Viewport.d.ts +5 -4
  61. package/lib/cjs/Viewport.d.ts.map +1 -1
  62. package/lib/cjs/Viewport.js +16 -4
  63. package/lib/cjs/Viewport.js.map +1 -1
  64. package/lib/cjs/core-frontend.d.ts +3 -0
  65. package/lib/cjs/core-frontend.d.ts.map +1 -1
  66. package/lib/cjs/core-frontend.js +4 -0
  67. package/lib/cjs/core-frontend.js.map +1 -1
  68. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  69. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  70. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +1 -1
  71. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  72. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  73. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  74. package/lib/cjs/internal/render/webgl/AttributeBuffers.js +2 -2
  75. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  76. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts +1 -1
  77. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  78. package/lib/cjs/internal/render/webgl/ClippingProgram.js +1 -1
  79. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  80. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts +2 -2
  81. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  82. package/lib/cjs/internal/render/webgl/ShaderProgram.js +2 -2
  83. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  84. package/lib/cjs/internal/render/webgl/Technique.d.ts +3 -3
  85. package/lib/cjs/internal/render/webgl/Technique.d.ts.map +1 -1
  86. package/lib/cjs/internal/render/webgl/Technique.js +3 -3
  87. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  88. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts +3 -3
  89. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts.map +1 -1
  90. package/lib/cjs/internal/tile/DynamicIModelTile.js +26 -6
  91. package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
  92. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
  93. package/lib/cjs/internal/tile/IModelTileTree.js +4 -2
  94. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  95. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +1 -1
  96. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  97. package/lib/cjs/internal/tile/RealityModelTileTree.js +7 -3
  98. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  99. package/lib/cjs/internal/tile/RealityTileLoader.d.ts +22 -0
  100. package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
  101. package/lib/cjs/internal/tile/RealityTileLoader.js +53 -5
  102. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  103. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  104. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  105. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  106. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  107. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -1
  108. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  109. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +2 -1
  110. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  111. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  112. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  113. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  114. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  115. package/lib/cjs/properties/AngleDescription.d.ts +2 -1
  116. package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
  117. package/lib/cjs/properties/AngleDescription.js +4 -1
  118. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  119. package/lib/cjs/properties/FormattedQuantityDescription.d.ts +29 -1
  120. package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
  121. package/lib/cjs/properties/FormattedQuantityDescription.js +35 -0
  122. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  123. package/lib/cjs/properties/LengthDescription.d.ts +6 -3
  124. package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
  125. package/lib/cjs/properties/LengthDescription.js +12 -3
  126. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  127. package/lib/cjs/render/Decorations.d.ts +1 -1
  128. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  129. package/lib/cjs/render/Decorations.js +1 -1
  130. package/lib/cjs/render/Decorations.js.map +1 -1
  131. package/lib/cjs/render/GraphicBranch.d.ts +1 -1
  132. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  133. package/lib/cjs/render/GraphicBranch.js +1 -1
  134. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  135. package/lib/cjs/render/RenderSystem.d.ts +2 -2
  136. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  137. package/lib/cjs/render/RenderSystem.js +1 -1
  138. package/lib/cjs/render/RenderSystem.js.map +1 -1
  139. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  140. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  141. package/lib/cjs/request/Request.d.ts +2 -2
  142. package/lib/cjs/request/Request.js.map +1 -1
  143. package/lib/cjs/tile/RealityTile.d.ts +5 -0
  144. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  145. package/lib/cjs/tile/RealityTile.js +4 -0
  146. package/lib/cjs/tile/RealityTile.js.map +1 -1
  147. package/lib/cjs/tile/Tile.d.ts +1 -1
  148. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  149. package/lib/cjs/tile/Tile.js +1 -1
  150. package/lib/cjs/tile/Tile.js.map +1 -1
  151. package/lib/cjs/tile/TileAdmin.d.ts +23 -1
  152. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  153. package/lib/cjs/tile/TileAdmin.js +17 -1
  154. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  155. package/lib/cjs/tile/TileTree.d.ts +1 -1
  156. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  157. package/lib/cjs/tile/TileTree.js +1 -1
  158. package/lib/cjs/tile/TileTree.js.map +1 -1
  159. package/lib/cjs/tile/TileTreeReference.d.ts +1 -1
  160. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  161. package/lib/cjs/tile/TileTreeReference.js +1 -1
  162. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  163. package/lib/cjs/tile/map/BingElevation.d.ts +16 -4
  164. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  165. package/lib/cjs/tile/map/BingElevation.js +18 -8
  166. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  167. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +16 -1
  168. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  169. package/lib/cjs/tile/map/CesiumTerrainProvider.js +58 -18
  170. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  171. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
  172. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  173. package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
  174. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  175. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -1
  176. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  177. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  178. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +1 -0
  179. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  180. package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -0
  181. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  182. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +1 -1
  183. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  184. package/lib/cjs/tile/map/MapLayerImageryProvider.js +1 -1
  185. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  186. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  187. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  188. package/lib/cjs/tile/map/MapTileTree.js +20 -9
  189. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  190. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +7 -1
  191. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  192. package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
  193. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  194. package/lib/cjs/tools/AccuDrawShortcutTool.d.ts +29 -0
  195. package/lib/cjs/tools/AccuDrawShortcutTool.d.ts.map +1 -0
  196. package/lib/cjs/tools/AccuDrawShortcutTool.js +139 -0
  197. package/lib/cjs/tools/AccuDrawShortcutTool.js.map +1 -0
  198. package/lib/cjs/tools/AccuDrawTool.d.ts +13 -68
  199. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  200. package/lib/cjs/tools/AccuDrawTool.js +103 -129
  201. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  202. package/lib/cjs/tools/SetupCameraTools.d.ts +89 -0
  203. package/lib/cjs/tools/SetupCameraTools.d.ts.map +1 -0
  204. package/lib/cjs/tools/SetupCameraTools.js +444 -0
  205. package/lib/cjs/tools/SetupCameraTools.js.map +1 -0
  206. package/lib/cjs/tools/ToolAdmin.d.ts +5 -2
  207. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  208. package/lib/cjs/tools/ToolAdmin.js +30 -7
  209. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  210. package/lib/cjs/tools/ViewTool.d.ts +1 -81
  211. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  212. package/lib/cjs/tools/ViewTool.js +13 -410
  213. package/lib/cjs/tools/ViewTool.js.map +1 -1
  214. package/lib/esm/AccuDraw.d.ts +2 -0
  215. package/lib/esm/AccuDraw.d.ts.map +1 -1
  216. package/lib/esm/AccuDraw.js +9 -1
  217. package/lib/esm/AccuDraw.js.map +1 -1
  218. package/lib/esm/BingLocation.d.ts +4 -0
  219. package/lib/esm/BingLocation.d.ts.map +1 -1
  220. package/lib/esm/BingLocation.js +6 -1
  221. package/lib/esm/BingLocation.js.map +1 -1
  222. package/lib/esm/CesiumAccessClient.d.ts +52 -0
  223. package/lib/esm/CesiumAccessClient.d.ts.map +1 -0
  224. package/lib/esm/CesiumAccessClient.js +9 -0
  225. package/lib/esm/CesiumAccessClient.js.map +1 -0
  226. package/lib/esm/DisplayStyleState.js +2 -2
  227. package/lib/esm/DisplayStyleState.js.map +1 -1
  228. package/lib/esm/GeoProviders.d.ts +45 -0
  229. package/lib/esm/GeoProviders.d.ts.map +1 -0
  230. package/lib/esm/GeoProviders.js +45 -0
  231. package/lib/esm/GeoProviders.js.map +1 -0
  232. package/lib/esm/GraphicalEditingScope.d.ts +22 -1
  233. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  234. package/lib/esm/GraphicalEditingScope.js +27 -1
  235. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  236. package/lib/esm/HitDetail.d.ts +1 -1
  237. package/lib/esm/HitDetail.d.ts.map +1 -1
  238. package/lib/esm/HitDetail.js +11 -8
  239. package/lib/esm/HitDetail.js.map +1 -1
  240. package/lib/esm/IModelApp.d.ts +33 -0
  241. package/lib/esm/IModelApp.d.ts.map +1 -1
  242. package/lib/esm/IModelApp.js +34 -1
  243. package/lib/esm/IModelApp.js.map +1 -1
  244. package/lib/esm/IModelConnection.d.ts +9 -9
  245. package/lib/esm/IModelConnection.d.ts.map +1 -1
  246. package/lib/esm/IModelConnection.js +21 -14
  247. package/lib/esm/IModelConnection.js.map +1 -1
  248. package/lib/esm/IpcApp.d.ts +1 -1
  249. package/lib/esm/IpcApp.js +1 -1
  250. package/lib/esm/IpcApp.js.map +1 -1
  251. package/lib/esm/NativeApp.d.ts.map +1 -1
  252. package/lib/esm/NativeApp.js +1 -3
  253. package/lib/esm/NativeApp.js.map +1 -1
  254. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -1
  255. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  256. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +24 -6
  257. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  258. package/lib/esm/SelectionSet.d.ts +7 -7
  259. package/lib/esm/SelectionSet.js +3 -3
  260. package/lib/esm/SelectionSet.js.map +1 -1
  261. package/lib/esm/SubCategoriesCache.d.ts +15 -3
  262. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  263. package/lib/esm/SubCategoriesCache.js +99 -27
  264. package/lib/esm/SubCategoriesCache.js.map +1 -1
  265. package/lib/esm/ViewGlobalLocation.d.ts +1 -1
  266. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  267. package/lib/esm/ViewGlobalLocation.js +3 -6
  268. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  269. package/lib/esm/ViewState.d.ts +1 -1
  270. package/lib/esm/ViewState.js +1 -1
  271. package/lib/esm/ViewState.js.map +1 -1
  272. package/lib/esm/Viewport.d.ts +5 -4
  273. package/lib/esm/Viewport.d.ts.map +1 -1
  274. package/lib/esm/Viewport.js +16 -4
  275. package/lib/esm/Viewport.js.map +1 -1
  276. package/lib/esm/core-frontend.d.ts +3 -0
  277. package/lib/esm/core-frontend.d.ts.map +1 -1
  278. package/lib/esm/core-frontend.js +6 -1
  279. package/lib/esm/core-frontend.js.map +1 -1
  280. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  281. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  282. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +1 -1
  283. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  284. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  285. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  286. package/lib/esm/internal/render/webgl/AttributeBuffers.js +2 -2
  287. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  288. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts +1 -1
  289. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  290. package/lib/esm/internal/render/webgl/ClippingProgram.js +1 -1
  291. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  292. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts +2 -2
  293. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  294. package/lib/esm/internal/render/webgl/ShaderProgram.js +2 -2
  295. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  296. package/lib/esm/internal/render/webgl/Technique.d.ts +3 -3
  297. package/lib/esm/internal/render/webgl/Technique.d.ts.map +1 -1
  298. package/lib/esm/internal/render/webgl/Technique.js +3 -3
  299. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  300. package/lib/esm/internal/tile/DynamicIModelTile.d.ts +3 -3
  301. package/lib/esm/internal/tile/DynamicIModelTile.d.ts.map +1 -1
  302. package/lib/esm/internal/tile/DynamicIModelTile.js +26 -6
  303. package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
  304. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
  305. package/lib/esm/internal/tile/IModelTileTree.js +4 -2
  306. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  307. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +1 -1
  308. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  309. package/lib/esm/internal/tile/RealityModelTileTree.js +7 -3
  310. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  311. package/lib/esm/internal/tile/RealityTileLoader.d.ts +22 -0
  312. package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
  313. package/lib/esm/internal/tile/RealityTileLoader.js +54 -6
  314. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  315. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  316. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  317. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  318. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  319. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -1
  320. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  321. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +2 -1
  322. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  323. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  324. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  325. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  326. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  327. package/lib/esm/properties/AngleDescription.d.ts +2 -1
  328. package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
  329. package/lib/esm/properties/AngleDescription.js +4 -1
  330. package/lib/esm/properties/AngleDescription.js.map +1 -1
  331. package/lib/esm/properties/FormattedQuantityDescription.d.ts +29 -1
  332. package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
  333. package/lib/esm/properties/FormattedQuantityDescription.js +35 -1
  334. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  335. package/lib/esm/properties/LengthDescription.d.ts +6 -3
  336. package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
  337. package/lib/esm/properties/LengthDescription.js +12 -3
  338. package/lib/esm/properties/LengthDescription.js.map +1 -1
  339. package/lib/esm/render/Decorations.d.ts +1 -1
  340. package/lib/esm/render/Decorations.d.ts.map +1 -1
  341. package/lib/esm/render/Decorations.js +1 -1
  342. package/lib/esm/render/Decorations.js.map +1 -1
  343. package/lib/esm/render/GraphicBranch.d.ts +1 -1
  344. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  345. package/lib/esm/render/GraphicBranch.js +1 -1
  346. package/lib/esm/render/GraphicBranch.js.map +1 -1
  347. package/lib/esm/render/RenderSystem.d.ts +2 -2
  348. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  349. package/lib/esm/render/RenderSystem.js +1 -1
  350. package/lib/esm/render/RenderSystem.js.map +1 -1
  351. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  352. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  353. package/lib/esm/request/Request.d.ts +2 -2
  354. package/lib/esm/request/Request.js.map +1 -1
  355. package/lib/esm/tile/RealityTile.d.ts +5 -0
  356. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  357. package/lib/esm/tile/RealityTile.js +4 -0
  358. package/lib/esm/tile/RealityTile.js.map +1 -1
  359. package/lib/esm/tile/Tile.d.ts +1 -1
  360. package/lib/esm/tile/Tile.d.ts.map +1 -1
  361. package/lib/esm/tile/Tile.js +1 -1
  362. package/lib/esm/tile/Tile.js.map +1 -1
  363. package/lib/esm/tile/TileAdmin.d.ts +23 -1
  364. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  365. package/lib/esm/tile/TileAdmin.js +17 -1
  366. package/lib/esm/tile/TileAdmin.js.map +1 -1
  367. package/lib/esm/tile/TileTree.d.ts +1 -1
  368. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  369. package/lib/esm/tile/TileTree.js +1 -1
  370. package/lib/esm/tile/TileTree.js.map +1 -1
  371. package/lib/esm/tile/TileTreeReference.d.ts +1 -1
  372. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  373. package/lib/esm/tile/TileTreeReference.js +1 -1
  374. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  375. package/lib/esm/tile/map/BingElevation.d.ts +16 -4
  376. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  377. package/lib/esm/tile/map/BingElevation.js +18 -8
  378. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  379. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +16 -1
  380. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  381. package/lib/esm/tile/map/CesiumTerrainProvider.js +56 -18
  382. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  383. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
  384. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  385. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  386. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  387. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -1
  388. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  389. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  390. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +1 -0
  391. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  392. package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -0
  393. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  394. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +1 -1
  395. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  396. package/lib/esm/tile/map/MapLayerImageryProvider.js +1 -1
  397. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  398. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  399. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  400. package/lib/esm/tile/map/MapTileTree.js +21 -10
  401. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  402. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +7 -1
  403. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  404. package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
  405. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  406. package/lib/esm/tools/AccuDrawShortcutTool.d.ts +29 -0
  407. package/lib/esm/tools/AccuDrawShortcutTool.d.ts.map +1 -0
  408. package/lib/esm/tools/AccuDrawShortcutTool.js +134 -0
  409. package/lib/esm/tools/AccuDrawShortcutTool.js.map +1 -0
  410. package/lib/esm/tools/AccuDrawTool.d.ts +13 -68
  411. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  412. package/lib/esm/tools/AccuDrawTool.js +102 -128
  413. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  414. package/lib/esm/tools/SetupCameraTools.d.ts +89 -0
  415. package/lib/esm/tools/SetupCameraTools.d.ts.map +1 -0
  416. package/lib/esm/tools/SetupCameraTools.js +439 -0
  417. package/lib/esm/tools/SetupCameraTools.js.map +1 -0
  418. package/lib/esm/tools/ToolAdmin.d.ts +5 -2
  419. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  420. package/lib/esm/tools/ToolAdmin.js +30 -7
  421. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  422. package/lib/esm/tools/ViewTool.d.ts +1 -81
  423. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  424. package/lib/esm/tools/ViewTool.js +14 -409
  425. package/lib/esm/tools/ViewTool.js.map +1 -1
  426. package/lib/public/locales/en/iModelJs.json +2 -1
  427. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  428. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  429. package/package.json +24 -23
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Tools
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AccuDrawShortcutTool = exports.AccuDrawShortcutImplementation = void 0;
11
+ const AccuDraw_1 = require("../AccuDraw");
12
+ const IModelApp_1 = require("../IModelApp");
13
+ const Tool_1 = require("./Tool");
14
+ const ViewTool_1 = require("./ViewTool");
15
+ /** @internal */
16
+ class AccuDrawShortcutImplementation {
17
+ _complete = false;
18
+ get allowShortcut() { return true; }
19
+ get wantAdditionalInput() { return true; } // Whether additional input is required from user...
20
+ onInitialize() { }
21
+ onComplete() { return AccuDraw_1.AccuDrawFlags.SetRMatrix; }
22
+ onProvideToolAssistance() { }
23
+ doDecorate(_context) { }
24
+ doDataButtonDown(ev) {
25
+ return (this._complete = this.doManipulation(ev, false));
26
+ }
27
+ doUnsuspend() {
28
+ this.onProvideToolAssistance();
29
+ }
30
+ doPostInstall() {
31
+ this.onInitialize();
32
+ this.onProvideToolAssistance();
33
+ }
34
+ doCleanup() {
35
+ return this._complete ? this.onComplete() : undefined;
36
+ }
37
+ doProcessImmediate() {
38
+ if (!this.allowShortcut)
39
+ return true;
40
+ if (this.wantAdditionalInput)
41
+ return false;
42
+ this.onInitialize();
43
+ return this.doManipulation(undefined, false);
44
+ }
45
+ }
46
+ exports.AccuDrawShortcutImplementation = AccuDrawShortcutImplementation;
47
+ /** @internal */
48
+ class AccuDrawShortcutInputCollector extends Tool_1.InputCollector {
49
+ _impl;
50
+ constructor(_impl) {
51
+ super();
52
+ this._impl = _impl;
53
+ }
54
+ async onPostInstall() {
55
+ await super.onPostInstall();
56
+ this._impl.doPostInstall();
57
+ IModelApp_1.IModelApp.locateManager.initLocateOptions();
58
+ this.changeLocateState(false, true, undefined, Tool_1.CoordinateLockOverrides.None);
59
+ this._impl.doManipulation(undefined, true);
60
+ }
61
+ async onCleanup() {
62
+ const flags = this._impl.doCleanup();
63
+ if (undefined !== flags)
64
+ IModelApp_1.IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = flags;
65
+ return super.onCleanup();
66
+ }
67
+ async exitTool() {
68
+ await super.exitTool();
69
+ IModelApp_1.IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
70
+ }
71
+ async onDataButtonDown(ev) {
72
+ if (this._impl.doDataButtonDown(ev))
73
+ await this.exitTool();
74
+ return Tool_1.EventHandled.No;
75
+ }
76
+ async onUnsuspend() {
77
+ this._impl.doUnsuspend();
78
+ }
79
+ async onMouseMotion(ev) {
80
+ this._impl.doManipulation(ev, true);
81
+ }
82
+ decorate(context) {
83
+ this._impl.doDecorate(context);
84
+ }
85
+ }
86
+ /** @internal */
87
+ class AccuDrawShortcutViewTool extends ViewTool_1.ViewTool {
88
+ _impl;
89
+ constructor(_impl) {
90
+ super();
91
+ this._impl = _impl;
92
+ }
93
+ async onPostInstall() {
94
+ await super.onPostInstall();
95
+ this._impl.doPostInstall();
96
+ IModelApp_1.IModelApp.locateManager.initLocateOptions();
97
+ this.changeLocateState(false, true, undefined, Tool_1.CoordinateLockOverrides.None);
98
+ this._impl.doManipulation(undefined, true);
99
+ }
100
+ async onCleanup() {
101
+ const flags = this._impl.doCleanup();
102
+ if (undefined !== flags)
103
+ IModelApp_1.IModelApp.accuDraw.savedStateViewTool.ignoreFlags = flags;
104
+ return super.onCleanup();
105
+ }
106
+ async exitTool() {
107
+ await super.exitTool();
108
+ IModelApp_1.IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
109
+ }
110
+ async onDataButtonDown(ev) {
111
+ if (this._impl.doDataButtonDown(ev))
112
+ await this.exitTool();
113
+ return Tool_1.EventHandled.No;
114
+ }
115
+ async onUnsuspend() {
116
+ this._impl.doUnsuspend();
117
+ }
118
+ async onMouseMotion(ev) {
119
+ this._impl.doManipulation(ev, true);
120
+ }
121
+ decorate(context) {
122
+ this._impl.doDecorate(context);
123
+ }
124
+ }
125
+ /** @internal */
126
+ class AccuDrawShortcutTool extends Tool_1.Tool {
127
+ get useViewTool() {
128
+ // Support interactive shortcut when another InputCollector is active (ex. EditManipulator.HandleTool)...
129
+ return IModelApp_1.IModelApp.toolAdmin.activeTool instanceof Tool_1.InputCollector;
130
+ }
131
+ async run(..._args) {
132
+ const impl = this.createImplementation();
133
+ if (impl.doProcessImmediate())
134
+ return true; // Only install interactive tool when additional user input is required...
135
+ return this.useViewTool ? new AccuDrawShortcutViewTool(impl).run() : new AccuDrawShortcutInputCollector(impl).run();
136
+ }
137
+ }
138
+ exports.AccuDrawShortcutTool = AccuDrawShortcutTool;
139
+ //# sourceMappingURL=AccuDrawShortcutTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccuDrawShortcutTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawShortcutTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { AccuDrawFlags } from \"../AccuDraw\";\nimport { IModelApp } from \"../IModelApp\";\nimport { DecorateContext } from \"../ViewContext\";\nimport { BeButtonEvent, CoordinateLockOverrides, EventHandled, InputCollector, Tool } from \"./Tool\";\nimport { ViewTool } from \"./ViewTool\";\n\n/** @internal */\nexport abstract class AccuDrawShortcutImplementation {\n protected _complete = false;\n\n protected get allowShortcut(): boolean { return true; }\n protected get wantAdditionalInput(): boolean { return true; } // Whether additional input is required from user...\n\n protected onInitialize(): void { }\n protected onComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\n protected onProvideToolAssistance(): void { }\n\n public doDecorate(_context: DecorateContext): void { }\n public abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\n\n public doDataButtonDown(ev: BeButtonEvent): boolean {\n return (this._complete = this.doManipulation(ev, false));\n }\n\n public doUnsuspend(): void {\n this.onProvideToolAssistance();\n }\n\n public doPostInstall(): void {\n this.onInitialize();\n this.onProvideToolAssistance();\n }\n\n public doCleanup(): AccuDrawFlags | undefined {\n return this._complete ? this.onComplete() : undefined;\n }\n\n public doProcessImmediate(): boolean {\n if (!this.allowShortcut)\n return true;\n\n if (this.wantAdditionalInput)\n return false;\n\n this.onInitialize();\n return this.doManipulation(undefined, false);\n }\n}\n\n/** @internal */\nclass AccuDrawShortcutInputCollector extends InputCollector {\n public constructor(private readonly _impl: AccuDrawShortcutImplementation) {\n super();\n }\n\n public override async onPostInstall(): Promise<void> {\n await super.onPostInstall();\n this._impl.doPostInstall();\n\n IModelApp.locateManager.initLocateOptions();\n this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);\n this._impl.doManipulation(undefined, true);\n }\n\n public override async onCleanup(): Promise<void> {\n const flags = this._impl.doCleanup();\n if (undefined !== flags)\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = flags;\n return super.onCleanup();\n }\n\n public override async exitTool(): Promise<void> {\n await super.exitTool();\n IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...\n }\n\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\n if (this._impl.doDataButtonDown(ev))\n await this.exitTool();\n return EventHandled.No;\n }\n\n public override async onUnsuspend(): Promise<void> {\n this._impl.doUnsuspend();\n }\n\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\n this._impl.doManipulation(ev, true);\n }\n\n public override decorate(context: DecorateContext): void {\n this._impl.doDecorate(context);\n }\n}\n\n/** @internal */\nclass AccuDrawShortcutViewTool extends ViewTool {\n public constructor(private readonly _impl: AccuDrawShortcutImplementation) {\n super();\n }\n\n public override async onPostInstall(): Promise<void> {\n await super.onPostInstall();\n this._impl.doPostInstall();\n\n IModelApp.locateManager.initLocateOptions();\n this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);\n this._impl.doManipulation(undefined, true);\n }\n\n public override async onCleanup(): Promise<void> {\n const flags = this._impl.doCleanup();\n if (undefined !== flags)\n IModelApp.accuDraw.savedStateViewTool.ignoreFlags = flags;\n return super.onCleanup();\n }\n\n public override async exitTool(): Promise<void> {\n await super.exitTool();\n IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...\n }\n\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\n if (this._impl.doDataButtonDown(ev))\n await this.exitTool();\n return EventHandled.No;\n }\n\n public override async onUnsuspend(): Promise<void> {\n this._impl.doUnsuspend();\n }\n\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\n this._impl.doManipulation(ev, true);\n }\n\n public override decorate(context: DecorateContext): void {\n this._impl.doDecorate(context);\n }\n}\n\n/** @internal */\nexport abstract class AccuDrawShortcutTool extends Tool {\n protected abstract createImplementation(): AccuDrawShortcutImplementation;\n\n protected get useViewTool(): boolean {\n // Support interactive shortcut when another InputCollector is active (ex. EditManipulator.HandleTool)...\n return IModelApp.toolAdmin.activeTool instanceof InputCollector;\n }\n\n public override async run(..._args: any[]): Promise<boolean> {\n const impl = this.createImplementation();\n if (impl.doProcessImmediate())\n return true; // Only install interactive tool when additional user input is required...\n\n return this.useViewTool ? new AccuDrawShortcutViewTool(impl).run() : new AccuDrawShortcutInputCollector(impl).run();\n }\n}"]}
@@ -3,12 +3,11 @@
3
3
  */
4
4
  import { BentleyStatus } from "@itwin/core-bentley";
5
5
  import { Point3d } from "@itwin/core-geometry";
6
- import { AccuDrawFlags, ItemField, RotationMode } from "../AccuDraw";
6
+ import { ItemField, RotationMode } from "../AccuDraw";
7
7
  import { AuxCoordSystemState } from "../AuxCoordSys";
8
- import { SnapDetail } from "../HitDetail";
9
- import { DecorateContext } from "../ViewContext";
10
- import { ScreenViewport, Viewport } from "../Viewport";
11
- import { BeButtonEvent, EventHandled, InputCollector, Tool } from "./Tool";
8
+ import { Viewport } from "../Viewport";
9
+ import { Tool } from "./Tool";
10
+ import { AccuDrawShortcutImplementation, AccuDrawShortcutTool } from "./AccuDrawShortcutTool";
12
11
  /**
13
12
  * A shortcut may require no user input (immediate) or it may install a tool to collect the needed input. AccuDrawShortcuts are how users control AccuDraw.
14
13
  * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.
@@ -151,86 +150,32 @@ export declare class AccuDrawRotate90AboutZTool extends Tool {
151
150
  static toolId: string;
152
151
  run(): Promise<boolean>;
153
152
  }
154
- /** @internal */
155
- declare abstract class AccuDrawShortcutsTool extends InputCollector {
156
- private _complete;
157
- protected get allowShortcut(): boolean;
158
- protected get wantActivateOnStart(): boolean;
159
- protected get wantClearSnapOnStart(): boolean;
160
- protected get wantManipulationImmediate(): boolean;
161
- protected get wantExitOnDataButtonUp(): boolean;
162
- onInstall(): Promise<boolean>;
163
- onPostInstall(): Promise<void>;
164
- onCleanup(): Promise<void>;
165
- exitTool(): Promise<void>;
166
- onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>;
167
- onDataButtonUp(_ev: BeButtonEvent): Promise<EventHandled>;
168
- onMouseMotion(ev: BeButtonEvent): Promise<void>;
169
- protected onManipulationStart(): void;
170
- protected onManipulationComplete(): AccuDrawFlags;
171
- protected abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
172
- }
173
- /** @beta */
174
- export declare class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
153
+ /** @beta */
154
+ export declare class AccuDrawRotateAxesTool extends AccuDrawShortcutTool {
175
155
  aboutCurrentZ: boolean;
176
156
  static toolId: string;
177
157
  static get maxArgs(): number;
178
158
  constructor(aboutCurrentZ?: boolean);
179
159
  /** @internal */
180
- protected get allowShortcut(): boolean;
181
- /** @internal */
182
- protected get wantActivateOnStart(): boolean;
183
- /** @internal */
184
- protected get wantManipulationImmediate(): boolean;
185
- /** @internal */
186
- protected onManipulationStart(): void;
187
- /** @internal */
188
- protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
160
+ protected createImplementation(): AccuDrawShortcutImplementation;
189
161
  parseAndRun(...args: any[]): Promise<boolean>;
190
162
  }
191
163
  /** @beta */
192
- export declare class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {
164
+ export declare class AccuDrawRotateElementTool extends AccuDrawShortcutTool {
193
165
  static toolId: string;
194
- private _moveOrigin;
195
- /** @internal */
196
- protected get wantActivateOnStart(): boolean;
197
- /** @internal */
198
- protected get wantManipulationImmediate(): boolean;
199
- /** @internal */
200
- protected onManipulationStart(): void;
201
166
  /** @internal */
202
- protected onManipulationComplete(): AccuDrawFlags;
203
- /** @internal */
204
- protected updateOrientation(snap: SnapDetail, viewport: ScreenViewport, _isMotion: boolean): boolean;
205
- /** @internal */
206
- protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
167
+ protected createImplementation(): AccuDrawShortcutImplementation;
207
168
  }
208
169
  /** @beta */
209
- export declare class DefineACSByElementTool extends AccuDrawShortcutsTool {
170
+ export declare class DefineACSByElementTool extends AccuDrawShortcutTool {
210
171
  static toolId: string;
211
- private _origin;
212
- private _rMatrix;
213
- private _acs?;
214
- /** @internal */
215
- protected onManipulationStart(): void;
216
- /** @internal */
217
- protected updateOrientation(snap: SnapDetail, vp: Viewport): boolean;
218
172
  /** @internal */
219
- protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
220
- /** @internal */
221
- decorate(context: DecorateContext): void;
173
+ protected createImplementation(): AccuDrawShortcutImplementation;
222
174
  }
223
175
  /** @beta */
224
- export declare class DefineACSByPointsTool extends AccuDrawShortcutsTool {
176
+ export declare class DefineACSByPointsTool extends AccuDrawShortcutTool {
225
177
  static toolId: string;
226
- private readonly _points;
227
- private _acs?;
228
- /** @internal */
229
- protected onManipulationStart(): void;
230
- /** @internal */
231
- protected doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;
232
178
  /** @internal */
233
- decorate(context: DecorateContext): void;
179
+ protected createImplementation(): AccuDrawShortcutImplementation;
234
180
  }
235
- export {};
236
181
  //# sourceMappingURL=AccuDrawTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawTool.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccuDrawTool.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ const AccuSnap_1 = require("../AccuSnap");
15
15
  const AuxCoordSys_1 = require("../AuxCoordSys");
16
16
  const IModelApp_1 = require("../IModelApp");
17
17
  const Tool_1 = require("./Tool");
18
+ const AccuDrawShortcutTool_1 = require("./AccuDrawShortcutTool");
18
19
  // cSpell:ignore dont unlockedz
19
20
  function normalizedDifference(point1, point2, out) {
20
21
  return point2.vectorTo(point1).normalizeWithLength(out).mag;
@@ -132,13 +133,11 @@ class AccuDrawShortcuts {
132
133
  }
133
134
  return accept;
134
135
  }
135
- static processPendingHints() { IModelApp_1.IModelApp.accuDraw.processHints(); }
136
+ static processPendingHints() {
137
+ IModelApp_1.IModelApp.accuDraw.processHints();
138
+ }
136
139
  static requestInputFocus() {
137
- const accudraw = IModelApp_1.IModelApp.accuDraw;
138
- if (!accudraw.isEnabled)
139
- return;
140
- accudraw.grabInputFocus();
141
- accudraw.refreshDecorationsAndDynamics();
140
+ IModelApp_1.IModelApp.accuDraw.requestInputFocus();
142
141
  }
143
142
  // Helper method for GUI implementation...
144
143
  static async itemFieldNavigate(index, str, forward) {
@@ -1002,99 +1001,34 @@ class AccuDrawRotate90AboutZTool extends Tool_1.Tool {
1002
1001
  }
1003
1002
  exports.AccuDrawRotate90AboutZTool = AccuDrawRotate90AboutZTool;
1004
1003
  /** @internal */
1005
- class AccuDrawShortcutsTool extends Tool_1.InputCollector {
1006
- _complete = false;
1007
- get allowShortcut() { return this.wantActivateOnStart ? IModelApp_1.IModelApp.accuDraw.isEnabled : true; }
1008
- get wantActivateOnStart() { return false; } // Whether to automatically enable AccuDraw before the 1st data button...
1009
- get wantClearSnapOnStart() { return false; } // Whether to preserve active Tentative/AccuSnap on install...
1010
- get wantManipulationImmediate() { return false; } // Whether additional input is required to process on install...
1011
- get wantExitOnDataButtonUp() { return false; } // Whether to exit on button up instead of down...
1012
- async onInstall() {
1013
- if (!this.allowShortcut)
1014
- return false;
1015
- return super.onInstall();
1016
- }
1017
- async onPostInstall() {
1018
- await super.onPostInstall();
1019
- if (this.wantActivateOnStart)
1020
- IModelApp_1.IModelApp.accuDraw.activate();
1021
- this.onManipulationStart();
1022
- if (this.wantManipulationImmediate && this.doManipulation(undefined, false)) {
1023
- this._complete = true;
1024
- return this.exitTool();
1025
- }
1026
- // NOTE: InputCollector inherits suspended primitive's state, set everything...
1027
- if (this.wantClearSnapOnStart) {
1028
- this.initLocateElements(false, true, undefined, Tool_1.CoordinateLockOverrides.None); // This clears the active Tentative/AccuSnap, some shortcuts have special behavior when invoked with an active snap...
1029
- }
1030
- else {
1031
- IModelApp_1.IModelApp.locateManager.initLocateOptions();
1032
- this.changeLocateState(false, true, undefined, Tool_1.CoordinateLockOverrides.None);
1033
- }
1034
- this.doManipulation(undefined, true);
1035
- ;
1036
- }
1037
- async onCleanup() {
1038
- if (this._complete)
1039
- IModelApp_1.IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();
1040
- }
1041
- async exitTool() {
1042
- await super.exitTool();
1043
- AccuDrawShortcuts.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
1044
- }
1045
- async onDataButtonDown(ev) {
1046
- if (this.doManipulation(ev, false)) {
1047
- this._complete = true;
1048
- if (!this.wantExitOnDataButtonUp)
1049
- await this.exitTool();
1050
- }
1051
- return Tool_1.EventHandled.No;
1052
- }
1053
- async onDataButtonUp(_ev) {
1054
- if (this._complete && this.wantExitOnDataButtonUp)
1055
- await this.exitTool();
1056
- return Tool_1.EventHandled.No;
1057
- }
1058
- async onMouseMotion(ev) {
1059
- this.doManipulation(ev, true);
1060
- }
1061
- onManipulationStart() { }
1062
- onManipulationComplete() { return AccuDraw_1.AccuDrawFlags.SetRMatrix; }
1063
- }
1064
- /** @beta */
1065
- class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
1066
- aboutCurrentZ;
1067
- static toolId = "AccuDraw.RotateAxes";
1068
- static get maxArgs() { return 1; }
1069
- constructor(aboutCurrentZ = true) {
1004
+ class RotateAxesImplementation extends AccuDrawShortcutTool_1.AccuDrawShortcutImplementation {
1005
+ _aboutCurrentZ;
1006
+ constructor(_aboutCurrentZ) {
1070
1007
  super();
1071
- this.aboutCurrentZ = aboutCurrentZ;
1008
+ this._aboutCurrentZ = _aboutCurrentZ;
1072
1009
  }
1073
- /** @internal */
1074
1010
  get allowShortcut() { return IModelApp_1.IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...
1075
- /** @internal */
1076
- get wantActivateOnStart() { return true; } // State is demoted to inactive when a tool install, still need this...
1077
- /** @internal */
1078
- get wantManipulationImmediate() {
1011
+ get wantAdditionalInput() {
1079
1012
  if (AccuSnap_1.TentativeOrAccuSnap.isHot)
1080
- return true;
1013
+ return false;
1081
1014
  const accudraw = IModelApp_1.IModelApp.accuDraw;
1082
1015
  if (AccuDraw_1.CompassMode.Polar === accudraw.compassMode)
1083
- return accudraw.getFieldLock(AccuDraw_1.ItemField.ANGLE_Item);
1084
- return accudraw.getFieldLock(AccuDraw_1.ItemField.X_Item) && accudraw.getFieldLock(AccuDraw_1.ItemField.Y_Item);
1016
+ return !accudraw.getFieldLock(AccuDraw_1.ItemField.ANGLE_Item);
1017
+ return !(accudraw.getFieldLock(AccuDraw_1.ItemField.X_Item) && accudraw.getFieldLock(AccuDraw_1.ItemField.Y_Item));
1085
1018
  }
1086
- /** @internal */
1087
- onManipulationStart() {
1088
- if (this.aboutCurrentZ)
1089
- IModelApp_1.IModelApp.accuDraw.changeBaseRotationMode(AccuDraw_1.RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...
1019
+ onProvideToolAssistance() {
1090
1020
  Tool_1.CoreTools.outputPromptByKey("AccuDraw.RotateAxes.Prompts.FirstPoint");
1091
1021
  }
1092
- /** @internal */
1022
+ onInitialize() {
1023
+ IModelApp_1.IModelApp.accuDraw.activate(); // State demoted to inactive by tool install...
1024
+ if (this._aboutCurrentZ)
1025
+ IModelApp_1.IModelApp.accuDraw.changeBaseRotationMode(AccuDraw_1.RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...
1026
+ }
1093
1027
  doManipulation(ev, isMotion) {
1094
1028
  const vp = ev ? ev.viewport : IModelApp_1.IModelApp.accuDraw.currentView;
1095
1029
  if (!vp)
1096
1030
  return false;
1097
- if (!AccuDrawShortcuts.rotateAxesByPoint(AccuSnap_1.TentativeOrAccuSnap.isHot, this.aboutCurrentZ))
1031
+ if (!AccuDrawShortcuts.rotateAxesByPoint(AccuSnap_1.TentativeOrAccuSnap.isHot, this._aboutCurrentZ))
1098
1032
  return false;
1099
1033
  vp.invalidateDecorations();
1100
1034
  if (!isMotion) {
@@ -1103,37 +1037,48 @@ class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
1103
1037
  }
1104
1038
  return true;
1105
1039
  }
1040
+ }
1041
+ /** @beta */
1042
+ class AccuDrawRotateAxesTool extends AccuDrawShortcutTool_1.AccuDrawShortcutTool {
1043
+ aboutCurrentZ;
1044
+ static toolId = "AccuDraw.RotateAxes";
1045
+ static get maxArgs() { return 1; }
1046
+ constructor(aboutCurrentZ = true) {
1047
+ super();
1048
+ this.aboutCurrentZ = aboutCurrentZ;
1049
+ }
1050
+ /** @internal */
1051
+ createImplementation() {
1052
+ return new RotateAxesImplementation(this.aboutCurrentZ);
1053
+ }
1106
1054
  async parseAndRun(...args) {
1107
1055
  for (const arg of args) {
1108
1056
  if (arg.toLowerCase() === "unlockedz")
1109
1057
  this.aboutCurrentZ = false;
1110
1058
  }
1111
- return this.run(args);
1059
+ return this.run();
1112
1060
  }
1113
1061
  }
1114
1062
  exports.AccuDrawRotateAxesTool = AccuDrawRotateAxesTool;
1115
- /** @beta */
1116
- class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {
1117
- static toolId = "AccuDraw.RotateElement";
1063
+ /** @internal */
1064
+ class RotateElementImplementation extends AccuDrawShortcutTool_1.AccuDrawShortcutImplementation {
1118
1065
  _moveOrigin = !IModelApp_1.IModelApp.accuDraw.isActive || IModelApp_1.IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...
1119
- /** @internal */
1120
- get wantActivateOnStart() { return true; }
1121
- /** @internal */
1122
- get wantManipulationImmediate() { return IModelApp_1.IModelApp.tentativePoint.isSnapped; }
1123
- /** @internal */
1124
- onManipulationStart() {
1125
- IModelApp_1.IModelApp.accuDraw.setContext(AccuDraw_1.AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...
1066
+ get allowShortcut() { return IModelApp_1.IModelApp.accuDraw.isEnabled; } // Require AccuDraw to be enabled by the application for this shortcut...
1067
+ get wantAdditionalInput() { return !IModelApp_1.IModelApp.tentativePoint.isSnapped; }
1068
+ onProvideToolAssistance() {
1126
1069
  Tool_1.CoreTools.outputPromptByKey("AccuDraw.RotateElement.Prompts.FirstPoint");
1127
1070
  }
1128
- /** @internal */
1129
- onManipulationComplete() {
1071
+ onInitialize() {
1072
+ IModelApp_1.IModelApp.accuDraw.activate();
1073
+ IModelApp_1.IModelApp.accuDraw.setContext(AccuDraw_1.AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...
1074
+ }
1075
+ onComplete() {
1130
1076
  let ignoreFlags = AccuDraw_1.AccuDrawFlags.SetRMatrix | AccuDraw_1.AccuDrawFlags.Disable; // If AccuDraw wasn't active when the shortcut started, let it remain active for suspended tool when shortcut completes...
1131
1077
  if (this._moveOrigin)
1132
1078
  ignoreFlags |= AccuDraw_1.AccuDrawFlags.SetOrigin;
1133
1079
  return ignoreFlags;
1134
1080
  }
1135
- /** @internal */
1136
- updateOrientation(snap, viewport, _isMotion) {
1081
+ updateOrientation(snap, viewport) {
1137
1082
  const accudraw = IModelApp_1.IModelApp.accuDraw;
1138
1083
  const rMatrix = AccuDraw_1.AccuDraw.getSnapRotation(snap, viewport);
1139
1084
  if (undefined === rMatrix)
@@ -1142,31 +1087,40 @@ class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {
1142
1087
  accudraw.setContext(AccuDraw_1.AccuDrawFlags.SetRMatrix | AccuDraw_1.AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);
1143
1088
  return true;
1144
1089
  }
1145
- /** @internal */
1146
1090
  doManipulation(ev, isMotion) {
1147
1091
  const viewport = ev ? ev.viewport : IModelApp_1.IModelApp.accuDraw.currentView;
1148
1092
  if (!viewport)
1149
1093
  return false;
1150
1094
  const snap = AccuSnap_1.TentativeOrAccuSnap.getCurrentSnap(false);
1151
- if (undefined === snap || !this.updateOrientation(snap, viewport, isMotion))
1095
+ if (undefined === snap || !this.updateOrientation(snap, viewport))
1152
1096
  return false;
1153
1097
  if (undefined === ev)
1154
1098
  AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...
1099
+ const vp = ev ? ev.viewport : IModelApp_1.IModelApp.accuDraw.currentView;
1100
+ if (vp)
1101
+ vp.invalidateDecorations();
1155
1102
  if (!isMotion)
1156
1103
  IModelApp_1.IModelApp.accuDraw.changeBaseRotationMode(AccuDraw_1.RotationMode.Context); // Hold temporary rotation for tool duration...
1157
1104
  return true;
1158
1105
  }
1159
1106
  }
1160
- exports.AccuDrawRotateElementTool = AccuDrawRotateElementTool;
1161
1107
  /** @beta */
1162
- class DefineACSByElementTool extends AccuDrawShortcutsTool {
1163
- static toolId = "AccuDraw.DefineACSByElement";
1108
+ class AccuDrawRotateElementTool extends AccuDrawShortcutTool_1.AccuDrawShortcutTool {
1109
+ static toolId = "AccuDraw.RotateElement";
1110
+ /** @internal */
1111
+ createImplementation() {
1112
+ return new RotateElementImplementation();
1113
+ }
1114
+ }
1115
+ exports.AccuDrawRotateElementTool = AccuDrawRotateElementTool;
1116
+ /** @internal */
1117
+ class DefineACSByElementImplementation extends AccuDrawShortcutTool_1.AccuDrawShortcutImplementation {
1164
1118
  _origin = core_geometry_1.Point3d.create();
1165
1119
  _rMatrix = core_geometry_1.Matrix3d.createIdentity();
1166
1120
  _acs;
1167
- /** @internal */
1168
- onManipulationStart() { Tool_1.CoreTools.outputPromptByKey("AccuDraw.DefineACSByElement.Prompts.FirstPoint"); }
1169
- /** @internal */
1121
+ onProvideToolAssistance() {
1122
+ Tool_1.CoreTools.outputPromptByKey("AccuDraw.DefineACSByElement.Prompts.FirstPoint");
1123
+ }
1170
1124
  updateOrientation(snap, vp) {
1171
1125
  const rMatrix = AccuDraw_1.AccuDraw.getSnapRotation(snap, vp);
1172
1126
  if (undefined === rMatrix)
@@ -1175,7 +1129,6 @@ class DefineACSByElementTool extends AccuDrawShortcutsTool {
1175
1129
  this._rMatrix = rMatrix;
1176
1130
  return true;
1177
1131
  }
1178
- /** @internal */
1179
1132
  doManipulation(ev, isMotion) {
1180
1133
  const vp = ev ? ev.viewport : undefined;
1181
1134
  if (!vp)
@@ -1194,8 +1147,7 @@ class DefineACSByElementTool extends AccuDrawShortcutsTool {
1194
1147
  AccuDrawShortcuts.rotateToACS();
1195
1148
  return true;
1196
1149
  }
1197
- /** @internal */
1198
- decorate(context) {
1150
+ doDecorate(context) {
1199
1151
  const vp = context.viewport;
1200
1152
  if (!this._acs)
1201
1153
  this._acs = vp.view.auxiliaryCoordinateSystem.clone();
@@ -1204,25 +1156,40 @@ class DefineACSByElementTool extends AccuDrawShortcutsTool {
1204
1156
  this._acs.display(context, AuxCoordSys_1.ACSDisplayOptions.Active | AuxCoordSys_1.ACSDisplayOptions.Dynamics);
1205
1157
  }
1206
1158
  }
1207
- exports.DefineACSByElementTool = DefineACSByElementTool;
1208
1159
  /** @beta */
1209
- class DefineACSByPointsTool extends AccuDrawShortcutsTool {
1210
- static toolId = "AccuDraw.DefineACSByPoints";
1160
+ class DefineACSByElementTool extends AccuDrawShortcutTool_1.AccuDrawShortcutTool {
1161
+ static toolId = "AccuDraw.DefineACSByElement";
1162
+ /** @internal */
1163
+ createImplementation() {
1164
+ return new DefineACSByElementImplementation();
1165
+ }
1166
+ }
1167
+ exports.DefineACSByElementTool = DefineACSByElementTool;
1168
+ /** @internal */
1169
+ class DefineACSByPointsImplementation extends AccuDrawShortcutTool_1.AccuDrawShortcutImplementation {
1211
1170
  _points = [];
1212
1171
  _acs;
1213
- /** @internal */
1214
- onManipulationStart() {
1215
- if (!IModelApp_1.IModelApp.tentativePoint.isActive) {
1216
- Tool_1.CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.FirstPoint");
1217
- return;
1172
+ _origin = IModelApp_1.IModelApp.tentativePoint.isActive ? IModelApp_1.IModelApp.tentativePoint.getPoint().clone() : undefined;
1173
+ onProvideToolAssistance() {
1174
+ switch (this._points.length) {
1175
+ case 0:
1176
+ Tool_1.CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.FirstPoint");
1177
+ break;
1178
+ case 1:
1179
+ Tool_1.CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.SecondPoint");
1180
+ break;
1181
+ default:
1182
+ Tool_1.CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.NextPoint");
1183
+ break;
1218
1184
  }
1219
- const origin = IModelApp_1.IModelApp.tentativePoint.getPoint().clone();
1220
- Tool_1.CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.SecondPoint");
1221
- IModelApp_1.IModelApp.accuDraw.setContext(AccuDraw_1.AccuDrawFlags.SetOrigin | AccuDraw_1.AccuDrawFlags.FixedOrigin, origin);
1222
- this._points.push(origin);
1223
- IModelApp_1.IModelApp.tentativePoint.clear(true);
1224
1185
  }
1225
- /** @internal */
1186
+ onInitialize() {
1187
+ if (undefined === this._origin)
1188
+ return;
1189
+ IModelApp_1.IModelApp.accuDraw.setContext(AccuDraw_1.AccuDrawFlags.SetOrigin | AccuDraw_1.AccuDrawFlags.FixedOrigin, this._origin);
1190
+ this._points.push(this._origin);
1191
+ IModelApp_1.IModelApp.tentativePoint.clear(true); // Necessary when installed as an InputCollector...
1192
+ }
1226
1193
  doManipulation(ev, isMotion) {
1227
1194
  if (!ev || !ev.viewport)
1228
1195
  return false;
@@ -1239,11 +1206,10 @@ class DefineACSByPointsTool extends AccuDrawShortcutsTool {
1239
1206
  AccuDrawShortcuts.rotateToACS();
1240
1207
  return true;
1241
1208
  }
1242
- Tool_1.CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? ".SecondPoint" : ".NextPoint"}`);
1209
+ this.onProvideToolAssistance();
1243
1210
  return false;
1244
1211
  }
1245
- /** @internal */
1246
- decorate(context) {
1212
+ doDecorate(context) {
1247
1213
  const tmpPoints = [];
1248
1214
  this._points.forEach((pt) => tmpPoints.push(pt));
1249
1215
  const ev = new Tool_1.BeButtonEvent();
@@ -1256,5 +1222,13 @@ class DefineACSByPointsTool extends AccuDrawShortcutsTool {
1256
1222
  this._acs.display(context, AuxCoordSys_1.ACSDisplayOptions.Active | AuxCoordSys_1.ACSDisplayOptions.Dynamics);
1257
1223
  }
1258
1224
  }
1225
+ /** @beta */
1226
+ class DefineACSByPointsTool extends AccuDrawShortcutTool_1.AccuDrawShortcutTool {
1227
+ static toolId = "AccuDraw.DefineACSByPoints";
1228
+ /** @internal */
1229
+ createImplementation() {
1230
+ return new DefineACSByPointsImplementation();
1231
+ }
1232
+ }
1259
1233
  exports.DefineACSByPointsTool = DefineACSByPointsTool;
1260
1234
  //# sourceMappingURL=AccuDrawTool.js.map