@itwin/core-common 3.6.0-dev.60 → 3.6.0-dev.65

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