@itwin/core-frontend 4.8.0-dev.4 → 4.8.0-dev.41

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 (1086) hide show
  1. package/CHANGELOG.md +62 -1
  2. package/README.md +9 -1
  3. package/ThirdPartyNotices.md +3 -3
  4. package/lib/cjs/AccuDraw.d.ts +6 -1
  5. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  6. package/lib/cjs/AccuDraw.js +18 -6
  7. package/lib/cjs/AccuDraw.js.map +1 -1
  8. package/lib/cjs/AccuSnap.d.ts +9 -0
  9. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  10. package/lib/cjs/AccuSnap.js +15 -3
  11. package/lib/cjs/AccuSnap.js.map +1 -1
  12. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  13. package/lib/cjs/AuxCoordSys.js +2 -2
  14. package/lib/cjs/AuxCoordSys.js.map +1 -1
  15. package/lib/cjs/DecorationsCache.d.ts +1 -1
  16. package/lib/cjs/DecorationsCache.d.ts.map +1 -1
  17. package/lib/cjs/DecorationsCache.js.map +1 -1
  18. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  19. package/lib/cjs/EnvironmentDecorations.js +2 -2
  20. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  21. package/lib/cjs/HitDetail.d.ts.map +1 -1
  22. package/lib/cjs/HitDetail.js +3 -3
  23. package/lib/cjs/HitDetail.js.map +1 -1
  24. package/lib/cjs/IModelApp.d.ts +2 -3
  25. package/lib/cjs/IModelApp.d.ts.map +1 -1
  26. package/lib/cjs/IModelApp.js +2 -2
  27. package/lib/cjs/IModelApp.js.map +1 -1
  28. package/lib/cjs/IModelConnection.d.ts +16 -6
  29. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  30. package/lib/cjs/IModelConnection.js +21 -7
  31. package/lib/cjs/IModelConnection.js.map +1 -1
  32. package/lib/cjs/IpcApp.d.ts +5 -1
  33. package/lib/cjs/IpcApp.d.ts.map +1 -1
  34. package/lib/cjs/IpcApp.js +11 -5
  35. package/lib/cjs/IpcApp.js.map +1 -1
  36. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  37. package/lib/cjs/LocalhostIpcApp.js +2 -1
  38. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  39. package/lib/cjs/NativeApp.d.ts.map +1 -1
  40. package/lib/cjs/NativeApp.js +2 -1
  41. package/lib/cjs/NativeApp.js.map +1 -1
  42. package/lib/cjs/NoRenderApp.d.ts +2 -0
  43. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  44. package/lib/cjs/NoRenderApp.js +7 -0
  45. package/lib/cjs/NoRenderApp.js.map +1 -1
  46. package/lib/cjs/PlanarClipMaskState.d.ts +8 -3
  47. package/lib/cjs/PlanarClipMaskState.d.ts.map +1 -1
  48. package/lib/cjs/PlanarClipMaskState.js +47 -17
  49. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  50. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
  51. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  52. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +15 -4
  53. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  54. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  55. package/lib/cjs/SheetViewState.js +3 -3
  56. package/lib/cjs/SheetViewState.js.map +1 -1
  57. package/lib/cjs/SpatialViewState.d.ts +14 -1
  58. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  59. package/lib/cjs/SpatialViewState.js +17 -0
  60. package/lib/cjs/SpatialViewState.js.map +1 -1
  61. package/lib/cjs/SubCategoriesCache.d.ts +3 -1
  62. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  63. package/lib/cjs/SubCategoriesCache.js +19 -5
  64. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  65. package/lib/cjs/ViewContext.d.ts +2 -1
  66. package/lib/cjs/ViewContext.d.ts.map +1 -1
  67. package/lib/cjs/ViewContext.js +8 -8
  68. package/lib/cjs/ViewContext.js.map +1 -1
  69. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  70. package/lib/cjs/ViewCreator3d.js +1 -0
  71. package/lib/cjs/ViewCreator3d.js.map +1 -1
  72. package/lib/cjs/ViewManager.d.ts +4 -7
  73. package/lib/cjs/ViewManager.d.ts.map +1 -1
  74. package/lib/cjs/ViewManager.js +4 -7
  75. package/lib/cjs/ViewManager.js.map +1 -1
  76. package/lib/cjs/ViewingSpace.d.ts +3 -1
  77. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  78. package/lib/cjs/ViewingSpace.js +11 -2
  79. package/lib/cjs/ViewingSpace.js.map +1 -1
  80. package/lib/cjs/Viewport.d.ts +1 -3
  81. package/lib/cjs/Viewport.d.ts.map +1 -1
  82. package/lib/cjs/Viewport.js +3 -5
  83. package/lib/cjs/Viewport.js.map +1 -1
  84. package/lib/cjs/common/WorkerProxy.d.ts +7 -25
  85. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
  86. package/lib/cjs/common/WorkerProxy.js +2 -1
  87. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  88. package/lib/cjs/common/gltf/GltfSchema.d.ts +15 -1
  89. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  90. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  91. package/lib/cjs/common/imdl/CompactEdges.d.ts +1 -1
  92. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
  93. package/lib/cjs/common/imdl/CompactEdges.js +2 -2
  94. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  95. package/lib/cjs/common/imdl/ImdlModel.d.ts +5 -3
  96. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
  97. package/lib/cjs/common/imdl/ImdlModel.js +49 -42
  98. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  99. package/lib/cjs/common/imdl/ImdlSchema.d.ts +4 -4
  100. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  101. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  102. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +4 -2
  103. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  104. package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -8
  105. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  106. package/lib/cjs/common/internal/Symbols.d.ts +10 -0
  107. package/lib/cjs/common/internal/Symbols.d.ts.map +1 -0
  108. package/lib/cjs/common/internal/Symbols.js +20 -0
  109. package/lib/cjs/common/internal/Symbols.js.map +1 -0
  110. package/lib/cjs/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  111. package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -0
  112. package/lib/cjs/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  113. package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -0
  114. package/lib/cjs/common/internal/render/ColorMap.d.ts.map +1 -0
  115. package/lib/cjs/common/internal/render/ColorMap.js.map +1 -0
  116. package/lib/cjs/common/internal/render/DisplayParams.d.ts.map +1 -0
  117. package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.js +3 -6
  118. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -0
  119. package/lib/cjs/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  120. package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -0
  121. package/lib/cjs/{render/primitives → common/internal/render}/EdgeParams.js +50 -16
  122. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -0
  123. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  124. package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  125. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  126. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -0
  127. package/lib/cjs/common/internal/render/GeometryList.d.ts.map +1 -0
  128. package/lib/cjs/common/internal/render/GeometryList.js.map +1 -0
  129. package/lib/{esm/render/primitives/geometry → cjs/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  130. package/lib/cjs/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  131. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  132. package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -0
  133. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
  134. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  135. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +252 -0
  136. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  137. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
  138. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
  139. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js +146 -0
  140. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
  141. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  142. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  143. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  144. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -0
  145. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  146. package/lib/cjs/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  147. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  148. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -0
  149. package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -0
  150. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -0
  151. package/lib/cjs/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  152. package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -0
  153. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +82 -0
  154. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  155. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +82 -104
  156. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -0
  157. package/lib/cjs/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  158. package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -0
  159. package/lib/{esm/common/render/primitives → cjs/common/internal/render}/PointStringParams.d.ts +3 -0
  160. package/lib/cjs/common/internal/render/PointStringParams.d.ts.map +1 -0
  161. package/lib/cjs/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  162. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -0
  163. package/lib/{esm/render/primitives → cjs/common/internal/render}/Polyface.d.ts +1 -1
  164. package/lib/cjs/common/internal/render/Polyface.d.ts.map +1 -0
  165. package/lib/cjs/common/internal/render/Polyface.js.map +1 -0
  166. package/lib/cjs/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
  167. package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -0
  168. package/lib/cjs/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  169. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -0
  170. package/lib/{esm/render/primitives → cjs/common/internal/render}/Primitives.d.ts +3 -34
  171. package/lib/cjs/common/internal/render/Primitives.d.ts.map +1 -0
  172. package/lib/cjs/{render/primitives → common/internal/render}/Primitives.js +1 -44
  173. package/lib/cjs/common/internal/render/Primitives.js.map +1 -0
  174. package/lib/{esm/render/primitives → cjs/common/internal/render}/Strokes.d.ts +1 -1
  175. package/lib/cjs/common/internal/render/Strokes.d.ts.map +1 -0
  176. package/lib/cjs/common/internal/render/Strokes.js.map +1 -0
  177. package/lib/cjs/common/internal/render/SurfaceParams.d.ts.map +1 -0
  178. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -0
  179. package/lib/cjs/common/internal/render/VertexIndices.d.ts.map +1 -0
  180. package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -0
  181. package/lib/cjs/common/internal/render/VertexKey.d.ts.map +1 -0
  182. package/lib/cjs/common/internal/render/VertexKey.js.map +1 -0
  183. package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -0
  184. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -0
  185. package/lib/{esm/render/primitives → cjs/common/internal/render}/VertexTableBuilder.d.ts +5 -4
  186. package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  187. package/lib/cjs/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  188. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -0
  189. package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  190. package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  191. package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
  192. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -0
  193. package/lib/cjs/common/render/BatchOptions.d.ts +46 -0
  194. package/lib/cjs/common/render/BatchOptions.d.ts.map +1 -0
  195. package/lib/cjs/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  196. package/lib/cjs/common/render/BatchOptions.js.map +1 -0
  197. package/lib/cjs/common/render/GraphicAssembler.d.ts +197 -0
  198. package/lib/cjs/common/render/GraphicAssembler.d.ts.map +1 -0
  199. package/lib/cjs/common/render/GraphicAssembler.js +386 -0
  200. package/lib/cjs/common/render/GraphicAssembler.js.map +1 -0
  201. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts +89 -0
  202. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  203. package/lib/cjs/common/render/GraphicDescriptionBuilder.js +34 -0
  204. package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -0
  205. package/lib/cjs/common/render/GraphicDescriptionContext.d.ts +85 -0
  206. package/lib/cjs/common/render/GraphicDescriptionContext.d.ts.map +1 -0
  207. package/lib/cjs/common/render/GraphicDescriptionContext.js +22 -0
  208. package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -0
  209. package/lib/cjs/common/render/GraphicPrimitive.d.ts.map +1 -0
  210. package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -0
  211. package/lib/cjs/common/render/GraphicType.d.ts +62 -0
  212. package/lib/cjs/common/render/GraphicType.d.ts.map +1 -0
  213. package/lib/cjs/common/render/GraphicType.js +70 -0
  214. package/lib/cjs/common/render/GraphicType.js.map +1 -0
  215. package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -0
  216. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -0
  217. package/lib/cjs/common.d.ts +14 -0
  218. package/lib/cjs/common.d.ts.map +1 -0
  219. package/lib/cjs/common.js +35 -0
  220. package/lib/cjs/common.js.map +1 -0
  221. package/lib/cjs/core-frontend.d.ts +5 -43
  222. package/lib/cjs/core-frontend.d.ts.map +1 -1
  223. package/lib/cjs/core-frontend.js +5 -43
  224. package/lib/cjs/core-frontend.js.map +1 -1
  225. package/lib/cjs/extension/ExtensionRuntime.js +1 -0
  226. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  227. package/lib/cjs/internal/cross-package.d.ts +7 -0
  228. package/lib/cjs/internal/cross-package.d.ts.map +1 -0
  229. package/lib/cjs/internal/cross-package.js +17 -0
  230. package/lib/cjs/internal/cross-package.js.map +1 -0
  231. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +33 -0
  232. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  233. package/lib/cjs/internal/render/PrimitiveBuilder.js +140 -0
  234. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -0
  235. package/lib/cjs/render/FeatureSymbology.js +3 -3
  236. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  237. package/lib/cjs/render/GraphicBranch.d.ts +1 -1
  238. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  239. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  240. package/lib/cjs/render/GraphicBuilder.d.ts +7 -254
  241. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  242. package/lib/cjs/render/GraphicBuilder.js +18 -235
  243. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  244. package/lib/cjs/render/MeshArgs.d.ts +56 -0
  245. package/lib/cjs/render/MeshArgs.d.ts.map +1 -0
  246. package/lib/cjs/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
  247. package/lib/cjs/render/MeshArgs.js.map +1 -0
  248. package/lib/cjs/render/MockRender.d.ts +7 -5
  249. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  250. package/lib/cjs/render/MockRender.js +6 -2
  251. package/lib/cjs/render/MockRender.js.map +1 -1
  252. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  253. package/lib/cjs/render/ParticleCollectionBuilder.js +4 -3
  254. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  255. package/lib/cjs/render/PolylineArgs.d.ts +31 -0
  256. package/lib/cjs/render/PolylineArgs.d.ts.map +1 -0
  257. package/lib/cjs/render/PolylineArgs.js +10 -0
  258. package/lib/cjs/render/PolylineArgs.js.map +1 -0
  259. package/lib/cjs/render/RealityMeshParams.js +1 -1
  260. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  261. package/lib/cjs/render/RenderSystem.d.ts +36 -7
  262. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  263. package/lib/cjs/render/RenderSystem.js +94 -6
  264. package/lib/cjs/render/RenderSystem.js.map +1 -1
  265. package/lib/cjs/render/RenderTarget.d.ts +49 -5
  266. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  267. package/lib/cjs/render/RenderTarget.js +33 -5
  268. package/lib/cjs/render/RenderTarget.js.map +1 -1
  269. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  270. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  271. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  272. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  273. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  274. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  275. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  276. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  277. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  278. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  279. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  280. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
  281. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  282. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  283. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  284. package/lib/cjs/render/webgl/Graphic.d.ts +1 -1
  285. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  286. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  287. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  288. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  289. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  290. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -1
  291. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  292. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  293. package/lib/cjs/render/webgl/Material.d.ts +5 -1
  294. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  295. package/lib/cjs/render/webgl/Material.js +5 -0
  296. package/lib/cjs/render/webgl/Material.js.map +1 -1
  297. package/lib/cjs/render/webgl/Mesh.d.ts +6 -3
  298. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  299. package/lib/cjs/render/webgl/Mesh.js +3 -1
  300. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  301. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  302. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  303. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  304. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  305. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  306. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +2 -0
  307. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  308. package/lib/cjs/render/webgl/PlanarClassifier.js +38 -11
  309. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  310. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +3 -3
  311. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/PlanarTextureProjection.js +53 -19
  313. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  314. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
  315. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  316. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  317. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  318. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  320. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  321. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  323. package/lib/cjs/render/webgl/Primitive.d.ts +1 -1
  324. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  325. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  326. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  327. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  328. package/lib/cjs/render/webgl/SolarShadowMap.js +2 -2
  329. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  330. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  331. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  332. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  333. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  334. package/lib/cjs/render/webgl/System.d.ts +7 -6
  335. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/System.js +2 -2
  337. package/lib/cjs/render/webgl/System.js.map +1 -1
  338. package/lib/cjs/render/webgl/Target.d.ts +3 -0
  339. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  340. package/lib/cjs/render/webgl/Target.js +6 -1
  341. package/lib/cjs/render/webgl/Target.js.map +1 -1
  342. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  343. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  345. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  346. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  347. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  348. package/lib/cjs/tile/B3dmReader.d.ts +1 -2
  349. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  350. package/lib/cjs/tile/B3dmReader.js +1 -2
  351. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  352. package/lib/cjs/tile/DynamicIModelTile.js +1 -0
  353. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  354. package/lib/cjs/tile/GltfReader.d.ts +30 -6
  355. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  356. package/lib/cjs/tile/GltfReader.js +245 -9
  357. package/lib/cjs/tile/GltfReader.js.map +1 -1
  358. package/lib/cjs/tile/GraphicsCollector.d.ts.map +1 -1
  359. package/lib/cjs/tile/GraphicsCollector.js +5 -2
  360. package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
  361. package/lib/cjs/tile/I3dmReader.d.ts +1 -2
  362. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  363. package/lib/cjs/tile/I3dmReader.js +1 -2
  364. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  365. package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
  366. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -1
  367. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  368. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -0
  369. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  370. package/lib/cjs/tile/ImdlGraphicsCreator.js +88 -5
  371. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  372. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  373. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  374. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  375. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  376. package/lib/cjs/tile/OPCFormatInterpreter.js +7 -2
  377. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  378. package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
  379. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  380. package/lib/cjs/tile/PntsReader.js +1 -1
  381. package/lib/cjs/tile/PntsReader.js.map +1 -1
  382. package/lib/cjs/tile/PrimaryTileTree.d.ts +6 -2
  383. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  384. package/lib/cjs/tile/PrimaryTileTree.js +26 -1
  385. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  386. package/lib/cjs/tile/RealityModelTileTree.js +1 -1
  387. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  388. package/lib/cjs/tile/RealityTile.d.ts +2 -3
  389. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  390. package/lib/cjs/tile/RealityTile.js +0 -1
  391. package/lib/cjs/tile/RealityTile.js.map +1 -1
  392. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  393. package/lib/cjs/tile/RealityTileLoader.js +1 -0
  394. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  395. package/lib/cjs/tile/TileGeometryCollector.d.ts +4 -4
  396. package/lib/cjs/tile/TileGeometryCollector.js +1 -1
  397. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  398. package/lib/cjs/tile/TileTreeReference.d.ts +0 -4
  399. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  400. package/lib/cjs/tile/TileTreeReference.js +0 -3
  401. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  402. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -0
  403. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  404. package/lib/cjs/tile/map/ArcGisUtilities.js +7 -5
  405. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  406. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  407. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
  408. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  409. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  410. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  411. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  412. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  413. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  414. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  415. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +1 -1
  416. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
  417. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  418. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  419. package/lib/cjs/tile/map/MapTileTree.js +5 -5
  420. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  421. package/lib/cjs/tools/AccuDrawTool.d.ts +21 -0
  422. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  423. package/lib/cjs/tools/AccuDrawTool.js +93 -1
  424. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  425. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  426. package/lib/cjs/tools/ClipViewTool.js +16 -16
  427. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  428. package/lib/cjs/tools/ElementSetTool.d.ts +9 -5
  429. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  430. package/lib/cjs/tools/ElementSetTool.js +9 -5
  431. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  432. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  433. package/lib/cjs/tools/MeasureTool.js +9 -9
  434. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  435. package/lib/cjs/tools/ToolAdmin.d.ts +2 -0
  436. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  437. package/lib/cjs/tools/ToolAdmin.js +6 -1
  438. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  439. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  440. package/lib/cjs/tools/ViewTool.js +8 -8
  441. package/lib/cjs/tools/ViewTool.js.map +1 -1
  442. package/lib/cjs/workers/RegisterWorker.d.ts +2 -1
  443. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -1
  444. package/lib/cjs/workers/RegisterWorker.js +2 -1
  445. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  446. package/lib/esm/AccuDraw.d.ts +6 -1
  447. package/lib/esm/AccuDraw.d.ts.map +1 -1
  448. package/lib/esm/AccuDraw.js +15 -3
  449. package/lib/esm/AccuDraw.js.map +1 -1
  450. package/lib/esm/AccuSnap.d.ts +9 -0
  451. package/lib/esm/AccuSnap.d.ts.map +1 -1
  452. package/lib/esm/AccuSnap.js +15 -3
  453. package/lib/esm/AccuSnap.js.map +1 -1
  454. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  455. package/lib/esm/AuxCoordSys.js +1 -1
  456. package/lib/esm/AuxCoordSys.js.map +1 -1
  457. package/lib/esm/DecorationsCache.d.ts +1 -1
  458. package/lib/esm/DecorationsCache.d.ts.map +1 -1
  459. package/lib/esm/DecorationsCache.js.map +1 -1
  460. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  461. package/lib/esm/EnvironmentDecorations.js +1 -1
  462. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  463. package/lib/esm/HitDetail.d.ts.map +1 -1
  464. package/lib/esm/HitDetail.js +1 -1
  465. package/lib/esm/HitDetail.js.map +1 -1
  466. package/lib/esm/IModelApp.d.ts +2 -3
  467. package/lib/esm/IModelApp.d.ts.map +1 -1
  468. package/lib/esm/IModelApp.js +2 -2
  469. package/lib/esm/IModelApp.js.map +1 -1
  470. package/lib/esm/IModelConnection.d.ts +16 -6
  471. package/lib/esm/IModelConnection.d.ts.map +1 -1
  472. package/lib/esm/IModelConnection.js +21 -7
  473. package/lib/esm/IModelConnection.js.map +1 -1
  474. package/lib/esm/IpcApp.d.ts +5 -1
  475. package/lib/esm/IpcApp.d.ts.map +1 -1
  476. package/lib/esm/IpcApp.js +11 -5
  477. package/lib/esm/IpcApp.js.map +1 -1
  478. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  479. package/lib/esm/LocalhostIpcApp.js +2 -1
  480. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  481. package/lib/esm/NativeApp.d.ts.map +1 -1
  482. package/lib/esm/NativeApp.js +2 -1
  483. package/lib/esm/NativeApp.js.map +1 -1
  484. package/lib/esm/NoRenderApp.d.ts +2 -0
  485. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  486. package/lib/esm/NoRenderApp.js +7 -0
  487. package/lib/esm/NoRenderApp.js.map +1 -1
  488. package/lib/esm/PlanarClipMaskState.d.ts +8 -3
  489. package/lib/esm/PlanarClipMaskState.d.ts.map +1 -1
  490. package/lib/esm/PlanarClipMaskState.js +48 -18
  491. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  492. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
  493. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  494. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +15 -4
  495. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  496. package/lib/esm/SheetViewState.d.ts.map +1 -1
  497. package/lib/esm/SheetViewState.js +1 -1
  498. package/lib/esm/SheetViewState.js.map +1 -1
  499. package/lib/esm/SpatialViewState.d.ts +14 -1
  500. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  501. package/lib/esm/SpatialViewState.js +17 -0
  502. package/lib/esm/SpatialViewState.js.map +1 -1
  503. package/lib/esm/SubCategoriesCache.d.ts +3 -1
  504. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  505. package/lib/esm/SubCategoriesCache.js +19 -5
  506. package/lib/esm/SubCategoriesCache.js.map +1 -1
  507. package/lib/esm/ViewContext.d.ts +2 -1
  508. package/lib/esm/ViewContext.d.ts.map +1 -1
  509. package/lib/esm/ViewContext.js +1 -1
  510. package/lib/esm/ViewContext.js.map +1 -1
  511. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  512. package/lib/esm/ViewCreator3d.js +1 -0
  513. package/lib/esm/ViewCreator3d.js.map +1 -1
  514. package/lib/esm/ViewManager.d.ts +4 -7
  515. package/lib/esm/ViewManager.d.ts.map +1 -1
  516. package/lib/esm/ViewManager.js +4 -7
  517. package/lib/esm/ViewManager.js.map +1 -1
  518. package/lib/esm/ViewingSpace.d.ts +3 -1
  519. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  520. package/lib/esm/ViewingSpace.js +11 -2
  521. package/lib/esm/ViewingSpace.js.map +1 -1
  522. package/lib/esm/Viewport.d.ts +1 -3
  523. package/lib/esm/Viewport.d.ts.map +1 -1
  524. package/lib/esm/Viewport.js +2 -4
  525. package/lib/esm/Viewport.js.map +1 -1
  526. package/lib/esm/common/WorkerProxy.d.ts +7 -25
  527. package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
  528. package/lib/esm/common/WorkerProxy.js +2 -1
  529. package/lib/esm/common/WorkerProxy.js.map +1 -1
  530. package/lib/esm/common/gltf/GltfSchema.d.ts +15 -1
  531. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  532. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  533. package/lib/esm/common/imdl/CompactEdges.d.ts +1 -1
  534. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
  535. package/lib/esm/common/imdl/CompactEdges.js +2 -2
  536. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  537. package/lib/esm/common/imdl/ImdlModel.d.ts +5 -3
  538. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
  539. package/lib/esm/common/imdl/ImdlModel.js +47 -41
  540. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  541. package/lib/esm/common/imdl/ImdlSchema.d.ts +4 -4
  542. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  543. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  544. package/lib/esm/common/imdl/ParseImdlDocument.d.ts +4 -2
  545. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  546. package/lib/esm/common/imdl/ParseImdlDocument.js +9 -8
  547. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  548. package/lib/esm/common/internal/Symbols.d.ts +10 -0
  549. package/lib/esm/common/internal/Symbols.d.ts.map +1 -0
  550. package/lib/esm/common/internal/Symbols.js +17 -0
  551. package/lib/esm/common/internal/Symbols.js.map +1 -0
  552. package/lib/esm/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  553. package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -0
  554. package/lib/esm/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  555. package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -0
  556. package/lib/esm/common/internal/render/ColorMap.d.ts.map +1 -0
  557. package/lib/esm/common/internal/render/ColorMap.js.map +1 -0
  558. package/lib/esm/common/internal/render/DisplayParams.d.ts.map +1 -0
  559. package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.js +4 -7
  560. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -0
  561. package/lib/esm/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  562. package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -0
  563. package/lib/esm/{render/primitives → common/internal/render}/EdgeParams.js +47 -14
  564. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -0
  565. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  566. package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  567. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  568. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -0
  569. package/lib/esm/common/internal/render/GeometryList.d.ts.map +1 -0
  570. package/lib/esm/common/internal/render/GeometryList.js.map +1 -0
  571. package/lib/{cjs/render/primitives/geometry → esm/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  572. package/lib/esm/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  573. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  574. package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -0
  575. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
  576. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  577. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +246 -0
  578. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  579. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
  580. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
  581. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js +140 -0
  582. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
  583. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  584. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  585. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  586. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -0
  587. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  588. package/lib/esm/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  589. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  590. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -0
  591. package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -0
  592. package/lib/esm/common/internal/render/MeshParams.js.map +1 -0
  593. package/lib/esm/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  594. package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -0
  595. package/lib/esm/common/internal/render/MeshPrimitives.d.ts +82 -0
  596. package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  597. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +79 -103
  598. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -0
  599. package/lib/esm/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  600. package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -0
  601. package/lib/{cjs/common/render/primitives → esm/common/internal/render}/PointStringParams.d.ts +3 -0
  602. package/lib/esm/common/internal/render/PointStringParams.d.ts.map +1 -0
  603. package/lib/esm/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  604. package/lib/esm/common/internal/render/PointStringParams.js.map +1 -0
  605. package/lib/{cjs/render/primitives → esm/common/internal/render}/Polyface.d.ts +1 -1
  606. package/lib/esm/common/internal/render/Polyface.d.ts.map +1 -0
  607. package/lib/esm/common/internal/render/Polyface.js.map +1 -0
  608. package/lib/esm/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
  609. package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -0
  610. package/lib/esm/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  611. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -0
  612. package/lib/{cjs/render/primitives → esm/common/internal/render}/Primitives.d.ts +3 -34
  613. package/lib/esm/common/internal/render/Primitives.d.ts.map +1 -0
  614. package/lib/esm/{render/primitives → common/internal/render}/Primitives.js +0 -42
  615. package/lib/esm/common/internal/render/Primitives.js.map +1 -0
  616. package/lib/{cjs/render/primitives → esm/common/internal/render}/Strokes.d.ts +1 -1
  617. package/lib/esm/common/internal/render/Strokes.d.ts.map +1 -0
  618. package/lib/esm/common/internal/render/Strokes.js.map +1 -0
  619. package/lib/esm/common/internal/render/SurfaceParams.d.ts.map +1 -0
  620. package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -0
  621. package/lib/esm/common/internal/render/VertexIndices.d.ts.map +1 -0
  622. package/lib/esm/common/internal/render/VertexIndices.js.map +1 -0
  623. package/lib/esm/common/internal/render/VertexKey.d.ts.map +1 -0
  624. package/lib/esm/common/internal/render/VertexKey.js.map +1 -0
  625. package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -0
  626. package/lib/esm/common/internal/render/VertexTable.js.map +1 -0
  627. package/lib/{cjs/render/primitives → esm/common/internal/render}/VertexTableBuilder.d.ts +5 -4
  628. package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  629. package/lib/esm/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  630. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -0
  631. package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  632. package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  633. package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
  634. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -0
  635. package/lib/esm/common/render/BatchOptions.d.ts +46 -0
  636. package/lib/esm/common/render/BatchOptions.d.ts.map +1 -0
  637. package/lib/esm/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  638. package/lib/esm/common/render/BatchOptions.js.map +1 -0
  639. package/lib/esm/common/render/GraphicAssembler.d.ts +197 -0
  640. package/lib/esm/common/render/GraphicAssembler.d.ts.map +1 -0
  641. package/lib/esm/common/render/GraphicAssembler.js +382 -0
  642. package/lib/esm/common/render/GraphicAssembler.js.map +1 -0
  643. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts +89 -0
  644. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  645. package/lib/esm/common/render/GraphicDescriptionBuilder.js +31 -0
  646. package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -0
  647. package/lib/esm/common/render/GraphicDescriptionContext.d.ts +85 -0
  648. package/lib/esm/common/render/GraphicDescriptionContext.d.ts.map +1 -0
  649. package/lib/esm/common/render/GraphicDescriptionContext.js +19 -0
  650. package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -0
  651. package/lib/esm/common/render/GraphicPrimitive.d.ts.map +1 -0
  652. package/lib/esm/common/render/GraphicPrimitive.js.map +1 -0
  653. package/lib/esm/common/render/GraphicType.d.ts +62 -0
  654. package/lib/esm/common/render/GraphicType.d.ts.map +1 -0
  655. package/lib/esm/common/render/GraphicType.js +67 -0
  656. package/lib/esm/common/render/GraphicType.js.map +1 -0
  657. package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -0
  658. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -0
  659. package/lib/esm/common.d.ts +14 -0
  660. package/lib/esm/common.d.ts.map +1 -0
  661. package/lib/esm/common.js +19 -0
  662. package/lib/esm/common.js.map +1 -0
  663. package/lib/esm/core-frontend.d.ts +5 -43
  664. package/lib/esm/core-frontend.d.ts.map +1 -1
  665. package/lib/esm/core-frontend.js +5 -43
  666. package/lib/esm/core-frontend.js.map +1 -1
  667. package/lib/esm/extension/ExtensionRuntime.js +2 -1
  668. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  669. package/lib/esm/internal/cross-package.d.ts +7 -0
  670. package/lib/esm/internal/cross-package.d.ts.map +1 -0
  671. package/lib/esm/internal/cross-package.js +11 -0
  672. package/lib/esm/internal/cross-package.js.map +1 -0
  673. package/lib/esm/internal/render/PrimitiveBuilder.d.ts +33 -0
  674. package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  675. package/lib/esm/internal/render/PrimitiveBuilder.js +136 -0
  676. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -0
  677. package/lib/esm/render/FeatureSymbology.js +3 -3
  678. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  679. package/lib/esm/render/GraphicBranch.d.ts +1 -1
  680. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  681. package/lib/esm/render/GraphicBranch.js.map +1 -1
  682. package/lib/esm/render/GraphicBuilder.d.ts +7 -254
  683. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  684. package/lib/esm/render/GraphicBuilder.js +18 -235
  685. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  686. package/lib/esm/render/MeshArgs.d.ts +56 -0
  687. package/lib/esm/render/MeshArgs.d.ts.map +1 -0
  688. package/lib/esm/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
  689. package/lib/esm/render/MeshArgs.js.map +1 -0
  690. package/lib/esm/render/MockRender.d.ts +7 -5
  691. package/lib/esm/render/MockRender.d.ts.map +1 -1
  692. package/lib/esm/render/MockRender.js +5 -1
  693. package/lib/esm/render/MockRender.js.map +1 -1
  694. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  695. package/lib/esm/render/ParticleCollectionBuilder.js +4 -3
  696. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  697. package/lib/esm/render/PolylineArgs.d.ts +31 -0
  698. package/lib/esm/render/PolylineArgs.d.ts.map +1 -0
  699. package/lib/esm/render/PolylineArgs.js +9 -0
  700. package/lib/esm/render/PolylineArgs.js.map +1 -0
  701. package/lib/esm/render/RealityMeshParams.js +1 -1
  702. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  703. package/lib/esm/render/RenderSystem.d.ts +36 -7
  704. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  705. package/lib/esm/render/RenderSystem.js +96 -8
  706. package/lib/esm/render/RenderSystem.js.map +1 -1
  707. package/lib/esm/render/RenderTarget.d.ts +49 -5
  708. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  709. package/lib/esm/render/RenderTarget.js +33 -5
  710. package/lib/esm/render/RenderTarget.js.map +1 -1
  711. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  712. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  713. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  714. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  715. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  716. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  717. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  718. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  719. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  720. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  721. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  722. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
  723. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  724. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  725. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  726. package/lib/esm/render/webgl/Graphic.d.ts +1 -1
  727. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  728. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  729. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  730. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  731. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  732. package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -1
  733. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  734. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  735. package/lib/esm/render/webgl/Material.d.ts +5 -1
  736. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  737. package/lib/esm/render/webgl/Material.js +5 -0
  738. package/lib/esm/render/webgl/Material.js.map +1 -1
  739. package/lib/esm/render/webgl/Mesh.d.ts +6 -3
  740. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  741. package/lib/esm/render/webgl/Mesh.js +3 -1
  742. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  743. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  744. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  745. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  746. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  747. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  748. package/lib/esm/render/webgl/PlanarClassifier.d.ts +2 -0
  749. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  750. package/lib/esm/render/webgl/PlanarClassifier.js +40 -13
  751. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  752. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +3 -3
  753. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  754. package/lib/esm/render/webgl/PlanarTextureProjection.js +54 -20
  755. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  756. package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
  757. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  758. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  759. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  760. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  761. package/lib/esm/render/webgl/PointString.js.map +1 -1
  762. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  763. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  764. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  765. package/lib/esm/render/webgl/Primitive.d.ts +1 -1
  766. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  767. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  768. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  769. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  770. package/lib/esm/render/webgl/SolarShadowMap.js +2 -2
  771. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  772. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  773. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  774. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  775. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  776. package/lib/esm/render/webgl/System.d.ts +7 -6
  777. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  778. package/lib/esm/render/webgl/System.js +1 -1
  779. package/lib/esm/render/webgl/System.js.map +1 -1
  780. package/lib/esm/render/webgl/Target.d.ts +3 -0
  781. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  782. package/lib/esm/render/webgl/Target.js +6 -1
  783. package/lib/esm/render/webgl/Target.js.map +1 -1
  784. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  785. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  786. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  787. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  788. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  789. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  790. package/lib/esm/tile/B3dmReader.d.ts +1 -2
  791. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  792. package/lib/esm/tile/B3dmReader.js +1 -2
  793. package/lib/esm/tile/B3dmReader.js.map +1 -1
  794. package/lib/esm/tile/DynamicIModelTile.js +1 -0
  795. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  796. package/lib/esm/tile/GltfReader.d.ts +30 -6
  797. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  798. package/lib/esm/tile/GltfReader.js +245 -9
  799. package/lib/esm/tile/GltfReader.js.map +1 -1
  800. package/lib/esm/tile/GraphicsCollector.d.ts.map +1 -1
  801. package/lib/esm/tile/GraphicsCollector.js +5 -2
  802. package/lib/esm/tile/GraphicsCollector.js.map +1 -1
  803. package/lib/esm/tile/I3dmReader.d.ts +1 -2
  804. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  805. package/lib/esm/tile/I3dmReader.js +1 -2
  806. package/lib/esm/tile/I3dmReader.js.map +1 -1
  807. package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
  808. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -1
  809. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  810. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -0
  811. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  812. package/lib/esm/tile/ImdlGraphicsCreator.js +88 -6
  813. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  814. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  815. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  816. package/lib/esm/tile/ImdlReader.js.map +1 -1
  817. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  818. package/lib/esm/tile/OPCFormatInterpreter.js +7 -2
  819. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  820. package/lib/esm/tile/OrbitGtTileTree.js +1 -1
  821. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  822. package/lib/esm/tile/PntsReader.js +1 -1
  823. package/lib/esm/tile/PntsReader.js.map +1 -1
  824. package/lib/esm/tile/PrimaryTileTree.d.ts +6 -2
  825. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  826. package/lib/esm/tile/PrimaryTileTree.js +26 -1
  827. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  828. package/lib/esm/tile/RealityModelTileTree.js +1 -1
  829. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  830. package/lib/esm/tile/RealityTile.d.ts +2 -3
  831. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  832. package/lib/esm/tile/RealityTile.js +0 -1
  833. package/lib/esm/tile/RealityTile.js.map +1 -1
  834. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  835. package/lib/esm/tile/RealityTileLoader.js +1 -0
  836. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  837. package/lib/esm/tile/TileGeometryCollector.d.ts +4 -4
  838. package/lib/esm/tile/TileGeometryCollector.js +1 -1
  839. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  840. package/lib/esm/tile/TileTreeReference.d.ts +0 -4
  841. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  842. package/lib/esm/tile/TileTreeReference.js +0 -3
  843. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  844. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -0
  845. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  846. package/lib/esm/tile/map/ArcGisUtilities.js +7 -5
  847. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  848. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  849. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
  850. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  851. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  852. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  853. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  854. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  855. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  856. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  857. package/lib/esm/tile/map/MapFeatureInfo.d.ts +1 -1
  858. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
  859. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  860. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  861. package/lib/esm/tile/map/MapTileTree.js +5 -5
  862. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  863. package/lib/esm/tools/AccuDrawTool.d.ts +21 -0
  864. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  865. package/lib/esm/tools/AccuDrawTool.js +89 -0
  866. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  867. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  868. package/lib/esm/tools/ClipViewTool.js +1 -1
  869. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  870. package/lib/esm/tools/ElementSetTool.d.ts +9 -5
  871. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  872. package/lib/esm/tools/ElementSetTool.js +9 -5
  873. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  874. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  875. package/lib/esm/tools/MeasureTool.js +1 -1
  876. package/lib/esm/tools/MeasureTool.js.map +1 -1
  877. package/lib/esm/tools/ToolAdmin.d.ts +2 -0
  878. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  879. package/lib/esm/tools/ToolAdmin.js +6 -1
  880. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  881. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  882. package/lib/esm/tools/ViewTool.js +1 -1
  883. package/lib/esm/tools/ViewTool.js.map +1 -1
  884. package/lib/esm/workers/RegisterWorker.d.ts +2 -1
  885. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -1
  886. package/lib/esm/workers/RegisterWorker.js +2 -1
  887. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  888. package/lib/public/locales/en/CoreTools.json +15 -0
  889. package/lib/public/locales/en/iModelJs.json +5 -0
  890. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  891. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  892. package/package.json +18 -18
  893. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +0 -1
  894. package/lib/cjs/common/render/AnimationNodeId.js.map +0 -1
  895. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  896. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +0 -1
  897. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +0 -1
  898. package/lib/cjs/common/render/primitives/DisplayParams.js.map +0 -1
  899. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +0 -1
  900. package/lib/cjs/common/render/primitives/EdgeParams.js +0 -46
  901. package/lib/cjs/common/render/primitives/EdgeParams.js.map +0 -1
  902. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +0 -1
  903. package/lib/cjs/common/render/primitives/MeshParams.js.map +0 -1
  904. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  905. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +0 -1
  906. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +0 -1
  907. package/lib/cjs/common/render/primitives/PointStringParams.js.map +0 -1
  908. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +0 -1
  909. package/lib/cjs/common/render/primitives/PolylineParams.js.map +0 -1
  910. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  911. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +0 -1
  912. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +0 -1
  913. package/lib/cjs/common/render/primitives/VertexIndices.js.map +0 -1
  914. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +0 -1
  915. package/lib/cjs/common/render/primitives/VertexTable.js.map +0 -1
  916. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  917. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +0 -1
  918. package/lib/cjs/render/GraphicPrimitive.d.ts.map +0 -1
  919. package/lib/cjs/render/GraphicPrimitive.js.map +0 -1
  920. package/lib/cjs/render/InstancedGraphicParams.d.ts.map +0 -1
  921. package/lib/cjs/render/InstancedGraphicParams.js.map +0 -1
  922. package/lib/cjs/render/primitives/ColorMap.d.ts.map +0 -1
  923. package/lib/cjs/render/primitives/ColorMap.js.map +0 -1
  924. package/lib/cjs/render/primitives/EdgeParams.d.ts +0 -8
  925. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +0 -1
  926. package/lib/cjs/render/primitives/EdgeParams.js.map +0 -1
  927. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  928. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +0 -1
  929. package/lib/cjs/render/primitives/PointStringParams.d.ts +0 -8
  930. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +0 -1
  931. package/lib/cjs/render/primitives/PointStringParams.js.map +0 -1
  932. package/lib/cjs/render/primitives/Polyface.d.ts.map +0 -1
  933. package/lib/cjs/render/primitives/Polyface.js.map +0 -1
  934. package/lib/cjs/render/primitives/PolylineParams.d.ts +0 -15
  935. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +0 -1
  936. package/lib/cjs/render/primitives/PolylineParams.js.map +0 -1
  937. package/lib/cjs/render/primitives/Primitives.d.ts.map +0 -1
  938. package/lib/cjs/render/primitives/Primitives.js.map +0 -1
  939. package/lib/cjs/render/primitives/Strokes.d.ts.map +0 -1
  940. package/lib/cjs/render/primitives/Strokes.js.map +0 -1
  941. package/lib/cjs/render/primitives/VertexKey.d.ts.map +0 -1
  942. package/lib/cjs/render/primitives/VertexKey.js.map +0 -1
  943. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  944. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +0 -1
  945. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  946. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  947. package/lib/cjs/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  948. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +0 -1
  949. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  950. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  951. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +0 -176
  952. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  953. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  954. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  955. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +0 -1
  956. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  957. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  958. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
  959. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  960. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  961. package/lib/esm/common/render/AnimationNodeId.d.ts.map +0 -1
  962. package/lib/esm/common/render/AnimationNodeId.js.map +0 -1
  963. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  964. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +0 -1
  965. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +0 -1
  966. package/lib/esm/common/render/primitives/DisplayParams.js.map +0 -1
  967. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +0 -1
  968. package/lib/esm/common/render/primitives/EdgeParams.js +0 -42
  969. package/lib/esm/common/render/primitives/EdgeParams.js.map +0 -1
  970. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +0 -1
  971. package/lib/esm/common/render/primitives/MeshParams.js.map +0 -1
  972. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  973. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +0 -1
  974. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +0 -1
  975. package/lib/esm/common/render/primitives/PointStringParams.js.map +0 -1
  976. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +0 -1
  977. package/lib/esm/common/render/primitives/PolylineParams.js.map +0 -1
  978. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  979. package/lib/esm/common/render/primitives/SurfaceParams.js.map +0 -1
  980. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +0 -1
  981. package/lib/esm/common/render/primitives/VertexIndices.js.map +0 -1
  982. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +0 -1
  983. package/lib/esm/common/render/primitives/VertexTable.js.map +0 -1
  984. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  985. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +0 -1
  986. package/lib/esm/render/GraphicPrimitive.d.ts.map +0 -1
  987. package/lib/esm/render/GraphicPrimitive.js.map +0 -1
  988. package/lib/esm/render/InstancedGraphicParams.d.ts.map +0 -1
  989. package/lib/esm/render/InstancedGraphicParams.js.map +0 -1
  990. package/lib/esm/render/primitives/ColorMap.d.ts.map +0 -1
  991. package/lib/esm/render/primitives/ColorMap.js.map +0 -1
  992. package/lib/esm/render/primitives/EdgeParams.d.ts +0 -8
  993. package/lib/esm/render/primitives/EdgeParams.d.ts.map +0 -1
  994. package/lib/esm/render/primitives/EdgeParams.js.map +0 -1
  995. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  996. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +0 -1
  997. package/lib/esm/render/primitives/PointStringParams.d.ts +0 -8
  998. package/lib/esm/render/primitives/PointStringParams.d.ts.map +0 -1
  999. package/lib/esm/render/primitives/PointStringParams.js.map +0 -1
  1000. package/lib/esm/render/primitives/Polyface.d.ts.map +0 -1
  1001. package/lib/esm/render/primitives/Polyface.js.map +0 -1
  1002. package/lib/esm/render/primitives/PolylineParams.d.ts +0 -15
  1003. package/lib/esm/render/primitives/PolylineParams.d.ts.map +0 -1
  1004. package/lib/esm/render/primitives/PolylineParams.js.map +0 -1
  1005. package/lib/esm/render/primitives/Primitives.d.ts.map +0 -1
  1006. package/lib/esm/render/primitives/Primitives.js.map +0 -1
  1007. package/lib/esm/render/primitives/Strokes.d.ts.map +0 -1
  1008. package/lib/esm/render/primitives/Strokes.js.map +0 -1
  1009. package/lib/esm/render/primitives/VertexKey.d.ts.map +0 -1
  1010. package/lib/esm/render/primitives/VertexKey.js.map +0 -1
  1011. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  1012. package/lib/esm/render/primitives/VertexTableBuilder.js.map +0 -1
  1013. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  1014. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  1015. package/lib/esm/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  1016. package/lib/esm/render/primitives/geometry/GeometryList.js.map +0 -1
  1017. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  1018. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  1019. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +0 -171
  1020. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  1021. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  1022. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  1023. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +0 -1
  1024. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  1025. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  1026. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
  1027. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  1028. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  1029. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  1030. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.js +0 -0
  1031. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  1032. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  1033. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  1034. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  1035. /package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  1036. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  1037. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  1038. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  1039. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  1040. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  1041. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  1042. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  1043. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  1044. /package/lib/cjs/{render/primitives → common/internal/render}/Polyface.js +0 -0
  1045. /package/lib/cjs/{render/primitives → common/internal/render}/Strokes.js +0 -0
  1046. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  1047. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  1048. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  1049. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  1050. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  1051. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  1052. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  1053. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  1054. /package/lib/cjs/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  1055. /package/lib/cjs/{render → common/render}/GraphicPrimitive.js +0 -0
  1056. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  1057. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.js +0 -0
  1058. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  1059. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.js +0 -0
  1060. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  1061. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  1062. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  1063. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  1064. /package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  1065. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  1066. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  1067. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  1068. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  1069. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  1070. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  1071. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  1072. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  1073. /package/lib/esm/{render/primitives → common/internal/render}/Polyface.js +0 -0
  1074. /package/lib/esm/{render/primitives → common/internal/render}/Strokes.js +0 -0
  1075. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  1076. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  1077. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  1078. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  1079. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  1080. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  1081. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  1082. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  1083. /package/lib/esm/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  1084. /package/lib/esm/{render → common/render}/GraphicPrimitive.js +0 -0
  1085. /package/lib/esm/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  1086. /package/lib/esm/{render → common/render}/InstancedGraphicParams.js +0 -0
@@ -7,7 +7,7 @@
7
7
  * @module Tools
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.DefineACSByPointsTool = exports.DefineACSByElementTool = exports.AccuDrawRotateElementTool = exports.AccuDrawRotateAxesTool = exports.AccuDrawRotateViewTool = exports.AccuDrawRotateSideTool = exports.AccuDrawRotateFrontTool = exports.AccuDrawRotateTopTool = exports.AccuDrawRotateCycleTool = exports.AccuDrawChangeModeTool = exports.AccuDrawSetLockAngleTool = exports.AccuDrawSetLockDistanceTool = exports.AccuDrawSetLockZTool = exports.AccuDrawSetLockYTool = exports.AccuDrawSetLockXTool = exports.AccuDrawSetLockSmartTool = exports.AccuDrawSetOriginTool = exports.AccuDrawShortcuts = void 0;
10
+ exports.DefineACSByPointsTool = exports.DefineACSByElementTool = exports.AccuDrawRotateElementTool = exports.AccuDrawRotateAxesTool = exports.AccuDrawRotateViewTool = exports.AccuDrawRotateSideTool = exports.AccuDrawRotateFrontTool = exports.AccuDrawRotateTopTool = exports.AccuDrawRotateCycleTool = exports.AccuDrawChangeModeTool = exports.AccuDrawSetLockAngleTool = exports.AccuDrawSetLockDistanceTool = exports.AccuDrawSetLockZTool = exports.AccuDrawSetLockYTool = exports.AccuDrawSetLockXTool = exports.AccuDrawSetLockIndexTool = exports.AccuDrawSetLockSmartTool = exports.AccuDrawSetOriginTool = exports.AccuDrawSuspendToggleTool = exports.AccuDrawSessionToggleTool = exports.AccuDrawShortcuts = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_geometry_1 = require("@itwin/core-geometry");
13
13
  const AccuDraw_1 = require("../AccuDraw");
@@ -28,6 +28,25 @@ function normalizedCrossProduct(vec1, vec2, out) {
28
28
  * @alpha
29
29
  */
30
30
  class AccuDrawShortcuts {
31
+ /** Disable/Enable AccuDraw for the session */
32
+ static sessionToggle() {
33
+ const accudraw = IModelApp_1.IModelApp.accuDraw;
34
+ if (accudraw.isEnabled)
35
+ accudraw.disableForSession();
36
+ else
37
+ accudraw.enableForSession();
38
+ }
39
+ /** Suspend/Unsuspend AccuDraw for the active tool */
40
+ static suspendToggle() {
41
+ const accudraw = IModelApp_1.IModelApp.accuDraw;
42
+ if (!accudraw.isEnabled)
43
+ return;
44
+ if (accudraw.isActive)
45
+ accudraw.deactivate();
46
+ else
47
+ accudraw.activate();
48
+ accudraw.refreshDecorationsAndDynamics();
49
+ }
31
50
  static rotateAxesByPoint(isSnapped, aboutCurrentZ) {
32
51
  const accudraw = IModelApp_1.IModelApp.accuDraw;
33
52
  if (!accudraw.isEnabled)
@@ -412,6 +431,46 @@ class AccuDrawShortcuts {
412
431
  }
413
432
  accudraw.refreshDecorationsAndDynamics();
414
433
  }
434
+ /** Disable indexing when not currently indexed; if indexed, enable respective lock. */
435
+ static lockIndex() {
436
+ const accudraw = IModelApp_1.IModelApp.accuDraw;
437
+ if (!accudraw.isEnabled)
438
+ return;
439
+ if (accudraw.flags.indexLocked) {
440
+ if (accudraw.locked)
441
+ this.lockSmart();
442
+ accudraw.flags.indexLocked = false;
443
+ }
444
+ else {
445
+ if (AccuDraw_1.CompassMode.Polar === accudraw.compassMode) {
446
+ if (accudraw.indexed & AccuDraw_1.LockedStates.XY_BM) {
447
+ accudraw.setFieldLock(AccuDraw_1.ItemField.ANGLE_Item, true);
448
+ accudraw.angleLock();
449
+ }
450
+ if (accudraw.indexed & AccuDraw_1.LockedStates.DIST_BM)
451
+ this.lockDistance();
452
+ }
453
+ else {
454
+ if (accudraw.indexed & AccuDraw_1.LockedStates.X_BM) {
455
+ this.lockX();
456
+ if (accudraw.indexed & AccuDraw_1.LockedStates.DIST_BM)
457
+ this.lockY();
458
+ }
459
+ if (accudraw.indexed & AccuDraw_1.LockedStates.Y_BM) {
460
+ this.lockY();
461
+ if (accudraw.indexed & AccuDraw_1.LockedStates.DIST_BM)
462
+ this.lockX();
463
+ }
464
+ if (accudraw.indexed & AccuDraw_1.LockedStates.DIST_BM && !(accudraw.indexed & AccuDraw_1.LockedStates.XY_BM)) {
465
+ if (accudraw.locked & AccuDraw_1.LockedStates.X_BM)
466
+ this.lockY();
467
+ else
468
+ this.lockX();
469
+ }
470
+ }
471
+ accudraw.flags.indexLocked = true;
472
+ }
473
+ }
415
474
  static lockX() {
416
475
  const accudraw = IModelApp_1.IModelApp.accuDraw;
417
476
  if (!accudraw.isEnabled)
@@ -811,6 +870,12 @@ class AccuDrawShortcuts {
811
870
  case "d":
812
871
  AccuDrawShortcuts.lockDistance();
813
872
  return true;
873
+ case "h":
874
+ AccuDrawShortcuts.suspendToggle();
875
+ return true;
876
+ case "l":
877
+ AccuDrawShortcuts.lockIndex();
878
+ return true;
814
879
  case "m":
815
880
  AccuDrawShortcuts.changeCompassMode();
816
881
  return true;
@@ -844,6 +909,24 @@ class AccuDrawShortcuts {
844
909
  }
845
910
  exports.AccuDrawShortcuts = AccuDrawShortcuts;
846
911
  /** @internal */
912
+ class AccuDrawSessionToggleTool extends Tool_1.Tool {
913
+ async run() {
914
+ AccuDrawShortcuts.sessionToggle();
915
+ return true;
916
+ }
917
+ }
918
+ exports.AccuDrawSessionToggleTool = AccuDrawSessionToggleTool;
919
+ AccuDrawSessionToggleTool.toolId = "AccuDraw.SessionToggle";
920
+ /** @internal */
921
+ class AccuDrawSuspendToggleTool extends Tool_1.Tool {
922
+ async run() {
923
+ AccuDrawShortcuts.suspendToggle();
924
+ return true;
925
+ }
926
+ }
927
+ exports.AccuDrawSuspendToggleTool = AccuDrawSuspendToggleTool;
928
+ AccuDrawSuspendToggleTool.toolId = "AccuDraw.SuspendToggle";
929
+ /** @internal */
847
930
  class AccuDrawSetOriginTool extends Tool_1.Tool {
848
931
  async run() {
849
932
  AccuDrawShortcuts.setOrigin();
@@ -862,6 +945,15 @@ class AccuDrawSetLockSmartTool extends Tool_1.Tool {
862
945
  exports.AccuDrawSetLockSmartTool = AccuDrawSetLockSmartTool;
863
946
  AccuDrawSetLockSmartTool.toolId = "AccuDraw.LockSmart";
864
947
  /** @internal */
948
+ class AccuDrawSetLockIndexTool extends Tool_1.Tool {
949
+ async run() {
950
+ AccuDrawShortcuts.lockIndex();
951
+ return true;
952
+ }
953
+ }
954
+ exports.AccuDrawSetLockIndexTool = AccuDrawSetLockIndexTool;
955
+ AccuDrawSetLockIndexTool.toolId = "AccuDraw.LockIndex";
956
+ /** @internal */
865
957
  class AccuDrawSetLockXTool extends Tool_1.Tool {
866
958
  async run() {
867
959
  AccuDrawShortcuts.lockX();
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BentleyStatus } from \"@itwin/core-bentley\";\r\nimport { Geometry, Matrix3d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\r\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\r\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\r\nimport { SnapDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputCollector, Tool } from \"./Tool\";\r\n\r\n// cSpell:ignore dont unlockedz\r\n\r\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\r\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\r\n}\r\n\r\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\r\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\r\n}\r\n\r\n/**\r\n * 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.\r\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\r\n * @alpha\r\n */\r\nexport class AccuDrawShortcuts {\r\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return false;\r\n\r\n const point = accudraw.point;\r\n if (!vp.view.is3d())\r\n point.z = 0.0;\r\n\r\n if (aboutCurrentZ)\r\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n else\r\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n\r\n // Snap point and compass origin coincide...\r\n const xVec = new Vector3d();\r\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\r\n return false;\r\n\r\n accudraw.axes.x.setFrom(xVec);\r\n\r\n if (RotationMode.Context !== accudraw.rotationMode)\r\n accudraw.setRotationMode(RotationMode.Context);\r\n\r\n accudraw.flags.contextRotMode = ContextMode.XAxis;\r\n accudraw.flags.lockedRotation = false;\r\n\r\n accudraw.updateRotation();\r\n\r\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\r\n accudraw.indexed |= LockedStates.X_BM;\r\n return true;\r\n }\r\n\r\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n let accept = false;\r\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\r\n acs.setOrigin(points[0]);\r\n switch (points.length) {\r\n case 1:\r\n acs.setRotation(vp.rotation);\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\r\n accudraw.flags.fixedOrg = true;\r\n }\r\n break;\r\n\r\n case 2:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n if (vp.view.is3d()) {\r\n if (normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 0.0, 1.0);\r\n\r\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 1.0, 0.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n }\r\n }\r\n\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\r\n accudraw.published.vector.setFrom(vec[0]);\r\n }\r\n break;\r\n }\r\n\r\n vec[2].set(0.0, 0.0, 1.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n\r\n case 3:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\r\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n }\r\n\r\n return accept;\r\n }\r\n\r\n public static processPendingHints() { IModelApp.accuDraw.processHints(); }\r\n\r\n public static requestInputFocus() {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.grabInputFocus();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n // Helper method for GUI implementation...\r\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\r\n await accudraw.processFieldInput(index, str, true);\r\n } else {\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n accudraw.onFieldValueChange(index);\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\r\n break;\r\n }\r\n\r\n accudraw.setKeyinStatus(index, KeyinStatus.Partial);\r\n accudraw.setFocusItem(index);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n\r\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\r\n\r\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n await accudraw.processFieldInput(index, str, true);\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n const vp = accudraw.currentView;\r\n if (accudraw.isActive) {\r\n if (!vp)\r\n return;\r\n\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n\r\n accudraw.flags.dialogNeedsUpdate = true;\r\n return;\r\n }\r\n\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ItemField.ANGLE_Item;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ItemField.Y_Item;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\r\n break;\r\n }\r\n accudraw.setFocusItem(index);\r\n }\r\n\r\n public static itemFieldLockToggle(index: ItemField): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index)) {\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.distanceLock(true, false);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.angleLock();\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n accudraw.clearTentative();\r\n break;\r\n }\r\n\r\n return;\r\n }\r\n\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n break;\r\n }\r\n\r\n accudraw.dontMoveFocus = false;\r\n accudraw.clearTentative();\r\n }\r\n\r\n public static itemRotationModeChange(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : true;\r\n\r\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\r\n accudraw.setRotationMode(RotationMode.Top);\r\n\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.updateRotation(true);\r\n }\r\n\r\n // Shortcut implementations for GUI entry points...\r\n public static setOrigin(explicitOrigin?: Point3d): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (explicitOrigin) {\r\n accudraw.published.origin.setFrom(explicitOrigin);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\r\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\r\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined !== snap) {\r\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\r\n\r\n if (ev.viewport) {\r\n accudraw.published.origin.setFrom(ev.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n }\r\n }\r\n } else {\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n accudraw.setLastPoint(accudraw.published.origin);\r\n }\r\n\r\n accudraw.clearTentative();\r\n const vp = accudraw.currentView;\r\n\r\n // NOTE: _AdjustPoint should have been called to have setup currentView...\r\n if (vp && !vp.view.is3d())\r\n accudraw.published.origin.z = 0.0;\r\n\r\n accudraw.origin.setFrom(accudraw.published.origin);\r\n accudraw.point.setFrom(accudraw.published.origin);\r\n accudraw.planePt.setFrom(accudraw.published.origin);\r\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\r\n accudraw.activate();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static changeCompassMode(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\r\n\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\r\n axisLockStatus &= ~LockedStates.X_BM;\r\n\r\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\r\n axisLockStatus &= ~LockedStates.Y_BM;\r\n }\r\n }\r\n\r\n accudraw.changeCompassMode(true);\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n accudraw.delta.x = accudraw.delta.y = 0.0;\r\n\r\n if (axisLockStatus & LockedStates.X_BM)\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n else if (axisLockStatus & LockedStates.Y_BM)\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n } else {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n }\r\n accudraw.locked = axisLockStatus;\r\n }\r\n accudraw.flags.baseMode = accudraw.compassMode;\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockSmart(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const accuSnap = IModelApp.accuSnap;\r\n\r\n // Don't want AccuSnap to influence axis or Z...\r\n if (accuSnap.isHot) {\r\n accuSnap.clear();\r\n\r\n const vp = accudraw.currentView;\r\n if (vp) {\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n }\r\n }\r\n\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n const isSnapped = accudraw.clearTentative();\r\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n } else if (isSnapped) {\r\n accudraw.doLockAngle(isSnapped);\r\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\r\n accudraw.angleLock();\r\n } else {\r\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\r\n accudraw.indexed |= LockedStates.Y_BM;\r\n else\r\n accudraw.indexed |= LockedStates.X_BM;\r\n accudraw.angleLock();\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n }\r\n\r\n if (accudraw.locked) { // if locked, unlock\r\n accudraw.clearTentative();\r\n accudraw.locked &= ~LockedStates.XY_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else { // lock to nearest axis\r\n if (accudraw.clearTentative()) {\r\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\r\n accudraw.doLockAngle(false);\r\n return;\r\n }\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\r\n accudraw.delta.y = 0.0;\r\n accudraw.onFieldValueChange(ItemField.Y_Item);\r\n accudraw.locked |= LockedStates.Y_BM;\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n } else {\r\n accudraw.delta.x = 0.0;\r\n accudraw.onFieldValueChange(ItemField.X_Item);\r\n accudraw.locked |= LockedStates.X_BM;\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n }\r\n\r\n if (!accudraw.flags.lockedRotation) {\r\n accudraw.flags.lockedRotation = true;\r\n accudraw.flags.contextRotMode = ContextMode.Locked;\r\n accudraw.setRotationMode(RotationMode.Context);\r\n }\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockX(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.X_Item)) {\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockY(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockZ(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else {\r\n // Move focus to Z field...\r\n if (!isSnapped && accudraw.autoFocusFields) {\r\n accudraw.setFocusItem(ItemField.Z_Item);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n accudraw.setFieldLock(ItemField.Z_Item, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockDistance(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (CompassMode.Polar !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.locked = 0;\r\n accudraw.fixPointPolar(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n\r\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic); // Need to clear partial status if locked by entering distance since focus stays in distance field...\r\n } else {\r\n // Move focus to distance field...\r\n if (!isSnapped && accudraw.autoFocusFields)\r\n accudraw.setFocusItem(ItemField.DIST_Item);\r\n accudraw.distanceLock(true, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockAngle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n accudraw.doLockAngle(accudraw.clearTentative());\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public lockIndex(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.flags.indexLocked) {\r\n if (accudraw.locked)\r\n AccuDrawShortcuts.lockSmart();\r\n\r\n accudraw.flags.indexLocked = false;\r\n } else {\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n if (accudraw.indexed & LockedStates.XY_BM) {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n accudraw.angleLock();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockDistance();\r\n } else {\r\n if (accudraw.indexed & LockedStates.X_BM) {\r\n AccuDrawShortcuts.lockX();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockY();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.Y_BM) {\r\n AccuDrawShortcuts.lockY();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockX();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\r\n if (accudraw.locked & LockedStates.X_BM)\r\n AccuDrawShortcuts.lockY();\r\n else\r\n AccuDrawShortcuts.lockX();\r\n }\r\n }\r\n\r\n accudraw.flags.indexLocked = true;\r\n }\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static setStandardRotation(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (RotationMode.Context === rotation) {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n } else {\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.setRotationMode(rotation);\r\n }\r\n accudraw.updateRotation(true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static alignView(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n const newMatrix = accudraw.getRotation();\r\n if (newMatrix.isExactEqual(vp.rotation))\r\n return;\r\n\r\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\r\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\r\n const newFrustum = vp.getFrustum();\r\n newFrustum.multiply(rotateTransform);\r\n\r\n vp.view.setupFromFrustum(newFrustum);\r\n vp.synchWithView();\r\n vp.animateFrustumChange();\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\r\n\r\n public static rotateToACS(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n }\r\n\r\n public static rotateCycle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n let rotation: RotationMode;\r\n switch (accudraw.rotationMode) {\r\n case RotationMode.View:\r\n case RotationMode.Side:\r\n rotation = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n rotation = RotationMode.Front;\r\n break;\r\n\r\n case RotationMode.Front:\r\n rotation = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Context:\r\n rotation = RotationMode.Context;\r\n\r\n if (rotation !== accudraw.flags.baseRotation) {\r\n accudraw.baseAxes.setFrom(accudraw.axes);\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n accudraw.flags.baseRotation = rotation;\r\n } else {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n if (!accudraw.axes.equals(axes))\r\n accudraw.changeBaseRotationMode(rotation);\r\n }\r\n\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n case RotationMode.ACS:\r\n rotation = RotationMode.ACS;\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n this.setStandardRotation(rotation);\r\n }\r\n\r\n public static rotate90(axis: number): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const newRotation = new ThreeAxes();\r\n\r\n accudraw.locked = accudraw.indexed = 0;\r\n accudraw.unlockAllFields();\r\n\r\n switch (axis) {\r\n case 0:\r\n newRotation.x.setFrom(accudraw.axes.x);\r\n newRotation.z.setFrom(accudraw.axes.y);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n\r\n case 1:\r\n newRotation.x.setFrom(accudraw.axes.z);\r\n newRotation.y.setFrom(accudraw.axes.y);\r\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\r\n break;\r\n\r\n case 2:\r\n newRotation.x.setFrom(accudraw.axes.y);\r\n newRotation.z.setFrom(accudraw.axes.z);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n }\r\n\r\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static async rotateAxes(aboutCurrentZ: boolean) {\r\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\r\n }\r\n\r\n public static async rotateToElement() {\r\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\r\n }\r\n\r\n public static async defineACSByElement() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\r\n }\r\n\r\n public static async defineACSByPoints() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\r\n }\r\n\r\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n let currRotation = 0, currBaseRotation = 0;\r\n const axes = new ThreeAxes();\r\n\r\n if (!useRotation) {\r\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\r\n currRotation = accudraw.rotationMode;\r\n currBaseRotation = accudraw.flags.baseRotation;\r\n axes.setFrom(accudraw.axes);\r\n }\r\n\r\n if (acsName && \"\" !== acsName) {\r\n // // See if this ACS already exists...\r\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\r\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\r\n\r\n // if (!acsId.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\r\n\r\n // if (!auxElm.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\r\n\r\n // if (!acsPtr.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\r\n\r\n // if (!useOrigin)\r\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\r\n\r\n // if (!useRotation)\r\n // acsPtr -> SetRotation(oldACS.GetRotation());\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n }\r\n\r\n const currentACS = vp.view.auxiliaryCoordinateSystem;\r\n\r\n if (useOrigin) {\r\n accudraw.origin.setFrom(currentACS.getOrigin());\r\n accudraw.point.setFrom(accudraw.origin);\r\n accudraw.planePt.setFrom(accudraw.origin);\r\n }\r\n\r\n if (useRotation) {\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n } else {\r\n this.itemFieldUnlockAll();\r\n\r\n accudraw.setRotationMode(currRotation);\r\n accudraw.flags.baseRotation = currBaseRotation;\r\n accudraw.axes.setFrom(axes);\r\n\r\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\r\n const acs = currentACS.clone();\r\n\r\n const rMatrix = accudraw.getRotation();\r\n acs.setRotation(rMatrix);\r\n\r\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\r\n }\r\n\r\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\r\n }\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static writeACS(_acsName: string): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n // const origin = accudraw.origin;\r\n // const rMatrix = accudraw.getRotation();\r\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\r\n // acsPtr -> SetOrigin(origin);\r\n // acsPtr -> SetRotation(rMatrix);\r\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\r\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\r\n // acsPtr -> SetDescription(\"\");\r\n\r\n // if (acsName && '\\0' != acsName[0]) {\r\n // DgnDbStatus status;\r\n // acsPtr -> Insert(& status);\r\n\r\n // if (DgnDbStatus:: Success != status)\r\n // return BentleyStatus.ERROR;\r\n // }\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n\r\n // accudraw.flags.baseRotation = RotationMode.ACS;\r\n // accudraw.SetRotationMode(RotationMode.ACS);\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static itemFieldUnlockAll(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (accudraw.isEnabled)\r\n accudraw.unlockAllFields();\r\n }\r\n\r\n /** @internal Temporary keyboard shortcuts. */\r\n public static async processShortcutKey(keyEvent: KeyboardEvent) {\r\n switch (keyEvent.key.toLowerCase()) {\r\n case \"enter\":\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n case \"x\":\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n case \"y\":\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n case \"z\":\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n case \"a\":\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n case \"d\":\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n case \"m\":\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n case \"t\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n case \"f\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n case \"s\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n case \"v\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n case \"o\":\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n case \"c\":\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n case \"q\":\r\n return AccuDrawShortcuts.rotateAxes(true);\r\n case \"e\":\r\n return AccuDrawShortcuts.rotateToElement();\r\n case \"r\":\r\n return AccuDrawShortcuts.defineACSByPoints();\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetOriginTool extends Tool {\r\n public static override toolId = \"AccuDraw.SetOrigin\";\r\n public override async run() {\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockSmartTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockSmart\";\r\n public override async run() {\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockXTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockX\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockYTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockY\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockZTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockZ\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockDistanceTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockDistance\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockAngleTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockAngle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawChangeModeTool extends Tool {\r\n public static override toolId = \"AccuDraw.ChangeMode\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateCycleTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateCycle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateTopTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateTop\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateFrontTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateFront\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateSideTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateSide\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateViewTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateView\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nabstract class AccuDrawShortcutsTool extends InputCollector {\r\n private _cancel: boolean;\r\n public constructor() {\r\n super();\r\n this._cancel = true;\r\n }\r\n\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this.initLocateElements(false, true, undefined, CoordinateLockOverrides.None);\r\n this.doManipulationStart();\r\n } // NOTE: InputCollector inherits suspended primitive's state, set everything...\r\n\r\n public override async onCleanup() { this.doManipulationStop(this._cancel); }\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this.doManipulation(ev, false)) {\r\n this._cancel = false;\r\n await this.exitTool();\r\n }\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> { this.doManipulation(ev, true); }\r\n public override async exitTool() {\r\n await super.exitTool();\r\n AccuDrawShortcuts.requestInputFocus();\r\n } // re-grab focus when auto-focus tool setting set...\r\n\r\n public activateAccuDrawOnStart() { return true; }\r\n public doManipulationStart() {\r\n if (this.activateAccuDrawOnStart())\r\n IModelApp.accuDraw.activate();\r\n\r\n this.doManipulation(undefined, true);\r\n }\r\n\r\n public doManipulationStop(cancel: boolean) {\r\n if (!cancel)\r\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();\r\n }\r\n\r\n public onManipulationComplete(): AccuDrawFlags { return 0; }\r\n public abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateAxes\";\r\n public static override get maxArgs(): number { return 1; }\r\n protected _immediateMode: boolean = false;\r\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\r\n\r\n public override async onInstall(): Promise<boolean> {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isActive)\r\n return false; // Require compass to already be active for this shortcut...\r\n\r\n if (this.aboutCurrentZ)\r\n accudraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base; base Z is used when defining compass rotation by x axis...\r\n\r\n if (accudraw.clearTentative() || IModelApp.accuSnap.isHot ||\r\n (CompassMode.Polar === accudraw.compassMode && accudraw.getFieldLock(ItemField.ANGLE_Item)) ||\r\n (CompassMode.Polar !== accudraw.compassMode && accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item))) {\r\n if (AccuDrawShortcuts.rotateAxesByPoint(true, this.aboutCurrentZ)) {\r\n AccuDrawShortcuts.itemFieldUnlockAll();\r\n accudraw.refreshDecorationsAndDynamics();\r\n this._immediateMode = true;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public override async onPostInstall() {\r\n if (this._immediateMode) {\r\n await this.exitTool();\r\n return;\r\n }\r\n return super.onPostInstall();\r\n }\r\n\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!vp)\r\n return true;\r\n AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.aboutCurrentZ);\r\n vp.invalidateDecorations();\r\n if (!isMotion)\r\n AccuDrawShortcuts.itemFieldUnlockAll();\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: any[]): Promise<boolean> {\r\n for (const arg of args) {\r\n if (arg.toLowerCase() === \"unlockedz\")\r\n this.aboutCurrentZ = false;\r\n }\r\n return this.run(args);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateElement\";\r\n public moveOrigin: boolean = !IModelApp.accuDraw.isActive; // By default use current origin if AccuDraw is already enabled...\r\n public override async onInstall(): Promise<boolean> { return IModelApp.accuDraw.isEnabled; } // Require compass to be enabled for this session...\r\n\r\n public override onManipulationComplete(): AccuDrawFlags {\r\n 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...\r\n if (this.moveOrigin)\r\n ignoreFlags |= AccuDrawFlags.SetOrigin;\r\n return ignoreFlags;\r\n }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\r\n }\r\n\r\n public updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\r\n if (undefined === rMatrix)\r\n return false;\r\n const origin = this.moveOrigin ? snap.snapPoint : accudraw.origin;\r\n accudraw.setContext(AccuDrawFlags.AlwaysSetOrigin | AccuDrawFlags.SetRMatrix, origin, rMatrix);\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!vp)\r\n return true;\r\n\r\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\r\n return true;\r\n\r\n if (undefined === ev)\r\n AccuDrawShortcuts.processPendingHints();\r\n if (!isMotion)\r\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration when not updating ACS...\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByElement\";\r\n private _origin = Point3d.create();\r\n private _rMatrix = Matrix3d.createIdentity();\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override activateAccuDrawOnStart(): boolean { return false; }\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\");\r\n }\r\n\r\n public updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\r\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\r\n if (undefined === rMatrix)\r\n return false;\r\n this._origin = snap.snapPoint;\r\n this._rMatrix = rMatrix;\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : undefined;\r\n if (!vp)\r\n return true;\r\n\r\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\r\n return true;\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return true;\r\n\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByPointsTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\r\n private readonly _points: Point3d[] = [];\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override activateAccuDrawOnStart(): boolean { return false; }\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n const tentativePoint = IModelApp.tentativePoint;\r\n if (!tentativePoint.isActive) {\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\r\n return;\r\n }\r\n\r\n const origin = tentativePoint.getPoint().clone();\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\r\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);\r\n this._points.push(origin);\r\n tentativePoint.clear(true);\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n if (!ev || !ev.viewport)\r\n return true;\r\n\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return false;\r\n\r\n IModelApp.accuDraw.activate();\r\n this._points.push(ev.point.clone());\r\n\r\n const vp = ev.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? \".SecondPoint\" : \".NextPoint\"}`);\r\n return false;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const tmpPoints: Point3d[] = [];\r\n this._points.forEach((pt) => tmpPoints.push(pt));\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n tmpPoints.push(ev.point);\r\n\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"AccuDrawTool.js","sourceRoot":"","sources":["../../../src/tools/AccuDrawTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BentleyStatus } from \"@itwin/core-bentley\";\r\nimport { Geometry, Matrix3d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport { AccuDraw, AccuDrawFlags, CompassMode, ContextMode, ItemField, KeyinStatus, LockedStates, RotationMode, ThreeAxes } from \"../AccuDraw\";\r\nimport { TentativeOrAccuSnap } from \"../AccuSnap\";\r\nimport { ACSDisplayOptions, AuxCoordSystemState } from \"../AuxCoordSys\";\r\nimport { SnapDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputCollector, Tool } from \"./Tool\";\r\n\r\n// cSpell:ignore dont unlockedz\r\n\r\nfunction normalizedDifference(point1: Point3d, point2: Point3d, out: Vector3d): number {\r\n return point2.vectorTo(point1).normalizeWithLength(out).mag;\r\n}\r\n\r\nfunction normalizedCrossProduct(vec1: Vector3d, vec2: Vector3d, out: Vector3d): number {\r\n return vec1.crossProduct(vec2, out).normalizeWithLength(out).mag;\r\n}\r\n\r\n/**\r\n * 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.\r\n * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.\r\n * @alpha\r\n */\r\nexport class AccuDrawShortcuts {\r\n /** Disable/Enable AccuDraw for the session */\r\n public static sessionToggle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n\r\n if (accudraw.isEnabled)\r\n accudraw.disableForSession();\r\n else\r\n accudraw.enableForSession();\r\n }\r\n\r\n /** Suspend/Unsuspend AccuDraw for the active tool */\r\n public static suspendToggle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.isActive)\r\n accudraw.deactivate();\r\n else\r\n accudraw.activate();\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static rotateAxesByPoint(isSnapped: boolean, aboutCurrentZ: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return false;\r\n\r\n const point = accudraw.point;\r\n if (!vp.view.is3d())\r\n point.z = 0.0;\r\n\r\n if (aboutCurrentZ)\r\n accudraw.hardConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n else\r\n accudraw.softConstructionPlane(point, point, accudraw.planePt, accudraw.axes.z, vp, isSnapped);\r\n\r\n // Snap point and compass origin coincide...\r\n const xVec = new Vector3d();\r\n if (normalizedDifference(point, accudraw.planePt, xVec) < Geometry.smallAngleRadians)\r\n return false;\r\n\r\n accudraw.axes.x.setFrom(xVec);\r\n\r\n if (RotationMode.Context !== accudraw.rotationMode)\r\n accudraw.setRotationMode(RotationMode.Context);\r\n\r\n accudraw.flags.contextRotMode = ContextMode.XAxis;\r\n accudraw.flags.lockedRotation = false;\r\n\r\n accudraw.updateRotation();\r\n\r\n // Always want index line to display for x-Axis...changing rotation clears this...so it flashes...\r\n accudraw.indexed |= LockedStates.X_BM;\r\n return true;\r\n }\r\n\r\n public static updateACSByPoints(acs: AuxCoordSystemState, vp: Viewport, points: Point3d[], isDynamics: boolean): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return false;\r\n\r\n let accept = false;\r\n const vec = [new Vector3d(), new Vector3d(), new Vector3d()];\r\n acs.setOrigin(points[0]);\r\n switch (points.length) {\r\n case 1:\r\n acs.setRotation(vp.rotation);\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin;\r\n accudraw.flags.fixedOrg = true;\r\n }\r\n break;\r\n\r\n case 2:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n if (vp.view.is3d()) {\r\n if (normalizedCrossProduct(accudraw.axes.y, vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 0.0, 1.0);\r\n\r\n if (normalizedCrossProduct(vec[2], vec[0], vec[1]) < 0.00001) {\r\n vec[2].set(0.0, 1.0, 0.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n }\r\n }\r\n\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n\r\n if (!isDynamics) {\r\n accudraw.published.origin.setFrom(points[0]);\r\n accudraw.published.flags = AccuDrawFlags.SetOrigin | AccuDrawFlags.SetNormal;\r\n accudraw.published.vector.setFrom(vec[0]);\r\n }\r\n break;\r\n }\r\n\r\n vec[2].set(0.0, 0.0, 1.0);\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n\r\n case 3:\r\n if (normalizedDifference(points[1], points[0], vec[0]) < 0.00001 ||\r\n normalizedDifference(points[2], points[0], vec[1]) < 0.00001 ||\r\n normalizedCrossProduct(vec[0], vec[1], vec[2]) < 0.00001) {\r\n accept = true;\r\n break;\r\n }\r\n\r\n normalizedCrossProduct(vec[2], vec[0], vec[1]);\r\n acs.setRotation(Matrix3d.createRows(vec[0], vec[1], vec[2]));\r\n accept = true;\r\n break;\r\n }\r\n\r\n return accept;\r\n }\r\n\r\n public static processPendingHints() { IModelApp.accuDraw.processHints(); }\r\n\r\n public static requestInputFocus() {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.grabInputFocus();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n // Helper method for GUI implementation...\r\n public static async itemFieldNavigate(index: ItemField, str: string, forward: boolean): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n if (!accudraw.isActive && KeyinStatus.Partial === accudraw.getKeyinStatus(index)) {\r\n await accudraw.processFieldInput(index, str, true);\r\n } else {\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n accudraw.onFieldValueChange(index);\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.ANGLE_Item);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ((is3d && !forward) ? ItemField.Z_Item : ItemField.Y_Item);\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = ((is3d && forward) ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (forward ? (isPolar ? ItemField.DIST_Item : ItemField.X_Item) : (isPolar ? ItemField.ANGLE_Item : ItemField.Y_Item));\r\n break;\r\n }\r\n\r\n accudraw.setKeyinStatus(index, KeyinStatus.Partial);\r\n accudraw.setFocusItem(index);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n\r\n public static itemFieldNewInput(index: ItemField): void { IModelApp.accuDraw.setKeyinStatus(index, KeyinStatus.Partial); }\r\n\r\n public static async itemFieldAcceptInput(index: ItemField, str: string): Promise<void> {\r\n const accudraw = IModelApp.accuDraw;\r\n await accudraw.processFieldInput(index, str, true);\r\n accudraw.setKeyinStatus(index, KeyinStatus.Dynamic);\r\n\r\n if (accudraw.getFieldLock(index))\r\n accudraw.saveCoordinate(index, accudraw.getValueByIndex(index));\r\n\r\n const vp = accudraw.currentView;\r\n if (accudraw.isActive) {\r\n if (!vp)\r\n return;\r\n\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n\r\n accudraw.flags.dialogNeedsUpdate = true;\r\n return;\r\n }\r\n\r\n const is3d = vp ? vp.view.is3d() : false;\r\n const isPolar = (CompassMode.Polar === accudraw.compassMode);\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n index = ItemField.ANGLE_Item;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.DIST_Item);\r\n break;\r\n\r\n case ItemField.X_Item:\r\n index = ItemField.Y_Item;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n index = (is3d ? ItemField.Z_Item : ItemField.X_Item);\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n index = (isPolar ? ItemField.DIST_Item : ItemField.X_Item);\r\n break;\r\n }\r\n accudraw.setFocusItem(index);\r\n }\r\n\r\n public static itemFieldLockToggle(index: ItemField): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.getFieldLock(index)) {\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.distanceLock(true, false);\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.angleLock();\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.clearTentative();\r\n accudraw.locked |= LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n accudraw.clearTentative();\r\n break;\r\n }\r\n\r\n return;\r\n }\r\n\r\n switch (index) {\r\n case ItemField.DIST_Item:\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n break;\r\n\r\n case ItemField.ANGLE_Item:\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n break;\r\n\r\n case ItemField.X_Item:\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n break;\r\n\r\n case ItemField.Y_Item:\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n break;\r\n\r\n case ItemField.Z_Item:\r\n break;\r\n }\r\n\r\n accudraw.dontMoveFocus = false;\r\n accudraw.clearTentative();\r\n }\r\n\r\n public static itemRotationModeChange(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n const vp = accudraw.currentView;\r\n const is3d = vp ? vp.view.is3d() : true;\r\n\r\n if (!is3d && (RotationMode.Front === rotation || RotationMode.Side === rotation))\r\n accudraw.setRotationMode(RotationMode.Top);\r\n\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.updateRotation(true);\r\n }\r\n\r\n // Shortcut implementations for GUI entry points...\r\n public static setOrigin(explicitOrigin?: Point3d): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (explicitOrigin) {\r\n accudraw.published.origin.setFrom(explicitOrigin);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else if (accudraw.isInactive || accudraw.isDeactivated) {\r\n // If AccuSnap is active use adjusted snap point, otherwise use last data point...\r\n const snap = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined !== snap) {\r\n accudraw.published.origin.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromLastDataButton(ev);\r\n\r\n if (ev.viewport) {\r\n accudraw.published.origin.setFrom(ev.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n } else {\r\n // NOTE: If current point isn't valid setDefaultOrigin will be called...\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n }\r\n }\r\n } else {\r\n accudraw.published.origin.setFrom(accudraw.point);\r\n accudraw.flags.haveValidOrigin = true;\r\n accudraw.setLastPoint(accudraw.published.origin);\r\n }\r\n\r\n accudraw.clearTentative();\r\n const vp = accudraw.currentView;\r\n\r\n // NOTE: _AdjustPoint should have been called to have setup currentView...\r\n if (vp && !vp.view.is3d())\r\n accudraw.published.origin.z = 0.0;\r\n\r\n accudraw.origin.setFrom(accudraw.published.origin);\r\n accudraw.point.setFrom(accudraw.published.origin);\r\n accudraw.planePt.setFrom(accudraw.published.origin);\r\n accudraw.published.flags |= AccuDrawFlags.SetOrigin;\r\n accudraw.activate();\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static changeCompassMode(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n let axisLockStatus = accudraw.locked & LockedStates.XY_BM;\r\n\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n if (axisLockStatus & LockedStates.X_BM && accudraw.delta.x !== 0.0)\r\n axisLockStatus &= ~LockedStates.X_BM;\r\n\r\n if (axisLockStatus & LockedStates.Y_BM && accudraw.delta.y !== 0.0)\r\n axisLockStatus &= ~LockedStates.Y_BM;\r\n }\r\n }\r\n\r\n accudraw.changeCompassMode(true);\r\n if (axisLockStatus) {\r\n if (CompassMode.Rectangular === accudraw.compassMode) {\r\n accudraw.delta.x = accudraw.delta.y = 0.0;\r\n\r\n if (axisLockStatus & LockedStates.X_BM)\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n else if (axisLockStatus & LockedStates.Y_BM)\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n } else {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n }\r\n accudraw.locked = axisLockStatus;\r\n }\r\n accudraw.flags.baseMode = accudraw.compassMode;\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockSmart(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const accuSnap = IModelApp.accuSnap;\r\n\r\n // Don't want AccuSnap to influence axis or Z...\r\n if (accuSnap.isHot) {\r\n accuSnap.clear();\r\n\r\n const vp = accudraw.currentView;\r\n if (vp) {\r\n if (CompassMode.Polar === accudraw.compassMode)\r\n accudraw.fixPointPolar(vp);\r\n else\r\n accudraw.fixPointRectangular(vp);\r\n }\r\n }\r\n\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n const isSnapped = accudraw.clearTentative();\r\n if (accudraw.locked & LockedStates.ANGLE_BM) { // angle locked (unlock it)\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, false);\r\n accudraw.locked &= ~LockedStates.ANGLE_BM;\r\n } else if (accudraw.getFieldLock(ItemField.DIST_Item)) { // distance locked (unlock it)\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n } else if (isSnapped) {\r\n accudraw.doLockAngle(isSnapped);\r\n } else if (accudraw.indexed & LockedStates.ANGLE_BM) { // angle indexed (lock it)\r\n accudraw.angleLock();\r\n } else {\r\n if (Math.abs(accudraw.vector.dotProduct(accudraw.axes.x)) > Math.abs(accudraw.vector.dotProduct(accudraw.axes.y)))\r\n accudraw.indexed |= LockedStates.Y_BM;\r\n else\r\n accudraw.indexed |= LockedStates.X_BM;\r\n accudraw.angleLock();\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n }\r\n\r\n if (accudraw.locked) { // if locked, unlock\r\n accudraw.clearTentative();\r\n accudraw.locked &= ~LockedStates.XY_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n if (accudraw.getFieldLock(ItemField.Z_Item) && accudraw.delta.z === 0.0 && !accudraw.stickyZLock)\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else { // lock to nearest axis\r\n if (accudraw.clearTentative()) {\r\n if (Math.abs(accudraw.delta.x) >= Geometry.smallAngleRadians && Math.abs(accudraw.delta.y) >= Geometry.smallAngleRadians) {\r\n accudraw.doLockAngle(false);\r\n return;\r\n }\r\n }\r\n\r\n const vp = accudraw.currentView;\r\n if (Math.abs(accudraw.delta.x) > Math.abs(accudraw.delta.y)) {\r\n accudraw.delta.y = 0.0;\r\n accudraw.onFieldValueChange(ItemField.Y_Item);\r\n accudraw.locked |= LockedStates.Y_BM;\r\n accudraw.locked &= ~LockedStates.X_BM;\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n } else {\r\n accudraw.delta.x = 0.0;\r\n accudraw.onFieldValueChange(ItemField.X_Item);\r\n accudraw.locked |= LockedStates.X_BM;\r\n accudraw.locked &= ~LockedStates.Y_BM;\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.setFieldLock(ItemField.Z_Item, vp ? vp.view.is3d() : false);\r\n }\r\n\r\n if (!accudraw.flags.lockedRotation) {\r\n accudraw.flags.lockedRotation = true;\r\n accudraw.flags.contextRotMode = ContextMode.Locked;\r\n accudraw.setRotationMode(RotationMode.Context);\r\n }\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n /** Disable indexing when not currently indexed; if indexed, enable respective lock. */\r\n public static lockIndex(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.flags.indexLocked) {\r\n if (accudraw.locked)\r\n this.lockSmart();\r\n\r\n accudraw.flags.indexLocked = false;\r\n } else {\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n if (accudraw.indexed & LockedStates.XY_BM) {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n accudraw.angleLock();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockDistance();\r\n } else {\r\n if (accudraw.indexed & LockedStates.X_BM) {\r\n this.lockX();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockY();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.Y_BM) {\r\n this.lockY();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n this.lockX();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\r\n if (accudraw.locked & LockedStates.X_BM)\r\n this.lockY();\r\n else\r\n this.lockX();\r\n }\r\n }\r\n\r\n accudraw.flags.indexLocked = true;\r\n }\r\n }\r\n\r\n public static lockX(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.X_Item)) {\r\n accudraw.setFieldLock(ItemField.X_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.X_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.X_Item, accudraw.delta.x);\r\n accudraw.setFieldLock(ItemField.X_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.X_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockY(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n accudraw.clearTentative();\r\n\r\n if (CompassMode.Rectangular !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.fixPointRectangular(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.Y_Item)) {\r\n accudraw.setFieldLock(ItemField.Y_Item, false);\r\n accudraw.locked = accudraw.locked & ~LockedStates.Y_BM;\r\n } else {\r\n accudraw.saveCoordinate(ItemField.Y_Item, accudraw.delta.y);\r\n accudraw.setFieldLock(ItemField.Y_Item, true);\r\n accudraw.locked = accudraw.locked | LockedStates.Y_BM;\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockZ(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (accudraw.getFieldLock(ItemField.Z_Item)) {\r\n accudraw.setFieldLock(ItemField.Z_Item, false);\r\n } else {\r\n // Move focus to Z field...\r\n if (!isSnapped && accudraw.autoFocusFields) {\r\n accudraw.setFocusItem(ItemField.Z_Item);\r\n accudraw.dontMoveFocus = true;\r\n }\r\n accudraw.setFieldLock(ItemField.Z_Item, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockDistance(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const isSnapped = accudraw.clearTentative();\r\n\r\n if (CompassMode.Polar !== accudraw.compassMode) {\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n accudraw.locked = 0;\r\n accudraw.fixPointPolar(vp);\r\n accudraw.changeCompassMode(true);\r\n }\r\n\r\n if (accudraw.getFieldLock(ItemField.DIST_Item)) {\r\n accudraw.setFieldLock(ItemField.DIST_Item, false);\r\n accudraw.locked &= ~LockedStates.DIST_BM;\r\n\r\n accudraw.setKeyinStatus(ItemField.DIST_Item, KeyinStatus.Dynamic); // Need to clear partial status if locked by entering distance since focus stays in distance field...\r\n } else {\r\n // Move focus to distance field...\r\n if (!isSnapped && accudraw.autoFocusFields)\r\n accudraw.setFocusItem(ItemField.DIST_Item);\r\n accudraw.distanceLock(true, true);\r\n }\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static lockAngle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n accudraw.doLockAngle(accudraw.clearTentative());\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public lockIndex(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (accudraw.flags.indexLocked) {\r\n if (accudraw.locked)\r\n AccuDrawShortcuts.lockSmart();\r\n\r\n accudraw.flags.indexLocked = false;\r\n } else {\r\n if (CompassMode.Polar === accudraw.compassMode) {\r\n if (accudraw.indexed & LockedStates.XY_BM) {\r\n accudraw.setFieldLock(ItemField.ANGLE_Item, true);\r\n accudraw.angleLock();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockDistance();\r\n } else {\r\n if (accudraw.indexed & LockedStates.X_BM) {\r\n AccuDrawShortcuts.lockX();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockY();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.Y_BM) {\r\n AccuDrawShortcuts.lockY();\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM)\r\n AccuDrawShortcuts.lockX();\r\n }\r\n\r\n if (accudraw.indexed & LockedStates.DIST_BM && !(accudraw.indexed & LockedStates.XY_BM)) {\r\n if (accudraw.locked & LockedStates.X_BM)\r\n AccuDrawShortcuts.lockY();\r\n else\r\n AccuDrawShortcuts.lockX();\r\n }\r\n }\r\n\r\n accudraw.flags.indexLocked = true;\r\n }\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static setStandardRotation(rotation: RotationMode): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n if (RotationMode.Context === rotation) {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n accudraw.setContextRotation(axes.toMatrix3d(), false, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n return;\r\n } else {\r\n accudraw.flags.baseRotation = rotation;\r\n accudraw.setRotationMode(rotation);\r\n }\r\n accudraw.updateRotation(true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static alignView(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return;\r\n\r\n const newMatrix = accudraw.getRotation();\r\n if (newMatrix.isExactEqual(vp.rotation))\r\n return;\r\n\r\n const targetMatrix = newMatrix.multiplyMatrixMatrix(vp.rotation);\r\n const rotateTransform = Transform.createFixedPointAndMatrix(vp.view.getTargetPoint(), targetMatrix);\r\n const newFrustum = vp.getFrustum();\r\n newFrustum.multiply(rotateTransform);\r\n\r\n vp.view.setupFromFrustum(newFrustum);\r\n vp.synchWithView();\r\n vp.animateFrustumChange();\r\n\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static rotateToBase(): void { this.setStandardRotation(IModelApp.accuDraw.flags.baseRotation); }\r\n\r\n public static rotateToACS(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n // NOTE: Match current ACS orientation..reset auxRotationPlane to top!\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n }\r\n\r\n public static rotateCycle(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp || !vp.view.is3d())\r\n return;\r\n\r\n let rotation: RotationMode;\r\n switch (accudraw.rotationMode) {\r\n case RotationMode.View:\r\n case RotationMode.Side:\r\n rotation = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n rotation = RotationMode.Front;\r\n break;\r\n\r\n case RotationMode.Front:\r\n rotation = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Context:\r\n rotation = RotationMode.Context;\r\n\r\n if (rotation !== accudraw.flags.baseRotation) {\r\n accudraw.baseAxes.setFrom(accudraw.axes);\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n accudraw.flags.baseRotation = rotation;\r\n } else {\r\n const axes = accudraw.baseAxes.clone();\r\n accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);\r\n if (!accudraw.axes.equals(axes))\r\n accudraw.changeBaseRotationMode(rotation);\r\n }\r\n\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n case RotationMode.ACS:\r\n rotation = RotationMode.ACS;\r\n switch (accudraw.flags.auxRotationPlane) {\r\n case RotationMode.Front:\r\n accudraw.flags.auxRotationPlane = RotationMode.Side;\r\n break;\r\n case RotationMode.Side:\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n break;\r\n case RotationMode.Top:\r\n accudraw.flags.auxRotationPlane = RotationMode.Front;\r\n break;\r\n }\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n this.setStandardRotation(rotation);\r\n }\r\n\r\n public static rotate90(axis: number): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return;\r\n\r\n const newRotation = new ThreeAxes();\r\n\r\n accudraw.locked = accudraw.indexed = 0;\r\n accudraw.unlockAllFields();\r\n\r\n switch (axis) {\r\n case 0:\r\n newRotation.x.setFrom(accudraw.axes.x);\r\n newRotation.z.setFrom(accudraw.axes.y);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n\r\n case 1:\r\n newRotation.x.setFrom(accudraw.axes.z);\r\n newRotation.y.setFrom(accudraw.axes.y);\r\n newRotation.x.crossProduct(newRotation.y, newRotation.z);\r\n break;\r\n\r\n case 2:\r\n newRotation.x.setFrom(accudraw.axes.y);\r\n newRotation.z.setFrom(accudraw.axes.z);\r\n newRotation.z.crossProduct(newRotation.x, newRotation.y);\r\n break;\r\n }\r\n\r\n accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);\r\n accudraw.refreshDecorationsAndDynamics();\r\n }\r\n\r\n public static async rotateAxes(aboutCurrentZ: boolean) {\r\n return IModelApp.tools.run(\"AccuDraw.RotateAxes\", aboutCurrentZ);\r\n }\r\n\r\n public static async rotateToElement() {\r\n return IModelApp.tools.run(\"AccuDraw.RotateElement\");\r\n }\r\n\r\n public static async defineACSByElement() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByElement\");\r\n }\r\n\r\n public static async defineACSByPoints() {\r\n return IModelApp.tools.run(\"AccuDraw.DefineACSByPoints\");\r\n }\r\n\r\n public static getACS(acsName: string | undefined, useOrigin: boolean, useRotation: boolean): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n let currRotation = 0, currBaseRotation = 0;\r\n const axes = new ThreeAxes();\r\n\r\n if (!useRotation) {\r\n // Save current rotation, event listener on ACS change will orient AccuDraw to ACS...\r\n currRotation = accudraw.rotationMode;\r\n currBaseRotation = accudraw.flags.baseRotation;\r\n axes.setFrom(accudraw.axes);\r\n }\r\n\r\n if (acsName && \"\" !== acsName) {\r\n // // See if this ACS already exists...\r\n // DgnCode acsCode = AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), acsName);\r\n // DgnElementId acsId = vp -> GetViewController().GetDgnDb().Elements().QueryElementIdByCode(acsCode);\r\n\r\n // if (!acsId.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCPtr auxElm = vp -> GetViewController().GetDgnDb().Elements().Get<AuxCoordSystem>(acsId);\r\n\r\n // if (!auxElm.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemPtr acsPtr = auxElm -> MakeCopy<AuxCoordSystem>();\r\n\r\n // if (!acsPtr.IsValid())\r\n // return ERROR;\r\n\r\n // AuxCoordSystemCR oldACS = vp -> GetViewController().GetAuxCoordinateSystem();\r\n\r\n // if (!useOrigin)\r\n // acsPtr -> SetOrigin(oldACS.GetOrigin());\r\n\r\n // if (!useRotation)\r\n // acsPtr -> SetRotation(oldACS.GetRotation());\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n }\r\n\r\n const currentACS = vp.view.auxiliaryCoordinateSystem;\r\n\r\n if (useOrigin) {\r\n accudraw.origin.setFrom(currentACS.getOrigin());\r\n accudraw.point.setFrom(accudraw.origin);\r\n accudraw.planePt.setFrom(accudraw.origin);\r\n }\r\n\r\n if (useRotation) {\r\n accudraw.flags.auxRotationPlane = RotationMode.Top;\r\n this.setStandardRotation(RotationMode.ACS);\r\n } else {\r\n this.itemFieldUnlockAll();\r\n\r\n accudraw.setRotationMode(currRotation);\r\n accudraw.flags.baseRotation = currBaseRotation;\r\n accudraw.axes.setFrom(axes);\r\n\r\n if (RotationMode.ACS === accudraw.flags.baseRotation) {\r\n const acs = currentACS.clone();\r\n\r\n const rMatrix = accudraw.getRotation();\r\n acs.setRotation(rMatrix);\r\n\r\n AccuDraw.updateAuxCoordinateSystem(acs, vp);\r\n }\r\n\r\n accudraw.published.flags &= ~AccuDrawFlags.OrientACS;\r\n }\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static writeACS(_acsName: string): BentleyStatus {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isEnabled)\r\n return BentleyStatus.ERROR;\r\n\r\n const vp = accudraw.currentView;\r\n if (!vp)\r\n return BentleyStatus.ERROR;\r\n\r\n // const origin = accudraw.origin;\r\n // const rMatrix = accudraw.getRotation();\r\n // AuxCoordSystemPtr acsPtr = AuxCoordSystem:: CreateFrom(vp -> GetViewController().GetAuxCoordinateSystem());\r\n // acsPtr -> SetOrigin(origin);\r\n // acsPtr -> SetRotation(rMatrix);\r\n // acsPtr -> SetType(CompassMode.Polar == accudraw.getCompassMode() ? ACSType :: Cylindrical : ACSType:: Rectangular);\r\n // acsPtr -> SetCode(AuxCoordSystem:: CreateCode(vp -> GetViewControllerR().GetViewDefinition(), nullptr != acsName ? acsName : \"\"));\r\n // acsPtr -> SetDescription(\"\");\r\n\r\n // if (acsName && '\\0' != acsName[0]) {\r\n // DgnDbStatus status;\r\n // acsPtr -> Insert(& status);\r\n\r\n // if (DgnDbStatus:: Success != status)\r\n // return BentleyStatus.ERROR;\r\n // }\r\n\r\n // AccuDraw:: UpdateAuxCoordinateSystem(* acsPtr, * vp);\r\n\r\n // accudraw.flags.baseRotation = RotationMode.ACS;\r\n // accudraw.SetRotationMode(RotationMode.ACS);\r\n\r\n return BentleyStatus.SUCCESS;\r\n }\r\n\r\n public static itemFieldUnlockAll(): void {\r\n const accudraw = IModelApp.accuDraw;\r\n if (accudraw.isEnabled)\r\n accudraw.unlockAllFields();\r\n }\r\n\r\n /** @internal Temporary keyboard shortcuts. */\r\n public static async processShortcutKey(keyEvent: KeyboardEvent) {\r\n switch (keyEvent.key.toLowerCase()) {\r\n case \"enter\":\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n case \"x\":\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n case \"y\":\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n case \"z\":\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n case \"a\":\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n case \"d\":\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n case \"h\":\r\n AccuDrawShortcuts.suspendToggle();\r\n return true;\r\n case \"l\":\r\n AccuDrawShortcuts.lockIndex();\r\n return true;\r\n case \"m\":\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n case \"t\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n case \"f\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n case \"s\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n case \"v\":\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n case \"o\":\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n case \"c\":\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n case \"q\":\r\n return AccuDrawShortcuts.rotateAxes(true);\r\n case \"e\":\r\n return AccuDrawShortcuts.rotateToElement();\r\n case \"r\":\r\n return AccuDrawShortcuts.defineACSByPoints();\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSessionToggleTool extends Tool {\r\n public static override toolId = \"AccuDraw.SessionToggle\";\r\n public override async run() {\r\n AccuDrawShortcuts.sessionToggle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSuspendToggleTool extends Tool {\r\n public static override toolId = \"AccuDraw.SuspendToggle\";\r\n public override async run() {\r\n AccuDrawShortcuts.suspendToggle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetOriginTool extends Tool {\r\n public static override toolId = \"AccuDraw.SetOrigin\";\r\n public override async run() {\r\n AccuDrawShortcuts.setOrigin();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockSmartTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockSmart\";\r\n public override async run() {\r\n AccuDrawShortcuts.lockSmart();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockIndexTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockIndex\";\r\n public override async run() {\r\n AccuDrawShortcuts.lockIndex();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockXTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockX\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockX();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockYTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockY\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockY();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockZTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockZ\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockZ();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockDistanceTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockDistance\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockDistance();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawSetLockAngleTool extends Tool {\r\n public static override toolId = \"AccuDraw.LockAngle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.lockAngle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawChangeModeTool extends Tool {\r\n public static override toolId = \"AccuDraw.ChangeMode\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.changeCompassMode();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateCycleTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateCycle\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.rotateCycle();\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateTopTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateTop\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Top);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateFrontTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateFront\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Front);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateSideTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateSide\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.Side);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateViewTool extends Tool {\r\n public static override toolId = \"AccuDraw.RotateView\";\r\n public override async run(): Promise<boolean> {\r\n AccuDrawShortcuts.setStandardRotation(RotationMode.View);\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nabstract class AccuDrawShortcutsTool extends InputCollector {\r\n private _cancel: boolean;\r\n public constructor() {\r\n super();\r\n this._cancel = true;\r\n }\r\n\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this.initLocateElements(false, true, undefined, CoordinateLockOverrides.None);\r\n this.doManipulationStart();\r\n } // NOTE: InputCollector inherits suspended primitive's state, set everything...\r\n\r\n public override async onCleanup() { this.doManipulationStop(this._cancel); }\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this.doManipulation(ev, false)) {\r\n this._cancel = false;\r\n await this.exitTool();\r\n }\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> { this.doManipulation(ev, true); }\r\n public override async exitTool() {\r\n await super.exitTool();\r\n AccuDrawShortcuts.requestInputFocus();\r\n } // re-grab focus when auto-focus tool setting set...\r\n\r\n public activateAccuDrawOnStart() { return true; }\r\n public doManipulationStart() {\r\n if (this.activateAccuDrawOnStart())\r\n IModelApp.accuDraw.activate();\r\n\r\n this.doManipulation(undefined, true);\r\n }\r\n\r\n public doManipulationStop(cancel: boolean) {\r\n if (!cancel)\r\n IModelApp.accuDraw.savedStateInputCollector.ignoreFlags = this.onManipulationComplete();\r\n }\r\n\r\n public onManipulationComplete(): AccuDrawFlags { return 0; }\r\n public abstract doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateAxesTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateAxes\";\r\n public static override get maxArgs(): number { return 1; }\r\n protected _immediateMode: boolean = false;\r\n public constructor(public aboutCurrentZ: boolean = true) { super(); }\r\n\r\n public override async onInstall(): Promise<boolean> {\r\n const accudraw = IModelApp.accuDraw;\r\n if (!accudraw.isActive)\r\n return false; // Require compass to already be active for this shortcut...\r\n\r\n if (this.aboutCurrentZ)\r\n accudraw.changeBaseRotationMode(RotationMode.Context); // Establish current orientation as base; base Z is used when defining compass rotation by x axis...\r\n\r\n if (accudraw.clearTentative() || IModelApp.accuSnap.isHot ||\r\n (CompassMode.Polar === accudraw.compassMode && accudraw.getFieldLock(ItemField.ANGLE_Item)) ||\r\n (CompassMode.Polar !== accudraw.compassMode && accudraw.getFieldLock(ItemField.X_Item) && accudraw.getFieldLock(ItemField.Y_Item))) {\r\n if (AccuDrawShortcuts.rotateAxesByPoint(true, this.aboutCurrentZ)) {\r\n AccuDrawShortcuts.itemFieldUnlockAll();\r\n accudraw.refreshDecorationsAndDynamics();\r\n this._immediateMode = true;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public override async onPostInstall() {\r\n if (this._immediateMode) {\r\n await this.exitTool();\r\n return;\r\n }\r\n return super.onPostInstall();\r\n }\r\n\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateAxes.Prompts.FirstPoint\");\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!vp)\r\n return true;\r\n AccuDrawShortcuts.rotateAxesByPoint(TentativeOrAccuSnap.isHot, this.aboutCurrentZ);\r\n vp.invalidateDecorations();\r\n if (!isMotion)\r\n AccuDrawShortcuts.itemFieldUnlockAll();\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: any[]): Promise<boolean> {\r\n for (const arg of args) {\r\n if (arg.toLowerCase() === \"unlockedz\")\r\n this.aboutCurrentZ = false;\r\n }\r\n return this.run(args);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AccuDrawRotateElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.RotateElement\";\r\n public moveOrigin: boolean = !IModelApp.accuDraw.isActive; // By default use current origin if AccuDraw is already enabled...\r\n public override async onInstall(): Promise<boolean> { return IModelApp.accuDraw.isEnabled; } // Require compass to be enabled for this session...\r\n\r\n public override onManipulationComplete(): AccuDrawFlags {\r\n 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...\r\n if (this.moveOrigin)\r\n ignoreFlags |= AccuDrawFlags.SetOrigin;\r\n return ignoreFlags;\r\n }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.RotateElement.Prompts.FirstPoint\");\r\n }\r\n\r\n public updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\r\n const accudraw = IModelApp.accuDraw;\r\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\r\n if (undefined === rMatrix)\r\n return false;\r\n const origin = this.moveOrigin ? snap.snapPoint : accudraw.origin;\r\n accudraw.setContext(AccuDrawFlags.AlwaysSetOrigin | AccuDrawFlags.SetRMatrix, origin, rMatrix);\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : IModelApp.accuDraw.currentView;\r\n if (!vp)\r\n return true;\r\n\r\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\r\n return true;\r\n\r\n if (undefined === ev)\r\n AccuDrawShortcuts.processPendingHints();\r\n if (!isMotion)\r\n IModelApp.accuDraw.changeBaseRotationMode(RotationMode.Context); // Hold temporary rotation for tool duration when not updating ACS...\r\n return true;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByElementTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByElement\";\r\n private _origin = Point3d.create();\r\n private _rMatrix = Matrix3d.createIdentity();\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override activateAccuDrawOnStart(): boolean { return false; }\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByElement.Prompts.FirstPoint\");\r\n }\r\n\r\n public updateOrientation(snap: SnapDetail, vp: Viewport): boolean {\r\n const rMatrix = AccuDraw.getSnapRotation(snap, vp);\r\n if (undefined === rMatrix)\r\n return false;\r\n this._origin = snap.snapPoint;\r\n this._rMatrix = rMatrix;\r\n return true;\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n const vp = ev ? ev.viewport : undefined;\r\n if (!vp)\r\n return true;\r\n\r\n const snapDetail = TentativeOrAccuSnap.getCurrentSnap(false);\r\n if (undefined === snapDetail || !this.updateOrientation(snapDetail, vp))\r\n return true;\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return true;\r\n\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n this._acs.setOrigin(this._origin);\r\n this._acs.setRotation(this._rMatrix);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DefineACSByPointsTool extends AccuDrawShortcutsTool {\r\n public static override toolId = \"AccuDraw.DefineACSByPoints\";\r\n private readonly _points: Point3d[] = [];\r\n private _acs?: AuxCoordSystemState;\r\n\r\n public override activateAccuDrawOnStart(): boolean { return false; }\r\n public override onManipulationComplete(): AccuDrawFlags { return AccuDrawFlags.SetRMatrix; }\r\n\r\n public override doManipulationStart(): void {\r\n super.doManipulationStart();\r\n const tentativePoint = IModelApp.tentativePoint;\r\n if (!tentativePoint.isActive) {\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.FirstPoint\");\r\n return;\r\n }\r\n\r\n const origin = tentativePoint.getPoint().clone();\r\n CoreTools.outputPromptByKey(\"AccuDraw.DefineACSByPoints.Prompts.SecondPoint\");\r\n IModelApp.accuDraw.setContext(AccuDrawFlags.SetOrigin | AccuDrawFlags.FixedOrigin, origin);\r\n this._points.push(origin);\r\n tentativePoint.clear(true);\r\n }\r\n\r\n public doManipulation(ev: BeButtonEvent | undefined, isMotion: boolean): boolean {\r\n if (!ev || !ev.viewport)\r\n return true;\r\n\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n if (isMotion)\r\n return false;\r\n\r\n IModelApp.accuDraw.activate();\r\n this._points.push(ev.point.clone());\r\n\r\n const vp = ev.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n if (AccuDrawShortcuts.updateACSByPoints(this._acs, vp, this._points, false)) {\r\n AccuDraw.updateAuxCoordinateSystem(this._acs, vp);\r\n AccuDrawShortcuts.rotateToACS();\r\n return true;\r\n }\r\n\r\n CoreTools.outputPromptByKey(`AccuDraw.DefineACSByPoints.Prompts${1 === this._points.length ? \".SecondPoint\" : \".NextPoint\"}`);\r\n return false;\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n const tmpPoints: Point3d[] = [];\r\n this._points.forEach((pt) => tmpPoints.push(pt));\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n tmpPoints.push(ev.point);\r\n\r\n const vp = context.viewport;\r\n if (!this._acs)\r\n this._acs = vp.view.auxiliaryCoordinateSystem.clone();\r\n\r\n AccuDrawShortcuts.updateACSByPoints(this._acs, vp, tmpPoints, true);\r\n this._acs.display(context, ACSDisplayOptions.Active | ACSDisplayOptions.Dynamics);\r\n }\r\n}\r\n"]}