@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":"EnvironmentDecorations.js","sourceRoot":"","sources":["../../src/EnvironmentDecorations.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 { assert, Id64 } from \"@itwin/core-bentley\";\nimport {\n ColorDef, Environment, Gradient, GraphicParams, RenderTexture, RenderTextureParams, SkyCube, SkySphere, TextureImageSpec, TextureMapping,\n} from \"@itwin/core-common\";\nimport { Point2d, Point3d, PolyfaceBuilder, StrokeOptions } from \"@itwin/core-geometry\";\nimport { tryImageElementFromUrl } from \"./common/ImageUtil\";\nimport { IModelApp } from \"./IModelApp\";\nimport { RenderGraphic } from \"./render/RenderGraphic\";\nimport { RenderSkyBoxParams } from \"./internal/render/RenderSkyBoxParams\";\nimport { DecorateContext } from \"./ViewContext\";\nimport { ViewState3d } from \"./ViewState\";\nimport { GraphicType } from \"./common/render/GraphicType\";\n\n/** @internal */\nexport interface GroundPlaneDecorations {\n readonly aboveParams: GraphicParams;\n readonly belowParams: GraphicParams;\n}\n\ninterface SkyBoxParamsLoader {\n // Invoke to obtain sky box params.\n load(): RenderSkyBoxParams | undefined;\n // If defined, await before invoking load().\n preload?: Promise<boolean>;\n}\n\n/** @internal */\nexport interface SkyBoxDecorations {\n params?: RenderSkyBoxParams;\n promise?: Promise<boolean>;\n}\n\n/** @internal */\nexport class EnvironmentDecorations {\n protected readonly _view: ViewState3d;\n protected readonly _onLoaded: () => void;\n protected readonly _onDispose: () => void;\n protected _environment: Environment;\n protected _ground?: GroundPlaneDecorations;\n protected _sky: SkyBoxDecorations;\n\n public constructor(view: ViewState3d, onLoaded: () => void, onDispose: () => void) {\n this._environment = view.displayStyle.environment;\n this._view = view;\n this._onLoaded = onLoaded;\n this._onDispose = onDispose;\n this._sky = {};\n this.loadSkyBox();\n if (this._environment.displayGround)\n this.loadGround();\n }\n\n public [Symbol.dispose](): void {\n this._ground = undefined;\n this._sky.params = this._sky.promise = undefined;\n\n this._onDispose();\n }\n\n public setEnvironment(env: Environment): void {\n const prev = this._environment;\n if (prev === env)\n return;\n\n this._environment = env;\n\n // Update ground plane\n if (!env.displayGround || env.ground !== prev.ground)\n this._ground = undefined;\n\n if (env.displayGround && !this._ground)\n this.loadGround();\n\n // Update sky box\n if (env.sky !== prev.sky)\n this.loadSkyBox();\n }\n\n public decorate(context: DecorateContext): void {\n const env = this._environment;\n\n let sky: RenderGraphic | undefined;\n if (env.displayAtmosphere) {\n sky = IModelApp.renderSystem.createSkyBox(this.createSkyGradientParams());\n } else if (env.displaySky && this._sky.params) {\n sky = IModelApp.renderSystem.createSkyBox(this._sky.params);\n }\n if (sky)\n context.setSkyBox(sky);\n\n if (!env.displayGround || !this._ground)\n return;\n\n const extents = this._view.getGroundExtents(context.viewport);\n if (extents.isNull)\n return;\n\n const points: Point3d[] = [extents.low.clone(), extents.low.clone(), extents.high.clone(), extents.high.clone()];\n points[1].x = extents.high.x;\n points[3].x = extents.low.x;\n\n const aboveGround = this._view.isEyePointAbove(extents.low.z);\n const params = aboveGround ? this._ground.aboveParams : this._ground.belowParams;\n const builder = context.createGraphicBuilder(GraphicType.WorldDecoration);\n builder.activateGraphicParams(params);\n\n const strokeOptions = new StrokeOptions();\n strokeOptions.needParams = true;\n const polyfaceBuilder = PolyfaceBuilder.create(strokeOptions);\n polyfaceBuilder.toggleReversedFacetFlag();\n const uvParams: Point2d[] = [Point2d.create(0, 0), Point2d.create(1, 0), Point2d.create(1, 1), Point2d.create(0, 1)];\n polyfaceBuilder.addQuadFacet(points, uvParams);\n const polyface = polyfaceBuilder.claimPolyface(false);\n\n builder.addPolyface(polyface, true);\n context.addDecorationFromBuilder(builder);\n }\n\n private loadGround(): void {\n assert(undefined === this._ground);\n const aboveParams = this.createGroundParams(true);\n const belowParams = this.createGroundParams(false);\n if (aboveParams && belowParams)\n this._ground = { aboveParams, belowParams };\n }\n\n private createGroundParams(above: boolean): GraphicParams | undefined {\n // Create a gradient texture.\n const ground = this._environment.ground;\n const values = [0, 0.25, 0.5];\n const color = above ? ground.aboveColor : ground.belowColor;\n const alpha = above ? 0x80 : 0x85;\n const groundColors = [color.withTransparency(0xff), color, color];\n groundColors[1] = groundColors[2] = color.withTransparency(alpha);\n\n const gradient = new Gradient.Symb();\n gradient.mode = Gradient.Mode.Spherical;\n gradient.keys = [{ color: groundColors[0], value: values[0] }, { color: groundColors[1], value: values[1] }, { color: groundColors[2], value: values[2] }];\n const texture = IModelApp.renderSystem.getGradientTexture(gradient, this._view.iModel);\n if (!texture)\n return undefined;\n\n // Create a material using the gradient texture\n const material = IModelApp.renderSystem.createRenderMaterial({\n diffuse: { color: ColorDef.white, weight: 0 },\n textureMapping: {\n texture,\n transform: new TextureMapping.Trans2x3(0, 1, 0, 1, 0, 0),\n },\n });\n\n if (!material)\n return undefined;\n\n // Create GraphicParams using the material.\n const params = new GraphicParams();\n params.lineColor = gradient.keys[0].color;\n params.fillColor = ColorDef.white; // Fill should be set to opaque white for gradient texture...\n params.material = material;\n\n return params;\n }\n\n private loadSkyBox(): void {\n const loader = this.loadSkyBoxParams();\n if (undefined === loader.preload) {\n this.setSky(loader.load());\n return;\n }\n\n const promise = loader.preload;\n this._sky.promise = promise;\n loader.preload.then((loaded) => {\n if (promise === this._sky.promise)\n this.setSky(loaded ? loader.load() : undefined);\n }).catch(() => {\n if (promise === this._sky.promise)\n this.setSky(undefined);\n });\n }\n\n private setSky(params: RenderSkyBoxParams | undefined): void {\n this._sky.promise = undefined;\n this._sky.params = params ?? this.createSkyGradientParams();\n this._onLoaded();\n }\n\n private loadSkyBoxParams(): SkyBoxParamsLoader {\n let load: (() => RenderSkyBoxParams | undefined);\n let preload: Promise<boolean> | undefined;\n\n const sky = this._environment.sky;\n if (sky instanceof SkyCube) {\n const key = this.createCubeImageKey(sky);\n load = () => {\n const texture = IModelApp.renderSystem.findTexture(key, this._view.iModel);\n return texture ? { type: \"cube\", texture } : undefined;\n };\n\n if (!IModelApp.renderSystem.findTexture(key, this._view.iModel)) {\n // Some faces may use the same image. Only request each image once.\n const promises = [];\n const specs = new Set<string>([sky.images.front, sky.images.back, sky.images.left, sky.images.right, sky.images.top, sky.images.bottom]);\n for (const spec of specs)\n promises.push(this.imageFromSpec(spec));\n\n preload = Promise.all(promises).then((images) => {\n const idToImage = new Map<TextureImageSpec, HTMLImageElement>();\n let index = 0;\n for (const spec of specs) {\n const image = images[index++];\n if (!image)\n return false;\n else\n idToImage.set(spec, image);\n }\n\n\n const params = new RenderTextureParams(key, RenderTexture.Type.SkyBox);\n const txImgs = [\n idToImage.get(sky.images.front)!, idToImage.get(sky.images.back)!, idToImage.get(sky.images.top)!,\n idToImage.get(sky.images.bottom)!, idToImage.get(sky.images.right)!, idToImage.get(sky.images.left)!,\n ];\n\n return undefined !== IModelApp.renderSystem.createTextureFromCubeImages(txImgs[0], txImgs[1], txImgs[2], txImgs[3], txImgs[4], txImgs[5], this._view.iModel, params);\n });\n }\n } else if (sky instanceof SkySphere) {\n load = () => {\n const texture = IModelApp.renderSystem.findTexture(sky.image, this._view.iModel);\n return texture ? {\n type: \"sphere\",\n texture,\n rotation: 0,\n zOffset: this._view.iModel.globalOrigin.z,\n } : undefined;\n };\n\n if (!IModelApp.renderSystem.findTexture(sky.image, this._view.iModel)) {\n preload = this.imageFromSpec(sky.image).then((image) => {\n if (!image)\n return false;\n\n return undefined !== IModelApp.renderSystem.createTexture({\n image: { source: image },\n ownership: { iModel: this._view.iModel, key: sky.image },\n });\n });\n }\n } else {\n load = () => this.createSkyGradientParams();\n }\n\n return { load, preload };\n }\n\n private createCubeImageKey(sky: SkyCube): string {\n const i = sky.images;\n return `skycube:${i.front}:${i.back}:${i.left}:${i.right}:${i.top}:${i.bottom}`;\n }\n\n private createSkyGradientParams(): RenderSkyBoxParams {\n return {\n type: \"gradient\",\n gradient: this._environment.sky.gradient,\n zOffset: this._view.iModel.globalOrigin.z,\n };\n }\n\n private async imageFromSpec(spec: TextureImageSpec): Promise<HTMLImageElement | undefined> {\n if (Id64.isValidId64(spec))\n return (await IModelApp.renderSystem.loadTextureImage(spec, this._view.iModel))?.image;\n\n return tryImageElementFromUrl(spec);\n }\n}\n"]}
1
+ {"version":3,"file":"EnvironmentDecorations.js","sourceRoot":"","sources":["../../src/EnvironmentDecorations.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 { assert, Id64 } from \"@itwin/core-bentley\";\nimport {\n ColorDef, Environment, Gradient, GraphicParams, RenderTexture, RenderTextureParams, SkyCube, SkySphere, TextureImageSpec, TextureMapping,\n} from \"@itwin/core-common\";\nimport { Point2d, Point3d, PolyfaceBuilder, StrokeOptions } from \"@itwin/core-geometry\";\nimport { tryImageElementFromUrl } from \"./common/ImageUtil\";\nimport { IModelApp } from \"./IModelApp\";\nimport { RenderGraphic } from \"./render/RenderGraphic\";\nimport { RenderSkyBoxParams } from \"./internal/render/RenderSkyBoxParams\";\nimport { DecorateContext } from \"./ViewContext\";\nimport { ViewState3d } from \"./ViewState\";\nimport { GraphicType } from \"./common/render/GraphicType\";\n\n/** @internal */\nexport interface GroundPlaneDecorations {\n readonly aboveParams: GraphicParams;\n readonly belowParams: GraphicParams;\n}\n\ninterface SkyBoxParamsLoader {\n // Invoke to obtain sky box params.\n load(): RenderSkyBoxParams | undefined;\n // If defined, await before invoking load().\n preload?: Promise<boolean>;\n}\n\n/** @internal */\nexport interface SkyBoxDecorations {\n params?: RenderSkyBoxParams;\n promise?: Promise<boolean>;\n}\n\n/** @internal */\nexport class EnvironmentDecorations {\n protected readonly _view: ViewState3d;\n protected readonly _onLoaded: () => void;\n protected readonly _onDispose: () => void;\n protected _environment: Environment;\n protected _ground?: GroundPlaneDecorations;\n protected _sky: SkyBoxDecorations;\n\n public constructor(view: ViewState3d, onLoaded: () => void, onDispose: () => void) {\n this._environment = view.displayStyle.environment;\n this._view = view;\n this._onLoaded = onLoaded;\n this._onDispose = onDispose;\n this._sky = {};\n this.loadSkyBox();\n if (this._environment.displayGround)\n this.loadGround();\n }\n\n public [Symbol.dispose](): void {\n this._ground = undefined;\n this._sky.params = this._sky.promise = undefined;\n\n this._onDispose();\n }\n\n public setEnvironment(env: Environment): void {\n const prev = this._environment;\n if (prev === env)\n return;\n\n this._environment = env;\n\n // Update ground plane\n if (!env.displayGround || env.ground !== prev.ground)\n this._ground = undefined;\n\n if (env.displayGround && !this._ground)\n this.loadGround();\n\n // Update sky box\n if (env.sky !== prev.sky)\n this.loadSkyBox();\n }\n\n public decorate(context: DecorateContext): void {\n const env = this._environment;\n\n let sky: RenderGraphic | undefined;\n if (env.displayAtmosphere) {\n sky = IModelApp.renderSystem.createSkyBox(this.createSkyGradientParams());\n } else if (env.displaySky && this._sky.params) {\n sky = IModelApp.renderSystem.createSkyBox(this._sky.params);\n }\n if (sky)\n context.setSkyBox(sky);\n\n if (!env.displayGround || !this._ground)\n return;\n\n const extents = this._view.getGroundExtents(context.viewport);\n if (extents.isNull)\n return;\n\n const points: Point3d[] = [extents.low.clone(), extents.low.clone(), extents.high.clone(), extents.high.clone()];\n points[1].x = extents.high.x;\n points[3].x = extents.low.x;\n\n const aboveGround = this._view.isEyePointAbove(extents.low.z);\n const params = aboveGround ? this._ground.aboveParams : this._ground.belowParams;\n const builder = context.createGraphicBuilder(GraphicType.WorldDecoration);\n builder.activateGraphicParams(params);\n\n const strokeOptions = new StrokeOptions();\n strokeOptions.needParams = true;\n const polyfaceBuilder = PolyfaceBuilder.create(strokeOptions);\n polyfaceBuilder.toggleReversedFacetFlag();\n const uvParams: Point2d[] = [Point2d.create(0, 0), Point2d.create(1, 0), Point2d.create(1, 1), Point2d.create(0, 1)];\n polyfaceBuilder.addQuadFacet(points, uvParams);\n const polyface = polyfaceBuilder.claimPolyface(false);\n\n builder.addPolyface(polyface, true);\n context.addDecorationFromBuilder(builder);\n }\n\n private loadGround(): void {\n assert(undefined === this._ground);\n const aboveParams = this.createGroundParams(true);\n const belowParams = this.createGroundParams(false);\n if (aboveParams && belowParams)\n this._ground = { aboveParams, belowParams };\n }\n\n private createGroundParams(above: boolean): GraphicParams | undefined {\n // Create a gradient texture.\n const ground = this._environment.ground;\n const values = [0, 0.25, 0.5];\n const color = above ? ground.aboveColor : ground.belowColor;\n const alpha = above ? 0x80 : 0x85;\n const groundColors = [color.withTransparency(0xff), color, color];\n groundColors[1] = groundColors[2] = color.withTransparency(alpha);\n\n const gradient = new Gradient.Symb();\n gradient.mode = Gradient.Mode.Spherical;\n gradient.keys = [{ color: groundColors[0], value: values[0] }, { color: groundColors[1], value: values[1] }, { color: groundColors[2], value: values[2] }];\n const texture = IModelApp.renderSystem.getGradientTexture(gradient, this._view.iModel);\n if (!texture)\n return undefined;\n\n // Create a material using the gradient texture\n const material = IModelApp.renderSystem.createRenderMaterial({\n diffuse: { color: ColorDef.white, weight: 0 },\n textureMapping: {\n texture,\n transform: new TextureMapping.Trans2x3(0, 1, 0, 1, 0, 0),\n },\n });\n\n if (!material)\n return undefined;\n\n // Create GraphicParams using the material.\n const params = new GraphicParams();\n params.lineColor = gradient.keys[0].color;\n params.fillColor = ColorDef.white; // Fill should be set to opaque white for gradient texture...\n params.material = material;\n\n return params;\n }\n\n private loadSkyBox(): void {\n const loader = this.loadSkyBoxParams();\n if (undefined === loader.preload) {\n this.setSky(loader.load());\n return;\n }\n\n const promise = loader.preload;\n this._sky.promise = promise;\n loader.preload.then((loaded) => {\n if (promise === this._sky.promise)\n this.setSky(loaded ? loader.load() : undefined);\n }).catch(() => {\n if (promise === this._sky.promise)\n this.setSky(undefined);\n });\n }\n\n private setSky(params: RenderSkyBoxParams | undefined): void {\n this._sky.promise = undefined;\n this._sky.params = params ?? this.createSkyGradientParams();\n this._onLoaded();\n }\n\n private loadSkyBoxParams(): SkyBoxParamsLoader {\n let load: (() => RenderSkyBoxParams | undefined);\n let preload: Promise<boolean> | undefined;\n\n const sky = this._environment.sky;\n if (sky instanceof SkyCube) {\n const key = this.createCubeImageKey(sky);\n load = () => {\n const texture = IModelApp.renderSystem.findTexture(key, this._view.iModel);\n return texture ? { type: \"cube\", texture } : undefined;\n };\n\n if (!IModelApp.renderSystem.findTexture(key, this._view.iModel)) {\n // Some faces may use the same image. Only request each image once.\n const promises = [];\n const specs = new Set<string>([sky.images.front, sky.images.back, sky.images.left, sky.images.right, sky.images.top, sky.images.bottom]);\n for (const spec of specs)\n promises.push(this.imageFromSpec(spec));\n\n preload = Promise.all(promises).then((images) => {\n const idToImage = new Map<TextureImageSpec, HTMLImageElement>();\n let index = 0;\n for (const spec of specs) {\n const image = images[index++];\n if (!image)\n return false;\n else\n idToImage.set(spec, image);\n }\n\n\n const params = new RenderTextureParams(key, RenderTexture.Type.SkyBox);\n // Note: idToImage is populated with all 6 directions. If any are missing, we return false,\n // preventing us from getting here. That makes the following non-null assertions safe.\n const txImgs = [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n idToImage.get(sky.images.front)!, idToImage.get(sky.images.back)!, idToImage.get(sky.images.top)!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n idToImage.get(sky.images.bottom)!, idToImage.get(sky.images.right)!, idToImage.get(sky.images.left)!,\n ];\n\n return undefined !== IModelApp.renderSystem.createTextureFromCubeImages(txImgs[0], txImgs[1], txImgs[2], txImgs[3], txImgs[4], txImgs[5], this._view.iModel, params);\n });\n }\n } else if (sky instanceof SkySphere) {\n load = () => {\n const texture = IModelApp.renderSystem.findTexture(sky.image, this._view.iModel);\n return texture ? {\n type: \"sphere\",\n texture,\n rotation: 0,\n zOffset: this._view.iModel.globalOrigin.z,\n } : undefined;\n };\n\n if (!IModelApp.renderSystem.findTexture(sky.image, this._view.iModel)) {\n preload = this.imageFromSpec(sky.image).then((image) => {\n if (!image)\n return false;\n\n return undefined !== IModelApp.renderSystem.createTexture({\n image: { source: image },\n ownership: { iModel: this._view.iModel, key: sky.image },\n });\n });\n }\n } else {\n load = () => this.createSkyGradientParams();\n }\n\n return { load, preload };\n }\n\n private createCubeImageKey(sky: SkyCube): string {\n const i = sky.images;\n return `skycube:${i.front}:${i.back}:${i.left}:${i.right}:${i.top}:${i.bottom}`;\n }\n\n private createSkyGradientParams(): RenderSkyBoxParams {\n return {\n type: \"gradient\",\n gradient: this._environment.sky.gradient,\n zOffset: this._view.iModel.globalOrigin.z,\n };\n }\n\n private async imageFromSpec(spec: TextureImageSpec): Promise<HTMLImageElement | undefined> {\n if (Id64.isValidId64(spec))\n return (await IModelApp.renderSystem.loadTextureImage(spec, this._view.iModel))?.image;\n\n return tryImageElementFromUrl(spec);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrustumAnimator.d.ts","sourceRoot":"","sources":["../../src/FrustumAnimator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAkClD;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAKpB,OAAO,EAAE,oBAAoB;IAJvD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAK;IAEtB,iEAAiE;gBACvC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ;IAkFjH,gBAAgB;IACT,OAAO;IAOd,gBAAgB;IACT,SAAS;CAOjB"}
1
+ {"version":3,"file":"FrustumAnimator.d.ts","sourceRoot":"","sources":["../../src/FrustumAnimator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAkClD;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAKpB,OAAO,EAAE,oBAAoB;IAJvD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAK;IAEtB,iEAAiE;gBACvC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ;IAkFjH,gBAAgB;IACT,OAAO;IAOd,gBAAgB;IACT,SAAS;CAOjB"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.FrustumAnimator = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
11
12
  const core_geometry_1 = require("@itwin/core-geometry");
12
13
  const core_common_1 = require("@itwin/core-common");
13
14
  const Viewport_1 = require("./Viewport");
@@ -61,7 +62,7 @@ class FrustumAnimator {
61
62
  const end3 = end;
62
63
  const beginTarget = begin.target;
63
64
  const endTarget = end.target;
64
- const axis = end.rotation.multiplyMatrixMatrixInverse(begin.rotation).getAxisAndAngleOfRotation(); // axis to rotate begin to get to end
65
+ const axis = (0, core_bentley_1.expectDefined)(end.rotation.multiplyMatrixMatrixInverse(begin.rotation)).getAxisAndAngleOfRotation(); // axis to rotate begin to get to end
65
66
  const timing = { fraction: 0.0, height: 0, position: 0 }; // updated by tween.
66
67
  // 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
67
68
  // is a linear interpolation from begin to end), or if it's disabled.
@@ -93,7 +94,7 @@ class FrustumAnimator {
93
94
  onComplete: () => viewport.setupFromView(end), // when we're done, set up from final state
94
95
  onUpdate: () => {
95
96
  const fraction = extentBias ? timing.position : timing.fraction; // if we're zooming, fraction comes from position interpolation
96
- const rot = core_geometry_1.Matrix3d.createRotationAroundVector(axis.axis, core_geometry_1.Angle.createDegrees(fraction * axis.angle.degrees)).multiplyMatrixMatrix(begin.rotation);
97
+ const rot = (0, core_bentley_1.expectDefined)(core_geometry_1.Matrix3d.createRotationAroundVector(axis.axis, core_geometry_1.Angle.createDegrees(fraction * axis.angle.degrees))).multiplyMatrixMatrix(begin.rotation);
97
98
  if (begin.cameraOn) {
98
99
  const newExtents = begin.extents.interpolate(fraction, end.extents);
99
100
  if (undefined !== eyeBias) {
@@ -1 +1 @@
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 { 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"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.GlobeAnimator = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
11
12
  const core_geometry_1 = require("@itwin/core-geometry");
12
13
  const core_common_1 = require("@itwin/core-common");
13
14
  const ViewGlobalLocation_1 = require("./ViewGlobalLocation");
@@ -49,7 +50,7 @@ class GlobeAnimator {
49
50
  return true;
50
51
  }
51
52
  // Possibly smooth the takeoff
52
- if (fraction < this._fixTakeoffFraction && this._fixTakeoffInterpolator !== undefined) {
53
+ if (this._fixTakeoffFraction !== undefined && fraction < this._fixTakeoffFraction && this._fixTakeoffInterpolator !== undefined) {
53
54
  this._moveFixToFraction((1.0 / this._fixTakeoffFraction) * fraction, this._fixTakeoffInterpolator);
54
55
  return false;
55
56
  }
@@ -59,7 +60,7 @@ class GlobeAnimator {
59
60
  const beforeLanding = vp.getWorldFrustum();
60
61
  this._fixLandingInterpolator = core_geometry_1.SmoothTransformBetweenFrusta.create(beforeLanding.points, this._afterLanding.points);
61
62
  }
62
- this._moveFixToFraction((1.0 / (1.0 - this._fixLandingFraction)) * (fraction - this._fixLandingFraction), this._fixLandingInterpolator);
63
+ this._moveFixToFraction((1.0 / (1.0 - this._fixLandingFraction)) * (fraction - this._fixLandingFraction), (0, core_bentley_1.expectDefined)(this._fixLandingInterpolator));
63
64
  return false;
64
65
  }
65
66
  // Set the camera based on a fraction along the flight arc
@@ -68,7 +69,7 @@ class GlobeAnimator {
68
69
  if (view.globeMode === core_common_1.GlobeMode.Plane)
69
70
  targetPoint = this._columbusLine[0].interpolate(fraction, this._columbusLine[1]);
70
71
  else
71
- targetPoint = this._ellipsoidArc.fractionToPoint(fraction);
72
+ targetPoint = (0, core_bentley_1.expectDefined)(this._ellipsoidArc).fractionToPoint(fraction);
72
73
  view.lookAtGlobalLocation(height, ViewGlobalLocation_1.ViewGlobalLocationConstants.birdPitchAngleRadians, undefined, targetPoint);
73
74
  vp.setupFromView();
74
75
  return false;
@@ -115,7 +116,7 @@ class GlobeAnimator {
115
116
  const backgroundMapGeometry = view.displayStyle.getBackgroundMapGeometry();
116
117
  if (undefined === backgroundMapGeometry)
117
118
  return;
118
- this._startHeight = (0, ViewGlobalLocation_1.eyeToCartographicOnGlobe)(this._viewport, true).height;
119
+ this._startHeight = (0, core_bentley_1.expectDefined)((0, ViewGlobalLocation_1.eyeToCartographicOnGlobe)(this._viewport, true)).height;
119
120
  this._endHeight = destination.area !== undefined ? (0, ViewGlobalLocation_1.areaToEyeHeight)(view, destination.area, destination.center.height) : ViewGlobalLocation_1.ViewGlobalLocationConstants.birdHeightAboveEarthInMeters;
120
121
  // Starting cartographic position is the eye projected onto the globe.
121
122
  let startCartographic = (0, ViewGlobalLocation_1.eyeToCartographicOnGlobe)(viewport);
@@ -126,8 +127,8 @@ class GlobeAnimator {
126
127
  let maxFlightDuration;
127
128
  if (view.globeMode === core_common_1.GlobeMode.Plane) {
128
129
  // Calculate a line segment going from the starting cartographic coordinate to the ending cartographic coordinate
129
- this._columbusLine.push(view.cartographicToRoot(startCartographic));
130
- this._columbusLine.push(view.cartographicToRoot(this._endLocation.center));
130
+ this._columbusLine.push((0, core_bentley_1.expectDefined)(view.cartographicToRoot(startCartographic)));
131
+ this._columbusLine.push((0, core_bentley_1.expectDefined)(view.cartographicToRoot(this._endLocation.center)));
131
132
  this._flightLength = this._columbusLine[0].distance(this._columbusLine[1]);
132
133
  // Set a shorter flight duration in Plane mode
133
134
  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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"}
@@ -386,13 +386,16 @@ class SnapDetail extends HitDetail {
386
386
  const builder = context.createGraphicBuilder(GraphicType_1.GraphicType.WorldOverlay);
387
387
  const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);
388
388
  const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);
389
- const path = core_geometry_1.Path.create(this.getCurvePrimitive(singleSegment));
390
- builder.setSymbology(outline, outline, 6);
391
- builder.addPath(path);
392
- builder.setSymbology(centerLine, centerLine, 2);
393
- builder.addPath(path);
394
- context.addDecorationFromBuilder(builder);
395
- return;
389
+ const curvePrimitive = this.getCurvePrimitive(singleSegment);
390
+ if (curvePrimitive !== undefined) {
391
+ const path = core_geometry_1.Path.create(curvePrimitive);
392
+ builder.setSymbology(outline, outline, 6);
393
+ builder.addPath(path);
394
+ builder.setSymbology(centerLine, centerLine, 2);
395
+ builder.addPath(path);
396
+ context.addDecorationFromBuilder(builder);
397
+ return;
398
+ }
396
399
  }
397
400
  super.draw(context);
398
401
  }
@@ -473,6 +476,8 @@ class HitList {
473
476
  setHit(i, p) {
474
477
  if (i < 0 || i >= this.length)
475
478
  return;
479
+ // While messy, the following is obviously intentional based on the function comment.
480
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
476
481
  this.hits[i] = p;
477
482
  }
478
483
  dropNulls() {