@itwin/core-common 3.4.2 → 3.4.4

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 (932) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  3. package/lib/cjs/AmbientOcclusion.js +55 -55
  4. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  5. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  6. package/lib/cjs/AnalysisStyle.js +165 -165
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/AuthorizationClient.d.ts +11 -11
  9. package/lib/cjs/AuthorizationClient.js +9 -9
  10. package/lib/cjs/AuthorizationClient.js.map +1 -1
  11. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  12. package/lib/cjs/BackgroundMapProvider.js +68 -68
  13. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  14. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  15. package/lib/cjs/BackgroundMapSettings.js +156 -156
  16. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  17. package/lib/cjs/Base64EncodedString.d.ts +30 -30
  18. package/lib/cjs/Base64EncodedString.js +56 -56
  19. package/lib/cjs/Base64EncodedString.js.map +1 -1
  20. package/lib/cjs/BlobReader.d.ts +31 -31
  21. package/lib/cjs/BlobReader.js +84 -84
  22. package/lib/cjs/BlobReader.js.map +1 -1
  23. package/lib/cjs/BriefcaseTypes.d.ts +189 -189
  24. package/lib/cjs/BriefcaseTypes.js +95 -95
  25. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  26. package/lib/cjs/Camera.d.ts +42 -42
  27. package/lib/cjs/Camera.js +62 -62
  28. package/lib/cjs/Camera.js.map +1 -1
  29. package/lib/cjs/ChangedElements.d.ts +83 -83
  30. package/lib/cjs/ChangedElements.js +21 -21
  31. package/lib/cjs/ChangedElements.js.map +1 -1
  32. package/lib/cjs/ChangedEntities.d.ts +45 -45
  33. package/lib/cjs/ChangedEntities.js +9 -9
  34. package/lib/cjs/ChangedEntities.js.map +1 -1
  35. package/lib/cjs/ChangesetProps.d.ts +98 -98
  36. package/lib/cjs/ChangesetProps.js +22 -22
  37. package/lib/cjs/ChangesetProps.js.map +1 -1
  38. package/lib/cjs/ClipStyle.d.ts +89 -89
  39. package/lib/cjs/ClipStyle.js +123 -123
  40. package/lib/cjs/ClipStyle.js.map +1 -1
  41. package/lib/cjs/CloudStorage.d.ts +62 -62
  42. package/lib/cjs/CloudStorage.js +113 -113
  43. package/lib/cjs/CloudStorage.js.map +1 -1
  44. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  45. package/lib/cjs/CloudStorageTileCache.js +66 -66
  46. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  47. package/lib/cjs/Code.d.ts +256 -256
  48. package/lib/cjs/Code.js +281 -281
  49. package/lib/cjs/Code.js.map +1 -1
  50. package/lib/cjs/ColorByName.d.ts +161 -161
  51. package/lib/cjs/ColorByName.js +169 -169
  52. package/lib/cjs/ColorByName.js.map +1 -1
  53. package/lib/cjs/ColorDef.d.ts +208 -208
  54. package/lib/cjs/ColorDef.js +571 -571
  55. package/lib/cjs/ColorDef.js.map +1 -1
  56. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  57. package/lib/cjs/CommonLoggerCategory.js +26 -26
  58. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  59. package/lib/cjs/ConcurrentQuery.d.ts +241 -241
  60. package/lib/cjs/ConcurrentQuery.js +380 -380
  61. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  62. package/lib/cjs/ContextRealityModel.d.ts +255 -255
  63. package/lib/cjs/ContextRealityModel.js +325 -325
  64. package/lib/cjs/ContextRealityModel.js.map +1 -1
  65. package/lib/cjs/DisplayStyleSettings.d.ts +552 -552
  66. package/lib/cjs/DisplayStyleSettings.js +951 -951
  67. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  68. package/lib/cjs/ECSchemaProps.d.ts +39 -39
  69. package/lib/cjs/ECSchemaProps.js +9 -9
  70. package/lib/cjs/ECSchemaProps.js.map +1 -1
  71. package/lib/cjs/ECSqlReader.d.ts +70 -70
  72. package/lib/cjs/ECSqlReader.js +280 -280
  73. package/lib/cjs/ECSqlReader.js.map +1 -1
  74. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  75. package/lib/cjs/ECSqlTypes.js +189 -189
  76. package/lib/cjs/ECSqlTypes.js.map +1 -1
  77. package/lib/cjs/ElementProps.d.ts +479 -476
  78. package/lib/cjs/ElementProps.d.ts.map +1 -1
  79. package/lib/cjs/ElementProps.js +99 -99
  80. package/lib/cjs/ElementProps.js.map +1 -1
  81. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  82. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  83. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  84. package/lib/cjs/EntityProps.d.ts +176 -176
  85. package/lib/cjs/EntityProps.js +112 -112
  86. package/lib/cjs/EntityProps.js.map +1 -1
  87. package/lib/cjs/EntityReference.d.ts +51 -51
  88. package/lib/cjs/EntityReference.js +56 -56
  89. package/lib/cjs/EntityReference.js.map +1 -1
  90. package/lib/cjs/Environment.d.ts +61 -61
  91. package/lib/cjs/Environment.js +73 -73
  92. package/lib/cjs/Environment.js.map +1 -1
  93. package/lib/cjs/FeatureGates.d.ts +31 -31
  94. package/lib/cjs/FeatureGates.js +55 -55
  95. package/lib/cjs/FeatureGates.js.map +1 -1
  96. package/lib/cjs/FeatureIndex.d.ts +39 -39
  97. package/lib/cjs/FeatureIndex.js +63 -63
  98. package/lib/cjs/FeatureIndex.js.map +1 -1
  99. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  100. package/lib/cjs/FeatureSymbology.js +614 -614
  101. package/lib/cjs/FeatureSymbology.js.map +1 -1
  102. package/lib/cjs/FeatureTable.d.ts +141 -141
  103. package/lib/cjs/FeatureTable.js +278 -278
  104. package/lib/cjs/FeatureTable.js.map +1 -1
  105. package/lib/cjs/Fonts.d.ts +51 -51
  106. package/lib/cjs/Fonts.js +53 -53
  107. package/lib/cjs/Fonts.js.map +1 -1
  108. package/lib/cjs/Frustum.d.ts +114 -114
  109. package/lib/cjs/Frustum.js +292 -292
  110. package/lib/cjs/Frustum.js.map +1 -1
  111. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  112. package/lib/cjs/GeoCoordinateServices.js +80 -80
  113. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  114. package/lib/cjs/GeometryContainment.d.ts +28 -28
  115. package/lib/cjs/GeometryContainment.js +9 -9
  116. package/lib/cjs/GeometryContainment.js.map +1 -1
  117. package/lib/cjs/GeometryParams.d.ts +130 -130
  118. package/lib/cjs/GeometryParams.js +174 -174
  119. package/lib/cjs/GeometryParams.js.map +1 -1
  120. package/lib/cjs/GeometrySummary.d.ts +45 -45
  121. package/lib/cjs/GeometrySummary.js +23 -23
  122. package/lib/cjs/GeometrySummary.js.map +1 -1
  123. package/lib/cjs/Gradient.d.ts +139 -139
  124. package/lib/cjs/Gradient.js +455 -455
  125. package/lib/cjs/Gradient.js.map +1 -1
  126. package/lib/cjs/GraphicParams.d.ts +58 -58
  127. package/lib/cjs/GraphicParams.js +85 -85
  128. package/lib/cjs/GraphicParams.js.map +1 -1
  129. package/lib/cjs/GroundPlane.d.ts +52 -52
  130. package/lib/cjs/GroundPlane.js +64 -64
  131. package/lib/cjs/GroundPlane.js.map +1 -1
  132. package/lib/cjs/HSLColor.d.ts +20 -20
  133. package/lib/cjs/HSLColor.js +32 -32
  134. package/lib/cjs/HSLColor.js.map +1 -1
  135. package/lib/cjs/HSVColor.d.ts +30 -30
  136. package/lib/cjs/HSVColor.js +59 -59
  137. package/lib/cjs/HSVColor.js.map +1 -1
  138. package/lib/cjs/HiddenLine.d.ts +97 -97
  139. package/lib/cjs/HiddenLine.js +162 -162
  140. package/lib/cjs/HiddenLine.js.map +1 -1
  141. package/lib/cjs/Hilite.d.ts +50 -50
  142. package/lib/cjs/Hilite.js +64 -64
  143. package/lib/cjs/Hilite.js.map +1 -1
  144. package/lib/cjs/IModel.d.ts +359 -359
  145. package/lib/cjs/IModel.js +347 -347
  146. package/lib/cjs/IModel.js.map +1 -1
  147. package/lib/cjs/IModelError.d.ts +36 -36
  148. package/lib/cjs/IModelError.js +72 -72
  149. package/lib/cjs/IModelError.js.map +1 -1
  150. package/lib/cjs/IModelVersion.d.ts +68 -68
  151. package/lib/cjs/IModelVersion.js +79 -79
  152. package/lib/cjs/IModelVersion.js.map +1 -1
  153. package/lib/cjs/Image.d.ts +86 -86
  154. package/lib/cjs/Image.js +128 -128
  155. package/lib/cjs/Image.js.map +1 -1
  156. package/lib/cjs/IpcAppProps.d.ts +124 -124
  157. package/lib/cjs/IpcAppProps.js +18 -18
  158. package/lib/cjs/IpcAppProps.js.map +1 -1
  159. package/lib/cjs/LightSettings.d.ts +224 -224
  160. package/lib/cjs/LightSettings.js +309 -309
  161. package/lib/cjs/LightSettings.js.map +1 -1
  162. package/lib/cjs/LinePixels.d.ts +34 -34
  163. package/lib/cjs/LinePixels.js +42 -42
  164. package/lib/cjs/LinePixels.js.map +1 -1
  165. package/lib/cjs/Localization.d.ts +111 -111
  166. package/lib/cjs/Localization.js +26 -26
  167. package/lib/cjs/Localization.js.map +1 -1
  168. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  169. package/lib/cjs/MapImagerySettings.js +80 -80
  170. package/lib/cjs/MapImagerySettings.js.map +1 -1
  171. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  172. package/lib/cjs/MapLayerSettings.js +411 -411
  173. package/lib/cjs/MapLayerSettings.js.map +1 -1
  174. package/lib/cjs/MassProperties.d.ts +64 -64
  175. package/lib/cjs/MassProperties.js +23 -23
  176. package/lib/cjs/MassProperties.js.map +1 -1
  177. package/lib/cjs/MaterialProps.d.ts +118 -118
  178. package/lib/cjs/MaterialProps.js +23 -23
  179. package/lib/cjs/MaterialProps.js.map +1 -1
  180. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  181. package/lib/cjs/ModelClipGroup.js +98 -98
  182. package/lib/cjs/ModelClipGroup.js.map +1 -1
  183. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  184. package/lib/cjs/ModelGeometryChanges.js +83 -83
  185. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  186. package/lib/cjs/ModelProps.d.ts +67 -67
  187. package/lib/cjs/ModelProps.js +9 -9
  188. package/lib/cjs/ModelProps.js.map +1 -1
  189. package/lib/cjs/NativeAppProps.d.ts +122 -122
  190. package/lib/cjs/NativeAppProps.js +30 -30
  191. package/lib/cjs/NativeAppProps.js.map +1 -1
  192. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  193. package/lib/cjs/OctEncodedNormal.js +98 -98
  194. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  195. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  196. package/lib/cjs/PlanProjectionSettings.js +63 -63
  197. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  198. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  199. package/lib/cjs/PlanarClipMask.js +136 -136
  200. package/lib/cjs/PlanarClipMask.js.map +1 -1
  201. package/lib/cjs/QPoint.d.ts +479 -479
  202. package/lib/cjs/QPoint.js +826 -826
  203. package/lib/cjs/QPoint.js.map +1 -1
  204. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  205. package/lib/cjs/RealityDataAccessProps.js +19 -19
  206. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  207. package/lib/cjs/Render.d.ts +89 -89
  208. package/lib/cjs/Render.js +177 -177
  209. package/lib/cjs/Render.js.map +1 -1
  210. package/lib/cjs/RenderMaterial.d.ts +58 -58
  211. package/lib/cjs/RenderMaterial.js +76 -76
  212. package/lib/cjs/RenderMaterial.js.map +1 -1
  213. package/lib/cjs/RenderSchedule.d.ts +541 -541
  214. package/lib/cjs/RenderSchedule.js +1000 -1000
  215. package/lib/cjs/RenderTexture.d.ts +70 -70
  216. package/lib/cjs/RenderTexture.js +59 -59
  217. package/lib/cjs/RenderTexture.js.map +1 -1
  218. package/lib/cjs/RgbColor.d.ts +39 -39
  219. package/lib/cjs/RgbColor.js +67 -67
  220. package/lib/cjs/RgbColor.js.map +1 -1
  221. package/lib/cjs/RpcInterface.d.ts +33 -33
  222. package/lib/cjs/RpcInterface.js +137 -137
  223. package/lib/cjs/RpcInterface.js.map +1 -1
  224. package/lib/cjs/RpcManager.d.ts +40 -40
  225. package/lib/cjs/RpcManager.js +55 -55
  226. package/lib/cjs/RpcManager.js.map +1 -1
  227. package/lib/cjs/SessionProps.d.ts +16 -16
  228. package/lib/cjs/SessionProps.js +9 -9
  229. package/lib/cjs/SessionProps.js.map +1 -1
  230. package/lib/cjs/SkyBox.d.ts +215 -215
  231. package/lib/cjs/SkyBox.js +210 -210
  232. package/lib/cjs/SkyBox.js.map +1 -1
  233. package/lib/cjs/Snapping.d.ts +49 -49
  234. package/lib/cjs/Snapping.js +9 -9
  235. package/lib/cjs/Snapping.js.map +1 -1
  236. package/lib/cjs/SolarCalculate.d.ts +27 -27
  237. package/lib/cjs/SolarCalculate.js +211 -211
  238. package/lib/cjs/SolarCalculate.js.map +1 -1
  239. package/lib/cjs/SolarShadows.d.ts +35 -35
  240. package/lib/cjs/SolarShadows.js +62 -62
  241. package/lib/cjs/SolarShadows.js.map +1 -1
  242. package/lib/cjs/SpatialClassification.d.ts +208 -208
  243. package/lib/cjs/SpatialClassification.js +340 -340
  244. package/lib/cjs/SpatialClassification.js.map +1 -1
  245. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  246. package/lib/cjs/SubCategoryAppearance.js +96 -96
  247. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  248. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  249. package/lib/cjs/SubCategoryOverride.js +104 -104
  250. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  251. package/lib/cjs/TerrainSettings.d.ts +82 -82
  252. package/lib/cjs/TerrainSettings.js +102 -102
  253. package/lib/cjs/TerrainSettings.js.map +1 -1
  254. package/lib/cjs/TextureMapping.d.ts +101 -101
  255. package/lib/cjs/TextureMapping.js +174 -174
  256. package/lib/cjs/TextureMapping.js.map +1 -1
  257. package/lib/cjs/TextureProps.d.ts +65 -65
  258. package/lib/cjs/TextureProps.js +28 -28
  259. package/lib/cjs/TextureProps.js.map +1 -1
  260. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  261. package/lib/cjs/ThematicDisplay.js +344 -344
  262. package/lib/cjs/ThematicDisplay.js.map +1 -1
  263. package/lib/cjs/Thumbnail.d.ts +26 -26
  264. package/lib/cjs/Thumbnail.js +9 -9
  265. package/lib/cjs/Thumbnail.js.map +1 -1
  266. package/lib/cjs/TileProps.d.ts +82 -82
  267. package/lib/cjs/TileProps.js +29 -29
  268. package/lib/cjs/TileProps.js.map +1 -1
  269. package/lib/cjs/Tween.d.ts +191 -191
  270. package/lib/cjs/Tween.js +570 -570
  271. package/lib/cjs/Tween.js.map +1 -1
  272. package/lib/cjs/TxnAction.d.ts +21 -21
  273. package/lib/cjs/TxnAction.js +29 -29
  274. package/lib/cjs/TxnAction.js.map +1 -1
  275. package/lib/cjs/ViewDetails.d.ts +125 -125
  276. package/lib/cjs/ViewDetails.js +158 -158
  277. package/lib/cjs/ViewDetails.js.map +1 -1
  278. package/lib/cjs/ViewFlags.d.ts +291 -291
  279. package/lib/cjs/ViewFlags.js +368 -368
  280. package/lib/cjs/ViewFlags.js.map +1 -1
  281. package/lib/cjs/ViewProps.d.ts +205 -205
  282. package/lib/cjs/ViewProps.js +9 -9
  283. package/lib/cjs/ViewProps.js.map +1 -1
  284. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  285. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  286. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  287. package/lib/cjs/core-common.d.ts +241 -241
  288. package/lib/cjs/core-common.js +257 -257
  289. package/lib/cjs/core-common.js.map +1 -1
  290. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  291. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  292. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  293. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  294. package/lib/cjs/domains/GenericElementProps.js +9 -9
  295. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  296. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  297. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  298. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  299. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  300. package/lib/cjs/geometry/AreaPattern.js +204 -204
  301. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  302. package/lib/cjs/geometry/BoundingSphere.d.ts +14 -14
  303. package/lib/cjs/geometry/BoundingSphere.js +30 -30
  304. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  305. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  306. package/lib/cjs/geometry/Cartographic.js +345 -345
  307. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  308. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  309. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  310. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  311. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  312. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  313. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  314. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  315. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  316. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  317. package/lib/cjs/geometry/FrustumPlanes.d.ts +32 -32
  318. package/lib/cjs/geometry/FrustumPlanes.js +132 -132
  319. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  320. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  321. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  322. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  323. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  324. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  325. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  326. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  327. package/lib/cjs/geometry/GeometryStream.js +469 -469
  328. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  329. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  330. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  331. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  332. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  333. package/lib/cjs/geometry/LineStyle.js +129 -129
  334. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  335. package/lib/cjs/geometry/Placement.d.ts +95 -95
  336. package/lib/cjs/geometry/Placement.js +131 -131
  337. package/lib/cjs/geometry/Placement.js.map +1 -1
  338. package/lib/cjs/geometry/Projection.d.ts +251 -251
  339. package/lib/cjs/geometry/Projection.js +198 -198
  340. package/lib/cjs/geometry/Projection.js.map +1 -1
  341. package/lib/cjs/geometry/TextString.d.ts +55 -55
  342. package/lib/cjs/geometry/TextString.js +65 -65
  343. package/lib/cjs/geometry/TextString.js.map +1 -1
  344. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  345. package/lib/cjs/ipc/IpcSession.js +27 -27
  346. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  347. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  348. package/lib/cjs/ipc/IpcSocket.js +16 -16
  349. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  350. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  351. package/lib/cjs/ipc/IpcWebSocket.js +151 -151
  352. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  353. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  354. package/lib/cjs/ipc/IpcWebSocketTransport.js +158 -158
  355. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  356. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  357. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  358. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  359. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +97 -97
  360. package/lib/cjs/rpc/IModelReadRpcInterface.js +119 -119
  361. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  362. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  363. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  364. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  365. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  366. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  367. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  368. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  369. package/lib/cjs/rpc/TestRpcManager.js +39 -39
  370. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  371. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  372. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  373. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  374. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  375. package/lib/cjs/rpc/core/RpcConfiguration.js +192 -192
  376. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  377. package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -85
  378. package/lib/cjs/rpc/core/RpcConstants.js +103 -103
  379. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  380. package/lib/cjs/rpc/core/RpcControl.d.ts +52 -52
  381. package/lib/cjs/rpc/core/RpcControl.js +149 -149
  382. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  383. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  384. package/lib/cjs/rpc/core/RpcInvocation.js +257 -257
  385. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  386. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +36 -36
  387. package/lib/cjs/rpc/core/RpcMarshaling.js +153 -153
  388. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  389. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  390. package/lib/cjs/rpc/core/RpcOperation.js +133 -133
  391. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  392. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  393. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
  394. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  395. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  396. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  397. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  398. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  399. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  400. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  401. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  402. package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
  403. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  404. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  405. package/lib/cjs/rpc/core/RpcRequest.js +477 -477
  406. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  407. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  408. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  409. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  410. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  411. package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
  412. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  413. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  414. package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
  415. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  416. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  417. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  418. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  419. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  420. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -142
  421. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  422. package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
  423. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  424. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  425. package/lib/cjs/rpc/web/RpcMultipart.d.ts +31 -31
  426. package/lib/cjs/rpc/web/RpcMultipart.js +45 -45
  427. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  428. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +17 -17
  429. package/lib/cjs/rpc/web/WebAppRpcLogging.js +140 -140
  430. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  431. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  432. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  433. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  434. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +71 -71
  435. package/lib/cjs/rpc/web/WebAppRpcRequest.js +374 -374
  436. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  437. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  438. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +359 -359
  439. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  440. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  441. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  442. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  443. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  444. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  445. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  446. package/lib/cjs/tile/ElementGraphics.d.ts +134 -134
  447. package/lib/cjs/tile/ElementGraphics.js +9 -9
  448. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  449. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  450. package/lib/cjs/tile/GltfTileIO.js +109 -109
  451. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  452. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  453. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  454. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  455. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  456. package/lib/cjs/tile/IModelTileIO.js +95 -95
  457. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  458. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  459. package/lib/cjs/tile/PntsTileIO.js +26 -26
  460. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  461. package/lib/cjs/tile/TileIO.d.ts +66 -66
  462. package/lib/cjs/tile/TileIO.js +118 -118
  463. package/lib/cjs/tile/TileIO.js.map +1 -1
  464. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  465. package/lib/cjs/tile/TileMetadata.js +676 -676
  466. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  467. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  468. package/lib/esm/AmbientOcclusion.js +52 -52
  469. package/lib/esm/AmbientOcclusion.js.map +1 -1
  470. package/lib/esm/AnalysisStyle.d.ts +134 -134
  471. package/lib/esm/AnalysisStyle.js +159 -159
  472. package/lib/esm/AnalysisStyle.js.map +1 -1
  473. package/lib/esm/AuthorizationClient.d.ts +11 -11
  474. package/lib/esm/AuthorizationClient.js +8 -8
  475. package/lib/esm/AuthorizationClient.js.map +1 -1
  476. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  477. package/lib/esm/BackgroundMapProvider.js +64 -64
  478. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  479. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  480. package/lib/esm/BackgroundMapSettings.js +152 -152
  481. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  482. package/lib/esm/Base64EncodedString.d.ts +30 -30
  483. package/lib/esm/Base64EncodedString.js +53 -53
  484. package/lib/esm/Base64EncodedString.js.map +1 -1
  485. package/lib/esm/BlobReader.d.ts +31 -31
  486. package/lib/esm/BlobReader.js +79 -79
  487. package/lib/esm/BlobReader.js.map +1 -1
  488. package/lib/esm/BriefcaseTypes.d.ts +189 -189
  489. package/lib/esm/BriefcaseTypes.js +92 -92
  490. package/lib/esm/BriefcaseTypes.js.map +1 -1
  491. package/lib/esm/Camera.d.ts +42 -42
  492. package/lib/esm/Camera.js +58 -58
  493. package/lib/esm/Camera.js.map +1 -1
  494. package/lib/esm/ChangedElements.d.ts +83 -83
  495. package/lib/esm/ChangedElements.js +18 -18
  496. package/lib/esm/ChangedElements.js.map +1 -1
  497. package/lib/esm/ChangedEntities.d.ts +45 -45
  498. package/lib/esm/ChangedEntities.js +8 -8
  499. package/lib/esm/ChangedEntities.js.map +1 -1
  500. package/lib/esm/ChangesetProps.d.ts +98 -98
  501. package/lib/esm/ChangesetProps.js +19 -19
  502. package/lib/esm/ChangesetProps.js.map +1 -1
  503. package/lib/esm/ClipStyle.d.ts +89 -89
  504. package/lib/esm/ClipStyle.js +118 -118
  505. package/lib/esm/ClipStyle.js.map +1 -1
  506. package/lib/esm/CloudStorage.d.ts +62 -62
  507. package/lib/esm/CloudStorage.js +109 -109
  508. package/lib/esm/CloudStorage.js.map +1 -1
  509. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  510. package/lib/esm/CloudStorageTileCache.js +62 -62
  511. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  512. package/lib/esm/Code.d.ts +256 -256
  513. package/lib/esm/Code.js +276 -276
  514. package/lib/esm/Code.js.map +1 -1
  515. package/lib/esm/ColorByName.d.ts +161 -161
  516. package/lib/esm/ColorByName.js +166 -166
  517. package/lib/esm/ColorByName.js.map +1 -1
  518. package/lib/esm/ColorDef.d.ts +208 -208
  519. package/lib/esm/ColorDef.js +567 -567
  520. package/lib/esm/ColorDef.js.map +1 -1
  521. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  522. package/lib/esm/CommonLoggerCategory.js +23 -23
  523. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  524. package/lib/esm/ConcurrentQuery.d.ts +241 -241
  525. package/lib/esm/ConcurrentQuery.js +373 -373
  526. package/lib/esm/ConcurrentQuery.js.map +1 -1
  527. package/lib/esm/ContextRealityModel.d.ts +255 -255
  528. package/lib/esm/ContextRealityModel.js +320 -320
  529. package/lib/esm/ContextRealityModel.js.map +1 -1
  530. package/lib/esm/DisplayStyleSettings.d.ts +552 -552
  531. package/lib/esm/DisplayStyleSettings.js +946 -946
  532. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  533. package/lib/esm/ECSchemaProps.d.ts +39 -39
  534. package/lib/esm/ECSchemaProps.js +8 -8
  535. package/lib/esm/ECSchemaProps.js.map +1 -1
  536. package/lib/esm/ECSqlReader.d.ts +70 -70
  537. package/lib/esm/ECSqlReader.js +275 -275
  538. package/lib/esm/ECSqlReader.js.map +1 -1
  539. package/lib/esm/ECSqlTypes.d.ts +128 -128
  540. package/lib/esm/ECSqlTypes.js +185 -185
  541. package/lib/esm/ECSqlTypes.js.map +1 -1
  542. package/lib/esm/ElementProps.d.ts +479 -476
  543. package/lib/esm/ElementProps.d.ts.map +1 -1
  544. package/lib/esm/ElementProps.js +92 -92
  545. package/lib/esm/ElementProps.js.map +1 -1
  546. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  547. package/lib/esm/EmphasizeElementsProps.js +22 -22
  548. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  549. package/lib/esm/EntityProps.d.ts +176 -176
  550. package/lib/esm/EntityProps.js +107 -107
  551. package/lib/esm/EntityProps.js.map +1 -1
  552. package/lib/esm/EntityReference.d.ts +51 -51
  553. package/lib/esm/EntityReference.js +52 -52
  554. package/lib/esm/EntityReference.js.map +1 -1
  555. package/lib/esm/Environment.d.ts +61 -61
  556. package/lib/esm/Environment.js +69 -69
  557. package/lib/esm/Environment.js.map +1 -1
  558. package/lib/esm/FeatureGates.d.ts +31 -31
  559. package/lib/esm/FeatureGates.js +51 -51
  560. package/lib/esm/FeatureGates.js.map +1 -1
  561. package/lib/esm/FeatureIndex.d.ts +39 -39
  562. package/lib/esm/FeatureIndex.js +57 -57
  563. package/lib/esm/FeatureIndex.js.map +1 -1
  564. package/lib/esm/FeatureSymbology.d.ts +444 -444
  565. package/lib/esm/FeatureSymbology.js +609 -609
  566. package/lib/esm/FeatureSymbology.js.map +1 -1
  567. package/lib/esm/FeatureTable.d.ts +141 -141
  568. package/lib/esm/FeatureTable.js +272 -272
  569. package/lib/esm/FeatureTable.js.map +1 -1
  570. package/lib/esm/Fonts.d.ts +51 -51
  571. package/lib/esm/Fonts.js +49 -49
  572. package/lib/esm/Fonts.js.map +1 -1
  573. package/lib/esm/Frustum.d.ts +114 -114
  574. package/lib/esm/Frustum.js +288 -288
  575. package/lib/esm/Frustum.js.map +1 -1
  576. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  577. package/lib/esm/GeoCoordinateServices.js +76 -76
  578. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  579. package/lib/esm/GeometryContainment.d.ts +28 -28
  580. package/lib/esm/GeometryContainment.js +8 -8
  581. package/lib/esm/GeometryContainment.js.map +1 -1
  582. package/lib/esm/GeometryParams.d.ts +130 -130
  583. package/lib/esm/GeometryParams.js +170 -170
  584. package/lib/esm/GeometryParams.js.map +1 -1
  585. package/lib/esm/GeometrySummary.d.ts +45 -45
  586. package/lib/esm/GeometrySummary.js +20 -20
  587. package/lib/esm/GeometrySummary.js.map +1 -1
  588. package/lib/esm/Gradient.d.ts +139 -139
  589. package/lib/esm/Gradient.js +452 -452
  590. package/lib/esm/Gradient.js.map +1 -1
  591. package/lib/esm/GraphicParams.d.ts +58 -58
  592. package/lib/esm/GraphicParams.js +81 -81
  593. package/lib/esm/GraphicParams.js.map +1 -1
  594. package/lib/esm/GroundPlane.d.ts +52 -52
  595. package/lib/esm/GroundPlane.js +60 -60
  596. package/lib/esm/GroundPlane.js.map +1 -1
  597. package/lib/esm/HSLColor.d.ts +20 -20
  598. package/lib/esm/HSLColor.js +28 -28
  599. package/lib/esm/HSLColor.js.map +1 -1
  600. package/lib/esm/HSVColor.d.ts +30 -30
  601. package/lib/esm/HSVColor.js +55 -55
  602. package/lib/esm/HSVColor.js.map +1 -1
  603. package/lib/esm/HiddenLine.d.ts +97 -97
  604. package/lib/esm/HiddenLine.js +159 -159
  605. package/lib/esm/HiddenLine.js.map +1 -1
  606. package/lib/esm/Hilite.d.ts +50 -50
  607. package/lib/esm/Hilite.js +61 -61
  608. package/lib/esm/Hilite.js.map +1 -1
  609. package/lib/esm/IModel.d.ts +359 -359
  610. package/lib/esm/IModel.js +342 -342
  611. package/lib/esm/IModel.js.map +1 -1
  612. package/lib/esm/IModelError.d.ts +36 -36
  613. package/lib/esm/IModelError.js +55 -55
  614. package/lib/esm/IModelError.js.map +1 -1
  615. package/lib/esm/IModelVersion.d.ts +68 -68
  616. package/lib/esm/IModelVersion.js +75 -75
  617. package/lib/esm/IModelVersion.js.map +1 -1
  618. package/lib/esm/Image.d.ts +86 -86
  619. package/lib/esm/Image.js +120 -120
  620. package/lib/esm/Image.js.map +1 -1
  621. package/lib/esm/IpcAppProps.d.ts +124 -124
  622. package/lib/esm/IpcAppProps.js +15 -15
  623. package/lib/esm/IpcAppProps.js.map +1 -1
  624. package/lib/esm/LightSettings.d.ts +224 -224
  625. package/lib/esm/LightSettings.js +301 -301
  626. package/lib/esm/LightSettings.js.map +1 -1
  627. package/lib/esm/LinePixels.d.ts +34 -34
  628. package/lib/esm/LinePixels.js +39 -39
  629. package/lib/esm/LinePixels.js.map +1 -1
  630. package/lib/esm/Localization.d.ts +111 -111
  631. package/lib/esm/Localization.js +22 -22
  632. package/lib/esm/Localization.js.map +1 -1
  633. package/lib/esm/MapImagerySettings.d.ts +62 -62
  634. package/lib/esm/MapImagerySettings.js +76 -76
  635. package/lib/esm/MapImagerySettings.js.map +1 -1
  636. package/lib/esm/MapLayerSettings.d.ts +272 -272
  637. package/lib/esm/MapLayerSettings.js +403 -403
  638. package/lib/esm/MapLayerSettings.js.map +1 -1
  639. package/lib/esm/MassProperties.d.ts +64 -64
  640. package/lib/esm/MassProperties.js +20 -20
  641. package/lib/esm/MassProperties.js.map +1 -1
  642. package/lib/esm/MaterialProps.d.ts +118 -118
  643. package/lib/esm/MaterialProps.js +20 -20
  644. package/lib/esm/MaterialProps.js.map +1 -1
  645. package/lib/esm/ModelClipGroup.d.ts +67 -67
  646. package/lib/esm/ModelClipGroup.js +93 -93
  647. package/lib/esm/ModelClipGroup.js.map +1 -1
  648. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  649. package/lib/esm/ModelGeometryChanges.js +80 -80
  650. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  651. package/lib/esm/ModelProps.d.ts +67 -67
  652. package/lib/esm/ModelProps.js +8 -8
  653. package/lib/esm/ModelProps.js.map +1 -1
  654. package/lib/esm/NativeAppProps.d.ts +122 -122
  655. package/lib/esm/NativeAppProps.js +27 -27
  656. package/lib/esm/NativeAppProps.js.map +1 -1
  657. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  658. package/lib/esm/OctEncodedNormal.js +93 -93
  659. package/lib/esm/OctEncodedNormal.js.map +1 -1
  660. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  661. package/lib/esm/PlanProjectionSettings.js +59 -59
  662. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  663. package/lib/esm/PlanarClipMask.d.ts +177 -177
  664. package/lib/esm/PlanarClipMask.js +132 -132
  665. package/lib/esm/PlanarClipMask.js.map +1 -1
  666. package/lib/esm/QPoint.d.ts +479 -479
  667. package/lib/esm/QPoint.js +815 -815
  668. package/lib/esm/QPoint.js.map +1 -1
  669. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  670. package/lib/esm/RealityDataAccessProps.js +16 -16
  671. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  672. package/lib/esm/Render.d.ts +89 -89
  673. package/lib/esm/Render.js +165 -165
  674. package/lib/esm/Render.js.map +1 -1
  675. package/lib/esm/RenderMaterial.d.ts +58 -58
  676. package/lib/esm/RenderMaterial.js +72 -72
  677. package/lib/esm/RenderMaterial.js.map +1 -1
  678. package/lib/esm/RenderSchedule.d.ts +541 -541
  679. package/lib/esm/RenderSchedule.js +997 -997
  680. package/lib/esm/RenderTexture.d.ts +70 -70
  681. package/lib/esm/RenderTexture.js +55 -55
  682. package/lib/esm/RenderTexture.js.map +1 -1
  683. package/lib/esm/RgbColor.d.ts +39 -39
  684. package/lib/esm/RgbColor.js +63 -63
  685. package/lib/esm/RgbColor.js.map +1 -1
  686. package/lib/esm/RpcInterface.d.ts +33 -33
  687. package/lib/esm/RpcInterface.js +133 -133
  688. package/lib/esm/RpcInterface.js.map +1 -1
  689. package/lib/esm/RpcManager.d.ts +40 -40
  690. package/lib/esm/RpcManager.js +51 -51
  691. package/lib/esm/RpcManager.js.map +1 -1
  692. package/lib/esm/SessionProps.d.ts +16 -16
  693. package/lib/esm/SessionProps.js +8 -8
  694. package/lib/esm/SessionProps.js.map +1 -1
  695. package/lib/esm/SkyBox.d.ts +215 -215
  696. package/lib/esm/SkyBox.js +203 -203
  697. package/lib/esm/SkyBox.js.map +1 -1
  698. package/lib/esm/Snapping.d.ts +49 -49
  699. package/lib/esm/Snapping.js +8 -8
  700. package/lib/esm/Snapping.js.map +1 -1
  701. package/lib/esm/SolarCalculate.d.ts +27 -27
  702. package/lib/esm/SolarCalculate.js +204 -204
  703. package/lib/esm/SolarCalculate.js.map +1 -1
  704. package/lib/esm/SolarShadows.d.ts +35 -35
  705. package/lib/esm/SolarShadows.js +58 -58
  706. package/lib/esm/SolarShadows.js.map +1 -1
  707. package/lib/esm/SpatialClassification.d.ts +208 -208
  708. package/lib/esm/SpatialClassification.js +334 -334
  709. package/lib/esm/SpatialClassification.js.map +1 -1
  710. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  711. package/lib/esm/SubCategoryAppearance.js +92 -92
  712. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  713. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  714. package/lib/esm/SubCategoryOverride.js +100 -100
  715. package/lib/esm/SubCategoryOverride.js.map +1 -1
  716. package/lib/esm/TerrainSettings.d.ts +82 -82
  717. package/lib/esm/TerrainSettings.js +98 -98
  718. package/lib/esm/TerrainSettings.js.map +1 -1
  719. package/lib/esm/TextureMapping.d.ts +101 -101
  720. package/lib/esm/TextureMapping.js +170 -170
  721. package/lib/esm/TextureMapping.js.map +1 -1
  722. package/lib/esm/TextureProps.d.ts +65 -65
  723. package/lib/esm/TextureProps.js +25 -25
  724. package/lib/esm/TextureProps.js.map +1 -1
  725. package/lib/esm/ThematicDisplay.d.ts +230 -230
  726. package/lib/esm/ThematicDisplay.js +337 -337
  727. package/lib/esm/ThematicDisplay.js.map +1 -1
  728. package/lib/esm/Thumbnail.d.ts +26 -26
  729. package/lib/esm/Thumbnail.js +8 -8
  730. package/lib/esm/Thumbnail.js.map +1 -1
  731. package/lib/esm/TileProps.d.ts +82 -82
  732. package/lib/esm/TileProps.js +25 -25
  733. package/lib/esm/TileProps.js.map +1 -1
  734. package/lib/esm/Tween.d.ts +191 -191
  735. package/lib/esm/Tween.js +565 -565
  736. package/lib/esm/Tween.js.map +1 -1
  737. package/lib/esm/TxnAction.d.ts +21 -21
  738. package/lib/esm/TxnAction.js +26 -26
  739. package/lib/esm/TxnAction.js.map +1 -1
  740. package/lib/esm/ViewDetails.d.ts +125 -125
  741. package/lib/esm/ViewDetails.js +153 -153
  742. package/lib/esm/ViewDetails.js.map +1 -1
  743. package/lib/esm/ViewFlags.d.ts +291 -291
  744. package/lib/esm/ViewFlags.js +364 -364
  745. package/lib/esm/ViewFlags.js.map +1 -1
  746. package/lib/esm/ViewProps.d.ts +205 -205
  747. package/lib/esm/ViewProps.js +8 -8
  748. package/lib/esm/ViewProps.js.map +1 -1
  749. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  750. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  751. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  752. package/lib/esm/core-common.d.ts +241 -241
  753. package/lib/esm/core-common.js +245 -245
  754. package/lib/esm/core-common.js.map +1 -1
  755. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  756. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  757. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  758. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  759. package/lib/esm/domains/GenericElementProps.js +8 -8
  760. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  761. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  762. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  763. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  764. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  765. package/lib/esm/geometry/AreaPattern.js +201 -201
  766. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  767. package/lib/esm/geometry/BoundingSphere.d.ts +14 -14
  768. package/lib/esm/geometry/BoundingSphere.js +26 -26
  769. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  770. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  771. package/lib/esm/geometry/Cartographic.js +340 -340
  772. package/lib/esm/geometry/Cartographic.js.map +1 -1
  773. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  774. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  775. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  776. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  777. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  778. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  779. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  780. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  781. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  782. package/lib/esm/geometry/FrustumPlanes.d.ts +32 -32
  783. package/lib/esm/geometry/FrustumPlanes.js +128 -128
  784. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  785. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  786. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  787. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  788. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  789. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  790. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  791. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  792. package/lib/esm/geometry/GeometryStream.js +464 -464
  793. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  794. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  795. package/lib/esm/geometry/ImageGraphic.js +93 -93
  796. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  797. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  798. package/lib/esm/geometry/LineStyle.js +126 -126
  799. package/lib/esm/geometry/LineStyle.js.map +1 -1
  800. package/lib/esm/geometry/Placement.d.ts +95 -95
  801. package/lib/esm/geometry/Placement.js +126 -126
  802. package/lib/esm/geometry/Placement.js.map +1 -1
  803. package/lib/esm/geometry/Projection.d.ts +251 -251
  804. package/lib/esm/geometry/Projection.js +192 -192
  805. package/lib/esm/geometry/Projection.js.map +1 -1
  806. package/lib/esm/geometry/TextString.d.ts +55 -55
  807. package/lib/esm/geometry/TextString.js +61 -61
  808. package/lib/esm/geometry/TextString.js.map +1 -1
  809. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  810. package/lib/esm/ipc/IpcSession.js +23 -23
  811. package/lib/esm/ipc/IpcSession.js.map +1 -1
  812. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  813. package/lib/esm/ipc/IpcSocket.js +12 -12
  814. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  815. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  816. package/lib/esm/ipc/IpcWebSocket.js +145 -145
  817. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  818. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  819. package/lib/esm/ipc/IpcWebSocketTransport.js +154 -154
  820. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  821. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  822. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  823. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  824. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +97 -97
  825. package/lib/esm/rpc/IModelReadRpcInterface.js +114 -114
  826. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  827. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  828. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  829. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  830. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  831. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  832. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  833. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  834. package/lib/esm/rpc/TestRpcManager.js +35 -35
  835. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  836. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  837. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  838. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  839. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  840. package/lib/esm/rpc/core/RpcConfiguration.js +185 -185
  841. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  842. package/lib/esm/rpc/core/RpcConstants.d.ts +85 -85
  843. package/lib/esm/rpc/core/RpcConstants.js +100 -100
  844. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  845. package/lib/esm/rpc/core/RpcControl.d.ts +52 -52
  846. package/lib/esm/rpc/core/RpcControl.js +142 -142
  847. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  848. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  849. package/lib/esm/rpc/core/RpcInvocation.js +253 -253
  850. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  851. package/lib/esm/rpc/core/RpcMarshaling.d.ts +36 -36
  852. package/lib/esm/rpc/core/RpcMarshaling.js +149 -149
  853. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  854. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  855. package/lib/esm/rpc/core/RpcOperation.js +128 -128
  856. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  857. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  858. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -90
  859. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  860. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  861. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  862. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  863. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  864. package/lib/esm/rpc/core/RpcPush.js +119 -119
  865. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  866. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  867. package/lib/esm/rpc/core/RpcRegistry.js +194 -194
  868. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  869. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  870. package/lib/esm/rpc/core/RpcRequest.js +472 -472
  871. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  872. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  873. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  874. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  875. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  876. package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
  877. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  878. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  879. package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
  880. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  881. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  882. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  883. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  884. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  885. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -138
  886. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  887. package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
  888. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  889. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  890. package/lib/esm/rpc/web/RpcMultipart.d.ts +31 -31
  891. package/lib/esm/rpc/web/RpcMultipart.js +41 -41
  892. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  893. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +17 -17
  894. package/lib/esm/rpc/web/WebAppRpcLogging.js +136 -136
  895. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  896. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  897. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  898. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  899. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +71 -71
  900. package/lib/esm/rpc/web/WebAppRpcRequest.js +370 -370
  901. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  902. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  903. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +355 -355
  904. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  905. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  906. package/lib/esm/tile/B3dmTileIO.js +62 -62
  907. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  908. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  909. package/lib/esm/tile/CompositeTileIO.js +22 -22
  910. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  911. package/lib/esm/tile/ElementGraphics.d.ts +134 -134
  912. package/lib/esm/tile/ElementGraphics.js +8 -8
  913. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  914. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  915. package/lib/esm/tile/GltfTileIO.js +105 -105
  916. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  917. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  918. package/lib/esm/tile/I3dmTileIO.js +36 -36
  919. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  920. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  921. package/lib/esm/tile/IModelTileIO.js +90 -90
  922. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  923. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  924. package/lib/esm/tile/PntsTileIO.js +22 -22
  925. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  926. package/lib/esm/tile/TileIO.d.ts +66 -66
  927. package/lib/esm/tile/TileIO.js +110 -110
  928. package/lib/esm/tile/TileIO.js.map +1 -1
  929. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  930. package/lib/esm/tile/TileMetadata.js +661 -661
  931. package/lib/esm/tile/TileMetadata.js.map +1 -1
  932. package/package.json +7 -7
package/lib/esm/QPoint.js CHANGED
@@ -1,816 +1,816 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Geometry
7
- */
8
- import { assert, Uint16ArrayBuilder } from "@itwin/core-bentley";
9
- import { Point2d, Point3d, Range2d, Range3d, Vector2d, Vector3d, } from "@itwin/core-geometry";
10
- /**
11
- * Provides facilities for quantizing floating point values within a specified range into 16-bit unsigned integers.
12
- * This is a lossy compression technique.
13
- * Given a floating point range [min, max], a floating point value `x` within that range is quantized by subtracting
14
- * `min`, scaling the result according to `max`, and truncating the result to an integer.
15
- * Therefore min quantizes to 0, max to 0xffff, (min+max)/2 to 0x7fff, and so on.
16
- * These routines are chiefly used by classes like [[QPoint2d]] and [[QPoint3d]] to reduce the space required to store
17
- * coordinate values for [RenderGraphic]($frontend)s.
18
- * @public
19
- * @extensions
20
- */
21
- export var Quantization;
22
- (function (Quantization) {
23
- Quantization.rangeScale16 = 0xffff;
24
- Quantization.rangeScale8 = 0xff;
25
- /** Compute the scale factor required to quantize `extent` to `rangeScale` discrete values. */
26
- function computeScale(extent, rangeScale = Quantization.rangeScale16) {
27
- return 0.0 === extent ? extent : rangeScale / extent;
28
- }
29
- Quantization.computeScale = computeScale;
30
- /** @internal */
31
- function isInRange(qpos, rangeScale = Quantization.rangeScale16) {
32
- return qpos >= 0.0 && qpos < rangeScale + 1.0;
33
- }
34
- Quantization.isInRange = isInRange;
35
- /** Return `pos` quantized to the range [`origin`, `origin + rangeScale`].
36
- * @see [[Quantization.unquantize]] for the inverse operation.
37
- */
38
- function quantize(pos, origin, scale, rangeScale = Quantization.rangeScale16) {
39
- return Math.floor(Math.max(0.0, Math.min(rangeScale, 0.5 + (pos - origin) * scale)));
40
- }
41
- Quantization.quantize = quantize;
42
- /** @internal */
43
- function isQuantizable(pos, origin, scale, rangeScale = Quantization.rangeScale16) {
44
- return isInRange(quantize(pos, origin, scale, rangeScale));
45
- }
46
- Quantization.isQuantizable = isQuantizable;
47
- /** Give `qpos` quantized to the range [`origin`, `origin + rangeScale`], return the unquantized value.
48
- * @see [[Quantization.quantize]] for the inverse operation.
49
- */
50
- function unquantize(qpos, origin, scale) {
51
- return 0.0 === scale ? origin : origin + qpos / scale;
52
- }
53
- Quantization.unquantize = unquantize;
54
- /** @internal */
55
- function isQuantized(qpos) {
56
- return isInRange(qpos) && qpos === Math.floor(qpos);
57
- }
58
- Quantization.isQuantized = isQuantized;
59
- })(Quantization || (Quantization = {}));
60
- /** Parameters used for [[Quantization]] of 2d points such that the `x` and `y` components are each quantized to 16-bit unsigned integers.
61
- * @see [[QPoint2d]] for the quantized representation of a [Point2d]($core-geometry).
62
- * @see [[QPoint2dList]] for a list of [[QPoint2d]]s quantized using a [[QParams2d]].
63
- * @public
64
- * @extensions
65
- */
66
- export class QParams2d {
67
- constructor(ox = 0, oy = 0, sx = 0, sy = 0) {
68
- /** The origin of the quantization range. */
69
- this.origin = new Point2d();
70
- /** The scale applied to coordinates to quantize them. */
71
- this.scale = new Point2d();
72
- this.setFrom(ox, oy, sx, sy);
73
- }
74
- setFrom(ox, oy, sx, sy) {
75
- this.origin.x = ox;
76
- this.origin.y = oy;
77
- this.scale.x = sx;
78
- this.scale.y = sy;
79
- }
80
- /** Set [[origin]] and [[scale]] from `src`. */
81
- copyFrom(src) {
82
- this.setFrom(src.origin.x, src.origin.y, src.scale.x, src.scale.y);
83
- }
84
- /** Create a copy of these params.
85
- * @param out If supplied, these QParams2d will be modified and returned; otherwise a new QParams2d object will be created and returned.
86
- */
87
- clone(out) {
88
- const result = undefined !== out ? out : new QParams2d();
89
- result.copyFrom(this);
90
- return result;
91
- }
92
- /** Initialize these parameters to support quantization of values within the specified range. */
93
- setFromRange(range, rangeScale = Quantization.rangeScale16) {
94
- if (!range.isNull) {
95
- this.setFrom(range.low.x, range.low.y, Quantization.computeScale(range.high.x - range.low.x, rangeScale), Quantization.computeScale(range.high.y - range.low.y, rangeScale));
96
- }
97
- else {
98
- this.origin.x = this.origin.y = this.scale.x = this.scale.y = 0;
99
- }
100
- }
101
- /** Create parameters to support quantization of values within the specified range. */
102
- static fromRange(range, out, rangeScale = Quantization.rangeScale16) {
103
- const params = undefined !== out ? out : new QParams2d();
104
- params.setFromRange(range, rangeScale);
105
- return params;
106
- }
107
- /** Return the unquantized point for the input `x` and `y` components. If `out` is supplied, it will be modified to hold the result and returned. */
108
- unquantize(x, y, out) {
109
- out = out !== null && out !== void 0 ? out : new Point2d();
110
- out.x = Quantization.unquantize(x, this.origin.x, this.scale.x);
111
- out.y = Quantization.unquantize(y, this.origin.y, this.scale.y);
112
- return out;
113
- }
114
- /** Creates parameters supporting quantization of values within the range [-1.0, 1.0], appropriate for normalized 2d vectors. */
115
- static fromNormalizedRange(rangeScale = Quantization.rangeScale16) {
116
- return QParams2d.fromRange(Range2d.createArray([Point2d.create(-1, -1), Point2d.create(1, 1)]), undefined, rangeScale);
117
- }
118
- /** Create parameters supporting quantization of values within the range [0.0, 1.0]. */
119
- static fromZeroToOne(rangeScale = Quantization.rangeScale16) {
120
- return QParams2d.fromRange(Range2d.createArray([Point2d.create(0, 0), Point2d.create(1, 1)]), undefined, rangeScale);
121
- }
122
- /** Create parameters from origin and scale components */
123
- static fromOriginAndScale(originX, originY, scaleX, scaleY) {
124
- return new QParams2d(originX, originY, scaleX, scaleY);
125
- }
126
- /** @internal */
127
- get rangeDiagonal() {
128
- return Vector2d.createFrom({ x: 0 === this.scale.x ? 0 : Quantization.rangeScale16 / this.scale.x, y: 0 === this.scale.y ? 0 : Quantization.rangeScale16 / this.scale.y });
129
- }
130
- /** Return true if the point point is quantizable using these parameters. */
131
- isQuantizable(point) {
132
- return Quantization.isQuantizable(point.x, this.origin.x, this.scale.x) && Quantization.isQuantizable(point.y, this.origin.y, this.scale.y);
133
- }
134
- }
135
- /** Represents a [Point2d]($core-geometry) compressed such that each component `x` and `y` is quantized to the 16-bit integer range [0, 0xffff].
136
- * These are primarily used to reduce the space required for coordinates used by [RenderGraphic]($frontend)s.
137
- * @see [[QParams2d]] to define quantization parameters for a range of points.
138
- * @see [[QPoint2dList]] for a list of points all quantized to the same range.
139
- * @public
140
- * @extensions
141
- */
142
- export class QPoint2d {
143
- /** Construct with `x` and `y` initialized to zero. */
144
- constructor() {
145
- this._x = 0;
146
- this._y = 0;
147
- }
148
- /** The quantized x component. */
149
- get x() { return this._x; }
150
- set x(x) {
151
- assert(Quantization.isQuantized(x));
152
- this._x = x;
153
- }
154
- /** The quantized y component. */
155
- get y() { return this._y; }
156
- set y(y) {
157
- assert(Quantization.isQuantized(y));
158
- this._y = y;
159
- }
160
- /** Initialize this point by quantizing the supplied { x, y } using the specified params */
161
- init(pos, params) {
162
- this.x = Quantization.quantize(pos.x, params.origin.x, params.scale.x);
163
- this.y = Quantization.quantize(pos.y, params.origin.y, params.scale.y);
164
- }
165
- /** Create a quantized point from the supplied Point2d using the specified params */
166
- static create(pos, params) {
167
- const qpt = new QPoint2d();
168
- qpt.init(pos, params);
169
- return qpt;
170
- }
171
- /** Initialize `x` and `y` from `src`. */
172
- copyFrom(src) {
173
- this.x = src.x;
174
- this.y = src.y;
175
- }
176
- /** Create a copy of this point.
177
- * @param out If supplied, it will be modified in-place and returned; otherwise a new QPoint2d will be allocated and returned.
178
- */
179
- clone(out) {
180
- const result = undefined !== out ? out : new QPoint2d();
181
- result.copyFrom(this);
182
- return result;
183
- }
184
- /**
185
- * Set the x and y components directly.
186
- * @param x Must be an integer in the range [0, 0xffff]
187
- * @param y Must be an integer in the range [0, 0xffff]
188
- */
189
- setFromScalars(x, y) {
190
- this.x = x;
191
- this.y = y;
192
- }
193
- /**
194
- * Create a QPoint2d directly from x and y components.
195
- * @param x Must be an integer in the range [0, 0xffff]
196
- * @param y Must be an integer in the range [0, 0xffff]
197
- */
198
- static fromScalars(x, y) {
199
- const pt = new QPoint2d();
200
- pt.setFromScalars(x, y);
201
- return pt;
202
- }
203
- /** Return a Point2d unquantized according to the supplied `params`. If `out` is supplied, it will be modified in-place and returned. */
204
- unquantize(params, out) {
205
- const pt = undefined !== out ? out : new Point2d();
206
- pt.x = Quantization.unquantize(this.x, params.origin.x, params.scale.x);
207
- pt.y = Quantization.unquantize(this.y, params.origin.y, params.scale.y);
208
- return pt;
209
- }
210
- }
211
- /** @public
212
- * @extensions
213
- */
214
- export var QPoint2dBuffer;
215
- (function (QPoint2dBuffer) {
216
- const scratchQPoint2d = new QPoint2d();
217
- /** Extracts the point at the specified index from a buffer.
218
- * @param points The buffer in which each consecutive pair of integers is a 2d quantized point.
219
- * @param pointIndex The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
220
- * @param result If supplied, a preallocated [[QPoint2d]] to initialize with the result and return.
221
- * @returns The point at `pointIndex`.
222
- * @throws Error if `pointIndex` is out of bounds.
223
- */
224
- function getQPoint(points, pointIndex, result) {
225
- const index = pointIndex * 2;
226
- const x = points[index + 0];
227
- const y = points[index + 1];
228
- if (undefined === x || undefined === y)
229
- throw new Error("Index out of range");
230
- result = result !== null && result !== void 0 ? result : new QPoint2d();
231
- result.setFromScalars(x, y);
232
- return result;
233
- }
234
- QPoint2dBuffer.getQPoint = getQPoint;
235
- /** Extracts and unquantizes the point at the specified index from a buffer.
236
- * @param buffer The array of points and the quantization parameters.
237
- * @param The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
238
- * @param result If supplied, a preallocated [Point2d]($core-geometry) to initialize with the result and return.
239
- * @returns The point at `pointIndex`.
240
- * @throws Error if `pointIndex` is out of bounds.
241
- */
242
- function unquantizePoint(buffer, pointIndex, result) {
243
- const qpt = getQPoint(buffer.points, pointIndex, scratchQPoint2d);
244
- return qpt.unquantize(buffer.params, result);
245
- }
246
- QPoint2dBuffer.unquantizePoint = unquantizePoint;
247
- })(QPoint2dBuffer || (QPoint2dBuffer = {}));
248
- /** A list of [[QPoint2d]]s all quantized to the same range.
249
- * @public
250
- * @extensions
251
- */
252
- export class QPoint2dList {
253
- /** Construct an empty list set up to use the supplied quantization parameters. */
254
- constructor(params) {
255
- this._list = new Array();
256
- this.params = params.clone();
257
- }
258
- /** The list of quantized points. */
259
- get list() {
260
- return this._list;
261
- }
262
- /** Removes all points from the list. */
263
- clear() {
264
- this._list.length = 0;
265
- }
266
- /** Removes all points from the list and change the quantization parameters. */
267
- reset(params) {
268
- this.clear();
269
- this.params.copyFrom(params);
270
- }
271
- /** Quantizes the supplied Point2d to this list's range and appends it to the list. */
272
- add(pt) {
273
- this._list.push(QPoint2d.create(pt, this.params));
274
- }
275
- /** Adds a previously-quantized point to this list. */
276
- push(qpt) {
277
- this._list.push(qpt.clone());
278
- }
279
- /** The number of points in the list. */
280
- get length() {
281
- return this._list.length;
282
- }
283
- /** Returns the unquantized value of the point at the specified index in the list. */
284
- unquantize(index, out) {
285
- assert(index < this.length);
286
- if (index < this.length) {
287
- return this._list[index].unquantize(this.params, out);
288
- }
289
- else {
290
- return undefined !== out ? out : new Point2d();
291
- }
292
- }
293
- /** Changes the quantization parameters and requantizes all points in the list to the new range.
294
- * @note The loss of precision is compounded each time the points are requantized to a new range.
295
- */
296
- requantize(params) {
297
- for (let i = 0; i < this.length; i++) {
298
- const pt = this.unquantize(i);
299
- this._list[i].init(pt, params);
300
- }
301
- this.params.copyFrom(params);
302
- }
303
- /** Extracts the current contents of the list as a Uint16Array such that the first element of the array corresponds to the first point's `x` component,
304
- * the second to the first point's `y` component, and so on.
305
- */
306
- toTypedArray() {
307
- const array = new Uint16Array(this.length * 2);
308
- const pts = this._list;
309
- for (let i = 0; i < this.length; i++) {
310
- const pt = pts[i];
311
- array[i * 2] = pt.x;
312
- array[i * 2 + 1] = pt.y;
313
- }
314
- return array;
315
- }
316
- /** Create from a Uint16Array laid out such that `array[0]` corresponds to the first point's `x` component, `array[1]` to the first point's `y` component, and so on. */
317
- fromTypedArray(range, array) {
318
- this.params.setFromRange(range);
319
- this._list.length = array.length / 2;
320
- for (let i = 0, j = 0; i < this.list.length; i++)
321
- this._list[i] = QPoint2d.fromScalars(array[j++], array[j++]);
322
- }
323
- /** Construct a QPoint2dList containing all points in the supplied list, quantized to the range of those points. */
324
- static fromPoints(points, out) {
325
- let qPoints;
326
- const qParams = QParams2d.fromRange(Range2d.createArray(points));
327
- if (out) {
328
- qPoints = out;
329
- qPoints.reset(qParams);
330
- }
331
- else {
332
- qPoints = new QPoint2dList(qParams);
333
- }
334
- for (const point of points)
335
- qPoints.add(point);
336
- return qPoints;
337
- }
338
- }
339
- /** Parameters used for [[Quantization]] of 3d points such that the `x`, `y`, and `z` components are each quantized to 16-bit unsigned integers.
340
- * @see [[QPoint3d]] for the quantized representation of a [Point3d]($core-geometry).
341
- * @see [[QPoint3dList]] for a list of [[QPoint3d]]s quantized using a [[QParams3d]].
342
- * @public
343
- * @extensions
344
- */
345
- export class QParams3d {
346
- constructor(ox = 0, oy = 0, oz = 0, sx = 0, sy = 0, sz = 0) {
347
- /** The origin of the quantization range. */
348
- this.origin = new Point3d();
349
- /** The scale applied to coordinates to quantize them. */
350
- this.scale = new Point3d();
351
- this.setFrom(ox, oy, oz, sx, sy, sz);
352
- }
353
- setFrom(ox, oy, oz, sx, sy, sz) {
354
- this.origin.x = ox;
355
- this.origin.y = oy;
356
- this.origin.z = oz;
357
- this.scale.x = sx;
358
- this.scale.y = sy;
359
- this.scale.z = sz;
360
- }
361
- /** Set `x`, `y`, and `z` from `src. */
362
- copyFrom(src) {
363
- this.setFrom(src.origin.x, src.origin.y, src.origin.z, src.scale.x, src.scale.y, src.scale.z);
364
- }
365
- /** Create a copy of these parameters.
366
- * @param out If supplied, it will be modified in-place and returned instead of allocating a new QParams3d.
367
- */
368
- clone(out) {
369
- const result = undefined !== out ? out : new QParams3d();
370
- result.copyFrom(this);
371
- return result;
372
- }
373
- /** Initialize from origin and scale */
374
- setFromOriginAndScale(origin, scale) {
375
- this.setFrom(origin.x, origin.y, origin.z, scale.x, scale.y, scale.z);
376
- }
377
- /** Initialize these parameters to support quantization of values within the specified range. */
378
- setFromRange(range, rangeScale = Quantization.rangeScale16) {
379
- if (!range.isNull) {
380
- this.setFrom(range.low.x, range.low.y, range.low.z, Quantization.computeScale(range.high.x - range.low.x, rangeScale), Quantization.computeScale(range.high.y - range.low.y, rangeScale), Quantization.computeScale(range.high.z - range.low.z, rangeScale));
381
- }
382
- else {
383
- this.origin.x = this.origin.y = this.origin.z = 0;
384
- this.scale.x = this.scale.y = this.scale.z = 0;
385
- }
386
- }
387
- /** Return the unquantized point for the input components.
388
- * @param out If supplied, it will be modified in-place and returned instead of allocating a new Point3d.
389
- */
390
- unquantize(x, y, z, out) {
391
- const pt = undefined !== out ? out : new Point3d();
392
- pt.x = Quantization.unquantize(x, this.origin.x, this.scale.x);
393
- pt.y = Quantization.unquantize(y, this.origin.y, this.scale.y);
394
- pt.z = Quantization.unquantize(z, this.origin.z, this.scale.z);
395
- return pt;
396
- }
397
- /** Creates parameters to support quantization of values within the specified range.
398
- * If `out` is supplied, it will be modified in-place and returned instead of allocating a new QParams3d.
399
- */
400
- static fromRange(range, out, rangeScale = Quantization.rangeScale16) {
401
- const params = undefined !== out ? out : new QParams3d();
402
- params.setFromRange(range, rangeScale);
403
- return params;
404
- }
405
- /** Creates parameters supporting quantization of values within the range [-1.0, 1.0].
406
- * If `out` is supplied, it will be modified in-place and returned instead of allocating a new QParams3d.
407
- */
408
- static fromOriginAndScale(origin, scale, out) {
409
- const params = undefined !== out ? out : new QParams3d();
410
- params.setFromOriginAndScale(origin, scale);
411
- return params;
412
- }
413
- /** Creates parameters supporting quantization of values within the range [-1.0, 1.0]. */
414
- static fromNormalizedRange(rangeScale = Quantization.rangeScale16) {
415
- return QParams3d.fromRange(Range3d.createArray([Point3d.create(-1, -1, -1), Point3d.create(1, 1, 1)]), undefined, rangeScale);
416
- }
417
- /** Creates parameters supporting quantization of values within the range [0.0, 1.0]. */
418
- static fromZeroToOne(rangeScale = Quantization.rangeScale16) {
419
- return QParams3d.fromRange(Range3d.createArray([Point3d.create(0, 0, 0), Point3d.create(1, 1, 1)]), undefined, rangeScale);
420
- }
421
- /** @internal */
422
- get rangeDiagonal() {
423
- return Vector3d.createFrom({
424
- x: this.scale.x === 0 ? 0 : Quantization.rangeScale16 / this.scale.x,
425
- y: this.scale.y === 0 ? 0 : Quantization.rangeScale16 / this.scale.y,
426
- z: this.scale.z === 0 ? 0 : Quantization.rangeScale16 / this.scale.z,
427
- });
428
- }
429
- /** Return true if the point point is quantizable using these parameters. */
430
- isQuantizable(point) {
431
- return Quantization.isQuantizable(point.x, this.origin.x, this.scale.x) && Quantization.isQuantizable(point.y, this.origin.y, this.scale.y) && Quantization.isQuantizable(point.z, this.origin.z, this.scale.z);
432
- }
433
- /** Compute the range to which these parameters quantize. */
434
- computeRange(out) {
435
- const range = Range3d.createNull(out);
436
- range.extendPoint(this.origin);
437
- range.extendPoint(this.origin.plus(this.rangeDiagonal));
438
- return range;
439
- }
440
- }
441
- /** Represents a [Point3d]($core-geometry) compressed such that each component `x`, `y`, and `z` is quantized to the 16-bit integer range [0, 0xffff].
442
- * These are primarily used to reduce the space required for coordinates used by [RenderGraphic]($frontend)s.
443
- * @see [[QParams3d]] to define quantization parameters for a range of points.
444
- * @see [[QPoint3dList]] for a list of points all quantized to the same range.
445
- * @public
446
- * @extensions
447
- */
448
- export class QPoint3d {
449
- /** Construct with all components initialized to zero. */
450
- constructor() {
451
- this._x = 0;
452
- this._y = 0;
453
- this._z = 0;
454
- }
455
- /** The quantized x component. */
456
- get x() { return this._x; }
457
- set x(x) {
458
- assert(Quantization.isQuantized(x));
459
- this._x = x;
460
- }
461
- /** The quantized y component. */
462
- get y() { return this._y; }
463
- set y(y) {
464
- assert(Quantization.isQuantized(y));
465
- this._y = y;
466
- }
467
- /** The quantized z component. */
468
- get z() { return this._z; }
469
- set z(z) {
470
- assert(Quantization.isQuantized(z));
471
- this._z = z;
472
- }
473
- /** Initialize this point by quantizing the supplied { x, y, z } using the specified params */
474
- init(pos, params) {
475
- this.x = Quantization.quantize(pos.x, params.origin.x, params.scale.x);
476
- this.y = Quantization.quantize(pos.y, params.origin.y, params.scale.y);
477
- this.z = Quantization.quantize(pos.z, params.origin.z, params.scale.z);
478
- }
479
- /** Creates a quantized point from the supplied Point3d using the specified params */
480
- static create(pos, params) {
481
- const qpt = new QPoint3d();
482
- qpt.init(pos, params);
483
- return qpt;
484
- }
485
- /** Set this points components from `src`. */
486
- copyFrom(src) {
487
- this.x = src.x;
488
- this.y = src.y;
489
- this.z = src.z;
490
- }
491
- /** Create a copy of this point.
492
- * @param out If supplied, it will be modified in-place instead of allocating a new QPoint3d.
493
- */
494
- clone(out) {
495
- const result = undefined !== out ? out : new QPoint3d();
496
- result.copyFrom(this);
497
- return result;
498
- }
499
- /**
500
- * Sets the x, y, and z components directly.
501
- * @param x Must be an integer in the range [0, 0xffff]
502
- * @param y Must be an integer in the range [0, 0xffff]
503
- * @param z Must be an integer in the range [0, 0xffff]
504
- */
505
- setFromScalars(x, y, z) {
506
- this.x = x;
507
- this.y = y;
508
- this.z = z;
509
- }
510
- /**
511
- * Creates a QPoint3d directly from x, y, and z components.
512
- * @param x Must be an integer in the range [0, 0xffff]
513
- * @param y Must be an integer in the range [0, 0xffff]
514
- * @param z Must be an integer in the range [0, 0xffff]
515
- * @param out If supplied, it will be modified in-place instead of allocating a new QPoint3d.
516
- */
517
- static fromScalars(x, y, z, out) {
518
- const pt = undefined === out ? new QPoint3d() : out;
519
- pt.setFromScalars(x, y, z);
520
- return pt;
521
- }
522
- /** Returns a Point3d unquantized according to the supplied params.
523
- * If `out` is supplied, it will be modified in-place instead of allocating a new Point3d.
524
- */
525
- unquantize(params, out) {
526
- const pt = undefined !== out ? out : new Point3d();
527
- pt.x = Quantization.unquantize(this.x, params.origin.x, params.scale.x);
528
- pt.y = Quantization.unquantize(this.y, params.origin.y, params.scale.y);
529
- pt.z = Quantization.unquantize(this.z, params.origin.z, params.scale.z);
530
- return pt;
531
- }
532
- /** Return true if this point's components are identical to the other point's components. */
533
- equals(other) {
534
- return this.x === other.x && this.y === other.y && this.z === other.z;
535
- }
536
- /** Perform ordinal comparison to another point. The function returns:
537
- * - Zero if this point is identical to `rhs`; or
538
- * - A number less than zero if this point is ordered before `rhs`; or
539
- * - A number greater than zero if this point is ordered after `rhs`.
540
- * @see [OrderedComparator]($core-bentley).
541
- */
542
- compare(rhs) {
543
- let diff = this.x - rhs.x;
544
- if (0 === diff) {
545
- diff = this.y - rhs.y;
546
- if (0 === diff) {
547
- diff = this.z - rhs.z;
548
- }
549
- }
550
- return diff;
551
- }
552
- }
553
- /** @public
554
- * @extensions
555
- */
556
- export var QPoint3dBuffer;
557
- (function (QPoint3dBuffer) {
558
- const scratchQPoint3d = new QPoint3d();
559
- /** Extracts the point at the specified index from a buffer.
560
- * @param points The buffer in which each consecutive pair of integers is a 3d quantized point.
561
- * @param pointIndex The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
562
- * @param result If supplied, a preallocated [[QPoint3d]] to initialize with the result and return.
563
- * @returns The point at `pointIndex`.
564
- * @throws Error if `pointIndex` is out of bounds.
565
- */
566
- function getQPoint(points, pointIndex, result) {
567
- const index = pointIndex * 3;
568
- const x = points[index + 0];
569
- const y = points[index + 1];
570
- const z = points[index + 2];
571
- if (undefined === x || undefined === y || undefined === z)
572
- throw new Error("Index out of range");
573
- result = result !== null && result !== void 0 ? result : new QPoint3d();
574
- result.setFromScalars(x, y, z);
575
- return result;
576
- }
577
- QPoint3dBuffer.getQPoint = getQPoint;
578
- /** Extracts and unquantizes the point at the specified index from a buffer.
579
- * @param buffer The array of points and the quantization parameters.
580
- * @param The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
581
- * @param result If supplied, a preallocated [Point3d]($core-geometry) to initialize with the result and return.
582
- * @returns The point at `pointIndex`.
583
- * @throws Error if `pointIndex` is out of bounds.
584
- */
585
- function unquantizePoint(buffer, pointIndex, result) {
586
- const qpt = getQPoint(buffer.points, pointIndex, scratchQPoint3d);
587
- return qpt.unquantize(buffer.params, result);
588
- }
589
- QPoint3dBuffer.unquantizePoint = unquantizePoint;
590
- })(QPoint3dBuffer || (QPoint3dBuffer = {}));
591
- /** A list of [[QPoint3d]]s all quantized to the same range.
592
- * @public
593
- * @extensions
594
- */
595
- export class QPoint3dList {
596
- /** Construct an empty list set up to quantize to the supplied range.
597
- * @param The quantization parameters. If omitted, a null range will be used.
598
- */
599
- constructor(params) {
600
- this._list = [];
601
- this.params = params ? params.clone() : QParams3d.fromRange(Range3d.createNull());
602
- }
603
- /** The list of quantized points. */
604
- get list() {
605
- return this._list;
606
- }
607
- /** Construct a QPoint3dList containing all points in the supplied list, quantized to the range of those points.
608
- * @param The points to quantize and add to the list.
609
- * @param out If supplied, it will be cleared, its parameters recomputed, and the points will be added to it; otherwise, a new QPoint3dList will be created and returned.
610
- */
611
- static fromPoints(points, out) {
612
- let qPoints;
613
- const qParams = QParams3d.fromRange(Range3d.createArray(points));
614
- if (out) {
615
- qPoints = out;
616
- qPoints.reset(qParams);
617
- }
618
- else {
619
- qPoints = new QPoint3dList(qParams);
620
- }
621
- for (const point of points)
622
- qPoints.add(point);
623
- return qPoints;
624
- }
625
- /** Removes all points from the list. */
626
- clear() {
627
- this._list.length = 0;
628
- }
629
- /** Clears out the contents of the list and changes the quantization parameters. */
630
- reset(params) {
631
- this.clear();
632
- this.params.copyFrom(params);
633
- }
634
- /** Quantizes the supplied Point3d to this list's range and appends it to the list. */
635
- add(pt) {
636
- this._list.push(QPoint3d.create(pt, this.params));
637
- }
638
- /** Adds a previously-quantized point to this list. */
639
- push(qpt) {
640
- this._list.push(qpt.clone());
641
- }
642
- /** The number of points in the list. */
643
- get length() {
644
- return this._list.length;
645
- }
646
- /** Returns the unquantized value of the point at the specified index in the list. */
647
- unquantize(index, out) {
648
- assert(index < this.length);
649
- if (index < this.length) {
650
- return this._list[index].unquantize(this.params, out);
651
- }
652
- else {
653
- return undefined !== out ? out : new Point3d();
654
- }
655
- }
656
- /** Changes the quantization parameters and requantizes all points in the list to the new range.
657
- * @note The loss of precision is compounded each time the points are requantized to a new range.
658
- */
659
- requantize(params) {
660
- for (let i = 0; i < this.length; i++) {
661
- const pt = this.unquantize(i);
662
- this._list[i].init(pt, params);
663
- }
664
- this.params.copyFrom(params);
665
- }
666
- /** Extracts the current contents of the list as a Uint16Array such that the first 3 elements contain the first point's x, y, and z components,
667
- * the second three elements contain the second point's components, and so on.
668
- */
669
- toTypedArray() {
670
- const array = new Uint16Array(this.length * 3);
671
- const pts = this._list;
672
- for (let i = 0; i < this.length; i++) {
673
- const pt = pts[i];
674
- array[i * 3 + 0] = pt.x;
675
- array[i * 3 + 1] = pt.y;
676
- array[i * 3 + 2] = pt.z;
677
- }
678
- return array;
679
- }
680
- /** Reinitialize from a Uint16Array in which the first three elements specify the x, y, and z components of the first point, the second three elements specify the components
681
- * of the second point, and so on.
682
- */
683
- fromTypedArray(range, array) {
684
- this.params.setFromRange(range);
685
- this._list.length = array.length / 3;
686
- for (let i = 0, j = 0; i < this.list.length; i++)
687
- this._list[i] = QPoint3d.fromScalars(array[j++], array[j++], array[j++]);
688
- }
689
- /** Construct a list containing all points in the supplied list, quantized using the supplied parameters. */
690
- static createFrom(points, params) {
691
- const list = new QPoint3dList(params);
692
- for (const point of points)
693
- list.add(point);
694
- return list;
695
- }
696
- /** An iterator over the points in the list. */
697
- [Symbol.iterator]() {
698
- return this.list[Symbol.iterator]();
699
- }
700
- }
701
- /** Constructs a [[QPoint2dBuffer]] using a [Uint16ArrayBuilder]($bentley).
702
- * @public
703
- * @extensions
704
- */
705
- export class QPoint2dBufferBuilder {
706
- /** Construct a new buffer with a [[length]] of zero. */
707
- constructor(options) {
708
- var _a;
709
- this._scratchQPoint2d = new QPoint2d();
710
- this.params = QParams2d.fromRange(options.range);
711
- const initialCapacity = (_a = options.initialCapacity) !== null && _a !== void 0 ? _a : 0;
712
- this.buffer = new Uint16ArrayBuilder({
713
- growthFactor: options.growthFactor,
714
- initialCapacity: 2 * initialCapacity,
715
- });
716
- }
717
- /** Append a point with the specified quantized coordinates. */
718
- pushXY(x, y) {
719
- this.buffer.push(x);
720
- this.buffer.push(y);
721
- }
722
- /** Append a point with the specified quantized coordinates. */
723
- push(pt) {
724
- this.pushXY(pt.x, pt.y);
725
- }
726
- /** The number of points currently in the [[buffer]]. */
727
- get length() {
728
- const len = this.buffer.length;
729
- assert(len % 2 === 0);
730
- return len / 2;
731
- }
732
- /** Returns the quantized point at the specified index in [[buffer]].
733
- * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
734
- * @param result If supplied, a [[QPoint2d]] to initialize with the result and return.
735
- * @returns The quantized point at the specified index in [[buffer]].
736
- * @throws Error if `pointIndex` is out of bounds.
737
- */
738
- get(pointIndex, result) {
739
- return QPoint2dBuffer.getQPoint(this.buffer.toTypedArray(), pointIndex, result);
740
- }
741
- /** Returns the unquantized point at the specified index in [[buffer]].
742
- * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
743
- * @param result If supplied, a [Point2d]($core-geometry) to initialize with the result and return.
744
- * @returns The unquantized point at the specified index in [[buffer]].
745
- * @throws Error if `pointIndex` is out of bounds.
746
- */
747
- unquantize(pointIndex, result) {
748
- return this.get(pointIndex, this._scratchQPoint2d).unquantize(this.params, result);
749
- }
750
- /** Obtain a [[QPoint2dBuffer]] containing all of the points that have been appended by this builder. */
751
- finish() {
752
- return {
753
- params: this.params,
754
- points: this.buffer.toTypedArray(),
755
- };
756
- }
757
- }
758
- /** Constructs a [[QPoint3dBuffer]] using a [Uint16ArrayBuilder]($bentley).
759
- * @public
760
- * @extensions
761
- */
762
- export class QPoint3dBufferBuilder {
763
- /** Construct a new buffer with a [[length]] of zero. */
764
- constructor(options) {
765
- var _a;
766
- this._scratchQPoint3d = new QPoint3d();
767
- this.params = QParams3d.fromRange(options.range);
768
- const initialCapacity = (_a = options.initialCapacity) !== null && _a !== void 0 ? _a : 0;
769
- this.buffer = new Uint16ArrayBuilder({
770
- growthFactor: options.growthFactor,
771
- initialCapacity: 3 * initialCapacity,
772
- });
773
- }
774
- /** Append a point with the specified quantized coordinates. */
775
- pushXYZ(x, y, z) {
776
- this.buffer.push(x);
777
- this.buffer.push(y);
778
- this.buffer.push(z);
779
- }
780
- /** Append a point with the specified quantized coordinates. */
781
- push(pt) {
782
- this.pushXYZ(pt.x, pt.y, pt.z);
783
- }
784
- /** The number of points currently in the [[buffer]]. */
785
- get length() {
786
- const len = this.buffer.length;
787
- assert(len % 3 === 0);
788
- return len / 3;
789
- }
790
- /** Returns the quantized point at the specified index in [[buffer]].
791
- * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
792
- * @param result If supplied, a [[QPoint3d]] to initialize with the result and return.
793
- * @returns The quantized point at the specified index in [[buffer]].
794
- * @throws Error if `pointIndex` is out of bounds.
795
- */
796
- get(pointIndex, result) {
797
- return QPoint3dBuffer.getQPoint(this.buffer.toTypedArray(), pointIndex, result);
798
- }
799
- /** Returns the unquantized point at the specified index in [[buffer]].
800
- * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
801
- * @param result If supplied, a [Point3d]($core-geometry) to initialize with the result and return.
802
- * @returns The unquantized point at the specified index in [[buffer]].
803
- * @throws Error if `pointIndex` is out of bounds.
804
- */
805
- unquantize(pointIndex, result) {
806
- return this.get(pointIndex, this._scratchQPoint3d).unquantize(this.params, result);
807
- }
808
- /** Obtain a [[QPoint3dBuffer]] containing all of the points that have been appended by this builder. */
809
- finish() {
810
- return {
811
- params: this.params,
812
- points: this.buffer.toTypedArray(),
813
- };
814
- }
815
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Geometry
7
+ */
8
+ import { assert, Uint16ArrayBuilder } from "@itwin/core-bentley";
9
+ import { Point2d, Point3d, Range2d, Range3d, Vector2d, Vector3d, } from "@itwin/core-geometry";
10
+ /**
11
+ * Provides facilities for quantizing floating point values within a specified range into 16-bit unsigned integers.
12
+ * This is a lossy compression technique.
13
+ * Given a floating point range [min, max], a floating point value `x` within that range is quantized by subtracting
14
+ * `min`, scaling the result according to `max`, and truncating the result to an integer.
15
+ * Therefore min quantizes to 0, max to 0xffff, (min+max)/2 to 0x7fff, and so on.
16
+ * These routines are chiefly used by classes like [[QPoint2d]] and [[QPoint3d]] to reduce the space required to store
17
+ * coordinate values for [RenderGraphic]($frontend)s.
18
+ * @public
19
+ * @extensions
20
+ */
21
+ export var Quantization;
22
+ (function (Quantization) {
23
+ Quantization.rangeScale16 = 0xffff;
24
+ Quantization.rangeScale8 = 0xff;
25
+ /** Compute the scale factor required to quantize `extent` to `rangeScale` discrete values. */
26
+ function computeScale(extent, rangeScale = Quantization.rangeScale16) {
27
+ return 0.0 === extent ? extent : rangeScale / extent;
28
+ }
29
+ Quantization.computeScale = computeScale;
30
+ /** @internal */
31
+ function isInRange(qpos, rangeScale = Quantization.rangeScale16) {
32
+ return qpos >= 0.0 && qpos < rangeScale + 1.0;
33
+ }
34
+ Quantization.isInRange = isInRange;
35
+ /** Return `pos` quantized to the range [`origin`, `origin + rangeScale`].
36
+ * @see [[Quantization.unquantize]] for the inverse operation.
37
+ */
38
+ function quantize(pos, origin, scale, rangeScale = Quantization.rangeScale16) {
39
+ return Math.floor(Math.max(0.0, Math.min(rangeScale, 0.5 + (pos - origin) * scale)));
40
+ }
41
+ Quantization.quantize = quantize;
42
+ /** @internal */
43
+ function isQuantizable(pos, origin, scale, rangeScale = Quantization.rangeScale16) {
44
+ return isInRange(quantize(pos, origin, scale, rangeScale));
45
+ }
46
+ Quantization.isQuantizable = isQuantizable;
47
+ /** Give `qpos` quantized to the range [`origin`, `origin + rangeScale`], return the unquantized value.
48
+ * @see [[Quantization.quantize]] for the inverse operation.
49
+ */
50
+ function unquantize(qpos, origin, scale) {
51
+ return 0.0 === scale ? origin : origin + qpos / scale;
52
+ }
53
+ Quantization.unquantize = unquantize;
54
+ /** @internal */
55
+ function isQuantized(qpos) {
56
+ return isInRange(qpos) && qpos === Math.floor(qpos);
57
+ }
58
+ Quantization.isQuantized = isQuantized;
59
+ })(Quantization || (Quantization = {}));
60
+ /** Parameters used for [[Quantization]] of 2d points such that the `x` and `y` components are each quantized to 16-bit unsigned integers.
61
+ * @see [[QPoint2d]] for the quantized representation of a [Point2d]($core-geometry).
62
+ * @see [[QPoint2dList]] for a list of [[QPoint2d]]s quantized using a [[QParams2d]].
63
+ * @public
64
+ * @extensions
65
+ */
66
+ export class QParams2d {
67
+ constructor(ox = 0, oy = 0, sx = 0, sy = 0) {
68
+ /** The origin of the quantization range. */
69
+ this.origin = new Point2d();
70
+ /** The scale applied to coordinates to quantize them. */
71
+ this.scale = new Point2d();
72
+ this.setFrom(ox, oy, sx, sy);
73
+ }
74
+ setFrom(ox, oy, sx, sy) {
75
+ this.origin.x = ox;
76
+ this.origin.y = oy;
77
+ this.scale.x = sx;
78
+ this.scale.y = sy;
79
+ }
80
+ /** Set [[origin]] and [[scale]] from `src`. */
81
+ copyFrom(src) {
82
+ this.setFrom(src.origin.x, src.origin.y, src.scale.x, src.scale.y);
83
+ }
84
+ /** Create a copy of these params.
85
+ * @param out If supplied, these QParams2d will be modified and returned; otherwise a new QParams2d object will be created and returned.
86
+ */
87
+ clone(out) {
88
+ const result = undefined !== out ? out : new QParams2d();
89
+ result.copyFrom(this);
90
+ return result;
91
+ }
92
+ /** Initialize these parameters to support quantization of values within the specified range. */
93
+ setFromRange(range, rangeScale = Quantization.rangeScale16) {
94
+ if (!range.isNull) {
95
+ this.setFrom(range.low.x, range.low.y, Quantization.computeScale(range.high.x - range.low.x, rangeScale), Quantization.computeScale(range.high.y - range.low.y, rangeScale));
96
+ }
97
+ else {
98
+ this.origin.x = this.origin.y = this.scale.x = this.scale.y = 0;
99
+ }
100
+ }
101
+ /** Create parameters to support quantization of values within the specified range. */
102
+ static fromRange(range, out, rangeScale = Quantization.rangeScale16) {
103
+ const params = undefined !== out ? out : new QParams2d();
104
+ params.setFromRange(range, rangeScale);
105
+ return params;
106
+ }
107
+ /** Return the unquantized point for the input `x` and `y` components. If `out` is supplied, it will be modified to hold the result and returned. */
108
+ unquantize(x, y, out) {
109
+ out = out !== null && out !== void 0 ? out : new Point2d();
110
+ out.x = Quantization.unquantize(x, this.origin.x, this.scale.x);
111
+ out.y = Quantization.unquantize(y, this.origin.y, this.scale.y);
112
+ return out;
113
+ }
114
+ /** Creates parameters supporting quantization of values within the range [-1.0, 1.0], appropriate for normalized 2d vectors. */
115
+ static fromNormalizedRange(rangeScale = Quantization.rangeScale16) {
116
+ return QParams2d.fromRange(Range2d.createArray([Point2d.create(-1, -1), Point2d.create(1, 1)]), undefined, rangeScale);
117
+ }
118
+ /** Create parameters supporting quantization of values within the range [0.0, 1.0]. */
119
+ static fromZeroToOne(rangeScale = Quantization.rangeScale16) {
120
+ return QParams2d.fromRange(Range2d.createArray([Point2d.create(0, 0), Point2d.create(1, 1)]), undefined, rangeScale);
121
+ }
122
+ /** Create parameters from origin and scale components */
123
+ static fromOriginAndScale(originX, originY, scaleX, scaleY) {
124
+ return new QParams2d(originX, originY, scaleX, scaleY);
125
+ }
126
+ /** @internal */
127
+ get rangeDiagonal() {
128
+ return Vector2d.createFrom({ x: 0 === this.scale.x ? 0 : Quantization.rangeScale16 / this.scale.x, y: 0 === this.scale.y ? 0 : Quantization.rangeScale16 / this.scale.y });
129
+ }
130
+ /** Return true if the point point is quantizable using these parameters. */
131
+ isQuantizable(point) {
132
+ return Quantization.isQuantizable(point.x, this.origin.x, this.scale.x) && Quantization.isQuantizable(point.y, this.origin.y, this.scale.y);
133
+ }
134
+ }
135
+ /** Represents a [Point2d]($core-geometry) compressed such that each component `x` and `y` is quantized to the 16-bit integer range [0, 0xffff].
136
+ * These are primarily used to reduce the space required for coordinates used by [RenderGraphic]($frontend)s.
137
+ * @see [[QParams2d]] to define quantization parameters for a range of points.
138
+ * @see [[QPoint2dList]] for a list of points all quantized to the same range.
139
+ * @public
140
+ * @extensions
141
+ */
142
+ export class QPoint2d {
143
+ /** Construct with `x` and `y` initialized to zero. */
144
+ constructor() {
145
+ this._x = 0;
146
+ this._y = 0;
147
+ }
148
+ /** The quantized x component. */
149
+ get x() { return this._x; }
150
+ set x(x) {
151
+ assert(Quantization.isQuantized(x));
152
+ this._x = x;
153
+ }
154
+ /** The quantized y component. */
155
+ get y() { return this._y; }
156
+ set y(y) {
157
+ assert(Quantization.isQuantized(y));
158
+ this._y = y;
159
+ }
160
+ /** Initialize this point by quantizing the supplied { x, y } using the specified params */
161
+ init(pos, params) {
162
+ this.x = Quantization.quantize(pos.x, params.origin.x, params.scale.x);
163
+ this.y = Quantization.quantize(pos.y, params.origin.y, params.scale.y);
164
+ }
165
+ /** Create a quantized point from the supplied Point2d using the specified params */
166
+ static create(pos, params) {
167
+ const qpt = new QPoint2d();
168
+ qpt.init(pos, params);
169
+ return qpt;
170
+ }
171
+ /** Initialize `x` and `y` from `src`. */
172
+ copyFrom(src) {
173
+ this.x = src.x;
174
+ this.y = src.y;
175
+ }
176
+ /** Create a copy of this point.
177
+ * @param out If supplied, it will be modified in-place and returned; otherwise a new QPoint2d will be allocated and returned.
178
+ */
179
+ clone(out) {
180
+ const result = undefined !== out ? out : new QPoint2d();
181
+ result.copyFrom(this);
182
+ return result;
183
+ }
184
+ /**
185
+ * Set the x and y components directly.
186
+ * @param x Must be an integer in the range [0, 0xffff]
187
+ * @param y Must be an integer in the range [0, 0xffff]
188
+ */
189
+ setFromScalars(x, y) {
190
+ this.x = x;
191
+ this.y = y;
192
+ }
193
+ /**
194
+ * Create a QPoint2d directly from x and y components.
195
+ * @param x Must be an integer in the range [0, 0xffff]
196
+ * @param y Must be an integer in the range [0, 0xffff]
197
+ */
198
+ static fromScalars(x, y) {
199
+ const pt = new QPoint2d();
200
+ pt.setFromScalars(x, y);
201
+ return pt;
202
+ }
203
+ /** Return a Point2d unquantized according to the supplied `params`. If `out` is supplied, it will be modified in-place and returned. */
204
+ unquantize(params, out) {
205
+ const pt = undefined !== out ? out : new Point2d();
206
+ pt.x = Quantization.unquantize(this.x, params.origin.x, params.scale.x);
207
+ pt.y = Quantization.unquantize(this.y, params.origin.y, params.scale.y);
208
+ return pt;
209
+ }
210
+ }
211
+ /** @public
212
+ * @extensions
213
+ */
214
+ export var QPoint2dBuffer;
215
+ (function (QPoint2dBuffer) {
216
+ const scratchQPoint2d = new QPoint2d();
217
+ /** Extracts the point at the specified index from a buffer.
218
+ * @param points The buffer in which each consecutive pair of integers is a 2d quantized point.
219
+ * @param pointIndex The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
220
+ * @param result If supplied, a preallocated [[QPoint2d]] to initialize with the result and return.
221
+ * @returns The point at `pointIndex`.
222
+ * @throws Error if `pointIndex` is out of bounds.
223
+ */
224
+ function getQPoint(points, pointIndex, result) {
225
+ const index = pointIndex * 2;
226
+ const x = points[index + 0];
227
+ const y = points[index + 1];
228
+ if (undefined === x || undefined === y)
229
+ throw new Error("Index out of range");
230
+ result = result !== null && result !== void 0 ? result : new QPoint2d();
231
+ result.setFromScalars(x, y);
232
+ return result;
233
+ }
234
+ QPoint2dBuffer.getQPoint = getQPoint;
235
+ /** Extracts and unquantizes the point at the specified index from a buffer.
236
+ * @param buffer The array of points and the quantization parameters.
237
+ * @param The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
238
+ * @param result If supplied, a preallocated [Point2d]($core-geometry) to initialize with the result and return.
239
+ * @returns The point at `pointIndex`.
240
+ * @throws Error if `pointIndex` is out of bounds.
241
+ */
242
+ function unquantizePoint(buffer, pointIndex, result) {
243
+ const qpt = getQPoint(buffer.points, pointIndex, scratchQPoint2d);
244
+ return qpt.unquantize(buffer.params, result);
245
+ }
246
+ QPoint2dBuffer.unquantizePoint = unquantizePoint;
247
+ })(QPoint2dBuffer || (QPoint2dBuffer = {}));
248
+ /** A list of [[QPoint2d]]s all quantized to the same range.
249
+ * @public
250
+ * @extensions
251
+ */
252
+ export class QPoint2dList {
253
+ /** Construct an empty list set up to use the supplied quantization parameters. */
254
+ constructor(params) {
255
+ this._list = new Array();
256
+ this.params = params.clone();
257
+ }
258
+ /** The list of quantized points. */
259
+ get list() {
260
+ return this._list;
261
+ }
262
+ /** Removes all points from the list. */
263
+ clear() {
264
+ this._list.length = 0;
265
+ }
266
+ /** Removes all points from the list and change the quantization parameters. */
267
+ reset(params) {
268
+ this.clear();
269
+ this.params.copyFrom(params);
270
+ }
271
+ /** Quantizes the supplied Point2d to this list's range and appends it to the list. */
272
+ add(pt) {
273
+ this._list.push(QPoint2d.create(pt, this.params));
274
+ }
275
+ /** Adds a previously-quantized point to this list. */
276
+ push(qpt) {
277
+ this._list.push(qpt.clone());
278
+ }
279
+ /** The number of points in the list. */
280
+ get length() {
281
+ return this._list.length;
282
+ }
283
+ /** Returns the unquantized value of the point at the specified index in the list. */
284
+ unquantize(index, out) {
285
+ assert(index < this.length);
286
+ if (index < this.length) {
287
+ return this._list[index].unquantize(this.params, out);
288
+ }
289
+ else {
290
+ return undefined !== out ? out : new Point2d();
291
+ }
292
+ }
293
+ /** Changes the quantization parameters and requantizes all points in the list to the new range.
294
+ * @note The loss of precision is compounded each time the points are requantized to a new range.
295
+ */
296
+ requantize(params) {
297
+ for (let i = 0; i < this.length; i++) {
298
+ const pt = this.unquantize(i);
299
+ this._list[i].init(pt, params);
300
+ }
301
+ this.params.copyFrom(params);
302
+ }
303
+ /** Extracts the current contents of the list as a Uint16Array such that the first element of the array corresponds to the first point's `x` component,
304
+ * the second to the first point's `y` component, and so on.
305
+ */
306
+ toTypedArray() {
307
+ const array = new Uint16Array(this.length * 2);
308
+ const pts = this._list;
309
+ for (let i = 0; i < this.length; i++) {
310
+ const pt = pts[i];
311
+ array[i * 2] = pt.x;
312
+ array[i * 2 + 1] = pt.y;
313
+ }
314
+ return array;
315
+ }
316
+ /** Create from a Uint16Array laid out such that `array[0]` corresponds to the first point's `x` component, `array[1]` to the first point's `y` component, and so on. */
317
+ fromTypedArray(range, array) {
318
+ this.params.setFromRange(range);
319
+ this._list.length = array.length / 2;
320
+ for (let i = 0, j = 0; i < this.list.length; i++)
321
+ this._list[i] = QPoint2d.fromScalars(array[j++], array[j++]);
322
+ }
323
+ /** Construct a QPoint2dList containing all points in the supplied list, quantized to the range of those points. */
324
+ static fromPoints(points, out) {
325
+ let qPoints;
326
+ const qParams = QParams2d.fromRange(Range2d.createArray(points));
327
+ if (out) {
328
+ qPoints = out;
329
+ qPoints.reset(qParams);
330
+ }
331
+ else {
332
+ qPoints = new QPoint2dList(qParams);
333
+ }
334
+ for (const point of points)
335
+ qPoints.add(point);
336
+ return qPoints;
337
+ }
338
+ }
339
+ /** Parameters used for [[Quantization]] of 3d points such that the `x`, `y`, and `z` components are each quantized to 16-bit unsigned integers.
340
+ * @see [[QPoint3d]] for the quantized representation of a [Point3d]($core-geometry).
341
+ * @see [[QPoint3dList]] for a list of [[QPoint3d]]s quantized using a [[QParams3d]].
342
+ * @public
343
+ * @extensions
344
+ */
345
+ export class QParams3d {
346
+ constructor(ox = 0, oy = 0, oz = 0, sx = 0, sy = 0, sz = 0) {
347
+ /** The origin of the quantization range. */
348
+ this.origin = new Point3d();
349
+ /** The scale applied to coordinates to quantize them. */
350
+ this.scale = new Point3d();
351
+ this.setFrom(ox, oy, oz, sx, sy, sz);
352
+ }
353
+ setFrom(ox, oy, oz, sx, sy, sz) {
354
+ this.origin.x = ox;
355
+ this.origin.y = oy;
356
+ this.origin.z = oz;
357
+ this.scale.x = sx;
358
+ this.scale.y = sy;
359
+ this.scale.z = sz;
360
+ }
361
+ /** Set `x`, `y`, and `z` from `src. */
362
+ copyFrom(src) {
363
+ this.setFrom(src.origin.x, src.origin.y, src.origin.z, src.scale.x, src.scale.y, src.scale.z);
364
+ }
365
+ /** Create a copy of these parameters.
366
+ * @param out If supplied, it will be modified in-place and returned instead of allocating a new QParams3d.
367
+ */
368
+ clone(out) {
369
+ const result = undefined !== out ? out : new QParams3d();
370
+ result.copyFrom(this);
371
+ return result;
372
+ }
373
+ /** Initialize from origin and scale */
374
+ setFromOriginAndScale(origin, scale) {
375
+ this.setFrom(origin.x, origin.y, origin.z, scale.x, scale.y, scale.z);
376
+ }
377
+ /** Initialize these parameters to support quantization of values within the specified range. */
378
+ setFromRange(range, rangeScale = Quantization.rangeScale16) {
379
+ if (!range.isNull) {
380
+ this.setFrom(range.low.x, range.low.y, range.low.z, Quantization.computeScale(range.high.x - range.low.x, rangeScale), Quantization.computeScale(range.high.y - range.low.y, rangeScale), Quantization.computeScale(range.high.z - range.low.z, rangeScale));
381
+ }
382
+ else {
383
+ this.origin.x = this.origin.y = this.origin.z = 0;
384
+ this.scale.x = this.scale.y = this.scale.z = 0;
385
+ }
386
+ }
387
+ /** Return the unquantized point for the input components.
388
+ * @param out If supplied, it will be modified in-place and returned instead of allocating a new Point3d.
389
+ */
390
+ unquantize(x, y, z, out) {
391
+ const pt = undefined !== out ? out : new Point3d();
392
+ pt.x = Quantization.unquantize(x, this.origin.x, this.scale.x);
393
+ pt.y = Quantization.unquantize(y, this.origin.y, this.scale.y);
394
+ pt.z = Quantization.unquantize(z, this.origin.z, this.scale.z);
395
+ return pt;
396
+ }
397
+ /** Creates parameters to support quantization of values within the specified range.
398
+ * If `out` is supplied, it will be modified in-place and returned instead of allocating a new QParams3d.
399
+ */
400
+ static fromRange(range, out, rangeScale = Quantization.rangeScale16) {
401
+ const params = undefined !== out ? out : new QParams3d();
402
+ params.setFromRange(range, rangeScale);
403
+ return params;
404
+ }
405
+ /** Creates parameters supporting quantization of values within the range [-1.0, 1.0].
406
+ * If `out` is supplied, it will be modified in-place and returned instead of allocating a new QParams3d.
407
+ */
408
+ static fromOriginAndScale(origin, scale, out) {
409
+ const params = undefined !== out ? out : new QParams3d();
410
+ params.setFromOriginAndScale(origin, scale);
411
+ return params;
412
+ }
413
+ /** Creates parameters supporting quantization of values within the range [-1.0, 1.0]. */
414
+ static fromNormalizedRange(rangeScale = Quantization.rangeScale16) {
415
+ return QParams3d.fromRange(Range3d.createArray([Point3d.create(-1, -1, -1), Point3d.create(1, 1, 1)]), undefined, rangeScale);
416
+ }
417
+ /** Creates parameters supporting quantization of values within the range [0.0, 1.0]. */
418
+ static fromZeroToOne(rangeScale = Quantization.rangeScale16) {
419
+ return QParams3d.fromRange(Range3d.createArray([Point3d.create(0, 0, 0), Point3d.create(1, 1, 1)]), undefined, rangeScale);
420
+ }
421
+ /** @internal */
422
+ get rangeDiagonal() {
423
+ return Vector3d.createFrom({
424
+ x: this.scale.x === 0 ? 0 : Quantization.rangeScale16 / this.scale.x,
425
+ y: this.scale.y === 0 ? 0 : Quantization.rangeScale16 / this.scale.y,
426
+ z: this.scale.z === 0 ? 0 : Quantization.rangeScale16 / this.scale.z,
427
+ });
428
+ }
429
+ /** Return true if the point point is quantizable using these parameters. */
430
+ isQuantizable(point) {
431
+ return Quantization.isQuantizable(point.x, this.origin.x, this.scale.x) && Quantization.isQuantizable(point.y, this.origin.y, this.scale.y) && Quantization.isQuantizable(point.z, this.origin.z, this.scale.z);
432
+ }
433
+ /** Compute the range to which these parameters quantize. */
434
+ computeRange(out) {
435
+ const range = Range3d.createNull(out);
436
+ range.extendPoint(this.origin);
437
+ range.extendPoint(this.origin.plus(this.rangeDiagonal));
438
+ return range;
439
+ }
440
+ }
441
+ /** Represents a [Point3d]($core-geometry) compressed such that each component `x`, `y`, and `z` is quantized to the 16-bit integer range [0, 0xffff].
442
+ * These are primarily used to reduce the space required for coordinates used by [RenderGraphic]($frontend)s.
443
+ * @see [[QParams3d]] to define quantization parameters for a range of points.
444
+ * @see [[QPoint3dList]] for a list of points all quantized to the same range.
445
+ * @public
446
+ * @extensions
447
+ */
448
+ export class QPoint3d {
449
+ /** Construct with all components initialized to zero. */
450
+ constructor() {
451
+ this._x = 0;
452
+ this._y = 0;
453
+ this._z = 0;
454
+ }
455
+ /** The quantized x component. */
456
+ get x() { return this._x; }
457
+ set x(x) {
458
+ assert(Quantization.isQuantized(x));
459
+ this._x = x;
460
+ }
461
+ /** The quantized y component. */
462
+ get y() { return this._y; }
463
+ set y(y) {
464
+ assert(Quantization.isQuantized(y));
465
+ this._y = y;
466
+ }
467
+ /** The quantized z component. */
468
+ get z() { return this._z; }
469
+ set z(z) {
470
+ assert(Quantization.isQuantized(z));
471
+ this._z = z;
472
+ }
473
+ /** Initialize this point by quantizing the supplied { x, y, z } using the specified params */
474
+ init(pos, params) {
475
+ this.x = Quantization.quantize(pos.x, params.origin.x, params.scale.x);
476
+ this.y = Quantization.quantize(pos.y, params.origin.y, params.scale.y);
477
+ this.z = Quantization.quantize(pos.z, params.origin.z, params.scale.z);
478
+ }
479
+ /** Creates a quantized point from the supplied Point3d using the specified params */
480
+ static create(pos, params) {
481
+ const qpt = new QPoint3d();
482
+ qpt.init(pos, params);
483
+ return qpt;
484
+ }
485
+ /** Set this points components from `src`. */
486
+ copyFrom(src) {
487
+ this.x = src.x;
488
+ this.y = src.y;
489
+ this.z = src.z;
490
+ }
491
+ /** Create a copy of this point.
492
+ * @param out If supplied, it will be modified in-place instead of allocating a new QPoint3d.
493
+ */
494
+ clone(out) {
495
+ const result = undefined !== out ? out : new QPoint3d();
496
+ result.copyFrom(this);
497
+ return result;
498
+ }
499
+ /**
500
+ * Sets the x, y, and z components directly.
501
+ * @param x Must be an integer in the range [0, 0xffff]
502
+ * @param y Must be an integer in the range [0, 0xffff]
503
+ * @param z Must be an integer in the range [0, 0xffff]
504
+ */
505
+ setFromScalars(x, y, z) {
506
+ this.x = x;
507
+ this.y = y;
508
+ this.z = z;
509
+ }
510
+ /**
511
+ * Creates a QPoint3d directly from x, y, and z components.
512
+ * @param x Must be an integer in the range [0, 0xffff]
513
+ * @param y Must be an integer in the range [0, 0xffff]
514
+ * @param z Must be an integer in the range [0, 0xffff]
515
+ * @param out If supplied, it will be modified in-place instead of allocating a new QPoint3d.
516
+ */
517
+ static fromScalars(x, y, z, out) {
518
+ const pt = undefined === out ? new QPoint3d() : out;
519
+ pt.setFromScalars(x, y, z);
520
+ return pt;
521
+ }
522
+ /** Returns a Point3d unquantized according to the supplied params.
523
+ * If `out` is supplied, it will be modified in-place instead of allocating a new Point3d.
524
+ */
525
+ unquantize(params, out) {
526
+ const pt = undefined !== out ? out : new Point3d();
527
+ pt.x = Quantization.unquantize(this.x, params.origin.x, params.scale.x);
528
+ pt.y = Quantization.unquantize(this.y, params.origin.y, params.scale.y);
529
+ pt.z = Quantization.unquantize(this.z, params.origin.z, params.scale.z);
530
+ return pt;
531
+ }
532
+ /** Return true if this point's components are identical to the other point's components. */
533
+ equals(other) {
534
+ return this.x === other.x && this.y === other.y && this.z === other.z;
535
+ }
536
+ /** Perform ordinal comparison to another point. The function returns:
537
+ * - Zero if this point is identical to `rhs`; or
538
+ * - A number less than zero if this point is ordered before `rhs`; or
539
+ * - A number greater than zero if this point is ordered after `rhs`.
540
+ * @see [OrderedComparator]($core-bentley).
541
+ */
542
+ compare(rhs) {
543
+ let diff = this.x - rhs.x;
544
+ if (0 === diff) {
545
+ diff = this.y - rhs.y;
546
+ if (0 === diff) {
547
+ diff = this.z - rhs.z;
548
+ }
549
+ }
550
+ return diff;
551
+ }
552
+ }
553
+ /** @public
554
+ * @extensions
555
+ */
556
+ export var QPoint3dBuffer;
557
+ (function (QPoint3dBuffer) {
558
+ const scratchQPoint3d = new QPoint3d();
559
+ /** Extracts the point at the specified index from a buffer.
560
+ * @param points The buffer in which each consecutive pair of integers is a 3d quantized point.
561
+ * @param pointIndex The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
562
+ * @param result If supplied, a preallocated [[QPoint3d]] to initialize with the result and return.
563
+ * @returns The point at `pointIndex`.
564
+ * @throws Error if `pointIndex` is out of bounds.
565
+ */
566
+ function getQPoint(points, pointIndex, result) {
567
+ const index = pointIndex * 3;
568
+ const x = points[index + 0];
569
+ const y = points[index + 1];
570
+ const z = points[index + 2];
571
+ if (undefined === x || undefined === y || undefined === z)
572
+ throw new Error("Index out of range");
573
+ result = result !== null && result !== void 0 ? result : new QPoint3d();
574
+ result.setFromScalars(x, y, z);
575
+ return result;
576
+ }
577
+ QPoint3dBuffer.getQPoint = getQPoint;
578
+ /** Extracts and unquantizes the point at the specified index from a buffer.
579
+ * @param buffer The array of points and the quantization parameters.
580
+ * @param The index of the point to extract, ranging from zero to one less than the number of points in the buffer.
581
+ * @param result If supplied, a preallocated [Point3d]($core-geometry) to initialize with the result and return.
582
+ * @returns The point at `pointIndex`.
583
+ * @throws Error if `pointIndex` is out of bounds.
584
+ */
585
+ function unquantizePoint(buffer, pointIndex, result) {
586
+ const qpt = getQPoint(buffer.points, pointIndex, scratchQPoint3d);
587
+ return qpt.unquantize(buffer.params, result);
588
+ }
589
+ QPoint3dBuffer.unquantizePoint = unquantizePoint;
590
+ })(QPoint3dBuffer || (QPoint3dBuffer = {}));
591
+ /** A list of [[QPoint3d]]s all quantized to the same range.
592
+ * @public
593
+ * @extensions
594
+ */
595
+ export class QPoint3dList {
596
+ /** Construct an empty list set up to quantize to the supplied range.
597
+ * @param The quantization parameters. If omitted, a null range will be used.
598
+ */
599
+ constructor(params) {
600
+ this._list = [];
601
+ this.params = params ? params.clone() : QParams3d.fromRange(Range3d.createNull());
602
+ }
603
+ /** The list of quantized points. */
604
+ get list() {
605
+ return this._list;
606
+ }
607
+ /** Construct a QPoint3dList containing all points in the supplied list, quantized to the range of those points.
608
+ * @param The points to quantize and add to the list.
609
+ * @param out If supplied, it will be cleared, its parameters recomputed, and the points will be added to it; otherwise, a new QPoint3dList will be created and returned.
610
+ */
611
+ static fromPoints(points, out) {
612
+ let qPoints;
613
+ const qParams = QParams3d.fromRange(Range3d.createArray(points));
614
+ if (out) {
615
+ qPoints = out;
616
+ qPoints.reset(qParams);
617
+ }
618
+ else {
619
+ qPoints = new QPoint3dList(qParams);
620
+ }
621
+ for (const point of points)
622
+ qPoints.add(point);
623
+ return qPoints;
624
+ }
625
+ /** Removes all points from the list. */
626
+ clear() {
627
+ this._list.length = 0;
628
+ }
629
+ /** Clears out the contents of the list and changes the quantization parameters. */
630
+ reset(params) {
631
+ this.clear();
632
+ this.params.copyFrom(params);
633
+ }
634
+ /** Quantizes the supplied Point3d to this list's range and appends it to the list. */
635
+ add(pt) {
636
+ this._list.push(QPoint3d.create(pt, this.params));
637
+ }
638
+ /** Adds a previously-quantized point to this list. */
639
+ push(qpt) {
640
+ this._list.push(qpt.clone());
641
+ }
642
+ /** The number of points in the list. */
643
+ get length() {
644
+ return this._list.length;
645
+ }
646
+ /** Returns the unquantized value of the point at the specified index in the list. */
647
+ unquantize(index, out) {
648
+ assert(index < this.length);
649
+ if (index < this.length) {
650
+ return this._list[index].unquantize(this.params, out);
651
+ }
652
+ else {
653
+ return undefined !== out ? out : new Point3d();
654
+ }
655
+ }
656
+ /** Changes the quantization parameters and requantizes all points in the list to the new range.
657
+ * @note The loss of precision is compounded each time the points are requantized to a new range.
658
+ */
659
+ requantize(params) {
660
+ for (let i = 0; i < this.length; i++) {
661
+ const pt = this.unquantize(i);
662
+ this._list[i].init(pt, params);
663
+ }
664
+ this.params.copyFrom(params);
665
+ }
666
+ /** Extracts the current contents of the list as a Uint16Array such that the first 3 elements contain the first point's x, y, and z components,
667
+ * the second three elements contain the second point's components, and so on.
668
+ */
669
+ toTypedArray() {
670
+ const array = new Uint16Array(this.length * 3);
671
+ const pts = this._list;
672
+ for (let i = 0; i < this.length; i++) {
673
+ const pt = pts[i];
674
+ array[i * 3 + 0] = pt.x;
675
+ array[i * 3 + 1] = pt.y;
676
+ array[i * 3 + 2] = pt.z;
677
+ }
678
+ return array;
679
+ }
680
+ /** Reinitialize from a Uint16Array in which the first three elements specify the x, y, and z components of the first point, the second three elements specify the components
681
+ * of the second point, and so on.
682
+ */
683
+ fromTypedArray(range, array) {
684
+ this.params.setFromRange(range);
685
+ this._list.length = array.length / 3;
686
+ for (let i = 0, j = 0; i < this.list.length; i++)
687
+ this._list[i] = QPoint3d.fromScalars(array[j++], array[j++], array[j++]);
688
+ }
689
+ /** Construct a list containing all points in the supplied list, quantized using the supplied parameters. */
690
+ static createFrom(points, params) {
691
+ const list = new QPoint3dList(params);
692
+ for (const point of points)
693
+ list.add(point);
694
+ return list;
695
+ }
696
+ /** An iterator over the points in the list. */
697
+ [Symbol.iterator]() {
698
+ return this.list[Symbol.iterator]();
699
+ }
700
+ }
701
+ /** Constructs a [[QPoint2dBuffer]] using a [Uint16ArrayBuilder]($bentley).
702
+ * @public
703
+ * @extensions
704
+ */
705
+ export class QPoint2dBufferBuilder {
706
+ /** Construct a new buffer with a [[length]] of zero. */
707
+ constructor(options) {
708
+ var _a;
709
+ this._scratchQPoint2d = new QPoint2d();
710
+ this.params = QParams2d.fromRange(options.range);
711
+ const initialCapacity = (_a = options.initialCapacity) !== null && _a !== void 0 ? _a : 0;
712
+ this.buffer = new Uint16ArrayBuilder({
713
+ growthFactor: options.growthFactor,
714
+ initialCapacity: 2 * initialCapacity,
715
+ });
716
+ }
717
+ /** Append a point with the specified quantized coordinates. */
718
+ pushXY(x, y) {
719
+ this.buffer.push(x);
720
+ this.buffer.push(y);
721
+ }
722
+ /** Append a point with the specified quantized coordinates. */
723
+ push(pt) {
724
+ this.pushXY(pt.x, pt.y);
725
+ }
726
+ /** The number of points currently in the [[buffer]]. */
727
+ get length() {
728
+ const len = this.buffer.length;
729
+ assert(len % 2 === 0);
730
+ return len / 2;
731
+ }
732
+ /** Returns the quantized point at the specified index in [[buffer]].
733
+ * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
734
+ * @param result If supplied, a [[QPoint2d]] to initialize with the result and return.
735
+ * @returns The quantized point at the specified index in [[buffer]].
736
+ * @throws Error if `pointIndex` is out of bounds.
737
+ */
738
+ get(pointIndex, result) {
739
+ return QPoint2dBuffer.getQPoint(this.buffer.toTypedArray(), pointIndex, result);
740
+ }
741
+ /** Returns the unquantized point at the specified index in [[buffer]].
742
+ * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
743
+ * @param result If supplied, a [Point2d]($core-geometry) to initialize with the result and return.
744
+ * @returns The unquantized point at the specified index in [[buffer]].
745
+ * @throws Error if `pointIndex` is out of bounds.
746
+ */
747
+ unquantize(pointIndex, result) {
748
+ return this.get(pointIndex, this._scratchQPoint2d).unquantize(this.params, result);
749
+ }
750
+ /** Obtain a [[QPoint2dBuffer]] containing all of the points that have been appended by this builder. */
751
+ finish() {
752
+ return {
753
+ params: this.params,
754
+ points: this.buffer.toTypedArray(),
755
+ };
756
+ }
757
+ }
758
+ /** Constructs a [[QPoint3dBuffer]] using a [Uint16ArrayBuilder]($bentley).
759
+ * @public
760
+ * @extensions
761
+ */
762
+ export class QPoint3dBufferBuilder {
763
+ /** Construct a new buffer with a [[length]] of zero. */
764
+ constructor(options) {
765
+ var _a;
766
+ this._scratchQPoint3d = new QPoint3d();
767
+ this.params = QParams3d.fromRange(options.range);
768
+ const initialCapacity = (_a = options.initialCapacity) !== null && _a !== void 0 ? _a : 0;
769
+ this.buffer = new Uint16ArrayBuilder({
770
+ growthFactor: options.growthFactor,
771
+ initialCapacity: 3 * initialCapacity,
772
+ });
773
+ }
774
+ /** Append a point with the specified quantized coordinates. */
775
+ pushXYZ(x, y, z) {
776
+ this.buffer.push(x);
777
+ this.buffer.push(y);
778
+ this.buffer.push(z);
779
+ }
780
+ /** Append a point with the specified quantized coordinates. */
781
+ push(pt) {
782
+ this.pushXYZ(pt.x, pt.y, pt.z);
783
+ }
784
+ /** The number of points currently in the [[buffer]]. */
785
+ get length() {
786
+ const len = this.buffer.length;
787
+ assert(len % 3 === 0);
788
+ return len / 3;
789
+ }
790
+ /** Returns the quantized point at the specified index in [[buffer]].
791
+ * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
792
+ * @param result If supplied, a [[QPoint3d]] to initialize with the result and return.
793
+ * @returns The quantized point at the specified index in [[buffer]].
794
+ * @throws Error if `pointIndex` is out of bounds.
795
+ */
796
+ get(pointIndex, result) {
797
+ return QPoint3dBuffer.getQPoint(this.buffer.toTypedArray(), pointIndex, result);
798
+ }
799
+ /** Returns the unquantized point at the specified index in [[buffer]].
800
+ * @param pointIndex The index of the point of interest, ranging from zero to one minus the number of points currently in the [[buffer]].
801
+ * @param result If supplied, a [Point3d]($core-geometry) to initialize with the result and return.
802
+ * @returns The unquantized point at the specified index in [[buffer]].
803
+ * @throws Error if `pointIndex` is out of bounds.
804
+ */
805
+ unquantize(pointIndex, result) {
806
+ return this.get(pointIndex, this._scratchQPoint3d).unquantize(this.params, result);
807
+ }
808
+ /** Obtain a [[QPoint3dBuffer]] containing all of the points that have been appended by this builder. */
809
+ finish() {
810
+ return {
811
+ params: this.params,
812
+ points: this.buffer.toTypedArray(),
813
+ };
814
+ }
815
+ }
816
816
  //# sourceMappingURL=QPoint.js.map