@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,134 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Tools
7
+ */
8
+ import { AccuDrawFlags } from "../AccuDraw";
9
+ import { IModelApp } from "../IModelApp";
10
+ import { CoordinateLockOverrides, EventHandled, InputCollector, Tool } from "./Tool";
11
+ import { ViewTool } from "./ViewTool";
12
+ /** @internal */
13
+ export class AccuDrawShortcutImplementation {
14
+ _complete = false;
15
+ get allowShortcut() { return true; }
16
+ get wantAdditionalInput() { return true; } // Whether additional input is required from user...
17
+ onInitialize() { }
18
+ onComplete() { return AccuDrawFlags.SetRMatrix; }
19
+ onProvideToolAssistance() { }
20
+ doDecorate(_context) { }
21
+ doDataButtonDown(ev) {
22
+ return (this._complete = this.doManipulation(ev, false));
23
+ }
24
+ doUnsuspend() {
25
+ this.onProvideToolAssistance();
26
+ }
27
+ doPostInstall() {
28
+ this.onInitialize();
29
+ this.onProvideToolAssistance();
30
+ }
31
+ doCleanup() {
32
+ return this._complete ? this.onComplete() : undefined;
33
+ }
34
+ doProcessImmediate() {
35
+ if (!this.allowShortcut)
36
+ return true;
37
+ if (this.wantAdditionalInput)
38
+ return false;
39
+ this.onInitialize();
40
+ return this.doManipulation(undefined, false);
41
+ }
42
+ }
43
+ /** @internal */
44
+ class AccuDrawShortcutInputCollector extends InputCollector {
45
+ _impl;
46
+ constructor(_impl) {
47
+ super();
48
+ this._impl = _impl;
49
+ }
50
+ async onPostInstall() {
51
+ await super.onPostInstall();
52
+ this._impl.doPostInstall();
53
+ IModelApp.locateManager.initLocateOptions();
54
+ this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);
55
+ this._impl.doManipulation(undefined, true);
56
+ }
57
+ async onCleanup() {
58
+ const flags = this._impl.doCleanup();
59
+ if (undefined !== flags)
60
+ IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = flags;
61
+ return super.onCleanup();
62
+ }
63
+ async exitTool() {
64
+ await super.exitTool();
65
+ IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
66
+ }
67
+ async onDataButtonDown(ev) {
68
+ if (this._impl.doDataButtonDown(ev))
69
+ await this.exitTool();
70
+ return EventHandled.No;
71
+ }
72
+ async onUnsuspend() {
73
+ this._impl.doUnsuspend();
74
+ }
75
+ async onMouseMotion(ev) {
76
+ this._impl.doManipulation(ev, true);
77
+ }
78
+ decorate(context) {
79
+ this._impl.doDecorate(context);
80
+ }
81
+ }
82
+ /** @internal */
83
+ class AccuDrawShortcutViewTool extends ViewTool {
84
+ _impl;
85
+ constructor(_impl) {
86
+ super();
87
+ this._impl = _impl;
88
+ }
89
+ async onPostInstall() {
90
+ await super.onPostInstall();
91
+ this._impl.doPostInstall();
92
+ IModelApp.locateManager.initLocateOptions();
93
+ this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);
94
+ this._impl.doManipulation(undefined, true);
95
+ }
96
+ async onCleanup() {
97
+ const flags = this._impl.doCleanup();
98
+ if (undefined !== flags)
99
+ IModelApp.accuDraw.savedStateViewTool.ignoreFlags = flags;
100
+ return super.onCleanup();
101
+ }
102
+ async exitTool() {
103
+ await super.exitTool();
104
+ IModelApp.accuDraw.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
105
+ }
106
+ async onDataButtonDown(ev) {
107
+ if (this._impl.doDataButtonDown(ev))
108
+ await this.exitTool();
109
+ return EventHandled.No;
110
+ }
111
+ async onUnsuspend() {
112
+ this._impl.doUnsuspend();
113
+ }
114
+ async onMouseMotion(ev) {
115
+ this._impl.doManipulation(ev, true);
116
+ }
117
+ decorate(context) {
118
+ this._impl.doDecorate(context);
119
+ }
120
+ }
121
+ /** @internal */
122
+ export class AccuDrawShortcutTool extends Tool {
123
+ get useViewTool() {
124
+ // Support interactive shortcut when another InputCollector is active (ex. EditManipulator.HandleTool)...
125
+ return IModelApp.toolAdmin.activeTool instanceof InputCollector;
126
+ }
127
+ async run(..._args) {
128
+ const impl = this.createImplementation();
129
+ if (impl.doProcessImmediate())
130
+ return true; // Only install interactive tool when additional user input is required...
131
+ return this.useViewTool ? new AccuDrawShortcutViewTool(impl).run() : new AccuDrawShortcutInputCollector(impl).run();
132
+ }
133
+ }
134
+ //# 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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"}
@@ -11,7 +11,8 @@ import { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStat
11
11
  import { TentativeOrAccuSnap } from "../AccuSnap";
12
12
  import { ACSDisplayOptions } from "../AuxCoordSys";
13
13
  import { IModelApp } from "../IModelApp";
14
- import { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputCollector, Tool } from "./Tool";
14
+ import { BeButtonEvent, CoreTools, Tool } from "./Tool";
15
+ import { AccuDrawShortcutImplementation, AccuDrawShortcutTool } from "./AccuDrawShortcutTool";
15
16
  // cSpell:ignore dont unlockedz
16
17
  function normalizedDifference(point1, point2, out) {
17
18
  return point2.vectorTo(point1).normalizeWithLength(out).mag;
@@ -129,13 +130,11 @@ export class AccuDrawShortcuts {
129
130
  }
130
131
  return accept;
131
132
  }
132
- static processPendingHints() { IModelApp.accuDraw.processHints(); }
133
+ static processPendingHints() {
134
+ IModelApp.accuDraw.processHints();
135
+ }
133
136
  static requestInputFocus() {
134
- const accudraw = IModelApp.accuDraw;
135
- if (!accudraw.isEnabled)
136
- return;
137
- accudraw.grabInputFocus();
138
- accudraw.refreshDecorationsAndDynamics();
137
+ IModelApp.accuDraw.requestInputFocus();
139
138
  }
140
139
  // Helper method for GUI implementation...
141
140
  static async itemFieldNavigate(index, str, forward) {
@@ -979,99 +978,34 @@ export class AccuDrawRotate90AboutZTool extends Tool {
979
978
  }
980
979
  }
981
980
  /** @internal */
982
- class AccuDrawShortcutsTool extends InputCollector {
983
- _complete = false;
984
- get allowShortcut() { return this.wantActivateOnStart ? IModelApp.accuDraw.isEnabled : true; }
985
- get wantActivateOnStart() { return false; } // Whether to automatically enable AccuDraw before the 1st data button...
986
- get wantClearSnapOnStart() { return false; } // Whether to preserve active Tentative/AccuSnap on install...
987
- get wantManipulationImmediate() { return false; } // Whether additional input is required to process on install...
988
- get wantExitOnDataButtonUp() { return false; } // Whether to exit on button up instead of down...
989
- async onInstall() {
990
- if (!this.allowShortcut)
991
- return false;
992
- return super.onInstall();
993
- }
994
- async onPostInstall() {
995
- await super.onPostInstall();
996
- if (this.wantActivateOnStart)
997
- IModelApp.accuDraw.activate();
998
- this.onManipulationStart();
999
- if (this.wantManipulationImmediate && this.doManipulation(undefined, false)) {
1000
- this._complete = true;
1001
- return this.exitTool();
1002
- }
1003
- // NOTE: InputCollector inherits suspended primitive's state, set everything...
1004
- if (this.wantClearSnapOnStart) {
1005
- this.initLocateElements(false, true, undefined, CoordinateLockOverrides.None); // This clears the active Tentative/AccuSnap, some shortcuts have special behavior when invoked with an active snap...
1006
- }
1007
- else {
1008
- IModelApp.locateManager.initLocateOptions();
1009
- this.changeLocateState(false, true, undefined, CoordinateLockOverrides.None);
1010
- }
1011
- this.doManipulation(undefined, true);
1012
- ;
1013
- }
1014
- async onCleanup() {
1015
- if (this._complete)
1016
- IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();
1017
- }
1018
- async exitTool() {
1019
- await super.exitTool();
1020
- AccuDrawShortcuts.requestInputFocus(); // re-grab focus when auto-focus tool setting set...
1021
- }
1022
- async onDataButtonDown(ev) {
1023
- if (this.doManipulation(ev, false)) {
1024
- this._complete = true;
1025
- if (!this.wantExitOnDataButtonUp)
1026
- await this.exitTool();
1027
- }
1028
- return EventHandled.No;
1029
- }
1030
- async onDataButtonUp(_ev) {
1031
- if (this._complete && this.wantExitOnDataButtonUp)
1032
- await this.exitTool();
1033
- return EventHandled.No;
1034
- }
1035
- async onMouseMotion(ev) {
1036
- this.doManipulation(ev, true);
1037
- }
1038
- onManipulationStart() { }
1039
- onManipulationComplete() { return AccuDrawFlags.SetRMatrix; }
1040
- }
1041
- /** @beta */
1042
- export class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
1043
- aboutCurrentZ;
1044
- static toolId = "AccuDraw.RotateAxes";
1045
- static get maxArgs() { return 1; }
1046
- constructor(aboutCurrentZ = true) {
981
+ class RotateAxesImplementation extends AccuDrawShortcutImplementation {
982
+ _aboutCurrentZ;
983
+ constructor(_aboutCurrentZ) {
1047
984
  super();
1048
- this.aboutCurrentZ = aboutCurrentZ;
985
+ this._aboutCurrentZ = _aboutCurrentZ;
1049
986
  }
1050
- /** @internal */
1051
987
  get allowShortcut() { return IModelApp.accuDraw.isActive; } // Require compass to already be active for this shortcut...
1052
- /** @internal */
1053
- get wantActivateOnStart() { return true; } // State is demoted to inactive when a tool install, still need this...
1054
- /** @internal */
1055
- get wantManipulationImmediate() {
988
+ get wantAdditionalInput() {
1056
989
  if (TentativeOrAccuSnap.isHot)
1057
- return true;
990
+ return false;
1058
991
  const accudraw = IModelApp.accuDraw;
1059
992
  if (CompassMode.Polar === accudraw.compassMode)
1060
- return accudraw.getFieldLock(ItemField.ANGLE_Item);
1061
- return accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item);
993
+ return !accudraw.getFieldLock(ItemField.ANGLE_Item);
994
+ return !(accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item));
1062
995
  }
1063
- /** @internal */
1064
- onManipulationStart() {
1065
- if (this.aboutCurrentZ)
1066
- IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...
996
+ onProvideToolAssistance() {
1067
997
  CoreTools.outputPromptByKey("AccuDraw.RotateAxes.Prompts.FirstPoint");
1068
998
  }
1069
- /** @internal */
999
+ onInitialize() {
1000
+ IModelApp.accuDraw.activate(); // State demoted to inactive by tool install...
1001
+ if (this._aboutCurrentZ)
1002
+ IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base for when defining compass rotation by x axis...
1003
+ }
1070
1004
  doManipulation(ev, isMotion) {
1071
1005
  const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;
1072
1006
  if (!vp)
1073
1007
  return false;
1074
- if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.aboutCurrentZ))
1008
+ if (!AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this._aboutCurrentZ))
1075
1009
  return false;
1076
1010
  vp.invalidateDecorations();
1077
1011
  if (!isMotion) {
@@ -1080,36 +1014,47 @@ export class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {
1080
1014
  }
1081
1015
  return true;
1082
1016
  }
1017
+ }
1018
+ /** @beta */
1019
+ export class AccuDrawRotateAxesTool extends AccuDrawShortcutTool {
1020
+ aboutCurrentZ;
1021
+ static toolId = "AccuDraw.RotateAxes";
1022
+ static get maxArgs() { return 1; }
1023
+ constructor(aboutCurrentZ = true) {
1024
+ super();
1025
+ this.aboutCurrentZ = aboutCurrentZ;
1026
+ }
1027
+ /** @internal */
1028
+ createImplementation() {
1029
+ return new RotateAxesImplementation(this.aboutCurrentZ);
1030
+ }
1083
1031
  async parseAndRun(...args) {
1084
1032
  for (const arg of args) {
1085
1033
  if (arg.toLowerCase() === "unlockedz")
1086
1034
  this.aboutCurrentZ = false;
1087
1035
  }
1088
- return this.run(args);
1036
+ return this.run();
1089
1037
  }
1090
1038
  }
1091
- /** @beta */
1092
- export class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {
1093
- static toolId = "AccuDraw.RotateElement";
1039
+ /** @internal */
1040
+ class RotateElementImplementation extends AccuDrawShortcutImplementation {
1094
1041
  _moveOrigin = !IModelApp.accuDraw.isActive || IModelApp.tentativePoint.isActive; // Preserve current origin if AccuDraw already active and not tentative snap...
1095
- /** @internal */
1096
- get wantActivateOnStart() { return true; }
1097
- /** @internal */
1098
- get wantManipulationImmediate() { return IModelApp.tentativePoint.isSnapped; }
1099
- /** @internal */
1100
- onManipulationStart() {
1101
- IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...
1042
+ get allowShortcut() { return IModelApp.accuDraw.isEnabled; } // Require AccuDraw to be enabled by the application for this shortcut...
1043
+ get wantAdditionalInput() { return !IModelApp.tentativePoint.isSnapped; }
1044
+ onProvideToolAssistance() {
1102
1045
  CoreTools.outputPromptByKey("AccuDraw.RotateElement.Prompts.FirstPoint");
1103
1046
  }
1104
- /** @internal */
1105
- onManipulationComplete() {
1047
+ onInitialize() {
1048
+ IModelApp.accuDraw.activate();
1049
+ IModelApp.accuDraw.setContext(AccuDrawFlags.FixedOrigin); // Don't move compass when updateOrientation returns false...
1050
+ }
1051
+ onComplete() {
1106
1052
  let ignoreFlags = AccuDrawFlags.SetRMatrix | AccuDrawFlags.Disable; // If AccuDraw wasn't active when the shortcut started, let it remain active for suspended tool when shortcut completes...
1107
1053
  if (this._moveOrigin)
1108
1054
  ignoreFlags |= AccuDrawFlags.SetOrigin;
1109
1055
  return ignoreFlags;
1110
1056
  }
1111
- /** @internal */
1112
- updateOrientation(snap, viewport, _isMotion) {
1057
+ updateOrientation(snap, viewport) {
1113
1058
  const accudraw = IModelApp.accuDraw;
1114
1059
  const rMatrix = AccuDraw.getSnapRotation(snap, viewport);
1115
1060
  if (undefined === rMatrix)
@@ -1118,30 +1063,39 @@ export class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {
1118
1063
  accudraw.setContext(AccuDrawFlags.SetRMatrix | AccuDrawFlags.AlwaysSetOrigin, point, rMatrix);
1119
1064
  return true;
1120
1065
  }
1121
- /** @internal */
1122
1066
  doManipulation(ev, isMotion) {
1123
1067
  const viewport = ev ? ev.viewport : IModelApp.accuDraw.currentView;
1124
1068
  if (!viewport)
1125
1069
  return false;
1126
1070
  const snap = TentativeOrAccuSnap.getCurrentSnap(false);
1127
- if (undefined === snap || !this.updateOrientation(snap, viewport, isMotion))
1071
+ if (undefined === snap || !this.updateOrientation(snap, viewport))
1128
1072
  return false;
1129
1073
  if (undefined === ev)
1130
1074
  AccuDrawShortcuts.processPendingHints(); // Would normally be processed after button down, necessary when called from post install...
1075
+ const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;
1076
+ if (vp)
1077
+ vp.invalidateDecorations();
1131
1078
  if (!isMotion)
1132
1079
  IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration...
1133
1080
  return true;
1134
1081
  }
1135
1082
  }
1136
1083
  /** @beta */
1137
- export class DefineACSByElementTool extends AccuDrawShortcutsTool {
1138
- static toolId = "AccuDraw.DefineACSByElement";
1084
+ export class AccuDrawRotateElementTool extends AccuDrawShortcutTool {
1085
+ static toolId = "AccuDraw.RotateElement";
1086
+ /** @internal */
1087
+ createImplementation() {
1088
+ return new RotateElementImplementation();
1089
+ }
1090
+ }
1091
+ /** @internal */
1092
+ class DefineACSByElementImplementation extends AccuDrawShortcutImplementation {
1139
1093
  _origin = Point3d.create();
1140
1094
  _rMatrix = Matrix3d.createIdentity();
1141
1095
  _acs;
1142
- /** @internal */
1143
- onManipulationStart() { CoreTools.outputPromptByKey("AccuDraw.DefineACSByElement.Prompts.FirstPoint"); }
1144
- /** @internal */
1096
+ onProvideToolAssistance() {
1097
+ CoreTools.outputPromptByKey("AccuDraw.DefineACSByElement.Prompts.FirstPoint");
1098
+ }
1145
1099
  updateOrientation(snap, vp) {
1146
1100
  const rMatrix = AccuDraw.getSnapRotation(snap, vp);
1147
1101
  if (undefined === rMatrix)
@@ -1150,7 +1104,6 @@ export class DefineACSByElementTool extends AccuDrawShortcutsTool {
1150
1104
  this._rMatrix = rMatrix;
1151
1105
  return true;
1152
1106
  }
1153
- /** @internal */
1154
1107
  doManipulation(ev, isMotion) {
1155
1108
  const vp = ev ? ev.viewport : undefined;
1156
1109
  if (!vp)
@@ -1169,8 +1122,7 @@ export class DefineACSByElementTool extends AccuDrawShortcutsTool {
1169
1122
  AccuDrawShortcuts.rotateToACS();
1170
1123
  return true;
1171
1124
  }
1172
- /** @internal */
1173
- decorate(context) {
1125
+ doDecorate(context) {
1174
1126
  const vp = context.viewport;
1175
1127
  if (!this._acs)
1176
1128
  this._acs = vp.view.auxiliaryCoordinateSystem.clone();
@@ -1180,23 +1132,38 @@ export class DefineACSByElementTool extends AccuDrawShortcutsTool {
1180
1132
  }
1181
1133
  }
1182
1134
  /** @beta */
1183
- export class DefineACSByPointsTool extends AccuDrawShortcutsTool {
1184
- static toolId = "AccuDraw.DefineACSByPoints";
1135
+ export class DefineACSByElementTool extends AccuDrawShortcutTool {
1136
+ static toolId = "AccuDraw.DefineACSByElement";
1137
+ /** @internal */
1138
+ createImplementation() {
1139
+ return new DefineACSByElementImplementation();
1140
+ }
1141
+ }
1142
+ /** @internal */
1143
+ class DefineACSByPointsImplementation extends AccuDrawShortcutImplementation {
1185
1144
  _points = [];
1186
1145
  _acs;
1187
- /** @internal */
1188
- onManipulationStart() {
1189
- if (!IModelApp.tentativePoint.isActive) {
1190
- CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.FirstPoint");
1191
- return;
1146
+ _origin = IModelApp.tentativePoint.isActive ? IModelApp.tentativePoint.getPoint().clone() : undefined;
1147
+ onProvideToolAssistance() {
1148
+ switch (this._points.length) {
1149
+ case 0:
1150
+ CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.FirstPoint");
1151
+ break;
1152
+ case 1:
1153
+ CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.SecondPoint");
1154
+ break;
1155
+ default:
1156
+ CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.NextPoint");
1157
+ break;
1192
1158
  }
1193
- const origin = IModelApp.tentativePoint.getPoint().clone();
1194
- CoreTools.outputPromptByKey("AccuDraw.DefineACSByPoints.Prompts.SecondPoint");
1195
- IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);
1196
- this._points.push(origin);
1197
- IModelApp.tentativePoint.clear(true);
1198
1159
  }
1199
- /** @internal */
1160
+ onInitialize() {
1161
+ if (undefined === this._origin)
1162
+ return;
1163
+ IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, this._origin);
1164
+ this._points.push(this._origin);
1165
+ IModelApp.tentativePoint.clear(true); // Necessary when installed as an InputCollector...
1166
+ }
1200
1167
  doManipulation(ev, isMotion) {
1201
1168
  if (!ev || !ev.viewport)
1202
1169
  return false;
@@ -1213,11 +1180,10 @@ export class DefineACSByPointsTool extends AccuDrawShortcutsTool {
1213
1180
  AccuDrawShortcuts.rotateToACS();
1214
1181
  return true;
1215
1182
  }
1216
- CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? ".SecondPoint" : ".NextPoint"}`);
1183
+ this.onProvideToolAssistance();
1217
1184
  return false;
1218
1185
  }
1219
- /** @internal */
1220
- decorate(context) {
1186
+ doDecorate(context) {
1221
1187
  const tmpPoints = [];
1222
1188
  this._points.forEach((pt) => tmpPoints.push(pt));
1223
1189
  const ev = new BeButtonEvent();
@@ -1230,4 +1196,12 @@ export class DefineACSByPointsTool extends AccuDrawShortcutsTool {
1230
1196
  this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);
1231
1197
  }
1232
1198
  }
1199
+ /** @beta */
1200
+ export class DefineACSByPointsTool extends AccuDrawShortcutTool {
1201
+ static toolId = "AccuDraw.DefineACSByPoints";
1202
+ /** @internal */
1203
+ createImplementation() {
1204
+ return new DefineACSByPointsImplementation();
1205
+ }
1206
+ }
1233
1207
  //# sourceMappingURL=AccuDrawTool.js.map