@itwin/core-frontend 5.2.0-dev.5 → 5.2.0-dev.8

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 (610) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/lib/cjs/BackgroundMapGeometry.js +13 -13
  3. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  4. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  5. package/lib/cjs/BriefcaseConnection.js +2 -2
  6. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  7. package/lib/cjs/CheckpointConnection.d.ts.map +1 -1
  8. package/lib/cjs/CheckpointConnection.js +3 -3
  9. package/lib/cjs/CheckpointConnection.js.map +1 -1
  10. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  11. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  12. package/lib/cjs/ElementLocateManager.js +7 -6
  13. package/lib/cjs/ElementLocateManager.js.map +1 -1
  14. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  15. package/lib/cjs/EmphasizeElements.js +3 -1
  16. package/lib/cjs/EmphasizeElements.js.map +1 -1
  17. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  18. package/lib/cjs/EnvironmentDecorations.js +4 -0
  19. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  20. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  21. package/lib/cjs/FrustumAnimator.js +3 -2
  22. package/lib/cjs/FrustumAnimator.js.map +1 -1
  23. package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
  24. package/lib/cjs/GlobeAnimator.js +7 -6
  25. package/lib/cjs/GlobeAnimator.js.map +1 -1
  26. package/lib/cjs/HitDetail.d.ts.map +1 -1
  27. package/lib/cjs/HitDetail.js +12 -7
  28. package/lib/cjs/HitDetail.js.map +1 -1
  29. package/lib/cjs/IModelApp.d.ts.map +1 -1
  30. package/lib/cjs/IModelApp.js +2 -1
  31. package/lib/cjs/IModelApp.js.map +1 -1
  32. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  33. package/lib/cjs/IModelConnection.js +8 -9
  34. package/lib/cjs/IModelConnection.js.map +1 -1
  35. package/lib/cjs/IpcApp.d.ts.map +1 -1
  36. package/lib/cjs/IpcApp.js +1 -1
  37. package/lib/cjs/IpcApp.js.map +1 -1
  38. package/lib/cjs/LinePlaneIntersect.d.ts.map +1 -1
  39. package/lib/cjs/LinePlaneIntersect.js +2 -0
  40. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  42. package/lib/cjs/LocalhostIpcApp.js +2 -1
  43. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  44. package/lib/cjs/Marker.d.ts.map +1 -1
  45. package/lib/cjs/Marker.js +4 -3
  46. package/lib/cjs/Marker.js.map +1 -1
  47. package/lib/cjs/ModelState.d.ts.map +1 -1
  48. package/lib/cjs/ModelState.js +2 -2
  49. package/lib/cjs/ModelState.js.map +1 -1
  50. package/lib/cjs/NativeApp.d.ts.map +1 -1
  51. package/lib/cjs/NativeApp.js +5 -4
  52. package/lib/cjs/NativeApp.js.map +1 -1
  53. package/lib/cjs/NativeAppLogger.d.ts.map +1 -1
  54. package/lib/cjs/NativeAppLogger.js +1 -0
  55. package/lib/cjs/NativeAppLogger.js.map +1 -1
  56. package/lib/cjs/PlanarClipMaskState.js +3 -3
  57. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  58. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  59. package/lib/cjs/SelectionSet.js +1 -0
  60. package/lib/cjs/SelectionSet.js.map +1 -1
  61. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  62. package/lib/cjs/SheetViewState.js +5 -5
  63. package/lib/cjs/SheetViewState.js.map +1 -1
  64. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  65. package/lib/cjs/SpatialViewState.js +1 -1
  66. package/lib/cjs/SpatialViewState.js.map +1 -1
  67. package/lib/cjs/Sprites.js +2 -2
  68. package/lib/cjs/Sprites.js.map +1 -1
  69. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  70. package/lib/cjs/TentativePoint.js +10 -9
  71. package/lib/cjs/TentativePoint.js.map +1 -1
  72. package/lib/cjs/ViewCreator2d.js +1 -1
  73. package/lib/cjs/ViewCreator2d.js.map +1 -1
  74. package/lib/cjs/ViewCreator3d.js +1 -1
  75. package/lib/cjs/ViewCreator3d.js.map +1 -1
  76. package/lib/cjs/ViewPose.d.ts.map +1 -1
  77. package/lib/cjs/ViewPose.js +4 -1
  78. package/lib/cjs/ViewPose.js.map +1 -1
  79. package/lib/cjs/ViewState.d.ts.map +1 -1
  80. package/lib/cjs/ViewState.js +17 -12
  81. package/lib/cjs/ViewState.js.map +1 -1
  82. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  83. package/lib/cjs/ViewingSpace.js +2 -0
  84. package/lib/cjs/ViewingSpace.js.map +1 -1
  85. package/lib/cjs/Viewport.d.ts.map +1 -1
  86. package/lib/cjs/Viewport.js +17 -10
  87. package/lib/cjs/Viewport.js.map +1 -1
  88. package/lib/cjs/common/ImageUtil.d.ts.map +1 -1
  89. package/lib/cjs/common/ImageUtil.js +2 -1
  90. package/lib/cjs/common/ImageUtil.js.map +1 -1
  91. package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -1
  92. package/lib/cjs/common/internal/render/GeometryAccumulator.js +4 -3
  93. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
  94. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -1
  95. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js +2 -0
  96. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  97. package/lib/cjs/common/internal/render/MeshBuilder.js +1 -1
  98. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
  99. package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -1
  100. package/lib/cjs/common/internal/render/VertexTableBuilder.js +16 -7
  101. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
  102. package/lib/cjs/extension/ExtensionAdmin.js +2 -2
  103. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  104. package/lib/cjs/internal/GoogleMapsDecorator.js +1 -1
  105. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
  106. package/lib/cjs/internal/ScriptUtils.js +1 -0
  107. package/lib/cjs/internal/ScriptUtils.js.map +1 -1
  108. package/lib/cjs/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -1
  109. package/lib/cjs/internal/render/UpsampleRealityMeshParams.js +2 -1
  110. package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  111. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  112. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +7 -2
  113. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  114. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  115. package/lib/cjs/internal/render/webgl/AttributeBuffers.js +5 -3
  116. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  117. package/lib/cjs/internal/render/webgl/AttributeMap.d.ts.map +1 -1
  118. package/lib/cjs/internal/render/webgl/AttributeMap.js +2 -0
  119. package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
  120. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  121. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +2 -2
  122. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  123. package/lib/cjs/internal/render/webgl/BatchUniforms.js +1 -1
  124. package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
  125. package/lib/cjs/internal/render/webgl/BranchState.d.ts.map +1 -1
  126. package/lib/cjs/internal/render/webgl/BranchState.js +2 -1
  127. package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
  128. package/lib/cjs/internal/render/webgl/BranchUniforms.js +2 -2
  129. package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
  130. package/lib/cjs/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
  131. package/lib/cjs/internal/render/webgl/CachedGeometry.js +2 -2
  132. package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
  133. package/lib/cjs/internal/render/webgl/ClipStack.js +1 -1
  134. package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
  135. package/lib/cjs/internal/render/webgl/ColorInfo.js +1 -1
  136. package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
  137. package/lib/cjs/internal/render/webgl/Contours.js +3 -3
  138. package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
  139. package/lib/cjs/internal/render/webgl/EDL.js +18 -18
  140. package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
  141. package/lib/cjs/internal/render/webgl/FeatureOverrides.js +4 -4
  142. package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
  143. package/lib/cjs/internal/render/webgl/FrameBuffer.js +3 -3
  144. package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
  145. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  146. package/lib/cjs/internal/render/webgl/FrustumUniforms.js +2 -1
  147. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  148. package/lib/cjs/internal/render/webgl/GLTimer.d.ts.map +1 -1
  149. package/lib/cjs/internal/render/webgl/GLTimer.js +2 -0
  150. package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
  151. package/lib/cjs/internal/render/webgl/MapLayerParams.js +2 -2
  152. package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
  153. package/lib/cjs/internal/render/webgl/MeshData.js +2 -2
  154. package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
  155. package/lib/cjs/internal/render/webgl/PerformanceMetrics.js +1 -1
  156. package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  157. package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
  158. package/lib/cjs/internal/render/webgl/PlanarClassifier.js +7 -7
  159. package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
  160. package/lib/cjs/internal/render/webgl/PlanarGrid.js +1 -1
  161. package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
  162. package/lib/cjs/internal/render/webgl/PlanarTextureProjection.d.ts +0 -3
  163. package/lib/cjs/internal/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  164. package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js +6 -5
  165. package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  166. package/lib/cjs/internal/render/webgl/PointCloud.js +1 -1
  167. package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
  168. package/lib/cjs/internal/render/webgl/RealityMesh.js +1 -1
  169. package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
  170. package/lib/cjs/internal/render/webgl/RenderBuffer.js +2 -2
  171. package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
  172. package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  173. package/lib/cjs/internal/render/webgl/SceneCompositor.js +115 -85
  174. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  175. package/lib/cjs/internal/render/webgl/ScratchDrawParams.d.ts.map +1 -1
  176. package/lib/cjs/internal/render/webgl/ScratchDrawParams.js +11 -10
  177. package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  178. package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js +3 -3
  179. package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  180. package/lib/cjs/internal/render/webgl/ShaderProgram.js +3 -3
  181. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  182. package/lib/cjs/internal/render/webgl/ShadowUniforms.d.ts.map +1 -1
  183. package/lib/cjs/internal/render/webgl/ShadowUniforms.js +2 -1
  184. package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
  185. package/lib/cjs/internal/render/webgl/SolarShadowMap.d.ts.map +1 -1
  186. package/lib/cjs/internal/render/webgl/SolarShadowMap.js +6 -4
  187. package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
  188. package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
  189. package/lib/cjs/internal/render/webgl/System.js +1 -1
  190. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  191. package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
  192. package/lib/cjs/internal/render/webgl/Target.js +10 -7
  193. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  194. package/lib/cjs/internal/render/webgl/Texture.d.ts.map +1 -1
  195. package/lib/cjs/internal/render/webgl/Texture.js +10 -8
  196. package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
  197. package/lib/cjs/internal/render/webgl/glsl/Animation.d.ts.map +1 -1
  198. package/lib/cjs/internal/render/webgl/glsl/Animation.js +4 -2
  199. package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
  200. package/lib/cjs/internal/render/webgl/glsl/Color.d.ts.map +1 -1
  201. package/lib/cjs/internal/render/webgl/glsl/Color.js +2 -1
  202. package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
  203. package/lib/cjs/internal/render/webgl/glsl/Composite.js +1 -1
  204. package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
  205. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  206. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js +3 -2
  207. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  208. package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js +3 -3
  209. package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  210. package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
  211. package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js +4 -3
  212. package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  213. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +8 -8
  214. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  215. package/lib/cjs/internal/render/webgl/glsl/Surface.js +10 -10
  216. package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
  217. package/lib/cjs/internal/render/webgl/glsl/Vertex.js +2 -2
  218. package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
  219. package/lib/cjs/internal/tile/B3dmReader.d.ts.map +1 -1
  220. package/lib/cjs/internal/tile/B3dmReader.js +1 -1
  221. package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
  222. package/lib/cjs/internal/tile/FetchCloudStorage.js +1 -1
  223. package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
  224. package/lib/cjs/internal/tile/LRUTileList.d.ts.map +1 -1
  225. package/lib/cjs/internal/tile/LRUTileList.js +4 -0
  226. package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
  227. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  228. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +2 -1
  229. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  230. package/lib/cjs/internal/tile/OPCFormatInterpreter.js +4 -4
  231. package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
  232. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  233. package/lib/cjs/internal/tile/OrbitGtTileTree.js +2 -2
  234. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  235. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  236. package/lib/cjs/internal/tile/RealityModelTileTree.js +3 -3
  237. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  238. package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
  239. package/lib/cjs/internal/tile/RealityTileLoader.js +3 -0
  240. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  241. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js +3 -3
  242. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  243. package/lib/cjs/internal/tile/TileUserSet.d.ts.map +1 -1
  244. package/lib/cjs/internal/tile/TileUserSet.js +4 -0
  245. package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
  246. package/lib/cjs/internal/tile/map/ArcGISTileMap.js +1 -1
  247. package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
  248. package/lib/cjs/internal/tile/map/ArcGisUtilities.d.ts.map +1 -1
  249. package/lib/cjs/internal/tile/map/ArcGisUtilities.js +4 -0
  250. package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
  251. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  252. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  253. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  254. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
  255. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  256. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  257. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  258. package/lib/cjs/internal/tile/map/MapTileAvailability.d.ts.map +1 -1
  259. package/lib/cjs/internal/tile/map/MapTileAvailability.js +5 -2
  260. package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
  261. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  262. package/lib/cjs/internal/tile/map/WmtsCapabilities.js +3 -2
  263. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  264. package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
  265. package/lib/cjs/properties/FormattedQuantityDescription.js +2 -0
  266. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  267. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  268. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +2 -0
  269. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  270. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  271. package/lib/cjs/quantity-formatting/QuantityFormatter.js +5 -3
  272. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  273. package/lib/cjs/tile/GltfReader.d.ts +5 -2
  274. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  275. package/lib/cjs/tile/GltfReader.js +54 -16
  276. package/lib/cjs/tile/GltfReader.js.map +1 -1
  277. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  278. package/lib/cjs/tile/RealityTile.js +2 -2
  279. package/lib/cjs/tile/RealityTile.js.map +1 -1
  280. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  281. package/lib/cjs/tile/RealityTileTree.js +5 -5
  282. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  283. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  284. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  285. package/lib/cjs/tile/TileDrawArgs.js +2 -1
  286. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  287. package/lib/cjs/tile/map/ImageryTileTree.js +1 -1
  288. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  289. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +1 -1
  290. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  291. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  292. package/lib/cjs/tile/map/MapLayerSources.js +9 -1
  293. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  294. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  295. package/lib/cjs/tile/map/MapTile.js +10 -8
  296. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  297. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  298. package/lib/cjs/tile/map/MapTileTree.js +8 -7
  299. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  300. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  301. package/lib/cjs/tile/map/MapTilingScheme.js +2 -1
  302. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  303. package/lib/cjs/tools/Tool.js +1 -1
  304. package/lib/cjs/tools/Tool.js.map +1 -1
  305. package/lib/esm/BackgroundMapGeometry.js +14 -14
  306. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  307. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  308. package/lib/esm/BriefcaseConnection.js +2 -2
  309. package/lib/esm/BriefcaseConnection.js.map +1 -1
  310. package/lib/esm/CheckpointConnection.d.ts.map +1 -1
  311. package/lib/esm/CheckpointConnection.js +4 -4
  312. package/lib/esm/CheckpointConnection.js.map +1 -1
  313. package/lib/esm/ContextRealityModelState.js.map +1 -1
  314. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  315. package/lib/esm/ElementLocateManager.js +8 -7
  316. package/lib/esm/ElementLocateManager.js.map +1 -1
  317. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  318. package/lib/esm/EmphasizeElements.js +3 -1
  319. package/lib/esm/EmphasizeElements.js.map +1 -1
  320. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  321. package/lib/esm/EnvironmentDecorations.js +4 -0
  322. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  323. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  324. package/lib/esm/FrustumAnimator.js +3 -2
  325. package/lib/esm/FrustumAnimator.js.map +1 -1
  326. package/lib/esm/GlobeAnimator.d.ts.map +1 -1
  327. package/lib/esm/GlobeAnimator.js +7 -6
  328. package/lib/esm/GlobeAnimator.js.map +1 -1
  329. package/lib/esm/HitDetail.d.ts.map +1 -1
  330. package/lib/esm/HitDetail.js +12 -7
  331. package/lib/esm/HitDetail.js.map +1 -1
  332. package/lib/esm/IModelApp.d.ts.map +1 -1
  333. package/lib/esm/IModelApp.js +4 -3
  334. package/lib/esm/IModelApp.js.map +1 -1
  335. package/lib/esm/IModelConnection.d.ts.map +1 -1
  336. package/lib/esm/IModelConnection.js +9 -10
  337. package/lib/esm/IModelConnection.js.map +1 -1
  338. package/lib/esm/IpcApp.d.ts.map +1 -1
  339. package/lib/esm/IpcApp.js +2 -2
  340. package/lib/esm/IpcApp.js.map +1 -1
  341. package/lib/esm/LinePlaneIntersect.d.ts.map +1 -1
  342. package/lib/esm/LinePlaneIntersect.js +2 -0
  343. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  344. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  345. package/lib/esm/LocalhostIpcApp.js +2 -1
  346. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  347. package/lib/esm/Marker.d.ts.map +1 -1
  348. package/lib/esm/Marker.js +5 -4
  349. package/lib/esm/Marker.js.map +1 -1
  350. package/lib/esm/ModelState.d.ts.map +1 -1
  351. package/lib/esm/ModelState.js +3 -3
  352. package/lib/esm/ModelState.js.map +1 -1
  353. package/lib/esm/NativeApp.d.ts.map +1 -1
  354. package/lib/esm/NativeApp.js +5 -4
  355. package/lib/esm/NativeApp.js.map +1 -1
  356. package/lib/esm/NativeAppLogger.d.ts.map +1 -1
  357. package/lib/esm/NativeAppLogger.js +1 -0
  358. package/lib/esm/NativeAppLogger.js.map +1 -1
  359. package/lib/esm/PlanarClipMaskState.js +3 -3
  360. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  361. package/lib/esm/SelectionSet.d.ts.map +1 -1
  362. package/lib/esm/SelectionSet.js +2 -1
  363. package/lib/esm/SelectionSet.js.map +1 -1
  364. package/lib/esm/SheetViewState.d.ts.map +1 -1
  365. package/lib/esm/SheetViewState.js +6 -6
  366. package/lib/esm/SheetViewState.js.map +1 -1
  367. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  368. package/lib/esm/SpatialViewState.js +2 -2
  369. package/lib/esm/SpatialViewState.js.map +1 -1
  370. package/lib/esm/Sprites.js +2 -2
  371. package/lib/esm/Sprites.js.map +1 -1
  372. package/lib/esm/TentativePoint.d.ts.map +1 -1
  373. package/lib/esm/TentativePoint.js +10 -9
  374. package/lib/esm/TentativePoint.js.map +1 -1
  375. package/lib/esm/ViewCreator2d.js +1 -1
  376. package/lib/esm/ViewCreator2d.js.map +1 -1
  377. package/lib/esm/ViewCreator3d.js +1 -1
  378. package/lib/esm/ViewCreator3d.js.map +1 -1
  379. package/lib/esm/ViewPose.d.ts.map +1 -1
  380. package/lib/esm/ViewPose.js +4 -1
  381. package/lib/esm/ViewPose.js.map +1 -1
  382. package/lib/esm/ViewState.d.ts.map +1 -1
  383. package/lib/esm/ViewState.js +18 -13
  384. package/lib/esm/ViewState.js.map +1 -1
  385. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  386. package/lib/esm/ViewingSpace.js +2 -0
  387. package/lib/esm/ViewingSpace.js.map +1 -1
  388. package/lib/esm/Viewport.d.ts.map +1 -1
  389. package/lib/esm/Viewport.js +18 -11
  390. package/lib/esm/Viewport.js.map +1 -1
  391. package/lib/esm/common/ImageUtil.d.ts.map +1 -1
  392. package/lib/esm/common/ImageUtil.js +2 -1
  393. package/lib/esm/common/ImageUtil.js.map +1 -1
  394. package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -1
  395. package/lib/esm/common/internal/render/GeometryAccumulator.js +4 -3
  396. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
  397. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -1
  398. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js +2 -0
  399. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  400. package/lib/esm/common/internal/render/MeshBuilder.js +2 -2
  401. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
  402. package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -1
  403. package/lib/esm/common/internal/render/VertexTableBuilder.js +17 -8
  404. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
  405. package/lib/esm/extension/ExtensionAdmin.js +2 -2
  406. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  407. package/lib/esm/internal/GoogleMapsDecorator.js +1 -1
  408. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
  409. package/lib/esm/internal/ScriptUtils.js +1 -0
  410. package/lib/esm/internal/ScriptUtils.js.map +1 -1
  411. package/lib/esm/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -1
  412. package/lib/esm/internal/render/UpsampleRealityMeshParams.js +2 -1
  413. package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  414. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  415. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +7 -2
  416. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  417. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  418. package/lib/esm/internal/render/webgl/AttributeBuffers.js +5 -3
  419. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  420. package/lib/esm/internal/render/webgl/AttributeMap.d.ts.map +1 -1
  421. package/lib/esm/internal/render/webgl/AttributeMap.js +2 -0
  422. package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
  423. package/lib/esm/internal/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  424. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +3 -3
  425. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  426. package/lib/esm/internal/render/webgl/BatchUniforms.js +1 -1
  427. package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
  428. package/lib/esm/internal/render/webgl/BranchState.d.ts.map +1 -1
  429. package/lib/esm/internal/render/webgl/BranchState.js +2 -1
  430. package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
  431. package/lib/esm/internal/render/webgl/BranchUniforms.js +3 -3
  432. package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
  433. package/lib/esm/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
  434. package/lib/esm/internal/render/webgl/CachedGeometry.js +3 -3
  435. package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
  436. package/lib/esm/internal/render/webgl/ClipStack.js +1 -1
  437. package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
  438. package/lib/esm/internal/render/webgl/ColorInfo.js +2 -2
  439. package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
  440. package/lib/esm/internal/render/webgl/Contours.js +4 -4
  441. package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
  442. package/lib/esm/internal/render/webgl/EDL.js +19 -19
  443. package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
  444. package/lib/esm/internal/render/webgl/FeatureOverrides.js +5 -5
  445. package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
  446. package/lib/esm/internal/render/webgl/FrameBuffer.js +4 -4
  447. package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
  448. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  449. package/lib/esm/internal/render/webgl/FrustumUniforms.js +2 -1
  450. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  451. package/lib/esm/internal/render/webgl/GLTimer.d.ts.map +1 -1
  452. package/lib/esm/internal/render/webgl/GLTimer.js +2 -0
  453. package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
  454. package/lib/esm/internal/render/webgl/MapLayerParams.js +3 -3
  455. package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
  456. package/lib/esm/internal/render/webgl/MeshData.js +3 -3
  457. package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
  458. package/lib/esm/internal/render/webgl/PerformanceMetrics.js +1 -1
  459. package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  460. package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
  461. package/lib/esm/internal/render/webgl/PlanarClassifier.js +8 -8
  462. package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
  463. package/lib/esm/internal/render/webgl/PlanarGrid.js +2 -2
  464. package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
  465. package/lib/esm/internal/render/webgl/PlanarTextureProjection.d.ts +0 -3
  466. package/lib/esm/internal/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  467. package/lib/esm/internal/render/webgl/PlanarTextureProjection.js +6 -5
  468. package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  469. package/lib/esm/internal/render/webgl/PointCloud.js +2 -2
  470. package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
  471. package/lib/esm/internal/render/webgl/RealityMesh.js +2 -2
  472. package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
  473. package/lib/esm/internal/render/webgl/RenderBuffer.js +3 -3
  474. package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
  475. package/lib/esm/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  476. package/lib/esm/internal/render/webgl/SceneCompositor.js +116 -86
  477. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  478. package/lib/esm/internal/render/webgl/ScratchDrawParams.d.ts.map +1 -1
  479. package/lib/esm/internal/render/webgl/ScratchDrawParams.js +11 -10
  480. package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  481. package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js +4 -4
  482. package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  483. package/lib/esm/internal/render/webgl/ShaderProgram.js +4 -4
  484. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  485. package/lib/esm/internal/render/webgl/ShadowUniforms.d.ts.map +1 -1
  486. package/lib/esm/internal/render/webgl/ShadowUniforms.js +2 -1
  487. package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
  488. package/lib/esm/internal/render/webgl/SolarShadowMap.d.ts.map +1 -1
  489. package/lib/esm/internal/render/webgl/SolarShadowMap.js +7 -5
  490. package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
  491. package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
  492. package/lib/esm/internal/render/webgl/System.js +2 -2
  493. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  494. package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
  495. package/lib/esm/internal/render/webgl/Target.js +11 -8
  496. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  497. package/lib/esm/internal/render/webgl/Texture.d.ts.map +1 -1
  498. package/lib/esm/internal/render/webgl/Texture.js +11 -9
  499. package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
  500. package/lib/esm/internal/render/webgl/glsl/Animation.d.ts.map +1 -1
  501. package/lib/esm/internal/render/webgl/glsl/Animation.js +5 -3
  502. package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
  503. package/lib/esm/internal/render/webgl/glsl/Color.d.ts.map +1 -1
  504. package/lib/esm/internal/render/webgl/glsl/Color.js +2 -1
  505. package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
  506. package/lib/esm/internal/render/webgl/glsl/Composite.js +2 -2
  507. package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
  508. package/lib/esm/internal/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  509. package/lib/esm/internal/render/webgl/glsl/CopyStencil.js +3 -2
  510. package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  511. package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js +4 -4
  512. package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  513. package/lib/esm/internal/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
  514. package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js +4 -3
  515. package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  516. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +9 -9
  517. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  518. package/lib/esm/internal/render/webgl/glsl/Surface.js +11 -11
  519. package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
  520. package/lib/esm/internal/render/webgl/glsl/Vertex.js +3 -3
  521. package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
  522. package/lib/esm/internal/tile/B3dmReader.d.ts.map +1 -1
  523. package/lib/esm/internal/tile/B3dmReader.js +2 -2
  524. package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
  525. package/lib/esm/internal/tile/FetchCloudStorage.js +1 -1
  526. package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
  527. package/lib/esm/internal/tile/LRUTileList.d.ts.map +1 -1
  528. package/lib/esm/internal/tile/LRUTileList.js +4 -0
  529. package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
  530. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  531. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +2 -1
  532. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  533. package/lib/esm/internal/tile/OPCFormatInterpreter.js +5 -5
  534. package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
  535. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  536. package/lib/esm/internal/tile/OrbitGtTileTree.js +3 -3
  537. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  538. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  539. package/lib/esm/internal/tile/RealityModelTileTree.js +4 -4
  540. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  541. package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
  542. package/lib/esm/internal/tile/RealityTileLoader.js +3 -0
  543. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  544. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js +4 -4
  545. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  546. package/lib/esm/internal/tile/TileUserSet.d.ts.map +1 -1
  547. package/lib/esm/internal/tile/TileUserSet.js +4 -0
  548. package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
  549. package/lib/esm/internal/tile/map/ArcGISTileMap.js +1 -1
  550. package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
  551. package/lib/esm/internal/tile/map/ArcGisUtilities.d.ts.map +1 -1
  552. package/lib/esm/internal/tile/map/ArcGisUtilities.js +4 -0
  553. package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
  554. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  555. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  556. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  557. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
  558. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  559. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -2
  560. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  561. package/lib/esm/internal/tile/map/MapTileAvailability.d.ts.map +1 -1
  562. package/lib/esm/internal/tile/map/MapTileAvailability.js +6 -3
  563. package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
  564. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  565. package/lib/esm/internal/tile/map/WmtsCapabilities.js +3 -2
  566. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  567. package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
  568. package/lib/esm/properties/FormattedQuantityDescription.js +2 -0
  569. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  570. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  571. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +2 -0
  572. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  573. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  574. package/lib/esm/quantity-formatting/QuantityFormatter.js +5 -3
  575. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  576. package/lib/esm/tile/GltfReader.d.ts +5 -2
  577. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  578. package/lib/esm/tile/GltfReader.js +55 -17
  579. package/lib/esm/tile/GltfReader.js.map +1 -1
  580. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  581. package/lib/esm/tile/RealityTile.js +3 -3
  582. package/lib/esm/tile/RealityTile.js.map +1 -1
  583. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  584. package/lib/esm/tile/RealityTileTree.js +6 -6
  585. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  586. package/lib/esm/tile/TileAdmin.js.map +1 -1
  587. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  588. package/lib/esm/tile/TileDrawArgs.js +2 -1
  589. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  590. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  591. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  592. package/lib/esm/tile/map/MapLayerFormatRegistry.js +2 -2
  593. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  594. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  595. package/lib/esm/tile/map/MapLayerSources.js +10 -2
  596. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  597. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  598. package/lib/esm/tile/map/MapTile.js +11 -9
  599. package/lib/esm/tile/map/MapTile.js.map +1 -1
  600. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  601. package/lib/esm/tile/map/MapTileTree.js +9 -8
  602. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  603. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  604. package/lib/esm/tile/map/MapTilingScheme.js +2 -1
  605. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  606. package/lib/esm/tools/Tool.js +2 -2
  607. package/lib/esm/tools/Tool.js.map +1 -1
  608. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  609. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  610. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"FrustumAnimator.js","sourceRoot":"","sources":["../../src/FrustumAnimator.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAW,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,KAAe,EACf,IAAa,EACb,SAAiB,EACjB,KAAe,EACf,IAAa,EACb,SAAiB,EACjB,QAAgB,EAChB,cAAwB;IAExB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACjC,8CAA8C;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,mDAAmD;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,4DAA4D;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvE,qGAAqG;IACrG,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/C,OAAO;QACL,MAAM,EAAE,OAAO;QACf,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC;AACD;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAKA;IAJlB,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;IACvB,SAAS,GAAG,CAAC,CAAC;IAEtB,iEAAiE;IACjE,YAA0B,OAA6B,EAAE,QAAwB,EAAE,KAAe,EAAE,GAAa;QAAvF,YAAO,GAAP,OAAO,CAAsB;QACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC;QAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEtC,IAAI,QAAQ,GAAG,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/G,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,EAAE,4EAA4E;YAChI,OAAO;QAET,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,UAAgC,CAAC;QACrC,IAAI,OAA6B,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAmB,CAAC;QAClC,MAAM,MAAM,GAAG,KAAmB,CAAC;QACnC,MAAM,IAAI,GAAG,GAAiB,CAAC;QAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,yBAAyB,EAAE,CAAC,CAAC,qCAAqC;QACzI,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,oBAAoB;QAE9E,iJAAiJ;QACjJ,qEAAqE;QACrE,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;YACtD,MAAM,aAAa,GAAG,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,2DAA2D;YACzJ,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,iEAAiE;YAElL,kIAAkI;YAClI,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;gBAChC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC,CAAC,uBAAuB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC/C,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC5D,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,6CAA6C;gBAClI,QAAQ,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC,kDAAkD;gBAC3F,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oGAAoG;gBACzJ,IAAI,KAAK,CAAC,QAAQ;oBAChB,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,qFAAqF;YACtL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YAC1B,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,EAAE;YACrF,QAAQ;YACR,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;YACzE,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,UAAU,EAAE,GAAG,EAAE,CACf,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,2CAA2C;YAC1E,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,+DAA+D;gBAChI,MAAM,GAAG,GAAG,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACrJ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpE,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC1E,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBAChJ,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;oBAC/E,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,GAAG,sBAAsB,CACjC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAC3D,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACxE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;oBACtG,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxE,IAAI,SAAS,KAAK,UAAU;wBAC1B,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,yCAAyC;oBACnG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,sDAAsD;gBACtH,CAAC;gBACD,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC3B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IACT,OAAO;QACZ,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB;YACrD,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,gBAAgB;IACT,SAAS;QACd,kJAAkJ;QAClJ,uIAAuI;QACvI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjG,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB;YACxC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { Angle, Geometry, Matrix3d, Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { Tweens } from \"@itwin/core-common\";\nimport { Animator, ViewAnimationOptions } from \"./ViewAnimation\";\nimport { ScreenViewport } from \"./Viewport\";\nimport { ViewPose, ViewPose3d } from \"./ViewPose\";\nimport { ViewState3d } from \"./ViewState\";\n/**\n * Compute an intermediate eye point as it swings around a moving target with rotating axes and varying distance to target.\n * (eye, target, distance) is redundant -- implementation problem is to figure out which to use for compatibility with subsequent view setup.\n */\nfunction interpolateSwingingEye(\n axes0: Matrix3d,\n eye0: Point3d,\n distance0: number,\n axes1: Matrix3d,\n eye1: Point3d,\n distance1: number,\n fraction: number,\n axesAtFraction: Matrix3d,\n): { target: Point3d, eye: Point3d, distance: number } {\n const z0 = axes0.rowZ();\n const z1 = axes1.rowZ();\n const zA = axesAtFraction.rowZ();\n // back up from the eye points to the targets.\n const target0 = eye0.plusScaled(z0, -distance0);\n const target1 = eye1.plusScaled(z1, -distance1);\n // RULE: Target point moves by simple interpolation\n const targetA = target0.interpolate(fraction, target1);\n // RULE: Distance from target to eye is simple interpolation\n const distanceA = Geometry.interpolate(distance0, fraction, distance1);\n // The interpolated target, interpolated distance, and specified axes give the intermediate eyepoint.\n const eyeA = targetA.plusScaled(zA, distanceA);\n return {\n target: targetA,\n eye: eyeA,\n distance: distanceA,\n };\n}\n/** Animates the transition of a [[Viewport]] from one [Frustum]($common) to another. The viewport will render as many frames as necessary during the supplied duration.\n * @see [[Viewport.animateFrustumChange]] to conveniently animate a viewport from one frustum to another.\n * @public\n * @extensions\n */\nexport class FrustumAnimator implements Animator {\n private _tweens = new Tweens();\n private _duration = 0;\n\n /** Construct an animator that animates from `begin` to `end`. */\n public constructor(public options: ViewAnimationOptions, viewport: ScreenViewport, begin: ViewPose, end: ViewPose) {\n const settings = ScreenViewport.animation;\n const zoomSettings = settings.zoomOut;\n\n let duration = undefined !== options.animationTime ? options.animationTime : settings.time.normal.milliseconds;\n if (duration <= 0 || begin.cameraOn !== end.cameraOn) // no duration means skip animation. We can't animate if the camera toggles.\n return;\n\n this._duration = duration;\n let extentBias: Vector3d | undefined;\n let eyeBias: Vector3d | undefined;\n const zVec = begin.zVec;\n const view = viewport.view;\n const view3 = view as ViewState3d;\n const begin3 = begin as ViewPose3d;\n const end3 = end as ViewPose3d;\n const beginTarget = begin.target;\n const endTarget = end.target;\n const axis = end.rotation.multiplyMatrixMatrixInverse(begin.rotation)!.getAxisAndAngleOfRotation(); // axis to rotate begin to get to end\n const timing = { fraction: 0.0, height: 0, position: 0 }; // updated by tween.\n\n // don't do \"zoom out\" if the two views aren't pointing in the same direction, or if they request cancelOnAbort (since that implies that the view\n // is a linear interpolation from begin to end), or if it's disabled.\n if (zoomSettings.enable && !options.cancelOnAbort && zVec.isAlmostEqual(end.zVec)) {\n view.applyPose(end); // start with the pose at the end\n const viewTransform = Transform.createOriginAndMatrix(undefined, view.getRotation());\n const endRange = Range3d.createTransformedArray(viewTransform, view.calculateFocusCorners()); // get the view-aligned range of the focus plane at the end\n const beginRange = Range3d.createTransformedArray(viewTransform, view.applyPose(begin).calculateFocusCorners()); // get the view-aligned range of the focus plane at the beginning\n\n // do the starting and ending views (plus the margin) overlap? If not we need to zoom out to show how to get from one to the other\n const expand = (range: Range3d) => {\n const r = range.clone();\n r.scaleAboutCenterInPlace(zoomSettings.margin);\n return r;\n };\n\n if (!expand(beginRange).intersectsRangeXY(expand(endRange))) {\n view3.lookAtViewAlignedVolume(beginRange.union(endRange), viewport.viewRect.aspect); // set up a view that would show both extents\n duration *= zoomSettings.durationFactor; // increase duration so the zooming isn't too fast\n extentBias = view.getExtents().minus(begin.extents); // if the camera is off, the \"bias\" is the amount the union-ed view is larger than the starting view\n if (begin.cameraOn)\n eyeBias = zVec.scaleToLength(zVec.dotProduct(begin3.camera.eye.vectorTo(view3.camera.eye))); // if the camera is on, the bias is the difference in height of the two eye positions\n }\n }\n\n this._tweens.create(timing, {\n to: { fraction: 1.0, height: zoomSettings.heights, position: zoomSettings.positions },\n duration,\n start: true,\n easing: options.easingFunction ? options.easingFunction : settings.easing,\n interpolation: zoomSettings.interpolation,\n onComplete: () =>\n viewport.setupFromView(end), // when we're done, set up from final state\n onUpdate: () => {\n const fraction = extentBias ? timing.position : timing.fraction; // if we're zooming, fraction comes from position interpolation\n const rot = Matrix3d.createRotationAroundVector(axis.axis, Angle.createDegrees(fraction * axis.angle.degrees))!.multiplyMatrixMatrix(begin.rotation);\n if (begin.cameraOn) {\n const newExtents = begin.extents.interpolate(fraction, end.extents);\n if (undefined !== eyeBias) {\n const eyePoint = begin3.camera.eye.interpolate(fraction, end3.camera.eye);\n eyePoint.plusScaled(eyeBias, timing.height, eyePoint);\n const targetPoint = eyePoint.plusScaled(rot.getRow(2), -1.0 * (Geometry.interpolate(begin3.camera.focusDist, fraction, end3.camera.focusDist)));\n view3.lookAt({ eyePoint, targetPoint, upVector: rot.getRow(1), newExtents });\n } else {\n const data = interpolateSwingingEye(\n begin3.rotation, begin3.camera.eye, begin3.camera.focusDist,\n end3.rotation, end3.camera.eye, end3.camera.focusDist, fraction, rot);\n view3.lookAt({ eyePoint: data.eye, targetPoint: data.target, upVector: rot.getRow(1), newExtents });\n }\n } else {\n const extents = begin.extents.interpolate(timing.fraction, end.extents);\n if (undefined !== extentBias)\n extents.plusScaled(extentBias, timing.height, extents); // no camera, zooming out expands extents\n view.setExtents(extents);\n view.setRotation(rot);\n view.setCenter(beginTarget.interpolate(fraction, endTarget)); // must be done last - depends on extents and rotation\n }\n viewport.setupFromView();\n },\n });\n }\n\n /** @internal */\n public animate() {\n const didFinish = !this._tweens.update();\n if (didFinish && this.options.animationFinishedCallback)\n this.options.animationFinishedCallback(true);\n return didFinish;\n }\n\n /** @internal */\n public interrupt() {\n // We were interrupted. Either go to: the final frame (normally) or, add a small fraction of the total duration (30ms for a .5 second duration) to\n // the current time for cancelOnAbort. That makes aborted animations show some progress, as happens when the mouse wheel rolls quickly.\n this._tweens.update(this.options.cancelOnAbort ? Date.now() + (this._duration * .06) : Infinity);\n if (this.options.animationFinishedCallback)\n this.options.animationFinishedCallback(false);\n }\n}\n"]}
1
+ {"version":3,"file":"FrustumAnimator.js","sourceRoot":"","sources":["../../src/FrustumAnimator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { expectDefined } from \"@itwin/core-bentley\";\nimport { Angle, Geometry, Matrix3d, Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { Tweens } from \"@itwin/core-common\";\nimport { Animator, ViewAnimationOptions } from \"./ViewAnimation\";\nimport { ScreenViewport } from \"./Viewport\";\nimport { ViewPose, ViewPose3d } from \"./ViewPose\";\nimport { ViewState3d } from \"./ViewState\";\n/**\n * Compute an intermediate eye point as it swings around a moving target with rotating axes and varying distance to target.\n * (eye, target, distance) is redundant -- implementation problem is to figure out which to use for compatibility with subsequent view setup.\n */\nfunction interpolateSwingingEye(\n axes0: Matrix3d,\n eye0: Point3d,\n distance0: number,\n axes1: Matrix3d,\n eye1: Point3d,\n distance1: number,\n fraction: number,\n axesAtFraction: Matrix3d,\n): { target: Point3d, eye: Point3d, distance: number } {\n const z0 = axes0.rowZ();\n const z1 = axes1.rowZ();\n const zA = axesAtFraction.rowZ();\n // back up from the eye points to the targets.\n const target0 = eye0.plusScaled(z0, -distance0);\n const target1 = eye1.plusScaled(z1, -distance1);\n // RULE: Target point moves by simple interpolation\n const targetA = target0.interpolate(fraction, target1);\n // RULE: Distance from target to eye is simple interpolation\n const distanceA = Geometry.interpolate(distance0, fraction, distance1);\n // The interpolated target, interpolated distance, and specified axes give the intermediate eyepoint.\n const eyeA = targetA.plusScaled(zA, distanceA);\n return {\n target: targetA,\n eye: eyeA,\n distance: distanceA,\n };\n}\n/** Animates the transition of a [[Viewport]] from one [Frustum]($common) to another. The viewport will render as many frames as necessary during the supplied duration.\n * @see [[Viewport.animateFrustumChange]] to conveniently animate a viewport from one frustum to another.\n * @public\n * @extensions\n */\nexport class FrustumAnimator implements Animator {\n private _tweens = new Tweens();\n private _duration = 0;\n\n /** Construct an animator that animates from `begin` to `end`. */\n public constructor(public options: ViewAnimationOptions, viewport: ScreenViewport, begin: ViewPose, end: ViewPose) {\n const settings = ScreenViewport.animation;\n const zoomSettings = settings.zoomOut;\n\n let duration = undefined !== options.animationTime ? options.animationTime : settings.time.normal.milliseconds;\n if (duration <= 0 || begin.cameraOn !== end.cameraOn) // no duration means skip animation. We can't animate if the camera toggles.\n return;\n\n this._duration = duration;\n let extentBias: Vector3d | undefined;\n let eyeBias: Vector3d | undefined;\n const zVec = begin.zVec;\n const view = viewport.view;\n const view3 = view as ViewState3d;\n const begin3 = begin as ViewPose3d;\n const end3 = end as ViewPose3d;\n const beginTarget = begin.target;\n const endTarget = end.target;\n const axis = expectDefined(end.rotation.multiplyMatrixMatrixInverse(begin.rotation)).getAxisAndAngleOfRotation(); // axis to rotate begin to get to end\n const timing = { fraction: 0.0, height: 0, position: 0 }; // updated by tween.\n\n // don't do \"zoom out\" if the two views aren't pointing in the same direction, or if they request cancelOnAbort (since that implies that the view\n // is a linear interpolation from begin to end), or if it's disabled.\n if (zoomSettings.enable && !options.cancelOnAbort && zVec.isAlmostEqual(end.zVec)) {\n view.applyPose(end); // start with the pose at the end\n const viewTransform = Transform.createOriginAndMatrix(undefined, view.getRotation());\n const endRange = Range3d.createTransformedArray(viewTransform, view.calculateFocusCorners()); // get the view-aligned range of the focus plane at the end\n const beginRange = Range3d.createTransformedArray(viewTransform, view.applyPose(begin).calculateFocusCorners()); // get the view-aligned range of the focus plane at the beginning\n\n // do the starting and ending views (plus the margin) overlap? If not we need to zoom out to show how to get from one to the other\n const expand = (range: Range3d) => {\n const r = range.clone();\n r.scaleAboutCenterInPlace(zoomSettings.margin);\n return r;\n };\n\n if (!expand(beginRange).intersectsRangeXY(expand(endRange))) {\n view3.lookAtViewAlignedVolume(beginRange.union(endRange), viewport.viewRect.aspect); // set up a view that would show both extents\n duration *= zoomSettings.durationFactor; // increase duration so the zooming isn't too fast\n extentBias = view.getExtents().minus(begin.extents); // if the camera is off, the \"bias\" is the amount the union-ed view is larger than the starting view\n if (begin.cameraOn)\n eyeBias = zVec.scaleToLength(zVec.dotProduct(begin3.camera.eye.vectorTo(view3.camera.eye))); // if the camera is on, the bias is the difference in height of the two eye positions\n }\n }\n\n this._tweens.create(timing, {\n to: { fraction: 1.0, height: zoomSettings.heights, position: zoomSettings.positions },\n duration,\n start: true,\n easing: options.easingFunction ? options.easingFunction : settings.easing,\n interpolation: zoomSettings.interpolation,\n onComplete: () =>\n viewport.setupFromView(end), // when we're done, set up from final state\n onUpdate: () => {\n const fraction = extentBias ? timing.position : timing.fraction; // if we're zooming, fraction comes from position interpolation\n const rot = expectDefined(Matrix3d.createRotationAroundVector(axis.axis, Angle.createDegrees(fraction * axis.angle.degrees))).multiplyMatrixMatrix(begin.rotation);\n if (begin.cameraOn) {\n const newExtents = begin.extents.interpolate(fraction, end.extents);\n if (undefined !== eyeBias) {\n const eyePoint = begin3.camera.eye.interpolate(fraction, end3.camera.eye);\n eyePoint.plusScaled(eyeBias, timing.height, eyePoint);\n const targetPoint = eyePoint.plusScaled(rot.getRow(2), -1.0 * (Geometry.interpolate(begin3.camera.focusDist, fraction, end3.camera.focusDist)));\n view3.lookAt({ eyePoint, targetPoint, upVector: rot.getRow(1), newExtents });\n } else {\n const data = interpolateSwingingEye(\n begin3.rotation, begin3.camera.eye, begin3.camera.focusDist,\n end3.rotation, end3.camera.eye, end3.camera.focusDist, fraction, rot);\n view3.lookAt({ eyePoint: data.eye, targetPoint: data.target, upVector: rot.getRow(1), newExtents });\n }\n } else {\n const extents = begin.extents.interpolate(timing.fraction, end.extents);\n if (undefined !== extentBias)\n extents.plusScaled(extentBias, timing.height, extents); // no camera, zooming out expands extents\n view.setExtents(extents);\n view.setRotation(rot);\n view.setCenter(beginTarget.interpolate(fraction, endTarget)); // must be done last - depends on extents and rotation\n }\n viewport.setupFromView();\n },\n });\n }\n\n /** @internal */\n public animate() {\n const didFinish = !this._tweens.update();\n if (didFinish && this.options.animationFinishedCallback)\n this.options.animationFinishedCallback(true);\n return didFinish;\n }\n\n /** @internal */\n public interrupt() {\n // We were interrupted. Either go to: the final frame (normally) or, add a small fraction of the total duration (30ms for a .5 second duration) to\n // the current time for cancelOnAbort. That makes aborted animations show some progress, as happens when the mouse wheel rolls quickly.\n this._tweens.update(this.options.cancelOnAbort ? Date.now() + (this._duration * .06) : Infinity);\n if (this.options.animationFinishedCallback)\n this.options.animationFinishedCallback(false);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GlobeAnimator.d.ts","sourceRoot":"","sources":["../../src/GlobeAnimator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAY,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAU,OAAO,EAA4B,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAC8D,cAAc,EAClF,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC5C,SAAS,CAAC,aAAa,SAAgB;IACvC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC;IACpC,SAAS,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAS,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAChC,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,CAAM;IACxC,SAAS,CAAC,aAAa,SAAK;IAC5B,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC;IACvC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,uBAAuB,CAAC,EAAE,4BAA4B,CAAC;IACjE,SAAS,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,uBAAuB,CAAC,EAAE,4BAA4B,CAAC;IACjE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAO;IACrD,SAAS,CAAC,QAAQ,CAAC,eAAe,UAAiB;IAEnD,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IA6C1D,yFAAyF;IACzF,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,4BAA4B,GAAG,OAAO;IAahG;;;;OAIG;WACiB,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAkBrH,SAAS,aAAa,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM;IAqFtH,gBAAgB;IACT,OAAO;IAQd,gBAAgB;IACT,SAAS;CAGjB"}
1
+ {"version":3,"file":"GlobeAnimator.d.ts","sourceRoot":"","sources":["../../src/GlobeAnimator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAY,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAU,OAAO,EAA4B,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAC8D,cAAc,EAClF,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC5C,SAAS,CAAC,aAAa,SAAgB;IACvC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC;IACpC,SAAS,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAS,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAChC,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,CAAM;IACxC,SAAS,CAAC,aAAa,SAAK;IAC5B,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC;IACvC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,uBAAuB,CAAC,EAAE,4BAA4B,CAAC;IACjE,SAAS,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,uBAAuB,CAAC,EAAE,4BAA4B,CAAC;IACjE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAO;IACrD,SAAS,CAAC,QAAQ,CAAC,eAAe,UAAiB;IAEnD,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IA6C1D,yFAAyF;IACzF,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,4BAA4B,GAAG,OAAO;IAahG;;;;OAIG;WACiB,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAkBrH,SAAS,aAAa,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM;IAqFtH,gBAAgB;IACT,OAAO;IAQd,gBAAgB;IACT,SAAS;CAGjB"}
@@ -5,6 +5,7 @@
5
5
  /** @packageDocumentation
6
6
  * @module Views
7
7
  */
8
+ import { expectDefined } from "@itwin/core-bentley";
8
9
  import { Geometry, SmoothTransformBetweenFrusta } from "@itwin/core-geometry";
9
10
  import { Cartographic, Easing, Frustum, GlobeMode, Interpolation, Tweens } from "@itwin/core-common";
10
11
  import { areaToEyeHeight, areaToEyeHeightFromGcs, eyeToCartographicOnGlobe, metersToRange, ViewGlobalLocationConstants, } from "./ViewGlobalLocation";
@@ -46,7 +47,7 @@ export class GlobeAnimator {
46
47
  return true;
47
48
  }
48
49
  // Possibly smooth the takeoff
49
- if (fraction < this._fixTakeoffFraction && this._fixTakeoffInterpolator !== undefined) {
50
+ if (this._fixTakeoffFraction !== undefined && fraction < this._fixTakeoffFraction && this._fixTakeoffInterpolator !== undefined) {
50
51
  this._moveFixToFraction((1.0 / this._fixTakeoffFraction) * fraction, this._fixTakeoffInterpolator);
51
52
  return false;
52
53
  }
@@ -56,7 +57,7 @@ export class GlobeAnimator {
56
57
  const beforeLanding = vp.getWorldFrustum();
57
58
  this._fixLandingInterpolator = SmoothTransformBetweenFrusta.create(beforeLanding.points, this._afterLanding.points);
58
59
  }
59
- this._moveFixToFraction((1.0 / (1.0 - this._fixLandingFraction)) * (fraction - this._fixLandingFraction), this._fixLandingInterpolator);
60
+ this._moveFixToFraction((1.0 / (1.0 - this._fixLandingFraction)) * (fraction - this._fixLandingFraction), expectDefined(this._fixLandingInterpolator));
60
61
  return false;
61
62
  }
62
63
  // Set the camera based on a fraction along the flight arc
@@ -65,7 +66,7 @@ export class GlobeAnimator {
65
66
  if (view.globeMode === GlobeMode.Plane)
66
67
  targetPoint = this._columbusLine[0].interpolate(fraction, this._columbusLine[1]);
67
68
  else
68
- targetPoint = this._ellipsoidArc.fractionToPoint(fraction);
69
+ targetPoint = expectDefined(this._ellipsoidArc).fractionToPoint(fraction);
69
70
  view.lookAtGlobalLocation(height, ViewGlobalLocationConstants.birdPitchAngleRadians, undefined, targetPoint);
70
71
  vp.setupFromView();
71
72
  return false;
@@ -112,7 +113,7 @@ export class GlobeAnimator {
112
113
  const backgroundMapGeometry = view.displayStyle.getBackgroundMapGeometry();
113
114
  if (undefined === backgroundMapGeometry)
114
115
  return;
115
- this._startHeight = eyeToCartographicOnGlobe(this._viewport, true).height;
116
+ this._startHeight = expectDefined(eyeToCartographicOnGlobe(this._viewport, true)).height;
116
117
  this._endHeight = destination.area !== undefined ? areaToEyeHeight(view, destination.area, destination.center.height) : ViewGlobalLocationConstants.birdHeightAboveEarthInMeters;
117
118
  // Starting cartographic position is the eye projected onto the globe.
118
119
  let startCartographic = eyeToCartographicOnGlobe(viewport);
@@ -123,8 +124,8 @@ export class GlobeAnimator {
123
124
  let maxFlightDuration;
124
125
  if (view.globeMode === GlobeMode.Plane) {
125
126
  // Calculate a line segment going from the starting cartographic coordinate to the ending cartographic coordinate
126
- this._columbusLine.push(view.cartographicToRoot(startCartographic));
127
- this._columbusLine.push(view.cartographicToRoot(this._endLocation.center));
127
+ this._columbusLine.push(expectDefined(view.cartographicToRoot(startCartographic)));
128
+ this._columbusLine.push(expectDefined(view.cartographicToRoot(this._endLocation.center)));
128
129
  this._flightLength = this._columbusLine[0].distance(this._columbusLine[1]);
129
130
  // Set a shorter flight duration in Plane mode
130
131
  maxFlightDuration = 7000.0;
@@ -1 +1 @@
1
- {"version":3,"file":"GlobeAnimator.js","sourceRoot":"","sources":["../../src/GlobeAnimator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { Arc3d, Geometry, Point3d, SmoothTransformBetweenFrusta } from \"@itwin/core-geometry\";\nimport { Cartographic, Easing, Frustum, GlobeMode, Interpolation, Tweens } from \"@itwin/core-common\";\nimport {\n areaToEyeHeight, areaToEyeHeightFromGcs, eyeToCartographicOnGlobe, GlobalLocation, metersToRange, ViewGlobalLocationConstants,\n} from \"./ViewGlobalLocation\";\nimport { ScreenViewport } from \"./Viewport\";\nimport { Animator } from \"./ViewAnimation\";\n\n/** Animates the transition of a [[Viewport]] to view a location on the Earth. The animation traces a flight path from the viewport's current [Frustum]($common) to the destination.\n * The duration of the animation varies based on the distance traversed.\n * @see [[Viewport.animateFlyoverToGlobalLocation]].\n * @public\n * @extensions\n */\nexport class GlobeAnimator implements Animator {\n protected _flightTweens = new Tweens();\n protected _viewport: ScreenViewport;\n protected _startCartographic?: Cartographic;\n protected _ellipsoidArc?: Arc3d;\n protected _columbusLine: Point3d[] = [];\n protected _flightLength = 0;\n protected _endLocation: GlobalLocation;\n protected _endHeight?: number;\n protected _midHeight?: number;\n protected _startHeight?: number;\n protected _fixTakeoffInterpolator?: SmoothTransformBetweenFrusta;\n protected _fixTakeoffFraction?: number;\n protected _fixLandingInterpolator?: SmoothTransformBetweenFrusta;\n protected _afterLanding: Frustum;\n protected _afterFocusDistance: number;\n protected readonly _fixLandingFraction: number = 0.9;\n protected readonly _scratchFrustum = new Frustum();\n\n protected _moveFlightToFraction(fraction: number): boolean {\n const vp = this._viewport;\n const view = vp.view;\n\n if (!(view.is3d()) || !vp.iModel.isGeoLocated) // This animation only works for 3d views and geolocated models\n return true;\n\n // If we're done, set the final state directly\n if (fraction >= 1.0) {\n if (vp.view.is3d()) // Need to reset focus as well -- setupViewFromFustum does not set this and it will remain at flight distance.\n vp.view.camera.setFocusDistance(this._afterFocusDistance);\n vp.setupViewFromFrustum(this._afterLanding);\n vp.synchWithView();\n return true;\n }\n\n // Possibly smooth the takeoff\n if (fraction < this._fixTakeoffFraction! && this._fixTakeoffInterpolator !== undefined) {\n this._moveFixToFraction((1.0 / this._fixTakeoffFraction!) * fraction, this._fixTakeoffInterpolator);\n return false;\n }\n\n // Possibly smooth the landing\n if (fraction >= this._fixLandingFraction && fraction < 1.0) {\n if (this._fixLandingInterpolator === undefined) {\n const beforeLanding = vp.getWorldFrustum();\n this._fixLandingInterpolator = SmoothTransformBetweenFrusta.create(beforeLanding.points, this._afterLanding.points);\n }\n this._moveFixToFraction((1.0 / (1.0 - this._fixLandingFraction)) * (fraction - this._fixLandingFraction), this._fixLandingInterpolator!);\n return false;\n }\n\n // Set the camera based on a fraction along the flight arc\n const height: number = Interpolation.Bezier([this._startHeight, this._midHeight, this._endHeight], fraction);\n let targetPoint: Point3d;\n if (view.globeMode === GlobeMode.Plane)\n targetPoint = this._columbusLine[0].interpolate(fraction, this._columbusLine[1]);\n else\n targetPoint = this._ellipsoidArc!.fractionToPoint(fraction);\n view.lookAtGlobalLocation(height, ViewGlobalLocationConstants.birdPitchAngleRadians, undefined, targetPoint);\n vp.setupFromView();\n\n return false;\n }\n\n /** Apply a SmoothTransformBetweenFrusta interpolator to the view based on a fraction. */\n protected _moveFixToFraction(fract: number, interpolator: SmoothTransformBetweenFrusta): boolean {\n let done = false;\n\n if (fract >= 1.0) {\n fract = 1.0;\n done = true;\n }\n\n interpolator.fractionToWorldCorners(Math.max(fract, 0), this._scratchFrustum.points);\n this._viewport.setupViewFromFrustum(this._scratchFrustum);\n return done;\n }\n\n /** Create an animator to transition to the specified destination.\n * @param viewport The viewport to animate.\n * @param destination The destination to travel to.\n * @returns An animator, or undefined if the viewport's iModel is not geolocated or its view is not 3d.\n */\n public static async create(viewport: ScreenViewport, destination: GlobalLocation): Promise<GlobeAnimator | undefined> {\n const view = viewport.view;\n\n if (!(view.is3d()) || !viewport.iModel.isGeoLocated) // This animation only works for 3d views and geolocated models\n return undefined;\n\n const endHeight = destination.area !== undefined ? await areaToEyeHeightFromGcs(view, destination.area, destination.center.height) : ViewGlobalLocationConstants.birdHeightAboveEarthInMeters;\n\n const beforeFrustum = viewport.getWorldFrustum();\n await view.lookAtGlobalLocationFromGcs(endHeight, ViewGlobalLocationConstants.birdPitchAngleRadians, destination);\n viewport.setupFromView();\n const afterLanding = viewport.getWorldFrustum();\n const afterFocus = view.camera.focusDist;\n viewport.setupViewFromFrustum(beforeFrustum); // revert old frustum\n\n return new GlobeAnimator(viewport, destination, afterLanding, afterFocus);\n }\n\n protected constructor(viewport: ScreenViewport, destination: GlobalLocation, afterLanding: Frustum, afterFocus: number) {\n this._viewport = viewport;\n this._endLocation = destination;\n this._afterLanding = afterLanding;\n this._afterFocusDistance = afterFocus;\n const view = viewport.view;\n\n if (!(view.is3d()) || !viewport.iModel.isGeoLocated) // This animation only works for 3d views and geolocated models\n return;\n\n // Calculate start height as the height of the current eye above the earth.\n // Calculate end height from the destination area (if specified); otherwise, use a constant value.\n const backgroundMapGeometry = view.displayStyle.getBackgroundMapGeometry();\n if (undefined === backgroundMapGeometry)\n return;\n\n this._startHeight = eyeToCartographicOnGlobe(this._viewport, true)!.height;\n this._endHeight = destination.area !== undefined ? areaToEyeHeight(view, destination.area, destination.center.height) : ViewGlobalLocationConstants.birdHeightAboveEarthInMeters;\n\n // Starting cartographic position is the eye projected onto the globe.\n let startCartographic = eyeToCartographicOnGlobe(viewport);\n if (startCartographic === undefined) {\n startCartographic = Cartographic.createZero();\n }\n this._startCartographic = startCartographic;\n\n let maxFlightDuration: number;\n\n if (view.globeMode === GlobeMode.Plane) {\n // Calculate a line segment going from the starting cartographic coordinate to the ending cartographic coordinate\n this._columbusLine.push(view.cartographicToRoot(startCartographic)!);\n this._columbusLine.push(view.cartographicToRoot(this._endLocation.center)!);\n this._flightLength = this._columbusLine[0].distance(this._columbusLine[1]);\n // Set a shorter flight duration in Plane mode\n maxFlightDuration = 7000.0;\n } else {\n // Calculate a flight arc from the ellipsoid of the Earth and the starting and ending cartographic coordinates.\n const earthEllipsoid = backgroundMapGeometry.getEarthEllipsoid();\n this._ellipsoidArc = earthEllipsoid.radiansPairToGreatArc(this._startCartographic.longitude, this._startCartographic.latitude, this._endLocation.center.longitude, this._endLocation.center.latitude)!;\n if (this._ellipsoidArc !== undefined)\n this._flightLength = this._ellipsoidArc.curveLength();\n // Set a longer flight duration in 3D mode\n maxFlightDuration = 13000.0;\n }\n\n if (Geometry.isSmallMetricDistance(this._flightLength))\n return;\n\n // The peak of the flight varies based on total distance to travel. The larger the distance, the higher the peak of the flight will be.\n this._midHeight = metersToRange(this._flightLength,\n ViewGlobalLocationConstants.birdHeightAboveEarthInMeters,\n ViewGlobalLocationConstants.satelliteHeightAboveEarthInMeters * 4,\n ViewGlobalLocationConstants.largestEarthArc);\n\n // We will \"fix\" the initial frustum so it smoothly transitions to some point along the travel arc depending on the starting height.\n // Alternatively, if the distance to travel is small enough, we will _only_ do a frustum transition to the destination location - ignoring the flight arc.\n const beforeTakeoff = viewport.getWorldFrustum();\n\n if (view.globeMode === GlobeMode.Plane) {\n /// Do not \"fix\" the take-off for plane mode; SmoothTransformBetweenFrusta can behave wrongly.\n // However, if within driving distance, still use SmoothTransformBetweenFrusta to navigate there without flight.\n this._fixTakeoffFraction = this._flightLength <= ViewGlobalLocationConstants.maximumDistanceToDrive ? 1.0 : 0.0;\n } else {\n this._fixTakeoffFraction = this._flightLength <= ViewGlobalLocationConstants.maximumDistanceToDrive ? 1.0 : metersToRange(this._startHeight, 0.1, 0.4, ViewGlobalLocationConstants.birdHeightAboveEarthInMeters);\n }\n\n if (this._fixTakeoffFraction > 0.0) {\n this._moveFlightToFraction(this._fixTakeoffFraction);\n const afterTakeoff = viewport.getWorldFrustum();\n this._fixTakeoffInterpolator = SmoothTransformBetweenFrusta.create(beforeTakeoff.points, afterTakeoff.points);\n }\n\n // The duration of the animation will increase the larger the distance to travel.\n const flightDurationInMilliseconds = metersToRange(this._flightLength, 1000, maxFlightDuration, ViewGlobalLocationConstants.largestEarthArc);\n\n // Specify the tweening behavior for this animation.\n this._flightTweens.create({ fraction: 0.0 }, {\n to: { fraction: 1.0 },\n duration: flightDurationInMilliseconds,\n easing: Easing.Cubic.InOut,\n start: true,\n onUpdate: (obj: any) => this._moveFlightToFraction(obj.fraction),\n });\n }\n\n /** @internal */\n public animate() {\n if (this._flightLength <= 0) {\n this._moveFlightToFraction(1.0); // Skip to final frustum\n return true;\n }\n return !this._flightTweens.update();\n }\n\n /** @internal */\n public interrupt() {\n this._moveFlightToFraction(1.0); // Skip to final frustum\n }\n}\n"]}
1
+ {"version":3,"file":"GlobeAnimator.js","sourceRoot":"","sources":["../../src/GlobeAnimator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { expectDefined } from \"@itwin/core-bentley\";\nimport { Arc3d, Geometry, Point3d, SmoothTransformBetweenFrusta } from \"@itwin/core-geometry\";\nimport { Cartographic, Easing, Frustum, GlobeMode, Interpolation, Tweens } from \"@itwin/core-common\";\nimport {\n areaToEyeHeight, areaToEyeHeightFromGcs, eyeToCartographicOnGlobe, GlobalLocation, metersToRange, ViewGlobalLocationConstants,\n} from \"./ViewGlobalLocation\";\nimport { ScreenViewport } from \"./Viewport\";\nimport { Animator } from \"./ViewAnimation\";\n\n/** Animates the transition of a [[Viewport]] to view a location on the Earth. The animation traces a flight path from the viewport's current [Frustum]($common) to the destination.\n * The duration of the animation varies based on the distance traversed.\n * @see [[Viewport.animateFlyoverToGlobalLocation]].\n * @public\n * @extensions\n */\nexport class GlobeAnimator implements Animator {\n protected _flightTweens = new Tweens();\n protected _viewport: ScreenViewport;\n protected _startCartographic?: Cartographic;\n protected _ellipsoidArc?: Arc3d;\n protected _columbusLine: Point3d[] = [];\n protected _flightLength = 0;\n protected _endLocation: GlobalLocation;\n protected _endHeight?: number;\n protected _midHeight?: number;\n protected _startHeight?: number;\n protected _fixTakeoffInterpolator?: SmoothTransformBetweenFrusta;\n protected _fixTakeoffFraction?: number;\n protected _fixLandingInterpolator?: SmoothTransformBetweenFrusta;\n protected _afterLanding: Frustum;\n protected _afterFocusDistance: number;\n protected readonly _fixLandingFraction: number = 0.9;\n protected readonly _scratchFrustum = new Frustum();\n\n protected _moveFlightToFraction(fraction: number): boolean {\n const vp = this._viewport;\n const view = vp.view;\n\n if (!(view.is3d()) || !vp.iModel.isGeoLocated) // This animation only works for 3d views and geolocated models\n return true;\n\n // If we're done, set the final state directly\n if (fraction >= 1.0) {\n if (vp.view.is3d()) // Need to reset focus as well -- setupViewFromFustum does not set this and it will remain at flight distance.\n vp.view.camera.setFocusDistance(this._afterFocusDistance);\n vp.setupViewFromFrustum(this._afterLanding);\n vp.synchWithView();\n return true;\n }\n\n // Possibly smooth the takeoff\n if (this._fixTakeoffFraction !== undefined && fraction < this._fixTakeoffFraction && this._fixTakeoffInterpolator !== undefined) {\n this._moveFixToFraction((1.0 / this._fixTakeoffFraction) * fraction, this._fixTakeoffInterpolator);\n return false;\n }\n\n // Possibly smooth the landing\n if (fraction >= this._fixLandingFraction && fraction < 1.0) {\n if (this._fixLandingInterpolator === undefined) {\n const beforeLanding = vp.getWorldFrustum();\n this._fixLandingInterpolator = SmoothTransformBetweenFrusta.create(beforeLanding.points, this._afterLanding.points);\n }\n this._moveFixToFraction((1.0 / (1.0 - this._fixLandingFraction)) * (fraction - this._fixLandingFraction), expectDefined(this._fixLandingInterpolator));\n return false;\n }\n\n // Set the camera based on a fraction along the flight arc\n const height: number = Interpolation.Bezier([this._startHeight, this._midHeight, this._endHeight], fraction);\n let targetPoint: Point3d;\n if (view.globeMode === GlobeMode.Plane)\n targetPoint = this._columbusLine[0].interpolate(fraction, this._columbusLine[1]);\n else\n targetPoint = expectDefined(this._ellipsoidArc).fractionToPoint(fraction);\n view.lookAtGlobalLocation(height, ViewGlobalLocationConstants.birdPitchAngleRadians, undefined, targetPoint);\n vp.setupFromView();\n\n return false;\n }\n\n /** Apply a SmoothTransformBetweenFrusta interpolator to the view based on a fraction. */\n protected _moveFixToFraction(fract: number, interpolator: SmoothTransformBetweenFrusta): boolean {\n let done = false;\n\n if (fract >= 1.0) {\n fract = 1.0;\n done = true;\n }\n\n interpolator.fractionToWorldCorners(Math.max(fract, 0), this._scratchFrustum.points);\n this._viewport.setupViewFromFrustum(this._scratchFrustum);\n return done;\n }\n\n /** Create an animator to transition to the specified destination.\n * @param viewport The viewport to animate.\n * @param destination The destination to travel to.\n * @returns An animator, or undefined if the viewport's iModel is not geolocated or its view is not 3d.\n */\n public static async create(viewport: ScreenViewport, destination: GlobalLocation): Promise<GlobeAnimator | undefined> {\n const view = viewport.view;\n\n if (!(view.is3d()) || !viewport.iModel.isGeoLocated) // This animation only works for 3d views and geolocated models\n return undefined;\n\n const endHeight = destination.area !== undefined ? await areaToEyeHeightFromGcs(view, destination.area, destination.center.height) : ViewGlobalLocationConstants.birdHeightAboveEarthInMeters;\n\n const beforeFrustum = viewport.getWorldFrustum();\n await view.lookAtGlobalLocationFromGcs(endHeight, ViewGlobalLocationConstants.birdPitchAngleRadians, destination);\n viewport.setupFromView();\n const afterLanding = viewport.getWorldFrustum();\n const afterFocus = view.camera.focusDist;\n viewport.setupViewFromFrustum(beforeFrustum); // revert old frustum\n\n return new GlobeAnimator(viewport, destination, afterLanding, afterFocus);\n }\n\n protected constructor(viewport: ScreenViewport, destination: GlobalLocation, afterLanding: Frustum, afterFocus: number) {\n this._viewport = viewport;\n this._endLocation = destination;\n this._afterLanding = afterLanding;\n this._afterFocusDistance = afterFocus;\n const view = viewport.view;\n\n if (!(view.is3d()) || !viewport.iModel.isGeoLocated) // This animation only works for 3d views and geolocated models\n return;\n\n // Calculate start height as the height of the current eye above the earth.\n // Calculate end height from the destination area (if specified); otherwise, use a constant value.\n const backgroundMapGeometry = view.displayStyle.getBackgroundMapGeometry();\n if (undefined === backgroundMapGeometry)\n return;\n\n this._startHeight = expectDefined(eyeToCartographicOnGlobe(this._viewport, true)).height;\n this._endHeight = destination.area !== undefined ? areaToEyeHeight(view, destination.area, destination.center.height) : ViewGlobalLocationConstants.birdHeightAboveEarthInMeters;\n\n // Starting cartographic position is the eye projected onto the globe.\n let startCartographic = eyeToCartographicOnGlobe(viewport);\n if (startCartographic === undefined) {\n startCartographic = Cartographic.createZero();\n }\n this._startCartographic = startCartographic;\n\n let maxFlightDuration: number;\n\n if (view.globeMode === GlobeMode.Plane) {\n // Calculate a line segment going from the starting cartographic coordinate to the ending cartographic coordinate\n this._columbusLine.push(expectDefined(view.cartographicToRoot(startCartographic)));\n this._columbusLine.push(expectDefined(view.cartographicToRoot(this._endLocation.center)));\n this._flightLength = this._columbusLine[0].distance(this._columbusLine[1]);\n // Set a shorter flight duration in Plane mode\n maxFlightDuration = 7000.0;\n } else {\n // Calculate a flight arc from the ellipsoid of the Earth and the starting and ending cartographic coordinates.\n const earthEllipsoid = backgroundMapGeometry.getEarthEllipsoid();\n this._ellipsoidArc = earthEllipsoid.radiansPairToGreatArc(this._startCartographic.longitude, this._startCartographic.latitude, this._endLocation.center.longitude, this._endLocation.center.latitude);\n if (this._ellipsoidArc !== undefined)\n this._flightLength = this._ellipsoidArc.curveLength();\n // Set a longer flight duration in 3D mode\n maxFlightDuration = 13000.0;\n }\n\n if (Geometry.isSmallMetricDistance(this._flightLength))\n return;\n\n // The peak of the flight varies based on total distance to travel. The larger the distance, the higher the peak of the flight will be.\n this._midHeight = metersToRange(this._flightLength,\n ViewGlobalLocationConstants.birdHeightAboveEarthInMeters,\n ViewGlobalLocationConstants.satelliteHeightAboveEarthInMeters * 4,\n ViewGlobalLocationConstants.largestEarthArc);\n\n // We will \"fix\" the initial frustum so it smoothly transitions to some point along the travel arc depending on the starting height.\n // Alternatively, if the distance to travel is small enough, we will _only_ do a frustum transition to the destination location - ignoring the flight arc.\n const beforeTakeoff = viewport.getWorldFrustum();\n\n if (view.globeMode === GlobeMode.Plane) {\n /// Do not \"fix\" the take-off for plane mode; SmoothTransformBetweenFrusta can behave wrongly.\n // However, if within driving distance, still use SmoothTransformBetweenFrusta to navigate there without flight.\n this._fixTakeoffFraction = this._flightLength <= ViewGlobalLocationConstants.maximumDistanceToDrive ? 1.0 : 0.0;\n } else {\n this._fixTakeoffFraction = this._flightLength <= ViewGlobalLocationConstants.maximumDistanceToDrive ? 1.0 : metersToRange(this._startHeight, 0.1, 0.4, ViewGlobalLocationConstants.birdHeightAboveEarthInMeters);\n }\n\n if (this._fixTakeoffFraction > 0.0) {\n this._moveFlightToFraction(this._fixTakeoffFraction);\n const afterTakeoff = viewport.getWorldFrustum();\n this._fixTakeoffInterpolator = SmoothTransformBetweenFrusta.create(beforeTakeoff.points, afterTakeoff.points);\n }\n\n // The duration of the animation will increase the larger the distance to travel.\n const flightDurationInMilliseconds = metersToRange(this._flightLength, 1000, maxFlightDuration, ViewGlobalLocationConstants.largestEarthArc);\n\n // Specify the tweening behavior for this animation.\n this._flightTweens.create({ fraction: 0.0 }, {\n to: { fraction: 1.0 },\n duration: flightDurationInMilliseconds,\n easing: Easing.Cubic.InOut,\n start: true,\n onUpdate: (obj: any) => this._moveFlightToFraction(obj.fraction),\n });\n }\n\n /** @internal */\n public animate() {\n if (this._flightLength <= 0) {\n this._moveFlightToFraction(1.0); // Skip to final frustum\n return true;\n }\n return !this._flightTweens.update();\n }\n\n /** @internal */\n public interrupt() {\n this._moveFlightToFraction(1.0); // Skip to final frustum\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HitDetail.d.ts","sourceRoot":"","sources":["../../src/HitDetail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HitDetail.d.ts","sourceRoot":"","sources":["../../src/HitDetail.ts"],"names":[],"mappings":"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"}
@@ -382,13 +382,16 @@ export class SnapDetail extends HitDetail {
382
382
  const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);
383
383
  const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);
384
384
  const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);
385
- const path = Path.create(this.getCurvePrimitive(singleSegment));
386
- builder.setSymbology(outline, outline, 6);
387
- builder.addPath(path);
388
- builder.setSymbology(centerLine, centerLine, 2);
389
- builder.addPath(path);
390
- context.addDecorationFromBuilder(builder);
391
- return;
385
+ const curvePrimitive = this.getCurvePrimitive(singleSegment);
386
+ if (curvePrimitive !== undefined) {
387
+ const path = Path.create(curvePrimitive);
388
+ builder.setSymbology(outline, outline, 6);
389
+ builder.addPath(path);
390
+ builder.setSymbology(centerLine, centerLine, 2);
391
+ builder.addPath(path);
392
+ context.addDecorationFromBuilder(builder);
393
+ return;
394
+ }
392
395
  }
393
396
  super.draw(context);
394
397
  }
@@ -467,6 +470,8 @@ export class HitList {
467
470
  setHit(i, p) {
468
471
  if (i < 0 || i >= this.length)
469
472
  return;
473
+ // While messy, the following is obviously intentional based on the function comment.
474
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
470
475
  this.hits[i] = p;
471
476
  }
472
477
  dropNulls() {
@@ -1 +1 @@
1
- {"version":3,"file":"HitDetail.js","sourceRoot":"","sources":["../../src/HitDetail.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module LocatingElements\n */\nimport { assert, Id64, Id64String } from \"@itwin/core-bentley\";\nimport { Arc3d, CurvePrimitive, LineSegment3d, LineString3d, Path, Point3d, Transform, Vector3d, XYZProps } from \"@itwin/core-geometry\";\nimport { ContourGroup, GeometryClass, LinePixels } from \"@itwin/core-common\";\nimport { IModelApp } from \"./IModelApp\";\nimport { IModelConnection } from \"./IModelConnection\";\nimport { IconSprites, Sprite } from \"./Sprites\";\nimport { DecorateContext } from \"./ViewContext\";\nimport { ScreenViewport, Viewport } from \"./Viewport\";\nimport { GraphicType } from \"./common/render/GraphicType\";\n\n/**\n * @public\n * @extensions\n */\nexport enum SnapMode {\n Nearest = 1,\n NearestKeypoint = 1 << 1,\n MidPoint = 1 << 2,\n Center = 1 << 3,\n Origin = 1 << 4,\n Bisector = 1 << 5,\n Intersection = 1 << 6,\n PerpendicularPoint = 1 << 7,\n TangentPoint = 1 << 8,\n}\n\n/**\n * @public\n * @extensions\n */\nexport enum SnapHeat {\n None = 0,\n NotInRange = 1, // \"of interest\", but out of range\n InRange = 2,\n}\n\n/** The procedure that generated this Hit.\n * @public\n * @extensions\n */\nexport enum HitSource {\n None = 0,\n FromUser = 1,\n MotionLocate = 2,\n AccuSnap = 3,\n TentativeSnap = 4,\n DataPoint = 5,\n Application = 6,\n EditAction = 7,\n EditActionSS = 8,\n}\n\n/** What was being tested to generate this hit. This is not the element or\n * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit.\n * @public\n * @extensions\n */\nexport enum HitGeomType {\n None = 0,\n Point = 1,\n Segment = 2,\n Curve = 3,\n Arc = 4,\n Surface = 5,\n}\n\n/** Classification of GeometricPrimitive that generated the Hit.\n * @public\n * @extensions\n */\nexport enum HitParentGeomType {\n None = 0,\n Wire = 1,\n Sheet = 2,\n Solid = 3,\n Mesh = 4,\n Text = 5,\n}\n\n/**\n * @public\n * @extensions\n */\nexport enum HitPriority {\n WireEdge = 0,\n PlanarEdge = 1,\n NonPlanarEdge = 2,\n SilhouetteEdge = 3,\n PlanarSurface = 4,\n NonPlanarSurface = 5,\n Unknown = 6,\n}\n\n/**\n * @public\n * @extensions\n */\nexport enum HitDetailType {\n Hit = 1,\n Snap = 2,\n Intersection = 3,\n}\n\n/** As part of a [[HitPath]], describes the [ViewAttachment]($backend), if any, from which the hit represented by a [[HitDetail]] originated.\n * @beta\n */\nexport interface ViewAttachmentHitInfo {\n /** The element Id of the [ViewAttachment]($backend) from which the hit originated. */\n readonly id: Id64String;\n /** The viewport that renders the contents of the attached view into the [[ScreenViewport]].\n * @note Do not alter the state of this viewport.\n * @alpha\n */\n readonly viewport: Viewport;\n}\n\n/** As part of a [[HitPath]], describes the [SectionDrawing]($backend), if any, from which the hit represented by a [[HitDetail]] originated.\n * @beta\n */\nexport interface SectionDrawingAttachmentHitInfo {\n /** The viewport that renders the contents of the attached view into the [[ScreenViewport]].\n * @note Do not alter the state of this viewport.\n * @alpha\n */\n readonly viewport: Viewport;\n}\n\n/** As part of a [[HitDetail]], describes a series of \"attached\" views through which the hit was located.\n * Typically, the contents of a view are rendered directly to the screen via [[HitDetail.viewport]].\n * However, in some contexts one view might be \"attached\" to the viewport's view via a [ViewAttachment]($backend), [SectionDrawing]($backend), or both.\n * HitPath captures this information in one of the following possible ways:\n * 1. A [[SheetViewState]] renders another view through a [ViewAttachment]($backend), in which case [[viewAttachment]] will be defined.\n * 2. A [[DrawingViewState]] renders a [[SpatialViewState]] through a [SectionDrawing]($backend) attachment, in which case [[sectionDrawingAttachment]] will be defined; or\n * 3. A combination of 1 and 2 where a [ViewAttachment]($backend) on a sheet renders a [SectionDrawing]($backend) with an attached [[SpatialViewState]], in which both [viewAttachment]] and [[sectionDrawingAttachment]] will be defined.\n * @beta\n */\nexport interface HitPath {\n /** Details about the [ViewAttachment]($backend) through which the hit was obtained. */\n viewAttachment?: ViewAttachmentHitInfo;\n /** Details about the [SectionDrawing]($backend) attachment through which the hit was obtained. */\n sectionDrawingAttachment?: SectionDrawingAttachmentHitInfo;\n};\n\n/** Information about a [contour line]($docs/learning/display/ContourDisplay.md) that generated a [[HitDetail]] or [[Pixel]].\n * @see [[HitDetail.contour]]\n * @see [[Pixel.Data.contour]]\n * @beta\n */\nexport interface ContourHit {\n /** The contour group that generated the contour line, as specified by [[ContourDisplay.groups]]. */\n readonly group: ContourGroup;\n /** True if the contour is a major contour line as specified by the [[group]] from which it originated, false if it is a minor contour line. */\n readonly isMajor: boolean;\n /** The height in world coordinates of the contour line. This is always a multiple of the [Contour.minorInterval]($common) defined for the [[group]].\n * @note The multiple may be approximate due to the limitations of floating-point precision.\n */\n readonly elevation: number;\n}\n\n/** Arguments supplied to the [[HitDetail]] constructor.\n * @public\n */\nexport interface HitDetailProps {\n /** The point in world coordinates that was used as the initial locate point. */\n readonly testPoint: Point3d;\n /** The viewport in which the locate operation was performed. */\n readonly viewport: ScreenViewport;\n /** The procedure that requested the locate operation. */\n readonly hitSource: HitSource;\n /** The approximate location in world coordinates on the geometry identified by this HitDetail. */\n readonly hitPoint: Point3d;\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\n readonly sourceId: Id64String;\n /** The hit geometry priority/classification. */\n readonly priority: HitPriority;\n /** The xy distance to the hit in view coordinates. */\n readonly distXY: number;\n /** The distance in view coordinates between the hit and the near plane. */\n readonly distFraction: number;\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\n readonly subCategoryId?: Id64String;\n /** The class of the hit geometry. */\n readonly geometryClass?: GeometryClass;\n /** The Id of the [[ModelState]] from which the hit originated. */\n readonly modelId?: string;\n /** The IModelConnection from which the hit originated.\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\n * other than the one associated with the viewport.\n * @internal\n */\n readonly sourceIModel?: IModelConnection;\n /** @internal */\n readonly transformFromSourceIModel?: Transform;\n /** @internal chiefly for debugging */\n readonly tileId?: string;\n /** True if the hit originated from a reality model classifier.\n * @alpha\n */\n readonly isClassifier?: boolean;\n /** Describes the path by which the hit was located through a series of attached views.\n * @beta\n */\n readonly path?: HitPath;\n /** Information about the [contour line]($docs/learning/display/ContourDisplay.md), if any, from which this hit originated.\n * @beta\n */\n readonly contour?: ContourHit;\n}\n\n/** A HitDetail stores the result when locating geometry displayed in a view.\n * It holds an approximate location on an element (or decoration) from a *pick*.\n * @public\n * @extensions\n */\nexport class HitDetail {\n private readonly _props: HitDetailProps;\n\n /** The point in world coordinates that was used as the initial locate point. */\n public get testPoint(): Point3d { return this._props.testPoint; }\n /** The viewport in which the locate operation was performed. */\n public get viewport(): ScreenViewport { return this._props.viewport; }\n /** The procedure that requested the locate operation. */\n public get hitSource(): HitSource { return this._props.hitSource; }\n /** The approximate location in world coordinates on the geometry identified by this HitDetail. */\n public get hitPoint(): Point3d { return this._props.hitPoint; }\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\n public get sourceId(): Id64String { return this._props.sourceId; }\n /** The hit geometry priority/classification. */\n public get priority(): HitPriority { return this._props.priority; }\n /** The xy distance to the hit in view coordinates. */\n public get distXY(): number { return this._props.distXY; }\n /** The distance in view coordinates between the hit and the near plane. */\n public get distFraction(): number { return this._props.distFraction; }\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\n public get subCategoryId(): Id64String | undefined { return this._props.subCategoryId; }\n /** The class of the hit geometry. */\n public get geometryClass(): GeometryClass | undefined { return this._props.geometryClass; }\n /** The Id of the [[ModelState]] from which the hit originated. */\n public get modelId(): string | undefined { return this._props.modelId; }\n /** The IModelConnection from which the hit originated.\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\n * other than the one associated with the viewport.\n * @internal\n */\n public get sourceIModel(): IModelConnection | undefined { return this._props.sourceIModel; }\n /** @internal */\n public get transformFromSourceIModel(): Transform | undefined { return this._props.transformFromSourceIModel; }\n /** @internal chiefly for debugging */\n public get tileId(): string | undefined { return this._props.tileId; }\n /** True if the hit originated from a reality model classifier.\n * @alpha\n */\n public get isClassifier(): boolean | undefined { return this._props.isClassifier; }\n /** Information about the [ViewAttachment]($backend) within which the hit geometry resides, if any.\n * @note Only [[SheetViewState]]s can have view attachments.\n * @beta\n */\n public get viewAttachment(): ViewAttachmentHitInfo | undefined { return this._props.path?.viewAttachment; }\n /** Describes the path by which the hit was located through a series of attached views.\n * @beta\n */\n public get path(): HitPath | undefined { return this._props.path; }\n /** Information about the [contour line]($docs/learning/display/ContourDisplay.md), if any, from which this hit originated.\n * @beta\n */\n public get contour(): ContourHit | undefined { return this._props.contour; }\n\n /** Create a new HitDetail from the inputs to and results of a locate operation. */\n public constructor(props: HitDetailProps);\n\n /** @deprecated in 4.1 - will not be removed until after 2026-06-13. Use the overload that takes a [[HitDetailProps]]. */\n public constructor(testPoint: Point3d, viewport: ScreenViewport, hitSource: HitSource, hitPoint: Point3d, sourceId: string, priority: HitPriority, distXY: number, distFraction: number, subCategoryId?: string, geometryClass?: GeometryClass, modelId?: string, sourceIModel?: IModelConnection, tileId?: string, isClassifier?: boolean);\n\n /** @internal */\n public constructor(arg0: Point3d | HitDetailProps, viewport?: ScreenViewport, hitSource?: HitSource, hitPoint?: Point3d, sourceId?: string, priority?: HitPriority, distXY?: number, distFraction?: number, subCategoryId?: string, geometryClass?: GeometryClass, modelId?: string, sourceIModel?: IModelConnection, tileId?: string, isClassifier?: boolean) {\n if (arg0 instanceof Point3d) {\n assert(undefined !== viewport && undefined !== hitSource && undefined !== hitPoint && undefined !== sourceId);\n assert(undefined !== priority && undefined !== distXY && undefined !== distFraction);\n\n this._props = {\n testPoint: arg0,\n viewport,\n hitSource,\n hitPoint,\n sourceId,\n priority,\n distXY,\n distFraction,\n subCategoryId,\n geometryClass,\n modelId,\n sourceIModel,\n tileId,\n isClassifier,\n };\n } else {\n // Ignore an empty path.\n const path = arg0.path?.sectionDrawingAttachment || arg0.path?.viewAttachment ? arg0.path : undefined;\n\n // Tempting to use { ...arg0 } but spread operator omits getters so, e.g., if input is a HitDetail we would lose all the properties.\n this._props = {\n testPoint: arg0.testPoint,\n viewport: arg0.viewport,\n hitSource: arg0.hitSource,\n hitPoint: arg0.hitPoint,\n sourceId: arg0.sourceId,\n priority: arg0.priority,\n distXY: arg0.distXY,\n distFraction: arg0.distFraction,\n subCategoryId: arg0.subCategoryId,\n geometryClass: arg0.geometryClass,\n modelId: arg0.modelId,\n sourceIModel: arg0.sourceIModel,\n transformFromSourceIModel: arg0.transformFromSourceIModel,\n tileId: arg0.tileId,\n isClassifier: arg0.isClassifier,\n path,\n contour: arg0.contour,\n };\n }\n }\n\n /** Get the type of HitDetail.\n * @returns HitDetailType.Hit if this is a HitDetail, HitDetailType.Snap if it is a SnapDetail\n */\n public getHitType(): HitDetailType { return HitDetailType.Hit; }\n\n /** Get the *hit point* for this HitDetail. Returns the approximate point on the element that caused the hit when not a SnapDetail or IntersectDetail.\n * For a snap that is *hot*, the *exact* point on the Element for the snap mode is returned, otherwise the close point on the hit geometry is returned.\n */\n public getPoint(): Point3d { return this.hitPoint; }\n\n /** Determine if this HitPoint is from the same source as another HitDetail. */\n public isSameHit(otherHit?: HitDetail): boolean { return (undefined !== otherHit && this.sourceId === otherHit.sourceId && this.iModel === otherHit.iModel); }\n /** Return whether sourceId is for a persistent element and not a pickable decoration. */\n public get isElementHit(): boolean { return !Id64.isInvalid(this.sourceId) && !Id64.isTransient(this.sourceId); }\n // return whether the sourceId is for a model (reality models etc.)\n public get isModelHit(): boolean {\n return this.modelId === this.sourceId;\n }\n // return whether the hit point is from map.\n public get isMapHit(): boolean { return 0 !== this.viewport.mapLayerFromHit(this).length; }\n\n /** Create a deep copy of this HitDetail */\n public clone(): HitDetail {\n return new HitDetail(this);\n }\n\n /** Draw this HitDetail as a Decoration. Causes the picked element to *flash* */\n public draw(_context: DecorateContext) {\n this.viewport.flashedId = this.sourceId;\n }\n\n /** Get the tooltip content for this HitDetail. */\n public async getToolTip(): Promise<HTMLElement | string> {\n let toolTipPromise = this.isElementHit ? IModelApp.viewManager.overrideElementToolTip(this) : IModelApp.viewManager.getDecorationToolTip(this);\n for (const toolTipProvider of IModelApp.viewManager.toolTipProviders)\n toolTipPromise = toolTipProvider.augmentToolTip(this, toolTipPromise);\n return toolTipPromise;\n }\n\n /** The IModelConnection from which the hit originated. In some cases this may not be the same as the iModel associated with the Viewport -\n * for example, if a [[TiledGraphicsProvider]] is used to display graphics from a different iModel in the viewport.\n * This HitDetail's element, subcategory, and model Ids are defined in the context of this IModelConnection.\n */\n public get iModel(): IModelConnection {\n return this.sourceIModel ?? this.viewport.iModel;\n }\n\n /** Returns true if this hit originated from an [[IModelConnection]] other than the one associated with the [[Viewport]].\n * @see [[iModel]].\n */\n public get isExternalIModelHit(): boolean {\n return this.iModel !== this.viewport.iModel;\n }\n}\n\n/** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*,\n * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode.\n * @public\n * @extensions\n */\nexport class SnapDetail extends HitDetail {\n /** A sprite to show the user the type of snap performed */\n public sprite?: Sprite;\n /** HitPoint adjusted by snap */\n public readonly snapPoint: Point3d;\n /** AccuSnap/AccuDraw can adjust the point after the snap. */\n public readonly adjustedPoint: Point3d;\n /** Curve primitive for snap. */\n public primitive?: CurvePrimitive;\n /** Surface normal at snapPoint */\n public normal?: Vector3d;\n /** The HitGeomType of this SnapDetail */\n public geomType?: HitGeomType;\n /** The HitGeomType of this SnapDetail */\n public parentGeomType?: HitParentGeomType;\n\n /** Constructor for SnapDetail.\n * @param from The HitDetail that created this snap\n * @param snapMode The SnapMode used to create this SnapDetail\n * @param heat The SnapHeat of this SnapDetail\n * @param snapPoint The snapped point in the element\n */\n public constructor(from: HitDetail, public snapMode: SnapMode = SnapMode.Nearest, public heat: SnapHeat = SnapHeat.None, snapPoint?: XYZProps) {\n super(from);\n this.snapPoint = Point3d.fromJSON(snapPoint ? snapPoint : from.hitPoint);\n this.adjustedPoint = this.snapPoint.clone();\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\n }\n\n /** Returns `HitDetailType.Snap` */\n public override getHitType(): HitDetailType { return HitDetailType.Snap; }\n /** Get the snap point if this SnapDetail is *hot*, the pick point otherwise. */\n public override getPoint(): Point3d { return this.isHot ? this.snapPoint : super.getPoint(); }\n /** Return true if the pick point was closer than the snap aperture from the generated snap point. */\n public get isHot(): boolean { return this.heat !== SnapHeat.None; }\n /** Determine whether the [[adjustedPoint]] is different than the [[snapPoint]]. This happens, for example, when points are adjusted for grids, acs plane snap, and AccuDraw. */\n public get isPointAdjusted(): boolean { return !this.adjustedPoint.isExactEqual(this.snapPoint); }\n\n /** Change the snap point. */\n public setSnapPoint(point: Point3d, heat: SnapHeat) {\n this.snapPoint.setFrom(point);\n this.adjustedPoint.setFrom(point);\n this.heat = heat;\n }\n\n /** Change the snap mode. */\n public setSnapMode(snapMode: SnapMode) {\n this.snapMode = snapMode;\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\n }\n\n /** Set curve primitive and HitGeometryType for this SnapDetail. */\n public setCurvePrimitive(primitive?: CurvePrimitive, localToWorld?: Transform, geomType?: HitGeomType): void {\n this.primitive = primitive;\n this.geomType = undefined;\n\n // Only HitGeomType.Point and HitGeomType.Surface are valid without a curve primitive.\n if (undefined === this.primitive) {\n if (HitGeomType.Point === geomType || HitGeomType.Surface === geomType)\n this.geomType = geomType;\n return;\n }\n\n if (undefined !== localToWorld)\n this.primitive.tryTransformInPlace(localToWorld);\n\n if (this.primitive instanceof Arc3d)\n this.geomType = HitGeomType.Arc;\n else if (this.primitive instanceof LineSegment3d)\n this.geomType = HitGeomType.Segment;\n else if (this.primitive instanceof LineString3d)\n this.geomType = HitGeomType.Segment;\n else\n this.geomType = HitGeomType.Curve;\n\n // Set curve primitive geometry type override...\n // - HitGeomType.Point with arc/ellipse denotes center.\n // - HitGeomType.Surface with any curve primitive denotes an interior hit.\n if (undefined !== geomType && HitGeomType.None !== geomType)\n this.geomType = geomType;\n }\n\n /** Make a copy of this SnapDetail. */\n public override clone(): SnapDetail {\n const val = new SnapDetail(this, this.snapMode, this.heat, this.snapPoint);\n val.sprite = this.sprite;\n val.geomType = this.geomType;\n val.parentGeomType = this.parentGeomType;\n val.adjustedPoint.setFrom(this.adjustedPoint);\n if (undefined !== this.primitive)\n val.primitive = this.primitive.clone();\n if (undefined !== this.normal)\n val.normal = this.normal.clone();\n return val;\n }\n\n public getCurvePrimitive(singleSegment: boolean = true): CurvePrimitive | undefined {\n if (!singleSegment || undefined === this.primitive)\n return this.primitive;\n\n if (this.primitive instanceof LineString3d) {\n const ls = this.primitive;\n if (ls.points.length > 2) {\n const loc = ls.closestPoint(this.snapPoint, false);\n const nSegments = ls.points.length - 1;\n const uSegRange = (1.0 / nSegments);\n let segmentNo = Math.floor(loc.fraction / uSegRange);\n if (segmentNo >= nSegments)\n segmentNo = nSegments - 1;\n return LineSegment3d.create(ls.points[segmentNo], ls.points[segmentNo + 1]);\n }\n }\n\n return this.primitive;\n }\n\n public override draw(context: DecorateContext) {\n if (undefined !== this.primitive) {\n let singleSegment = false;\n switch (this.snapMode) {\n case SnapMode.Center:\n case SnapMode.Origin:\n case SnapMode.Bisector:\n break; // Snap point for these is computed using entire linestring, not just the hit segment...\n\n default: {\n singleSegment = true;\n break;\n }\n }\n\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\n const path = Path.create(this.getCurvePrimitive(singleSegment)!);\n\n builder.setSymbology(outline, outline, 6);\n builder.addPath(path);\n\n builder.setSymbology(centerLine, centerLine, 2);\n builder.addPath(path);\n\n context.addDecorationFromBuilder(builder);\n return;\n }\n super.draw(context);\n }\n\n private static getSnapSpriteUrl(snapType: SnapMode): string {\n switch (snapType) {\n case SnapMode.Nearest: return `${IModelApp.publicPath}sprites/SnapPointOn.png`;\n case SnapMode.NearestKeypoint: return `${IModelApp.publicPath}sprites/SnapKeypoint.png`;\n case SnapMode.MidPoint: return `${IModelApp.publicPath}sprites/SnapMidpoint.png`;\n case SnapMode.Center: return `${IModelApp.publicPath}sprites/SnapCenter.png`;\n case SnapMode.Origin: return `${IModelApp.publicPath}sprites/SnapOrigin.png`;\n case SnapMode.Bisector: return `${IModelApp.publicPath}sprites/SnapBisector.png`;\n case SnapMode.Intersection: return `${IModelApp.publicPath}sprites/SnapIntersection.png`;\n case SnapMode.PerpendicularPoint: return `${IModelApp.publicPath}sprites/SnapPerpendicularPoint.png`;\n case SnapMode.TangentPoint: return `${IModelApp.publicPath}sprites/SnapTangentPoint.png`;\n }\n return \"\";\n }\n}\n\n/**\n * @public\n * @extensions\n */\nexport class IntersectDetail extends SnapDetail {\n public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) {\n super(from, SnapMode.Intersection, heat, snapPoint);\n this.primitive = from.primitive;\n this.normal = from.normal; // Preserve normal from primary snap location for AccuDraw smart rotation...\n }\n\n public override draw(context: DecorateContext) {\n if (undefined !== this.primitive && undefined !== this.otherPrimitive) {\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\n const path1 = Path.create(this.primitive);\n const path2 = Path.create(this.otherPrimitive);\n\n builder.setSymbology(outline, outline, 6);\n builder.addPath(path1);\n builder.addPath(path2);\n\n builder.setSymbology(centerLine, centerLine, 2);\n builder.addPath(path1);\n builder.setSymbology(centerLine, centerLine, 2, LinePixels.Code2);\n builder.addPath(path2);\n\n context.addDecorationFromBuilder(builder);\n return;\n }\n super.draw(context);\n }\n}\n\n/** The result of a \"locate\" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list\n * are somehow *better* than those later on.\n * @public\n * @extensions\n */\nexport class HitList<T extends HitDetail> {\n public hits: T[] = [];\n public currHit = -1;\n public get length(): number { return this.hits.length; }\n public empty(): void {\n this.hits.length = 0;\n this.currHit = -1;\n }\n\n public resetCurrentHit(): void { this.currHit = -1; }\n\n /** Get a hit from a particular index into a HitList\n * return the requested hit from the HitList or undefined\n */\n public getHit(hitNum: number): T | undefined {\n if (hitNum < 0)\n hitNum = this.length - 1;\n\n return (hitNum >= this.length) ? undefined : this.hits[hitNum];\n }\n\n /** When setting one or more indices to undefined you must call dropNulls afterwards */\n public setHit(i: number, p: T | undefined): void {\n if (i < 0 || i >= this.length)\n return;\n this.hits[i] = p!;\n }\n\n public dropNulls(): void {\n const hits = this.hits;\n this.hits = [];\n for (const hit of hits)\n this.hits.push(hit);\n }\n\n public getNextHit(): T | undefined {\n this.currHit++;\n return this.getCurrentHit();\n }\n\n public getCurrentHit(): T | undefined { return -1 === this.currHit ? undefined : this.getHit(this.currHit); }\n\n public setCurrentHit(hit: T): void {\n this.resetCurrentHit();\n for (let thisHit; undefined !== (thisHit = this.getNextHit());) {\n if (thisHit === hit)\n return;\n }\n }\n\n /** remove the current hit from the list. */\n public removeCurrentHit() { this.removeHit(this.currHit); }\n\n /** remove a hit in the list. */\n public removeHit(hitNum: number) {\n if (hitNum < 0) // Support -1 == END\n hitNum = this.length - 1;\n\n if (hitNum <= this.currHit)\n this.currHit = -1;\n\n if (hitNum >= this.length) // Locate calls GetNextHit, which increments currHit, until it goes beyond the end of size of the array.\n return; // Then Reset call RemoteCurrentHit, which passes in currHit. When it is out of range, we do nothing.\n\n this.hits.splice(hitNum, 1);\n }\n\n /** search through list and remove any hits that contain a specified element id. */\n public removeHitsFrom(sourceId: string): boolean {\n let removedOne = false;\n\n // walk backwards through list so we don't have to worry about what happens on remove\n for (let i = this.length - 1; i >= 0; i--) {\n const thisHit = this.hits[i];\n if (thisHit && sourceId === thisHit.sourceId) {\n removedOne = true;\n this.removeHit(i);\n }\n }\n return removedOne;\n }\n\n private getPriorityZOverride(priority: HitPriority): number {\n switch (priority) {\n case HitPriority.WireEdge:\n case HitPriority.PlanarEdge:\n case HitPriority.NonPlanarEdge:\n return 0;\n case HitPriority.SilhouetteEdge:\n return 1;\n case HitPriority.PlanarSurface:\n case HitPriority.NonPlanarSurface:\n return 2;\n default:\n return 3;\n }\n }\n\n /** compare two hits for insertion into list. */\n public compare(hit1: HitDetail | undefined, hit2: HitDetail | undefined): -1 | 1 | 0 {\n if (!hit1 || !hit2)\n return 0;\n\n const zOverride1 = this.getPriorityZOverride(hit1.priority);\n const zOverride2 = this.getPriorityZOverride(hit2.priority);\n\n // Prefer edges over surfaces, this is more important than z because we know the edge isn't obscured...\n if (zOverride1 < zOverride2)\n return -1;\n if (zOverride1 > zOverride2)\n return 1;\n\n // Compare xy distance from pick point, prefer hits closer to center...\n if (hit1.distXY < hit2.distXY)\n return -1;\n if (hit1.distXY > hit2.distXY)\n return 1;\n\n // Compare distance fraction, prefer hits closer to eye...\n if (hit1.distFraction > hit2.distFraction)\n return -1;\n if (hit1.distFraction < hit2.distFraction)\n return 1;\n\n // Compare geometry class, prefer path/region hits over surface hits when all else is equal...\n if (hit1.priority < hit2.priority)\n return -1;\n if (hit1.priority > hit2.priority)\n return 1;\n\n return 0;\n }\n\n /** Add a new hit to the list. Hits are sorted according to their priority and distance. */\n public addHit(newHit: T): number {\n if (0 === this.hits.length) {\n this.hits.push(newHit);\n return 0;\n }\n let index = 0;\n for (; index < this.hits.length; ++index) {\n const oldHit = this.hits[index];\n const comparison = this.compare(newHit, oldHit);\n if (comparison < 0)\n break;\n }\n\n this.hits.splice(index, 0, newHit);\n return index;\n }\n\n /** Insert a new hit into the list at the supplied index. */\n public insertHit(i: number, hit: T): void {\n if (i < 0 || i >= this.length)\n this.hits.push(hit);\n else\n this.hits.splice(i, 0, hit);\n }\n}\n"]}
1
+ {"version":3,"file":"HitDetail.js","sourceRoot":"","sources":["../../src/HitDetail.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module LocatingElements\n */\nimport { assert, Id64, Id64String } from \"@itwin/core-bentley\";\nimport { Arc3d, CurvePrimitive, LineSegment3d, LineString3d, Path, Point3d, Transform, Vector3d, XYZProps } from \"@itwin/core-geometry\";\nimport { ContourGroup, GeometryClass, LinePixels } from \"@itwin/core-common\";\nimport { IModelApp } from \"./IModelApp\";\nimport { IModelConnection } from \"./IModelConnection\";\nimport { IconSprites, Sprite } from \"./Sprites\";\nimport { DecorateContext } from \"./ViewContext\";\nimport { ScreenViewport, Viewport } from \"./Viewport\";\nimport { GraphicType } from \"./common/render/GraphicType\";\n\n/**\n * @public\n * @extensions\n */\nexport enum SnapMode {\n Nearest = 1,\n NearestKeypoint = 1 << 1,\n MidPoint = 1 << 2,\n Center = 1 << 3,\n Origin = 1 << 4,\n Bisector = 1 << 5,\n Intersection = 1 << 6,\n PerpendicularPoint = 1 << 7,\n TangentPoint = 1 << 8,\n}\n\n/**\n * @public\n * @extensions\n */\nexport enum SnapHeat {\n None = 0,\n NotInRange = 1, // \"of interest\", but out of range\n InRange = 2,\n}\n\n/** The procedure that generated this Hit.\n * @public\n * @extensions\n */\nexport enum HitSource {\n None = 0,\n FromUser = 1,\n MotionLocate = 2,\n AccuSnap = 3,\n TentativeSnap = 4,\n DataPoint = 5,\n Application = 6,\n EditAction = 7,\n EditActionSS = 8,\n}\n\n/** What was being tested to generate this hit. This is not the element or\n * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit.\n * @public\n * @extensions\n */\nexport enum HitGeomType {\n None = 0,\n Point = 1,\n Segment = 2,\n Curve = 3,\n Arc = 4,\n Surface = 5,\n}\n\n/** Classification of GeometricPrimitive that generated the Hit.\n * @public\n * @extensions\n */\nexport enum HitParentGeomType {\n None = 0,\n Wire = 1,\n Sheet = 2,\n Solid = 3,\n Mesh = 4,\n Text = 5,\n}\n\n/**\n * @public\n * @extensions\n */\nexport enum HitPriority {\n WireEdge = 0,\n PlanarEdge = 1,\n NonPlanarEdge = 2,\n SilhouetteEdge = 3,\n PlanarSurface = 4,\n NonPlanarSurface = 5,\n Unknown = 6,\n}\n\n/**\n * @public\n * @extensions\n */\nexport enum HitDetailType {\n Hit = 1,\n Snap = 2,\n Intersection = 3,\n}\n\n/** As part of a [[HitPath]], describes the [ViewAttachment]($backend), if any, from which the hit represented by a [[HitDetail]] originated.\n * @beta\n */\nexport interface ViewAttachmentHitInfo {\n /** The element Id of the [ViewAttachment]($backend) from which the hit originated. */\n readonly id: Id64String;\n /** The viewport that renders the contents of the attached view into the [[ScreenViewport]].\n * @note Do not alter the state of this viewport.\n * @alpha\n */\n readonly viewport: Viewport;\n}\n\n/** As part of a [[HitPath]], describes the [SectionDrawing]($backend), if any, from which the hit represented by a [[HitDetail]] originated.\n * @beta\n */\nexport interface SectionDrawingAttachmentHitInfo {\n /** The viewport that renders the contents of the attached view into the [[ScreenViewport]].\n * @note Do not alter the state of this viewport.\n * @alpha\n */\n readonly viewport: Viewport;\n}\n\n/** As part of a [[HitDetail]], describes a series of \"attached\" views through which the hit was located.\n * Typically, the contents of a view are rendered directly to the screen via [[HitDetail.viewport]].\n * However, in some contexts one view might be \"attached\" to the viewport's view via a [ViewAttachment]($backend), [SectionDrawing]($backend), or both.\n * HitPath captures this information in one of the following possible ways:\n * 1. A [[SheetViewState]] renders another view through a [ViewAttachment]($backend), in which case [[viewAttachment]] will be defined.\n * 2. A [[DrawingViewState]] renders a [[SpatialViewState]] through a [SectionDrawing]($backend) attachment, in which case [[sectionDrawingAttachment]] will be defined; or\n * 3. A combination of 1 and 2 where a [ViewAttachment]($backend) on a sheet renders a [SectionDrawing]($backend) with an attached [[SpatialViewState]], in which both [viewAttachment]] and [[sectionDrawingAttachment]] will be defined.\n * @beta\n */\nexport interface HitPath {\n /** Details about the [ViewAttachment]($backend) through which the hit was obtained. */\n viewAttachment?: ViewAttachmentHitInfo;\n /** Details about the [SectionDrawing]($backend) attachment through which the hit was obtained. */\n sectionDrawingAttachment?: SectionDrawingAttachmentHitInfo;\n};\n\n/** Information about a [contour line]($docs/learning/display/ContourDisplay.md) that generated a [[HitDetail]] or [[Pixel]].\n * @see [[HitDetail.contour]]\n * @see [[Pixel.Data.contour]]\n * @beta\n */\nexport interface ContourHit {\n /** The contour group that generated the contour line, as specified by [[ContourDisplay.groups]]. */\n readonly group: ContourGroup;\n /** True if the contour is a major contour line as specified by the [[group]] from which it originated, false if it is a minor contour line. */\n readonly isMajor: boolean;\n /** The height in world coordinates of the contour line. This is always a multiple of the [Contour.minorInterval]($common) defined for the [[group]].\n * @note The multiple may be approximate due to the limitations of floating-point precision.\n */\n readonly elevation: number;\n}\n\n/** Arguments supplied to the [[HitDetail]] constructor.\n * @public\n */\nexport interface HitDetailProps {\n /** The point in world coordinates that was used as the initial locate point. */\n readonly testPoint: Point3d;\n /** The viewport in which the locate operation was performed. */\n readonly viewport: ScreenViewport;\n /** The procedure that requested the locate operation. */\n readonly hitSource: HitSource;\n /** The approximate location in world coordinates on the geometry identified by this HitDetail. */\n readonly hitPoint: Point3d;\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\n readonly sourceId: Id64String;\n /** The hit geometry priority/classification. */\n readonly priority: HitPriority;\n /** The xy distance to the hit in view coordinates. */\n readonly distXY: number;\n /** The distance in view coordinates between the hit and the near plane. */\n readonly distFraction: number;\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\n readonly subCategoryId?: Id64String;\n /** The class of the hit geometry. */\n readonly geometryClass?: GeometryClass;\n /** The Id of the [[ModelState]] from which the hit originated. */\n readonly modelId?: string;\n /** The IModelConnection from which the hit originated.\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\n * other than the one associated with the viewport.\n * @internal\n */\n readonly sourceIModel?: IModelConnection;\n /** @internal */\n readonly transformFromSourceIModel?: Transform;\n /** @internal chiefly for debugging */\n readonly tileId?: string;\n /** True if the hit originated from a reality model classifier.\n * @alpha\n */\n readonly isClassifier?: boolean;\n /** Describes the path by which the hit was located through a series of attached views.\n * @beta\n */\n readonly path?: HitPath;\n /** Information about the [contour line]($docs/learning/display/ContourDisplay.md), if any, from which this hit originated.\n * @beta\n */\n readonly contour?: ContourHit;\n}\n\n/** A HitDetail stores the result when locating geometry displayed in a view.\n * It holds an approximate location on an element (or decoration) from a *pick*.\n * @public\n * @extensions\n */\nexport class HitDetail {\n private readonly _props: HitDetailProps;\n\n /** The point in world coordinates that was used as the initial locate point. */\n public get testPoint(): Point3d { return this._props.testPoint; }\n /** The viewport in which the locate operation was performed. */\n public get viewport(): ScreenViewport { return this._props.viewport; }\n /** The procedure that requested the locate operation. */\n public get hitSource(): HitSource { return this._props.hitSource; }\n /** The approximate location in world coordinates on the geometry identified by this HitDetail. */\n public get hitPoint(): Point3d { return this._props.hitPoint; }\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\n public get sourceId(): Id64String { return this._props.sourceId; }\n /** The hit geometry priority/classification. */\n public get priority(): HitPriority { return this._props.priority; }\n /** The xy distance to the hit in view coordinates. */\n public get distXY(): number { return this._props.distXY; }\n /** The distance in view coordinates between the hit and the near plane. */\n public get distFraction(): number { return this._props.distFraction; }\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\n public get subCategoryId(): Id64String | undefined { return this._props.subCategoryId; }\n /** The class of the hit geometry. */\n public get geometryClass(): GeometryClass | undefined { return this._props.geometryClass; }\n /** The Id of the [[ModelState]] from which the hit originated. */\n public get modelId(): string | undefined { return this._props.modelId; }\n /** The IModelConnection from which the hit originated.\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\n * other than the one associated with the viewport.\n * @internal\n */\n public get sourceIModel(): IModelConnection | undefined { return this._props.sourceIModel; }\n /** @internal */\n public get transformFromSourceIModel(): Transform | undefined { return this._props.transformFromSourceIModel; }\n /** @internal chiefly for debugging */\n public get tileId(): string | undefined { return this._props.tileId; }\n /** True if the hit originated from a reality model classifier.\n * @alpha\n */\n public get isClassifier(): boolean | undefined { return this._props.isClassifier; }\n /** Information about the [ViewAttachment]($backend) within which the hit geometry resides, if any.\n * @note Only [[SheetViewState]]s can have view attachments.\n * @beta\n */\n public get viewAttachment(): ViewAttachmentHitInfo | undefined { return this._props.path?.viewAttachment; }\n /** Describes the path by which the hit was located through a series of attached views.\n * @beta\n */\n public get path(): HitPath | undefined { return this._props.path; }\n /** Information about the [contour line]($docs/learning/display/ContourDisplay.md), if any, from which this hit originated.\n * @beta\n */\n public get contour(): ContourHit | undefined { return this._props.contour; }\n\n /** Create a new HitDetail from the inputs to and results of a locate operation. */\n public constructor(props: HitDetailProps);\n\n /** @deprecated in 4.1 - will not be removed until after 2026-06-13. Use the overload that takes a [[HitDetailProps]]. */\n public constructor(testPoint: Point3d, viewport: ScreenViewport, hitSource: HitSource, hitPoint: Point3d, sourceId: string, priority: HitPriority, distXY: number, distFraction: number, subCategoryId?: string, geometryClass?: GeometryClass, modelId?: string, sourceIModel?: IModelConnection, tileId?: string, isClassifier?: boolean);\n\n /** @internal */\n public constructor(arg0: Point3d | HitDetailProps, viewport?: ScreenViewport, hitSource?: HitSource, hitPoint?: Point3d, sourceId?: string, priority?: HitPriority, distXY?: number, distFraction?: number, subCategoryId?: string, geometryClass?: GeometryClass, modelId?: string, sourceIModel?: IModelConnection, tileId?: string, isClassifier?: boolean) {\n if (arg0 instanceof Point3d) {\n assert(undefined !== viewport && undefined !== hitSource && undefined !== hitPoint && undefined !== sourceId);\n assert(undefined !== priority && undefined !== distXY && undefined !== distFraction);\n\n this._props = {\n testPoint: arg0,\n viewport,\n hitSource,\n hitPoint,\n sourceId,\n priority,\n distXY,\n distFraction,\n subCategoryId,\n geometryClass,\n modelId,\n sourceIModel,\n tileId,\n isClassifier,\n };\n } else {\n // Ignore an empty path.\n const path = arg0.path?.sectionDrawingAttachment || arg0.path?.viewAttachment ? arg0.path : undefined;\n\n // Tempting to use { ...arg0 } but spread operator omits getters so, e.g., if input is a HitDetail we would lose all the properties.\n this._props = {\n testPoint: arg0.testPoint,\n viewport: arg0.viewport,\n hitSource: arg0.hitSource,\n hitPoint: arg0.hitPoint,\n sourceId: arg0.sourceId,\n priority: arg0.priority,\n distXY: arg0.distXY,\n distFraction: arg0.distFraction,\n subCategoryId: arg0.subCategoryId,\n geometryClass: arg0.geometryClass,\n modelId: arg0.modelId,\n sourceIModel: arg0.sourceIModel,\n transformFromSourceIModel: arg0.transformFromSourceIModel,\n tileId: arg0.tileId,\n isClassifier: arg0.isClassifier,\n path,\n contour: arg0.contour,\n };\n }\n }\n\n /** Get the type of HitDetail.\n * @returns HitDetailType.Hit if this is a HitDetail, HitDetailType.Snap if it is a SnapDetail\n */\n public getHitType(): HitDetailType { return HitDetailType.Hit; }\n\n /** Get the *hit point* for this HitDetail. Returns the approximate point on the element that caused the hit when not a SnapDetail or IntersectDetail.\n * For a snap that is *hot*, the *exact* point on the Element for the snap mode is returned, otherwise the close point on the hit geometry is returned.\n */\n public getPoint(): Point3d { return this.hitPoint; }\n\n /** Determine if this HitPoint is from the same source as another HitDetail. */\n public isSameHit(otherHit?: HitDetail): boolean { return (undefined !== otherHit && this.sourceId === otherHit.sourceId && this.iModel === otherHit.iModel); }\n /** Return whether sourceId is for a persistent element and not a pickable decoration. */\n public get isElementHit(): boolean { return !Id64.isInvalid(this.sourceId) && !Id64.isTransient(this.sourceId); }\n // return whether the sourceId is for a model (reality models etc.)\n public get isModelHit(): boolean {\n return this.modelId === this.sourceId;\n }\n // return whether the hit point is from map.\n public get isMapHit(): boolean { return 0 !== this.viewport.mapLayerFromHit(this).length; }\n\n /** Create a deep copy of this HitDetail */\n public clone(): HitDetail {\n return new HitDetail(this);\n }\n\n /** Draw this HitDetail as a Decoration. Causes the picked element to *flash* */\n public draw(_context: DecorateContext) {\n this.viewport.flashedId = this.sourceId;\n }\n\n /** Get the tooltip content for this HitDetail. */\n public async getToolTip(): Promise<HTMLElement | string> {\n let toolTipPromise = this.isElementHit ? IModelApp.viewManager.overrideElementToolTip(this) : IModelApp.viewManager.getDecorationToolTip(this);\n for (const toolTipProvider of IModelApp.viewManager.toolTipProviders)\n toolTipPromise = toolTipProvider.augmentToolTip(this, toolTipPromise);\n return toolTipPromise;\n }\n\n /** The IModelConnection from which the hit originated. In some cases this may not be the same as the iModel associated with the Viewport -\n * for example, if a [[TiledGraphicsProvider]] is used to display graphics from a different iModel in the viewport.\n * This HitDetail's element, subcategory, and model Ids are defined in the context of this IModelConnection.\n */\n public get iModel(): IModelConnection {\n return this.sourceIModel ?? this.viewport.iModel;\n }\n\n /** Returns true if this hit originated from an [[IModelConnection]] other than the one associated with the [[Viewport]].\n * @see [[iModel]].\n */\n public get isExternalIModelHit(): boolean {\n return this.iModel !== this.viewport.iModel;\n }\n}\n\n/** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*,\n * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode.\n * @public\n * @extensions\n */\nexport class SnapDetail extends HitDetail {\n /** A sprite to show the user the type of snap performed */\n public sprite?: Sprite;\n /** HitPoint adjusted by snap */\n public readonly snapPoint: Point3d;\n /** AccuSnap/AccuDraw can adjust the point after the snap. */\n public readonly adjustedPoint: Point3d;\n /** Curve primitive for snap. */\n public primitive?: CurvePrimitive;\n /** Surface normal at snapPoint */\n public normal?: Vector3d;\n /** The HitGeomType of this SnapDetail */\n public geomType?: HitGeomType;\n /** The HitGeomType of this SnapDetail */\n public parentGeomType?: HitParentGeomType;\n\n /** Constructor for SnapDetail.\n * @param from The HitDetail that created this snap\n * @param snapMode The SnapMode used to create this SnapDetail\n * @param heat The SnapHeat of this SnapDetail\n * @param snapPoint The snapped point in the element\n */\n public constructor(from: HitDetail, public snapMode: SnapMode = SnapMode.Nearest, public heat: SnapHeat = SnapHeat.None, snapPoint?: XYZProps) {\n super(from);\n this.snapPoint = Point3d.fromJSON(snapPoint ? snapPoint : from.hitPoint);\n this.adjustedPoint = this.snapPoint.clone();\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\n }\n\n /** Returns `HitDetailType.Snap` */\n public override getHitType(): HitDetailType { return HitDetailType.Snap; }\n /** Get the snap point if this SnapDetail is *hot*, the pick point otherwise. */\n public override getPoint(): Point3d { return this.isHot ? this.snapPoint : super.getPoint(); }\n /** Return true if the pick point was closer than the snap aperture from the generated snap point. */\n public get isHot(): boolean { return this.heat !== SnapHeat.None; }\n /** Determine whether the [[adjustedPoint]] is different than the [[snapPoint]]. This happens, for example, when points are adjusted for grids, acs plane snap, and AccuDraw. */\n public get isPointAdjusted(): boolean { return !this.adjustedPoint.isExactEqual(this.snapPoint); }\n\n /** Change the snap point. */\n public setSnapPoint(point: Point3d, heat: SnapHeat) {\n this.snapPoint.setFrom(point);\n this.adjustedPoint.setFrom(point);\n this.heat = heat;\n }\n\n /** Change the snap mode. */\n public setSnapMode(snapMode: SnapMode) {\n this.snapMode = snapMode;\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\n }\n\n /** Set curve primitive and HitGeometryType for this SnapDetail. */\n public setCurvePrimitive(primitive?: CurvePrimitive, localToWorld?: Transform, geomType?: HitGeomType): void {\n this.primitive = primitive;\n this.geomType = undefined;\n\n // Only HitGeomType.Point and HitGeomType.Surface are valid without a curve primitive.\n if (undefined === this.primitive) {\n if (HitGeomType.Point === geomType || HitGeomType.Surface === geomType)\n this.geomType = geomType;\n return;\n }\n\n if (undefined !== localToWorld)\n this.primitive.tryTransformInPlace(localToWorld);\n\n if (this.primitive instanceof Arc3d)\n this.geomType = HitGeomType.Arc;\n else if (this.primitive instanceof LineSegment3d)\n this.geomType = HitGeomType.Segment;\n else if (this.primitive instanceof LineString3d)\n this.geomType = HitGeomType.Segment;\n else\n this.geomType = HitGeomType.Curve;\n\n // Set curve primitive geometry type override...\n // - HitGeomType.Point with arc/ellipse denotes center.\n // - HitGeomType.Surface with any curve primitive denotes an interior hit.\n if (undefined !== geomType && HitGeomType.None !== geomType)\n this.geomType = geomType;\n }\n\n /** Make a copy of this SnapDetail. */\n public override clone(): SnapDetail {\n const val = new SnapDetail(this, this.snapMode, this.heat, this.snapPoint);\n val.sprite = this.sprite;\n val.geomType = this.geomType;\n val.parentGeomType = this.parentGeomType;\n val.adjustedPoint.setFrom(this.adjustedPoint);\n if (undefined !== this.primitive)\n val.primitive = this.primitive.clone();\n if (undefined !== this.normal)\n val.normal = this.normal.clone();\n return val;\n }\n\n public getCurvePrimitive(singleSegment: boolean = true): CurvePrimitive | undefined {\n if (!singleSegment || undefined === this.primitive)\n return this.primitive;\n\n if (this.primitive instanceof LineString3d) {\n const ls = this.primitive;\n if (ls.points.length > 2) {\n const loc = ls.closestPoint(this.snapPoint, false);\n const nSegments = ls.points.length - 1;\n const uSegRange = (1.0 / nSegments);\n let segmentNo = Math.floor(loc.fraction / uSegRange);\n if (segmentNo >= nSegments)\n segmentNo = nSegments - 1;\n return LineSegment3d.create(ls.points[segmentNo], ls.points[segmentNo + 1]);\n }\n }\n\n return this.primitive;\n }\n\n public override draw(context: DecorateContext) {\n if (undefined !== this.primitive) {\n let singleSegment = false;\n switch (this.snapMode) {\n case SnapMode.Center:\n case SnapMode.Origin:\n case SnapMode.Bisector:\n break; // Snap point for these is computed using entire linestring, not just the hit segment...\n\n default: {\n singleSegment = true;\n break;\n }\n }\n\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\n const curvePrimitive = this.getCurvePrimitive(singleSegment);\n if (curvePrimitive !== undefined) {\n const path = Path.create(curvePrimitive);\n\n builder.setSymbology(outline, outline, 6);\n builder.addPath(path);\n\n builder.setSymbology(centerLine, centerLine, 2);\n builder.addPath(path);\n\n context.addDecorationFromBuilder(builder);\n return;\n }\n }\n super.draw(context);\n }\n\n private static getSnapSpriteUrl(snapType: SnapMode): string {\n switch (snapType) {\n case SnapMode.Nearest: return `${IModelApp.publicPath}sprites/SnapPointOn.png`;\n case SnapMode.NearestKeypoint: return `${IModelApp.publicPath}sprites/SnapKeypoint.png`;\n case SnapMode.MidPoint: return `${IModelApp.publicPath}sprites/SnapMidpoint.png`;\n case SnapMode.Center: return `${IModelApp.publicPath}sprites/SnapCenter.png`;\n case SnapMode.Origin: return `${IModelApp.publicPath}sprites/SnapOrigin.png`;\n case SnapMode.Bisector: return `${IModelApp.publicPath}sprites/SnapBisector.png`;\n case SnapMode.Intersection: return `${IModelApp.publicPath}sprites/SnapIntersection.png`;\n case SnapMode.PerpendicularPoint: return `${IModelApp.publicPath}sprites/SnapPerpendicularPoint.png`;\n case SnapMode.TangentPoint: return `${IModelApp.publicPath}sprites/SnapTangentPoint.png`;\n }\n return \"\";\n }\n}\n\n/**\n * @public\n * @extensions\n */\nexport class IntersectDetail extends SnapDetail {\n public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) {\n super(from, SnapMode.Intersection, heat, snapPoint);\n this.primitive = from.primitive;\n this.normal = from.normal; // Preserve normal from primary snap location for AccuDraw smart rotation...\n }\n\n public override draw(context: DecorateContext) {\n if (undefined !== this.primitive && undefined !== this.otherPrimitive) {\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\n const path1 = Path.create(this.primitive);\n const path2 = Path.create(this.otherPrimitive);\n\n builder.setSymbology(outline, outline, 6);\n builder.addPath(path1);\n builder.addPath(path2);\n\n builder.setSymbology(centerLine, centerLine, 2);\n builder.addPath(path1);\n builder.setSymbology(centerLine, centerLine, 2, LinePixels.Code2);\n builder.addPath(path2);\n\n context.addDecorationFromBuilder(builder);\n return;\n }\n super.draw(context);\n }\n}\n\n/** The result of a \"locate\" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list\n * are somehow *better* than those later on.\n * @public\n * @extensions\n */\nexport class HitList<T extends HitDetail> {\n public hits: T[] = [];\n public currHit = -1;\n public get length(): number { return this.hits.length; }\n public empty(): void {\n this.hits.length = 0;\n this.currHit = -1;\n }\n\n public resetCurrentHit(): void { this.currHit = -1; }\n\n /** Get a hit from a particular index into a HitList\n * return the requested hit from the HitList or undefined\n */\n public getHit(hitNum: number): T | undefined {\n if (hitNum < 0)\n hitNum = this.length - 1;\n\n return (hitNum >= this.length) ? undefined : this.hits[hitNum];\n }\n\n /** When setting one or more indices to undefined you must call dropNulls afterwards */\n public setHit(i: number, p: T | undefined): void {\n if (i < 0 || i >= this.length)\n return;\n // While messy, the following is obviously intentional based on the function comment.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.hits[i] = p!;\n }\n\n public dropNulls(): void {\n const hits = this.hits;\n this.hits = [];\n for (const hit of hits)\n this.hits.push(hit);\n }\n\n public getNextHit(): T | undefined {\n this.currHit++;\n return this.getCurrentHit();\n }\n\n public getCurrentHit(): T | undefined { return -1 === this.currHit ? undefined : this.getHit(this.currHit); }\n\n public setCurrentHit(hit: T): void {\n this.resetCurrentHit();\n for (let thisHit; undefined !== (thisHit = this.getNextHit());) {\n if (thisHit === hit)\n return;\n }\n }\n\n /** remove the current hit from the list. */\n public removeCurrentHit() { this.removeHit(this.currHit); }\n\n /** remove a hit in the list. */\n public removeHit(hitNum: number) {\n if (hitNum < 0) // Support -1 == END\n hitNum = this.length - 1;\n\n if (hitNum <= this.currHit)\n this.currHit = -1;\n\n if (hitNum >= this.length) // Locate calls GetNextHit, which increments currHit, until it goes beyond the end of size of the array.\n return; // Then Reset call RemoteCurrentHit, which passes in currHit. When it is out of range, we do nothing.\n\n this.hits.splice(hitNum, 1);\n }\n\n /** search through list and remove any hits that contain a specified element id. */\n public removeHitsFrom(sourceId: string): boolean {\n let removedOne = false;\n\n // walk backwards through list so we don't have to worry about what happens on remove\n for (let i = this.length - 1; i >= 0; i--) {\n const thisHit = this.hits[i];\n if (thisHit && sourceId === thisHit.sourceId) {\n removedOne = true;\n this.removeHit(i);\n }\n }\n return removedOne;\n }\n\n private getPriorityZOverride(priority: HitPriority): number {\n switch (priority) {\n case HitPriority.WireEdge:\n case HitPriority.PlanarEdge:\n case HitPriority.NonPlanarEdge:\n return 0;\n case HitPriority.SilhouetteEdge:\n return 1;\n case HitPriority.PlanarSurface:\n case HitPriority.NonPlanarSurface:\n return 2;\n default:\n return 3;\n }\n }\n\n /** compare two hits for insertion into list. */\n public compare(hit1: HitDetail | undefined, hit2: HitDetail | undefined): -1 | 1 | 0 {\n if (!hit1 || !hit2)\n return 0;\n\n const zOverride1 = this.getPriorityZOverride(hit1.priority);\n const zOverride2 = this.getPriorityZOverride(hit2.priority);\n\n // Prefer edges over surfaces, this is more important than z because we know the edge isn't obscured...\n if (zOverride1 < zOverride2)\n return -1;\n if (zOverride1 > zOverride2)\n return 1;\n\n // Compare xy distance from pick point, prefer hits closer to center...\n if (hit1.distXY < hit2.distXY)\n return -1;\n if (hit1.distXY > hit2.distXY)\n return 1;\n\n // Compare distance fraction, prefer hits closer to eye...\n if (hit1.distFraction > hit2.distFraction)\n return -1;\n if (hit1.distFraction < hit2.distFraction)\n return 1;\n\n // Compare geometry class, prefer path/region hits over surface hits when all else is equal...\n if (hit1.priority < hit2.priority)\n return -1;\n if (hit1.priority > hit2.priority)\n return 1;\n\n return 0;\n }\n\n /** Add a new hit to the list. Hits are sorted according to their priority and distance. */\n public addHit(newHit: T): number {\n if (0 === this.hits.length) {\n this.hits.push(newHit);\n return 0;\n }\n let index = 0;\n for (; index < this.hits.length; ++index) {\n const oldHit = this.hits[index];\n const comparison = this.compare(newHit, oldHit);\n if (comparison < 0)\n break;\n }\n\n this.hits.splice(index, 0, newHit);\n return index;\n }\n\n /** Insert a new hit into the list at the supplied index. */\n public insertHit(i: number, hit: T): void {\n if (i < 0 || i >= this.length)\n this.hits.push(hit);\n else\n this.hits.splice(i, 0, hit);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import packageJson from "../../package.json";
12
12
  export const ITWINJS_CORE_VERSION = packageJson.version;
13
13
  const COPYRIGHT_NOTICE = `Copyright © 2017-${new Date().getFullYear()} <a href="https://www.bentley.com" target="_blank" rel="noopener noreferrer">Bentley Systems, Inc.</a>`;
14
14
  import { UiAdmin } from "@itwin/appui-abstract";
15
- import { BeDuration, BeEvent, BentleyStatus, DbResult, dispose, Guid, IModelStatus, Logger, ProcessDetector } from "@itwin/core-bentley";
15
+ import { BeDuration, BeEvent, BentleyStatus, DbResult, dispose, expectDefined, Guid, IModelStatus, Logger, ProcessDetector } from "@itwin/core-bentley";
16
16
  import { RpcConfiguration } from "@itwin/core-common";
17
17
  import { ITwinLocalization } from "@itwin/core-i18n";
18
18
  import { queryRenderCompatibility } from "@itwin/webgl-compatibility";
@@ -24,7 +24,7 @@ import { ExtensionAdmin } from "./extension/ExtensionAdmin";
24
24
  import * as displayStyleState from "./DisplayStyleState";
25
25
  import * as drawingViewState from "./DrawingViewState";
26
26
  import { ElementLocateManager } from "./ElementLocateManager";
27
- import { EntityState } from "./EntityState";
27
+ import { ElementState, EntityState } from "./EntityState";
28
28
  import { FrontendLoggerCategory } from "./common/FrontendLoggerCategory";
29
29
  import * as modelselector from "./ModelSelectorState";
30
30
  import * as modelState from "./ModelState";
@@ -108,7 +108,7 @@ export class IModelApp {
108
108
  */
109
109
  static get realityDataSourceProviders() { return this._realityDataSourceProviders; }
110
110
  /** The [[RenderSystem]] for this session. */
111
- static get renderSystem() { return this._renderSystem; }
111
+ static get renderSystem() { return expectDefined(this._renderSystem); }
112
112
  /** The [[ViewManager]] for this session. */
113
113
  static get viewManager() { return this._viewManager; }
114
114
  /** The [[NotificationManager]] for this session. */
@@ -244,6 +244,7 @@ export class IModelApp {
244
244
  accudrawTool,
245
245
  ].forEach((tool) => this.tools.registerModule(tool, toolsNs));
246
246
  this.registerEntityState(EntityState.classFullName, EntityState);
247
+ this.registerEntityState(ElementState.classFullName, ElementState);
247
248
  [
248
249
  modelState,
249
250
  sheetState,