@itwin/core-common 3.7.0-dev.6 → 3.7.0-dev.7

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 (947) hide show
  1. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  2. package/lib/cjs/AmbientOcclusion.js +55 -55
  3. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  4. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  5. package/lib/cjs/AnalysisStyle.js +165 -165
  6. package/lib/cjs/AnalysisStyle.js.map +1 -1
  7. package/lib/cjs/AuthorizationClient.d.ts +17 -17
  8. package/lib/cjs/AuthorizationClient.js +9 -9
  9. package/lib/cjs/AuthorizationClient.js.map +1 -1
  10. package/lib/cjs/BackendTypes.d.ts +12 -12
  11. package/lib/cjs/BackendTypes.js +9 -9
  12. package/lib/cjs/BackendTypes.js.map +1 -1
  13. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  14. package/lib/cjs/BackgroundMapProvider.js +68 -68
  15. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  16. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  17. package/lib/cjs/BackgroundMapSettings.js +156 -156
  18. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  19. package/lib/cjs/Base64EncodedString.d.ts +32 -32
  20. package/lib/cjs/Base64EncodedString.js +66 -66
  21. package/lib/cjs/Base64EncodedString.js.map +1 -1
  22. package/lib/cjs/BlobReader.d.ts +31 -31
  23. package/lib/cjs/BlobReader.js +84 -84
  24. package/lib/cjs/BlobReader.js.map +1 -1
  25. package/lib/cjs/BriefcaseTypes.d.ts +191 -191
  26. package/lib/cjs/BriefcaseTypes.js +95 -95
  27. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  28. package/lib/cjs/Camera.d.ts +42 -42
  29. package/lib/cjs/Camera.js +62 -62
  30. package/lib/cjs/Camera.js.map +1 -1
  31. package/lib/cjs/ChangedElements.d.ts +85 -85
  32. package/lib/cjs/ChangedElements.js +23 -23
  33. package/lib/cjs/ChangedElements.js.map +1 -1
  34. package/lib/cjs/ChangedEntities.d.ts +45 -45
  35. package/lib/cjs/ChangedEntities.js +9 -9
  36. package/lib/cjs/ChangedEntities.js.map +1 -1
  37. package/lib/cjs/ChangesetProps.d.ts +98 -98
  38. package/lib/cjs/ChangesetProps.js +22 -22
  39. package/lib/cjs/ChangesetProps.js.map +1 -1
  40. package/lib/cjs/ClipStyle.d.ts +89 -89
  41. package/lib/cjs/ClipStyle.js +123 -123
  42. package/lib/cjs/ClipStyle.js.map +1 -1
  43. package/lib/cjs/CloudStorage.d.ts +62 -62
  44. package/lib/cjs/CloudStorage.js +113 -113
  45. package/lib/cjs/CloudStorage.js.map +1 -1
  46. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  47. package/lib/cjs/CloudStorageTileCache.js +66 -66
  48. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  49. package/lib/cjs/Code.d.ts +277 -277
  50. package/lib/cjs/Code.js +269 -269
  51. package/lib/cjs/Code.js.map +1 -1
  52. package/lib/cjs/ColorByName.d.ts +161 -161
  53. package/lib/cjs/ColorByName.js +169 -169
  54. package/lib/cjs/ColorByName.js.map +1 -1
  55. package/lib/cjs/ColorDef.d.ts +208 -208
  56. package/lib/cjs/ColorDef.js +571 -571
  57. package/lib/cjs/ColorDef.js.map +1 -1
  58. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  59. package/lib/cjs/CommonLoggerCategory.js +26 -26
  60. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  61. package/lib/cjs/ConcurrentQuery.d.ts +421 -421
  62. package/lib/cjs/ConcurrentQuery.js +552 -552
  63. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  64. package/lib/cjs/ContextRealityModel.d.ts +303 -303
  65. package/lib/cjs/ContextRealityModel.js +373 -373
  66. package/lib/cjs/ContextRealityModel.js.map +1 -1
  67. package/lib/cjs/DisplayStyleSettings.d.ts +588 -588
  68. package/lib/cjs/DisplayStyleSettings.js +985 -985
  69. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  70. package/lib/cjs/ECSchemaProps.d.ts +39 -39
  71. package/lib/cjs/ECSchemaProps.js +9 -9
  72. package/lib/cjs/ECSchemaProps.js.map +1 -1
  73. package/lib/cjs/ECSqlReader.d.ts +70 -70
  74. package/lib/cjs/ECSqlReader.js +280 -280
  75. package/lib/cjs/ECSqlReader.js.map +1 -1
  76. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  77. package/lib/cjs/ECSqlTypes.js +189 -189
  78. package/lib/cjs/ECSqlTypes.js.map +1 -1
  79. package/lib/cjs/ElementMesh.d.ts +39 -39
  80. package/lib/cjs/ElementMesh.js +56 -56
  81. package/lib/cjs/ElementMesh.js.map +1 -1
  82. package/lib/cjs/ElementProps.d.ts +483 -483
  83. package/lib/cjs/ElementProps.js +99 -99
  84. package/lib/cjs/ElementProps.js.map +1 -1
  85. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  86. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  87. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  88. package/lib/cjs/EntityProps.d.ts +177 -177
  89. package/lib/cjs/EntityProps.js +113 -113
  90. package/lib/cjs/EntityProps.js.map +1 -1
  91. package/lib/cjs/EntityReference.d.ts +51 -51
  92. package/lib/cjs/EntityReference.js +56 -56
  93. package/lib/cjs/EntityReference.js.map +1 -1
  94. package/lib/cjs/Environment.d.ts +61 -61
  95. package/lib/cjs/Environment.js +73 -73
  96. package/lib/cjs/Environment.js.map +1 -1
  97. package/lib/cjs/FeatureIndex.d.ts +39 -39
  98. package/lib/cjs/FeatureIndex.js +63 -63
  99. package/lib/cjs/FeatureIndex.js.map +1 -1
  100. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  101. package/lib/cjs/FeatureSymbology.js +614 -614
  102. package/lib/cjs/FeatureSymbology.js.map +1 -1
  103. package/lib/cjs/FeatureTable.d.ts +248 -248
  104. package/lib/cjs/FeatureTable.js +470 -470
  105. package/lib/cjs/FeatureTable.js.map +1 -1
  106. package/lib/cjs/Fonts.d.ts +51 -51
  107. package/lib/cjs/Fonts.js +53 -53
  108. package/lib/cjs/Fonts.js.map +1 -1
  109. package/lib/cjs/Frustum.d.ts +114 -114
  110. package/lib/cjs/Frustum.js +292 -292
  111. package/lib/cjs/Frustum.js.map +1 -1
  112. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  113. package/lib/cjs/GeoCoordinateServices.js +80 -80
  114. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  115. package/lib/cjs/GeometryContainment.d.ts +28 -28
  116. package/lib/cjs/GeometryContainment.js +9 -9
  117. package/lib/cjs/GeometryContainment.js.map +1 -1
  118. package/lib/cjs/GeometryParams.d.ts +130 -130
  119. package/lib/cjs/GeometryParams.js +174 -174
  120. package/lib/cjs/GeometryParams.js.map +1 -1
  121. package/lib/cjs/GeometrySummary.d.ts +45 -45
  122. package/lib/cjs/GeometrySummary.js +23 -23
  123. package/lib/cjs/GeometrySummary.js.map +1 -1
  124. package/lib/cjs/Gradient.d.ts +139 -139
  125. package/lib/cjs/Gradient.js +455 -455
  126. package/lib/cjs/Gradient.js.map +1 -1
  127. package/lib/cjs/GraphicParams.d.ts +58 -58
  128. package/lib/cjs/GraphicParams.js +85 -85
  129. package/lib/cjs/GraphicParams.js.map +1 -1
  130. package/lib/cjs/GroundPlane.d.ts +52 -52
  131. package/lib/cjs/GroundPlane.js +64 -64
  132. package/lib/cjs/GroundPlane.js.map +1 -1
  133. package/lib/cjs/HSLColor.d.ts +20 -20
  134. package/lib/cjs/HSLColor.js +32 -32
  135. package/lib/cjs/HSLColor.js.map +1 -1
  136. package/lib/cjs/HSVColor.d.ts +30 -30
  137. package/lib/cjs/HSVColor.js +59 -59
  138. package/lib/cjs/HSVColor.js.map +1 -1
  139. package/lib/cjs/HiddenLine.d.ts +97 -97
  140. package/lib/cjs/HiddenLine.js +162 -162
  141. package/lib/cjs/HiddenLine.js.map +1 -1
  142. package/lib/cjs/Hilite.d.ts +50 -50
  143. package/lib/cjs/Hilite.js +64 -64
  144. package/lib/cjs/Hilite.js.map +1 -1
  145. package/lib/cjs/IModel.d.ts +358 -358
  146. package/lib/cjs/IModel.js +347 -347
  147. package/lib/cjs/IModel.js.map +1 -1
  148. package/lib/cjs/IModelError.d.ts +42 -42
  149. package/lib/cjs/IModelError.js +71 -71
  150. package/lib/cjs/IModelError.js.map +1 -1
  151. package/lib/cjs/IModelVersion.d.ts +68 -68
  152. package/lib/cjs/IModelVersion.js +79 -79
  153. package/lib/cjs/IModelVersion.js.map +1 -1
  154. package/lib/cjs/Image.d.ts +86 -86
  155. package/lib/cjs/Image.js +128 -128
  156. package/lib/cjs/Image.js.map +1 -1
  157. package/lib/cjs/IpcAppProps.d.ts +141 -141
  158. package/lib/cjs/IpcAppProps.js +23 -23
  159. package/lib/cjs/IpcAppProps.js.map +1 -1
  160. package/lib/cjs/LightSettings.d.ts +224 -224
  161. package/lib/cjs/LightSettings.js +309 -309
  162. package/lib/cjs/LightSettings.js.map +1 -1
  163. package/lib/cjs/LinePixels.d.ts +34 -34
  164. package/lib/cjs/LinePixels.js +42 -42
  165. package/lib/cjs/LinePixels.js.map +1 -1
  166. package/lib/cjs/Localization.d.ts +113 -113
  167. package/lib/cjs/Localization.js +33 -33
  168. package/lib/cjs/Localization.js.map +1 -1
  169. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  170. package/lib/cjs/MapImagerySettings.js +80 -80
  171. package/lib/cjs/MapImagerySettings.js.map +1 -1
  172. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  173. package/lib/cjs/MapLayerSettings.js +411 -411
  174. package/lib/cjs/MapLayerSettings.js.map +1 -1
  175. package/lib/cjs/MassProperties.d.ts +64 -64
  176. package/lib/cjs/MassProperties.js +23 -23
  177. package/lib/cjs/MassProperties.js.map +1 -1
  178. package/lib/cjs/MaterialProps.d.ts +153 -153
  179. package/lib/cjs/MaterialProps.js +35 -35
  180. package/lib/cjs/MaterialProps.js.map +1 -1
  181. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  182. package/lib/cjs/ModelClipGroup.js +98 -98
  183. package/lib/cjs/ModelClipGroup.js.map +1 -1
  184. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  185. package/lib/cjs/ModelGeometryChanges.js +83 -83
  186. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  187. package/lib/cjs/ModelProps.d.ts +67 -67
  188. package/lib/cjs/ModelProps.js +9 -9
  189. package/lib/cjs/ModelProps.js.map +1 -1
  190. package/lib/cjs/NativeAppProps.d.ts +122 -122
  191. package/lib/cjs/NativeAppProps.js +30 -30
  192. package/lib/cjs/NativeAppProps.js.map +1 -1
  193. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  194. package/lib/cjs/OctEncodedNormal.js +98 -98
  195. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  196. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  197. package/lib/cjs/PlanProjectionSettings.js +63 -63
  198. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  199. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  200. package/lib/cjs/PlanarClipMask.js +136 -136
  201. package/lib/cjs/PlanarClipMask.js.map +1 -1
  202. package/lib/cjs/QPoint.d.ts +479 -479
  203. package/lib/cjs/QPoint.js +826 -826
  204. package/lib/cjs/QPoint.js.map +1 -1
  205. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  206. package/lib/cjs/RealityDataAccessProps.js +19 -19
  207. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  208. package/lib/cjs/RealityModelDisplaySettings.d.ts +183 -183
  209. package/lib/cjs/RealityModelDisplaySettings.js +142 -142
  210. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  211. package/lib/cjs/Render.d.ts +89 -89
  212. package/lib/cjs/Render.js +177 -177
  213. package/lib/cjs/Render.js.map +1 -1
  214. package/lib/cjs/RenderMaterial.d.ts +58 -58
  215. package/lib/cjs/RenderMaterial.js +76 -76
  216. package/lib/cjs/RenderMaterial.js.map +1 -1
  217. package/lib/cjs/RenderSchedule.d.ts +543 -543
  218. package/lib/cjs/RenderSchedule.js +1002 -1002
  219. package/lib/cjs/RenderTexture.d.ts +70 -70
  220. package/lib/cjs/RenderTexture.js +59 -59
  221. package/lib/cjs/RenderTexture.js.map +1 -1
  222. package/lib/cjs/RgbColor.d.ts +47 -47
  223. package/lib/cjs/RgbColor.js +77 -77
  224. package/lib/cjs/RgbColor.js.map +1 -1
  225. package/lib/cjs/RpcInterface.d.ts +33 -33
  226. package/lib/cjs/RpcInterface.js +137 -137
  227. package/lib/cjs/RpcInterface.js.map +1 -1
  228. package/lib/cjs/RpcManager.d.ts +40 -40
  229. package/lib/cjs/RpcManager.js +55 -55
  230. package/lib/cjs/RpcManager.js.map +1 -1
  231. package/lib/cjs/SessionProps.d.ts +16 -16
  232. package/lib/cjs/SessionProps.js +9 -9
  233. package/lib/cjs/SessionProps.js.map +1 -1
  234. package/lib/cjs/SkyBox.d.ts +215 -215
  235. package/lib/cjs/SkyBox.js +210 -210
  236. package/lib/cjs/SkyBox.js.map +1 -1
  237. package/lib/cjs/Snapping.d.ts +49 -49
  238. package/lib/cjs/Snapping.js +9 -9
  239. package/lib/cjs/Snapping.js.map +1 -1
  240. package/lib/cjs/SolarCalculate.d.ts +27 -27
  241. package/lib/cjs/SolarCalculate.js +211 -211
  242. package/lib/cjs/SolarCalculate.js.map +1 -1
  243. package/lib/cjs/SolarShadows.d.ts +35 -35
  244. package/lib/cjs/SolarShadows.js +62 -62
  245. package/lib/cjs/SolarShadows.js.map +1 -1
  246. package/lib/cjs/SpatialClassification.d.ts +208 -208
  247. package/lib/cjs/SpatialClassification.js +340 -340
  248. package/lib/cjs/SpatialClassification.js.map +1 -1
  249. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  250. package/lib/cjs/SubCategoryAppearance.js +96 -96
  251. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  252. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  253. package/lib/cjs/SubCategoryOverride.js +104 -104
  254. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  255. package/lib/cjs/TerrainSettings.d.ts +82 -82
  256. package/lib/cjs/TerrainSettings.js +102 -102
  257. package/lib/cjs/TerrainSettings.js.map +1 -1
  258. package/lib/cjs/TextureMapping.d.ts +118 -118
  259. package/lib/cjs/TextureMapping.js +174 -174
  260. package/lib/cjs/TextureMapping.js.map +1 -1
  261. package/lib/cjs/TextureProps.d.ts +65 -65
  262. package/lib/cjs/TextureProps.js +28 -28
  263. package/lib/cjs/TextureProps.js.map +1 -1
  264. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  265. package/lib/cjs/ThematicDisplay.js +344 -344
  266. package/lib/cjs/ThematicDisplay.js.map +1 -1
  267. package/lib/cjs/Thumbnail.d.ts +26 -26
  268. package/lib/cjs/Thumbnail.js +9 -9
  269. package/lib/cjs/Thumbnail.js.map +1 -1
  270. package/lib/cjs/TileProps.d.ts +82 -82
  271. package/lib/cjs/TileProps.js +29 -29
  272. package/lib/cjs/TileProps.js.map +1 -1
  273. package/lib/cjs/Tween.d.ts +191 -191
  274. package/lib/cjs/Tween.js +570 -570
  275. package/lib/cjs/Tween.js.map +1 -1
  276. package/lib/cjs/TxnAction.d.ts +21 -21
  277. package/lib/cjs/TxnAction.js +29 -29
  278. package/lib/cjs/TxnAction.js.map +1 -1
  279. package/lib/cjs/ViewDetails.d.ts +125 -125
  280. package/lib/cjs/ViewDetails.js +166 -166
  281. package/lib/cjs/ViewDetails.js.map +1 -1
  282. package/lib/cjs/ViewFlags.d.ts +287 -287
  283. package/lib/cjs/ViewFlags.js +368 -368
  284. package/lib/cjs/ViewFlags.js.map +1 -1
  285. package/lib/cjs/ViewProps.d.ts +205 -205
  286. package/lib/cjs/ViewProps.js +9 -9
  287. package/lib/cjs/ViewProps.js.map +1 -1
  288. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  289. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  290. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  291. package/lib/cjs/core-common.d.ts +245 -245
  292. package/lib/cjs/core-common.js +261 -261
  293. package/lib/cjs/core-common.js.map +1 -1
  294. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  295. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  296. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  297. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  298. package/lib/cjs/domains/GenericElementProps.js +9 -9
  299. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  300. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  301. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  302. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  303. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  304. package/lib/cjs/geometry/AreaPattern.js +204 -204
  305. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  306. package/lib/cjs/geometry/BoundingSphere.d.ts +27 -27
  307. package/lib/cjs/geometry/BoundingSphere.js +44 -44
  308. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  309. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  310. package/lib/cjs/geometry/Cartographic.js +345 -345
  311. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  312. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  313. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  314. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  315. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  316. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  317. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  318. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  319. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  320. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  321. package/lib/cjs/geometry/FrustumPlanes.d.ts +81 -81
  322. package/lib/cjs/geometry/FrustumPlanes.js +193 -193
  323. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  324. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  325. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  326. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  327. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  328. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  329. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  330. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  331. package/lib/cjs/geometry/GeometryStream.js +469 -469
  332. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  333. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  334. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  335. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  336. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  337. package/lib/cjs/geometry/LineStyle.js +129 -129
  338. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  339. package/lib/cjs/geometry/Placement.d.ts +95 -95
  340. package/lib/cjs/geometry/Placement.js +131 -131
  341. package/lib/cjs/geometry/Placement.js.map +1 -1
  342. package/lib/cjs/geometry/Projection.d.ts +251 -251
  343. package/lib/cjs/geometry/Projection.js +198 -198
  344. package/lib/cjs/geometry/Projection.js.map +1 -1
  345. package/lib/cjs/geometry/TextString.d.ts +55 -55
  346. package/lib/cjs/geometry/TextString.js +65 -65
  347. package/lib/cjs/geometry/TextString.js.map +1 -1
  348. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  349. package/lib/cjs/ipc/IpcSession.js +27 -27
  350. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  351. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  352. package/lib/cjs/ipc/IpcSocket.js +16 -16
  353. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  354. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  355. package/lib/cjs/ipc/IpcWebSocket.js +151 -151
  356. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  357. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  358. package/lib/cjs/ipc/IpcWebSocketTransport.js +160 -160
  359. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  360. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  361. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  362. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  363. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +99 -99
  364. package/lib/cjs/rpc/IModelReadRpcInterface.js +122 -122
  365. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  366. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  367. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  368. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  369. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  370. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  371. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  372. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  373. package/lib/cjs/rpc/TestRpcManager.js +40 -40
  374. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  375. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  376. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  377. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  378. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  379. package/lib/cjs/rpc/core/RpcConfiguration.js +191 -191
  380. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  381. package/lib/cjs/rpc/core/RpcConstants.d.ts +90 -90
  382. package/lib/cjs/rpc/core/RpcConstants.js +109 -109
  383. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  384. package/lib/cjs/rpc/core/RpcControl.d.ts +54 -54
  385. package/lib/cjs/rpc/core/RpcControl.js +145 -145
  386. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  387. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  388. package/lib/cjs/rpc/core/RpcInvocation.js +258 -258
  389. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  390. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +35 -35
  391. package/lib/cjs/rpc/core/RpcMarshaling.js +156 -156
  392. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  393. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  394. package/lib/cjs/rpc/core/RpcOperation.js +134 -134
  395. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  396. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  397. package/lib/cjs/rpc/core/RpcPendingQueue.js +95 -95
  398. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  399. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  400. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  401. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  402. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  403. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  404. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  405. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  406. package/lib/cjs/rpc/core/RpcRegistry.js +199 -199
  407. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  408. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  409. package/lib/cjs/rpc/core/RpcRequest.js +478 -478
  410. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  411. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  412. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  413. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  414. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  415. package/lib/cjs/rpc/core/RpcRoutingToken.js +24 -24
  416. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  417. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  418. package/lib/cjs/rpc/core/RpcSessionInvocation.js +60 -60
  419. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  420. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  421. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  422. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  423. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  424. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +143 -143
  425. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  426. package/lib/cjs/rpc/web/OpenAPI.d.ts +140 -140
  427. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  428. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  429. package/lib/cjs/rpc/web/RpcMultipart.d.ts +35 -35
  430. package/lib/cjs/rpc/web/RpcMultipart.js +50 -50
  431. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  432. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +28 -28
  433. package/lib/cjs/rpc/web/WebAppRpcLogging.js +140 -140
  434. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  435. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +89 -89
  436. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  437. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  438. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +67 -67
  439. package/lib/cjs/rpc/web/WebAppRpcRequest.js +239 -239
  440. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  441. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  442. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +373 -373
  443. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  444. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  445. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  446. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  447. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  448. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  449. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  450. package/lib/cjs/tile/ElementGraphics.d.ts +145 -145
  451. package/lib/cjs/tile/ElementGraphics.js +9 -9
  452. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  453. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  454. package/lib/cjs/tile/GltfTileIO.js +109 -109
  455. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  456. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  457. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  458. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  459. package/lib/cjs/tile/IModelTileIO.d.ts +77 -77
  460. package/lib/cjs/tile/IModelTileIO.js +97 -97
  461. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  462. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  463. package/lib/cjs/tile/PntsTileIO.js +26 -26
  464. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  465. package/lib/cjs/tile/TileIO.d.ts +66 -66
  466. package/lib/cjs/tile/TileIO.js +118 -118
  467. package/lib/cjs/tile/TileIO.js.map +1 -1
  468. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  469. package/lib/cjs/tile/TileMetadata.js +676 -676
  470. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  471. package/lib/cjs/tile/Tileset3dSchema.d.ts +96 -96
  472. package/lib/cjs/tile/Tileset3dSchema.js +9 -9
  473. package/lib/cjs/tile/Tileset3dSchema.js.map +1 -1
  474. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  475. package/lib/esm/AmbientOcclusion.js +52 -52
  476. package/lib/esm/AmbientOcclusion.js.map +1 -1
  477. package/lib/esm/AnalysisStyle.d.ts +134 -134
  478. package/lib/esm/AnalysisStyle.js +159 -159
  479. package/lib/esm/AnalysisStyle.js.map +1 -1
  480. package/lib/esm/AuthorizationClient.d.ts +17 -17
  481. package/lib/esm/AuthorizationClient.js +8 -8
  482. package/lib/esm/AuthorizationClient.js.map +1 -1
  483. package/lib/esm/BackendTypes.d.ts +12 -12
  484. package/lib/esm/BackendTypes.js +8 -8
  485. package/lib/esm/BackendTypes.js.map +1 -1
  486. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  487. package/lib/esm/BackgroundMapProvider.js +64 -64
  488. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  489. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  490. package/lib/esm/BackgroundMapSettings.js +152 -152
  491. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  492. package/lib/esm/Base64EncodedString.d.ts +32 -32
  493. package/lib/esm/Base64EncodedString.js +63 -63
  494. package/lib/esm/Base64EncodedString.js.map +1 -1
  495. package/lib/esm/BlobReader.d.ts +31 -31
  496. package/lib/esm/BlobReader.js +79 -79
  497. package/lib/esm/BlobReader.js.map +1 -1
  498. package/lib/esm/BriefcaseTypes.d.ts +191 -191
  499. package/lib/esm/BriefcaseTypes.js +92 -92
  500. package/lib/esm/BriefcaseTypes.js.map +1 -1
  501. package/lib/esm/Camera.d.ts +42 -42
  502. package/lib/esm/Camera.js +58 -58
  503. package/lib/esm/Camera.js.map +1 -1
  504. package/lib/esm/ChangedElements.d.ts +85 -85
  505. package/lib/esm/ChangedElements.js +20 -20
  506. package/lib/esm/ChangedElements.js.map +1 -1
  507. package/lib/esm/ChangedEntities.d.ts +45 -45
  508. package/lib/esm/ChangedEntities.js +8 -8
  509. package/lib/esm/ChangedEntities.js.map +1 -1
  510. package/lib/esm/ChangesetProps.d.ts +98 -98
  511. package/lib/esm/ChangesetProps.js +19 -19
  512. package/lib/esm/ChangesetProps.js.map +1 -1
  513. package/lib/esm/ClipStyle.d.ts +89 -89
  514. package/lib/esm/ClipStyle.js +118 -118
  515. package/lib/esm/ClipStyle.js.map +1 -1
  516. package/lib/esm/CloudStorage.d.ts +62 -62
  517. package/lib/esm/CloudStorage.js +109 -109
  518. package/lib/esm/CloudStorage.js.map +1 -1
  519. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  520. package/lib/esm/CloudStorageTileCache.js +62 -62
  521. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  522. package/lib/esm/Code.d.ts +277 -277
  523. package/lib/esm/Code.js +264 -264
  524. package/lib/esm/Code.js.map +1 -1
  525. package/lib/esm/ColorByName.d.ts +161 -161
  526. package/lib/esm/ColorByName.js +166 -166
  527. package/lib/esm/ColorByName.js.map +1 -1
  528. package/lib/esm/ColorDef.d.ts +208 -208
  529. package/lib/esm/ColorDef.js +567 -567
  530. package/lib/esm/ColorDef.js.map +1 -1
  531. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  532. package/lib/esm/CommonLoggerCategory.js +23 -23
  533. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  534. package/lib/esm/ConcurrentQuery.d.ts +421 -421
  535. package/lib/esm/ConcurrentQuery.js +545 -545
  536. package/lib/esm/ConcurrentQuery.js.map +1 -1
  537. package/lib/esm/ContextRealityModel.d.ts +303 -303
  538. package/lib/esm/ContextRealityModel.js +368 -368
  539. package/lib/esm/ContextRealityModel.js.map +1 -1
  540. package/lib/esm/DisplayStyleSettings.d.ts +588 -588
  541. package/lib/esm/DisplayStyleSettings.js +980 -980
  542. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  543. package/lib/esm/ECSchemaProps.d.ts +39 -39
  544. package/lib/esm/ECSchemaProps.js +8 -8
  545. package/lib/esm/ECSchemaProps.js.map +1 -1
  546. package/lib/esm/ECSqlReader.d.ts +70 -70
  547. package/lib/esm/ECSqlReader.js +275 -275
  548. package/lib/esm/ECSqlReader.js.map +1 -1
  549. package/lib/esm/ECSqlTypes.d.ts +128 -128
  550. package/lib/esm/ECSqlTypes.js +185 -185
  551. package/lib/esm/ECSqlTypes.js.map +1 -1
  552. package/lib/esm/ElementMesh.d.ts +39 -39
  553. package/lib/esm/ElementMesh.js +52 -52
  554. package/lib/esm/ElementMesh.js.map +1 -1
  555. package/lib/esm/ElementProps.d.ts +483 -483
  556. package/lib/esm/ElementProps.js +92 -92
  557. package/lib/esm/ElementProps.js.map +1 -1
  558. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  559. package/lib/esm/EmphasizeElementsProps.js +22 -22
  560. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  561. package/lib/esm/EntityProps.d.ts +177 -177
  562. package/lib/esm/EntityProps.js +108 -108
  563. package/lib/esm/EntityProps.js.map +1 -1
  564. package/lib/esm/EntityReference.d.ts +51 -51
  565. package/lib/esm/EntityReference.js +52 -52
  566. package/lib/esm/EntityReference.js.map +1 -1
  567. package/lib/esm/Environment.d.ts +61 -61
  568. package/lib/esm/Environment.js +69 -69
  569. package/lib/esm/Environment.js.map +1 -1
  570. package/lib/esm/FeatureIndex.d.ts +39 -39
  571. package/lib/esm/FeatureIndex.js +57 -57
  572. package/lib/esm/FeatureIndex.js.map +1 -1
  573. package/lib/esm/FeatureSymbology.d.ts +444 -444
  574. package/lib/esm/FeatureSymbology.js +609 -609
  575. package/lib/esm/FeatureSymbology.js.map +1 -1
  576. package/lib/esm/FeatureTable.d.ts +248 -248
  577. package/lib/esm/FeatureTable.js +462 -462
  578. package/lib/esm/FeatureTable.js.map +1 -1
  579. package/lib/esm/Fonts.d.ts +51 -51
  580. package/lib/esm/Fonts.js +49 -49
  581. package/lib/esm/Fonts.js.map +1 -1
  582. package/lib/esm/Frustum.d.ts +114 -114
  583. package/lib/esm/Frustum.js +288 -288
  584. package/lib/esm/Frustum.js.map +1 -1
  585. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  586. package/lib/esm/GeoCoordinateServices.js +76 -76
  587. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  588. package/lib/esm/GeometryContainment.d.ts +28 -28
  589. package/lib/esm/GeometryContainment.js +8 -8
  590. package/lib/esm/GeometryContainment.js.map +1 -1
  591. package/lib/esm/GeometryParams.d.ts +130 -130
  592. package/lib/esm/GeometryParams.js +170 -170
  593. package/lib/esm/GeometryParams.js.map +1 -1
  594. package/lib/esm/GeometrySummary.d.ts +45 -45
  595. package/lib/esm/GeometrySummary.js +20 -20
  596. package/lib/esm/GeometrySummary.js.map +1 -1
  597. package/lib/esm/Gradient.d.ts +139 -139
  598. package/lib/esm/Gradient.js +452 -452
  599. package/lib/esm/Gradient.js.map +1 -1
  600. package/lib/esm/GraphicParams.d.ts +58 -58
  601. package/lib/esm/GraphicParams.js +81 -81
  602. package/lib/esm/GraphicParams.js.map +1 -1
  603. package/lib/esm/GroundPlane.d.ts +52 -52
  604. package/lib/esm/GroundPlane.js +60 -60
  605. package/lib/esm/GroundPlane.js.map +1 -1
  606. package/lib/esm/HSLColor.d.ts +20 -20
  607. package/lib/esm/HSLColor.js +28 -28
  608. package/lib/esm/HSLColor.js.map +1 -1
  609. package/lib/esm/HSVColor.d.ts +30 -30
  610. package/lib/esm/HSVColor.js +55 -55
  611. package/lib/esm/HSVColor.js.map +1 -1
  612. package/lib/esm/HiddenLine.d.ts +97 -97
  613. package/lib/esm/HiddenLine.js +159 -159
  614. package/lib/esm/HiddenLine.js.map +1 -1
  615. package/lib/esm/Hilite.d.ts +50 -50
  616. package/lib/esm/Hilite.js +61 -61
  617. package/lib/esm/Hilite.js.map +1 -1
  618. package/lib/esm/IModel.d.ts +358 -358
  619. package/lib/esm/IModel.js +342 -342
  620. package/lib/esm/IModel.js.map +1 -1
  621. package/lib/esm/IModelError.d.ts +42 -42
  622. package/lib/esm/IModelError.js +56 -56
  623. package/lib/esm/IModelError.js.map +1 -1
  624. package/lib/esm/IModelVersion.d.ts +68 -68
  625. package/lib/esm/IModelVersion.js +75 -75
  626. package/lib/esm/IModelVersion.js.map +1 -1
  627. package/lib/esm/Image.d.ts +86 -86
  628. package/lib/esm/Image.js +120 -120
  629. package/lib/esm/Image.js.map +1 -1
  630. package/lib/esm/IpcAppProps.d.ts +141 -141
  631. package/lib/esm/IpcAppProps.js +19 -19
  632. package/lib/esm/IpcAppProps.js.map +1 -1
  633. package/lib/esm/LightSettings.d.ts +224 -224
  634. package/lib/esm/LightSettings.js +301 -301
  635. package/lib/esm/LightSettings.js.map +1 -1
  636. package/lib/esm/LinePixels.d.ts +34 -34
  637. package/lib/esm/LinePixels.js +39 -39
  638. package/lib/esm/LinePixels.js.map +1 -1
  639. package/lib/esm/Localization.d.ts +113 -113
  640. package/lib/esm/Localization.js +29 -29
  641. package/lib/esm/Localization.js.map +1 -1
  642. package/lib/esm/MapImagerySettings.d.ts +62 -62
  643. package/lib/esm/MapImagerySettings.js +76 -76
  644. package/lib/esm/MapImagerySettings.js.map +1 -1
  645. package/lib/esm/MapLayerSettings.d.ts +272 -272
  646. package/lib/esm/MapLayerSettings.js +403 -403
  647. package/lib/esm/MapLayerSettings.js.map +1 -1
  648. package/lib/esm/MassProperties.d.ts +64 -64
  649. package/lib/esm/MassProperties.js +20 -20
  650. package/lib/esm/MassProperties.js.map +1 -1
  651. package/lib/esm/MaterialProps.d.ts +153 -153
  652. package/lib/esm/MaterialProps.js +32 -32
  653. package/lib/esm/MaterialProps.js.map +1 -1
  654. package/lib/esm/ModelClipGroup.d.ts +67 -67
  655. package/lib/esm/ModelClipGroup.js +93 -93
  656. package/lib/esm/ModelClipGroup.js.map +1 -1
  657. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  658. package/lib/esm/ModelGeometryChanges.js +80 -80
  659. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  660. package/lib/esm/ModelProps.d.ts +67 -67
  661. package/lib/esm/ModelProps.js +8 -8
  662. package/lib/esm/ModelProps.js.map +1 -1
  663. package/lib/esm/NativeAppProps.d.ts +122 -122
  664. package/lib/esm/NativeAppProps.js +27 -27
  665. package/lib/esm/NativeAppProps.js.map +1 -1
  666. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  667. package/lib/esm/OctEncodedNormal.js +93 -93
  668. package/lib/esm/OctEncodedNormal.js.map +1 -1
  669. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  670. package/lib/esm/PlanProjectionSettings.js +59 -59
  671. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  672. package/lib/esm/PlanarClipMask.d.ts +177 -177
  673. package/lib/esm/PlanarClipMask.js +132 -132
  674. package/lib/esm/PlanarClipMask.js.map +1 -1
  675. package/lib/esm/QPoint.d.ts +479 -479
  676. package/lib/esm/QPoint.js +815 -815
  677. package/lib/esm/QPoint.js.map +1 -1
  678. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  679. package/lib/esm/RealityDataAccessProps.js +16 -16
  680. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  681. package/lib/esm/RealityModelDisplaySettings.d.ts +183 -183
  682. package/lib/esm/RealityModelDisplaySettings.js +137 -137
  683. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  684. package/lib/esm/Render.d.ts +89 -89
  685. package/lib/esm/Render.js +165 -165
  686. package/lib/esm/Render.js.map +1 -1
  687. package/lib/esm/RenderMaterial.d.ts +58 -58
  688. package/lib/esm/RenderMaterial.js +72 -72
  689. package/lib/esm/RenderMaterial.js.map +1 -1
  690. package/lib/esm/RenderSchedule.d.ts +543 -543
  691. package/lib/esm/RenderSchedule.js +999 -999
  692. package/lib/esm/RenderTexture.d.ts +70 -70
  693. package/lib/esm/RenderTexture.js +55 -55
  694. package/lib/esm/RenderTexture.js.map +1 -1
  695. package/lib/esm/RgbColor.d.ts +47 -47
  696. package/lib/esm/RgbColor.js +73 -73
  697. package/lib/esm/RgbColor.js.map +1 -1
  698. package/lib/esm/RpcInterface.d.ts +33 -33
  699. package/lib/esm/RpcInterface.js +133 -133
  700. package/lib/esm/RpcInterface.js.map +1 -1
  701. package/lib/esm/RpcManager.d.ts +40 -40
  702. package/lib/esm/RpcManager.js +51 -51
  703. package/lib/esm/RpcManager.js.map +1 -1
  704. package/lib/esm/SessionProps.d.ts +16 -16
  705. package/lib/esm/SessionProps.js +8 -8
  706. package/lib/esm/SessionProps.js.map +1 -1
  707. package/lib/esm/SkyBox.d.ts +215 -215
  708. package/lib/esm/SkyBox.js +203 -203
  709. package/lib/esm/SkyBox.js.map +1 -1
  710. package/lib/esm/Snapping.d.ts +49 -49
  711. package/lib/esm/Snapping.js +8 -8
  712. package/lib/esm/Snapping.js.map +1 -1
  713. package/lib/esm/SolarCalculate.d.ts +27 -27
  714. package/lib/esm/SolarCalculate.js +204 -204
  715. package/lib/esm/SolarCalculate.js.map +1 -1
  716. package/lib/esm/SolarShadows.d.ts +35 -35
  717. package/lib/esm/SolarShadows.js +58 -58
  718. package/lib/esm/SolarShadows.js.map +1 -1
  719. package/lib/esm/SpatialClassification.d.ts +208 -208
  720. package/lib/esm/SpatialClassification.js +334 -334
  721. package/lib/esm/SpatialClassification.js.map +1 -1
  722. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  723. package/lib/esm/SubCategoryAppearance.js +92 -92
  724. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  725. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  726. package/lib/esm/SubCategoryOverride.js +100 -100
  727. package/lib/esm/SubCategoryOverride.js.map +1 -1
  728. package/lib/esm/TerrainSettings.d.ts +82 -82
  729. package/lib/esm/TerrainSettings.js +98 -98
  730. package/lib/esm/TerrainSettings.js.map +1 -1
  731. package/lib/esm/TextureMapping.d.ts +118 -118
  732. package/lib/esm/TextureMapping.js +170 -170
  733. package/lib/esm/TextureMapping.js.map +1 -1
  734. package/lib/esm/TextureProps.d.ts +65 -65
  735. package/lib/esm/TextureProps.js +25 -25
  736. package/lib/esm/TextureProps.js.map +1 -1
  737. package/lib/esm/ThematicDisplay.d.ts +230 -230
  738. package/lib/esm/ThematicDisplay.js +337 -337
  739. package/lib/esm/ThematicDisplay.js.map +1 -1
  740. package/lib/esm/Thumbnail.d.ts +26 -26
  741. package/lib/esm/Thumbnail.js +8 -8
  742. package/lib/esm/Thumbnail.js.map +1 -1
  743. package/lib/esm/TileProps.d.ts +82 -82
  744. package/lib/esm/TileProps.js +25 -25
  745. package/lib/esm/TileProps.js.map +1 -1
  746. package/lib/esm/Tween.d.ts +191 -191
  747. package/lib/esm/Tween.js +565 -565
  748. package/lib/esm/Tween.js.map +1 -1
  749. package/lib/esm/TxnAction.d.ts +21 -21
  750. package/lib/esm/TxnAction.js +26 -26
  751. package/lib/esm/TxnAction.js.map +1 -1
  752. package/lib/esm/ViewDetails.d.ts +125 -125
  753. package/lib/esm/ViewDetails.js +161 -161
  754. package/lib/esm/ViewDetails.js.map +1 -1
  755. package/lib/esm/ViewFlags.d.ts +287 -287
  756. package/lib/esm/ViewFlags.js +364 -364
  757. package/lib/esm/ViewFlags.js.map +1 -1
  758. package/lib/esm/ViewProps.d.ts +205 -205
  759. package/lib/esm/ViewProps.js +8 -8
  760. package/lib/esm/ViewProps.js.map +1 -1
  761. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  762. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  763. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  764. package/lib/esm/core-common.d.ts +245 -245
  765. package/lib/esm/core-common.js +249 -249
  766. package/lib/esm/core-common.js.map +1 -1
  767. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  768. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  769. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  770. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  771. package/lib/esm/domains/GenericElementProps.js +8 -8
  772. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  773. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  774. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  775. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  776. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  777. package/lib/esm/geometry/AreaPattern.js +201 -201
  778. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  779. package/lib/esm/geometry/BoundingSphere.d.ts +27 -27
  780. package/lib/esm/geometry/BoundingSphere.js +40 -40
  781. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  782. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  783. package/lib/esm/geometry/Cartographic.js +340 -340
  784. package/lib/esm/geometry/Cartographic.js.map +1 -1
  785. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  786. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  787. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  788. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  789. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  790. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  791. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  792. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  793. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  794. package/lib/esm/geometry/FrustumPlanes.d.ts +81 -81
  795. package/lib/esm/geometry/FrustumPlanes.js +189 -189
  796. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  797. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  798. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  799. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  800. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  801. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  802. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  803. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  804. package/lib/esm/geometry/GeometryStream.js +464 -464
  805. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  806. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  807. package/lib/esm/geometry/ImageGraphic.js +93 -93
  808. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  809. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  810. package/lib/esm/geometry/LineStyle.js +126 -126
  811. package/lib/esm/geometry/LineStyle.js.map +1 -1
  812. package/lib/esm/geometry/Placement.d.ts +95 -95
  813. package/lib/esm/geometry/Placement.js +126 -126
  814. package/lib/esm/geometry/Placement.js.map +1 -1
  815. package/lib/esm/geometry/Projection.d.ts +251 -251
  816. package/lib/esm/geometry/Projection.js +192 -192
  817. package/lib/esm/geometry/Projection.js.map +1 -1
  818. package/lib/esm/geometry/TextString.d.ts +55 -55
  819. package/lib/esm/geometry/TextString.js +61 -61
  820. package/lib/esm/geometry/TextString.js.map +1 -1
  821. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  822. package/lib/esm/ipc/IpcSession.js +23 -23
  823. package/lib/esm/ipc/IpcSession.js.map +1 -1
  824. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  825. package/lib/esm/ipc/IpcSocket.js +12 -12
  826. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  827. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  828. package/lib/esm/ipc/IpcWebSocket.js +145 -145
  829. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  830. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  831. package/lib/esm/ipc/IpcWebSocketTransport.js +156 -156
  832. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  833. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  834. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  835. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  836. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +99 -99
  837. package/lib/esm/rpc/IModelReadRpcInterface.js +117 -117
  838. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  839. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  840. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  841. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  842. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  843. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  844. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  845. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  846. package/lib/esm/rpc/TestRpcManager.js +36 -36
  847. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  848. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  849. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  850. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  851. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  852. package/lib/esm/rpc/core/RpcConfiguration.js +184 -184
  853. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  854. package/lib/esm/rpc/core/RpcConstants.d.ts +90 -90
  855. package/lib/esm/rpc/core/RpcConstants.js +106 -106
  856. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  857. package/lib/esm/rpc/core/RpcControl.d.ts +54 -54
  858. package/lib/esm/rpc/core/RpcControl.js +138 -138
  859. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  860. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  861. package/lib/esm/rpc/core/RpcInvocation.js +254 -254
  862. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  863. package/lib/esm/rpc/core/RpcMarshaling.d.ts +35 -35
  864. package/lib/esm/rpc/core/RpcMarshaling.js +152 -152
  865. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  866. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  867. package/lib/esm/rpc/core/RpcOperation.js +129 -129
  868. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  869. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  870. package/lib/esm/rpc/core/RpcPendingQueue.js +91 -91
  871. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  872. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  873. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  874. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  875. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  876. package/lib/esm/rpc/core/RpcPush.js +119 -119
  877. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  878. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  879. package/lib/esm/rpc/core/RpcRegistry.js +195 -195
  880. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  881. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  882. package/lib/esm/rpc/core/RpcRequest.js +473 -473
  883. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  884. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  885. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  886. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  887. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  888. package/lib/esm/rpc/core/RpcRoutingToken.js +20 -20
  889. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  890. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  891. package/lib/esm/rpc/core/RpcSessionInvocation.js +56 -56
  892. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  893. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  894. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  895. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  896. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  897. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +139 -139
  898. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  899. package/lib/esm/rpc/web/OpenAPI.d.ts +140 -140
  900. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  901. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  902. package/lib/esm/rpc/web/RpcMultipart.d.ts +35 -35
  903. package/lib/esm/rpc/web/RpcMultipart.js +46 -46
  904. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  905. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +28 -28
  906. package/lib/esm/rpc/web/WebAppRpcLogging.js +136 -136
  907. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  908. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +89 -89
  909. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  910. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  911. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +67 -67
  912. package/lib/esm/rpc/web/WebAppRpcRequest.js +235 -235
  913. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  914. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  915. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +369 -369
  916. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  917. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  918. package/lib/esm/tile/B3dmTileIO.js +62 -62
  919. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  920. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  921. package/lib/esm/tile/CompositeTileIO.js +22 -22
  922. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  923. package/lib/esm/tile/ElementGraphics.d.ts +145 -145
  924. package/lib/esm/tile/ElementGraphics.js +8 -8
  925. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  926. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  927. package/lib/esm/tile/GltfTileIO.js +105 -105
  928. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  929. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  930. package/lib/esm/tile/I3dmTileIO.js +36 -36
  931. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  932. package/lib/esm/tile/IModelTileIO.d.ts +77 -77
  933. package/lib/esm/tile/IModelTileIO.js +92 -92
  934. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  935. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  936. package/lib/esm/tile/PntsTileIO.js +22 -22
  937. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  938. package/lib/esm/tile/TileIO.d.ts +66 -66
  939. package/lib/esm/tile/TileIO.js +110 -110
  940. package/lib/esm/tile/TileIO.js.map +1 -1
  941. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  942. package/lib/esm/tile/TileMetadata.js +661 -661
  943. package/lib/esm/tile/TileMetadata.js.map +1 -1
  944. package/lib/esm/tile/Tileset3dSchema.d.ts +96 -96
  945. package/lib/esm/tile/Tileset3dSchema.js +8 -8
  946. package/lib/esm/tile/Tileset3dSchema.js.map +1 -1
  947. package/package.json +7 -7
@@ -1 +1 @@
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: Id64String;\r\n public readonly subCategoryId: Id64String;\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/** A [[Feature]] with a modelId identifying the model containing the feature.\r\n * Typically produced from a PackedFeature.\r\n * Prior to the introduction of MultiModelPackedFeatureTable, every (Packed)FeatureTable was associated with exactly one model.\r\n * Now, each feature in a table may be associated with a different model.\r\n * @internal\r\n */\r\nexport interface ModelFeature {\r\n modelId: Id64String;\r\n elementId: Id64String;\r\n subCategoryId: Id64String;\r\n geometryClass: GeometryClass;\r\n}\r\n\r\n/** @internal */\r\nexport namespace ModelFeature {\r\n export function create(): ModelFeature {\r\n return {\r\n modelId: Id64.invalid,\r\n elementId: Id64.invalid,\r\n subCategoryId: Id64.invalid,\r\n geometryClass: GeometryClass.Primary,\r\n };\r\n }\r\n\r\n export function isDefined(feature: ModelFeature): boolean {\r\n return !Id64.isInvalid(feature.modelId) || !Id64.isInvalid(feature.elementId) || !Id64.isInvalid(feature.subCategoryId) || feature.geometryClass !== GeometryClass.Primary;\r\n }\r\n\r\n export function unpack(packed: PackedFeature, result: ModelFeature, unpackedModelId?: Id64String): ModelFeature {\r\n result.modelId = unpackedModelId ?? Id64.fromUint32PairObject(packed.modelId);\r\n result.elementId = Id64.fromUint32PairObject(packed.elementId);\r\n result.subCategoryId = Id64.fromUint32PairObject(packed.subCategoryId);\r\n result.geometryClass = packed.geometryClass;\r\n return result;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface PackedFeature {\r\n modelId: Id64.Uint32Pair;\r\n elementId: Id64.Uint32Pair;\r\n subCategoryId: Id64.Uint32Pair;\r\n geometryClass: GeometryClass;\r\n animationNodeId: number;\r\n}\r\n\r\n/** @internal */\r\nexport interface PackedFeatureWithIndex extends PackedFeature {\r\n index: number;\r\n}\r\n\r\n/** @internal */\r\nexport namespace PackedFeature {\r\n export function create(): PackedFeature {\r\n const pair = { upper: 0, lower: 0 };\r\n return {\r\n modelId: { ...pair },\r\n elementId: { ...pair },\r\n subCategoryId: { ...pair },\r\n geometryClass: GeometryClass.Primary,\r\n animationNodeId: 0,\r\n };\r\n }\r\n\r\n export function createWithIndex(): PackedFeatureWithIndex {\r\n const result = create() as PackedFeatureWithIndex;\r\n result.index = 0;\r\n return result;\r\n }\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/** Interface common to PackedFeatureTable and MultiModelPackedFeatureTable.\r\n * @internal\r\n */\r\nexport interface RenderFeatureTable {\r\n /** The \"model Id\" of the tile tree containing the tile from which this feature table originated.\r\n * It may be a transient Id if, for example, the tile tree represents a reality model or represents the geometry of multiple\r\n * persistent models batched together.\r\n */\r\n readonly batchModelId: Id64String;\r\n /** Split representation of batchModelId, so we're not constantly having to parse the string. */\r\n readonly batchModelIdPair: Id64.Uint32Pair;\r\n /** The number of features in the table; equivalently, one more than the largest feature index. */\r\n readonly numFeatures: number;\r\n /** Strictly for reporting memory usage. */\r\n readonly byteLength: number;\r\n readonly type: BatchType;\r\n\r\n /** Get the feature at the specified index. Caller is responsible for validating featureIndex less than numFeatures. */\r\n getFeature(featureIndex: number, result: ModelFeature): ModelFeature;\r\n /** Find the specified feature. Returns undefined if featureIndex >= numFeatures. */\r\n findFeature(featureIndex: number, result: ModelFeature): ModelFeature | undefined;\r\n /** Find the Id of the element of the specified feature. */\r\n findElementId(featureIndex: number): Id64String | undefined;\r\n /** Get the Id of the element of the specified feature as a pair of 32-bit integers, asserting that feature index < numFeatures. */\r\n getElementIdPair(featureIndex: number, out: Id64.Uint32Pair): Id64.Uint32Pair;\r\n /** Get the feature at the specified index. Caller is responsible for validating featureIndex less than numFeatures. */\r\n getPackedFeature(featureIndex: number, result: PackedFeature): PackedFeature;\r\n /** Get an object that provides iteration over all features, in order. `output` is reused as the current value on each iteration. */\r\n iterable(output: PackedFeatureWithIndex): Iterable<PackedFeatureWithIndex>;\r\n}\r\n\r\nconst scratchPackedFeature = PackedFeature.create();\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 implements RenderFeatureTable {\r\n private readonly _data: Uint32Array;\r\n public readonly batchModelId: Id64String;\r\n public readonly batchModelIdPair: Id64.Uint32Pair;\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, type: BatchType, animationNodeIds?: Uint8Array | Uint16Array | Uint32Array) {\r\n this._data = data;\r\n this.batchModelId = modelId;\r\n this.batchModelIdPair = Id64.getUint32Pair(modelId);\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 = ModelFeature.isDefined(this.getFeature(0, ModelFeature.create()));\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(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.type);\r\n }\r\n\r\n /** Retrieve the Feature associated with the specified index. */\r\n public getFeature(featureIndex: number, result: ModelFeature): ModelFeature {\r\n const packed = this.getPackedFeature(featureIndex, scratchPackedFeature);\r\n return ModelFeature.unpack(packed, result, this.batchModelId);\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, result: ModelFeature): ModelFeature | undefined {\r\n return featureIndex < this.numFeatures ? this.getFeature(featureIndex, result) : 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, result: PackedFeature): PackedFeature {\r\n assert(featureIndex < this.numFeatures);\r\n\r\n const index32 = 3 * featureIndex;\r\n result.elementId.lower = this._data[index32];\r\n result.elementId.upper = this._data[index32 + 1];\r\n\r\n const subCatIndexAndClass = this._data[index32 + 2];\r\n result.geometryClass = (subCatIndexAndClass >>> 24) & 0xff;\r\n\r\n let subCatIndex = (subCatIndexAndClass & 0x00ffffff) >>> 0;\r\n subCatIndex = subCatIndex * 2 + this._subCategoriesOffset;\r\n result.subCategoryId.lower = this._data[subCatIndex];\r\n result.subCategoryId.upper = this._data[subCatIndex + 1];\r\n\r\n result.animationNodeId = this.getAnimationNodeId(featureIndex);\r\n result.modelId.lower = this.batchModelIdPair.lower;\r\n result.modelId.upper = this.batchModelIdPair.upper;\r\n\r\n return result;\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 getUniform(result: ModelFeature): ModelFeature | undefined {\r\n return this.isUniform ? this.getFeature(0, result) : undefined;\r\n }\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.numFeatures, this.batchModelId);\r\n const feature = ModelFeature.create();\r\n for (let i = 0; i < this.numFeatures; i++) {\r\n this.getFeature(i, feature);\r\n table.insertWithIndex(new Feature(feature.elementId, feature.subCategoryId, feature.geometryClass), i);\r\n }\r\n\r\n return table;\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 public * iterator(output: PackedFeatureWithIndex): Iterator<PackedFeatureWithIndex> {\r\n for (let i = 0; i < this.numFeatures; i++) {\r\n this.getPackedFeature(i, output);\r\n output.index = i;\r\n yield output;\r\n }\r\n }\r\n\r\n public iterable(output: PackedFeatureWithIndex): Iterable<PackedFeatureWithIndex> {\r\n return {\r\n [Symbol.iterator]: () => this.iterator(output),\r\n };\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\r\ninterface PackedFeatureModelEntry {\r\n lastFeatureIndex: number;\r\n idLower: number;\r\n idUpper: number;\r\n}\r\n\r\nconst scratchPackedFeatureModelEntry = { lastFeatureIndex: -1, idLower: -1, idUpper: -1 };\r\n\r\n/** A table of model Ids associated with a [[MultiModelPackedFeatureTable]].\r\n * The feature indices in the packed feature table are grouped together by model, such that the first N features belong to model 1, the next M features to model 2, and so on.\r\n * The model table itself consists of one entry per model, where each entry looks like:\r\n * indexOfLastFeatureInModel: u32\r\n * modelId: u64\r\n * The modelId associated with a feature can therefore be derived by finding the entry in the model table with the highest indexOfLastFeatureInModel no greater than the feature index.\r\n * This lookup can be optimized using binary search.\r\n * Moreover, while iterating the feature table in sequence, the model table can be iterated in parallel so that no per-feature lookup of model Id is required.\r\n * @internal\r\n */\r\nexport class PackedFeatureModelTable {\r\n private readonly _data: Uint32Array;\r\n\r\n public constructor(data: Uint32Array) {\r\n this._data = data;\r\n assert(this._data.length % 3 === 0);\r\n }\r\n\r\n /** The number of models in the table. */\r\n public get length(): number {\r\n return this._data.length / 3;\r\n }\r\n\r\n public get byteLength(): number {\r\n return this._data.byteLength;\r\n }\r\n\r\n private getLastFeatureIndex(modelIndex: number): number {\r\n return this._data[modelIndex * 3];\r\n }\r\n\r\n public getEntry(modelIndex: number, result: PackedFeatureModelEntry): PackedFeatureModelEntry {\r\n if (modelIndex >= this.length) {\r\n result.idLower = result.idUpper = 0;\r\n result.lastFeatureIndex = Number.MAX_SAFE_INTEGER;\r\n return result;\r\n }\r\n\r\n const index = modelIndex * 3;\r\n result.lastFeatureIndex = this._data[index + 0];\r\n result.idLower = this._data[index + 1];\r\n result.idUpper = this._data[index + 2];\r\n return result;\r\n }\r\n\r\n /** Get the Id of the model associated with the specified feature, or an invalid Id if the feature is not associated with any model. */\r\n public getModelIdPair(featureIndex: number, result?: Id64.Uint32Pair): Id64.Uint32Pair {\r\n if (!result)\r\n result = { lower: 0, upper: 0 };\r\n else\r\n result.lower = result.upper = 0;\r\n\r\n let first = 0;\r\n const last = this.length;\r\n let count = last;\r\n while (count > 0) {\r\n const step = Math.floor(count / 2);\r\n const mid = first + step;\r\n const lastFeatureIndex = this.getLastFeatureIndex(mid);\r\n if (featureIndex > lastFeatureIndex) {\r\n first = mid + 1;\r\n count -= step + 1;\r\n } else {\r\n count = step;\r\n }\r\n }\r\n\r\n if (first < last) {\r\n result.lower = this._data[first * 3 + 1];\r\n result.upper = this._data[first * 3 + 2];\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\n/** A PackedFeatureTable with a PackedFeatureModelTable appended to it, capable of storing features belonging to more than one model.\r\n * @internal\r\n */\r\nexport class MultiModelPackedFeatureTable implements RenderFeatureTable {\r\n private readonly _features: PackedFeatureTable;\r\n private readonly _models: PackedFeatureModelTable;\r\n\r\n public constructor(features: PackedFeatureTable, models: PackedFeatureModelTable) {\r\n this._features = features;\r\n this._models = models;\r\n }\r\n\r\n public static create(data: Uint32Array, batchModelId: Id64String, numFeatures: number, type: BatchType, numSubCategories: number): MultiModelPackedFeatureTable {\r\n const modelTableOffset = 3 * numFeatures + 2 * numSubCategories;\r\n const featureData = data.subarray(0, modelTableOffset);\r\n const features = new PackedFeatureTable(featureData, batchModelId, numFeatures, type);\r\n\r\n const modelData = data.subarray(modelTableOffset);\r\n const models = new PackedFeatureModelTable(modelData);\r\n\r\n return new MultiModelPackedFeatureTable(features, models);\r\n }\r\n\r\n public get batchModelId() { return this._features.batchModelId; }\r\n public get batchModelIdPair() { return this._features.batchModelIdPair; }\r\n public get numFeatures() { return this._features.numFeatures; }\r\n public get type() { return this._features.type; }\r\n\r\n public get byteLength() {\r\n return this._features.byteLength + this._models.byteLength;\r\n }\r\n\r\n public getPackedFeature(featureIndex: number, result: PackedFeature): PackedFeature {\r\n this._features.getPackedFeature(featureIndex, result);\r\n this._models.getModelIdPair(featureIndex, result.modelId);\r\n return result;\r\n }\r\n\r\n public getFeature(featureIndex: number, result: ModelFeature): ModelFeature {\r\n const packed = this.getPackedFeature(featureIndex, scratchPackedFeature);\r\n return ModelFeature.unpack(packed, result);\r\n }\r\n\r\n public findFeature(featureIndex: number, result: ModelFeature): ModelFeature | undefined {\r\n return featureIndex < this.numFeatures ? this.getFeature(featureIndex, result) : undefined;\r\n }\r\n\r\n public getElementIdPair(featureIndex: number, out: Id64.Uint32Pair): Id64.Uint32Pair {\r\n return this._features.getElementIdPair(featureIndex, out);\r\n }\r\n\r\n public findElementId(featureIndex: number): Id64String | undefined {\r\n return this._features.findElementId(featureIndex);\r\n }\r\n\r\n public * iterator(output: PackedFeatureWithIndex): Iterator<PackedFeatureWithIndex> {\r\n // Rather than perform a binary search on the model table to find each feature's model Id, traverse the model table in parallel with the feature table.\r\n let modelIndex = 0;\r\n const modelEntry = this._models.getEntry(modelIndex, scratchPackedFeatureModelEntry);\r\n\r\n for (let featureIndex = 0; featureIndex < this.numFeatures; featureIndex++) {\r\n if (featureIndex > modelEntry.lastFeatureIndex)\r\n this._models.getEntry(++modelIndex, modelEntry);\r\n\r\n this._features.getPackedFeature(featureIndex, output);\r\n output.modelId.lower = modelEntry.idLower;\r\n output.modelId.upper = modelEntry.idUpper;\r\n output.index = featureIndex;\r\n yield output;\r\n }\r\n }\r\n\r\n public iterable(output: PackedFeatureWithIndex): Iterable<PackedFeatureWithIndex> {\r\n return {\r\n [Symbol.iterator]: () => this.iterator(output),\r\n };\r\n }\r\n}\r\n"]}
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: Id64String;\n public readonly subCategoryId: Id64String;\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/** A [[Feature]] with a modelId identifying the model containing the feature.\n * Typically produced from a PackedFeature.\n * Prior to the introduction of MultiModelPackedFeatureTable, every (Packed)FeatureTable was associated with exactly one model.\n * Now, each feature in a table may be associated with a different model.\n * @internal\n */\nexport interface ModelFeature {\n modelId: Id64String;\n elementId: Id64String;\n subCategoryId: Id64String;\n geometryClass: GeometryClass;\n}\n\n/** @internal */\nexport namespace ModelFeature {\n export function create(): ModelFeature {\n return {\n modelId: Id64.invalid,\n elementId: Id64.invalid,\n subCategoryId: Id64.invalid,\n geometryClass: GeometryClass.Primary,\n };\n }\n\n export function isDefined(feature: ModelFeature): boolean {\n return !Id64.isInvalid(feature.modelId) || !Id64.isInvalid(feature.elementId) || !Id64.isInvalid(feature.subCategoryId) || feature.geometryClass !== GeometryClass.Primary;\n }\n\n export function unpack(packed: PackedFeature, result: ModelFeature, unpackedModelId?: Id64String): ModelFeature {\n result.modelId = unpackedModelId ?? Id64.fromUint32PairObject(packed.modelId);\n result.elementId = Id64.fromUint32PairObject(packed.elementId);\n result.subCategoryId = Id64.fromUint32PairObject(packed.subCategoryId);\n result.geometryClass = packed.geometryClass;\n return result;\n }\n}\n\n/** @internal */\nexport interface PackedFeature {\n modelId: Id64.Uint32Pair;\n elementId: Id64.Uint32Pair;\n subCategoryId: Id64.Uint32Pair;\n geometryClass: GeometryClass;\n animationNodeId: number;\n}\n\n/** @internal */\nexport interface PackedFeatureWithIndex extends PackedFeature {\n index: number;\n}\n\n/** @internal */\nexport namespace PackedFeature {\n export function create(): PackedFeature {\n const pair = { upper: 0, lower: 0 };\n return {\n modelId: { ...pair },\n elementId: { ...pair },\n subCategoryId: { ...pair },\n geometryClass: GeometryClass.Primary,\n animationNodeId: 0,\n };\n }\n\n export function createWithIndex(): PackedFeatureWithIndex {\n const result = create() as PackedFeatureWithIndex;\n result.index = 0;\n return result;\n }\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/** Interface common to PackedFeatureTable and MultiModelPackedFeatureTable.\n * @internal\n */\nexport interface RenderFeatureTable {\n /** The \"model Id\" of the tile tree containing the tile from which this feature table originated.\n * It may be a transient Id if, for example, the tile tree represents a reality model or represents the geometry of multiple\n * persistent models batched together.\n */\n readonly batchModelId: Id64String;\n /** Split representation of batchModelId, so we're not constantly having to parse the string. */\n readonly batchModelIdPair: Id64.Uint32Pair;\n /** The number of features in the table; equivalently, one more than the largest feature index. */\n readonly numFeatures: number;\n /** Strictly for reporting memory usage. */\n readonly byteLength: number;\n readonly type: BatchType;\n\n /** Get the feature at the specified index. Caller is responsible for validating featureIndex less than numFeatures. */\n getFeature(featureIndex: number, result: ModelFeature): ModelFeature;\n /** Find the specified feature. Returns undefined if featureIndex >= numFeatures. */\n findFeature(featureIndex: number, result: ModelFeature): ModelFeature | undefined;\n /** Find the Id of the element of the specified feature. */\n findElementId(featureIndex: number): Id64String | undefined;\n /** Get the Id of the element of the specified feature as a pair of 32-bit integers, asserting that feature index < numFeatures. */\n getElementIdPair(featureIndex: number, out: Id64.Uint32Pair): Id64.Uint32Pair;\n /** Get the feature at the specified index. Caller is responsible for validating featureIndex less than numFeatures. */\n getPackedFeature(featureIndex: number, result: PackedFeature): PackedFeature;\n /** Get an object that provides iteration over all features, in order. `output` is reused as the current value on each iteration. */\n iterable(output: PackedFeatureWithIndex): Iterable<PackedFeatureWithIndex>;\n}\n\nconst scratchPackedFeature = PackedFeature.create();\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 implements RenderFeatureTable {\n private readonly _data: Uint32Array;\n public readonly batchModelId: Id64String;\n public readonly batchModelIdPair: Id64.Uint32Pair;\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, type: BatchType, animationNodeIds?: Uint8Array | Uint16Array | Uint32Array) {\n this._data = data;\n this.batchModelId = modelId;\n this.batchModelIdPair = Id64.getUint32Pair(modelId);\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 = ModelFeature.isDefined(this.getFeature(0, ModelFeature.create()));\n break;\n default:\n this.anyDefined = true;\n break;\n }\n\n assert(this._data.length >= this._subCategoriesOffset);\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.type);\n }\n\n /** Retrieve the Feature associated with the specified index. */\n public getFeature(featureIndex: number, result: ModelFeature): ModelFeature {\n const packed = this.getPackedFeature(featureIndex, scratchPackedFeature);\n return ModelFeature.unpack(packed, result, this.batchModelId);\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, result: ModelFeature): ModelFeature | undefined {\n return featureIndex < this.numFeatures ? this.getFeature(featureIndex, result) : 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, result: PackedFeature): PackedFeature {\n assert(featureIndex < this.numFeatures);\n\n const index32 = 3 * featureIndex;\n result.elementId.lower = this._data[index32];\n result.elementId.upper = this._data[index32 + 1];\n\n const subCatIndexAndClass = this._data[index32 + 2];\n result.geometryClass = (subCatIndexAndClass >>> 24) & 0xff;\n\n let subCatIndex = (subCatIndexAndClass & 0x00ffffff) >>> 0;\n subCatIndex = subCatIndex * 2 + this._subCategoriesOffset;\n result.subCategoryId.lower = this._data[subCatIndex];\n result.subCategoryId.upper = this._data[subCatIndex + 1];\n\n result.animationNodeId = this.getAnimationNodeId(featureIndex);\n result.modelId.lower = this.batchModelIdPair.lower;\n result.modelId.upper = this.batchModelIdPair.upper;\n\n return result;\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 getUniform(result: ModelFeature): ModelFeature | undefined {\n return this.isUniform ? this.getFeature(0, result) : undefined;\n }\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.numFeatures, this.batchModelId);\n const feature = ModelFeature.create();\n for (let i = 0; i < this.numFeatures; i++) {\n this.getFeature(i, feature);\n table.insertWithIndex(new Feature(feature.elementId, feature.subCategoryId, feature.geometryClass), i);\n }\n\n return table;\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 public * iterator(output: PackedFeatureWithIndex): Iterator<PackedFeatureWithIndex> {\n for (let i = 0; i < this.numFeatures; i++) {\n this.getPackedFeature(i, output);\n output.index = i;\n yield output;\n }\n }\n\n public iterable(output: PackedFeatureWithIndex): Iterable<PackedFeatureWithIndex> {\n return {\n [Symbol.iterator]: () => this.iterator(output),\n };\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\ninterface PackedFeatureModelEntry {\n lastFeatureIndex: number;\n idLower: number;\n idUpper: number;\n}\n\nconst scratchPackedFeatureModelEntry = { lastFeatureIndex: -1, idLower: -1, idUpper: -1 };\n\n/** A table of model Ids associated with a [[MultiModelPackedFeatureTable]].\n * The feature indices in the packed feature table are grouped together by model, such that the first N features belong to model 1, the next M features to model 2, and so on.\n * The model table itself consists of one entry per model, where each entry looks like:\n * indexOfLastFeatureInModel: u32\n * modelId: u64\n * The modelId associated with a feature can therefore be derived by finding the entry in the model table with the highest indexOfLastFeatureInModel no greater than the feature index.\n * This lookup can be optimized using binary search.\n * Moreover, while iterating the feature table in sequence, the model table can be iterated in parallel so that no per-feature lookup of model Id is required.\n * @internal\n */\nexport class PackedFeatureModelTable {\n private readonly _data: Uint32Array;\n\n public constructor(data: Uint32Array) {\n this._data = data;\n assert(this._data.length % 3 === 0);\n }\n\n /** The number of models in the table. */\n public get length(): number {\n return this._data.length / 3;\n }\n\n public get byteLength(): number {\n return this._data.byteLength;\n }\n\n private getLastFeatureIndex(modelIndex: number): number {\n return this._data[modelIndex * 3];\n }\n\n public getEntry(modelIndex: number, result: PackedFeatureModelEntry): PackedFeatureModelEntry {\n if (modelIndex >= this.length) {\n result.idLower = result.idUpper = 0;\n result.lastFeatureIndex = Number.MAX_SAFE_INTEGER;\n return result;\n }\n\n const index = modelIndex * 3;\n result.lastFeatureIndex = this._data[index + 0];\n result.idLower = this._data[index + 1];\n result.idUpper = this._data[index + 2];\n return result;\n }\n\n /** Get the Id of the model associated with the specified feature, or an invalid Id if the feature is not associated with any model. */\n public getModelIdPair(featureIndex: number, result?: Id64.Uint32Pair): Id64.Uint32Pair {\n if (!result)\n result = { lower: 0, upper: 0 };\n else\n result.lower = result.upper = 0;\n\n let first = 0;\n const last = this.length;\n let count = last;\n while (count > 0) {\n const step = Math.floor(count / 2);\n const mid = first + step;\n const lastFeatureIndex = this.getLastFeatureIndex(mid);\n if (featureIndex > lastFeatureIndex) {\n first = mid + 1;\n count -= step + 1;\n } else {\n count = step;\n }\n }\n\n if (first < last) {\n result.lower = this._data[first * 3 + 1];\n result.upper = this._data[first * 3 + 2];\n }\n\n return result;\n }\n}\n\n/** A PackedFeatureTable with a PackedFeatureModelTable appended to it, capable of storing features belonging to more than one model.\n * @internal\n */\nexport class MultiModelPackedFeatureTable implements RenderFeatureTable {\n private readonly _features: PackedFeatureTable;\n private readonly _models: PackedFeatureModelTable;\n\n public constructor(features: PackedFeatureTable, models: PackedFeatureModelTable) {\n this._features = features;\n this._models = models;\n }\n\n public static create(data: Uint32Array, batchModelId: Id64String, numFeatures: number, type: BatchType, numSubCategories: number): MultiModelPackedFeatureTable {\n const modelTableOffset = 3 * numFeatures + 2 * numSubCategories;\n const featureData = data.subarray(0, modelTableOffset);\n const features = new PackedFeatureTable(featureData, batchModelId, numFeatures, type);\n\n const modelData = data.subarray(modelTableOffset);\n const models = new PackedFeatureModelTable(modelData);\n\n return new MultiModelPackedFeatureTable(features, models);\n }\n\n public get batchModelId() { return this._features.batchModelId; }\n public get batchModelIdPair() { return this._features.batchModelIdPair; }\n public get numFeatures() { return this._features.numFeatures; }\n public get type() { return this._features.type; }\n\n public get byteLength() {\n return this._features.byteLength + this._models.byteLength;\n }\n\n public getPackedFeature(featureIndex: number, result: PackedFeature): PackedFeature {\n this._features.getPackedFeature(featureIndex, result);\n this._models.getModelIdPair(featureIndex, result.modelId);\n return result;\n }\n\n public getFeature(featureIndex: number, result: ModelFeature): ModelFeature {\n const packed = this.getPackedFeature(featureIndex, scratchPackedFeature);\n return ModelFeature.unpack(packed, result);\n }\n\n public findFeature(featureIndex: number, result: ModelFeature): ModelFeature | undefined {\n return featureIndex < this.numFeatures ? this.getFeature(featureIndex, result) : undefined;\n }\n\n public getElementIdPair(featureIndex: number, out: Id64.Uint32Pair): Id64.Uint32Pair {\n return this._features.getElementIdPair(featureIndex, out);\n }\n\n public findElementId(featureIndex: number): Id64String | undefined {\n return this._features.findElementId(featureIndex);\n }\n\n public * iterator(output: PackedFeatureWithIndex): Iterator<PackedFeatureWithIndex> {\n // Rather than perform a binary search on the model table to find each feature's model Id, traverse the model table in parallel with the feature table.\n let modelIndex = 0;\n const modelEntry = this._models.getEntry(modelIndex, scratchPackedFeatureModelEntry);\n\n for (let featureIndex = 0; featureIndex < this.numFeatures; featureIndex++) {\n if (featureIndex > modelEntry.lastFeatureIndex)\n this._models.getEntry(++modelIndex, modelEntry);\n\n this._features.getPackedFeature(featureIndex, output);\n output.modelId.lower = modelEntry.idLower;\n output.modelId.upper = modelEntry.idUpper;\n output.index = featureIndex;\n yield output;\n }\n }\n\n public iterable(output: PackedFeatureWithIndex): Iterable<PackedFeatureWithIndex> {\n return {\n [Symbol.iterator]: () => this.iterator(output),\n };\n }\n}\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":["/*---------------------------------------------------------------------------------------------\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
+ {"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"]}