@itwin/core-common 3.5.0-dev.5 → 3.5.0-dev.52

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 (984) hide show
  1. package/CHANGELOG.md +60 -1
  2. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  3. package/lib/cjs/AmbientOcclusion.js +55 -55
  4. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  5. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  6. package/lib/cjs/AnalysisStyle.js +165 -165
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/AuthorizationClient.d.ts +11 -11
  9. package/lib/cjs/AuthorizationClient.js +9 -9
  10. package/lib/cjs/AuthorizationClient.js.map +1 -1
  11. package/lib/cjs/BackendTypes.d.ts +13 -0
  12. package/lib/cjs/BackendTypes.d.ts.map +1 -0
  13. package/lib/cjs/BackendTypes.js +10 -0
  14. package/lib/cjs/BackendTypes.js.map +1 -0
  15. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  16. package/lib/cjs/BackgroundMapProvider.js +68 -68
  17. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  18. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  19. package/lib/cjs/BackgroundMapSettings.js +156 -156
  20. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  21. package/lib/cjs/Base64EncodedString.d.ts +32 -30
  22. package/lib/cjs/Base64EncodedString.d.ts.map +1 -1
  23. package/lib/cjs/Base64EncodedString.js +66 -56
  24. package/lib/cjs/Base64EncodedString.js.map +1 -1
  25. package/lib/cjs/BlobReader.d.ts +31 -31
  26. package/lib/cjs/BlobReader.js +84 -84
  27. package/lib/cjs/BlobReader.js.map +1 -1
  28. package/lib/cjs/BriefcaseTypes.d.ts +189 -189
  29. package/lib/cjs/BriefcaseTypes.js +95 -95
  30. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  31. package/lib/cjs/Camera.d.ts +42 -42
  32. package/lib/cjs/Camera.js +62 -62
  33. package/lib/cjs/Camera.js.map +1 -1
  34. package/lib/cjs/ChangedElements.d.ts +83 -83
  35. package/lib/cjs/ChangedElements.js +21 -21
  36. package/lib/cjs/ChangedElements.js.map +1 -1
  37. package/lib/cjs/ChangedEntities.d.ts +45 -45
  38. package/lib/cjs/ChangedEntities.js +9 -9
  39. package/lib/cjs/ChangedEntities.js.map +1 -1
  40. package/lib/cjs/ChangesetProps.d.ts +98 -98
  41. package/lib/cjs/ChangesetProps.js +22 -22
  42. package/lib/cjs/ChangesetProps.js.map +1 -1
  43. package/lib/cjs/ClipStyle.d.ts +89 -89
  44. package/lib/cjs/ClipStyle.js +123 -123
  45. package/lib/cjs/ClipStyle.js.map +1 -1
  46. package/lib/cjs/CloudStorage.d.ts +62 -62
  47. package/lib/cjs/CloudStorage.js +113 -113
  48. package/lib/cjs/CloudStorage.js.map +1 -1
  49. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  50. package/lib/cjs/CloudStorageTileCache.js +66 -66
  51. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  52. package/lib/cjs/Code.d.ts +256 -256
  53. package/lib/cjs/Code.js +281 -281
  54. package/lib/cjs/Code.js.map +1 -1
  55. package/lib/cjs/ColorByName.d.ts +161 -161
  56. package/lib/cjs/ColorByName.js +169 -169
  57. package/lib/cjs/ColorByName.js.map +1 -1
  58. package/lib/cjs/ColorDef.d.ts +208 -208
  59. package/lib/cjs/ColorDef.js +571 -571
  60. package/lib/cjs/ColorDef.js.map +1 -1
  61. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  62. package/lib/cjs/CommonLoggerCategory.js +26 -26
  63. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  64. package/lib/cjs/ConcurrentQuery.d.ts +241 -241
  65. package/lib/cjs/ConcurrentQuery.js +380 -380
  66. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  67. package/lib/cjs/ContextRealityModel.d.ts +276 -276
  68. package/lib/cjs/ContextRealityModel.js +358 -358
  69. package/lib/cjs/ContextRealityModel.js.map +1 -1
  70. package/lib/cjs/DisplayStyleSettings.d.ts +584 -584
  71. package/lib/cjs/DisplayStyleSettings.js +981 -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/ElementProps.d.ts +479 -476
  83. package/lib/cjs/ElementProps.d.ts.map +1 -1
  84. package/lib/cjs/ElementProps.js +99 -99
  85. package/lib/cjs/ElementProps.js.map +1 -1
  86. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  87. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  88. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  89. package/lib/cjs/EntityProps.d.ts +176 -176
  90. package/lib/cjs/EntityProps.js +112 -112
  91. package/lib/cjs/EntityProps.js.map +1 -1
  92. package/lib/cjs/EntityReference.d.ts +52 -0
  93. package/lib/cjs/EntityReference.d.ts.map +1 -0
  94. package/lib/cjs/EntityReference.js +57 -0
  95. package/lib/cjs/EntityReference.js.map +1 -0
  96. package/lib/cjs/Environment.d.ts +61 -61
  97. package/lib/cjs/Environment.js +73 -73
  98. package/lib/cjs/Environment.js.map +1 -1
  99. package/lib/cjs/FeatureGates.d.ts +31 -31
  100. package/lib/cjs/FeatureGates.js +55 -55
  101. package/lib/cjs/FeatureGates.js.map +1 -1
  102. package/lib/cjs/FeatureIndex.d.ts +39 -39
  103. package/lib/cjs/FeatureIndex.js +63 -63
  104. package/lib/cjs/FeatureIndex.js.map +1 -1
  105. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  106. package/lib/cjs/FeatureSymbology.js +614 -614
  107. package/lib/cjs/FeatureSymbology.js.map +1 -1
  108. package/lib/cjs/FeatureTable.d.ts +141 -141
  109. package/lib/cjs/FeatureTable.js +278 -278
  110. package/lib/cjs/FeatureTable.js.map +1 -1
  111. package/lib/cjs/Fonts.d.ts +51 -51
  112. package/lib/cjs/Fonts.js +53 -53
  113. package/lib/cjs/Fonts.js.map +1 -1
  114. package/lib/cjs/Frustum.d.ts +114 -114
  115. package/lib/cjs/Frustum.js +292 -292
  116. package/lib/cjs/Frustum.js.map +1 -1
  117. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  118. package/lib/cjs/GeoCoordinateServices.js +80 -80
  119. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  120. package/lib/cjs/GeometryContainment.d.ts +28 -28
  121. package/lib/cjs/GeometryContainment.js +9 -9
  122. package/lib/cjs/GeometryContainment.js.map +1 -1
  123. package/lib/cjs/GeometryParams.d.ts +130 -130
  124. package/lib/cjs/GeometryParams.js +174 -174
  125. package/lib/cjs/GeometryParams.js.map +1 -1
  126. package/lib/cjs/GeometrySummary.d.ts +45 -45
  127. package/lib/cjs/GeometrySummary.js +23 -23
  128. package/lib/cjs/GeometrySummary.js.map +1 -1
  129. package/lib/cjs/Gradient.d.ts +139 -139
  130. package/lib/cjs/Gradient.js +455 -455
  131. package/lib/cjs/Gradient.js.map +1 -1
  132. package/lib/cjs/GraphicParams.d.ts +58 -58
  133. package/lib/cjs/GraphicParams.js +85 -85
  134. package/lib/cjs/GraphicParams.js.map +1 -1
  135. package/lib/cjs/GroundPlane.d.ts +52 -52
  136. package/lib/cjs/GroundPlane.js +64 -64
  137. package/lib/cjs/GroundPlane.js.map +1 -1
  138. package/lib/cjs/HSLColor.d.ts +20 -20
  139. package/lib/cjs/HSLColor.js +32 -32
  140. package/lib/cjs/HSLColor.js.map +1 -1
  141. package/lib/cjs/HSVColor.d.ts +30 -30
  142. package/lib/cjs/HSVColor.js +59 -59
  143. package/lib/cjs/HSVColor.js.map +1 -1
  144. package/lib/cjs/HiddenLine.d.ts +97 -97
  145. package/lib/cjs/HiddenLine.js +162 -162
  146. package/lib/cjs/HiddenLine.js.map +1 -1
  147. package/lib/cjs/Hilite.d.ts +50 -50
  148. package/lib/cjs/Hilite.js +64 -64
  149. package/lib/cjs/Hilite.js.map +1 -1
  150. package/lib/cjs/IModel.d.ts +359 -359
  151. package/lib/cjs/IModel.js +347 -347
  152. package/lib/cjs/IModel.js.map +1 -1
  153. package/lib/cjs/IModelError.d.ts +36 -36
  154. package/lib/cjs/IModelError.js +72 -72
  155. package/lib/cjs/IModelError.js.map +1 -1
  156. package/lib/cjs/IModelVersion.d.ts +68 -68
  157. package/lib/cjs/IModelVersion.js +79 -79
  158. package/lib/cjs/IModelVersion.js.map +1 -1
  159. package/lib/cjs/Image.d.ts +86 -86
  160. package/lib/cjs/Image.js +128 -128
  161. package/lib/cjs/Image.js.map +1 -1
  162. package/lib/cjs/IpcAppProps.d.ts +141 -124
  163. package/lib/cjs/IpcAppProps.d.ts.map +1 -1
  164. package/lib/cjs/IpcAppProps.js +23 -18
  165. package/lib/cjs/IpcAppProps.js.map +1 -1
  166. package/lib/cjs/LightSettings.d.ts +224 -224
  167. package/lib/cjs/LightSettings.js +309 -309
  168. package/lib/cjs/LightSettings.js.map +1 -1
  169. package/lib/cjs/LinePixels.d.ts +34 -34
  170. package/lib/cjs/LinePixels.js +42 -42
  171. package/lib/cjs/LinePixels.js.map +1 -1
  172. package/lib/cjs/Localization.d.ts +111 -111
  173. package/lib/cjs/Localization.js +26 -26
  174. package/lib/cjs/Localization.js.map +1 -1
  175. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  176. package/lib/cjs/MapImagerySettings.js +80 -80
  177. package/lib/cjs/MapImagerySettings.js.map +1 -1
  178. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  179. package/lib/cjs/MapLayerSettings.js +411 -411
  180. package/lib/cjs/MapLayerSettings.js.map +1 -1
  181. package/lib/cjs/MassProperties.d.ts +64 -64
  182. package/lib/cjs/MassProperties.js +23 -23
  183. package/lib/cjs/MassProperties.js.map +1 -1
  184. package/lib/cjs/MaterialProps.d.ts +118 -118
  185. package/lib/cjs/MaterialProps.js +23 -23
  186. package/lib/cjs/MaterialProps.js.map +1 -1
  187. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  188. package/lib/cjs/ModelClipGroup.js +98 -98
  189. package/lib/cjs/ModelClipGroup.js.map +1 -1
  190. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  191. package/lib/cjs/ModelGeometryChanges.js +83 -83
  192. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  193. package/lib/cjs/ModelProps.d.ts +67 -66
  194. package/lib/cjs/ModelProps.d.ts.map +1 -1
  195. package/lib/cjs/ModelProps.js +9 -9
  196. package/lib/cjs/ModelProps.js.map +1 -1
  197. package/lib/cjs/NativeAppProps.d.ts +122 -122
  198. package/lib/cjs/NativeAppProps.js +30 -30
  199. package/lib/cjs/NativeAppProps.js.map +1 -1
  200. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  201. package/lib/cjs/OctEncodedNormal.js +98 -98
  202. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  203. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  204. package/lib/cjs/PlanProjectionSettings.js +63 -63
  205. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  206. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  207. package/lib/cjs/PlanarClipMask.js +136 -136
  208. package/lib/cjs/PlanarClipMask.js.map +1 -1
  209. package/lib/cjs/QPoint.d.ts +479 -479
  210. package/lib/cjs/QPoint.js +826 -826
  211. package/lib/cjs/QPoint.js.map +1 -1
  212. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  213. package/lib/cjs/RealityDataAccessProps.js +19 -19
  214. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  215. package/lib/cjs/RealityModelDisplaySettings.d.ts +118 -118
  216. package/lib/cjs/RealityModelDisplaySettings.js +114 -114
  217. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  218. package/lib/cjs/Render.d.ts +89 -89
  219. package/lib/cjs/Render.js +177 -177
  220. package/lib/cjs/Render.js.map +1 -1
  221. package/lib/cjs/RenderMaterial.d.ts +58 -58
  222. package/lib/cjs/RenderMaterial.js +76 -76
  223. package/lib/cjs/RenderMaterial.js.map +1 -1
  224. package/lib/cjs/RenderSchedule.d.ts +543 -540
  225. package/lib/cjs/RenderSchedule.d.ts.map +1 -1
  226. package/lib/cjs/RenderSchedule.js +1002 -1000
  227. package/lib/cjs/RenderSchedule.js.map +1 -1
  228. package/lib/cjs/RenderTexture.d.ts +70 -70
  229. package/lib/cjs/RenderTexture.js +59 -59
  230. package/lib/cjs/RenderTexture.js.map +1 -1
  231. package/lib/cjs/RgbColor.d.ts +47 -47
  232. package/lib/cjs/RgbColor.js +77 -77
  233. package/lib/cjs/RgbColor.js.map +1 -1
  234. package/lib/cjs/RpcInterface.d.ts +33 -33
  235. package/lib/cjs/RpcInterface.js +137 -137
  236. package/lib/cjs/RpcInterface.js.map +1 -1
  237. package/lib/cjs/RpcManager.d.ts +40 -40
  238. package/lib/cjs/RpcManager.js +55 -55
  239. package/lib/cjs/RpcManager.js.map +1 -1
  240. package/lib/cjs/SessionProps.d.ts +16 -16
  241. package/lib/cjs/SessionProps.js +9 -9
  242. package/lib/cjs/SessionProps.js.map +1 -1
  243. package/lib/cjs/SkyBox.d.ts +215 -215
  244. package/lib/cjs/SkyBox.js +210 -210
  245. package/lib/cjs/SkyBox.js.map +1 -1
  246. package/lib/cjs/Snapping.d.ts +49 -49
  247. package/lib/cjs/Snapping.js +9 -9
  248. package/lib/cjs/Snapping.js.map +1 -1
  249. package/lib/cjs/SolarCalculate.d.ts +27 -27
  250. package/lib/cjs/SolarCalculate.js +211 -211
  251. package/lib/cjs/SolarCalculate.js.map +1 -1
  252. package/lib/cjs/SolarShadows.d.ts +35 -35
  253. package/lib/cjs/SolarShadows.js +62 -62
  254. package/lib/cjs/SolarShadows.js.map +1 -1
  255. package/lib/cjs/SpatialClassification.d.ts +208 -208
  256. package/lib/cjs/SpatialClassification.js +340 -340
  257. package/lib/cjs/SpatialClassification.js.map +1 -1
  258. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  259. package/lib/cjs/SubCategoryAppearance.js +96 -96
  260. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  261. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  262. package/lib/cjs/SubCategoryOverride.js +104 -104
  263. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  264. package/lib/cjs/TerrainSettings.d.ts +82 -82
  265. package/lib/cjs/TerrainSettings.js +102 -102
  266. package/lib/cjs/TerrainSettings.js.map +1 -1
  267. package/lib/cjs/TextureMapping.d.ts +101 -101
  268. package/lib/cjs/TextureMapping.js +174 -174
  269. package/lib/cjs/TextureMapping.js.map +1 -1
  270. package/lib/cjs/TextureProps.d.ts +65 -65
  271. package/lib/cjs/TextureProps.js +28 -28
  272. package/lib/cjs/TextureProps.js.map +1 -1
  273. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  274. package/lib/cjs/ThematicDisplay.js +344 -344
  275. package/lib/cjs/ThematicDisplay.js.map +1 -1
  276. package/lib/cjs/Thumbnail.d.ts +26 -26
  277. package/lib/cjs/Thumbnail.js +9 -9
  278. package/lib/cjs/Thumbnail.js.map +1 -1
  279. package/lib/cjs/TileProps.d.ts +82 -82
  280. package/lib/cjs/TileProps.js +29 -29
  281. package/lib/cjs/TileProps.js.map +1 -1
  282. package/lib/cjs/Tween.d.ts +191 -191
  283. package/lib/cjs/Tween.js +570 -570
  284. package/lib/cjs/Tween.js.map +1 -1
  285. package/lib/cjs/TxnAction.d.ts +21 -21
  286. package/lib/cjs/TxnAction.js +29 -29
  287. package/lib/cjs/TxnAction.js.map +1 -1
  288. package/lib/cjs/ViewDetails.d.ts +125 -125
  289. package/lib/cjs/ViewDetails.js +158 -158
  290. package/lib/cjs/ViewDetails.js.map +1 -1
  291. package/lib/cjs/ViewFlags.d.ts +291 -291
  292. package/lib/cjs/ViewFlags.js +368 -368
  293. package/lib/cjs/ViewFlags.js.map +1 -1
  294. package/lib/cjs/ViewProps.d.ts +205 -205
  295. package/lib/cjs/ViewProps.js +9 -9
  296. package/lib/cjs/ViewProps.js.map +1 -1
  297. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  298. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  299. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  300. package/lib/cjs/core-common.d.ts +244 -241
  301. package/lib/cjs/core-common.d.ts.map +1 -1
  302. package/lib/cjs/core-common.js +260 -257
  303. package/lib/cjs/core-common.js.map +1 -1
  304. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  305. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  306. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  307. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  308. package/lib/cjs/domains/GenericElementProps.js +9 -9
  309. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  310. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  311. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  312. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  313. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  314. package/lib/cjs/geometry/AreaPattern.js +204 -204
  315. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  316. package/lib/cjs/geometry/BoundingSphere.d.ts +14 -14
  317. package/lib/cjs/geometry/BoundingSphere.js +30 -30
  318. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  319. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  320. package/lib/cjs/geometry/Cartographic.js +345 -345
  321. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  322. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  323. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  324. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  325. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  326. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  327. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  328. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  329. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  330. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  331. package/lib/cjs/geometry/FrustumPlanes.d.ts +32 -32
  332. package/lib/cjs/geometry/FrustumPlanes.js +132 -132
  333. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  334. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  335. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  336. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  337. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  338. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  339. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  340. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  341. package/lib/cjs/geometry/GeometryStream.js +469 -469
  342. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  343. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  344. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  345. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  346. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  347. package/lib/cjs/geometry/LineStyle.js +129 -129
  348. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  349. package/lib/cjs/geometry/Placement.d.ts +95 -95
  350. package/lib/cjs/geometry/Placement.js +131 -131
  351. package/lib/cjs/geometry/Placement.js.map +1 -1
  352. package/lib/cjs/geometry/Projection.d.ts +251 -251
  353. package/lib/cjs/geometry/Projection.js +198 -198
  354. package/lib/cjs/geometry/Projection.js.map +1 -1
  355. package/lib/cjs/geometry/TextString.d.ts +55 -55
  356. package/lib/cjs/geometry/TextString.js +65 -65
  357. package/lib/cjs/geometry/TextString.js.map +1 -1
  358. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  359. package/lib/cjs/ipc/IpcSession.js +27 -27
  360. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  361. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  362. package/lib/cjs/ipc/IpcSocket.js +16 -16
  363. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  364. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  365. package/lib/cjs/ipc/IpcWebSocket.js +151 -151
  366. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  367. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  368. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts.map +1 -1
  369. package/lib/cjs/ipc/IpcWebSocketTransport.js +160 -158
  370. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  371. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  372. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  373. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  374. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +97 -75
  375. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  376. package/lib/cjs/rpc/IModelReadRpcInterface.js +119 -115
  377. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  378. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  379. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  380. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  381. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  382. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  383. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  384. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  385. package/lib/cjs/rpc/TestRpcManager.js +39 -39
  386. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  387. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  388. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  389. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  390. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  391. package/lib/cjs/rpc/core/RpcConfiguration.d.ts.map +1 -1
  392. package/lib/cjs/rpc/core/RpcConfiguration.js +191 -192
  393. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  394. package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -85
  395. package/lib/cjs/rpc/core/RpcConstants.js +103 -103
  396. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  397. package/lib/cjs/rpc/core/RpcControl.d.ts +54 -52
  398. package/lib/cjs/rpc/core/RpcControl.d.ts.map +1 -1
  399. package/lib/cjs/rpc/core/RpcControl.js +144 -149
  400. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  401. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  402. package/lib/cjs/rpc/core/RpcInvocation.d.ts.map +1 -1
  403. package/lib/cjs/rpc/core/RpcInvocation.js +258 -257
  404. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  405. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +35 -36
  406. package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
  407. package/lib/cjs/rpc/core/RpcMarshaling.js +156 -153
  408. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  409. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  410. package/lib/cjs/rpc/core/RpcOperation.js +133 -133
  411. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  412. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  413. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
  414. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  415. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  416. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  417. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  418. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  419. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  420. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  421. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  422. package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
  423. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  424. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  425. package/lib/cjs/rpc/core/RpcRequest.js +477 -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.js +2 -2
  429. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  430. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  431. package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
  432. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  433. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  434. package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
  435. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  436. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  437. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  438. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  439. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  440. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -142
  441. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  442. package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
  443. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  444. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  445. package/lib/cjs/rpc/web/RpcMultipart.d.ts +35 -31
  446. package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
  447. package/lib/cjs/rpc/web/RpcMultipart.js +50 -45
  448. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  449. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +28 -17
  450. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  451. package/lib/cjs/rpc/web/WebAppRpcLogging.js +139 -140
  452. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  453. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +87 -86
  454. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  455. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  456. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  457. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +67 -71
  458. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  459. package/lib/cjs/rpc/web/WebAppRpcRequest.js +239 -374
  460. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  461. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +32 -33
  462. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  463. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +372 -359
  464. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  465. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  466. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  467. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  468. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  469. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  470. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  471. package/lib/cjs/tile/ElementGraphics.d.ts +145 -134
  472. package/lib/cjs/tile/ElementGraphics.d.ts.map +1 -1
  473. package/lib/cjs/tile/ElementGraphics.js +9 -9
  474. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  475. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  476. package/lib/cjs/tile/GltfTileIO.js +109 -109
  477. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  478. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  479. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  480. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  481. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  482. package/lib/cjs/tile/IModelTileIO.js +95 -95
  483. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  484. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  485. package/lib/cjs/tile/PntsTileIO.js +26 -26
  486. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  487. package/lib/cjs/tile/TileIO.d.ts +66 -66
  488. package/lib/cjs/tile/TileIO.js +118 -118
  489. package/lib/cjs/tile/TileIO.js.map +1 -1
  490. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  491. package/lib/cjs/tile/TileMetadata.js +676 -676
  492. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  493. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  494. package/lib/esm/AmbientOcclusion.js +52 -52
  495. package/lib/esm/AmbientOcclusion.js.map +1 -1
  496. package/lib/esm/AnalysisStyle.d.ts +134 -134
  497. package/lib/esm/AnalysisStyle.js +159 -159
  498. package/lib/esm/AnalysisStyle.js.map +1 -1
  499. package/lib/esm/AuthorizationClient.d.ts +11 -11
  500. package/lib/esm/AuthorizationClient.js +8 -8
  501. package/lib/esm/AuthorizationClient.js.map +1 -1
  502. package/lib/esm/BackendTypes.d.ts +13 -0
  503. package/lib/esm/BackendTypes.d.ts.map +1 -0
  504. package/lib/esm/BackendTypes.js +9 -0
  505. package/lib/esm/BackendTypes.js.map +1 -0
  506. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  507. package/lib/esm/BackgroundMapProvider.js +64 -64
  508. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  509. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  510. package/lib/esm/BackgroundMapSettings.js +152 -152
  511. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  512. package/lib/esm/Base64EncodedString.d.ts +32 -30
  513. package/lib/esm/Base64EncodedString.d.ts.map +1 -1
  514. package/lib/esm/Base64EncodedString.js +63 -53
  515. package/lib/esm/Base64EncodedString.js.map +1 -1
  516. package/lib/esm/BlobReader.d.ts +31 -31
  517. package/lib/esm/BlobReader.js +79 -79
  518. package/lib/esm/BlobReader.js.map +1 -1
  519. package/lib/esm/BriefcaseTypes.d.ts +189 -189
  520. package/lib/esm/BriefcaseTypes.js +92 -92
  521. package/lib/esm/BriefcaseTypes.js.map +1 -1
  522. package/lib/esm/Camera.d.ts +42 -42
  523. package/lib/esm/Camera.js +58 -58
  524. package/lib/esm/Camera.js.map +1 -1
  525. package/lib/esm/ChangedElements.d.ts +83 -83
  526. package/lib/esm/ChangedElements.js +18 -18
  527. package/lib/esm/ChangedElements.js.map +1 -1
  528. package/lib/esm/ChangedEntities.d.ts +45 -45
  529. package/lib/esm/ChangedEntities.js +8 -8
  530. package/lib/esm/ChangedEntities.js.map +1 -1
  531. package/lib/esm/ChangesetProps.d.ts +98 -98
  532. package/lib/esm/ChangesetProps.js +19 -19
  533. package/lib/esm/ChangesetProps.js.map +1 -1
  534. package/lib/esm/ClipStyle.d.ts +89 -89
  535. package/lib/esm/ClipStyle.js +118 -118
  536. package/lib/esm/ClipStyle.js.map +1 -1
  537. package/lib/esm/CloudStorage.d.ts +62 -62
  538. package/lib/esm/CloudStorage.js +109 -109
  539. package/lib/esm/CloudStorage.js.map +1 -1
  540. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  541. package/lib/esm/CloudStorageTileCache.js +62 -62
  542. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  543. package/lib/esm/Code.d.ts +256 -256
  544. package/lib/esm/Code.js +276 -276
  545. package/lib/esm/Code.js.map +1 -1
  546. package/lib/esm/ColorByName.d.ts +161 -161
  547. package/lib/esm/ColorByName.js +166 -166
  548. package/lib/esm/ColorByName.js.map +1 -1
  549. package/lib/esm/ColorDef.d.ts +208 -208
  550. package/lib/esm/ColorDef.js +567 -567
  551. package/lib/esm/ColorDef.js.map +1 -1
  552. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  553. package/lib/esm/CommonLoggerCategory.js +23 -23
  554. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  555. package/lib/esm/ConcurrentQuery.d.ts +241 -241
  556. package/lib/esm/ConcurrentQuery.js +373 -373
  557. package/lib/esm/ConcurrentQuery.js.map +1 -1
  558. package/lib/esm/ContextRealityModel.d.ts +276 -276
  559. package/lib/esm/ContextRealityModel.js +353 -353
  560. package/lib/esm/ContextRealityModel.js.map +1 -1
  561. package/lib/esm/DisplayStyleSettings.d.ts +584 -584
  562. package/lib/esm/DisplayStyleSettings.js +976 -976
  563. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  564. package/lib/esm/ECSchemaProps.d.ts +39 -39
  565. package/lib/esm/ECSchemaProps.js +8 -8
  566. package/lib/esm/ECSchemaProps.js.map +1 -1
  567. package/lib/esm/ECSqlReader.d.ts +70 -70
  568. package/lib/esm/ECSqlReader.js +275 -275
  569. package/lib/esm/ECSqlReader.js.map +1 -1
  570. package/lib/esm/ECSqlTypes.d.ts +128 -128
  571. package/lib/esm/ECSqlTypes.js +185 -185
  572. package/lib/esm/ECSqlTypes.js.map +1 -1
  573. package/lib/esm/ElementProps.d.ts +479 -476
  574. package/lib/esm/ElementProps.d.ts.map +1 -1
  575. package/lib/esm/ElementProps.js +92 -92
  576. package/lib/esm/ElementProps.js.map +1 -1
  577. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  578. package/lib/esm/EmphasizeElementsProps.js +22 -22
  579. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  580. package/lib/esm/EntityProps.d.ts +176 -176
  581. package/lib/esm/EntityProps.js +107 -107
  582. package/lib/esm/EntityProps.js.map +1 -1
  583. package/lib/esm/EntityReference.d.ts +52 -0
  584. package/lib/esm/EntityReference.d.ts.map +1 -0
  585. package/lib/esm/EntityReference.js +53 -0
  586. package/lib/esm/EntityReference.js.map +1 -0
  587. package/lib/esm/Environment.d.ts +61 -61
  588. package/lib/esm/Environment.js +69 -69
  589. package/lib/esm/Environment.js.map +1 -1
  590. package/lib/esm/FeatureGates.d.ts +31 -31
  591. package/lib/esm/FeatureGates.js +51 -51
  592. package/lib/esm/FeatureGates.js.map +1 -1
  593. package/lib/esm/FeatureIndex.d.ts +39 -39
  594. package/lib/esm/FeatureIndex.js +57 -57
  595. package/lib/esm/FeatureIndex.js.map +1 -1
  596. package/lib/esm/FeatureSymbology.d.ts +444 -444
  597. package/lib/esm/FeatureSymbology.js +609 -609
  598. package/lib/esm/FeatureSymbology.js.map +1 -1
  599. package/lib/esm/FeatureTable.d.ts +141 -141
  600. package/lib/esm/FeatureTable.js +272 -272
  601. package/lib/esm/FeatureTable.js.map +1 -1
  602. package/lib/esm/Fonts.d.ts +51 -51
  603. package/lib/esm/Fonts.js +49 -49
  604. package/lib/esm/Fonts.js.map +1 -1
  605. package/lib/esm/Frustum.d.ts +114 -114
  606. package/lib/esm/Frustum.js +288 -288
  607. package/lib/esm/Frustum.js.map +1 -1
  608. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  609. package/lib/esm/GeoCoordinateServices.js +76 -76
  610. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  611. package/lib/esm/GeometryContainment.d.ts +28 -28
  612. package/lib/esm/GeometryContainment.js +8 -8
  613. package/lib/esm/GeometryContainment.js.map +1 -1
  614. package/lib/esm/GeometryParams.d.ts +130 -130
  615. package/lib/esm/GeometryParams.js +170 -170
  616. package/lib/esm/GeometryParams.js.map +1 -1
  617. package/lib/esm/GeometrySummary.d.ts +45 -45
  618. package/lib/esm/GeometrySummary.js +20 -20
  619. package/lib/esm/GeometrySummary.js.map +1 -1
  620. package/lib/esm/Gradient.d.ts +139 -139
  621. package/lib/esm/Gradient.js +452 -452
  622. package/lib/esm/Gradient.js.map +1 -1
  623. package/lib/esm/GraphicParams.d.ts +58 -58
  624. package/lib/esm/GraphicParams.js +81 -81
  625. package/lib/esm/GraphicParams.js.map +1 -1
  626. package/lib/esm/GroundPlane.d.ts +52 -52
  627. package/lib/esm/GroundPlane.js +60 -60
  628. package/lib/esm/GroundPlane.js.map +1 -1
  629. package/lib/esm/HSLColor.d.ts +20 -20
  630. package/lib/esm/HSLColor.js +28 -28
  631. package/lib/esm/HSLColor.js.map +1 -1
  632. package/lib/esm/HSVColor.d.ts +30 -30
  633. package/lib/esm/HSVColor.js +55 -55
  634. package/lib/esm/HSVColor.js.map +1 -1
  635. package/lib/esm/HiddenLine.d.ts +97 -97
  636. package/lib/esm/HiddenLine.js +159 -159
  637. package/lib/esm/HiddenLine.js.map +1 -1
  638. package/lib/esm/Hilite.d.ts +50 -50
  639. package/lib/esm/Hilite.js +61 -61
  640. package/lib/esm/Hilite.js.map +1 -1
  641. package/lib/esm/IModel.d.ts +359 -359
  642. package/lib/esm/IModel.js +342 -342
  643. package/lib/esm/IModel.js.map +1 -1
  644. package/lib/esm/IModelError.d.ts +36 -36
  645. package/lib/esm/IModelError.js +55 -55
  646. package/lib/esm/IModelError.js.map +1 -1
  647. package/lib/esm/IModelVersion.d.ts +68 -68
  648. package/lib/esm/IModelVersion.js +75 -75
  649. package/lib/esm/IModelVersion.js.map +1 -1
  650. package/lib/esm/Image.d.ts +86 -86
  651. package/lib/esm/Image.js +120 -120
  652. package/lib/esm/Image.js.map +1 -1
  653. package/lib/esm/IpcAppProps.d.ts +141 -124
  654. package/lib/esm/IpcAppProps.d.ts.map +1 -1
  655. package/lib/esm/IpcAppProps.js +19 -15
  656. package/lib/esm/IpcAppProps.js.map +1 -1
  657. package/lib/esm/LightSettings.d.ts +224 -224
  658. package/lib/esm/LightSettings.js +301 -301
  659. package/lib/esm/LightSettings.js.map +1 -1
  660. package/lib/esm/LinePixels.d.ts +34 -34
  661. package/lib/esm/LinePixels.js +39 -39
  662. package/lib/esm/LinePixels.js.map +1 -1
  663. package/lib/esm/Localization.d.ts +111 -111
  664. package/lib/esm/Localization.js +22 -22
  665. package/lib/esm/Localization.js.map +1 -1
  666. package/lib/esm/MapImagerySettings.d.ts +62 -62
  667. package/lib/esm/MapImagerySettings.js +76 -76
  668. package/lib/esm/MapImagerySettings.js.map +1 -1
  669. package/lib/esm/MapLayerSettings.d.ts +272 -272
  670. package/lib/esm/MapLayerSettings.js +403 -403
  671. package/lib/esm/MapLayerSettings.js.map +1 -1
  672. package/lib/esm/MassProperties.d.ts +64 -64
  673. package/lib/esm/MassProperties.js +20 -20
  674. package/lib/esm/MassProperties.js.map +1 -1
  675. package/lib/esm/MaterialProps.d.ts +118 -118
  676. package/lib/esm/MaterialProps.js +20 -20
  677. package/lib/esm/MaterialProps.js.map +1 -1
  678. package/lib/esm/ModelClipGroup.d.ts +67 -67
  679. package/lib/esm/ModelClipGroup.js +93 -93
  680. package/lib/esm/ModelClipGroup.js.map +1 -1
  681. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  682. package/lib/esm/ModelGeometryChanges.js +80 -80
  683. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  684. package/lib/esm/ModelProps.d.ts +67 -66
  685. package/lib/esm/ModelProps.d.ts.map +1 -1
  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 +118 -118
  707. package/lib/esm/RealityModelDisplaySettings.js +109 -109
  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 -540
  716. package/lib/esm/RenderSchedule.d.ts.map +1 -1
  717. package/lib/esm/RenderSchedule.js +999 -997
  718. package/lib/esm/RenderSchedule.js.map +1 -1
  719. package/lib/esm/RenderTexture.d.ts +70 -70
  720. package/lib/esm/RenderTexture.js +55 -55
  721. package/lib/esm/RenderTexture.js.map +1 -1
  722. package/lib/esm/RgbColor.d.ts +47 -47
  723. package/lib/esm/RgbColor.js +73 -73
  724. package/lib/esm/RgbColor.js.map +1 -1
  725. package/lib/esm/RpcInterface.d.ts +33 -33
  726. package/lib/esm/RpcInterface.js +133 -133
  727. package/lib/esm/RpcInterface.js.map +1 -1
  728. package/lib/esm/RpcManager.d.ts +40 -40
  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 +101 -101
  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 +153 -153
  781. package/lib/esm/ViewDetails.js.map +1 -1
  782. package/lib/esm/ViewFlags.d.ts +291 -291
  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 -241
  792. package/lib/esm/core-common.d.ts.map +1 -1
  793. package/lib/esm/core-common.js +248 -245
  794. package/lib/esm/core-common.js.map +1 -1
  795. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  796. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  797. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  798. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  799. package/lib/esm/domains/GenericElementProps.js +8 -8
  800. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  801. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  802. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  803. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  804. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  805. package/lib/esm/geometry/AreaPattern.js +201 -201
  806. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  807. package/lib/esm/geometry/BoundingSphere.d.ts +14 -14
  808. package/lib/esm/geometry/BoundingSphere.js +26 -26
  809. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  810. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  811. package/lib/esm/geometry/Cartographic.js +340 -340
  812. package/lib/esm/geometry/Cartographic.js.map +1 -1
  813. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  814. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  815. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  816. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  817. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  818. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  819. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  820. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  821. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  822. package/lib/esm/geometry/FrustumPlanes.d.ts +32 -32
  823. package/lib/esm/geometry/FrustumPlanes.js +128 -128
  824. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  825. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  826. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  827. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  828. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  829. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  830. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  831. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  832. package/lib/esm/geometry/GeometryStream.js +464 -464
  833. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  834. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  835. package/lib/esm/geometry/ImageGraphic.js +93 -93
  836. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  837. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  838. package/lib/esm/geometry/LineStyle.js +126 -126
  839. package/lib/esm/geometry/LineStyle.js.map +1 -1
  840. package/lib/esm/geometry/Placement.d.ts +95 -95
  841. package/lib/esm/geometry/Placement.js +126 -126
  842. package/lib/esm/geometry/Placement.js.map +1 -1
  843. package/lib/esm/geometry/Projection.d.ts +251 -251
  844. package/lib/esm/geometry/Projection.js +192 -192
  845. package/lib/esm/geometry/Projection.js.map +1 -1
  846. package/lib/esm/geometry/TextString.d.ts +55 -55
  847. package/lib/esm/geometry/TextString.js +61 -61
  848. package/lib/esm/geometry/TextString.js.map +1 -1
  849. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  850. package/lib/esm/ipc/IpcSession.js +23 -23
  851. package/lib/esm/ipc/IpcSession.js.map +1 -1
  852. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  853. package/lib/esm/ipc/IpcSocket.js +12 -12
  854. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  855. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  856. package/lib/esm/ipc/IpcWebSocket.js +145 -145
  857. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  858. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  859. package/lib/esm/ipc/IpcWebSocketTransport.d.ts.map +1 -1
  860. package/lib/esm/ipc/IpcWebSocketTransport.js +156 -154
  861. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  862. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  863. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  864. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  865. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +97 -75
  866. package/lib/esm/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  867. package/lib/esm/rpc/IModelReadRpcInterface.js +114 -110
  868. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  869. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  870. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  871. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  872. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  873. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  874. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  875. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  876. package/lib/esm/rpc/TestRpcManager.js +35 -35
  877. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  878. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  879. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  880. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  881. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  882. package/lib/esm/rpc/core/RpcConfiguration.d.ts.map +1 -1
  883. package/lib/esm/rpc/core/RpcConfiguration.js +184 -185
  884. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  885. package/lib/esm/rpc/core/RpcConstants.d.ts +85 -85
  886. package/lib/esm/rpc/core/RpcConstants.js +100 -100
  887. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  888. package/lib/esm/rpc/core/RpcControl.d.ts +54 -52
  889. package/lib/esm/rpc/core/RpcControl.d.ts.map +1 -1
  890. package/lib/esm/rpc/core/RpcControl.js +137 -142
  891. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  892. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  893. package/lib/esm/rpc/core/RpcInvocation.d.ts.map +1 -1
  894. package/lib/esm/rpc/core/RpcInvocation.js +254 -253
  895. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  896. package/lib/esm/rpc/core/RpcMarshaling.d.ts +35 -36
  897. package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
  898. package/lib/esm/rpc/core/RpcMarshaling.js +152 -149
  899. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  900. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  901. package/lib/esm/rpc/core/RpcOperation.js +128 -128
  902. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  903. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  904. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -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.js +123 -123
  908. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  909. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  910. package/lib/esm/rpc/core/RpcPush.js +119 -119
  911. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  912. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  913. package/lib/esm/rpc/core/RpcRegistry.js +194 -194
  914. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  915. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  916. package/lib/esm/rpc/core/RpcRequest.js +472 -472
  917. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  918. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  919. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  920. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  921. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  922. package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
  923. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  924. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  925. package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
  926. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  927. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  928. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  929. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  930. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  931. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -138
  932. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  933. package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
  934. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  935. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  936. package/lib/esm/rpc/web/RpcMultipart.d.ts +35 -31
  937. package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
  938. package/lib/esm/rpc/web/RpcMultipart.js +46 -41
  939. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  940. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +28 -17
  941. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  942. package/lib/esm/rpc/web/WebAppRpcLogging.js +135 -136
  943. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  944. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +87 -86
  945. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  946. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  947. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  948. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +67 -71
  949. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  950. package/lib/esm/rpc/web/WebAppRpcRequest.js +235 -370
  951. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  952. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +32 -33
  953. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  954. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +368 -355
  955. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  956. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  957. package/lib/esm/tile/B3dmTileIO.js +62 -62
  958. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  959. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  960. package/lib/esm/tile/CompositeTileIO.js +22 -22
  961. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  962. package/lib/esm/tile/ElementGraphics.d.ts +145 -134
  963. package/lib/esm/tile/ElementGraphics.d.ts.map +1 -1
  964. package/lib/esm/tile/ElementGraphics.js +8 -8
  965. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  966. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  967. package/lib/esm/tile/GltfTileIO.js +105 -105
  968. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  969. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  970. package/lib/esm/tile/I3dmTileIO.js +36 -36
  971. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  972. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  973. package/lib/esm/tile/IModelTileIO.js +90 -90
  974. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  975. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  976. package/lib/esm/tile/PntsTileIO.js +22 -22
  977. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  978. package/lib/esm/tile/TileIO.d.ts +66 -66
  979. package/lib/esm/tile/TileIO.js +110 -110
  980. package/lib/esm/tile/TileIO.js.map +1 -1
  981. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  982. package/lib/esm/tile/TileMetadata.js +661 -661
  983. package/lib/esm/tile/TileMetadata.js.map +1 -1
  984. package/package.json +8 -10
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureTable.js","sourceRoot":"","sources":["../../src/FeatureTable.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 Rendering\n */\n\nimport { assert, compareNumbers, compareStrings, Id64, Id64String, IndexedValue, IndexMap } from \"@itwin/core-bentley\";\nimport { GeometryClass } from \"./GeometryParams\";\n\n/** Describes a discrete entity within a batched [RenderGraphic]($frontend) that can be\n * grouped with other such entities in a [[FeatureTable]].\n * Features roughly correlate to elements: a [Tile]($frontend)'s graphics combines geometry from every\n * [GeometricElement]($backend) that intersects the tile's volume, so each element produces at least one feature.\n * However, an element's geometry stream can contain geometry belonging to multiple different combinations of [SubCategory]($backend) and\n * [[GeometryClass]], so an individual element may produce more than one feature.\n * @see [[FeatureOverrides]] for customizing the appearance of individual features.\n * @public\n */\nexport class Feature {\n public readonly elementId: string;\n public readonly subCategoryId: string;\n public readonly geometryClass: GeometryClass;\n\n public constructor(elementId: Id64String = Id64.invalid, subCategoryId: Id64String = Id64.invalid, geometryClass: GeometryClass = GeometryClass.Primary) {\n this.elementId = elementId;\n this.subCategoryId = subCategoryId;\n this.geometryClass = geometryClass;\n }\n\n public get isDefined(): boolean { return !Id64.isInvalid(this.elementId) || !Id64.isInvalid(this.subCategoryId) || this.geometryClass !== GeometryClass.Primary; }\n public get isUndefined(): boolean { return !this.isDefined; }\n\n /** Returns true if this feature is equivalent to the supplied feature. */\n public equals(other: Feature): boolean { return 0 === this.compare(other); }\n\n /** Performs ordinal comparison of this feature with another.\n * @param rhs The feature to compare with.\n * @returns zero if the features are equivalent, a negative value if this feature compares as \"less than\" `rhs`, or a positive value if this feature compares \"greater than\" `rhs`.\n */\n public compare(rhs: Feature): number {\n if (this === rhs)\n return 0;\n\n let cmp = compareNumbers(this.geometryClass, rhs.geometryClass);\n if (0 === cmp) {\n cmp = compareStrings(this.elementId, rhs.elementId);\n if (0 === cmp) {\n cmp = compareStrings(this.subCategoryId, rhs.subCategoryId);\n }\n }\n\n return cmp;\n }\n}\n\n/** @internal */\nexport interface PackedFeature {\n elementId: Id64.Uint32Pair;\n subCategoryId: Id64.Uint32Pair;\n geometryClass: GeometryClass;\n animationNodeId: number;\n}\n\n/** Describes the type of a 'batch' of graphics representing multiple [[Feature]]s.\n * The most commonly-encountered batches are Tiles, which can be of either Primary or\n * Classifier type.\n * @public\n * @extensions\n */\nexport enum BatchType {\n /** This batch contains graphics derived from a model's visible geometry. */\n Primary,\n /**\n * This batch contains color volumes which are used to classify a model's visible geometry.\n * The graphics themselves are not rendered to the screen; instead they are rendered to the stencil buffer\n * to resymbolize the primary geometry.\n */\n VolumeClassifier,\n /**\n * This batch contains planar graphics which are used to classify a model's visible geometry.\n * The graphics themselves are not rendered to the screen; instead they are rendered to a texture buffer\n * to resymbolize the primary geometry.\n */\n PlanarClassifier,\n}\n\n/** Defines a look-up table for [[Feature]]s within a batched [RenderGraphic]($frontend). Consecutive 32-bit\n * indices are assigned to each unique Feature. Primitives within the RenderGraphic can\n * use per-vertex indices to specify the distribution of Features within the primitive. The appearance of individual\n * features can be customized using [[FeatureOverrides]]. Typically a [Tile]($frontend) will contain a feature table\n * identifying the elements whose geometry appears within that tile.\n * @see [[FeatureOverrides]] for customizing the appearance of individual features.\n * @public\n */\nexport class FeatureTable extends IndexMap<Feature> {\n public readonly modelId: Id64String;\n public readonly type: BatchType;\n\n /** Construct an empty FeatureTable. */\n public constructor(maxFeatures: number, modelId: Id64String = Id64.invalid, type: BatchType = BatchType.Primary) {\n super((lhs, rhs) => lhs.compare(rhs), maxFeatures);\n this.modelId = modelId;\n this.type = type;\n }\n\n /** Returns the maximum number of [[Feature]]s this FeatureTable can contain. */\n public get maxFeatures(): number { return this._maximumSize; }\n /** @internal */\n public get anyDefined(): boolean { return this.length > 1 || (1 === this.length && this._array[0].value.isDefined); }\n /** Returns true if this FeatureTable contains exactly one [[Feature]]. */\n public get isUniform(): boolean { return 1 === this.length; }\n /** If this FeatureTable contains exactly one [[Feature]], returns that Feature; otherwise returns undefined. */\n public get uniform(): Feature | undefined { return 1 === this.length ? this._array[0].value : undefined; }\n /** Returns true if this FeatureTable is associated with [[BatchType.VolumeClassifier]] geometry. */\n public get isVolumeClassifier(): boolean { return BatchType.VolumeClassifier === this.type; }\n /** Returns true if this FeatureTable is associated with [[BatchType.PlanarClassifier]] geometry. */\n public get isPlanarClassifier(): boolean { return BatchType.PlanarClassifier === this.type; }\n\n /** Returns the Feature corresponding to the specified index, or undefined if the index is not present. */\n public findFeature(index: number): Feature | undefined {\n for (const entry of this._array)\n if (entry.index === index)\n return entry.value;\n\n return undefined;\n }\n\n /** @internal */\n public insertWithIndex(feature: Feature, index: number): void {\n const bound = this.lowerBound(feature);\n assert(!bound.equal);\n assert(!this.isFull);\n const entry = new IndexedValue<Feature>(feature, index);\n this._array.splice(bound.index, 0, entry);\n }\n\n /** @internal */\n public getArray(): Array<IndexedValue<Feature>> { return this._array; }\n}\n\n/** @alpha */\nexport type ComputeNodeId = (elementId: Id64.Uint32Pair, featureIndex: number) => number;\n\n/**\n * An immutable, packed representation of a [[FeatureTable]]. The features are packed into a single array of 32-bit integer values,\n * wherein each feature occupies 3 32-bit integers.\n * @internal\n */\nexport class PackedFeatureTable {\n private readonly _data: Uint32Array;\n public readonly modelId: Id64String;\n public readonly maxFeatures: number;\n public readonly numFeatures: number;\n public readonly anyDefined: boolean;\n public readonly type: BatchType;\n private _animationNodeIds?: Uint8Array | Uint16Array | Uint32Array;\n\n public get byteLength(): number { return this._data.byteLength; }\n public get animationNodeIds(): Readonly<Uint8Array | Uint16Array | Uint32Array> | undefined { return this._animationNodeIds; }\n\n /** Construct a PackedFeatureTable from the packed binary data.\n * This is used internally when deserializing Tiles in iMdl format.\n * @internal\n */\n public constructor(data: Uint32Array, modelId: Id64String, numFeatures: number, maxFeatures: number, type: BatchType, animationNodeIds?: Uint8Array | Uint16Array | Uint32Array) {\n this._data = data;\n this.modelId = modelId;\n this.maxFeatures = maxFeatures;\n this.numFeatures = numFeatures;\n this.type = type;\n this._animationNodeIds = animationNodeIds;\n\n switch (this.numFeatures) {\n case 0:\n this.anyDefined = false;\n break;\n case 1:\n this.anyDefined = this.getFeature(0).isDefined;\n break;\n default:\n this.anyDefined = true;\n break;\n }\n\n assert(this._data.length >= this._subCategoriesOffset);\n assert(this.maxFeatures >= this.numFeatures);\n assert(undefined === this._animationNodeIds || this._animationNodeIds.length === this.numFeatures);\n }\n\n /** Create a packed feature table from a [[FeatureTable]]. */\n public static pack(featureTable: FeatureTable): PackedFeatureTable {\n // We must determine how many subcategories we have ahead of time to compute the size of the Uint32Array, as\n // the array cannot be resized after it is created.\n // We are not too worried about this as FeatureTables created on the front-end will contain few if any features; those obtained from the\n // back-end arrive within tiles already in the packed format.\n const subcategories = new Map<string, number>();\n for (const iv of featureTable.getArray()) {\n const found = subcategories.get(iv.value.subCategoryId.toString());\n if (undefined === found)\n subcategories.set(iv.value.subCategoryId, subcategories.size);\n }\n\n // We need 3 32-bit integers per feature, plus 2 32-bit integers per subcategory.\n const subCategoriesOffset = 3 * featureTable.length;\n const nUint32s = subCategoriesOffset + 2 * subcategories.size;\n const uint32s = new Uint32Array(nUint32s);\n\n for (const iv of featureTable.getArray()) {\n const feature = iv.value;\n const index = iv.index * 3;\n\n let subCategoryIndex = subcategories.get(feature.subCategoryId)!;\n assert(undefined !== subCategoryIndex); // we inserted it above...\n subCategoryIndex |= (feature.geometryClass << 24);\n\n uint32s[index + 0] = Id64.getLowerUint32(feature.elementId);\n uint32s[index + 1] = Id64.getUpperUint32(feature.elementId);\n uint32s[index + 2] = subCategoryIndex;\n }\n\n subcategories.forEach((index: number, id: string, _map) => {\n const index32 = subCategoriesOffset + 2 * index;\n uint32s[index32 + 0] = Id64.getLowerUint32(id);\n uint32s[index32 + 1] = Id64.getUpperUint32(id);\n });\n\n return new PackedFeatureTable(uint32s, featureTable.modelId, featureTable.length, featureTable.maxFeatures, featureTable.type);\n }\n\n /** Retrieve the Feature associated with the specified index. */\n public getFeature(featureIndex: number): Feature {\n const packed = this.getPackedFeature(featureIndex);\n const elemId = Id64.fromUint32Pair(packed.elementId.lower, packed.elementId.upper);\n const subcatId = Id64.fromUint32Pair(packed.subCategoryId.lower, packed.subCategoryId.upper);\n return new Feature(elemId, subcatId, packed.geometryClass);\n }\n\n /** Returns the Feature associated with the specified index, or undefined if the index is out of range. */\n public findFeature(featureIndex: number): Feature | undefined {\n return featureIndex < this.numFeatures ? this.getFeature(featureIndex) : undefined;\n }\n\n /** @internal */\n public getElementIdPair(featureIndex: number, out?: Id64.Uint32Pair): Id64.Uint32Pair {\n out = out ?? { lower: 0, upper: 0 };\n assert(featureIndex < this.numFeatures);\n const offset = 3 * featureIndex;\n out.lower = this._data[offset];\n out.upper = this._data[offset + 1];\n return out;\n }\n\n /** @internal */\n public getSubCategoryIdPair(featureIndex: number): Id64.Uint32Pair {\n const index = 3 * featureIndex;\n let subCatIndex = this._data[index + 2];\n subCatIndex = (subCatIndex & 0x00ffffff) >>> 0;\n subCatIndex = subCatIndex * 2 + this._subCategoriesOffset;\n return { lower: this._data[subCatIndex], upper: this._data[subCatIndex + 1] };\n }\n\n /** @internal */\n public getAnimationNodeId(featureIndex: number): number {\n return undefined !== this._animationNodeIds && featureIndex < this.numFeatures ? this._animationNodeIds[featureIndex] : 0;\n }\n\n /** @internal */\n public getPackedFeature(featureIndex: number): PackedFeature {\n assert(featureIndex < this.numFeatures);\n\n const index32 = 3 * featureIndex;\n const elementId = { lower: this._data[index32], upper: this._data[index32 + 1] };\n\n const subCatIndexAndClass = this._data[index32 + 2];\n const geometryClass = (subCatIndexAndClass >>> 24) & 0xff;\n\n let subCatIndex = (subCatIndexAndClass & 0x00ffffff) >>> 0;\n subCatIndex = subCatIndex * 2 + this._subCategoriesOffset;\n const subCategoryId = { lower: this._data[subCatIndex], upper: this._data[subCatIndex + 1] };\n\n const animationNodeId = this.getAnimationNodeId(featureIndex);\n return { elementId, subCategoryId, geometryClass, animationNodeId };\n }\n\n /** Returns the element ID of the Feature associated with the specified index, or undefined if the index is out of range. */\n public findElementId(featureIndex: number): Id64String | undefined {\n if (featureIndex >= this.numFeatures)\n return undefined;\n else\n return this.readId(3 * featureIndex);\n }\n\n /** Return true if this table contains exactly 1 feature. */\n public get isUniform(): boolean { return 1 === this.numFeatures; }\n\n /** If this table contains exactly 1 feature, return it. */\n public get uniform(): Feature | undefined { return this.isUniform ? this.getFeature(0) : undefined; }\n\n public get isVolumeClassifier(): boolean { return BatchType.VolumeClassifier === this.type; }\n public get isPlanarClassifier(): boolean { return BatchType.VolumeClassifier === this.type; }\n public get isClassifier(): boolean { return this.isVolumeClassifier || this.isPlanarClassifier; }\n\n /** Unpack the features into a [[FeatureTable]]. */\n public unpack(): FeatureTable {\n const table = new FeatureTable(this.maxFeatures, this.modelId);\n for (let i = 0; i < this.numFeatures; i++) {\n const feature = this.getFeature(i);\n table.insertWithIndex(feature, i);\n }\n\n return table;\n }\n\n public populateAnimationNodeIds(computeNodeId: ComputeNodeId, maxNodeId: number): void {\n assert(undefined === this._animationNodeIds);\n assert(maxNodeId > 0);\n\n const pair = { lower: 0, upper: 0 };\n let haveNodes = false;\n const size = this.numFeatures;\n const nodeIds = maxNodeId < 0x100 ? new Uint8Array(size) : (maxNodeId < 0x10000 ? new Uint16Array(size) : new Uint32Array(size));\n for (let i = 0; i < this.numFeatures; i++) {\n this.getElementIdPair(i, pair);\n const nodeId = computeNodeId(pair, i);\n assert(nodeId <= maxNodeId);\n if (0 !== nodeId) {\n nodeIds[i] = nodeId;\n haveNodes = true;\n }\n }\n\n if (haveNodes)\n this._animationNodeIds = nodeIds;\n }\n\n private get _subCategoriesOffset(): number { return this.numFeatures * 3; }\n\n private readId(offset32: number): Id64String {\n return Id64.fromUint32Pair(this._data[offset32], this._data[offset32 + 1]);\n }\n}\n"]}
1
+ {"version":3,"file":"FeatureTable.js","sourceRoot":"","sources":["../../src/FeatureTable.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 Rendering\r\n */\r\n\r\nimport { assert, compareNumbers, compareStrings, Id64, Id64String, IndexedValue, IndexMap } from \"@itwin/core-bentley\";\r\nimport { GeometryClass } from \"./GeometryParams\";\r\n\r\n/** Describes a discrete entity within a batched [RenderGraphic]($frontend) that can be\r\n * grouped with other such entities in a [[FeatureTable]].\r\n * Features roughly correlate to elements: a [Tile]($frontend)'s graphics combines geometry from every\r\n * [GeometricElement]($backend) that intersects the tile's volume, so each element produces at least one feature.\r\n * However, an element's geometry stream can contain geometry belonging to multiple different combinations of [SubCategory]($backend) and\r\n * [[GeometryClass]], so an individual element may produce more than one feature.\r\n * @see [[FeatureOverrides]] for customizing the appearance of individual features.\r\n * @public\r\n */\r\nexport class Feature {\r\n public readonly elementId: string;\r\n public readonly subCategoryId: string;\r\n public readonly geometryClass: GeometryClass;\r\n\r\n public constructor(elementId: Id64String = Id64.invalid, subCategoryId: Id64String = Id64.invalid, geometryClass: GeometryClass = GeometryClass.Primary) {\r\n this.elementId = elementId;\r\n this.subCategoryId = subCategoryId;\r\n this.geometryClass = geometryClass;\r\n }\r\n\r\n public get isDefined(): boolean { return !Id64.isInvalid(this.elementId) || !Id64.isInvalid(this.subCategoryId) || this.geometryClass !== GeometryClass.Primary; }\r\n public get isUndefined(): boolean { return !this.isDefined; }\r\n\r\n /** Returns true if this feature is equivalent to the supplied feature. */\r\n public equals(other: Feature): boolean { return 0 === this.compare(other); }\r\n\r\n /** Performs ordinal comparison of this feature with another.\r\n * @param rhs The feature to compare with.\r\n * @returns zero if the features are equivalent, a negative value if this feature compares as \"less than\" `rhs`, or a positive value if this feature compares \"greater than\" `rhs`.\r\n */\r\n public compare(rhs: Feature): number {\r\n if (this === rhs)\r\n return 0;\r\n\r\n let cmp = compareNumbers(this.geometryClass, rhs.geometryClass);\r\n if (0 === cmp) {\r\n cmp = compareStrings(this.elementId, rhs.elementId);\r\n if (0 === cmp) {\r\n cmp = compareStrings(this.subCategoryId, rhs.subCategoryId);\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface PackedFeature {\r\n elementId: Id64.Uint32Pair;\r\n subCategoryId: Id64.Uint32Pair;\r\n geometryClass: GeometryClass;\r\n animationNodeId: number;\r\n}\r\n\r\n/** Describes the type of a 'batch' of graphics representing multiple [[Feature]]s.\r\n * The most commonly-encountered batches are Tiles, which can be of either Primary or\r\n * Classifier type.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum BatchType {\r\n /** This batch contains graphics derived from a model's visible geometry. */\r\n Primary,\r\n /**\r\n * This batch contains color volumes which are used to classify a model's visible geometry.\r\n * The graphics themselves are not rendered to the screen; instead they are rendered to the stencil buffer\r\n * to resymbolize the primary geometry.\r\n */\r\n VolumeClassifier,\r\n /**\r\n * This batch contains planar graphics which are used to classify a model's visible geometry.\r\n * The graphics themselves are not rendered to the screen; instead they are rendered to a texture buffer\r\n * to resymbolize the primary geometry.\r\n */\r\n PlanarClassifier,\r\n}\r\n\r\n/** Defines a look-up table for [[Feature]]s within a batched [RenderGraphic]($frontend). Consecutive 32-bit\r\n * indices are assigned to each unique Feature. Primitives within the RenderGraphic can\r\n * use per-vertex indices to specify the distribution of Features within the primitive. The appearance of individual\r\n * features can be customized using [[FeatureOverrides]]. Typically a [Tile]($frontend) will contain a feature table\r\n * identifying the elements whose geometry appears within that tile.\r\n * @see [[FeatureOverrides]] for customizing the appearance of individual features.\r\n * @public\r\n */\r\nexport class FeatureTable extends IndexMap<Feature> {\r\n public readonly modelId: Id64String;\r\n public readonly type: BatchType;\r\n\r\n /** Construct an empty FeatureTable. */\r\n public constructor(maxFeatures: number, modelId: Id64String = Id64.invalid, type: BatchType = BatchType.Primary) {\r\n super((lhs, rhs) => lhs.compare(rhs), maxFeatures);\r\n this.modelId = modelId;\r\n this.type = type;\r\n }\r\n\r\n /** Returns the maximum number of [[Feature]]s this FeatureTable can contain. */\r\n public get maxFeatures(): number { return this._maximumSize; }\r\n /** @internal */\r\n public get anyDefined(): boolean { return this.length > 1 || (1 === this.length && this._array[0].value.isDefined); }\r\n /** Returns true if this FeatureTable contains exactly one [[Feature]]. */\r\n public get isUniform(): boolean { return 1 === this.length; }\r\n /** If this FeatureTable contains exactly one [[Feature]], returns that Feature; otherwise returns undefined. */\r\n public get uniform(): Feature | undefined { return 1 === this.length ? this._array[0].value : undefined; }\r\n /** Returns true if this FeatureTable is associated with [[BatchType.VolumeClassifier]] geometry. */\r\n public get isVolumeClassifier(): boolean { return BatchType.VolumeClassifier === this.type; }\r\n /** Returns true if this FeatureTable is associated with [[BatchType.PlanarClassifier]] geometry. */\r\n public get isPlanarClassifier(): boolean { return BatchType.PlanarClassifier === this.type; }\r\n\r\n /** Returns the Feature corresponding to the specified index, or undefined if the index is not present. */\r\n public findFeature(index: number): Feature | undefined {\r\n for (const entry of this._array)\r\n if (entry.index === index)\r\n return entry.value;\r\n\r\n return undefined;\r\n }\r\n\r\n /** @internal */\r\n public insertWithIndex(feature: Feature, index: number): void {\r\n const bound = this.lowerBound(feature);\r\n assert(!bound.equal);\r\n assert(!this.isFull);\r\n const entry = new IndexedValue<Feature>(feature, index);\r\n this._array.splice(bound.index, 0, entry);\r\n }\r\n\r\n /** @internal */\r\n public getArray(): Array<IndexedValue<Feature>> { return this._array; }\r\n}\r\n\r\n/** @alpha */\r\nexport type ComputeNodeId = (elementId: Id64.Uint32Pair, featureIndex: number) => number;\r\n\r\n/**\r\n * An immutable, packed representation of a [[FeatureTable]]. The features are packed into a single array of 32-bit integer values,\r\n * wherein each feature occupies 3 32-bit integers.\r\n * @internal\r\n */\r\nexport class PackedFeatureTable {\r\n private readonly _data: Uint32Array;\r\n public readonly modelId: Id64String;\r\n public readonly maxFeatures: number;\r\n public readonly numFeatures: number;\r\n public readonly anyDefined: boolean;\r\n public readonly type: BatchType;\r\n private _animationNodeIds?: Uint8Array | Uint16Array | Uint32Array;\r\n\r\n public get byteLength(): number { return this._data.byteLength; }\r\n public get animationNodeIds(): Readonly<Uint8Array | Uint16Array | Uint32Array> | undefined { return this._animationNodeIds; }\r\n\r\n /** Construct a PackedFeatureTable from the packed binary data.\r\n * This is used internally when deserializing Tiles in iMdl format.\r\n * @internal\r\n */\r\n public constructor(data: Uint32Array, modelId: Id64String, numFeatures: number, maxFeatures: number, type: BatchType, animationNodeIds?: Uint8Array | Uint16Array | Uint32Array) {\r\n this._data = data;\r\n this.modelId = modelId;\r\n this.maxFeatures = maxFeatures;\r\n this.numFeatures = numFeatures;\r\n this.type = type;\r\n this._animationNodeIds = animationNodeIds;\r\n\r\n switch (this.numFeatures) {\r\n case 0:\r\n this.anyDefined = false;\r\n break;\r\n case 1:\r\n this.anyDefined = this.getFeature(0).isDefined;\r\n break;\r\n default:\r\n this.anyDefined = true;\r\n break;\r\n }\r\n\r\n assert(this._data.length >= this._subCategoriesOffset);\r\n assert(this.maxFeatures >= this.numFeatures);\r\n assert(undefined === this._animationNodeIds || this._animationNodeIds.length === this.numFeatures);\r\n }\r\n\r\n /** Create a packed feature table from a [[FeatureTable]]. */\r\n public static pack(featureTable: FeatureTable): PackedFeatureTable {\r\n // We must determine how many subcategories we have ahead of time to compute the size of the Uint32Array, as\r\n // the array cannot be resized after it is created.\r\n // We are not too worried about this as FeatureTables created on the front-end will contain few if any features; those obtained from the\r\n // back-end arrive within tiles already in the packed format.\r\n const subcategories = new Map<string, number>();\r\n for (const iv of featureTable.getArray()) {\r\n const found = subcategories.get(iv.value.subCategoryId.toString());\r\n if (undefined === found)\r\n subcategories.set(iv.value.subCategoryId, subcategories.size);\r\n }\r\n\r\n // We need 3 32-bit integers per feature, plus 2 32-bit integers per subcategory.\r\n const subCategoriesOffset = 3 * featureTable.length;\r\n const nUint32s = subCategoriesOffset + 2 * subcategories.size;\r\n const uint32s = new Uint32Array(nUint32s);\r\n\r\n for (const iv of featureTable.getArray()) {\r\n const feature = iv.value;\r\n const index = iv.index * 3;\r\n\r\n let subCategoryIndex = subcategories.get(feature.subCategoryId)!;\r\n assert(undefined !== subCategoryIndex); // we inserted it above...\r\n subCategoryIndex |= (feature.geometryClass << 24);\r\n\r\n uint32s[index + 0] = Id64.getLowerUint32(feature.elementId);\r\n uint32s[index + 1] = Id64.getUpperUint32(feature.elementId);\r\n uint32s[index + 2] = subCategoryIndex;\r\n }\r\n\r\n subcategories.forEach((index: number, id: string, _map) => {\r\n const index32 = subCategoriesOffset + 2 * index;\r\n uint32s[index32 + 0] = Id64.getLowerUint32(id);\r\n uint32s[index32 + 1] = Id64.getUpperUint32(id);\r\n });\r\n\r\n return new PackedFeatureTable(uint32s, featureTable.modelId, featureTable.length, featureTable.maxFeatures, featureTable.type);\r\n }\r\n\r\n /** Retrieve the Feature associated with the specified index. */\r\n public getFeature(featureIndex: number): Feature {\r\n const packed = this.getPackedFeature(featureIndex);\r\n const elemId = Id64.fromUint32Pair(packed.elementId.lower, packed.elementId.upper);\r\n const subcatId = Id64.fromUint32Pair(packed.subCategoryId.lower, packed.subCategoryId.upper);\r\n return new Feature(elemId, subcatId, packed.geometryClass);\r\n }\r\n\r\n /** Returns the Feature associated with the specified index, or undefined if the index is out of range. */\r\n public findFeature(featureIndex: number): Feature | undefined {\r\n return featureIndex < this.numFeatures ? this.getFeature(featureIndex) : undefined;\r\n }\r\n\r\n /** @internal */\r\n public getElementIdPair(featureIndex: number, out?: Id64.Uint32Pair): Id64.Uint32Pair {\r\n out = out ?? { lower: 0, upper: 0 };\r\n assert(featureIndex < this.numFeatures);\r\n const offset = 3 * featureIndex;\r\n out.lower = this._data[offset];\r\n out.upper = this._data[offset + 1];\r\n return out;\r\n }\r\n\r\n /** @internal */\r\n public getSubCategoryIdPair(featureIndex: number): Id64.Uint32Pair {\r\n const index = 3 * featureIndex;\r\n let subCatIndex = this._data[index + 2];\r\n subCatIndex = (subCatIndex & 0x00ffffff) >>> 0;\r\n subCatIndex = subCatIndex * 2 + this._subCategoriesOffset;\r\n return { lower: this._data[subCatIndex], upper: this._data[subCatIndex + 1] };\r\n }\r\n\r\n /** @internal */\r\n public getAnimationNodeId(featureIndex: number): number {\r\n return undefined !== this._animationNodeIds && featureIndex < this.numFeatures ? this._animationNodeIds[featureIndex] : 0;\r\n }\r\n\r\n /** @internal */\r\n public getPackedFeature(featureIndex: number): PackedFeature {\r\n assert(featureIndex < this.numFeatures);\r\n\r\n const index32 = 3 * featureIndex;\r\n const elementId = { lower: this._data[index32], upper: this._data[index32 + 1] };\r\n\r\n const subCatIndexAndClass = this._data[index32 + 2];\r\n const geometryClass = (subCatIndexAndClass >>> 24) & 0xff;\r\n\r\n let subCatIndex = (subCatIndexAndClass & 0x00ffffff) >>> 0;\r\n subCatIndex = subCatIndex * 2 + this._subCategoriesOffset;\r\n const subCategoryId = { lower: this._data[subCatIndex], upper: this._data[subCatIndex + 1] };\r\n\r\n const animationNodeId = this.getAnimationNodeId(featureIndex);\r\n return { elementId, subCategoryId, geometryClass, animationNodeId };\r\n }\r\n\r\n /** Returns the element ID of the Feature associated with the specified index, or undefined if the index is out of range. */\r\n public findElementId(featureIndex: number): Id64String | undefined {\r\n if (featureIndex >= this.numFeatures)\r\n return undefined;\r\n else\r\n return this.readId(3 * featureIndex);\r\n }\r\n\r\n /** Return true if this table contains exactly 1 feature. */\r\n public get isUniform(): boolean { return 1 === this.numFeatures; }\r\n\r\n /** If this table contains exactly 1 feature, return it. */\r\n public get uniform(): Feature | undefined { return this.isUniform ? this.getFeature(0) : undefined; }\r\n\r\n public get isVolumeClassifier(): boolean { return BatchType.VolumeClassifier === this.type; }\r\n public get isPlanarClassifier(): boolean { return BatchType.VolumeClassifier === this.type; }\r\n public get isClassifier(): boolean { return this.isVolumeClassifier || this.isPlanarClassifier; }\r\n\r\n /** Unpack the features into a [[FeatureTable]]. */\r\n public unpack(): FeatureTable {\r\n const table = new FeatureTable(this.maxFeatures, this.modelId);\r\n for (let i = 0; i < this.numFeatures; i++) {\r\n const feature = this.getFeature(i);\r\n table.insertWithIndex(feature, i);\r\n }\r\n\r\n return table;\r\n }\r\n\r\n public populateAnimationNodeIds(computeNodeId: ComputeNodeId, maxNodeId: number): void {\r\n assert(undefined === this._animationNodeIds);\r\n assert(maxNodeId > 0);\r\n\r\n const pair = { lower: 0, upper: 0 };\r\n let haveNodes = false;\r\n const size = this.numFeatures;\r\n const nodeIds = maxNodeId < 0x100 ? new Uint8Array(size) : (maxNodeId < 0x10000 ? new Uint16Array(size) : new Uint32Array(size));\r\n for (let i = 0; i < this.numFeatures; i++) {\r\n this.getElementIdPair(i, pair);\r\n const nodeId = computeNodeId(pair, i);\r\n assert(nodeId <= maxNodeId);\r\n if (0 !== nodeId) {\r\n nodeIds[i] = nodeId;\r\n haveNodes = true;\r\n }\r\n }\r\n\r\n if (haveNodes)\r\n this._animationNodeIds = nodeIds;\r\n }\r\n\r\n private get _subCategoriesOffset(): number { return this.numFeatures * 3; }\r\n\r\n private readId(offset32: number): Id64String {\r\n return Id64.fromUint32Pair(this._data[offset32], this._data[offset32 + 1]);\r\n }\r\n}\r\n"]}
@@ -1,52 +1,52 @@
1
- /** @packageDocumentation
2
- * @module Symbology
3
- */
4
- /** The type of a font.
5
- * @public
6
- * @extensions
7
- */
8
- export declare enum FontType {
9
- TrueType = 1,
10
- Rsc = 2,
11
- Shx = 3
12
- }
13
- /** An iModel-local identifier for a font.
14
- * @public
15
- * @extensions
16
- */
17
- export declare type FontId = number;
18
- /** The properties of a Font.
19
- * @public
20
- */
21
- export interface FontProps {
22
- /** the Id, within an iModel, of this font. */
23
- id: FontId;
24
- /** The type of font */
25
- type: FontType;
26
- /** The name of the font. */
27
- name: string;
28
- }
29
- /** The properties of a FontMap
30
- * @public
31
- * @extensions
32
- */
33
- export interface FontMapProps {
34
- fonts: FontProps[];
35
- }
36
- /**
37
- * A FontMap holds the set of font names available in an iModel.
38
- * Within the GeometryStream of an Element, a specific font is referenced by its FontId that is local to the iModel.
39
- * This class maps FontIds to FontProps.
40
- * @note The font map is generally established when the iModel is first created to specify the set of fonts available
41
- * for editors. Adding new entries requires that the schema lock be held.
42
- * @public
43
- */
44
- export declare class FontMap {
45
- readonly fonts: Map<number, FontProps>;
46
- constructor(props?: FontMapProps);
47
- addFonts(fonts: FontProps[]): void;
48
- toJSON(): FontMapProps;
49
- /** look up a font by name or number and return its FontProps */
50
- getFont(arg: string | FontId): FontProps | undefined;
51
- }
1
+ /** @packageDocumentation
2
+ * @module Symbology
3
+ */
4
+ /** The type of a font.
5
+ * @public
6
+ * @extensions
7
+ */
8
+ export declare enum FontType {
9
+ TrueType = 1,
10
+ Rsc = 2,
11
+ Shx = 3
12
+ }
13
+ /** An iModel-local identifier for a font.
14
+ * @public
15
+ * @extensions
16
+ */
17
+ export declare type FontId = number;
18
+ /** The properties of a Font.
19
+ * @public
20
+ */
21
+ export interface FontProps {
22
+ /** the Id, within an iModel, of this font. */
23
+ id: FontId;
24
+ /** The type of font */
25
+ type: FontType;
26
+ /** The name of the font. */
27
+ name: string;
28
+ }
29
+ /** The properties of a FontMap
30
+ * @public
31
+ * @extensions
32
+ */
33
+ export interface FontMapProps {
34
+ fonts: FontProps[];
35
+ }
36
+ /**
37
+ * A FontMap holds the set of font names available in an iModel.
38
+ * Within the GeometryStream of an Element, a specific font is referenced by its FontId that is local to the iModel.
39
+ * This class maps FontIds to FontProps.
40
+ * @note The font map is generally established when the iModel is first created to specify the set of fonts available
41
+ * for editors. Adding new entries requires that the schema lock be held.
42
+ * @public
43
+ */
44
+ export declare class FontMap {
45
+ readonly fonts: Map<number, FontProps>;
46
+ constructor(props?: FontMapProps);
47
+ addFonts(fonts: FontProps[]): void;
48
+ toJSON(): FontMapProps;
49
+ /** look up a font by name or number and return its FontProps */
50
+ getFont(arg: string | FontId): FontProps | undefined;
51
+ }
52
52
  //# sourceMappingURL=Fonts.d.ts.map
package/lib/cjs/Fonts.js CHANGED
@@ -1,54 +1,54 @@
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
- /** @packageDocumentation
7
- * @module Symbology
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.FontMap = exports.FontType = void 0;
11
- /** The type of a font.
12
- * @public
13
- * @extensions
14
- */
15
- var FontType;
16
- (function (FontType) {
17
- FontType[FontType["TrueType"] = 1] = "TrueType";
18
- FontType[FontType["Rsc"] = 2] = "Rsc";
19
- FontType[FontType["Shx"] = 3] = "Shx";
20
- })(FontType = exports.FontType || (exports.FontType = {}));
21
- /**
22
- * A FontMap holds the set of font names available in an iModel.
23
- * Within the GeometryStream of an Element, a specific font is referenced by its FontId that is local to the iModel.
24
- * This class maps FontIds to FontProps.
25
- * @note The font map is generally established when the iModel is first created to specify the set of fonts available
26
- * for editors. Adding new entries requires that the schema lock be held.
27
- * @public
28
- */
29
- class FontMap {
30
- constructor(props) {
31
- this.fonts = new Map();
32
- if (undefined !== props)
33
- this.addFonts(props.fonts);
34
- }
35
- addFonts(fonts) {
36
- fonts.forEach((font) => this.fonts.set(font.id, font));
37
- }
38
- toJSON() {
39
- const fonts = [];
40
- this.fonts.forEach((font) => fonts.push(font));
41
- return { fonts };
42
- }
43
- /** look up a font by name or number and return its FontProps */
44
- getFont(arg) {
45
- if (typeof arg === "number")
46
- return this.fonts.get(arg);
47
- for (const font of this.fonts.values())
48
- if (font.name === arg)
49
- return font;
50
- return undefined;
51
- }
52
- }
53
- exports.FontMap = FontMap;
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
+ /** @packageDocumentation
7
+ * @module Symbology
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FontMap = exports.FontType = void 0;
11
+ /** The type of a font.
12
+ * @public
13
+ * @extensions
14
+ */
15
+ var FontType;
16
+ (function (FontType) {
17
+ FontType[FontType["TrueType"] = 1] = "TrueType";
18
+ FontType[FontType["Rsc"] = 2] = "Rsc";
19
+ FontType[FontType["Shx"] = 3] = "Shx";
20
+ })(FontType = exports.FontType || (exports.FontType = {}));
21
+ /**
22
+ * A FontMap holds the set of font names available in an iModel.
23
+ * Within the GeometryStream of an Element, a specific font is referenced by its FontId that is local to the iModel.
24
+ * This class maps FontIds to FontProps.
25
+ * @note The font map is generally established when the iModel is first created to specify the set of fonts available
26
+ * for editors. Adding new entries requires that the schema lock be held.
27
+ * @public
28
+ */
29
+ class FontMap {
30
+ constructor(props) {
31
+ this.fonts = new Map();
32
+ if (undefined !== props)
33
+ this.addFonts(props.fonts);
34
+ }
35
+ addFonts(fonts) {
36
+ fonts.forEach((font) => this.fonts.set(font.id, font));
37
+ }
38
+ toJSON() {
39
+ const fonts = [];
40
+ this.fonts.forEach((font) => fonts.push(font));
41
+ return { fonts };
42
+ }
43
+ /** look up a font by name or number and return its FontProps */
44
+ getFont(arg) {
45
+ if (typeof arg === "number")
46
+ return this.fonts.get(arg);
47
+ for (const font of this.fonts.values())
48
+ if (font.name === arg)
49
+ return font;
50
+ return undefined;
51
+ }
52
+ }
53
+ exports.FontMap = FontMap;
54
54
  //# sourceMappingURL=Fonts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Fonts.js","sourceRoot":"","sources":["../../src/Fonts.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,QAA2C;AAAvD,WAAY,QAAQ;IAAG,+CAAY,CAAA;IAAE,qCAAO,CAAA;IAAE,qCAAO,CAAA;AAAC,CAAC,EAA3C,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAAmC;AA0BvD;;;;;;;GAOG;AACH,MAAa,OAAO;IAElB,YAAY,KAAoB;QADhB,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;QAEnD,IAAI,SAAS,KAAK,KAAK;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACM,QAAQ,CAAC,KAAkB;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IACM,MAAM;QACX,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,gEAAgE;IACzD,OAAO,CAAC,GAAoB;QACjC,IAAI,OAAO,GAAG,KAAK,QAAQ;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;gBACnB,OAAO,IAAI,CAAC;QAEhB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAzBD,0BAyBC","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 Symbology\n */\n\n/** The type of a font.\n * @public\n * @extensions\n */\nexport enum FontType { TrueType = 1, Rsc = 2, Shx = 3 }\n\n/** An iModel-local identifier for a font.\n * @public\n * @extensions\n */\nexport type FontId = number;\n\n/** The properties of a Font.\n * @public\n */\nexport interface FontProps {\n /** the Id, within an iModel, of this font. */\n id: FontId;\n /** The type of font */\n type: FontType;\n /** The name of the font. */\n name: string;\n}\n\n/** The properties of a FontMap\n * @public\n * @extensions\n */\nexport interface FontMapProps { fonts: FontProps[] }\n\n/**\n * A FontMap holds the set of font names available in an iModel.\n * Within the GeometryStream of an Element, a specific font is referenced by its FontId that is local to the iModel.\n * This class maps FontIds to FontProps.\n * @note The font map is generally established when the iModel is first created to specify the set of fonts available\n * for editors. Adding new entries requires that the schema lock be held.\n * @public\n */\nexport class FontMap {\n public readonly fonts = new Map<FontId, FontProps>();\n constructor(props?: FontMapProps) {\n if (undefined !== props)\n this.addFonts(props.fonts);\n }\n public addFonts(fonts: FontProps[]) {\n fonts.forEach((font) => this.fonts.set(font.id, font));\n }\n public toJSON(): FontMapProps {\n const fonts: FontProps[] = [];\n this.fonts.forEach((font) => fonts.push(font));\n return { fonts };\n }\n /** look up a font by name or number and return its FontProps */\n public getFont(arg: string | FontId): FontProps | undefined {\n if (typeof arg === \"number\")\n return this.fonts.get(arg);\n\n for (const font of this.fonts.values())\n if (font.name === arg)\n return font;\n\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"Fonts.js","sourceRoot":"","sources":["../../src/Fonts.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,QAA2C;AAAvD,WAAY,QAAQ;IAAG,+CAAY,CAAA;IAAE,qCAAO,CAAA;IAAE,qCAAO,CAAA;AAAC,CAAC,EAA3C,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAAmC;AA0BvD;;;;;;;GAOG;AACH,MAAa,OAAO;IAElB,YAAY,KAAoB;QADhB,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;QAEnD,IAAI,SAAS,KAAK,KAAK;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACM,QAAQ,CAAC,KAAkB;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IACM,MAAM;QACX,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,gEAAgE;IACzD,OAAO,CAAC,GAAoB;QACjC,IAAI,OAAO,GAAG,KAAK,QAAQ;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;gBACnB,OAAO,IAAI,CAAC;QAEhB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAzBD,0BAyBC","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 Symbology\r\n */\r\n\r\n/** The type of a font.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum FontType { TrueType = 1, Rsc = 2, Shx = 3 }\r\n\r\n/** An iModel-local identifier for a font.\r\n * @public\r\n * @extensions\r\n */\r\nexport type FontId = number;\r\n\r\n/** The properties of a Font.\r\n * @public\r\n */\r\nexport interface FontProps {\r\n /** the Id, within an iModel, of this font. */\r\n id: FontId;\r\n /** The type of font */\r\n type: FontType;\r\n /** The name of the font. */\r\n name: string;\r\n}\r\n\r\n/** The properties of a FontMap\r\n * @public\r\n * @extensions\r\n */\r\nexport interface FontMapProps { fonts: FontProps[] }\r\n\r\n/**\r\n * A FontMap holds the set of font names available in an iModel.\r\n * Within the GeometryStream of an Element, a specific font is referenced by its FontId that is local to the iModel.\r\n * This class maps FontIds to FontProps.\r\n * @note The font map is generally established when the iModel is first created to specify the set of fonts available\r\n * for editors. Adding new entries requires that the schema lock be held.\r\n * @public\r\n */\r\nexport class FontMap {\r\n public readonly fonts = new Map<FontId, FontProps>();\r\n constructor(props?: FontMapProps) {\r\n if (undefined !== props)\r\n this.addFonts(props.fonts);\r\n }\r\n public addFonts(fonts: FontProps[]) {\r\n fonts.forEach((font) => this.fonts.set(font.id, font));\r\n }\r\n public toJSON(): FontMapProps {\r\n const fonts: FontProps[] = [];\r\n this.fonts.forEach((font) => fonts.push(font));\r\n return { fonts };\r\n }\r\n /** look up a font by name or number and return its FontProps */\r\n public getFont(arg: string | FontId): FontProps | undefined {\r\n if (typeof arg === \"number\")\r\n return this.fonts.get(arg);\r\n\r\n for (const font of this.fonts.values())\r\n if (font.name === arg)\r\n return font;\r\n\r\n return undefined;\r\n }\r\n}\r\n"]}
@@ -1,115 +1,115 @@
1
- /** @packageDocumentation
2
- * @module Views
3
- */
4
- import { ConvexClipPlaneSet, LowAndHighXY, LowAndHighXYZ, Map4d, Matrix3d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Transform, XYAndZ } from "@itwin/core-geometry";
5
- /** The 8 corners of the [Normalized Plane Coordinate]($docs/learning/glossary.md#npc) cube.
6
- * @public
7
- * @extensions
8
- */
9
- export declare enum Npc {
10
- /** Left bottom rear */
11
- _000 = 0,
12
- /** Right bottom rear */
13
- _100 = 1,
14
- /** Left top rear */
15
- _010 = 2,
16
- /** Right top rear */
17
- _110 = 3,
18
- /** Left bottom front */
19
- _001 = 4,
20
- /** Right bottom front */
21
- _101 = 5,
22
- /** Left top front */
23
- _011 = 6,
24
- /** Right top front */
25
- _111 = 7,
26
- LeftBottomRear = 0,
27
- RightBottomRear = 1,
28
- LeftTopRear = 2,
29
- RightTopRear = 3,
30
- LeftBottomFront = 4,
31
- RightBottomFront = 5,
32
- LeftTopFront = 6,
33
- RightTopFront = 7,
34
- /** useful for sizing arrays */
35
- CORNER_COUNT = 8
36
- }
37
- /** The 8 corners of an [[Npc]] Frustum.
38
- * @public
39
- */
40
- export declare const NpcCorners: Point3d[];
41
- /** The center point of the [Normalized Plane Coordinate]($docs/learning/glossary.md#npc) cube.
42
- * @public
43
- */
44
- export declare const NpcCenter: Point3d;
45
- /** The region of physical (3d) space that appears in a view. It forms the field-of-view of a camera.
46
- * It is stored as 8 points, in [[Npc]] order, that must define a truncated pyramid.
47
- * @public
48
- */
49
- export declare class Frustum {
50
- /** Array of the 8 points of this Frustum. */
51
- readonly points: Point3d[];
52
- /** Constructor for Frustum. Members are initialized to the Npc cube. */
53
- constructor();
54
- /** Initialize this Frustum to the 8 corners of the NPC cube. */
55
- initNpc(): this;
56
- /** Get a corner Point from this Frustum. */
57
- getCorner(i: number): Point3d;
58
- /** Get the point at the center of this Frustum (halfway between RightTopFront and LeftBottomRear. */
59
- getCenter(): Point3d;
60
- /** Get the distance between two corners of this Frustum. */
61
- distance(corner1: number, corner2: number): number;
62
- /** Get the ratio of the length of the diagonal of the front plane to the diagonal of the back plane. */
63
- getFraction(): number;
64
- /** Multiply all the points of this Frustum by a Transform, in place. */
65
- multiply(trans: Transform): void;
66
- /** Offset all of the points of this Frustum by a vector. */
67
- translate(offset: XYAndZ): void;
68
- /** Transform all the points of this Frustum and return the result in another Frustum. */
69
- transformBy(trans: Transform, result?: Frustum): Frustum;
70
- /** Calculate a bounding range from the 8 points in this Frustum. */
71
- toRange(range?: Range3d): Range3d;
72
- /** Make a copy of this Frustum.
73
- * @param result Optional Frustum for copy. If undefined allocate a new Frustum.
74
- */
75
- clone(result?: Frustum): Frustum;
76
- /** Set the points of this Frustum to be copies of the points in another Frustum. */
77
- setFrom(other: Frustum): void;
78
- /** Set the points of this frustum from array of corner points in NPC order. */
79
- setFromCorners(corners: Point3d[]): void;
80
- /** Scale this Frustum, in place, about its center by a scale factor. */
81
- scaleAboutCenter(scale: number): void;
82
- /** The point at the center of the front face of this frustum */
83
- get frontCenter(): Point3d;
84
- /** The point at the center of the rear face of this frustum */
85
- get rearCenter(): Point3d;
86
- /** Scale this frustum's XY (viewing) plane about its center */
87
- scaleXYAboutCenter(scale: number): void;
88
- /** Create a Map4d that converts world coordinates to/from [[Npc]] coordinates of this Frustum. */
89
- toMap4d(): Map4d | undefined;
90
- /** Get the rotation matrix to the frame of this frustum. This is equivalent to the view rotation matrix. */
91
- getRotation(result?: Matrix3d): Matrix3d | undefined;
92
- /** Get the eye point - undefined if parallel projection */
93
- getEyePoint(result?: Point3d): Point3d | undefined;
94
- /** Invalidate this Frustum by setting all 8 points to zero. */
95
- invalidate(): void;
96
- /** Return true if this Frustum is equal to another Frustum */
97
- equals(rhs: Frustum): boolean;
98
- /** Return true if all of the points in this Frustum are *almost* the same as the points in another Frustum.
99
- * @see [[equals]], [XYZ.isAlmostEqual]($geometry)
100
- */
101
- isSame(other: Frustum): boolean;
102
- /** Initialize this Frustum from a Range */
103
- initFromRange(range: LowAndHighXYZ | LowAndHighXY): void;
104
- /** Create a new Frustum from a Range3d */
105
- static fromRange(range: LowAndHighXYZ | LowAndHighXY, out?: Frustum): Frustum;
106
- /** Return true if this Frustum has a mirror (is not in the correct order.) */
107
- get hasMirror(): boolean;
108
- /** Make sure the frustum point order does not include mirroring. If so, reverse the order. */
109
- fixPointOrder(): void;
110
- /** Get a convex set of clipping planes bounding the region contained by this Frustum. */
111
- getRangePlanes(clipFront: boolean, clipBack: boolean, expandPlaneDistance: number): ConvexClipPlaneSet;
112
- /** Get a (convex) polygon that represents the intersection of this frustum with a plane, or undefined if no intersection exists */
113
- getIntersectionWithPlane(plane: Plane3dByOriginAndUnitNormal): Point3d[] | undefined;
114
- }
1
+ /** @packageDocumentation
2
+ * @module Views
3
+ */
4
+ import { ConvexClipPlaneSet, LowAndHighXY, LowAndHighXYZ, Map4d, Matrix3d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Transform, XYAndZ } from "@itwin/core-geometry";
5
+ /** The 8 corners of the [Normalized Plane Coordinate]($docs/learning/glossary.md#npc) cube.
6
+ * @public
7
+ * @extensions
8
+ */
9
+ export declare enum Npc {
10
+ /** Left bottom rear */
11
+ _000 = 0,
12
+ /** Right bottom rear */
13
+ _100 = 1,
14
+ /** Left top rear */
15
+ _010 = 2,
16
+ /** Right top rear */
17
+ _110 = 3,
18
+ /** Left bottom front */
19
+ _001 = 4,
20
+ /** Right bottom front */
21
+ _101 = 5,
22
+ /** Left top front */
23
+ _011 = 6,
24
+ /** Right top front */
25
+ _111 = 7,
26
+ LeftBottomRear = 0,
27
+ RightBottomRear = 1,
28
+ LeftTopRear = 2,
29
+ RightTopRear = 3,
30
+ LeftBottomFront = 4,
31
+ RightBottomFront = 5,
32
+ LeftTopFront = 6,
33
+ RightTopFront = 7,
34
+ /** useful for sizing arrays */
35
+ CORNER_COUNT = 8
36
+ }
37
+ /** The 8 corners of an [[Npc]] Frustum.
38
+ * @public
39
+ */
40
+ export declare const NpcCorners: Point3d[];
41
+ /** The center point of the [Normalized Plane Coordinate]($docs/learning/glossary.md#npc) cube.
42
+ * @public
43
+ */
44
+ export declare const NpcCenter: Point3d;
45
+ /** The region of physical (3d) space that appears in a view. It forms the field-of-view of a camera.
46
+ * It is stored as 8 points, in [[Npc]] order, that must define a truncated pyramid.
47
+ * @public
48
+ */
49
+ export declare class Frustum {
50
+ /** Array of the 8 points of this Frustum. */
51
+ readonly points: Point3d[];
52
+ /** Constructor for Frustum. Members are initialized to the Npc cube. */
53
+ constructor();
54
+ /** Initialize this Frustum to the 8 corners of the NPC cube. */
55
+ initNpc(): this;
56
+ /** Get a corner Point from this Frustum. */
57
+ getCorner(i: number): Point3d;
58
+ /** Get the point at the center of this Frustum (halfway between RightTopFront and LeftBottomRear. */
59
+ getCenter(): Point3d;
60
+ /** Get the distance between two corners of this Frustum. */
61
+ distance(corner1: number, corner2: number): number;
62
+ /** Get the ratio of the length of the diagonal of the front plane to the diagonal of the back plane. */
63
+ getFraction(): number;
64
+ /** Multiply all the points of this Frustum by a Transform, in place. */
65
+ multiply(trans: Transform): void;
66
+ /** Offset all of the points of this Frustum by a vector. */
67
+ translate(offset: XYAndZ): void;
68
+ /** Transform all the points of this Frustum and return the result in another Frustum. */
69
+ transformBy(trans: Transform, result?: Frustum): Frustum;
70
+ /** Calculate a bounding range from the 8 points in this Frustum. */
71
+ toRange(range?: Range3d): Range3d;
72
+ /** Make a copy of this Frustum.
73
+ * @param result Optional Frustum for copy. If undefined allocate a new Frustum.
74
+ */
75
+ clone(result?: Frustum): Frustum;
76
+ /** Set the points of this Frustum to be copies of the points in another Frustum. */
77
+ setFrom(other: Frustum): void;
78
+ /** Set the points of this frustum from array of corner points in NPC order. */
79
+ setFromCorners(corners: Point3d[]): void;
80
+ /** Scale this Frustum, in place, about its center by a scale factor. */
81
+ scaleAboutCenter(scale: number): void;
82
+ /** The point at the center of the front face of this frustum */
83
+ get frontCenter(): Point3d;
84
+ /** The point at the center of the rear face of this frustum */
85
+ get rearCenter(): Point3d;
86
+ /** Scale this frustum's XY (viewing) plane about its center */
87
+ scaleXYAboutCenter(scale: number): void;
88
+ /** Create a Map4d that converts world coordinates to/from [[Npc]] coordinates of this Frustum. */
89
+ toMap4d(): Map4d | undefined;
90
+ /** Get the rotation matrix to the frame of this frustum. This is equivalent to the view rotation matrix. */
91
+ getRotation(result?: Matrix3d): Matrix3d | undefined;
92
+ /** Get the eye point - undefined if parallel projection */
93
+ getEyePoint(result?: Point3d): Point3d | undefined;
94
+ /** Invalidate this Frustum by setting all 8 points to zero. */
95
+ invalidate(): void;
96
+ /** Return true if this Frustum is equal to another Frustum */
97
+ equals(rhs: Frustum): boolean;
98
+ /** Return true if all of the points in this Frustum are *almost* the same as the points in another Frustum.
99
+ * @see [[equals]], [XYZ.isAlmostEqual]($geometry)
100
+ */
101
+ isSame(other: Frustum): boolean;
102
+ /** Initialize this Frustum from a Range */
103
+ initFromRange(range: LowAndHighXYZ | LowAndHighXY): void;
104
+ /** Create a new Frustum from a Range3d */
105
+ static fromRange(range: LowAndHighXYZ | LowAndHighXY, out?: Frustum): Frustum;
106
+ /** Return true if this Frustum has a mirror (is not in the correct order.) */
107
+ get hasMirror(): boolean;
108
+ /** Make sure the frustum point order does not include mirroring. If so, reverse the order. */
109
+ fixPointOrder(): void;
110
+ /** Get a convex set of clipping planes bounding the region contained by this Frustum. */
111
+ getRangePlanes(clipFront: boolean, clipBack: boolean, expandPlaneDistance: number): ConvexClipPlaneSet;
112
+ /** Get a (convex) polygon that represents the intersection of this frustum with a plane, or undefined if no intersection exists */
113
+ getIntersectionWithPlane(plane: Plane3dByOriginAndUnitNormal): Point3d[] | undefined;
114
+ }
115
115
  //# sourceMappingURL=Frustum.d.ts.map