@itwin/core-common 5.0.0-dev.8 → 5.0.0-dev.83

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 (724) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/lib/cjs/AmbientOcclusion.js +17 -9
  3. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  4. package/lib/cjs/AnalysisStyle.d.ts +0 -3
  5. package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
  6. package/lib/cjs/AnalysisStyle.js +20 -4
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/Atmosphere.js +39 -21
  9. package/lib/cjs/Atmosphere.js.map +1 -1
  10. package/lib/cjs/BackgroundMapProvider.js +4 -0
  11. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  12. package/lib/cjs/BackgroundMapSettings.js +19 -0
  13. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  14. package/lib/cjs/BlobReader.js +8 -6
  15. package/lib/cjs/BlobReader.js.map +1 -1
  16. package/lib/cjs/BriefcaseTypes.d.ts +2 -2
  17. package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
  18. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  19. package/lib/cjs/Camera.js +3 -0
  20. package/lib/cjs/Camera.js.map +1 -1
  21. package/lib/cjs/ChangesetProps.d.ts +1 -1
  22. package/lib/cjs/ChangesetProps.js.map +1 -1
  23. package/lib/cjs/ClipStyle.js +31 -5
  24. package/lib/cjs/ClipStyle.js.map +1 -1
  25. package/lib/cjs/Code.d.ts +0 -5
  26. package/lib/cjs/Code.d.ts.map +1 -1
  27. package/lib/cjs/Code.js +16 -11
  28. package/lib/cjs/Code.js.map +1 -1
  29. package/lib/cjs/ColorDef.js +11 -10
  30. package/lib/cjs/ColorDef.js.map +1 -1
  31. package/lib/cjs/ConcurrentQuery.d.ts +37 -1
  32. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  33. package/lib/cjs/ConcurrentQuery.js +16 -3
  34. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  35. package/lib/cjs/ContextRealityModel.js +53 -27
  36. package/lib/cjs/ContextRealityModel.js.map +1 -1
  37. package/lib/cjs/ContourDisplay.js +40 -5
  38. package/lib/cjs/ContourDisplay.js.map +1 -1
  39. package/lib/cjs/DisplayStyleSettings.js +95 -63
  40. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  41. package/lib/cjs/ECSqlReader.d.ts +2 -0
  42. package/lib/cjs/ECSqlReader.d.ts.map +1 -1
  43. package/lib/cjs/ECSqlReader.js +56 -50
  44. package/lib/cjs/ECSqlReader.js.map +1 -1
  45. package/lib/cjs/ElementProps.d.ts.map +1 -1
  46. package/lib/cjs/ElementProps.js +7 -3
  47. package/lib/cjs/ElementProps.js.map +1 -1
  48. package/lib/cjs/EntityProps.js +31 -0
  49. package/lib/cjs/EntityProps.js.map +1 -1
  50. package/lib/cjs/Environment.js +25 -2
  51. package/lib/cjs/Environment.js.map +1 -1
  52. package/lib/cjs/FeatureIndex.js +15 -6
  53. package/lib/cjs/FeatureIndex.js.map +1 -1
  54. package/lib/cjs/FeatureSymbology.d.ts +25 -73
  55. package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
  56. package/lib/cjs/FeatureSymbology.js +88 -103
  57. package/lib/cjs/FeatureSymbology.js.map +1 -1
  58. package/lib/cjs/FeatureTable.d.ts +6 -108
  59. package/lib/cjs/FeatureTable.d.ts.map +1 -1
  60. package/lib/cjs/FeatureTable.js +13 -329
  61. package/lib/cjs/FeatureTable.js.map +1 -1
  62. package/lib/cjs/Fonts.d.ts +68 -10
  63. package/lib/cjs/Fonts.d.ts.map +1 -1
  64. package/lib/cjs/Fonts.js +19 -4
  65. package/lib/cjs/Fonts.js.map +1 -1
  66. package/lib/cjs/Frustum.js +2 -2
  67. package/lib/cjs/Frustum.js.map +1 -1
  68. package/lib/cjs/GeoCoordinateServices.d.ts +1 -0
  69. package/lib/cjs/GeoCoordinateServices.d.ts.map +1 -1
  70. package/lib/cjs/GeoCoordinateServices.js +2 -1
  71. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  72. package/lib/cjs/GeometryParams.js +58 -0
  73. package/lib/cjs/GeometryParams.js.map +1 -1
  74. package/lib/cjs/Gradient.d.ts +3 -4
  75. package/lib/cjs/Gradient.d.ts.map +1 -1
  76. package/lib/cjs/Gradient.js +21 -19
  77. package/lib/cjs/Gradient.js.map +1 -1
  78. package/lib/cjs/GraphicParams.js +14 -12
  79. package/lib/cjs/GraphicParams.js.map +1 -1
  80. package/lib/cjs/GroundPlane.js +8 -2
  81. package/lib/cjs/GroundPlane.js.map +1 -1
  82. package/lib/cjs/HSLColor.js +6 -0
  83. package/lib/cjs/HSLColor.js.map +1 -1
  84. package/lib/cjs/HSVColor.js +6 -0
  85. package/lib/cjs/HSVColor.js.map +1 -1
  86. package/lib/cjs/HiddenLine.d.ts +17 -18
  87. package/lib/cjs/HiddenLine.d.ts.map +1 -1
  88. package/lib/cjs/HiddenLine.js +24 -5
  89. package/lib/cjs/HiddenLine.js.map +1 -1
  90. package/lib/cjs/Hilite.js +10 -0
  91. package/lib/cjs/Hilite.js.map +1 -1
  92. package/lib/cjs/IModel.d.ts +3 -12
  93. package/lib/cjs/IModel.d.ts.map +1 -1
  94. package/lib/cjs/IModel.js +47 -23
  95. package/lib/cjs/IModel.js.map +1 -1
  96. package/lib/cjs/IModelError.d.ts +0 -2
  97. package/lib/cjs/IModelError.d.ts.map +1 -1
  98. package/lib/cjs/IModelError.js +3 -8
  99. package/lib/cjs/IModelError.js.map +1 -1
  100. package/lib/cjs/IModelVersion.js +4 -0
  101. package/lib/cjs/IModelVersion.js.map +1 -1
  102. package/lib/cjs/ITwinError.d.ts +63 -27
  103. package/lib/cjs/ITwinError.d.ts.map +1 -1
  104. package/lib/cjs/ITwinError.js +93 -45
  105. package/lib/cjs/ITwinError.js.map +1 -1
  106. package/lib/cjs/Image.d.ts +22 -8
  107. package/lib/cjs/Image.d.ts.map +1 -1
  108. package/lib/cjs/Image.js +20 -4
  109. package/lib/cjs/Image.js.map +1 -1
  110. package/lib/cjs/IpcAppProps.d.ts +2 -0
  111. package/lib/cjs/IpcAppProps.d.ts.map +1 -1
  112. package/lib/cjs/IpcAppProps.js.map +1 -1
  113. package/lib/cjs/LightSettings.js +39 -1
  114. package/lib/cjs/LightSettings.js.map +1 -1
  115. package/lib/cjs/Localization.d.ts +0 -10
  116. package/lib/cjs/Localization.d.ts.map +1 -1
  117. package/lib/cjs/Localization.js +0 -1
  118. package/lib/cjs/Localization.js.map +1 -1
  119. package/lib/cjs/MapImagerySettings.js +3 -2
  120. package/lib/cjs/MapImagerySettings.js.map +1 -1
  121. package/lib/cjs/MapLayerSettings.d.ts +20 -0
  122. package/lib/cjs/MapLayerSettings.d.ts.map +1 -1
  123. package/lib/cjs/MapLayerSettings.js +50 -1
  124. package/lib/cjs/MapLayerSettings.js.map +1 -1
  125. package/lib/cjs/MassProperties.d.ts +2 -0
  126. package/lib/cjs/MassProperties.d.ts.map +1 -1
  127. package/lib/cjs/MassProperties.js.map +1 -1
  128. package/lib/cjs/ModelClipGroup.js +6 -0
  129. package/lib/cjs/ModelClipGroup.js.map +1 -1
  130. package/lib/cjs/OctEncodedNormal.js +4 -0
  131. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  132. package/lib/cjs/PlanProjectionSettings.d.ts +1 -2
  133. package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
  134. package/lib/cjs/PlanProjectionSettings.js +8 -1
  135. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  136. package/lib/cjs/PlanarClipMask.d.ts +0 -12
  137. package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
  138. package/lib/cjs/PlanarClipMask.js +24 -2
  139. package/lib/cjs/PlanarClipMask.js.map +1 -1
  140. package/lib/cjs/QPoint.d.ts +5 -5
  141. package/lib/cjs/QPoint.d.ts.map +1 -1
  142. package/lib/cjs/QPoint.js +37 -29
  143. package/lib/cjs/QPoint.js.map +1 -1
  144. package/lib/cjs/RealityModelDisplaySettings.js +81 -4
  145. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  146. package/lib/cjs/RenderMaterial.d.ts +0 -43
  147. package/lib/cjs/RenderMaterial.d.ts.map +1 -1
  148. package/lib/cjs/RenderMaterial.js +6 -51
  149. package/lib/cjs/RenderMaterial.js.map +1 -1
  150. package/lib/cjs/RenderPolyline.d.ts +36 -0
  151. package/lib/cjs/RenderPolyline.d.ts.map +1 -0
  152. package/lib/cjs/RenderPolyline.js +26 -0
  153. package/lib/cjs/RenderPolyline.js.map +1 -0
  154. package/lib/cjs/RenderSchedule.d.ts +1 -2
  155. package/lib/cjs/RenderSchedule.d.ts.map +1 -1
  156. package/lib/cjs/RenderSchedule.js +138 -11
  157. package/lib/cjs/RenderSchedule.js.map +1 -1
  158. package/lib/cjs/RenderTexture.d.ts +5 -23
  159. package/lib/cjs/RenderTexture.d.ts.map +1 -1
  160. package/lib/cjs/RenderTexture.js +13 -16
  161. package/lib/cjs/RenderTexture.js.map +1 -1
  162. package/lib/cjs/RgbColor.js +3 -0
  163. package/lib/cjs/RgbColor.js.map +1 -1
  164. package/lib/cjs/RpcInterface.d.ts.map +1 -1
  165. package/lib/cjs/RpcInterface.js +7 -1
  166. package/lib/cjs/RpcInterface.js.map +1 -1
  167. package/lib/cjs/SkyBox.js +17 -4
  168. package/lib/cjs/SkyBox.js.map +1 -1
  169. package/lib/cjs/SolarShadows.js +5 -1
  170. package/lib/cjs/SolarShadows.js.map +1 -1
  171. package/lib/cjs/SpatialClassification.js +19 -1
  172. package/lib/cjs/SpatialClassification.js.map +1 -1
  173. package/lib/cjs/SubCategoryAppearance.js +35 -1
  174. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  175. package/lib/cjs/SubCategoryOverride.js +16 -2
  176. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  177. package/lib/cjs/TerrainSettings.d.ts +0 -7
  178. package/lib/cjs/TerrainSettings.d.ts.map +1 -1
  179. package/lib/cjs/TerrainSettings.js +19 -0
  180. package/lib/cjs/TerrainSettings.js.map +1 -1
  181. package/lib/cjs/TextureMapping.d.ts +17 -14
  182. package/lib/cjs/TextureMapping.d.ts.map +1 -1
  183. package/lib/cjs/TextureMapping.js +47 -19
  184. package/lib/cjs/TextureMapping.js.map +1 -1
  185. package/lib/cjs/ThematicDisplay.js +53 -2
  186. package/lib/cjs/ThematicDisplay.js.map +1 -1
  187. package/lib/cjs/Thumbnail.d.ts +1 -1
  188. package/lib/cjs/Thumbnail.js.map +1 -1
  189. package/lib/cjs/Tween.js +28 -19
  190. package/lib/cjs/Tween.js.map +1 -1
  191. package/lib/cjs/ViewDetails.js +10 -6
  192. package/lib/cjs/ViewDetails.js.map +1 -1
  193. package/lib/cjs/ViewFlags.d.ts +1 -3
  194. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  195. package/lib/cjs/ViewFlags.js +86 -5
  196. package/lib/cjs/ViewFlags.js.map +1 -1
  197. package/lib/cjs/ViewProps.d.ts +0 -4
  198. package/lib/cjs/ViewProps.d.ts.map +1 -1
  199. package/lib/cjs/ViewProps.js.map +1 -1
  200. package/lib/cjs/WhiteOnWhiteReversalSettings.js +7 -2
  201. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  202. package/lib/cjs/annotation/TextAnnotation.js +10 -0
  203. package/lib/cjs/annotation/TextAnnotation.js.map +1 -1
  204. package/lib/cjs/annotation/TextBlock.js +27 -6
  205. package/lib/cjs/annotation/TextBlock.js.map +1 -1
  206. package/lib/cjs/annotation/TextStyle.js +65 -19
  207. package/lib/cjs/annotation/TextStyle.js.map +1 -1
  208. package/lib/cjs/core-common.d.ts +1 -2
  209. package/lib/cjs/core-common.d.ts.map +1 -1
  210. package/lib/cjs/core-common.js +1 -2
  211. package/lib/cjs/core-common.js.map +1 -1
  212. package/lib/cjs/geometry/AdditionalTransform.js +12 -0
  213. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  214. package/lib/cjs/geometry/AreaPattern.js +17 -0
  215. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  216. package/lib/cjs/geometry/BoundingSphere.js +4 -0
  217. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  218. package/lib/cjs/geometry/Cartographic.js +23 -20
  219. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  220. package/lib/cjs/geometry/CoordinateReferenceSystem.js +62 -0
  221. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  222. package/lib/cjs/geometry/ElementGeometry.js +26 -8
  223. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  224. package/lib/cjs/geometry/ElementGeometryFB.js +54 -108
  225. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  226. package/lib/cjs/geometry/FrustumPlanes.js +1 -0
  227. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  228. package/lib/cjs/geometry/GeodeticDatum.js +100 -0
  229. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  230. package/lib/cjs/geometry/GeodeticEllipsoid.js +16 -0
  231. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  232. package/lib/cjs/geometry/GeometryStream.js +19 -6
  233. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  234. package/lib/cjs/geometry/ImageGraphic.js +10 -0
  235. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  236. package/lib/cjs/geometry/LineStyle.js +14 -0
  237. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  238. package/lib/cjs/geometry/Placement.js +6 -0
  239. package/lib/cjs/geometry/Placement.js.map +1 -1
  240. package/lib/cjs/geometry/Projection.js +75 -0
  241. package/lib/cjs/geometry/Projection.js.map +1 -1
  242. package/lib/cjs/geometry/TextString.js +18 -0
  243. package/lib/cjs/geometry/TextString.js.map +1 -1
  244. package/lib/cjs/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
  245. package/lib/cjs/internal/BackendTypes.d.ts.map +1 -0
  246. package/lib/cjs/internal/BackendTypes.js.map +1 -0
  247. package/lib/cjs/internal/PackedFeatureTable.d.ts +111 -0
  248. package/lib/cjs/internal/PackedFeatureTable.d.ts.map +1 -0
  249. package/lib/cjs/internal/PackedFeatureTable.js +359 -0
  250. package/lib/cjs/internal/PackedFeatureTable.js.map +1 -0
  251. package/lib/cjs/internal/RenderMaterialParams.d.ts +47 -0
  252. package/lib/cjs/internal/RenderMaterialParams.d.ts.map +1 -0
  253. package/lib/cjs/internal/RenderMaterialParams.js +68 -0
  254. package/lib/cjs/internal/RenderMaterialParams.js.map +1 -0
  255. package/lib/cjs/internal/RenderMesh.d.ts +52 -0
  256. package/lib/cjs/internal/RenderMesh.d.ts.map +1 -0
  257. package/lib/cjs/{Render.js → internal/RenderMesh.js} +12 -31
  258. package/lib/cjs/internal/RenderMesh.js.map +1 -0
  259. package/lib/cjs/internal/RenderTextureParams.d.ts +25 -0
  260. package/lib/cjs/internal/RenderTextureParams.d.ts.map +1 -0
  261. package/lib/cjs/internal/RenderTextureParams.js +37 -0
  262. package/lib/cjs/internal/RenderTextureParams.js.map +1 -0
  263. package/lib/cjs/internal/cross-package.d.ts +5 -0
  264. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  265. package/lib/cjs/internal/cross-package.js +16 -0
  266. package/lib/cjs/internal/cross-package.js.map +1 -1
  267. package/lib/cjs/ipc/IpcSession.js +1 -0
  268. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  269. package/lib/cjs/ipc/IpcSocket.d.ts +3 -0
  270. package/lib/cjs/ipc/IpcSocket.d.ts.map +1 -1
  271. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  272. package/lib/cjs/ipc/IpcWebSocket.js +7 -6
  273. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  274. package/lib/cjs/ipc/IpcWebSocketTransport.js +8 -7
  275. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  276. package/lib/cjs/rpc/DevToolsRpcInterface.js +6 -6
  277. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  278. package/lib/cjs/rpc/IModelReadRpcInterface.js +8 -11
  279. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  280. package/lib/cjs/rpc/IModelTileRpcInterface.js +4 -4
  281. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  282. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +4 -4
  283. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  284. package/lib/cjs/rpc/TestRpcManager.js +1 -4
  285. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  286. package/lib/cjs/rpc/core/RpcConfiguration.js +51 -64
  287. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  288. package/lib/cjs/rpc/core/RpcControl.js +29 -38
  289. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  290. package/lib/cjs/rpc/core/RpcInvocation.js +19 -13
  291. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  292. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +1 -4
  293. package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
  294. package/lib/cjs/rpc/core/RpcMarshaling.js +5 -4
  295. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  296. package/lib/cjs/rpc/core/RpcOperation.js +29 -31
  297. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  298. package/lib/cjs/rpc/core/RpcPendingQueue.js +17 -16
  299. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  300. package/lib/cjs/rpc/core/RpcProtocol.js +32 -30
  301. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  302. package/lib/cjs/rpc/core/RpcPush.js +15 -8
  303. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  304. package/lib/cjs/rpc/core/RpcRegistry.d.ts.map +1 -1
  305. package/lib/cjs/rpc/core/RpcRegistry.js +10 -9
  306. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  307. package/lib/cjs/rpc/core/RpcRequest.d.ts +2 -2
  308. package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
  309. package/lib/cjs/rpc/core/RpcRequest.js +51 -29
  310. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  311. package/lib/cjs/rpc/core/RpcRoutingToken.js +4 -2
  312. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  313. package/lib/cjs/rpc/core/RpcSessionInvocation.js +5 -10
  314. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  315. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +11 -17
  316. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  317. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +16 -19
  318. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  319. package/lib/cjs/rpc/web/OpenAPI.js +2 -0
  320. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  321. package/lib/cjs/rpc/web/RpcMultipart.d.ts +1 -1
  322. package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
  323. package/lib/cjs/rpc/web/RpcMultipart.js +13 -12
  324. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  325. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +3 -0
  326. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  327. package/lib/cjs/rpc/web/WebAppRpcLogging.js +1 -6
  328. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  329. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +1 -1
  330. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  331. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +6 -6
  332. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  333. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  334. package/lib/cjs/rpc/web/WebAppRpcRequest.js +27 -27
  335. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  336. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
  337. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  338. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +14 -8
  339. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  340. package/lib/cjs/tile/B3dmTileIO.js +7 -0
  341. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  342. package/lib/cjs/tile/CompositeTileIO.js +3 -0
  343. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  344. package/lib/cjs/tile/GltfTileIO.js +4 -3
  345. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  346. package/lib/cjs/tile/I3dmTileIO.js +8 -0
  347. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  348. package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
  349. package/lib/cjs/tile/IModelTileIO.js +26 -3
  350. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  351. package/lib/cjs/tile/PntsTileIO.js +5 -0
  352. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  353. package/lib/cjs/tile/TileIO.js +2 -0
  354. package/lib/cjs/tile/TileIO.js.map +1 -1
  355. package/lib/cjs/tile/TileMetadata.js +9 -1
  356. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  357. package/lib/esm/AmbientOcclusion.js +17 -9
  358. package/lib/esm/AmbientOcclusion.js.map +1 -1
  359. package/lib/esm/AnalysisStyle.d.ts +0 -3
  360. package/lib/esm/AnalysisStyle.d.ts.map +1 -1
  361. package/lib/esm/AnalysisStyle.js +20 -4
  362. package/lib/esm/AnalysisStyle.js.map +1 -1
  363. package/lib/esm/Atmosphere.js +39 -21
  364. package/lib/esm/Atmosphere.js.map +1 -1
  365. package/lib/esm/BackgroundMapProvider.js +4 -0
  366. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  367. package/lib/esm/BackgroundMapSettings.js +19 -0
  368. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  369. package/lib/esm/BlobReader.js +8 -6
  370. package/lib/esm/BlobReader.js.map +1 -1
  371. package/lib/esm/BriefcaseTypes.d.ts +2 -2
  372. package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
  373. package/lib/esm/BriefcaseTypes.js.map +1 -1
  374. package/lib/esm/Camera.js +3 -0
  375. package/lib/esm/Camera.js.map +1 -1
  376. package/lib/esm/ChangesetProps.d.ts +1 -1
  377. package/lib/esm/ChangesetProps.js.map +1 -1
  378. package/lib/esm/ClipStyle.js +31 -5
  379. package/lib/esm/ClipStyle.js.map +1 -1
  380. package/lib/esm/Code.d.ts +0 -5
  381. package/lib/esm/Code.d.ts.map +1 -1
  382. package/lib/esm/Code.js +16 -11
  383. package/lib/esm/Code.js.map +1 -1
  384. package/lib/esm/ColorDef.js +11 -10
  385. package/lib/esm/ColorDef.js.map +1 -1
  386. package/lib/esm/ConcurrentQuery.d.ts +37 -1
  387. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  388. package/lib/esm/ConcurrentQuery.js +16 -3
  389. package/lib/esm/ConcurrentQuery.js.map +1 -1
  390. package/lib/esm/ContextRealityModel.js +53 -27
  391. package/lib/esm/ContextRealityModel.js.map +1 -1
  392. package/lib/esm/ContourDisplay.js +40 -5
  393. package/lib/esm/ContourDisplay.js.map +1 -1
  394. package/lib/esm/DisplayStyleSettings.js +95 -63
  395. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  396. package/lib/esm/ECSqlReader.d.ts +2 -0
  397. package/lib/esm/ECSqlReader.d.ts.map +1 -1
  398. package/lib/esm/ECSqlReader.js +56 -50
  399. package/lib/esm/ECSqlReader.js.map +1 -1
  400. package/lib/esm/ElementProps.d.ts.map +1 -1
  401. package/lib/esm/ElementProps.js +8 -4
  402. package/lib/esm/ElementProps.js.map +1 -1
  403. package/lib/esm/EntityProps.js +31 -0
  404. package/lib/esm/EntityProps.js.map +1 -1
  405. package/lib/esm/Environment.js +25 -2
  406. package/lib/esm/Environment.js.map +1 -1
  407. package/lib/esm/FeatureIndex.js +15 -6
  408. package/lib/esm/FeatureIndex.js.map +1 -1
  409. package/lib/esm/FeatureSymbology.d.ts +25 -73
  410. package/lib/esm/FeatureSymbology.d.ts.map +1 -1
  411. package/lib/esm/FeatureSymbology.js +88 -103
  412. package/lib/esm/FeatureSymbology.js.map +1 -1
  413. package/lib/esm/FeatureTable.d.ts +6 -108
  414. package/lib/esm/FeatureTable.d.ts.map +1 -1
  415. package/lib/esm/FeatureTable.js +11 -324
  416. package/lib/esm/FeatureTable.js.map +1 -1
  417. package/lib/esm/Fonts.d.ts +68 -10
  418. package/lib/esm/Fonts.d.ts.map +1 -1
  419. package/lib/esm/Fonts.js +19 -4
  420. package/lib/esm/Fonts.js.map +1 -1
  421. package/lib/esm/Frustum.js +2 -2
  422. package/lib/esm/Frustum.js.map +1 -1
  423. package/lib/esm/GeoCoordinateServices.d.ts +1 -0
  424. package/lib/esm/GeoCoordinateServices.d.ts.map +1 -1
  425. package/lib/esm/GeoCoordinateServices.js +2 -1
  426. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  427. package/lib/esm/GeometryParams.js +58 -0
  428. package/lib/esm/GeometryParams.js.map +1 -1
  429. package/lib/esm/Gradient.d.ts +3 -4
  430. package/lib/esm/Gradient.d.ts.map +1 -1
  431. package/lib/esm/Gradient.js +21 -19
  432. package/lib/esm/Gradient.js.map +1 -1
  433. package/lib/esm/GraphicParams.js +14 -12
  434. package/lib/esm/GraphicParams.js.map +1 -1
  435. package/lib/esm/GroundPlane.js +8 -2
  436. package/lib/esm/GroundPlane.js.map +1 -1
  437. package/lib/esm/HSLColor.js +6 -0
  438. package/lib/esm/HSLColor.js.map +1 -1
  439. package/lib/esm/HSVColor.js +6 -0
  440. package/lib/esm/HSVColor.js.map +1 -1
  441. package/lib/esm/HiddenLine.d.ts +17 -18
  442. package/lib/esm/HiddenLine.d.ts.map +1 -1
  443. package/lib/esm/HiddenLine.js +24 -5
  444. package/lib/esm/HiddenLine.js.map +1 -1
  445. package/lib/esm/Hilite.js +10 -0
  446. package/lib/esm/Hilite.js.map +1 -1
  447. package/lib/esm/IModel.d.ts +3 -12
  448. package/lib/esm/IModel.d.ts.map +1 -1
  449. package/lib/esm/IModel.js +47 -23
  450. package/lib/esm/IModel.js.map +1 -1
  451. package/lib/esm/IModelError.d.ts +0 -2
  452. package/lib/esm/IModelError.d.ts.map +1 -1
  453. package/lib/esm/IModelError.js +2 -1
  454. package/lib/esm/IModelError.js.map +1 -1
  455. package/lib/esm/IModelVersion.js +4 -0
  456. package/lib/esm/IModelVersion.js.map +1 -1
  457. package/lib/esm/ITwinError.d.ts +63 -27
  458. package/lib/esm/ITwinError.d.ts.map +1 -1
  459. package/lib/esm/ITwinError.js +87 -44
  460. package/lib/esm/ITwinError.js.map +1 -1
  461. package/lib/esm/Image.d.ts +22 -8
  462. package/lib/esm/Image.d.ts.map +1 -1
  463. package/lib/esm/Image.js +19 -4
  464. package/lib/esm/Image.js.map +1 -1
  465. package/lib/esm/IpcAppProps.d.ts +2 -0
  466. package/lib/esm/IpcAppProps.d.ts.map +1 -1
  467. package/lib/esm/IpcAppProps.js.map +1 -1
  468. package/lib/esm/LightSettings.js +39 -1
  469. package/lib/esm/LightSettings.js.map +1 -1
  470. package/lib/esm/Localization.d.ts +0 -10
  471. package/lib/esm/Localization.d.ts.map +1 -1
  472. package/lib/esm/Localization.js +0 -1
  473. package/lib/esm/Localization.js.map +1 -1
  474. package/lib/esm/MapImagerySettings.js +3 -2
  475. package/lib/esm/MapImagerySettings.js.map +1 -1
  476. package/lib/esm/MapLayerSettings.d.ts +20 -0
  477. package/lib/esm/MapLayerSettings.d.ts.map +1 -1
  478. package/lib/esm/MapLayerSettings.js +50 -1
  479. package/lib/esm/MapLayerSettings.js.map +1 -1
  480. package/lib/esm/MassProperties.d.ts +2 -0
  481. package/lib/esm/MassProperties.d.ts.map +1 -1
  482. package/lib/esm/MassProperties.js.map +1 -1
  483. package/lib/esm/ModelClipGroup.js +6 -0
  484. package/lib/esm/ModelClipGroup.js.map +1 -1
  485. package/lib/esm/OctEncodedNormal.js +4 -0
  486. package/lib/esm/OctEncodedNormal.js.map +1 -1
  487. package/lib/esm/PlanProjectionSettings.d.ts +1 -2
  488. package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
  489. package/lib/esm/PlanProjectionSettings.js +8 -1
  490. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  491. package/lib/esm/PlanarClipMask.d.ts +0 -12
  492. package/lib/esm/PlanarClipMask.d.ts.map +1 -1
  493. package/lib/esm/PlanarClipMask.js +24 -2
  494. package/lib/esm/PlanarClipMask.js.map +1 -1
  495. package/lib/esm/QPoint.d.ts +5 -5
  496. package/lib/esm/QPoint.d.ts.map +1 -1
  497. package/lib/esm/QPoint.js +37 -29
  498. package/lib/esm/QPoint.js.map +1 -1
  499. package/lib/esm/RealityModelDisplaySettings.js +81 -4
  500. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  501. package/lib/esm/RenderMaterial.d.ts +0 -43
  502. package/lib/esm/RenderMaterial.d.ts.map +1 -1
  503. package/lib/esm/RenderMaterial.js +6 -51
  504. package/lib/esm/RenderMaterial.js.map +1 -1
  505. package/lib/esm/RenderPolyline.d.ts +36 -0
  506. package/lib/esm/RenderPolyline.d.ts.map +1 -0
  507. package/lib/esm/RenderPolyline.js +23 -0
  508. package/lib/esm/RenderPolyline.js.map +1 -0
  509. package/lib/esm/RenderSchedule.d.ts +1 -2
  510. package/lib/esm/RenderSchedule.d.ts.map +1 -1
  511. package/lib/esm/RenderSchedule.js +138 -11
  512. package/lib/esm/RenderSchedule.js.map +1 -1
  513. package/lib/esm/RenderTexture.d.ts +5 -23
  514. package/lib/esm/RenderTexture.d.ts.map +1 -1
  515. package/lib/esm/RenderTexture.js +13 -16
  516. package/lib/esm/RenderTexture.js.map +1 -1
  517. package/lib/esm/RgbColor.js +3 -0
  518. package/lib/esm/RgbColor.js.map +1 -1
  519. package/lib/esm/RpcInterface.d.ts.map +1 -1
  520. package/lib/esm/RpcInterface.js +8 -2
  521. package/lib/esm/RpcInterface.js.map +1 -1
  522. package/lib/esm/SkyBox.js +17 -4
  523. package/lib/esm/SkyBox.js.map +1 -1
  524. package/lib/esm/SolarShadows.js +5 -1
  525. package/lib/esm/SolarShadows.js.map +1 -1
  526. package/lib/esm/SpatialClassification.js +19 -1
  527. package/lib/esm/SpatialClassification.js.map +1 -1
  528. package/lib/esm/SubCategoryAppearance.js +35 -1
  529. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  530. package/lib/esm/SubCategoryOverride.js +16 -2
  531. package/lib/esm/SubCategoryOverride.js.map +1 -1
  532. package/lib/esm/TerrainSettings.d.ts +0 -7
  533. package/lib/esm/TerrainSettings.d.ts.map +1 -1
  534. package/lib/esm/TerrainSettings.js +19 -0
  535. package/lib/esm/TerrainSettings.js.map +1 -1
  536. package/lib/esm/TextureMapping.d.ts +17 -14
  537. package/lib/esm/TextureMapping.d.ts.map +1 -1
  538. package/lib/esm/TextureMapping.js +47 -19
  539. package/lib/esm/TextureMapping.js.map +1 -1
  540. package/lib/esm/ThematicDisplay.js +53 -2
  541. package/lib/esm/ThematicDisplay.js.map +1 -1
  542. package/lib/esm/Thumbnail.d.ts +1 -1
  543. package/lib/esm/Thumbnail.js.map +1 -1
  544. package/lib/esm/Tween.js +28 -19
  545. package/lib/esm/Tween.js.map +1 -1
  546. package/lib/esm/ViewDetails.js +10 -6
  547. package/lib/esm/ViewDetails.js.map +1 -1
  548. package/lib/esm/ViewFlags.d.ts +1 -3
  549. package/lib/esm/ViewFlags.d.ts.map +1 -1
  550. package/lib/esm/ViewFlags.js +86 -5
  551. package/lib/esm/ViewFlags.js.map +1 -1
  552. package/lib/esm/ViewProps.d.ts +0 -4
  553. package/lib/esm/ViewProps.d.ts.map +1 -1
  554. package/lib/esm/ViewProps.js.map +1 -1
  555. package/lib/esm/WhiteOnWhiteReversalSettings.js +7 -2
  556. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  557. package/lib/esm/annotation/TextAnnotation.js +10 -0
  558. package/lib/esm/annotation/TextAnnotation.js.map +1 -1
  559. package/lib/esm/annotation/TextBlock.js +27 -6
  560. package/lib/esm/annotation/TextBlock.js.map +1 -1
  561. package/lib/esm/annotation/TextStyle.js +65 -19
  562. package/lib/esm/annotation/TextStyle.js.map +1 -1
  563. package/lib/esm/core-common.d.ts +1 -2
  564. package/lib/esm/core-common.d.ts.map +1 -1
  565. package/lib/esm/core-common.js +1 -2
  566. package/lib/esm/core-common.js.map +1 -1
  567. package/lib/esm/geometry/AdditionalTransform.js +12 -0
  568. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  569. package/lib/esm/geometry/AreaPattern.js +17 -0
  570. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  571. package/lib/esm/geometry/BoundingSphere.js +4 -0
  572. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  573. package/lib/esm/geometry/Cartographic.js +23 -20
  574. package/lib/esm/geometry/Cartographic.js.map +1 -1
  575. package/lib/esm/geometry/CoordinateReferenceSystem.js +62 -0
  576. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  577. package/lib/esm/geometry/ElementGeometry.js +26 -8
  578. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  579. package/lib/esm/geometry/ElementGeometryFB.js +54 -108
  580. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  581. package/lib/esm/geometry/FrustumPlanes.js +1 -0
  582. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  583. package/lib/esm/geometry/GeodeticDatum.js +100 -0
  584. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  585. package/lib/esm/geometry/GeodeticEllipsoid.js +16 -0
  586. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  587. package/lib/esm/geometry/GeometryStream.js +19 -6
  588. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  589. package/lib/esm/geometry/ImageGraphic.js +10 -0
  590. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  591. package/lib/esm/geometry/LineStyle.js +14 -0
  592. package/lib/esm/geometry/LineStyle.js.map +1 -1
  593. package/lib/esm/geometry/Placement.js +6 -0
  594. package/lib/esm/geometry/Placement.js.map +1 -1
  595. package/lib/esm/geometry/Projection.js +75 -0
  596. package/lib/esm/geometry/Projection.js.map +1 -1
  597. package/lib/esm/geometry/TextString.js +18 -0
  598. package/lib/esm/geometry/TextString.js.map +1 -1
  599. package/lib/esm/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
  600. package/lib/esm/internal/BackendTypes.d.ts.map +1 -0
  601. package/lib/esm/internal/BackendTypes.js.map +1 -0
  602. package/lib/esm/internal/PackedFeatureTable.d.ts +111 -0
  603. package/lib/esm/internal/PackedFeatureTable.d.ts.map +1 -0
  604. package/lib/esm/internal/PackedFeatureTable.js +352 -0
  605. package/lib/esm/internal/PackedFeatureTable.js.map +1 -0
  606. package/lib/esm/internal/RenderMaterialParams.d.ts +47 -0
  607. package/lib/esm/internal/RenderMaterialParams.d.ts.map +1 -0
  608. package/lib/esm/internal/RenderMaterialParams.js +64 -0
  609. package/lib/esm/internal/RenderMaterialParams.js.map +1 -0
  610. package/lib/esm/internal/RenderMesh.d.ts +52 -0
  611. package/lib/esm/internal/RenderMesh.d.ts.map +1 -0
  612. package/lib/esm/{Render.js → internal/RenderMesh.js} +11 -29
  613. package/lib/esm/internal/RenderMesh.js.map +1 -0
  614. package/lib/esm/internal/RenderTextureParams.d.ts +25 -0
  615. package/lib/esm/internal/RenderTextureParams.d.ts.map +1 -0
  616. package/lib/esm/internal/RenderTextureParams.js +33 -0
  617. package/lib/esm/internal/RenderTextureParams.js.map +1 -0
  618. package/lib/esm/internal/cross-package.d.ts +5 -0
  619. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  620. package/lib/esm/internal/cross-package.js +4 -1
  621. package/lib/esm/internal/cross-package.js.map +1 -1
  622. package/lib/esm/ipc/IpcSession.js +1 -0
  623. package/lib/esm/ipc/IpcSession.js.map +1 -1
  624. package/lib/esm/ipc/IpcSocket.d.ts +3 -0
  625. package/lib/esm/ipc/IpcSocket.d.ts.map +1 -1
  626. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  627. package/lib/esm/ipc/IpcWebSocket.js +7 -6
  628. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  629. package/lib/esm/ipc/IpcWebSocketTransport.js +8 -7
  630. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  631. package/lib/esm/rpc/DevToolsRpcInterface.js +6 -6
  632. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  633. package/lib/esm/rpc/IModelReadRpcInterface.js +8 -11
  634. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  635. package/lib/esm/rpc/IModelTileRpcInterface.js +4 -4
  636. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  637. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +4 -4
  638. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  639. package/lib/esm/rpc/TestRpcManager.js +1 -4
  640. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  641. package/lib/esm/rpc/core/RpcConfiguration.js +51 -64
  642. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  643. package/lib/esm/rpc/core/RpcControl.js +29 -38
  644. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  645. package/lib/esm/rpc/core/RpcInvocation.js +19 -13
  646. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  647. package/lib/esm/rpc/core/RpcMarshaling.d.ts +1 -4
  648. package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
  649. package/lib/esm/rpc/core/RpcMarshaling.js +2 -1
  650. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  651. package/lib/esm/rpc/core/RpcOperation.js +29 -31
  652. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  653. package/lib/esm/rpc/core/RpcPendingQueue.js +17 -16
  654. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  655. package/lib/esm/rpc/core/RpcProtocol.js +32 -30
  656. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  657. package/lib/esm/rpc/core/RpcPush.js +15 -8
  658. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  659. package/lib/esm/rpc/core/RpcRegistry.d.ts.map +1 -1
  660. package/lib/esm/rpc/core/RpcRegistry.js +10 -9
  661. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  662. package/lib/esm/rpc/core/RpcRequest.d.ts +2 -2
  663. package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
  664. package/lib/esm/rpc/core/RpcRequest.js +51 -29
  665. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  666. package/lib/esm/rpc/core/RpcRoutingToken.js +4 -2
  667. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  668. package/lib/esm/rpc/core/RpcSessionInvocation.js +5 -10
  669. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  670. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +11 -17
  671. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  672. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +16 -19
  673. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  674. package/lib/esm/rpc/web/OpenAPI.js +2 -0
  675. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  676. package/lib/esm/rpc/web/RpcMultipart.d.ts +1 -1
  677. package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
  678. package/lib/esm/rpc/web/RpcMultipart.js +14 -13
  679. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  680. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +3 -0
  681. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  682. package/lib/esm/rpc/web/WebAppRpcLogging.js +1 -6
  683. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  684. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +1 -1
  685. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  686. package/lib/esm/rpc/web/WebAppRpcProtocol.js +6 -6
  687. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  688. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  689. package/lib/esm/rpc/web/WebAppRpcRequest.js +27 -27
  690. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  691. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
  692. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  693. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +14 -8
  694. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  695. package/lib/esm/tile/B3dmTileIO.js +7 -0
  696. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  697. package/lib/esm/tile/CompositeTileIO.js +3 -0
  698. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  699. package/lib/esm/tile/GltfTileIO.js +4 -3
  700. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  701. package/lib/esm/tile/I3dmTileIO.js +8 -0
  702. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  703. package/lib/esm/tile/IModelTileIO.d.ts +2 -2
  704. package/lib/esm/tile/IModelTileIO.js +26 -3
  705. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  706. package/lib/esm/tile/PntsTileIO.js +5 -0
  707. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  708. package/lib/esm/tile/TileIO.js +2 -0
  709. package/lib/esm/tile/TileIO.js.map +1 -1
  710. package/lib/esm/tile/TileMetadata.js +9 -1
  711. package/lib/esm/tile/TileMetadata.js.map +1 -1
  712. package/package.json +14 -14
  713. package/lib/cjs/BackendTypes.d.ts.map +0 -1
  714. package/lib/cjs/BackendTypes.js.map +0 -1
  715. package/lib/cjs/Render.d.ts +0 -85
  716. package/lib/cjs/Render.d.ts.map +0 -1
  717. package/lib/cjs/Render.js.map +0 -1
  718. package/lib/esm/BackendTypes.d.ts.map +0 -1
  719. package/lib/esm/BackendTypes.js.map +0 -1
  720. package/lib/esm/Render.d.ts +0 -85
  721. package/lib/esm/Render.d.ts.map +0 -1
  722. package/lib/esm/Render.js.map +0 -1
  723. /package/lib/cjs/{BackendTypes.js → internal/BackendTypes.js} +0 -0
  724. /package/lib/esm/{BackendTypes.js → internal/BackendTypes.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"RpcMultipartParser.js","sourceRoot":"","sources":["../../../../../src/rpc/web/multipart/RpcMultipartParser.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 RpcInterface\n */\n\n/*\nAdapted from https://github.com/pillarjs/multiparty. Multiparty license as follows:\n(The MIT License)\n\nCopyright (c) 2013 Felix Geisendörfer\nCopyright (c) 2014 Andrew Kelley\nCopyright (c) 2014 Douglas Christopher Wilson\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nimport { RpcSerializedValue } from \"../../core/RpcMarshaling\";\n\nconst START = 0;\nconst START_BOUNDARY = 1;\nconst HEADER_FIELD_START = 2;\nconst HEADER_FIELD = 3;\nconst HEADER_VALUE_START = 4;\nconst HEADER_VALUE = 5;\nconst HEADER_VALUE_ALMOST_DONE = 6;\nconst HEADERS_ALMOST_DONE = 7;\nconst PART_DATA_START = 8;\nconst PART_DATA = 9;\nconst CLOSE_BOUNDARY = 10;\nconst END = 11;\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst CONTENT_TYPE_RE = /^multipart\\/(?:form-data|related)(?:;|$)/i;\nconst CONTENT_TYPE_PARAM_RE = /;\\s*([^=]+)=(?:\"([^\"]+)\"|([^;]+))/gi;\n\n/** @internal */\nexport class RpcMultipartParser {\n private _headerFieldMark: number | null;\n private _headerValueMark: number | null;\n private _partDataMark: number | null;\n private _partBoundaryFlag: boolean;\n private _headerFieldDecoder: TextDecoder | null;\n private _headerValueDecoder: TextDecoder | null;\n private _headerField: string;\n private _partHeaders: { [index: string]: string };\n private _partName: string | null;\n private _partChunks: Uint8Array[];\n private _headerValue: string;\n private _boundary: string;\n private _buffer: Uint8Array;\n private _value: RpcSerializedValue;\n\n public constructor(contentType: string, buffer: Uint8Array) {\n let m = CONTENT_TYPE_RE.exec(contentType);\n if (!m) {\n throw new Error(\"unsupported content-type\");\n }\n\n let boundary = \"\";\n CONTENT_TYPE_PARAM_RE.lastIndex = m.index + m[0].length - 1;\n while ((m = CONTENT_TYPE_PARAM_RE.exec(contentType))) {\n if (m[1].toLowerCase() !== \"boundary\")\n continue;\n\n boundary = m[2] || m[3];\n break;\n }\n\n if (!boundary) {\n throw new Error(\"content-type missing boundary\");\n }\n\n this._headerFieldDecoder = null;\n this._headerValueDecoder = null;\n this._headerField = \"\";\n this._partHeaders = {};\n this._partName = null;\n this._partChunks = [];\n this._headerValue = \"\";\n\n this._headerFieldMark = null;\n this._headerValueMark = null;\n this._partDataMark = null;\n this._partBoundaryFlag = false;\n\n this._boundary = boundary;\n this._buffer = buffer;\n this._value = RpcSerializedValue.create();\n }\n\n public parse(): RpcSerializedValue {\n let i = 0;\n const len = this._buffer.length;\n let prevIndex = 0;\n let index = 0;\n let state = START;\n\n const boundary = new Uint8Array(this._boundary.length + 4);\n const boundaryEncoder = new TextEncoder(); // encodes utf8 only\n boundaryEncoder.encodeInto(\"\\r\\n--\", boundary.subarray(0));\n boundaryEncoder.encodeInto(this._boundary, boundary.subarray(4));\n\n const boundaryChars: { [index: number]: boolean } = {};\n for (const char of boundary) {\n boundaryChars[char] = true;\n }\n\n const boundaryLength = boundary.length;\n const boundaryEnd = boundaryLength - 1;\n const bufferLength = this._buffer.length;\n const lookbehind = new Uint8Array(boundaryLength + 8);\n\n let c;\n let cl;\n\n for (i = 0; i < len; i++) {\n c = this._buffer[i];\n switch (state) {\n case START:\n index = 0;\n state = START_BOUNDARY;\n /* falls through */\n case START_BOUNDARY:\n if (index === boundaryLength - 2 && c === HYPHEN) {\n index = 1;\n state = CLOSE_BOUNDARY;\n break;\n } else if (index === boundaryLength - 2) {\n if (c !== CR)\n throw new Error(`Expected CR Received ${c}`);\n\n index++;\n break;\n } else if (index === boundaryLength - 1) {\n if (c !== LF)\n throw new Error(`Expected LF Received ${c}`);\n\n index = 0;\n this._onParsePartBegin();\n state = HEADER_FIELD_START;\n break;\n }\n\n if (c !== boundary[index + 2])\n index = -2;\n\n if (c === boundary[index + 2])\n index++;\n\n break;\n case HEADER_FIELD_START:\n state = HEADER_FIELD;\n this._headerFieldMark = i;\n index = 0;\n /* falls through */\n case HEADER_FIELD:\n if (c === CR) {\n this._headerFieldMark = null;\n state = HEADERS_ALMOST_DONE;\n break;\n }\n\n index++;\n if (c === HYPHEN)\n break;\n\n if (c === COLON) {\n if (index === 1) {\n // empty header field\n throw new Error(\"Empty header field\");\n }\n this._onParseHeaderField(this._buffer.subarray(this._headerFieldMark as number, i));\n this._headerFieldMark = null;\n state = HEADER_VALUE_START;\n break;\n }\n\n cl = c | 0x20;\n if (cl < A || cl > Z) {\n throw new Error(`Expected alphabetic character, received ${c}`);\n }\n break;\n case HEADER_VALUE_START:\n if (c === SPACE)\n break;\n\n this._headerValueMark = i;\n state = HEADER_VALUE;\n /* falls through */\n case HEADER_VALUE:\n if (c === CR) {\n this._onParseHeaderValue(this._buffer.subarray(this._headerValueMark as number, i));\n this._headerValueMark = null;\n this._onParseHeaderEnd();\n state = HEADER_VALUE_ALMOST_DONE;\n }\n break;\n case HEADER_VALUE_ALMOST_DONE:\n if (c !== LF)\n throw new Error(`Expected LF Received ${c}`);\n\n state = HEADER_FIELD_START;\n break;\n case HEADERS_ALMOST_DONE:\n if (c !== LF)\n throw new Error(`Expected LF Received ${c}`);\n\n const err: any = this._onParseHeadersEnd(i + 1);\n if (err)\n throw err;\n\n state = PART_DATA_START;\n break;\n case PART_DATA_START:\n state = PART_DATA;\n this._partDataMark = i;\n /* falls through */\n case PART_DATA:\n prevIndex = index;\n\n if (index === 0) {\n // boyer-moore derived algorithm to safely skip non-boundary data\n i += boundaryEnd;\n while (i < bufferLength && !(this._buffer[i] in boundaryChars)) {\n i += boundaryLength;\n }\n i -= boundaryEnd;\n c = this._buffer[i];\n }\n\n if (index < boundaryLength) {\n if (boundary[index] === c) {\n if (index === 0) {\n this._onParsePartData(this._buffer.subarray(this._partDataMark as number, i));\n this._partDataMark = null;\n }\n index++;\n } else {\n index = 0;\n }\n } else if (index === boundaryLength) {\n index++;\n if (c === CR) {\n // CR = part boundary\n this._partBoundaryFlag = true;\n } else if (c === HYPHEN) {\n index = 1;\n state = CLOSE_BOUNDARY;\n break;\n } else {\n index = 0;\n }\n } else if (index - 1 === boundaryLength) {\n if (this._partBoundaryFlag) {\n index = 0;\n if (c === LF) {\n this._partBoundaryFlag = false;\n this._onParsePartEnd();\n this._onParsePartBegin();\n state = HEADER_FIELD_START;\n break;\n }\n } else {\n index = 0;\n }\n }\n\n if (index > 0) {\n // when matching a possible boundary, keep a lookbehind reference\n // in case it turns out to be a false lead\n lookbehind[index - 1] = c;\n } else if (prevIndex > 0) {\n // if our boundary turned out to be rubbish, the captured lookbehind\n // belongs to partData\n this._onParsePartData(lookbehind.subarray(0, prevIndex));\n prevIndex = 0;\n this._partDataMark = i;\n\n // reconsider the current character even so it interrupted the sequence\n // it could be the beginning of a new sequence\n i--;\n }\n\n break;\n case CLOSE_BOUNDARY:\n if (c !== HYPHEN)\n throw new Error(`Expected HYPHEN Received ${c}`);\n\n if (index === 1) {\n this._onParsePartEnd();\n state = END;\n } else if (index > 1) {\n throw new Error(\"Parser has invalid state.\");\n }\n index++;\n break;\n case END:\n break;\n default:\n throw new Error(\"Parser has invalid state.\");\n }\n }\n\n if (this._headerFieldMark != null) {\n this._onParseHeaderField(this._buffer.subarray(this._headerFieldMark));\n this._headerFieldMark = 0;\n }\n if (this._headerValueMark != null) {\n this._onParseHeaderValue(this._buffer.subarray(this._headerValueMark));\n this._headerValueMark = 0;\n }\n if (this._partDataMark != null) {\n this._onParsePartData(this._buffer.subarray(this._partDataMark));\n this._partDataMark = 0;\n }\n\n return this._value;\n }\n\n private _onParsePartBegin() {\n this._clearPartVars();\n }\n\n private _clearPartVars() {\n this._partHeaders = {};\n this._partName = null;\n this._partChunks.length = 0;\n\n this._headerFieldDecoder = new TextDecoder(\"utf8\");\n this._headerField = \"\";\n this._headerValueDecoder = new TextDecoder(\"utf8\");\n this._headerValue = \"\";\n }\n\n private _onParseHeaderField(b: Uint8Array) {\n this._headerField += this._headerFieldDecoder!.decode(b);\n }\n\n private _onParseHeaderValue(b: Uint8Array) {\n this._headerValue += this._headerValueDecoder!.decode(b);\n }\n\n private _onParseHeaderEnd() {\n this._headerField = this._headerField.toLowerCase();\n this._partHeaders[this._headerField] = this._headerValue;\n\n let m: RegExpMatchArray | null;\n if (this._headerField === \"content-disposition\") {\n if (m = this._headerValue.match(/\\bname=\"([^\"]+)\"/i)) {\n this._partName = m[1];\n }\n // this._partFilename = parseFilename(this._headerValue);\n } else if (this._headerField === \"content-transfer-encoding\") {\n // this._partTransferEncoding = this._headerValue.toLowerCase();\n }\n\n this._headerFieldDecoder = new TextDecoder(\"utf8\");\n this._headerField = \"\";\n this._headerValueDecoder = new TextDecoder(\"utf8\");\n this._headerValue = \"\";\n }\n\n private _onParsePartData(b: Uint8Array) {\n this._partChunks.push(b);\n }\n\n private _concatParts() {\n let totalSize = 0;\n for (const chunk of this._partChunks) {\n totalSize += chunk.length;\n }\n\n const combined = new Uint8Array(totalSize);\n\n let offset = 0;\n for (const chunk of this._partChunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n\n return combined;\n }\n\n private _onParsePartEnd() {\n const partValue = this._partChunks.length === 1 ? this._partChunks[0] : this._concatParts();\n\n if (this._partName === \"objects\") {\n const partDecoder = new TextDecoder();\n this._value.objects = partDecoder.decode(partValue);\n } else {\n this._value.data.push(partValue);\n }\n\n this._clearPartVars();\n }\n\n private _onParseHeadersEnd(_offset: number) {\n }\n}\n"]}
1
+ {"version":3,"file":"RpcMultipartParser.js","sourceRoot":"","sources":["../../../../../src/rpc/web/multipart/RpcMultipartParser.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 RpcInterface\n */\n\n/*\nAdapted from https://github.com/pillarjs/multiparty. Multiparty license as follows:\n(The MIT License)\n\nCopyright (c) 2013 Felix Geisendörfer\nCopyright (c) 2014 Andrew Kelley\nCopyright (c) 2014 Douglas Christopher Wilson\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nimport { RpcSerializedValue } from \"../../core/RpcMarshaling\";\n\nconst START = 0;\nconst START_BOUNDARY = 1;\nconst HEADER_FIELD_START = 2;\nconst HEADER_FIELD = 3;\nconst HEADER_VALUE_START = 4;\nconst HEADER_VALUE = 5;\nconst HEADER_VALUE_ALMOST_DONE = 6;\nconst HEADERS_ALMOST_DONE = 7;\nconst PART_DATA_START = 8;\nconst PART_DATA = 9;\nconst CLOSE_BOUNDARY = 10;\nconst END = 11;\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst CONTENT_TYPE_RE = /^multipart\\/(?:form-data|related)(?:;|$)/i;\nconst CONTENT_TYPE_PARAM_RE = /;\\s*([^=]+)=(?:\"([^\"]+)\"|([^;]+))/gi;\n\n/** @internal */\nexport class RpcMultipartParser {\n private _headerFieldMark: number | null;\n private _headerValueMark: number | null;\n private _partDataMark: number | null;\n private _partBoundaryFlag: boolean;\n private _headerField: string;\n private _partHeaders: { [index: string]: string };\n private _partName: string | null;\n private _partChunks: Uint8Array[];\n private _headerValue: string;\n private _boundary: string;\n private _buffer: Uint8Array;\n private _value: RpcSerializedValue;\n\n public constructor(contentType: string, buffer: Uint8Array) {\n let m = CONTENT_TYPE_RE.exec(contentType);\n if (!m) {\n throw new Error(\"unsupported content-type\");\n }\n\n let boundary = \"\";\n CONTENT_TYPE_PARAM_RE.lastIndex = m.index + m[0].length - 1;\n while ((m = CONTENT_TYPE_PARAM_RE.exec(contentType))) {\n if (m[1].toLowerCase() !== \"boundary\")\n continue;\n\n boundary = m[2] || m[3];\n break;\n }\n\n if (!boundary) {\n throw new Error(\"content-type missing boundary\");\n }\n\n this._headerField = \"\";\n this._partHeaders = {};\n this._partName = null;\n this._partChunks = [];\n this._headerValue = \"\";\n\n this._headerFieldMark = null;\n this._headerValueMark = null;\n this._partDataMark = null;\n this._partBoundaryFlag = false;\n\n this._boundary = boundary;\n this._buffer = buffer;\n this._value = RpcSerializedValue.create();\n }\n\n public parse(): RpcSerializedValue {\n let i = 0;\n const len = this._buffer.length;\n let prevIndex = 0;\n let index = 0;\n let state = START;\n\n const boundary = new Uint8Array(this._boundary.length + 4);\n const boundaryEncoder = new TextEncoder(); // encodes utf8 only\n boundaryEncoder.encodeInto(\"\\r\\n--\", boundary.subarray(0));\n boundaryEncoder.encodeInto(this._boundary, boundary.subarray(4));\n\n const boundaryChars: { [index: number]: boolean } = {};\n for (const char of boundary) {\n boundaryChars[char] = true;\n }\n\n const boundaryLength = boundary.length;\n const boundaryEnd = boundaryLength - 1;\n const bufferLength = this._buffer.length;\n const lookbehind = new Uint8Array(boundaryLength + 8);\n\n let c;\n let cl;\n\n for (i = 0; i < len; i++) {\n c = this._buffer[i];\n switch (state) {\n case START:\n index = 0;\n state = START_BOUNDARY;\n /* falls through */\n case START_BOUNDARY:\n if (index === boundaryLength - 2 && c === HYPHEN) {\n index = 1;\n state = CLOSE_BOUNDARY;\n break;\n } else if (index === boundaryLength - 2) {\n if (c !== CR)\n throw new Error(`Expected CR Received ${c}`);\n\n index++;\n break;\n } else if (index === boundaryLength - 1) {\n if (c !== LF)\n throw new Error(`Expected LF Received ${c}`);\n\n index = 0;\n this._onParsePartBegin();\n state = HEADER_FIELD_START;\n break;\n }\n\n if (c !== boundary[index + 2])\n index = -2;\n\n if (c === boundary[index + 2])\n index++;\n\n break;\n case HEADER_FIELD_START:\n state = HEADER_FIELD;\n this._headerFieldMark = i;\n index = 0;\n /* falls through */\n case HEADER_FIELD:\n if (c === CR) {\n this._headerFieldMark = null;\n state = HEADERS_ALMOST_DONE;\n break;\n }\n\n index++;\n if (c === HYPHEN)\n break;\n\n if (c === COLON) {\n if (index === 1) {\n // empty header field\n throw new Error(\"Empty header field\");\n }\n this._onParseHeaderField(this._buffer.subarray(this._headerFieldMark as number, i));\n this._headerFieldMark = null;\n state = HEADER_VALUE_START;\n break;\n }\n\n cl = c | 0x20;\n if (cl < A || cl > Z) {\n throw new Error(`Expected alphabetic character, received ${c}`);\n }\n break;\n case HEADER_VALUE_START:\n if (c === SPACE)\n break;\n\n this._headerValueMark = i;\n state = HEADER_VALUE;\n /* falls through */\n case HEADER_VALUE:\n if (c === CR) {\n this._onParseHeaderValue(this._buffer.subarray(this._headerValueMark as number, i));\n this._headerValueMark = null;\n this._onParseHeaderEnd();\n state = HEADER_VALUE_ALMOST_DONE;\n }\n break;\n case HEADER_VALUE_ALMOST_DONE:\n if (c !== LF)\n throw new Error(`Expected LF Received ${c}`);\n\n state = HEADER_FIELD_START;\n break;\n case HEADERS_ALMOST_DONE:\n if (c !== LF)\n throw new Error(`Expected LF Received ${c}`);\n\n const err: any = this._onParseHeadersEnd(i + 1);\n if (err)\n throw err;\n\n state = PART_DATA_START;\n break;\n case PART_DATA_START:\n state = PART_DATA;\n this._partDataMark = i;\n /* falls through */\n case PART_DATA:\n prevIndex = index;\n\n if (index === 0) {\n // boyer-moore derived algorithm to safely skip non-boundary data\n i += boundaryEnd;\n while (i < bufferLength && !(this._buffer[i] in boundaryChars)) {\n i += boundaryLength;\n }\n i -= boundaryEnd;\n c = this._buffer[i];\n }\n\n if (index < boundaryLength) {\n if (boundary[index] === c) {\n if (index === 0) {\n this._onParsePartData(this._buffer.subarray(this._partDataMark as number, i));\n this._partDataMark = null;\n }\n index++;\n } else {\n index = 0;\n }\n } else if (index === boundaryLength) {\n index++;\n if (c === CR) {\n // CR = part boundary\n this._partBoundaryFlag = true;\n } else if (c === HYPHEN) {\n index = 1;\n state = CLOSE_BOUNDARY;\n break;\n } else {\n index = 0;\n }\n } else if (index - 1 === boundaryLength) {\n if (this._partBoundaryFlag) {\n index = 0;\n if (c === LF) {\n this._partBoundaryFlag = false;\n this._onParsePartEnd();\n this._onParsePartBegin();\n state = HEADER_FIELD_START;\n break;\n }\n } else {\n index = 0;\n }\n }\n\n if (index > 0) {\n // when matching a possible boundary, keep a lookbehind reference\n // in case it turns out to be a false lead\n lookbehind[index - 1] = c;\n } else if (prevIndex > 0) {\n // if our boundary turned out to be rubbish, the captured lookbehind\n // belongs to partData\n this._onParsePartData(lookbehind.subarray(0, prevIndex));\n prevIndex = 0;\n this._partDataMark = i;\n\n // reconsider the current character even so it interrupted the sequence\n // it could be the beginning of a new sequence\n i--;\n }\n\n break;\n case CLOSE_BOUNDARY:\n if (c !== HYPHEN)\n throw new Error(`Expected HYPHEN Received ${c}`);\n\n if (index === 1) {\n this._onParsePartEnd();\n state = END;\n } else if (index > 1) {\n throw new Error(\"Parser has invalid state.\");\n }\n index++;\n break;\n case END:\n break;\n default:\n throw new Error(\"Parser has invalid state.\");\n }\n }\n\n if (this._headerFieldMark != null) {\n this._onParseHeaderField(this._buffer.subarray(this._headerFieldMark));\n this._headerFieldMark = 0;\n }\n if (this._headerValueMark != null) {\n this._onParseHeaderValue(this._buffer.subarray(this._headerValueMark));\n this._headerValueMark = 0;\n }\n if (this._partDataMark != null) {\n this._onParsePartData(this._buffer.subarray(this._partDataMark));\n this._partDataMark = 0;\n }\n\n return this._value;\n }\n\n private _onParsePartBegin() {\n this._clearPartVars();\n }\n\n private _clearPartVars() {\n this._partHeaders = {};\n this._partName = null;\n this._partChunks.length = 0;\n\n this._headerField = \"\";\n this._headerValue = \"\";\n }\n\n private _onParseHeaderField(b: Uint8Array) {\n this._headerField += new TextDecoder(\"utf8\").decode(b);\n }\n\n private _onParseHeaderValue(b: Uint8Array) {\n this._headerValue += new TextDecoder(\"utf8\").decode(b);\n }\n\n private _onParseHeaderEnd() {\n this._headerField = this._headerField.toLowerCase();\n this._partHeaders[this._headerField] = this._headerValue;\n\n let m: RegExpMatchArray | null;\n if (this._headerField === \"content-disposition\") {\n if (m = this._headerValue.match(/\\bname=\"([^\"]+)\"/i)) {\n this._partName = m[1];\n }\n // this._partFilename = parseFilename(this._headerValue);\n } else if (this._headerField === \"content-transfer-encoding\") {\n // this._partTransferEncoding = this._headerValue.toLowerCase();\n }\n\n this._headerField = \"\";\n this._headerValue = \"\";\n }\n\n private _onParsePartData(b: Uint8Array) {\n this._partChunks.push(b);\n }\n\n private _concatParts() {\n let totalSize = 0;\n for (const chunk of this._partChunks) {\n totalSize += chunk.length;\n }\n\n const combined = new Uint8Array(totalSize);\n\n let offset = 0;\n for (const chunk of this._partChunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n\n return combined;\n }\n\n private _onParsePartEnd() {\n const partValue = this._partChunks.length === 1 ? this._partChunks[0] : this._concatParts();\n\n if (this._partName === \"objects\") {\n const partDecoder = new TextDecoder();\n this._value.objects = partDecoder.decode(partValue);\n } else {\n this._value.data.push(partValue);\n }\n\n this._clearPartVars();\n }\n\n private _onParseHeadersEnd(_offset: number) {\n }\n}\n"]}
@@ -11,6 +11,13 @@ import { TileFormat, TileHeader } from "./TileIO";
11
11
  * @internal
12
12
  */
13
13
  export class B3dmHeader extends TileHeader {
14
+ length;
15
+ featureTableJsonLength;
16
+ featureTableBinaryLength;
17
+ batchTableJsonLength;
18
+ batchTableBinaryLength;
19
+ featureTableJson;
20
+ batchTableJson;
14
21
  get isValid() { return TileFormat.B3dm === this.format; }
15
22
  constructor(stream) {
16
23
  super(stream);
@@ -1 +1 @@
1
- {"version":3,"file":"B3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/B3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAQxC,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAElD,4FAA4F;QAC5F,yDAAyD;QACzD,0FAA0F;QAC1F,sIAAsI;QACtI,oJAAoJ;QACpJ,oMAAoM;QACpM,2GAA2G;QAC3G,IAAI,IAAI,CAAC,oBAAoB,IAAI,SAAS,EAAE,CAAC;YAC3C,qBAAqB;YACrB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC1D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,sBAAsB,IAAI,SAAS,EAAE,CAAC;YACpD,sBAAsB;YACtB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [b3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Batched3DModel) format.\n * @internal\n */\nexport class B3dmHeader extends TileHeader {\n public readonly length: number;\n public readonly featureTableJsonLength: number;\n public readonly featureTableBinaryLength: number;\n public readonly batchTableJsonLength: number;\n public readonly batchTableBinaryLength: number;\n public readonly featureTableJson: any;\n public readonly batchTableJson: any;\n public get isValid(): boolean { return TileFormat.B3dm === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.featureTableJsonLength = stream.readUint32();\n this.featureTableBinaryLength = stream.readUint32();\n this.batchTableJsonLength = stream.readUint32();\n this.batchTableBinaryLength = stream.readUint32();\n\n // Keep this legacy check in for now since a lot of tilesets are still using the old header.\n // Legacy header #1: [batchLength] [batchTableByteLength]\n // Legacy header #2: [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]\n // Current header: [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength]\n // If the header is in the first legacy format 'batchTableJsonByteLength' will be the start of the JSON string (a quotation mark) or the glTF magic.\n // Accordingly its first byte will be either 0x22 or 0x67, and so the minimum uint32 expected is 0x22000000 = 570425344 = 570MB. It is unlikely that the feature table Json will exceed this length.\n // The check for the second legacy format is similar, except it checks 'batchTableBinaryByteLength' instead\n if (this.batchTableJsonLength >= 570425344) {\n // First legacy check\n stream.curPos = 20;\n this.batchTableJsonLength = this.featureTableBinaryLength;\n this.batchTableBinaryLength = 0;\n this.featureTableJsonLength = 0;\n this.featureTableBinaryLength = 0;\n } else if (this.batchTableBinaryLength >= 570425344) {\n // Second legacy check\n stream.curPos = 24;\n this.batchTableJsonLength = this.featureTableJsonLength;\n this.batchTableBinaryLength = this.featureTableBinaryLength;\n this.featureTableJsonLength = 0;\n this.featureTableBinaryLength = 0;\n }\n\n if (0 !== this.featureTableJsonLength) {\n const sceneStrData = stream.nextBytes(this.featureTableJsonLength);\n const sceneStr = utf8ToString(sceneStrData);\n if (sceneStr)\n this.featureTableJson = JSON.parse(sceneStr);\n }\n\n stream.advance(this.featureTableBinaryLength);\n if (0 !== this.batchTableJsonLength) {\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\n const batchStr = utf8ToString(batchStrData);\n if (batchStr)\n this.batchTableJson = JSON.parse(batchStr);\n }\n\n stream.advance(this.batchTableBinaryLength);\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n"]}
1
+ {"version":3,"file":"B3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/B3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxB,MAAM,CAAS;IACf,sBAAsB,CAAS;IAC/B,wBAAwB,CAAS;IACjC,oBAAoB,CAAS;IAC7B,sBAAsB,CAAS;IAC/B,gBAAgB,CAAM;IACtB,cAAc,CAAM;IACpC,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAElD,4FAA4F;QAC5F,yDAAyD;QACzD,0FAA0F;QAC1F,sIAAsI;QACtI,oJAAoJ;QACpJ,oMAAoM;QACpM,2GAA2G;QAC3G,IAAI,IAAI,CAAC,oBAAoB,IAAI,SAAS,EAAE,CAAC;YAC3C,qBAAqB;YACrB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC1D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,sBAAsB,IAAI,SAAS,EAAE,CAAC;YACpD,sBAAsB;YACtB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [b3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Batched3DModel) format.\n * @internal\n */\nexport class B3dmHeader extends TileHeader {\n public readonly length: number;\n public readonly featureTableJsonLength: number;\n public readonly featureTableBinaryLength: number;\n public readonly batchTableJsonLength: number;\n public readonly batchTableBinaryLength: number;\n public readonly featureTableJson: any;\n public readonly batchTableJson: any;\n public get isValid(): boolean { return TileFormat.B3dm === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.featureTableJsonLength = stream.readUint32();\n this.featureTableBinaryLength = stream.readUint32();\n this.batchTableJsonLength = stream.readUint32();\n this.batchTableBinaryLength = stream.readUint32();\n\n // Keep this legacy check in for now since a lot of tilesets are still using the old header.\n // Legacy header #1: [batchLength] [batchTableByteLength]\n // Legacy header #2: [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]\n // Current header: [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength]\n // If the header is in the first legacy format 'batchTableJsonByteLength' will be the start of the JSON string (a quotation mark) or the glTF magic.\n // Accordingly its first byte will be either 0x22 or 0x67, and so the minimum uint32 expected is 0x22000000 = 570425344 = 570MB. It is unlikely that the feature table Json will exceed this length.\n // The check for the second legacy format is similar, except it checks 'batchTableBinaryByteLength' instead\n if (this.batchTableJsonLength >= 570425344) {\n // First legacy check\n stream.curPos = 20;\n this.batchTableJsonLength = this.featureTableBinaryLength;\n this.batchTableBinaryLength = 0;\n this.featureTableJsonLength = 0;\n this.featureTableBinaryLength = 0;\n } else if (this.batchTableBinaryLength >= 570425344) {\n // Second legacy check\n stream.curPos = 24;\n this.batchTableJsonLength = this.featureTableJsonLength;\n this.batchTableBinaryLength = this.featureTableBinaryLength;\n this.featureTableJsonLength = 0;\n this.featureTableBinaryLength = 0;\n }\n\n if (0 !== this.featureTableJsonLength) {\n const sceneStrData = stream.nextBytes(this.featureTableJsonLength);\n const sceneStr = utf8ToString(sceneStrData);\n if (sceneStr)\n this.featureTableJson = JSON.parse(sceneStr);\n }\n\n stream.advance(this.featureTableBinaryLength);\n if (0 !== this.batchTableJsonLength) {\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\n const batchStr = utf8ToString(batchStrData);\n if (batchStr)\n this.batchTableJson = JSON.parse(batchStr);\n }\n\n stream.advance(this.batchTableBinaryLength);\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n"]}
@@ -10,6 +10,9 @@ import { TileFormat, TileHeader } from "./TileIO";
10
10
  * @internal
11
11
  */
12
12
  export class CompositeTileHeader extends TileHeader {
13
+ length;
14
+ tileCount;
15
+ tilePosition;
13
16
  get isValid() { return TileFormat.Cmpt === this.format; }
14
17
  constructor(stream) {
15
18
  super(stream);
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeTileIO.js","sourceRoot":"","sources":["../../../src/tile/CompositeTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAKjD,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAElC,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [composite](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Composite) format, containing any number of tiles in other standard 3D tile formats.\n * @internal\n */\nexport class CompositeTileHeader extends TileHeader {\n public readonly length: number;\n public readonly tileCount: number;\n public readonly tilePosition: number;\n\n public get isValid(): boolean { return TileFormat.Cmpt === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.tileCount = stream.readUint32();\n this.tilePosition = stream.curPos;\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n"]}
1
+ {"version":3,"file":"CompositeTileIO.js","sourceRoot":"","sources":["../../../src/tile/CompositeTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IACjC,MAAM,CAAS;IACf,SAAS,CAAS;IAClB,YAAY,CAAS;IAErC,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAElC,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [composite](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Composite) format, containing any number of tiles in other standard 3D tile formats.\n * @internal\n */\nexport class CompositeTileHeader extends TileHeader {\n public readonly length: number;\n public readonly tileCount: number;\n public readonly tilePosition: number;\n\n public get isValid(): boolean { return TileFormat.Cmpt === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.tileCount = stream.readUint32();\n this.tilePosition = stream.curPos;\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n"]}
@@ -36,14 +36,15 @@ function consumeNextChunk(stream) {
36
36
  }
37
37
  /** @internal */
38
38
  export class GlbHeader extends TileHeader {
39
+ gltfLength = 0;
40
+ jsonChunk = { offset: 0, length: 0 };
41
+ binaryChunk;
42
+ additionalChunks = [];
39
43
  get isValid() {
40
44
  return TileFormat.Gltf === this.format;
41
45
  }
42
46
  constructor(stream) {
43
47
  super(stream);
44
- this.gltfLength = 0;
45
- this.jsonChunk = { offset: 0, length: 0 };
46
- this.additionalChunks = [];
47
48
  this.gltfLength = stream.readUint32();
48
49
  const jsonLength = stream.readUint32();
49
50
  const word5 = stream.readUint32();
@@ -1 +1 @@
1
- {"version":3,"file":"GltfTileIO.js","sourceRoot":"","sources":["../../../src/tile/GltfTileIO.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 Tile\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Known version of the [glTF format](https://www.khronos.org/gltf/).\n * @internal\n */\nexport enum GltfVersions {\n Version1 = 1,\n Version2 = 2,\n CurrentVersion = Version1,\n Gltf1SceneFormat = 0,\n}\n\n/** @internal */\nexport enum GltfV2ChunkTypes {\n JSON = 0x4E4F534a,\n Binary = 0x004E4942,\n}\n\n/** A chunk of a glb file.\n * @internal\n */\nexport interface GltfChunk {\n /** Offset of the first byte of the chunk's data relative to the beginning of the glb data.\n * This excludes the 8-byte chunk header containing the length and type fields.\n */\n offset: number;\n /** The number of bytes in the chunk's data. */\n length: number;\n}\n\n/** Describes a glTF chunk's data along with its type.\n * @internal\n */\nexport type TypedGltfChunk = GltfChunk & { type: number };\n\nfunction consumeNextChunk(stream: ByteStream): TypedGltfChunk | undefined | false {\n if (stream.isAtTheEnd)\n return undefined;\n\n const offset = stream.curPos + 8;\n\n const length = stream.readUint32();\n if (stream.isAtTheEnd)\n return undefined;\n\n const type = stream.readUint32();\n stream.advance(length);\n return stream.isPastTheEnd ? false : { offset, length, type };\n}\n\n/** @internal */\nexport class GlbHeader extends TileHeader {\n public readonly gltfLength: number = 0;\n public readonly jsonChunk: GltfChunk = { offset: 0, length: 0 };\n public readonly binaryChunk?: GltfChunk;\n public readonly additionalChunks: TypedGltfChunk[] = [];\n\n public get isValid(): boolean {\n return TileFormat.Gltf === this.format;\n }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.gltfLength = stream.readUint32();\n\n const jsonLength = stream.readUint32();\n const word5 = stream.readUint32();\n\n // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles\n // validating the chunk type.\n if (this.version === GltfVersions.Version2 && word5 === GltfVersions.Gltf1SceneFormat)\n this.version = GltfVersions.Version1;\n\n this.jsonChunk = { offset: stream.curPos, length: jsonLength };\n switch (this.version) {\n case GltfVersions.Version1:\n if (GltfVersions.Gltf1SceneFormat !== word5) {\n this.invalidate();\n return;\n }\n\n const binaryOffset = stream.curPos + jsonLength;\n this.binaryChunk = { offset: binaryOffset, length: this.gltfLength - binaryOffset };\n break;\n case GltfVersions.Version2:\n if (word5 !== GltfV2ChunkTypes.JSON) {\n this.invalidate();\n return;\n }\n\n stream.advance(jsonLength);\n if (stream.isPastTheEnd) {\n this.invalidate();\n return;\n }\n\n let chunk;\n while (chunk = consumeNextChunk(stream)) {\n switch (chunk.type) {\n case GltfV2ChunkTypes.JSON:\n // Only one JSON chunk permitted and it must be the first.\n this.invalidate();\n return;\n case GltfV2ChunkTypes.Binary:\n // At most one binary chunk permitted and it must be the second if present.\n if (this.binaryChunk || this.additionalChunks.length) {\n this.invalidate();\n return;\n }\n\n this.binaryChunk = { offset: chunk.offset, length: chunk.length };\n break;\n default:\n // Any other chunk type should be ignored - for use by extensions.\n this.additionalChunks.push(chunk);\n break;\n }\n }\n\n if (false === chunk) {\n this.invalidate();\n return;\n }\n\n assert(undefined === chunk);\n assert(stream.isAtTheEnd);\n break;\n default:\n this.invalidate();\n break;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"GltfTileIO.js","sourceRoot":"","sources":["../../../src/tile/GltfTileIO.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 Tile\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Known version of the [glTF format](https://www.khronos.org/gltf/).\n * @internal\n */\nexport enum GltfVersions {\n Version1 = 1,\n Version2 = 2,\n CurrentVersion = Version1,\n Gltf1SceneFormat = 0,\n}\n\n/** @internal */\nexport enum GltfV2ChunkTypes {\n JSON = 0x4E4F534a,\n Binary = 0x004E4942,\n}\n\n/** A chunk of a glb file.\n * @internal\n */\nexport interface GltfChunk {\n /** Offset of the first byte of the chunk's data relative to the beginning of the glb data.\n * This excludes the 8-byte chunk header containing the length and type fields.\n */\n offset: number;\n /** The number of bytes in the chunk's data. */\n length: number;\n}\n\n/** Describes a glTF chunk's data along with its type.\n * @internal\n */\nexport type TypedGltfChunk = GltfChunk & { type: number };\n\nfunction consumeNextChunk(stream: ByteStream): TypedGltfChunk | undefined | false {\n if (stream.isAtTheEnd)\n return undefined;\n\n const offset = stream.curPos + 8;\n\n const length = stream.readUint32();\n if (stream.isAtTheEnd)\n return undefined;\n\n const type = stream.readUint32();\n stream.advance(length);\n return stream.isPastTheEnd ? false : { offset, length, type };\n}\n\n/** @internal */\nexport class GlbHeader extends TileHeader {\n public readonly gltfLength: number = 0;\n public readonly jsonChunk: GltfChunk = { offset: 0, length: 0 };\n public readonly binaryChunk?: GltfChunk;\n public readonly additionalChunks: TypedGltfChunk[] = [];\n\n public get isValid(): boolean {\n return TileFormat.Gltf === this.format;\n }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.gltfLength = stream.readUint32();\n\n const jsonLength = stream.readUint32();\n const word5 = stream.readUint32();\n\n // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles\n // validating the chunk type.\n if (this.version === GltfVersions.Version2 && word5 === GltfVersions.Gltf1SceneFormat)\n this.version = GltfVersions.Version1;\n\n this.jsonChunk = { offset: stream.curPos, length: jsonLength };\n switch (this.version) {\n case GltfVersions.Version1:\n if (GltfVersions.Gltf1SceneFormat !== word5) {\n this.invalidate();\n return;\n }\n\n const binaryOffset = stream.curPos + jsonLength;\n this.binaryChunk = { offset: binaryOffset, length: this.gltfLength - binaryOffset };\n break;\n case GltfVersions.Version2:\n if (word5 !== GltfV2ChunkTypes.JSON) {\n this.invalidate();\n return;\n }\n\n stream.advance(jsonLength);\n if (stream.isPastTheEnd) {\n this.invalidate();\n return;\n }\n\n let chunk;\n while (chunk = consumeNextChunk(stream)) {\n switch (chunk.type) {\n case GltfV2ChunkTypes.JSON:\n // Only one JSON chunk permitted and it must be the first.\n this.invalidate();\n return;\n case GltfV2ChunkTypes.Binary:\n // At most one binary chunk permitted and it must be the second if present.\n if (this.binaryChunk || this.additionalChunks.length) {\n this.invalidate();\n return;\n }\n\n this.binaryChunk = { offset: chunk.offset, length: chunk.length };\n break;\n default:\n // Any other chunk type should be ignored - for use by extensions.\n this.additionalChunks.push(chunk);\n break;\n }\n }\n\n if (false === chunk) {\n this.invalidate();\n return;\n }\n\n assert(undefined === chunk);\n assert(stream.isAtTheEnd);\n break;\n default:\n this.invalidate();\n break;\n }\n }\n}\n"]}
@@ -11,6 +11,14 @@ import { TileFormat, TileHeader } from "./TileIO";
11
11
  * @internal
12
12
  */
13
13
  export class I3dmHeader extends TileHeader {
14
+ length;
15
+ featureTableJsonPosition;
16
+ featureTableJsonLength;
17
+ featureTableBinaryLength;
18
+ batchTableJsonLength;
19
+ batchTableBinaryLength;
20
+ gltfVersion;
21
+ batchTableJson;
14
22
  get isValid() { return TileFormat.I3dm === this.format; }
15
23
  constructor(stream) {
16
24
  super(stream);
@@ -1 +1 @@
1
- {"version":3,"file":"I3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/I3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IASxC,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [i3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Instanced3DModel) format.\n * @internal\n */\nexport class I3dmHeader extends TileHeader {\n public readonly length: number;\n public readonly featureTableJsonPosition: number;\n public readonly featureTableJsonLength: number;\n public readonly featureTableBinaryLength: number;\n public readonly batchTableJsonLength: number;\n public readonly batchTableBinaryLength: number;\n public readonly gltfVersion: number;\n public readonly batchTableJson: any;\n public get isValid(): boolean { return TileFormat.I3dm === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.featureTableJsonLength = stream.readUint32();\n this.featureTableBinaryLength = stream.readUint32();\n this.batchTableJsonLength = stream.readUint32();\n this.batchTableBinaryLength = stream.readUint32();\n this.gltfVersion = stream.readUint32();\n this.featureTableJsonPosition = stream.curPos;\n stream.advance(this.featureTableJsonLength);\n stream.advance(this.featureTableBinaryLength);\n if (0 !== this.batchTableJsonLength) {\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\n const batchStr = utf8ToString(batchStrData);\n if (batchStr)\n this.batchTableJson = JSON.parse(batchStr);\n }\n stream.advance(this.batchTableBinaryLength);\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n"]}
1
+ {"version":3,"file":"I3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/I3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxB,MAAM,CAAS;IACf,wBAAwB,CAAS;IACjC,sBAAsB,CAAS;IAC/B,wBAAwB,CAAS;IACjC,oBAAoB,CAAS;IAC7B,sBAAsB,CAAS;IAC/B,WAAW,CAAS;IACpB,cAAc,CAAM;IACpC,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [i3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Instanced3DModel) format.\n * @internal\n */\nexport class I3dmHeader extends TileHeader {\n public readonly length: number;\n public readonly featureTableJsonPosition: number;\n public readonly featureTableJsonLength: number;\n public readonly featureTableBinaryLength: number;\n public readonly batchTableJsonLength: number;\n public readonly batchTableBinaryLength: number;\n public readonly gltfVersion: number;\n public readonly batchTableJson: any;\n public get isValid(): boolean { return TileFormat.I3dm === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.featureTableJsonLength = stream.readUint32();\n this.featureTableBinaryLength = stream.readUint32();\n this.batchTableJsonLength = stream.readUint32();\n this.batchTableBinaryLength = stream.readUint32();\n this.gltfVersion = stream.readUint32();\n this.featureTableJsonPosition = stream.curPos;\n stream.advance(this.featureTableJsonLength);\n stream.advance(this.featureTableBinaryLength);\n if (0 !== this.batchTableJsonLength) {\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\n const batchStr = utf8ToString(batchStrData);\n if (batchStr)\n this.batchTableJson = JSON.parse(batchStr);\n }\n stream.advance(this.batchTableBinaryLength);\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n"]}
@@ -27,13 +27,13 @@ export declare enum CurrentImdlVersion {
27
27
  * front-end is not capable of reading the tile content. Otherwise, this front-end can read the tile content even if the header specifies a
28
28
  * greater minor version than CurrentVersion.Minor, although some data may be skipped.
29
29
  */
30
- Major = 35,
30
+ Major = 36,
31
31
  /** The unsigned 16-bit minor version number. If the major version in the tile header is equal to CurrentVersion.Major, then this package can
32
32
  * read the tile content even if the minor version in the tile header is greater than this value, although some data may be skipped.
33
33
  */
34
34
  Minor = 0,
35
35
  /** The unsigned 32-bit version number derived from the 16-bit major and minor version numbers. */
36
- Combined = 2293760
36
+ Combined = 2359296
37
37
  }
38
38
  /** Header embedded at the beginning of binary tile data in iMdl format describing its contents.
39
39
  * @internal
@@ -33,18 +33,34 @@ export var CurrentImdlVersion;
33
33
  * front-end is not capable of reading the tile content. Otherwise, this front-end can read the tile content even if the header specifies a
34
34
  * greater minor version than CurrentVersion.Minor, although some data may be skipped.
35
35
  */
36
- CurrentImdlVersion[CurrentImdlVersion["Major"] = 35] = "Major";
36
+ CurrentImdlVersion[CurrentImdlVersion["Major"] = 36] = "Major";
37
37
  /** The unsigned 16-bit minor version number. If the major version in the tile header is equal to CurrentVersion.Major, then this package can
38
38
  * read the tile content even if the minor version in the tile header is greater than this value, although some data may be skipped.
39
39
  */
40
40
  CurrentImdlVersion[CurrentImdlVersion["Minor"] = 0] = "Minor";
41
41
  /** The unsigned 32-bit version number derived from the 16-bit major and minor version numbers. */
42
- CurrentImdlVersion[CurrentImdlVersion["Combined"] = 2293760] = "Combined";
42
+ CurrentImdlVersion[CurrentImdlVersion["Combined"] = 2359296] = "Combined";
43
43
  })(CurrentImdlVersion || (CurrentImdlVersion = {}));
44
44
  /** Header embedded at the beginning of binary tile data in iMdl format describing its contents.
45
45
  * @internal
46
46
  */
47
47
  export class ImdlHeader extends TileHeader {
48
+ /** The size of this header in bytes. */
49
+ headerLength;
50
+ /** Flags describing the geometry contained within the tile */
51
+ flags;
52
+ /** A bounding box no larger than the tile's range, tightly enclosing the tile's geometry; or a null range if the tile is empty */
53
+ contentRange;
54
+ /** The chord tolerance in meters at which the tile's geometry was faceted */
55
+ tolerance;
56
+ /** The number of elements which contributed at least some geometry to the tile content */
57
+ numElementsIncluded;
58
+ /** The number of elements within the tile range which contributed no geometry to the tile content */
59
+ numElementsExcluded;
60
+ /** The total number of bytes in the binary tile data, including this header */
61
+ tileLength;
62
+ /** A bitfield wherein each set bit indicates an empty sub-volume. */
63
+ emptySubRanges;
48
64
  get versionMajor() { return this.version >>> 0x10; }
49
65
  get versionMinor() { return (this.version & 0xffff) >>> 0; }
50
66
  get isValid() { return TileFormat.IModel === this.format; }
@@ -77,17 +93,24 @@ export class ImdlHeader extends TileHeader {
77
93
  * @internal
78
94
  */
79
95
  export class FeatureTableHeader {
96
+ // The number of bytes the entire table occupies.
97
+ length;
98
+ // The number of subcategories in the table.
99
+ // NOTE: This used to be "max features" which was useless and unused. It is only accurate if ImdlFlags.HasMultiModelFeatureTable is set.
100
+ numSubCategories;
101
+ // The number of features in the table.
102
+ count;
80
103
  static readFrom(stream) {
81
104
  const length = stream.readUint32();
82
105
  const maxFeatures = stream.readUint32();
83
106
  const count = stream.readUint32();
84
107
  return stream.isPastTheEnd ? undefined : new FeatureTableHeader(length, maxFeatures, count);
85
108
  }
109
+ static sizeInBytes = 12;
86
110
  constructor(length, numSubCategories, count) {
87
111
  this.length = length;
88
112
  this.numSubCategories = numSubCategories;
89
113
  this.count = count;
90
114
  }
91
115
  }
92
- FeatureTableHeader.sizeInBytes = 12;
93
116
  //# sourceMappingURL=IModelTileIO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTileIO.js","sourceRoot":"","sources":["../../../src/tile/IModelTileIO.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 Tile\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { Range3d } from \"@itwin/core-geometry\";\nimport { ElementAlignedBox3d } from \"../geometry/Placement\";\nimport { nextPoint3d64FromByteStream, TileFormat, TileHeader } from \"./TileIO\";\n\n/** Flags describing the geometry contained within a tile in iMdl format.\n * @internal\n */\nexport enum ImdlFlags {\n /** No special flags */\n None = 0,\n /** The tile contains some curved geometry */\n ContainsCurves = 1 << 0,\n /** Some geometry within the tile range was omitted based on its size */\n Incomplete = 1 << 2,\n /** The tile must be refined by sub-division, not magnification. */\n DisallowMagnification = 1 << 3,\n /** The tile's feature table contains features from multiple models. */\n MultiModelFeatureTable = 1 << 4,\n}\n\n/** Describes the maximum major and minor version of the iMdl tile format supported by this version of this package.\n * @internal\n */\nexport enum CurrentImdlVersion {\n /** The unsigned 16-bit major version number. If the major version specified in the tile header is greater than this value, then this\n * front-end is not capable of reading the tile content. Otherwise, this front-end can read the tile content even if the header specifies a\n * greater minor version than CurrentVersion.Minor, although some data may be skipped.\n */\n Major = 35,\n /** The unsigned 16-bit minor version number. If the major version in the tile header is equal to CurrentVersion.Major, then this package can\n * read the tile content even if the minor version in the tile header is greater than this value, although some data may be skipped.\n */\n Minor = 0,\n /** The unsigned 32-bit version number derived from the 16-bit major and minor version numbers. */\n Combined = (Major << 0x10) | Minor,\n}\n\n/** Header embedded at the beginning of binary tile data in iMdl format describing its contents.\n * @internal\n */\nexport class ImdlHeader extends TileHeader {\n /** The size of this header in bytes. */\n public readonly headerLength: number;\n /** Flags describing the geometry contained within the tile */\n public readonly flags: ImdlFlags;\n /** A bounding box no larger than the tile's range, tightly enclosing the tile's geometry; or a null range if the tile is empty */\n public readonly contentRange: ElementAlignedBox3d;\n /** The chord tolerance in meters at which the tile's geometry was faceted */\n public readonly tolerance: number;\n /** The number of elements which contributed at least some geometry to the tile content */\n public readonly numElementsIncluded: number;\n /** The number of elements within the tile range which contributed no geometry to the tile content */\n public readonly numElementsExcluded: number;\n /** The total number of bytes in the binary tile data, including this header */\n public readonly tileLength: number;\n /** A bitfield wherein each set bit indicates an empty sub-volume. */\n public readonly emptySubRanges: number;\n\n public get versionMajor(): number { return this.version >>> 0x10; }\n public get versionMinor(): number { return (this.version & 0xffff) >>> 0; }\n\n public get isValid(): boolean { return TileFormat.IModel === this.format; }\n public get isReadableVersion(): boolean { return this.versionMajor <= CurrentImdlVersion.Major; }\n\n /** Deserialize a header from the binary data at the stream's current position.\n * If the binary data does not contain a valid header, the Header will be marked 'invalid'.\n */\n public constructor(stream: ByteStream) {\n super(stream);\n this.headerLength = stream.readUint32();\n this.flags = stream.readUint32();\n\n this.contentRange = new Range3d();\n nextPoint3d64FromByteStream(stream, this.contentRange.low);\n nextPoint3d64FromByteStream(stream, this.contentRange.high);\n\n this.tolerance = stream.readFloat64();\n this.numElementsIncluded = stream.readUint32();\n this.numElementsExcluded = stream.readUint32();\n this.tileLength = stream.readUint32();\n\n // empty sub-volume bit field introduced in format v02.00\n this.emptySubRanges = this.versionMajor >= 2 ? stream.readUint32() : 0;\n\n // Skip any unprocessed bytes in header\n const remainingHeaderBytes = this.headerLength - stream.curPos;\n assert(remainingHeaderBytes >= 0);\n stream.advance(remainingHeaderBytes);\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n\n/** Header preceding the feature table embedded in an iMdl tile's content.\n * @internal\n */\nexport class FeatureTableHeader {\n // The number of bytes the entire table occupies.\n public readonly length: number;\n // The number of subcategories in the table.\n // NOTE: This used to be \"max features\" which was useless and unused. It is only accurate if ImdlFlags.HasMultiModelFeatureTable is set.\n public readonly numSubCategories: number;\n // The number of features in the table.\n public readonly count: number;\n\n public static readFrom(stream: ByteStream) {\n const length = stream.readUint32();\n const maxFeatures = stream.readUint32();\n const count = stream.readUint32();\n return stream.isPastTheEnd ? undefined : new FeatureTableHeader(length, maxFeatures, count);\n }\n\n public static sizeInBytes = 12;\n\n private constructor(length: number, numSubCategories: number, count: number) {\n this.length = length;\n this.numSubCategories = numSubCategories;\n this.count = count;\n }\n}\n"]}
1
+ {"version":3,"file":"IModelTileIO.js","sourceRoot":"","sources":["../../../src/tile/IModelTileIO.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 Tile\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { Range3d } from \"@itwin/core-geometry\";\nimport { ElementAlignedBox3d } from \"../geometry/Placement\";\nimport { nextPoint3d64FromByteStream, TileFormat, TileHeader } from \"./TileIO\";\n\n/** Flags describing the geometry contained within a tile in iMdl format.\n * @internal\n */\nexport enum ImdlFlags {\n /** No special flags */\n None = 0,\n /** The tile contains some curved geometry */\n ContainsCurves = 1 << 0,\n /** Some geometry within the tile range was omitted based on its size */\n Incomplete = 1 << 2,\n /** The tile must be refined by sub-division, not magnification. */\n DisallowMagnification = 1 << 3,\n /** The tile's feature table contains features from multiple models. */\n MultiModelFeatureTable = 1 << 4,\n}\n\n/** Describes the maximum major and minor version of the iMdl tile format supported by this version of this package.\n * @internal\n */\nexport enum CurrentImdlVersion {\n /** The unsigned 16-bit major version number. If the major version specified in the tile header is greater than this value, then this\n * front-end is not capable of reading the tile content. Otherwise, this front-end can read the tile content even if the header specifies a\n * greater minor version than CurrentVersion.Minor, although some data may be skipped.\n */\n Major = 36,\n /** The unsigned 16-bit minor version number. If the major version in the tile header is equal to CurrentVersion.Major, then this package can\n * read the tile content even if the minor version in the tile header is greater than this value, although some data may be skipped.\n */\n Minor = 0,\n /** The unsigned 32-bit version number derived from the 16-bit major and minor version numbers. */\n Combined = (Major << 0x10) | Minor,\n}\n\n/** Header embedded at the beginning of binary tile data in iMdl format describing its contents.\n * @internal\n */\nexport class ImdlHeader extends TileHeader {\n /** The size of this header in bytes. */\n public readonly headerLength: number;\n /** Flags describing the geometry contained within the tile */\n public readonly flags: ImdlFlags;\n /** A bounding box no larger than the tile's range, tightly enclosing the tile's geometry; or a null range if the tile is empty */\n public readonly contentRange: ElementAlignedBox3d;\n /** The chord tolerance in meters at which the tile's geometry was faceted */\n public readonly tolerance: number;\n /** The number of elements which contributed at least some geometry to the tile content */\n public readonly numElementsIncluded: number;\n /** The number of elements within the tile range which contributed no geometry to the tile content */\n public readonly numElementsExcluded: number;\n /** The total number of bytes in the binary tile data, including this header */\n public readonly tileLength: number;\n /** A bitfield wherein each set bit indicates an empty sub-volume. */\n public readonly emptySubRanges: number;\n\n public get versionMajor(): number { return this.version >>> 0x10; }\n public get versionMinor(): number { return (this.version & 0xffff) >>> 0; }\n\n public get isValid(): boolean { return TileFormat.IModel === this.format; }\n public get isReadableVersion(): boolean { return this.versionMajor <= CurrentImdlVersion.Major; }\n\n /** Deserialize a header from the binary data at the stream's current position.\n * If the binary data does not contain a valid header, the Header will be marked 'invalid'.\n */\n public constructor(stream: ByteStream) {\n super(stream);\n this.headerLength = stream.readUint32();\n this.flags = stream.readUint32();\n\n this.contentRange = new Range3d();\n nextPoint3d64FromByteStream(stream, this.contentRange.low);\n nextPoint3d64FromByteStream(stream, this.contentRange.high);\n\n this.tolerance = stream.readFloat64();\n this.numElementsIncluded = stream.readUint32();\n this.numElementsExcluded = stream.readUint32();\n this.tileLength = stream.readUint32();\n\n // empty sub-volume bit field introduced in format v02.00\n this.emptySubRanges = this.versionMajor >= 2 ? stream.readUint32() : 0;\n\n // Skip any unprocessed bytes in header\n const remainingHeaderBytes = this.headerLength - stream.curPos;\n assert(remainingHeaderBytes >= 0);\n stream.advance(remainingHeaderBytes);\n\n if (stream.isPastTheEnd)\n this.invalidate();\n }\n}\n\n/** Header preceding the feature table embedded in an iMdl tile's content.\n * @internal\n */\nexport class FeatureTableHeader {\n // The number of bytes the entire table occupies.\n public readonly length: number;\n // The number of subcategories in the table.\n // NOTE: This used to be \"max features\" which was useless and unused. It is only accurate if ImdlFlags.HasMultiModelFeatureTable is set.\n public readonly numSubCategories: number;\n // The number of features in the table.\n public readonly count: number;\n\n public static readFrom(stream: ByteStream) {\n const length = stream.readUint32();\n const maxFeatures = stream.readUint32();\n const count = stream.readUint32();\n return stream.isPastTheEnd ? undefined : new FeatureTableHeader(length, maxFeatures, count);\n }\n\n public static sizeInBytes = 12;\n\n private constructor(length: number, numSubCategories: number, count: number) {\n this.length = length;\n this.numSubCategories = numSubCategories;\n this.count = count;\n }\n}\n"]}
@@ -10,6 +10,11 @@ import { TileFormat, TileHeader } from "./TileIO";
10
10
  * @internal
11
11
  */
12
12
  export class PntsHeader extends TileHeader {
13
+ length;
14
+ featureTableJsonLength;
15
+ featureTableBinaryLength;
16
+ batchTableJsonLength;
17
+ batchTableBinaryLength;
13
18
  get isValid() { return TileFormat.Pnts === this.format; }
14
19
  constructor(stream) {
15
20
  super(stream);
@@ -1 +1 @@
1
- {"version":3,"file":"PntsTileIO.js","sourceRoot":"","sources":["../../../src/tile/PntsTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAMxC,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [pnts](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/PointCloud) format.\n * @internal\n */\nexport class PntsHeader extends TileHeader {\n public readonly length: number;\n public readonly featureTableJsonLength: number;\n public readonly featureTableBinaryLength: number;\n public readonly batchTableJsonLength: number;\n public readonly batchTableBinaryLength: number;\n public get isValid(): boolean { return TileFormat.Pnts === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.featureTableJsonLength = stream.readUint32();\n this.featureTableBinaryLength = stream.readUint32();\n this.batchTableJsonLength = stream.readUint32();\n this.batchTableBinaryLength = stream.readUint32();\n }\n}\n"]}
1
+ {"version":3,"file":"PntsTileIO.js","sourceRoot":"","sources":["../../../src/tile/PntsTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxB,MAAM,CAAS;IACf,sBAAsB,CAAS;IAC/B,wBAAwB,CAAS;IACjC,oBAAoB,CAAS;IAC7B,sBAAsB,CAAS;IAC/C,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tile\n */\n\nimport { ByteStream } from \"@itwin/core-bentley\";\nimport { TileFormat, TileHeader } from \"./TileIO\";\n\n/** Header preceding tile content in [pnts](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/PointCloud) format.\n * @internal\n */\nexport class PntsHeader extends TileHeader {\n public readonly length: number;\n public readonly featureTableJsonLength: number;\n public readonly featureTableBinaryLength: number;\n public readonly batchTableJsonLength: number;\n public readonly batchTableBinaryLength: number;\n public get isValid(): boolean { return TileFormat.Pnts === this.format; }\n\n public constructor(stream: ByteStream) {\n super(stream);\n this.length = stream.readUint32();\n this.featureTableJsonLength = stream.readUint32();\n this.featureTableBinaryLength = stream.readUint32();\n this.batchTableJsonLength = stream.readUint32();\n this.batchTableBinaryLength = stream.readUint32();\n }\n}\n"]}
@@ -87,6 +87,8 @@ export class TileReadError extends BentleyError {
87
87
  * @internal
88
88
  */
89
89
  export class TileHeader {
90
+ _format;
91
+ version;
90
92
  /** Construct a Header from the binary data at the supplied stream's current read position */
91
93
  constructor(stream) {
92
94
  this._format = tileFormatFromNumber(stream.readUint32());
@@ -1 +1 @@
1
- {"version":3,"file":"TileIO.js","sourceRoot":"","sources":["../../../src/tile/TileIO.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 Tile\n */\n\nimport { BentleyError, ByteStream } from \"@itwin/core-bentley\";\nimport { Point3d } from \"@itwin/core-geometry\";\n\n/** Type codes for various tile formats. Often these are embedded as 32-bit 'magic numbers' in a binary stream to indicate the format.\n * @internal\n */\nexport enum TileFormat {\n Unknown = 0,\n B3dm = 0x6d643362, // \"b3dm\"\n Gltf = 0x46546c67, // \"glTF\"\n Pnts = 0x73746e70, // \"pnts\"\n IModel = 0x6c644d69, // \"iMdl\"\n Cmpt = 0x74706d63, // cmpt\n I3dm = 0x6d643369, // i3dm\n A3x = 0x583341, // A3X0 (numeric 0 not char '0')\n}\n\n/** Given a magic number, return whether it identifies a known tile format.\n * @internal\n */\nexport function isKnownTileFormat(format: number) {\n switch (format) {\n case TileFormat.Unknown:\n case TileFormat.B3dm:\n case TileFormat.Gltf:\n case TileFormat.IModel:\n case TileFormat.Pnts:\n case TileFormat.Cmpt:\n case TileFormat.I3dm:\n case TileFormat.A3x:\n return true;\n default:\n return false;\n }\n}\n\n/** Given a magic number, attempt to convert it to a known TileFormat.\n * @internal\n */\nexport function tileFormatFromNumber(formatNumber: number): TileFormat {\n const format = formatNumber as TileFormat;\n return isKnownTileFormat(format) ? format : TileFormat.Unknown;\n}\n\n/** Status codes for tile reading operations\n * @internal\n */\nexport enum TileReadStatus {\n Success = 0,\n InvalidTileData,\n InvalidHeader,\n InvalidBatchTable,\n InvalidScene,\n InvalidFeatureTable,\n NewerMajorVersion,\n Canceled,\n}\n\nconst readStatusMessages = [\n \"Success\",\n \"Invalid tile data\",\n \"Invalid tile header\",\n \"Invalid batch table\",\n \"Invalid scene\",\n \"Invalid feature table\",\n \"Major version too new\",\n \"Canceled\",\n];\n\n/** Exception thrown by functions that deserialize tiles.\n * @internal\n */\nexport class TileReadError extends BentleyError {\n public constructor(status: TileReadStatus, message?: string) {\n if (undefined === message)\n message = readStatusMessages[status];\n\n super(status, message);\n }\n\n public get wasCanceled(): boolean { return TileReadStatus.Canceled === this.errorNumber; }\n}\n\n/** The base header preceding tile data of most formats, identifying the tile format and version of that format.\n * Specific tile formats may define their own headers as sub-types of this Header, appending\n * additional format-specific data.\n * @internal\n */\nexport abstract class TileHeader {\n private _format: TileFormat;\n public version: number;\n\n /** Construct a Header from the binary data at the supplied stream's current read position */\n public constructor(stream: ByteStream) {\n this._format = tileFormatFromNumber(stream.readUint32());\n this.version = stream.readUint32();\n }\n\n public get format(): TileFormat { return this._format; }\n\n /** Returns whether the header represents valid data */\n public abstract get isValid(): boolean;\n\n /** Mark the header as representing invalid data */\n protected invalidate(): void {\n this._format = TileFormat.Unknown;\n }\n}\n\n/** Read 3 64-bit floating point numbers at the byte stream's current read position, advance by 24 bytes, and return a Point3d constructed from the 3 numbers.\n * @internal\n */\nexport function nextPoint3d64FromByteStream(stream: ByteStream, result?: Point3d): Point3d {\n const x = stream.readFloat64(),\n y = stream.readFloat64(),\n z = stream.readFloat64();\n\n if (undefined === result)\n return new Point3d(x, y, z);\n\n result.set(x, y, z);\n return result;\n}\n"]}
1
+ {"version":3,"file":"TileIO.js","sourceRoot":"","sources":["../../../src/tile/TileIO.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 Tile\n */\n\nimport { BentleyError, ByteStream } from \"@itwin/core-bentley\";\nimport { Point3d } from \"@itwin/core-geometry\";\n\n/** Type codes for various tile formats. Often these are embedded as 32-bit 'magic numbers' in a binary stream to indicate the format.\n * @internal\n */\nexport enum TileFormat {\n Unknown = 0,\n B3dm = 0x6d643362, // \"b3dm\"\n Gltf = 0x46546c67, // \"glTF\"\n Pnts = 0x73746e70, // \"pnts\"\n IModel = 0x6c644d69, // \"iMdl\"\n Cmpt = 0x74706d63, // cmpt\n I3dm = 0x6d643369, // i3dm\n A3x = 0x583341, // A3X0 (numeric 0 not char '0')\n}\n\n/** Given a magic number, return whether it identifies a known tile format.\n * @internal\n */\nexport function isKnownTileFormat(format: number) {\n switch (format) {\n case TileFormat.Unknown:\n case TileFormat.B3dm:\n case TileFormat.Gltf:\n case TileFormat.IModel:\n case TileFormat.Pnts:\n case TileFormat.Cmpt:\n case TileFormat.I3dm:\n case TileFormat.A3x:\n return true;\n default:\n return false;\n }\n}\n\n/** Given a magic number, attempt to convert it to a known TileFormat.\n * @internal\n */\nexport function tileFormatFromNumber(formatNumber: number): TileFormat {\n const format = formatNumber as TileFormat;\n return isKnownTileFormat(format) ? format : TileFormat.Unknown;\n}\n\n/** Status codes for tile reading operations\n * @internal\n */\nexport enum TileReadStatus {\n Success = 0,\n InvalidTileData,\n InvalidHeader,\n InvalidBatchTable,\n InvalidScene,\n InvalidFeatureTable,\n NewerMajorVersion,\n Canceled,\n}\n\nconst readStatusMessages = [\n \"Success\",\n \"Invalid tile data\",\n \"Invalid tile header\",\n \"Invalid batch table\",\n \"Invalid scene\",\n \"Invalid feature table\",\n \"Major version too new\",\n \"Canceled\",\n];\n\n/** Exception thrown by functions that deserialize tiles.\n * @internal\n */\nexport class TileReadError extends BentleyError {\n public constructor(status: TileReadStatus, message?: string) {\n if (undefined === message)\n message = readStatusMessages[status];\n\n super(status, message);\n }\n\n public get wasCanceled(): boolean { return TileReadStatus.Canceled === this.errorNumber; }\n}\n\n/** The base header preceding tile data of most formats, identifying the tile format and version of that format.\n * Specific tile formats may define their own headers as sub-types of this Header, appending\n * additional format-specific data.\n * @internal\n */\nexport abstract class TileHeader {\n private _format: TileFormat;\n public version: number;\n\n /** Construct a Header from the binary data at the supplied stream's current read position */\n public constructor(stream: ByteStream) {\n this._format = tileFormatFromNumber(stream.readUint32());\n this.version = stream.readUint32();\n }\n\n public get format(): TileFormat { return this._format; }\n\n /** Returns whether the header represents valid data */\n public abstract get isValid(): boolean;\n\n /** Mark the header as representing invalid data */\n protected invalidate(): void {\n this._format = TileFormat.Unknown;\n }\n}\n\n/** Read 3 64-bit floating point numbers at the byte stream's current read position, advance by 24 bytes, and return a Point3d constructed from the 3 numbers.\n * @internal\n */\nexport function nextPoint3d64FromByteStream(stream: ByteStream, result?: Point3d): Point3d {\n const x = stream.readFloat64(),\n y = stream.readFloat64(),\n z = stream.readFloat64();\n\n if (undefined === result)\n return new Point3d(x, y, z);\n\n result.set(x, y, z);\n return result;\n}\n"]}
@@ -60,8 +60,9 @@ export var TileOptions;
60
60
  TileOptions.fromTreeIdAndContentId = fromTreeIdAndContentId;
61
61
  })(TileOptions || (TileOptions = {}));
62
62
  class Parser {
63
+ input;
64
+ curPos = 0;
63
65
  constructor(input) {
64
- this.curPos = 0;
65
66
  this.input = input;
66
67
  }
67
68
  parse(contentId) {
@@ -377,6 +378,8 @@ export var ContentFlags;
377
378
  * @internal
378
379
  */
379
380
  export class ContentIdProvider {
381
+ majorFormatVersion;
382
+ contentFlags;
380
383
  constructor(formatVersion, contentFlags) {
381
384
  this.majorFormatVersion = formatVersion;
382
385
  this.contentFlags = contentFlags;
@@ -446,6 +449,7 @@ class ContentIdV1Provider extends ContentIdProvider {
446
449
  * @internal
447
450
  */
448
451
  class ContentIdV2Provider extends ContentIdProvider {
452
+ _prefix;
449
453
  constructor(majorVersion, allowInstancing, options) {
450
454
  const flags = (allowInstancing && options.enableInstancing) ? ContentFlags.AllowInstancing : ContentFlags.None;
451
455
  super(majorVersion, flags);
@@ -461,6 +465,7 @@ class ContentIdV2Provider extends ContentIdProvider {
461
465
  * @internal
462
466
  */
463
467
  class ContentIdV4Provider extends ContentIdProvider {
468
+ _prefix;
464
469
  constructor(allowInstancing, options, majorVersion) {
465
470
  let flags = (allowInstancing && options.enableInstancing) ? ContentFlags.AllowInstancing : ContentFlags.None;
466
471
  if (options.enableImprovedElision)
@@ -669,6 +674,9 @@ export function computeTileChordTolerance(tile, is3d, tileScreenSize) {
669
674
  * @internal
670
675
  */
671
676
  export class TileMetadataReader {
677
+ _is2d;
678
+ _isVolumeClassifier;
679
+ _options;
672
680
  constructor(type, is2d, options) {
673
681
  this._is2d = is2d;
674
682
  this._isVolumeClassifier = BatchType.VolumeClassifier === type;