@itwin/core-common 3.4.0-dev.62 → 3.4.0-dev.63

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 (926) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  3. package/lib/cjs/AmbientOcclusion.js +55 -55
  4. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  5. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  6. package/lib/cjs/AnalysisStyle.js +165 -165
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/AuthorizationClient.d.ts +11 -11
  9. package/lib/cjs/AuthorizationClient.js +9 -9
  10. package/lib/cjs/AuthorizationClient.js.map +1 -1
  11. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  12. package/lib/cjs/BackgroundMapProvider.js +68 -68
  13. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  14. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  15. package/lib/cjs/BackgroundMapSettings.js +156 -156
  16. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  17. package/lib/cjs/Base64EncodedString.d.ts +30 -30
  18. package/lib/cjs/Base64EncodedString.js +56 -56
  19. package/lib/cjs/Base64EncodedString.js.map +1 -1
  20. package/lib/cjs/BlobReader.d.ts +31 -31
  21. package/lib/cjs/BlobReader.js +84 -84
  22. package/lib/cjs/BlobReader.js.map +1 -1
  23. package/lib/cjs/BriefcaseTypes.d.ts +189 -189
  24. package/lib/cjs/BriefcaseTypes.js +95 -95
  25. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  26. package/lib/cjs/Camera.d.ts +42 -42
  27. package/lib/cjs/Camera.js +62 -62
  28. package/lib/cjs/Camera.js.map +1 -1
  29. package/lib/cjs/ChangedElements.d.ts +83 -83
  30. package/lib/cjs/ChangedElements.js +21 -21
  31. package/lib/cjs/ChangedElements.js.map +1 -1
  32. package/lib/cjs/ChangedEntities.d.ts +45 -45
  33. package/lib/cjs/ChangedEntities.js +9 -9
  34. package/lib/cjs/ChangedEntities.js.map +1 -1
  35. package/lib/cjs/ChangesetProps.d.ts +98 -98
  36. package/lib/cjs/ChangesetProps.js +22 -22
  37. package/lib/cjs/ChangesetProps.js.map +1 -1
  38. package/lib/cjs/ClipStyle.d.ts +89 -89
  39. package/lib/cjs/ClipStyle.js +123 -123
  40. package/lib/cjs/ClipStyle.js.map +1 -1
  41. package/lib/cjs/CloudStorage.d.ts +62 -62
  42. package/lib/cjs/CloudStorage.js +113 -113
  43. package/lib/cjs/CloudStorage.js.map +1 -1
  44. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  45. package/lib/cjs/CloudStorageTileCache.js +66 -66
  46. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  47. package/lib/cjs/Code.d.ts +256 -256
  48. package/lib/cjs/Code.js +281 -281
  49. package/lib/cjs/Code.js.map +1 -1
  50. package/lib/cjs/ColorByName.d.ts +161 -161
  51. package/lib/cjs/ColorByName.js +169 -169
  52. package/lib/cjs/ColorByName.js.map +1 -1
  53. package/lib/cjs/ColorDef.d.ts +208 -208
  54. package/lib/cjs/ColorDef.js +571 -571
  55. package/lib/cjs/ColorDef.js.map +1 -1
  56. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  57. package/lib/cjs/CommonLoggerCategory.js +26 -26
  58. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  59. package/lib/cjs/ConcurrentQuery.d.ts +241 -241
  60. package/lib/cjs/ConcurrentQuery.js +380 -380
  61. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  62. package/lib/cjs/ContextRealityModel.d.ts +255 -255
  63. package/lib/cjs/ContextRealityModel.js +325 -325
  64. package/lib/cjs/ContextRealityModel.js.map +1 -1
  65. package/lib/cjs/DisplayStyleSettings.d.ts +552 -552
  66. package/lib/cjs/DisplayStyleSettings.js +951 -951
  67. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  68. package/lib/cjs/ECSchemaProps.d.ts +39 -39
  69. package/lib/cjs/ECSchemaProps.js +9 -9
  70. package/lib/cjs/ECSchemaProps.js.map +1 -1
  71. package/lib/cjs/ECSqlReader.d.ts +70 -70
  72. package/lib/cjs/ECSqlReader.js +280 -280
  73. package/lib/cjs/ECSqlReader.js.map +1 -1
  74. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  75. package/lib/cjs/ECSqlTypes.js +189 -189
  76. package/lib/cjs/ECSqlTypes.js.map +1 -1
  77. package/lib/cjs/ElementProps.d.ts +476 -476
  78. package/lib/cjs/ElementProps.js +99 -99
  79. package/lib/cjs/ElementProps.js.map +1 -1
  80. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  81. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  82. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  83. package/lib/cjs/EntityProps.d.ts +176 -176
  84. package/lib/cjs/EntityProps.js +112 -112
  85. package/lib/cjs/EntityProps.js.map +1 -1
  86. package/lib/cjs/Environment.d.ts +61 -61
  87. package/lib/cjs/Environment.js +73 -73
  88. package/lib/cjs/Environment.js.map +1 -1
  89. package/lib/cjs/FeatureGates.d.ts +31 -31
  90. package/lib/cjs/FeatureGates.js +55 -55
  91. package/lib/cjs/FeatureGates.js.map +1 -1
  92. package/lib/cjs/FeatureIndex.d.ts +39 -39
  93. package/lib/cjs/FeatureIndex.js +63 -63
  94. package/lib/cjs/FeatureIndex.js.map +1 -1
  95. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  96. package/lib/cjs/FeatureSymbology.js +614 -614
  97. package/lib/cjs/FeatureSymbology.js.map +1 -1
  98. package/lib/cjs/FeatureTable.d.ts +141 -141
  99. package/lib/cjs/FeatureTable.js +278 -278
  100. package/lib/cjs/FeatureTable.js.map +1 -1
  101. package/lib/cjs/Fonts.d.ts +51 -51
  102. package/lib/cjs/Fonts.js +53 -53
  103. package/lib/cjs/Fonts.js.map +1 -1
  104. package/lib/cjs/Frustum.d.ts +114 -114
  105. package/lib/cjs/Frustum.js +292 -292
  106. package/lib/cjs/Frustum.js.map +1 -1
  107. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  108. package/lib/cjs/GeoCoordinateServices.js +80 -80
  109. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  110. package/lib/cjs/GeometryContainment.d.ts +28 -28
  111. package/lib/cjs/GeometryContainment.js +9 -9
  112. package/lib/cjs/GeometryContainment.js.map +1 -1
  113. package/lib/cjs/GeometryParams.d.ts +130 -130
  114. package/lib/cjs/GeometryParams.js +174 -174
  115. package/lib/cjs/GeometryParams.js.map +1 -1
  116. package/lib/cjs/GeometrySummary.d.ts +45 -45
  117. package/lib/cjs/GeometrySummary.js +23 -23
  118. package/lib/cjs/GeometrySummary.js.map +1 -1
  119. package/lib/cjs/Gradient.d.ts +139 -139
  120. package/lib/cjs/Gradient.js +455 -455
  121. package/lib/cjs/Gradient.js.map +1 -1
  122. package/lib/cjs/GraphicParams.d.ts +58 -58
  123. package/lib/cjs/GraphicParams.js +85 -85
  124. package/lib/cjs/GraphicParams.js.map +1 -1
  125. package/lib/cjs/GroundPlane.d.ts +52 -52
  126. package/lib/cjs/GroundPlane.js +64 -64
  127. package/lib/cjs/GroundPlane.js.map +1 -1
  128. package/lib/cjs/HSLColor.d.ts +20 -20
  129. package/lib/cjs/HSLColor.js +32 -32
  130. package/lib/cjs/HSLColor.js.map +1 -1
  131. package/lib/cjs/HSVColor.d.ts +30 -30
  132. package/lib/cjs/HSVColor.js +59 -59
  133. package/lib/cjs/HSVColor.js.map +1 -1
  134. package/lib/cjs/HiddenLine.d.ts +97 -97
  135. package/lib/cjs/HiddenLine.js +162 -162
  136. package/lib/cjs/HiddenLine.js.map +1 -1
  137. package/lib/cjs/Hilite.d.ts +50 -50
  138. package/lib/cjs/Hilite.js +64 -64
  139. package/lib/cjs/Hilite.js.map +1 -1
  140. package/lib/cjs/IModel.d.ts +359 -359
  141. package/lib/cjs/IModel.js +347 -347
  142. package/lib/cjs/IModel.js.map +1 -1
  143. package/lib/cjs/IModelError.d.ts +36 -36
  144. package/lib/cjs/IModelError.js +72 -72
  145. package/lib/cjs/IModelError.js.map +1 -1
  146. package/lib/cjs/IModelVersion.d.ts +68 -68
  147. package/lib/cjs/IModelVersion.js +79 -79
  148. package/lib/cjs/IModelVersion.js.map +1 -1
  149. package/lib/cjs/Image.d.ts +86 -86
  150. package/lib/cjs/Image.js +128 -128
  151. package/lib/cjs/Image.js.map +1 -1
  152. package/lib/cjs/IpcAppProps.d.ts +124 -124
  153. package/lib/cjs/IpcAppProps.js +18 -18
  154. package/lib/cjs/IpcAppProps.js.map +1 -1
  155. package/lib/cjs/LightSettings.d.ts +224 -224
  156. package/lib/cjs/LightSettings.js +309 -309
  157. package/lib/cjs/LightSettings.js.map +1 -1
  158. package/lib/cjs/LinePixels.d.ts +34 -34
  159. package/lib/cjs/LinePixels.js +42 -42
  160. package/lib/cjs/LinePixels.js.map +1 -1
  161. package/lib/cjs/Localization.d.ts +111 -111
  162. package/lib/cjs/Localization.js +26 -26
  163. package/lib/cjs/Localization.js.map +1 -1
  164. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  165. package/lib/cjs/MapImagerySettings.js +80 -80
  166. package/lib/cjs/MapImagerySettings.js.map +1 -1
  167. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  168. package/lib/cjs/MapLayerSettings.js +411 -411
  169. package/lib/cjs/MapLayerSettings.js.map +1 -1
  170. package/lib/cjs/MassProperties.d.ts +64 -64
  171. package/lib/cjs/MassProperties.js +23 -23
  172. package/lib/cjs/MassProperties.js.map +1 -1
  173. package/lib/cjs/MaterialProps.d.ts +118 -118
  174. package/lib/cjs/MaterialProps.js +23 -23
  175. package/lib/cjs/MaterialProps.js.map +1 -1
  176. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  177. package/lib/cjs/ModelClipGroup.js +98 -98
  178. package/lib/cjs/ModelClipGroup.js.map +1 -1
  179. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  180. package/lib/cjs/ModelGeometryChanges.js +83 -83
  181. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  182. package/lib/cjs/ModelProps.d.ts +67 -66
  183. package/lib/cjs/ModelProps.d.ts.map +1 -1
  184. package/lib/cjs/ModelProps.js +9 -9
  185. package/lib/cjs/ModelProps.js.map +1 -1
  186. package/lib/cjs/NativeAppProps.d.ts +122 -122
  187. package/lib/cjs/NativeAppProps.js +30 -30
  188. package/lib/cjs/NativeAppProps.js.map +1 -1
  189. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  190. package/lib/cjs/OctEncodedNormal.js +98 -98
  191. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  192. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  193. package/lib/cjs/PlanProjectionSettings.js +63 -63
  194. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  195. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  196. package/lib/cjs/PlanarClipMask.js +136 -136
  197. package/lib/cjs/PlanarClipMask.js.map +1 -1
  198. package/lib/cjs/QPoint.d.ts +479 -479
  199. package/lib/cjs/QPoint.js +826 -826
  200. package/lib/cjs/QPoint.js.map +1 -1
  201. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  202. package/lib/cjs/RealityDataAccessProps.js +19 -19
  203. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  204. package/lib/cjs/Render.d.ts +89 -89
  205. package/lib/cjs/Render.js +177 -177
  206. package/lib/cjs/Render.js.map +1 -1
  207. package/lib/cjs/RenderMaterial.d.ts +58 -58
  208. package/lib/cjs/RenderMaterial.js +76 -76
  209. package/lib/cjs/RenderMaterial.js.map +1 -1
  210. package/lib/cjs/RenderSchedule.d.ts +540 -540
  211. package/lib/cjs/RenderSchedule.js +1000 -1000
  212. package/lib/cjs/RenderTexture.d.ts +70 -70
  213. package/lib/cjs/RenderTexture.js +59 -59
  214. package/lib/cjs/RenderTexture.js.map +1 -1
  215. package/lib/cjs/RgbColor.d.ts +39 -39
  216. package/lib/cjs/RgbColor.js +67 -67
  217. package/lib/cjs/RgbColor.js.map +1 -1
  218. package/lib/cjs/RpcInterface.d.ts +33 -33
  219. package/lib/cjs/RpcInterface.js +137 -137
  220. package/lib/cjs/RpcInterface.js.map +1 -1
  221. package/lib/cjs/RpcManager.d.ts +40 -40
  222. package/lib/cjs/RpcManager.js +55 -55
  223. package/lib/cjs/RpcManager.js.map +1 -1
  224. package/lib/cjs/SessionProps.d.ts +16 -16
  225. package/lib/cjs/SessionProps.js +9 -9
  226. package/lib/cjs/SessionProps.js.map +1 -1
  227. package/lib/cjs/SkyBox.d.ts +215 -215
  228. package/lib/cjs/SkyBox.js +210 -210
  229. package/lib/cjs/SkyBox.js.map +1 -1
  230. package/lib/cjs/Snapping.d.ts +49 -49
  231. package/lib/cjs/Snapping.js +9 -9
  232. package/lib/cjs/Snapping.js.map +1 -1
  233. package/lib/cjs/SolarCalculate.d.ts +27 -27
  234. package/lib/cjs/SolarCalculate.js +211 -211
  235. package/lib/cjs/SolarCalculate.js.map +1 -1
  236. package/lib/cjs/SolarShadows.d.ts +35 -35
  237. package/lib/cjs/SolarShadows.js +62 -62
  238. package/lib/cjs/SolarShadows.js.map +1 -1
  239. package/lib/cjs/SpatialClassification.d.ts +208 -208
  240. package/lib/cjs/SpatialClassification.js +340 -340
  241. package/lib/cjs/SpatialClassification.js.map +1 -1
  242. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  243. package/lib/cjs/SubCategoryAppearance.js +96 -96
  244. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  245. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  246. package/lib/cjs/SubCategoryOverride.js +104 -104
  247. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  248. package/lib/cjs/TerrainSettings.d.ts +82 -82
  249. package/lib/cjs/TerrainSettings.js +102 -102
  250. package/lib/cjs/TerrainSettings.js.map +1 -1
  251. package/lib/cjs/TextureMapping.d.ts +101 -101
  252. package/lib/cjs/TextureMapping.js +174 -174
  253. package/lib/cjs/TextureMapping.js.map +1 -1
  254. package/lib/cjs/TextureProps.d.ts +65 -65
  255. package/lib/cjs/TextureProps.js +28 -28
  256. package/lib/cjs/TextureProps.js.map +1 -1
  257. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  258. package/lib/cjs/ThematicDisplay.js +344 -344
  259. package/lib/cjs/ThematicDisplay.js.map +1 -1
  260. package/lib/cjs/Thumbnail.d.ts +26 -26
  261. package/lib/cjs/Thumbnail.js +9 -9
  262. package/lib/cjs/Thumbnail.js.map +1 -1
  263. package/lib/cjs/TileProps.d.ts +82 -82
  264. package/lib/cjs/TileProps.js +29 -29
  265. package/lib/cjs/TileProps.js.map +1 -1
  266. package/lib/cjs/Tween.d.ts +191 -191
  267. package/lib/cjs/Tween.js +570 -570
  268. package/lib/cjs/Tween.js.map +1 -1
  269. package/lib/cjs/TxnAction.d.ts +21 -21
  270. package/lib/cjs/TxnAction.js +29 -29
  271. package/lib/cjs/TxnAction.js.map +1 -1
  272. package/lib/cjs/ViewDetails.d.ts +125 -125
  273. package/lib/cjs/ViewDetails.js +158 -158
  274. package/lib/cjs/ViewDetails.js.map +1 -1
  275. package/lib/cjs/ViewFlags.d.ts +291 -291
  276. package/lib/cjs/ViewFlags.js +368 -368
  277. package/lib/cjs/ViewFlags.js.map +1 -1
  278. package/lib/cjs/ViewProps.d.ts +205 -205
  279. package/lib/cjs/ViewProps.js +9 -9
  280. package/lib/cjs/ViewProps.js.map +1 -1
  281. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  282. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  283. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  284. package/lib/cjs/core-common.d.ts +240 -240
  285. package/lib/cjs/core-common.js +256 -256
  286. package/lib/cjs/core-common.js.map +1 -1
  287. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  288. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  289. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  290. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  291. package/lib/cjs/domains/GenericElementProps.js +9 -9
  292. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  293. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  294. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  295. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  296. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  297. package/lib/cjs/geometry/AreaPattern.js +204 -204
  298. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  299. package/lib/cjs/geometry/BoundingSphere.d.ts +14 -14
  300. package/lib/cjs/geometry/BoundingSphere.js +30 -30
  301. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  302. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  303. package/lib/cjs/geometry/Cartographic.js +345 -345
  304. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  305. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  306. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  307. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  308. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  309. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  310. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  311. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  312. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  313. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  314. package/lib/cjs/geometry/FrustumPlanes.d.ts +32 -32
  315. package/lib/cjs/geometry/FrustumPlanes.js +132 -132
  316. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  317. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  318. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  319. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  320. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  321. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  322. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  323. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  324. package/lib/cjs/geometry/GeometryStream.js +469 -469
  325. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  326. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  327. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  328. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  329. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  330. package/lib/cjs/geometry/LineStyle.js +129 -129
  331. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  332. package/lib/cjs/geometry/Placement.d.ts +95 -95
  333. package/lib/cjs/geometry/Placement.js +131 -131
  334. package/lib/cjs/geometry/Placement.js.map +1 -1
  335. package/lib/cjs/geometry/Projection.d.ts +251 -251
  336. package/lib/cjs/geometry/Projection.js +198 -198
  337. package/lib/cjs/geometry/Projection.js.map +1 -1
  338. package/lib/cjs/geometry/TextString.d.ts +55 -55
  339. package/lib/cjs/geometry/TextString.js +65 -65
  340. package/lib/cjs/geometry/TextString.js.map +1 -1
  341. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  342. package/lib/cjs/ipc/IpcSession.js +27 -27
  343. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  344. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  345. package/lib/cjs/ipc/IpcSocket.js +16 -16
  346. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  347. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  348. package/lib/cjs/ipc/IpcWebSocket.js +151 -151
  349. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  350. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  351. package/lib/cjs/ipc/IpcWebSocketTransport.js +158 -158
  352. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  353. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  354. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  355. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  356. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +75 -75
  357. package/lib/cjs/rpc/IModelReadRpcInterface.js +115 -115
  358. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  359. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  360. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  361. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  362. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  363. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  364. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  365. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  366. package/lib/cjs/rpc/TestRpcManager.js +39 -39
  367. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  368. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  369. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  370. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  371. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  372. package/lib/cjs/rpc/core/RpcConfiguration.js +192 -192
  373. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  374. package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -85
  375. package/lib/cjs/rpc/core/RpcConstants.js +103 -103
  376. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  377. package/lib/cjs/rpc/core/RpcControl.d.ts +52 -52
  378. package/lib/cjs/rpc/core/RpcControl.js +149 -149
  379. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  380. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  381. package/lib/cjs/rpc/core/RpcInvocation.js +257 -257
  382. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  383. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +36 -36
  384. package/lib/cjs/rpc/core/RpcMarshaling.js +153 -153
  385. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  386. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  387. package/lib/cjs/rpc/core/RpcOperation.js +133 -133
  388. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  389. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  390. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
  391. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  392. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  393. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  394. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  395. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  396. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  397. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  398. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  399. package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
  400. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  401. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  402. package/lib/cjs/rpc/core/RpcRequest.js +477 -477
  403. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  404. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  405. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  406. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  407. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  408. package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
  409. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  410. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  411. package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
  412. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  413. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  414. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  415. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  416. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  417. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -142
  418. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  419. package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
  420. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  421. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  422. package/lib/cjs/rpc/web/RpcMultipart.d.ts +31 -31
  423. package/lib/cjs/rpc/web/RpcMultipart.js +45 -45
  424. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  425. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +17 -17
  426. package/lib/cjs/rpc/web/WebAppRpcLogging.js +140 -140
  427. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  428. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  429. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  430. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  431. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +71 -71
  432. package/lib/cjs/rpc/web/WebAppRpcRequest.js +374 -374
  433. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  434. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  435. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +359 -359
  436. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  437. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  438. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  439. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  440. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  441. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  442. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  443. package/lib/cjs/tile/ElementGraphics.d.ts +134 -134
  444. package/lib/cjs/tile/ElementGraphics.js +9 -9
  445. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  446. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  447. package/lib/cjs/tile/GltfTileIO.js +109 -109
  448. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  449. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  450. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  451. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  452. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  453. package/lib/cjs/tile/IModelTileIO.js +95 -95
  454. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  455. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  456. package/lib/cjs/tile/PntsTileIO.js +26 -26
  457. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  458. package/lib/cjs/tile/TileIO.d.ts +66 -66
  459. package/lib/cjs/tile/TileIO.js +118 -118
  460. package/lib/cjs/tile/TileIO.js.map +1 -1
  461. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  462. package/lib/cjs/tile/TileMetadata.js +676 -676
  463. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  464. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  465. package/lib/esm/AmbientOcclusion.js +52 -52
  466. package/lib/esm/AmbientOcclusion.js.map +1 -1
  467. package/lib/esm/AnalysisStyle.d.ts +134 -134
  468. package/lib/esm/AnalysisStyle.js +159 -159
  469. package/lib/esm/AnalysisStyle.js.map +1 -1
  470. package/lib/esm/AuthorizationClient.d.ts +11 -11
  471. package/lib/esm/AuthorizationClient.js +8 -8
  472. package/lib/esm/AuthorizationClient.js.map +1 -1
  473. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  474. package/lib/esm/BackgroundMapProvider.js +64 -64
  475. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  476. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  477. package/lib/esm/BackgroundMapSettings.js +152 -152
  478. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  479. package/lib/esm/Base64EncodedString.d.ts +30 -30
  480. package/lib/esm/Base64EncodedString.js +53 -53
  481. package/lib/esm/Base64EncodedString.js.map +1 -1
  482. package/lib/esm/BlobReader.d.ts +31 -31
  483. package/lib/esm/BlobReader.js +79 -79
  484. package/lib/esm/BlobReader.js.map +1 -1
  485. package/lib/esm/BriefcaseTypes.d.ts +189 -189
  486. package/lib/esm/BriefcaseTypes.js +92 -92
  487. package/lib/esm/BriefcaseTypes.js.map +1 -1
  488. package/lib/esm/Camera.d.ts +42 -42
  489. package/lib/esm/Camera.js +58 -58
  490. package/lib/esm/Camera.js.map +1 -1
  491. package/lib/esm/ChangedElements.d.ts +83 -83
  492. package/lib/esm/ChangedElements.js +18 -18
  493. package/lib/esm/ChangedElements.js.map +1 -1
  494. package/lib/esm/ChangedEntities.d.ts +45 -45
  495. package/lib/esm/ChangedEntities.js +8 -8
  496. package/lib/esm/ChangedEntities.js.map +1 -1
  497. package/lib/esm/ChangesetProps.d.ts +98 -98
  498. package/lib/esm/ChangesetProps.js +19 -19
  499. package/lib/esm/ChangesetProps.js.map +1 -1
  500. package/lib/esm/ClipStyle.d.ts +89 -89
  501. package/lib/esm/ClipStyle.js +118 -118
  502. package/lib/esm/ClipStyle.js.map +1 -1
  503. package/lib/esm/CloudStorage.d.ts +62 -62
  504. package/lib/esm/CloudStorage.js +109 -109
  505. package/lib/esm/CloudStorage.js.map +1 -1
  506. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  507. package/lib/esm/CloudStorageTileCache.js +62 -62
  508. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  509. package/lib/esm/Code.d.ts +256 -256
  510. package/lib/esm/Code.js +276 -276
  511. package/lib/esm/Code.js.map +1 -1
  512. package/lib/esm/ColorByName.d.ts +161 -161
  513. package/lib/esm/ColorByName.js +166 -166
  514. package/lib/esm/ColorByName.js.map +1 -1
  515. package/lib/esm/ColorDef.d.ts +208 -208
  516. package/lib/esm/ColorDef.js +567 -567
  517. package/lib/esm/ColorDef.js.map +1 -1
  518. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  519. package/lib/esm/CommonLoggerCategory.js +23 -23
  520. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  521. package/lib/esm/ConcurrentQuery.d.ts +241 -241
  522. package/lib/esm/ConcurrentQuery.js +373 -373
  523. package/lib/esm/ConcurrentQuery.js.map +1 -1
  524. package/lib/esm/ContextRealityModel.d.ts +255 -255
  525. package/lib/esm/ContextRealityModel.js +320 -320
  526. package/lib/esm/ContextRealityModel.js.map +1 -1
  527. package/lib/esm/DisplayStyleSettings.d.ts +552 -552
  528. package/lib/esm/DisplayStyleSettings.js +946 -946
  529. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  530. package/lib/esm/ECSchemaProps.d.ts +39 -39
  531. package/lib/esm/ECSchemaProps.js +8 -8
  532. package/lib/esm/ECSchemaProps.js.map +1 -1
  533. package/lib/esm/ECSqlReader.d.ts +70 -70
  534. package/lib/esm/ECSqlReader.js +275 -275
  535. package/lib/esm/ECSqlReader.js.map +1 -1
  536. package/lib/esm/ECSqlTypes.d.ts +128 -128
  537. package/lib/esm/ECSqlTypes.js +185 -185
  538. package/lib/esm/ECSqlTypes.js.map +1 -1
  539. package/lib/esm/ElementProps.d.ts +476 -476
  540. package/lib/esm/ElementProps.js +92 -92
  541. package/lib/esm/ElementProps.js.map +1 -1
  542. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  543. package/lib/esm/EmphasizeElementsProps.js +22 -22
  544. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  545. package/lib/esm/EntityProps.d.ts +176 -176
  546. package/lib/esm/EntityProps.js +107 -107
  547. package/lib/esm/EntityProps.js.map +1 -1
  548. package/lib/esm/Environment.d.ts +61 -61
  549. package/lib/esm/Environment.js +69 -69
  550. package/lib/esm/Environment.js.map +1 -1
  551. package/lib/esm/FeatureGates.d.ts +31 -31
  552. package/lib/esm/FeatureGates.js +51 -51
  553. package/lib/esm/FeatureGates.js.map +1 -1
  554. package/lib/esm/FeatureIndex.d.ts +39 -39
  555. package/lib/esm/FeatureIndex.js +57 -57
  556. package/lib/esm/FeatureIndex.js.map +1 -1
  557. package/lib/esm/FeatureSymbology.d.ts +444 -444
  558. package/lib/esm/FeatureSymbology.js +609 -609
  559. package/lib/esm/FeatureSymbology.js.map +1 -1
  560. package/lib/esm/FeatureTable.d.ts +141 -141
  561. package/lib/esm/FeatureTable.js +272 -272
  562. package/lib/esm/FeatureTable.js.map +1 -1
  563. package/lib/esm/Fonts.d.ts +51 -51
  564. package/lib/esm/Fonts.js +49 -49
  565. package/lib/esm/Fonts.js.map +1 -1
  566. package/lib/esm/Frustum.d.ts +114 -114
  567. package/lib/esm/Frustum.js +288 -288
  568. package/lib/esm/Frustum.js.map +1 -1
  569. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  570. package/lib/esm/GeoCoordinateServices.js +76 -76
  571. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  572. package/lib/esm/GeometryContainment.d.ts +28 -28
  573. package/lib/esm/GeometryContainment.js +8 -8
  574. package/lib/esm/GeometryContainment.js.map +1 -1
  575. package/lib/esm/GeometryParams.d.ts +130 -130
  576. package/lib/esm/GeometryParams.js +170 -170
  577. package/lib/esm/GeometryParams.js.map +1 -1
  578. package/lib/esm/GeometrySummary.d.ts +45 -45
  579. package/lib/esm/GeometrySummary.js +20 -20
  580. package/lib/esm/GeometrySummary.js.map +1 -1
  581. package/lib/esm/Gradient.d.ts +139 -139
  582. package/lib/esm/Gradient.js +452 -452
  583. package/lib/esm/Gradient.js.map +1 -1
  584. package/lib/esm/GraphicParams.d.ts +58 -58
  585. package/lib/esm/GraphicParams.js +81 -81
  586. package/lib/esm/GraphicParams.js.map +1 -1
  587. package/lib/esm/GroundPlane.d.ts +52 -52
  588. package/lib/esm/GroundPlane.js +60 -60
  589. package/lib/esm/GroundPlane.js.map +1 -1
  590. package/lib/esm/HSLColor.d.ts +20 -20
  591. package/lib/esm/HSLColor.js +28 -28
  592. package/lib/esm/HSLColor.js.map +1 -1
  593. package/lib/esm/HSVColor.d.ts +30 -30
  594. package/lib/esm/HSVColor.js +55 -55
  595. package/lib/esm/HSVColor.js.map +1 -1
  596. package/lib/esm/HiddenLine.d.ts +97 -97
  597. package/lib/esm/HiddenLine.js +159 -159
  598. package/lib/esm/HiddenLine.js.map +1 -1
  599. package/lib/esm/Hilite.d.ts +50 -50
  600. package/lib/esm/Hilite.js +61 -61
  601. package/lib/esm/Hilite.js.map +1 -1
  602. package/lib/esm/IModel.d.ts +359 -359
  603. package/lib/esm/IModel.js +342 -342
  604. package/lib/esm/IModel.js.map +1 -1
  605. package/lib/esm/IModelError.d.ts +36 -36
  606. package/lib/esm/IModelError.js +55 -55
  607. package/lib/esm/IModelError.js.map +1 -1
  608. package/lib/esm/IModelVersion.d.ts +68 -68
  609. package/lib/esm/IModelVersion.js +75 -75
  610. package/lib/esm/IModelVersion.js.map +1 -1
  611. package/lib/esm/Image.d.ts +86 -86
  612. package/lib/esm/Image.js +120 -120
  613. package/lib/esm/Image.js.map +1 -1
  614. package/lib/esm/IpcAppProps.d.ts +124 -124
  615. package/lib/esm/IpcAppProps.js +15 -15
  616. package/lib/esm/IpcAppProps.js.map +1 -1
  617. package/lib/esm/LightSettings.d.ts +224 -224
  618. package/lib/esm/LightSettings.js +301 -301
  619. package/lib/esm/LightSettings.js.map +1 -1
  620. package/lib/esm/LinePixels.d.ts +34 -34
  621. package/lib/esm/LinePixels.js +39 -39
  622. package/lib/esm/LinePixels.js.map +1 -1
  623. package/lib/esm/Localization.d.ts +111 -111
  624. package/lib/esm/Localization.js +22 -22
  625. package/lib/esm/Localization.js.map +1 -1
  626. package/lib/esm/MapImagerySettings.d.ts +62 -62
  627. package/lib/esm/MapImagerySettings.js +76 -76
  628. package/lib/esm/MapImagerySettings.js.map +1 -1
  629. package/lib/esm/MapLayerSettings.d.ts +272 -272
  630. package/lib/esm/MapLayerSettings.js +403 -403
  631. package/lib/esm/MapLayerSettings.js.map +1 -1
  632. package/lib/esm/MassProperties.d.ts +64 -64
  633. package/lib/esm/MassProperties.js +20 -20
  634. package/lib/esm/MassProperties.js.map +1 -1
  635. package/lib/esm/MaterialProps.d.ts +118 -118
  636. package/lib/esm/MaterialProps.js +20 -20
  637. package/lib/esm/MaterialProps.js.map +1 -1
  638. package/lib/esm/ModelClipGroup.d.ts +67 -67
  639. package/lib/esm/ModelClipGroup.js +93 -93
  640. package/lib/esm/ModelClipGroup.js.map +1 -1
  641. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  642. package/lib/esm/ModelGeometryChanges.js +80 -80
  643. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  644. package/lib/esm/ModelProps.d.ts +67 -66
  645. package/lib/esm/ModelProps.d.ts.map +1 -1
  646. package/lib/esm/ModelProps.js +8 -8
  647. package/lib/esm/ModelProps.js.map +1 -1
  648. package/lib/esm/NativeAppProps.d.ts +122 -122
  649. package/lib/esm/NativeAppProps.js +27 -27
  650. package/lib/esm/NativeAppProps.js.map +1 -1
  651. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  652. package/lib/esm/OctEncodedNormal.js +93 -93
  653. package/lib/esm/OctEncodedNormal.js.map +1 -1
  654. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  655. package/lib/esm/PlanProjectionSettings.js +59 -59
  656. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  657. package/lib/esm/PlanarClipMask.d.ts +177 -177
  658. package/lib/esm/PlanarClipMask.js +132 -132
  659. package/lib/esm/PlanarClipMask.js.map +1 -1
  660. package/lib/esm/QPoint.d.ts +479 -479
  661. package/lib/esm/QPoint.js +815 -815
  662. package/lib/esm/QPoint.js.map +1 -1
  663. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  664. package/lib/esm/RealityDataAccessProps.js +16 -16
  665. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  666. package/lib/esm/Render.d.ts +89 -89
  667. package/lib/esm/Render.js +165 -165
  668. package/lib/esm/Render.js.map +1 -1
  669. package/lib/esm/RenderMaterial.d.ts +58 -58
  670. package/lib/esm/RenderMaterial.js +72 -72
  671. package/lib/esm/RenderMaterial.js.map +1 -1
  672. package/lib/esm/RenderSchedule.d.ts +540 -540
  673. package/lib/esm/RenderSchedule.js +997 -997
  674. package/lib/esm/RenderTexture.d.ts +70 -70
  675. package/lib/esm/RenderTexture.js +55 -55
  676. package/lib/esm/RenderTexture.js.map +1 -1
  677. package/lib/esm/RgbColor.d.ts +39 -39
  678. package/lib/esm/RgbColor.js +63 -63
  679. package/lib/esm/RgbColor.js.map +1 -1
  680. package/lib/esm/RpcInterface.d.ts +33 -33
  681. package/lib/esm/RpcInterface.js +133 -133
  682. package/lib/esm/RpcInterface.js.map +1 -1
  683. package/lib/esm/RpcManager.d.ts +40 -40
  684. package/lib/esm/RpcManager.js +51 -51
  685. package/lib/esm/RpcManager.js.map +1 -1
  686. package/lib/esm/SessionProps.d.ts +16 -16
  687. package/lib/esm/SessionProps.js +8 -8
  688. package/lib/esm/SessionProps.js.map +1 -1
  689. package/lib/esm/SkyBox.d.ts +215 -215
  690. package/lib/esm/SkyBox.js +203 -203
  691. package/lib/esm/SkyBox.js.map +1 -1
  692. package/lib/esm/Snapping.d.ts +49 -49
  693. package/lib/esm/Snapping.js +8 -8
  694. package/lib/esm/Snapping.js.map +1 -1
  695. package/lib/esm/SolarCalculate.d.ts +27 -27
  696. package/lib/esm/SolarCalculate.js +204 -204
  697. package/lib/esm/SolarCalculate.js.map +1 -1
  698. package/lib/esm/SolarShadows.d.ts +35 -35
  699. package/lib/esm/SolarShadows.js +58 -58
  700. package/lib/esm/SolarShadows.js.map +1 -1
  701. package/lib/esm/SpatialClassification.d.ts +208 -208
  702. package/lib/esm/SpatialClassification.js +334 -334
  703. package/lib/esm/SpatialClassification.js.map +1 -1
  704. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  705. package/lib/esm/SubCategoryAppearance.js +92 -92
  706. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  707. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  708. package/lib/esm/SubCategoryOverride.js +100 -100
  709. package/lib/esm/SubCategoryOverride.js.map +1 -1
  710. package/lib/esm/TerrainSettings.d.ts +82 -82
  711. package/lib/esm/TerrainSettings.js +98 -98
  712. package/lib/esm/TerrainSettings.js.map +1 -1
  713. package/lib/esm/TextureMapping.d.ts +101 -101
  714. package/lib/esm/TextureMapping.js +170 -170
  715. package/lib/esm/TextureMapping.js.map +1 -1
  716. package/lib/esm/TextureProps.d.ts +65 -65
  717. package/lib/esm/TextureProps.js +25 -25
  718. package/lib/esm/TextureProps.js.map +1 -1
  719. package/lib/esm/ThematicDisplay.d.ts +230 -230
  720. package/lib/esm/ThematicDisplay.js +337 -337
  721. package/lib/esm/ThematicDisplay.js.map +1 -1
  722. package/lib/esm/Thumbnail.d.ts +26 -26
  723. package/lib/esm/Thumbnail.js +8 -8
  724. package/lib/esm/Thumbnail.js.map +1 -1
  725. package/lib/esm/TileProps.d.ts +82 -82
  726. package/lib/esm/TileProps.js +25 -25
  727. package/lib/esm/TileProps.js.map +1 -1
  728. package/lib/esm/Tween.d.ts +191 -191
  729. package/lib/esm/Tween.js +565 -565
  730. package/lib/esm/Tween.js.map +1 -1
  731. package/lib/esm/TxnAction.d.ts +21 -21
  732. package/lib/esm/TxnAction.js +26 -26
  733. package/lib/esm/TxnAction.js.map +1 -1
  734. package/lib/esm/ViewDetails.d.ts +125 -125
  735. package/lib/esm/ViewDetails.js +153 -153
  736. package/lib/esm/ViewDetails.js.map +1 -1
  737. package/lib/esm/ViewFlags.d.ts +291 -291
  738. package/lib/esm/ViewFlags.js +364 -364
  739. package/lib/esm/ViewFlags.js.map +1 -1
  740. package/lib/esm/ViewProps.d.ts +205 -205
  741. package/lib/esm/ViewProps.js +8 -8
  742. package/lib/esm/ViewProps.js.map +1 -1
  743. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  744. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  745. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  746. package/lib/esm/core-common.d.ts +240 -240
  747. package/lib/esm/core-common.js +244 -244
  748. package/lib/esm/core-common.js.map +1 -1
  749. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  750. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  751. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  752. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  753. package/lib/esm/domains/GenericElementProps.js +8 -8
  754. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  755. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  756. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  757. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  758. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  759. package/lib/esm/geometry/AreaPattern.js +201 -201
  760. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  761. package/lib/esm/geometry/BoundingSphere.d.ts +14 -14
  762. package/lib/esm/geometry/BoundingSphere.js +26 -26
  763. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  764. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  765. package/lib/esm/geometry/Cartographic.js +340 -340
  766. package/lib/esm/geometry/Cartographic.js.map +1 -1
  767. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  768. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  769. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  770. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  771. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  772. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  773. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  774. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  775. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  776. package/lib/esm/geometry/FrustumPlanes.d.ts +32 -32
  777. package/lib/esm/geometry/FrustumPlanes.js +128 -128
  778. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  779. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  780. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  781. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  782. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  783. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  784. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  785. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  786. package/lib/esm/geometry/GeometryStream.js +464 -464
  787. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  788. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  789. package/lib/esm/geometry/ImageGraphic.js +93 -93
  790. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  791. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  792. package/lib/esm/geometry/LineStyle.js +126 -126
  793. package/lib/esm/geometry/LineStyle.js.map +1 -1
  794. package/lib/esm/geometry/Placement.d.ts +95 -95
  795. package/lib/esm/geometry/Placement.js +126 -126
  796. package/lib/esm/geometry/Placement.js.map +1 -1
  797. package/lib/esm/geometry/Projection.d.ts +251 -251
  798. package/lib/esm/geometry/Projection.js +192 -192
  799. package/lib/esm/geometry/Projection.js.map +1 -1
  800. package/lib/esm/geometry/TextString.d.ts +55 -55
  801. package/lib/esm/geometry/TextString.js +61 -61
  802. package/lib/esm/geometry/TextString.js.map +1 -1
  803. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  804. package/lib/esm/ipc/IpcSession.js +23 -23
  805. package/lib/esm/ipc/IpcSession.js.map +1 -1
  806. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  807. package/lib/esm/ipc/IpcSocket.js +12 -12
  808. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  809. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  810. package/lib/esm/ipc/IpcWebSocket.js +145 -145
  811. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  812. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  813. package/lib/esm/ipc/IpcWebSocketTransport.js +154 -154
  814. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  815. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  816. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  817. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  818. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +75 -75
  819. package/lib/esm/rpc/IModelReadRpcInterface.js +110 -110
  820. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  821. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  822. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  823. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  824. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  825. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  826. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  827. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  828. package/lib/esm/rpc/TestRpcManager.js +35 -35
  829. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  830. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  831. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  832. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  833. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  834. package/lib/esm/rpc/core/RpcConfiguration.js +185 -185
  835. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  836. package/lib/esm/rpc/core/RpcConstants.d.ts +85 -85
  837. package/lib/esm/rpc/core/RpcConstants.js +100 -100
  838. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  839. package/lib/esm/rpc/core/RpcControl.d.ts +52 -52
  840. package/lib/esm/rpc/core/RpcControl.js +142 -142
  841. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  842. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  843. package/lib/esm/rpc/core/RpcInvocation.js +253 -253
  844. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  845. package/lib/esm/rpc/core/RpcMarshaling.d.ts +36 -36
  846. package/lib/esm/rpc/core/RpcMarshaling.js +149 -149
  847. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  848. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  849. package/lib/esm/rpc/core/RpcOperation.js +128 -128
  850. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  851. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  852. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -90
  853. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  854. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  855. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  856. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  857. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  858. package/lib/esm/rpc/core/RpcPush.js +119 -119
  859. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  860. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  861. package/lib/esm/rpc/core/RpcRegistry.js +194 -194
  862. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  863. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  864. package/lib/esm/rpc/core/RpcRequest.js +472 -472
  865. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  866. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  867. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  868. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  869. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  870. package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
  871. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  872. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  873. package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
  874. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  875. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  876. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  877. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  878. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  879. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -138
  880. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  881. package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
  882. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  883. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  884. package/lib/esm/rpc/web/RpcMultipart.d.ts +31 -31
  885. package/lib/esm/rpc/web/RpcMultipart.js +41 -41
  886. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  887. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +17 -17
  888. package/lib/esm/rpc/web/WebAppRpcLogging.js +136 -136
  889. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  890. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  891. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  892. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  893. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +71 -71
  894. package/lib/esm/rpc/web/WebAppRpcRequest.js +370 -370
  895. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  896. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  897. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +355 -355
  898. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  899. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  900. package/lib/esm/tile/B3dmTileIO.js +62 -62
  901. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  902. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  903. package/lib/esm/tile/CompositeTileIO.js +22 -22
  904. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  905. package/lib/esm/tile/ElementGraphics.d.ts +134 -134
  906. package/lib/esm/tile/ElementGraphics.js +8 -8
  907. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  908. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  909. package/lib/esm/tile/GltfTileIO.js +105 -105
  910. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  911. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  912. package/lib/esm/tile/I3dmTileIO.js +36 -36
  913. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  914. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  915. package/lib/esm/tile/IModelTileIO.js +90 -90
  916. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  917. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  918. package/lib/esm/tile/PntsTileIO.js +22 -22
  919. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  920. package/lib/esm/tile/TileIO.d.ts +66 -66
  921. package/lib/esm/tile/TileIO.js +110 -110
  922. package/lib/esm/tile/TileIO.js.map +1 -1
  923. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  924. package/lib/esm/tile/TileMetadata.js +661 -661
  925. package/lib/esm/tile/TileMetadata.js.map +1 -1
  926. package/package.json +7 -7
@@ -1,615 +1,615 @@
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 Rendering
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.FeatureAppearanceProvider = exports.FeatureOverrides = exports.FeatureAppearance = void 0;
11
- const core_bentley_1 = require("@itwin/core-bentley");
12
- const FeatureTable_1 = require("./FeatureTable");
13
- const GeometryParams_1 = require("./GeometryParams");
14
- const RgbColor_1 = require("./RgbColor");
15
- function copyIdSetToUint32Set(dst, src) {
16
- dst.clear();
17
- if (typeof src === "string") {
18
- dst.addId(src);
19
- }
20
- else {
21
- for (const id of src)
22
- dst.addId(id);
23
- }
24
- }
25
- /** Defines overrides for selected aspects of a [[Feature]]'s symbology.
26
- * Any member defined in the appearance overrides that aspect of symbology for all [[Feature]]s to which the appearance is applied.
27
- * @see [[FeatureOverrides]] to customize the appearance of multiple features.
28
- * @public
29
- */
30
- class FeatureAppearance {
31
- constructor(props) {
32
- this.rgb = undefined !== props.rgb ? RgbColor_1.RgbColor.fromJSON(props.rgb) : undefined;
33
- this.weight = props.weight;
34
- this.transparency = props.transparency;
35
- this.linePixels = props.linePixels;
36
- this.ignoresMaterial = props.ignoresMaterial;
37
- this.nonLocatable = props.nonLocatable;
38
- this.emphasized = props.emphasized;
39
- if (undefined !== this.weight)
40
- this.weight = Math.max(1, Math.min(this.weight, 32));
41
- if (undefined !== this.transparency) {
42
- if (props.viewDependentTransparency)
43
- this.viewDependentTransparency = true;
44
- this.transparency = Math.max(0, Math.min(this.transparency, 1));
45
- // Fix up rounding errors...
46
- const smallDelta = 0.0001;
47
- if (1.0 - this.transparency < smallDelta)
48
- this.transparency = 1.0;
49
- else if (this.transparency < smallDelta)
50
- this.transparency = 0.0;
51
- }
52
- }
53
- static fromJSON(props) {
54
- if (undefined === props || (undefined === props.rgb && undefined === props.weight && undefined === props.transparency && undefined === props.linePixels && !props.ignoresMaterial && !props.nonLocatable && !props.emphasized))
55
- return this.defaults;
56
- else
57
- return new FeatureAppearance(props);
58
- }
59
- /** Create a FeatureAppearance that overrides only the RGB color.
60
- * @note The transparency component of the ColorDef is ignored.
61
- */
62
- static fromRgb(color) {
63
- return this.fromJSON({ rgb: RgbColor_1.RgbColor.fromColorDef(color) });
64
- }
65
- /** Create a FeatureAppearance that overrides the RGB and transparency.
66
- * The appearance's transparency is derived from the transparency component of the ColorDef.
67
- */
68
- static fromRgba(color, viewDependentTransparency = false) {
69
- return this.fromJSON({
70
- rgb: RgbColor_1.RgbColor.fromColorDef(color),
71
- transparency: color.colors.t / 255,
72
- viewDependentTransparency: viewDependentTransparency ? true : undefined,
73
- });
74
- }
75
- /** Create a FeatureAppearance that overrides only the transparency */
76
- static fromTransparency(transparencyValue, viewDependent = false) {
77
- return this.fromJSON({
78
- transparency: transparencyValue,
79
- viewDependentTransparency: viewDependent ? true : undefined,
80
- });
81
- }
82
- /** Create a FeatureAppearance with overrides corresponding to those defined by the supplied SubCategoryOverride.
83
- * @note Subcategory overrides set [[viewDependentTransparency]] to `true`.
84
- */
85
- static fromSubCategoryOverride(ovr) {
86
- const rgb = undefined !== ovr.color ? RgbColor_1.RgbColor.fromColorDef(ovr.color) : undefined;
87
- const transparency = ovr.transparency;
88
- const weight = ovr.weight;
89
- const ignoresMaterial = undefined !== ovr.material && core_bentley_1.Id64.isValid(ovr.material) ? true : undefined;
90
- return this.fromJSON({ rgb, transparency, weight, ignoresMaterial, viewDependentTransparency: true });
91
- }
92
- /** Returns true if this appearance does not override any aspects of symbology. */
93
- get matchesDefaults() {
94
- return this.equals(FeatureAppearance.defaults);
95
- }
96
- get overridesRgb() { return undefined !== this.rgb; }
97
- get overridesTransparency() { return undefined !== this.transparency; }
98
- get overridesLinePixels() { return undefined !== this.linePixels; }
99
- get overridesWeight() { return undefined !== this.weight; }
100
- get overridesSymbology() {
101
- return this.overridesRgb || this.overridesTransparency || this.overridesWeight || this.overridesLinePixels || !!this.ignoresMaterial
102
- || this.emphasized || this.overridesNonLocatable;
103
- }
104
- get overridesNonLocatable() { return undefined !== this.nonLocatable; }
105
- get isFullyTransparent() { return undefined !== this.transparency && this.transparency >= 1.0; }
106
- /** Returns true if any aspect of the appearance is overridden (i.e., if any member is not undefined). */
107
- get anyOverridden() { return this.overridesSymbology || this.overridesNonLocatable; }
108
- equals(other) {
109
- if (this === other)
110
- return true;
111
- return this.rgbIsEqual(other.rgb)
112
- && this.weight === other.weight
113
- && this.transparencyIsEqual(other.transparency)
114
- && this.linePixels === other.linePixels
115
- && this.ignoresMaterial === other.ignoresMaterial
116
- && this.nonLocatable === other.nonLocatable
117
- && this.emphasized === other.emphasized
118
- && this.viewDependentTransparency === other.viewDependentTransparency;
119
- }
120
- toJSON() {
121
- const props = {};
122
- if (this.rgb)
123
- props.rgb = this.rgb.toJSON();
124
- if (undefined !== this.weight)
125
- props.weight = this.weight;
126
- if (undefined !== this.transparency) {
127
- props.transparency = this.transparency;
128
- if (this.viewDependentTransparency)
129
- props.viewDependentTransparency = true;
130
- }
131
- if (undefined !== this.linePixels)
132
- props.linePixels = this.linePixels;
133
- if (true === this.ignoresMaterial)
134
- props.ignoresMaterial = true;
135
- if (true === this.nonLocatable)
136
- props.nonLocatable = true;
137
- if (true === this.emphasized)
138
- props.emphasized = true;
139
- return props;
140
- }
141
- /** Convert this appearance to JSON, and override any properties explicitly specified by `changedProps` in the result.
142
- * Example:
143
- * ```ts
144
- * const base = FeatureAppearance.fromRgba(ColorDef.white); // transparency=0, rgb=white
145
- * const clone = base.cloneProps({ transparency: undefined, weight: 5 }); // transparency=undefined, rgb=white, weight=5
146
- * ```
147
- * @see [[FeatureAppearance.clone]].
148
- */
149
- cloneProps(changedProps) {
150
- return {
151
- ...this.toJSON(),
152
- ...changedProps,
153
- };
154
- }
155
- /** Create a copy of this appearance, overriding any properties explicitly specified by `changedProps`.
156
- * Example:
157
- * ```ts
158
- * const base = FeatureAppearance.fromRgba(ColorDef.white); // transparency=0, rgb=white
159
- * const clone = base.clone({ transparency: undefined, weight: 5 }); // transparency=undefined, rgb=white, weight=5
160
- * ```
161
- * @see [[FeatureAppearance.cloneProps]].
162
- */
163
- clone(changedProps) {
164
- return FeatureAppearance.fromJSON(this.cloneProps(changedProps));
165
- }
166
- /** Produce a FeatureAppearance from the supplied appearance in which any aspect not defined by the base appearance is overridden by this appearance. */
167
- extendAppearance(base) {
168
- if (!this.overridesSymbology)
169
- return base;
170
- const props = base.toJSON();
171
- if (undefined === props.rgb)
172
- props.rgb = this.rgb;
173
- if (undefined === props.transparency)
174
- props.transparency = this.transparency;
175
- if (undefined === props.linePixels)
176
- props.linePixels = this.linePixels;
177
- if (undefined === props.weight)
178
- props.weight = this.weight;
179
- if (undefined === props.ignoresMaterial && this.ignoresMaterial)
180
- props.ignoresMaterial = true;
181
- if (undefined === props.nonLocatable && this.nonLocatable)
182
- props.nonLocatable = true;
183
- if (undefined === props.emphasized && this.emphasized)
184
- props.emphasized = true;
185
- if (undefined !== props.transparency && this.viewDependentTransparency)
186
- props.viewDependentTransparency = true;
187
- return FeatureAppearance.fromJSON(props);
188
- }
189
- rgbIsEqual(rgb) {
190
- if (undefined === this.rgb)
191
- return undefined === rgb;
192
- else if (undefined === rgb)
193
- return false;
194
- else
195
- return this.rgb.equals(rgb);
196
- }
197
- transparencyIsEqual(transp) {
198
- if (undefined === this.transparency)
199
- return undefined === transp;
200
- else if (undefined === transp)
201
- return false;
202
- else
203
- return Math.floor(this.transparency * 0xff) === Math.floor(transp * 0xff);
204
- }
205
- }
206
- exports.FeatureAppearance = FeatureAppearance;
207
- /** An appearance that overrides nothing. */
208
- FeatureAppearance.defaults = new FeatureAppearance({});
209
- const scratchIgnoreAnimationOverridesArgs = {
210
- elementId: { lower: 0, upper: 0 },
211
- animationNodeId: 0,
212
- };
213
- /** Specifies how to customize the appearance of individual [[Feature]]s, typically within the context of a [Viewport]($frontend).
214
- * Individual aspects of a feature's appearance - like visibility, color, and transparency - are overridden by supplying a [[FeatureAppearance]].
215
- * Those overrides can be specified on the basis of the feature's model, element, and/or subcategory. A default set of overrides can also be specified to
216
- * apply to the appearance of any feature not otherwise overridden.
217
- *
218
- * It is possible to override multiple aspects of a feature on different bases. For example, you might specify that all features belonging to subcategory "A" should be drawn in red,
219
- * and that all features belonging to model "B" should be drawn 50% transparent. In this case, a feature belonging to both subcategory "A" and model "B" will be drawn as 50% transparent red -
220
- * the separate overrides are combined to produce the feature's overall appearance.
221
- *
222
- * In the case of conflicts, there is an order of precedence:
223
- * - Model overrides take highest precedence.
224
- * - Element overrides are of higher precedence than subcategory and animation overrides.
225
- * - Overrides applied by a [[RenderSchedule.Script]]'s [[RenderSchedule.ElementTimeline]] are of higher precedence than subcategory overrides, but can be suppressed on a per-element basis via [[ignoreAnimationOverrides]].
226
- * - Subcategory overrides have lowest precedence.
227
- *
228
- * For example, you might specify that all features belonging to subcategory "A" should be drawn in red, and all those belonging to model "B" should be drawn in green.
229
- * Then a feature belonging to subcategory "A" and model "B" will be drawn in green, because the model overrides take precedence.
230
- *
231
- * Instances of this class are not typically instantiated by an application directly; instead, an application can implement a [FeatureOverrideProvider]($frontend)
232
- * that augments the overrides supplied by a viewport.
233
- *
234
- * @see [FeatureSymbology.Overrides]($frontend) to create overrides specific to a [Viewport]($frontend) or [ViewState]($frontend).
235
- * @see [FeatureOverrideProvider]($frontend) to customize the appearance of features within a [Viewport]($frontend).
236
- * @public
237
- */
238
- class FeatureOverrides {
239
- /** Construct a new Overrides that overrides nothing.
240
- * @see [FeatureSymbology.Overrides]($frontend) to construct overrides based on a [ViewState]($frontend) or [Viewport]($frontend).
241
- */
242
- constructor() {
243
- /** @internal */
244
- this._ignoreAnimationOverrides = [];
245
- /** Ids of elements that should never be drawn. This takes precedence over [[alwaysDrawn]]. @internal */
246
- this._neverDrawn = new core_bentley_1.Id64.Uint32Set();
247
- /** Ids of elements that should always be drawn. [[neverDrawn]] takes precedence over this set. @internal */
248
- this._alwaysDrawn = new core_bentley_1.Id64.Uint32Set();
249
- /** If true, no elements *except* those defined in the "always drawn" set will be drawn.
250
- * @see [[setAlwaysDrawn]]
251
- */
252
- this.isAlwaysDrawnExclusive = false;
253
- /** If true, the always-drawn elements are drawn even if their subcategories are not visible.
254
- * @see [[setAlwaysDrawn]]
255
- */
256
- this.alwaysDrawnIgnoresSubCategory = true;
257
- /** If true, all subcategories are considered visible. This is used for drawing sheets via section callouts in the absence of an actual sheet view.
258
- * @internal
259
- */
260
- this.ignoreSubCategory = false;
261
- /** Overrides applied to any feature not explicitly overridden. @internal */
262
- this._defaultOverrides = FeatureAppearance.defaults;
263
- /** Whether construction geometry should be drawn. @internal */
264
- this._constructions = false;
265
- /** Whether dimensions should be drawn. @internal */
266
- this._dimensions = false;
267
- /** Whether area patterns should be drawn. @internal */
268
- this._patterns = false;
269
- /** Whether line weights should be applied. If false, all lines are rendered 1-pixel wide. @internal */
270
- this._lineWeights = true;
271
- /** Overrides applied to all elements belonging to each model. @internal */
272
- this._modelOverrides = new core_bentley_1.Id64.Uint32Map();
273
- /** Overrides applied to specific elements. @internal */
274
- this._elementOverrides = new core_bentley_1.Id64.Uint32Map();
275
- /** Overrides applied to geometry belonging to each subcategory. @internal */
276
- this._subCategoryOverrides = new core_bentley_1.Id64.Uint32Map();
277
- /** The set of displayed subcategories. Geometry belonging to subcategories not included in this set will not be drawn. @internal */
278
- this._visibleSubCategories = new core_bentley_1.Id64.Uint32Set();
279
- /** Display priorities assigned to subcategories, possibly overridden by display style. Only applicable for plan projection models. @internal */
280
- this._subCategoryPriorities = new core_bentley_1.Id64.Uint32Map();
281
- /** Per-model, a set of subcategories whose visibility should be inverted for elements within that model.
282
- * Populated by Viewport.
283
- * @internal
284
- */
285
- this._modelSubCategoryOverrides = new core_bentley_1.Id64.Uint32Map();
286
- /** Ids of animation nodes that should never be drawn.
287
- * @internal
288
- */
289
- this.neverDrawnAnimationNodes = new Set();
290
- /** Mapping of animation node Ids to overrides applied to the corresponding animation nodes.
291
- * @internal
292
- */
293
- this.animationNodeOverrides = new Map();
294
- //
295
- }
296
- /** Accepts a criterion that determines whether color and transparency overrides originating from the view's [[RenderSchedule.Script]] should be ignored for a given element.
297
- * The function receives a description of the element in question and returns `true` if the script's overrides should be ignored.
298
- * Any number of such functions can be registered; if any one of them returns `true`, the script's overrides are not applied to the specified element.
299
- *
300
- * For example, applications commonly emphasize a set of elements by applying a [[FeatureAppearance.emphasized]] override to them, and specifying a highly-transparent
301
- * default appearance to de-emphasize the rest of the elements in the view. If some of the de-emphasized elements' appearances are also being overridden by the schedule script, then
302
- * they won't appear de-emphasized, making it difficult for the emphasized elements to stand out. In situations like this, [FeatureOverrideProvider]($frontend)s like [EmphasizeElements]($frontend) can register an [[IgnoreAnimationOverrides]] function that returns true if the element in question is not in the set of emphasized elements.
303
- */
304
- ignoreAnimationOverrides(ignore) {
305
- this._ignoreAnimationOverrides.push(ignore);
306
- }
307
- /** Overrides applied to features for which no other overrides are defined */
308
- get defaultOverrides() { return this._defaultOverrides; }
309
- /** Whether or not line weights are applied. If false, all lines are drawn with a weight of 1. */
310
- get lineWeights() { return this._lineWeights; }
311
- /** @internal */
312
- get neverDrawn() { return this._neverDrawn; }
313
- /** @internal */
314
- get alwaysDrawn() { return this._alwaysDrawn; }
315
- /** @internal */
316
- isNeverDrawn(elemIdLo, elemIdHi, animationNodeId) {
317
- if (this._neverDrawn.has(elemIdLo, elemIdHi))
318
- return true;
319
- else
320
- return this.neverDrawnAnimationNodes.has(animationNodeId);
321
- }
322
- /** @internal */
323
- isAlwaysDrawn(idLo, idHi) { return this._alwaysDrawn.has(idLo, idHi); }
324
- /** Returns true if the [SubCategory]($backend) specified by Id is in the set of visible subcategories. @internal */
325
- isSubCategoryVisible(idLo, idHi) { return this._visibleSubCategories.has(idLo, idHi); }
326
- /** @internal */
327
- isSubCategoryVisibleInModel(subcatLo, subcatHi, modelLo, modelHi) {
328
- if (this.ignoreSubCategory)
329
- return true;
330
- let vis = this.isSubCategoryVisible(subcatLo, subcatHi);
331
- const modelOvr = this._modelSubCategoryOverrides.get(modelLo, modelHi);
332
- if (undefined !== modelOvr && modelOvr.has(subcatLo, subcatHi))
333
- vis = !vis;
334
- return vis;
335
- }
336
- /** @internal */
337
- getModelOverrides(idLo, idHi) {
338
- return this._modelOverrides.get(idLo, idHi);
339
- }
340
- getElementAnimationOverrides(idLo, idHi, animationNodeId) {
341
- if (this.animationNodeOverrides.size === 0)
342
- return undefined;
343
- // NB: An animation node Id of zero means "not animated". Some providers like EmphasizeElements may provide an appearance override for unanimated nodes.
344
- // That should be preserved.
345
- const app = this.animationNodeOverrides.get(animationNodeId);
346
- if (!app || 0 === animationNodeId || this._ignoreAnimationOverrides.length === 0)
347
- return app;
348
- const args = scratchIgnoreAnimationOverridesArgs;
349
- args.elementId.lower = idLo;
350
- args.elementId.upper = idHi;
351
- args.animationNodeId = animationNodeId;
352
- return this._ignoreAnimationOverrides.some((ignore) => ignore(args)) ? undefined : app;
353
- }
354
- /** @internal */
355
- getElementOverrides(idLo, idHi, animationNodeId) {
356
- const elemApp = this._elementOverrides.get(idLo, idHi);
357
- const nodeApp = this.getElementAnimationOverrides(idLo, idHi, animationNodeId);
358
- if (elemApp)
359
- return nodeApp ? nodeApp.extendAppearance(elemApp) : elemApp;
360
- return nodeApp;
361
- }
362
- /** @internal */
363
- getSubCategoryOverrides(idLo, idHi) { return this._subCategoryOverrides.get(idLo, idHi); }
364
- /** Add a [SubCategory]($backend) to the set of visible subcategories. */
365
- setVisibleSubCategory(id) { this._visibleSubCategories.addId(id); }
366
- /** Specify the Id of an element that should never be drawn. */
367
- setNeverDrawn(id) { this._neverDrawn.addId(id); }
368
- /** Specify the Id of an element that should always be drawn. */
369
- setAlwaysDrawn(id) { this._alwaysDrawn.addId(id); }
370
- /** Specify the Id of a animation node that should never be drawn. */
371
- setAnimationNodeNeverDrawn(id) { this.neverDrawnAnimationNodes.add(id); }
372
- /** Specify the Ids of elements that should never be drawn. */
373
- setNeverDrawnSet(ids) { copyIdSetToUint32Set(this._neverDrawn, ids); }
374
- /** Specify the Ids of elements that should always be drawn. */
375
- setAlwaysDrawnSet(ids, exclusive, ignoreSubCategory = true) {
376
- copyIdSetToUint32Set(this._alwaysDrawn, ids);
377
- this.isAlwaysDrawnExclusive = exclusive;
378
- this.alwaysDrawnIgnoresSubCategory = ignoreSubCategory;
379
- }
380
- /** Returns the feature's appearance overrides, or undefined if the feature is not visible. */
381
- getFeatureAppearance(feature, modelId, type = FeatureTable_1.BatchType.Primary, animationNodeId = 0) {
382
- return this.getAppearance(core_bentley_1.Id64.getLowerUint32(feature.elementId), core_bentley_1.Id64.getUpperUint32(feature.elementId), core_bentley_1.Id64.getLowerUint32(feature.subCategoryId), core_bentley_1.Id64.getUpperUint32(feature.subCategoryId), feature.geometryClass, core_bentley_1.Id64.getLowerUint32(modelId), core_bentley_1.Id64.getUpperUint32(modelId), type, animationNodeId);
383
- }
384
- /** Returns a feature's appearance overrides, or undefined if the feature is not visible.
385
- * Takes Id64s as pairs of unsigned 32-bit integers for efficiency, because that is how they are stored by the PackedFeatureTable associated with each batch of graphics.
386
- * @see [[getFeatureAppearance]] for an equivalent function that accepts [Id64String]($core-bentley)s instead of integer pairs.
387
- */
388
- getAppearance(elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) {
389
- if (FeatureTable_1.BatchType.VolumeClassifier === type || FeatureTable_1.BatchType.PlanarClassifier === type)
390
- return this.getClassifierAppearance(elemLo, elemHi, subcatLo, subcatHi, modelLo, modelHi, animationNodeId);
391
- let app = !this._lineWeights ? FeatureOverrides._weight1Appearance : FeatureAppearance.defaults;
392
- const modelApp = this.getModelOverrides(modelLo, modelHi);
393
- if (undefined !== modelApp)
394
- app = modelApp.extendAppearance(app);
395
- // Is the element visible?
396
- let elemApp, alwaysDrawn = false;
397
- if (core_bentley_1.Id64.isValidUint32Pair(elemLo, elemHi)) {
398
- if (this.isNeverDrawn(elemLo, elemHi, animationNodeId))
399
- return undefined;
400
- alwaysDrawn = this.isAlwaysDrawn(elemLo, elemHi);
401
- if (!alwaysDrawn && this.isAlwaysDrawnExclusive)
402
- return undefined;
403
- // Element overrides take precedence
404
- elemApp = this.getElementOverrides(elemLo, elemHi, animationNodeId);
405
- if (undefined !== elemApp)
406
- app = undefined !== modelApp ? elemApp.extendAppearance(app) : elemApp;
407
- }
408
- let subCatApp;
409
- if (!this.ignoreSubCategory && core_bentley_1.Id64.isValidUint32Pair(subcatLo, subcatHi)) {
410
- if ((!alwaysDrawn || !this.alwaysDrawnIgnoresSubCategory) && !this.isSubCategoryVisibleInModel(subcatLo, subcatHi, modelLo, modelHi))
411
- return undefined;
412
- subCatApp = this.getSubCategoryOverrides(subcatLo, subcatHi);
413
- if (undefined !== subCatApp)
414
- app = subCatApp.extendAppearance(app);
415
- }
416
- // Only apply default if *no* appearance was explicitly registered (doesn't matter if registered appearance does not actually override anything)
417
- if (undefined === elemApp && undefined === modelApp && undefined === subCatApp)
418
- app = this._defaultOverrides.extendAppearance(app);
419
- let visible = alwaysDrawn || this.isClassVisible(geomClass);
420
- if (visible && app.isFullyTransparent)
421
- visible = false; // don't bother rendering something with full transparency...
422
- return visible ? app : undefined;
423
- }
424
- /** Classifiers behave totally differently...in particular they are never invisible unless fully-transparent.
425
- * @internal
426
- */
427
- getClassifierAppearance(elemLo, elemHi, subcatLo, subcatHi, modelLo, modelHi, animationNodeId) {
428
- let app = FeatureAppearance.defaults;
429
- const modelApp = this.getModelOverrides(modelLo, modelHi);
430
- if (undefined !== modelApp)
431
- app = modelApp.extendAppearance(app);
432
- const elemApp = this.getElementOverrides(elemLo, elemHi, animationNodeId);
433
- if (undefined !== elemApp)
434
- app = undefined !== modelApp ? elemApp.extendAppearance(app) : elemApp;
435
- if (!this.ignoreSubCategory && core_bentley_1.Id64.isValidUint32Pair(subcatLo, subcatHi)) {
436
- const subCat = this.getSubCategoryOverrides(subcatLo, subcatHi);
437
- if (undefined !== subCat)
438
- app = subCat.extendAppearance(app);
439
- }
440
- if (undefined === elemApp && undefined === modelApp)
441
- app = this._defaultOverrides.extendAppearance(app);
442
- // NB: A fully-transparent classifier means the classifier is a clip mask - classified pixels will be discarded.
443
- return app;
444
- }
445
- /** Return whether geometry of the specified class should be drawn.
446
- * @see [[ViewFlags.constructions]], [[ViewFlags.dimensions]], and [[ViewFlags.patterns]].
447
- */
448
- isClassVisible(geomClass) {
449
- switch (geomClass) {
450
- case GeometryParams_1.GeometryClass.Construction: return this._constructions;
451
- case GeometryParams_1.GeometryClass.Dimension: return this._dimensions;
452
- case GeometryParams_1.GeometryClass.Pattern: return this._patterns;
453
- default: return true;
454
- }
455
- }
456
- /** Specify overrides for all elements belonging to a specified [GeometricModel]($backend), or all geometry belonging to a specified [GeometricElement]($backend) or [SubCategory]($backend). */
457
- override(args) {
458
- let id;
459
- let map;
460
- if (undefined !== args.elementId) {
461
- id = args.elementId;
462
- map = this._elementOverrides;
463
- }
464
- else if (undefined !== args.modelId) {
465
- id = args.modelId;
466
- map = this._modelOverrides;
467
- }
468
- else {
469
- id = args.subCategoryId;
470
- map = this._subCategoryOverrides;
471
- }
472
- let app = args.appearance;
473
- const idLo = core_bentley_1.Id64.getLowerUint32(id);
474
- const idHi = core_bentley_1.Id64.getUpperUint32(id);
475
- if (undefined !== args.elementId && this.isNeverDrawn(idLo, idHi, 0))
476
- return;
477
- const replace = "replace" === args.onConflict;
478
- const existing = replace ? undefined : map.get(idLo, idHi);
479
- if (existing) {
480
- (0, core_bentley_1.assert)("replace" !== args.onConflict);
481
- switch (args.onConflict) {
482
- case "skip":
483
- return;
484
- case "extend":
485
- app = app.extendAppearance(existing);
486
- break;
487
- default:
488
- app = existing.extendAppearance(app);
489
- break;
490
- }
491
- }
492
- map.set(idLo, idHi, app);
493
- }
494
- /** Specify overrides for all elements within the specified model.
495
- * @param id The Id of the model.
496
- * @param app The symbology overrides.
497
- * @param replaceExisting Specifies whether to replace a pre-existing override for the same model.
498
- * @note These overrides take priority over all other overrides.
499
- * @note If [[defaultOverrides]] are defined, they will not apply to any element within this model, even if the supplied appearance overrides nothing.
500
- * @deprecated Use [[FeatureOverrides.override]].
501
- */
502
- overrideModel(id, app, replaceExisting = true) {
503
- this.override({ modelId: id, appearance: app, onConflict: replaceExisting ? "replace" : "skip" });
504
- }
505
- /** Specify overrides for all geometry belonging to the specified [SubCategory]($backend).
506
- * @param id The Id of the subcategory.
507
- * @param app The symbology overrides.
508
- * @param replaceExisting Specifies whether to replace a pre-existing override for the same subcategory.
509
- * @note These overrides have lower priority than element and model overrides.
510
- * @note If [[defaultOverrides]] are defined, they will not apply to any geometry within this subcategory, even if the supplied appearance overrides nothing.
511
- * @deprecated Use [[FeatureOverrides.override]].
512
- */
513
- overrideSubCategory(id, app, replaceExisting = true) {
514
- this.override({ subCategoryId: id, appearance: app, onConflict: replaceExisting ? "replace" : "skip" });
515
- }
516
- /** Specify overrides for all geometry originating from the specified element.
517
- * @param id The Id of the element.
518
- * @param app The symbology overrides.
519
- * @param replaceExisting Specifies whether to replace a pre-existing override for the same element.
520
- * @note These overrides take precedence over subcategory overrides, but not over model overrides.
521
- * @note If [[defaultOverrides]] are defined, they will not apply to this element, even if the supplied appearance overrides nothing.
522
- * @deprecated Use [[FeatureOverrides.override]].
523
- */
524
- overrideElement(id, app, replaceExisting = true) {
525
- this.override({ elementId: id, appearance: app, onConflict: replaceExisting ? "replace" : "skip" });
526
- }
527
- /** Specify overrides for all geometry originating from the specified animation node.
528
- * @param id The Id of the animation node.
529
- * @param app The symbology overrides.
530
- * @note These overrides do not take precedence over element overrides.
531
- */
532
- overrideAnimationNode(id, app) {
533
- this.animationNodeOverrides.set(id, app);
534
- }
535
- /** Defines a default appearance to be applied to any [[Feature]] *not* explicitly overridden.
536
- * @param appearance The symbology overrides.
537
- * @param replaceExisting Specifies whether to replace the current default overrides if they are already defined.
538
- */
539
- setDefaultOverrides(appearance, replaceExisting = true) {
540
- if (replaceExisting || !appearance.overridesSymbology)
541
- this._defaultOverrides = appearance;
542
- }
543
- /** Get the display priority of a subcategory. This is only relevant when using [[PlanProjectionSettings]].
544
- * @internal
545
- */
546
- getSubCategoryPriority(idLo, idHi) {
547
- var _a;
548
- return (_a = this._subCategoryPriorities.get(idLo, idHi)) !== null && _a !== void 0 ? _a : 0;
549
- }
550
- /** Returns true if geometry belonging to the specified subcategory will be drawn. */
551
- isSubCategoryIdVisible(id) { return this.isSubCategoryVisible(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id)); }
552
- /** Returns the overrides applied to geometry belonging to the specified model, if any such are defined. */
553
- getModelOverridesById(id) { return this.getModelOverrides(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id)); }
554
- /** Returns the overrides applied to geometry belonging to the specified element, if any such are defined. */
555
- getElementOverridesById(id) { return this.getElementOverrides(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id), 0); }
556
- /** Returns the overrides applied to geometry belonging to the specified subcategory, if any such are defined. */
557
- getSubCategoryOverridesById(id) { return this.getSubCategoryOverrides(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id)); }
558
- /** Returns true if the specified Feature will be drawn. */
559
- isFeatureVisible(feature) {
560
- const { elementId, subCategoryId, geometryClass } = feature;
561
- const isValidElemId = !core_bentley_1.Id64.isInvalid(elementId);
562
- const elemIdParts = isValidElemId ? core_bentley_1.Id64.getUint32Pair(elementId) : undefined;
563
- if (undefined !== elemIdParts && this.isNeverDrawn(elemIdParts.lower, elemIdParts.upper, 0))
564
- return false;
565
- const alwaysDrawn = undefined !== elemIdParts && this.isAlwaysDrawn(elemIdParts.lower, elemIdParts.upper);
566
- if (alwaysDrawn || this.isAlwaysDrawnExclusive)
567
- return alwaysDrawn;
568
- // NB: This ignores per-model subcategory visibility overrides, because caller did not specify a model.
569
- if (!this.isSubCategoryIdVisible(subCategoryId))
570
- return false;
571
- return this.isClassVisible(geometryClass);
572
- }
573
- }
574
- exports.FeatureOverrides = FeatureOverrides;
575
- FeatureOverrides._weight1Appearance = FeatureAppearance.fromJSON({ weight: 1 });
576
- /** @public */
577
- var FeatureAppearanceProvider;
578
- (function (FeatureAppearanceProvider) {
579
- /** Produce a FeatureAppearanceSource for which `getAppearance()` returns the appearance specified in `source`, potentially modified by `provider`. */
580
- function wrap(source, provider) {
581
- return {
582
- getAppearance: (elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) => {
583
- return provider.getFeatureAppearance(source, elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);
584
- },
585
- };
586
- }
587
- /** Create a provider that obtains each feature's appearance from the source, and if the feature is visible, modifies the appearance.
588
- * @param supplementAppearance A function accepting the feature's base appearance and returning a supplemental appearance.
589
- * @public
590
- */
591
- function supplement(supplementAppearance) {
592
- return {
593
- getFeatureAppearance: (source, elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) => {
594
- const app = source.getAppearance(elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);
595
- return app ? supplementAppearance(app) : app;
596
- },
597
- };
598
- }
599
- FeatureAppearanceProvider.supplement = supplement;
600
- /** Chain two FeatureAppearanceProviders together such that `first`'s `getFeatureAppearance` function is applied before `second`'s.
601
- * If `second` invokes `source.getAppearance()`, the returned appearance will include any modifications applied by `first`.
602
- * @public
603
- */
604
- function chain(first, second) {
605
- if (first === second)
606
- return first;
607
- return {
608
- getFeatureAppearance: (source, elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) => {
609
- return second.getFeatureAppearance(wrap(source, first), elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);
610
- },
611
- };
612
- }
613
- FeatureAppearanceProvider.chain = chain;
614
- })(FeatureAppearanceProvider = exports.FeatureAppearanceProvider || (exports.FeatureAppearanceProvider = {}));
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 Rendering
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FeatureAppearanceProvider = exports.FeatureOverrides = exports.FeatureAppearance = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
12
+ const FeatureTable_1 = require("./FeatureTable");
13
+ const GeometryParams_1 = require("./GeometryParams");
14
+ const RgbColor_1 = require("./RgbColor");
15
+ function copyIdSetToUint32Set(dst, src) {
16
+ dst.clear();
17
+ if (typeof src === "string") {
18
+ dst.addId(src);
19
+ }
20
+ else {
21
+ for (const id of src)
22
+ dst.addId(id);
23
+ }
24
+ }
25
+ /** Defines overrides for selected aspects of a [[Feature]]'s symbology.
26
+ * Any member defined in the appearance overrides that aspect of symbology for all [[Feature]]s to which the appearance is applied.
27
+ * @see [[FeatureOverrides]] to customize the appearance of multiple features.
28
+ * @public
29
+ */
30
+ class FeatureAppearance {
31
+ constructor(props) {
32
+ this.rgb = undefined !== props.rgb ? RgbColor_1.RgbColor.fromJSON(props.rgb) : undefined;
33
+ this.weight = props.weight;
34
+ this.transparency = props.transparency;
35
+ this.linePixels = props.linePixels;
36
+ this.ignoresMaterial = props.ignoresMaterial;
37
+ this.nonLocatable = props.nonLocatable;
38
+ this.emphasized = props.emphasized;
39
+ if (undefined !== this.weight)
40
+ this.weight = Math.max(1, Math.min(this.weight, 32));
41
+ if (undefined !== this.transparency) {
42
+ if (props.viewDependentTransparency)
43
+ this.viewDependentTransparency = true;
44
+ this.transparency = Math.max(0, Math.min(this.transparency, 1));
45
+ // Fix up rounding errors...
46
+ const smallDelta = 0.0001;
47
+ if (1.0 - this.transparency < smallDelta)
48
+ this.transparency = 1.0;
49
+ else if (this.transparency < smallDelta)
50
+ this.transparency = 0.0;
51
+ }
52
+ }
53
+ static fromJSON(props) {
54
+ if (undefined === props || (undefined === props.rgb && undefined === props.weight && undefined === props.transparency && undefined === props.linePixels && !props.ignoresMaterial && !props.nonLocatable && !props.emphasized))
55
+ return this.defaults;
56
+ else
57
+ return new FeatureAppearance(props);
58
+ }
59
+ /** Create a FeatureAppearance that overrides only the RGB color.
60
+ * @note The transparency component of the ColorDef is ignored.
61
+ */
62
+ static fromRgb(color) {
63
+ return this.fromJSON({ rgb: RgbColor_1.RgbColor.fromColorDef(color) });
64
+ }
65
+ /** Create a FeatureAppearance that overrides the RGB and transparency.
66
+ * The appearance's transparency is derived from the transparency component of the ColorDef.
67
+ */
68
+ static fromRgba(color, viewDependentTransparency = false) {
69
+ return this.fromJSON({
70
+ rgb: RgbColor_1.RgbColor.fromColorDef(color),
71
+ transparency: color.colors.t / 255,
72
+ viewDependentTransparency: viewDependentTransparency ? true : undefined,
73
+ });
74
+ }
75
+ /** Create a FeatureAppearance that overrides only the transparency */
76
+ static fromTransparency(transparencyValue, viewDependent = false) {
77
+ return this.fromJSON({
78
+ transparency: transparencyValue,
79
+ viewDependentTransparency: viewDependent ? true : undefined,
80
+ });
81
+ }
82
+ /** Create a FeatureAppearance with overrides corresponding to those defined by the supplied SubCategoryOverride.
83
+ * @note Subcategory overrides set [[viewDependentTransparency]] to `true`.
84
+ */
85
+ static fromSubCategoryOverride(ovr) {
86
+ const rgb = undefined !== ovr.color ? RgbColor_1.RgbColor.fromColorDef(ovr.color) : undefined;
87
+ const transparency = ovr.transparency;
88
+ const weight = ovr.weight;
89
+ const ignoresMaterial = undefined !== ovr.material && core_bentley_1.Id64.isValid(ovr.material) ? true : undefined;
90
+ return this.fromJSON({ rgb, transparency, weight, ignoresMaterial, viewDependentTransparency: true });
91
+ }
92
+ /** Returns true if this appearance does not override any aspects of symbology. */
93
+ get matchesDefaults() {
94
+ return this.equals(FeatureAppearance.defaults);
95
+ }
96
+ get overridesRgb() { return undefined !== this.rgb; }
97
+ get overridesTransparency() { return undefined !== this.transparency; }
98
+ get overridesLinePixels() { return undefined !== this.linePixels; }
99
+ get overridesWeight() { return undefined !== this.weight; }
100
+ get overridesSymbology() {
101
+ return this.overridesRgb || this.overridesTransparency || this.overridesWeight || this.overridesLinePixels || !!this.ignoresMaterial
102
+ || this.emphasized || this.overridesNonLocatable;
103
+ }
104
+ get overridesNonLocatable() { return undefined !== this.nonLocatable; }
105
+ get isFullyTransparent() { return undefined !== this.transparency && this.transparency >= 1.0; }
106
+ /** Returns true if any aspect of the appearance is overridden (i.e., if any member is not undefined). */
107
+ get anyOverridden() { return this.overridesSymbology || this.overridesNonLocatable; }
108
+ equals(other) {
109
+ if (this === other)
110
+ return true;
111
+ return this.rgbIsEqual(other.rgb)
112
+ && this.weight === other.weight
113
+ && this.transparencyIsEqual(other.transparency)
114
+ && this.linePixels === other.linePixels
115
+ && this.ignoresMaterial === other.ignoresMaterial
116
+ && this.nonLocatable === other.nonLocatable
117
+ && this.emphasized === other.emphasized
118
+ && this.viewDependentTransparency === other.viewDependentTransparency;
119
+ }
120
+ toJSON() {
121
+ const props = {};
122
+ if (this.rgb)
123
+ props.rgb = this.rgb.toJSON();
124
+ if (undefined !== this.weight)
125
+ props.weight = this.weight;
126
+ if (undefined !== this.transparency) {
127
+ props.transparency = this.transparency;
128
+ if (this.viewDependentTransparency)
129
+ props.viewDependentTransparency = true;
130
+ }
131
+ if (undefined !== this.linePixels)
132
+ props.linePixels = this.linePixels;
133
+ if (true === this.ignoresMaterial)
134
+ props.ignoresMaterial = true;
135
+ if (true === this.nonLocatable)
136
+ props.nonLocatable = true;
137
+ if (true === this.emphasized)
138
+ props.emphasized = true;
139
+ return props;
140
+ }
141
+ /** Convert this appearance to JSON, and override any properties explicitly specified by `changedProps` in the result.
142
+ * Example:
143
+ * ```ts
144
+ * const base = FeatureAppearance.fromRgba(ColorDef.white); // transparency=0, rgb=white
145
+ * const clone = base.cloneProps({ transparency: undefined, weight: 5 }); // transparency=undefined, rgb=white, weight=5
146
+ * ```
147
+ * @see [[FeatureAppearance.clone]].
148
+ */
149
+ cloneProps(changedProps) {
150
+ return {
151
+ ...this.toJSON(),
152
+ ...changedProps,
153
+ };
154
+ }
155
+ /** Create a copy of this appearance, overriding any properties explicitly specified by `changedProps`.
156
+ * Example:
157
+ * ```ts
158
+ * const base = FeatureAppearance.fromRgba(ColorDef.white); // transparency=0, rgb=white
159
+ * const clone = base.clone({ transparency: undefined, weight: 5 }); // transparency=undefined, rgb=white, weight=5
160
+ * ```
161
+ * @see [[FeatureAppearance.cloneProps]].
162
+ */
163
+ clone(changedProps) {
164
+ return FeatureAppearance.fromJSON(this.cloneProps(changedProps));
165
+ }
166
+ /** Produce a FeatureAppearance from the supplied appearance in which any aspect not defined by the base appearance is overridden by this appearance. */
167
+ extendAppearance(base) {
168
+ if (!this.overridesSymbology)
169
+ return base;
170
+ const props = base.toJSON();
171
+ if (undefined === props.rgb)
172
+ props.rgb = this.rgb;
173
+ if (undefined === props.transparency)
174
+ props.transparency = this.transparency;
175
+ if (undefined === props.linePixels)
176
+ props.linePixels = this.linePixels;
177
+ if (undefined === props.weight)
178
+ props.weight = this.weight;
179
+ if (undefined === props.ignoresMaterial && this.ignoresMaterial)
180
+ props.ignoresMaterial = true;
181
+ if (undefined === props.nonLocatable && this.nonLocatable)
182
+ props.nonLocatable = true;
183
+ if (undefined === props.emphasized && this.emphasized)
184
+ props.emphasized = true;
185
+ if (undefined !== props.transparency && this.viewDependentTransparency)
186
+ props.viewDependentTransparency = true;
187
+ return FeatureAppearance.fromJSON(props);
188
+ }
189
+ rgbIsEqual(rgb) {
190
+ if (undefined === this.rgb)
191
+ return undefined === rgb;
192
+ else if (undefined === rgb)
193
+ return false;
194
+ else
195
+ return this.rgb.equals(rgb);
196
+ }
197
+ transparencyIsEqual(transp) {
198
+ if (undefined === this.transparency)
199
+ return undefined === transp;
200
+ else if (undefined === transp)
201
+ return false;
202
+ else
203
+ return Math.floor(this.transparency * 0xff) === Math.floor(transp * 0xff);
204
+ }
205
+ }
206
+ exports.FeatureAppearance = FeatureAppearance;
207
+ /** An appearance that overrides nothing. */
208
+ FeatureAppearance.defaults = new FeatureAppearance({});
209
+ const scratchIgnoreAnimationOverridesArgs = {
210
+ elementId: { lower: 0, upper: 0 },
211
+ animationNodeId: 0,
212
+ };
213
+ /** Specifies how to customize the appearance of individual [[Feature]]s, typically within the context of a [Viewport]($frontend).
214
+ * Individual aspects of a feature's appearance - like visibility, color, and transparency - are overridden by supplying a [[FeatureAppearance]].
215
+ * Those overrides can be specified on the basis of the feature's model, element, and/or subcategory. A default set of overrides can also be specified to
216
+ * apply to the appearance of any feature not otherwise overridden.
217
+ *
218
+ * It is possible to override multiple aspects of a feature on different bases. For example, you might specify that all features belonging to subcategory "A" should be drawn in red,
219
+ * and that all features belonging to model "B" should be drawn 50% transparent. In this case, a feature belonging to both subcategory "A" and model "B" will be drawn as 50% transparent red -
220
+ * the separate overrides are combined to produce the feature's overall appearance.
221
+ *
222
+ * In the case of conflicts, there is an order of precedence:
223
+ * - Model overrides take highest precedence.
224
+ * - Element overrides are of higher precedence than subcategory and animation overrides.
225
+ * - Overrides applied by a [[RenderSchedule.Script]]'s [[RenderSchedule.ElementTimeline]] are of higher precedence than subcategory overrides, but can be suppressed on a per-element basis via [[ignoreAnimationOverrides]].
226
+ * - Subcategory overrides have lowest precedence.
227
+ *
228
+ * For example, you might specify that all features belonging to subcategory "A" should be drawn in red, and all those belonging to model "B" should be drawn in green.
229
+ * Then a feature belonging to subcategory "A" and model "B" will be drawn in green, because the model overrides take precedence.
230
+ *
231
+ * Instances of this class are not typically instantiated by an application directly; instead, an application can implement a [FeatureOverrideProvider]($frontend)
232
+ * that augments the overrides supplied by a viewport.
233
+ *
234
+ * @see [FeatureSymbology.Overrides]($frontend) to create overrides specific to a [Viewport]($frontend) or [ViewState]($frontend).
235
+ * @see [FeatureOverrideProvider]($frontend) to customize the appearance of features within a [Viewport]($frontend).
236
+ * @public
237
+ */
238
+ class FeatureOverrides {
239
+ /** Construct a new Overrides that overrides nothing.
240
+ * @see [FeatureSymbology.Overrides]($frontend) to construct overrides based on a [ViewState]($frontend) or [Viewport]($frontend).
241
+ */
242
+ constructor() {
243
+ /** @internal */
244
+ this._ignoreAnimationOverrides = [];
245
+ /** Ids of elements that should never be drawn. This takes precedence over [[alwaysDrawn]]. @internal */
246
+ this._neverDrawn = new core_bentley_1.Id64.Uint32Set();
247
+ /** Ids of elements that should always be drawn. [[neverDrawn]] takes precedence over this set. @internal */
248
+ this._alwaysDrawn = new core_bentley_1.Id64.Uint32Set();
249
+ /** If true, no elements *except* those defined in the "always drawn" set will be drawn.
250
+ * @see [[setAlwaysDrawn]]
251
+ */
252
+ this.isAlwaysDrawnExclusive = false;
253
+ /** If true, the always-drawn elements are drawn even if their subcategories are not visible.
254
+ * @see [[setAlwaysDrawn]]
255
+ */
256
+ this.alwaysDrawnIgnoresSubCategory = true;
257
+ /** If true, all subcategories are considered visible. This is used for drawing sheets via section callouts in the absence of an actual sheet view.
258
+ * @internal
259
+ */
260
+ this.ignoreSubCategory = false;
261
+ /** Overrides applied to any feature not explicitly overridden. @internal */
262
+ this._defaultOverrides = FeatureAppearance.defaults;
263
+ /** Whether construction geometry should be drawn. @internal */
264
+ this._constructions = false;
265
+ /** Whether dimensions should be drawn. @internal */
266
+ this._dimensions = false;
267
+ /** Whether area patterns should be drawn. @internal */
268
+ this._patterns = false;
269
+ /** Whether line weights should be applied. If false, all lines are rendered 1-pixel wide. @internal */
270
+ this._lineWeights = true;
271
+ /** Overrides applied to all elements belonging to each model. @internal */
272
+ this._modelOverrides = new core_bentley_1.Id64.Uint32Map();
273
+ /** Overrides applied to specific elements. @internal */
274
+ this._elementOverrides = new core_bentley_1.Id64.Uint32Map();
275
+ /** Overrides applied to geometry belonging to each subcategory. @internal */
276
+ this._subCategoryOverrides = new core_bentley_1.Id64.Uint32Map();
277
+ /** The set of displayed subcategories. Geometry belonging to subcategories not included in this set will not be drawn. @internal */
278
+ this._visibleSubCategories = new core_bentley_1.Id64.Uint32Set();
279
+ /** Display priorities assigned to subcategories, possibly overridden by display style. Only applicable for plan projection models. @internal */
280
+ this._subCategoryPriorities = new core_bentley_1.Id64.Uint32Map();
281
+ /** Per-model, a set of subcategories whose visibility should be inverted for elements within that model.
282
+ * Populated by Viewport.
283
+ * @internal
284
+ */
285
+ this._modelSubCategoryOverrides = new core_bentley_1.Id64.Uint32Map();
286
+ /** Ids of animation nodes that should never be drawn.
287
+ * @internal
288
+ */
289
+ this.neverDrawnAnimationNodes = new Set();
290
+ /** Mapping of animation node Ids to overrides applied to the corresponding animation nodes.
291
+ * @internal
292
+ */
293
+ this.animationNodeOverrides = new Map();
294
+ //
295
+ }
296
+ /** Accepts a criterion that determines whether color and transparency overrides originating from the view's [[RenderSchedule.Script]] should be ignored for a given element.
297
+ * The function receives a description of the element in question and returns `true` if the script's overrides should be ignored.
298
+ * Any number of such functions can be registered; if any one of them returns `true`, the script's overrides are not applied to the specified element.
299
+ *
300
+ * For example, applications commonly emphasize a set of elements by applying a [[FeatureAppearance.emphasized]] override to them, and specifying a highly-transparent
301
+ * default appearance to de-emphasize the rest of the elements in the view. If some of the de-emphasized elements' appearances are also being overridden by the schedule script, then
302
+ * they won't appear de-emphasized, making it difficult for the emphasized elements to stand out. In situations like this, [FeatureOverrideProvider]($frontend)s like [EmphasizeElements]($frontend) can register an [[IgnoreAnimationOverrides]] function that returns true if the element in question is not in the set of emphasized elements.
303
+ */
304
+ ignoreAnimationOverrides(ignore) {
305
+ this._ignoreAnimationOverrides.push(ignore);
306
+ }
307
+ /** Overrides applied to features for which no other overrides are defined */
308
+ get defaultOverrides() { return this._defaultOverrides; }
309
+ /** Whether or not line weights are applied. If false, all lines are drawn with a weight of 1. */
310
+ get lineWeights() { return this._lineWeights; }
311
+ /** @internal */
312
+ get neverDrawn() { return this._neverDrawn; }
313
+ /** @internal */
314
+ get alwaysDrawn() { return this._alwaysDrawn; }
315
+ /** @internal */
316
+ isNeverDrawn(elemIdLo, elemIdHi, animationNodeId) {
317
+ if (this._neverDrawn.has(elemIdLo, elemIdHi))
318
+ return true;
319
+ else
320
+ return this.neverDrawnAnimationNodes.has(animationNodeId);
321
+ }
322
+ /** @internal */
323
+ isAlwaysDrawn(idLo, idHi) { return this._alwaysDrawn.has(idLo, idHi); }
324
+ /** Returns true if the [SubCategory]($backend) specified by Id is in the set of visible subcategories. @internal */
325
+ isSubCategoryVisible(idLo, idHi) { return this._visibleSubCategories.has(idLo, idHi); }
326
+ /** @internal */
327
+ isSubCategoryVisibleInModel(subcatLo, subcatHi, modelLo, modelHi) {
328
+ if (this.ignoreSubCategory)
329
+ return true;
330
+ let vis = this.isSubCategoryVisible(subcatLo, subcatHi);
331
+ const modelOvr = this._modelSubCategoryOverrides.get(modelLo, modelHi);
332
+ if (undefined !== modelOvr && modelOvr.has(subcatLo, subcatHi))
333
+ vis = !vis;
334
+ return vis;
335
+ }
336
+ /** @internal */
337
+ getModelOverrides(idLo, idHi) {
338
+ return this._modelOverrides.get(idLo, idHi);
339
+ }
340
+ getElementAnimationOverrides(idLo, idHi, animationNodeId) {
341
+ if (this.animationNodeOverrides.size === 0)
342
+ return undefined;
343
+ // NB: An animation node Id of zero means "not animated". Some providers like EmphasizeElements may provide an appearance override for unanimated nodes.
344
+ // That should be preserved.
345
+ const app = this.animationNodeOverrides.get(animationNodeId);
346
+ if (!app || 0 === animationNodeId || this._ignoreAnimationOverrides.length === 0)
347
+ return app;
348
+ const args = scratchIgnoreAnimationOverridesArgs;
349
+ args.elementId.lower = idLo;
350
+ args.elementId.upper = idHi;
351
+ args.animationNodeId = animationNodeId;
352
+ return this._ignoreAnimationOverrides.some((ignore) => ignore(args)) ? undefined : app;
353
+ }
354
+ /** @internal */
355
+ getElementOverrides(idLo, idHi, animationNodeId) {
356
+ const elemApp = this._elementOverrides.get(idLo, idHi);
357
+ const nodeApp = this.getElementAnimationOverrides(idLo, idHi, animationNodeId);
358
+ if (elemApp)
359
+ return nodeApp ? nodeApp.extendAppearance(elemApp) : elemApp;
360
+ return nodeApp;
361
+ }
362
+ /** @internal */
363
+ getSubCategoryOverrides(idLo, idHi) { return this._subCategoryOverrides.get(idLo, idHi); }
364
+ /** Add a [SubCategory]($backend) to the set of visible subcategories. */
365
+ setVisibleSubCategory(id) { this._visibleSubCategories.addId(id); }
366
+ /** Specify the Id of an element that should never be drawn. */
367
+ setNeverDrawn(id) { this._neverDrawn.addId(id); }
368
+ /** Specify the Id of an element that should always be drawn. */
369
+ setAlwaysDrawn(id) { this._alwaysDrawn.addId(id); }
370
+ /** Specify the Id of a animation node that should never be drawn. */
371
+ setAnimationNodeNeverDrawn(id) { this.neverDrawnAnimationNodes.add(id); }
372
+ /** Specify the Ids of elements that should never be drawn. */
373
+ setNeverDrawnSet(ids) { copyIdSetToUint32Set(this._neverDrawn, ids); }
374
+ /** Specify the Ids of elements that should always be drawn. */
375
+ setAlwaysDrawnSet(ids, exclusive, ignoreSubCategory = true) {
376
+ copyIdSetToUint32Set(this._alwaysDrawn, ids);
377
+ this.isAlwaysDrawnExclusive = exclusive;
378
+ this.alwaysDrawnIgnoresSubCategory = ignoreSubCategory;
379
+ }
380
+ /** Returns the feature's appearance overrides, or undefined if the feature is not visible. */
381
+ getFeatureAppearance(feature, modelId, type = FeatureTable_1.BatchType.Primary, animationNodeId = 0) {
382
+ return this.getAppearance(core_bentley_1.Id64.getLowerUint32(feature.elementId), core_bentley_1.Id64.getUpperUint32(feature.elementId), core_bentley_1.Id64.getLowerUint32(feature.subCategoryId), core_bentley_1.Id64.getUpperUint32(feature.subCategoryId), feature.geometryClass, core_bentley_1.Id64.getLowerUint32(modelId), core_bentley_1.Id64.getUpperUint32(modelId), type, animationNodeId);
383
+ }
384
+ /** Returns a feature's appearance overrides, or undefined if the feature is not visible.
385
+ * Takes Id64s as pairs of unsigned 32-bit integers for efficiency, because that is how they are stored by the PackedFeatureTable associated with each batch of graphics.
386
+ * @see [[getFeatureAppearance]] for an equivalent function that accepts [Id64String]($core-bentley)s instead of integer pairs.
387
+ */
388
+ getAppearance(elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) {
389
+ if (FeatureTable_1.BatchType.VolumeClassifier === type || FeatureTable_1.BatchType.PlanarClassifier === type)
390
+ return this.getClassifierAppearance(elemLo, elemHi, subcatLo, subcatHi, modelLo, modelHi, animationNodeId);
391
+ let app = !this._lineWeights ? FeatureOverrides._weight1Appearance : FeatureAppearance.defaults;
392
+ const modelApp = this.getModelOverrides(modelLo, modelHi);
393
+ if (undefined !== modelApp)
394
+ app = modelApp.extendAppearance(app);
395
+ // Is the element visible?
396
+ let elemApp, alwaysDrawn = false;
397
+ if (core_bentley_1.Id64.isValidUint32Pair(elemLo, elemHi)) {
398
+ if (this.isNeverDrawn(elemLo, elemHi, animationNodeId))
399
+ return undefined;
400
+ alwaysDrawn = this.isAlwaysDrawn(elemLo, elemHi);
401
+ if (!alwaysDrawn && this.isAlwaysDrawnExclusive)
402
+ return undefined;
403
+ // Element overrides take precedence
404
+ elemApp = this.getElementOverrides(elemLo, elemHi, animationNodeId);
405
+ if (undefined !== elemApp)
406
+ app = undefined !== modelApp ? elemApp.extendAppearance(app) : elemApp;
407
+ }
408
+ let subCatApp;
409
+ if (!this.ignoreSubCategory && core_bentley_1.Id64.isValidUint32Pair(subcatLo, subcatHi)) {
410
+ if ((!alwaysDrawn || !this.alwaysDrawnIgnoresSubCategory) && !this.isSubCategoryVisibleInModel(subcatLo, subcatHi, modelLo, modelHi))
411
+ return undefined;
412
+ subCatApp = this.getSubCategoryOverrides(subcatLo, subcatHi);
413
+ if (undefined !== subCatApp)
414
+ app = subCatApp.extendAppearance(app);
415
+ }
416
+ // Only apply default if *no* appearance was explicitly registered (doesn't matter if registered appearance does not actually override anything)
417
+ if (undefined === elemApp && undefined === modelApp && undefined === subCatApp)
418
+ app = this._defaultOverrides.extendAppearance(app);
419
+ let visible = alwaysDrawn || this.isClassVisible(geomClass);
420
+ if (visible && app.isFullyTransparent)
421
+ visible = false; // don't bother rendering something with full transparency...
422
+ return visible ? app : undefined;
423
+ }
424
+ /** Classifiers behave totally differently...in particular they are never invisible unless fully-transparent.
425
+ * @internal
426
+ */
427
+ getClassifierAppearance(elemLo, elemHi, subcatLo, subcatHi, modelLo, modelHi, animationNodeId) {
428
+ let app = FeatureAppearance.defaults;
429
+ const modelApp = this.getModelOverrides(modelLo, modelHi);
430
+ if (undefined !== modelApp)
431
+ app = modelApp.extendAppearance(app);
432
+ const elemApp = this.getElementOverrides(elemLo, elemHi, animationNodeId);
433
+ if (undefined !== elemApp)
434
+ app = undefined !== modelApp ? elemApp.extendAppearance(app) : elemApp;
435
+ if (!this.ignoreSubCategory && core_bentley_1.Id64.isValidUint32Pair(subcatLo, subcatHi)) {
436
+ const subCat = this.getSubCategoryOverrides(subcatLo, subcatHi);
437
+ if (undefined !== subCat)
438
+ app = subCat.extendAppearance(app);
439
+ }
440
+ if (undefined === elemApp && undefined === modelApp)
441
+ app = this._defaultOverrides.extendAppearance(app);
442
+ // NB: A fully-transparent classifier means the classifier is a clip mask - classified pixels will be discarded.
443
+ return app;
444
+ }
445
+ /** Return whether geometry of the specified class should be drawn.
446
+ * @see [[ViewFlags.constructions]], [[ViewFlags.dimensions]], and [[ViewFlags.patterns]].
447
+ */
448
+ isClassVisible(geomClass) {
449
+ switch (geomClass) {
450
+ case GeometryParams_1.GeometryClass.Construction: return this._constructions;
451
+ case GeometryParams_1.GeometryClass.Dimension: return this._dimensions;
452
+ case GeometryParams_1.GeometryClass.Pattern: return this._patterns;
453
+ default: return true;
454
+ }
455
+ }
456
+ /** Specify overrides for all elements belonging to a specified [GeometricModel]($backend), or all geometry belonging to a specified [GeometricElement]($backend) or [SubCategory]($backend). */
457
+ override(args) {
458
+ let id;
459
+ let map;
460
+ if (undefined !== args.elementId) {
461
+ id = args.elementId;
462
+ map = this._elementOverrides;
463
+ }
464
+ else if (undefined !== args.modelId) {
465
+ id = args.modelId;
466
+ map = this._modelOverrides;
467
+ }
468
+ else {
469
+ id = args.subCategoryId;
470
+ map = this._subCategoryOverrides;
471
+ }
472
+ let app = args.appearance;
473
+ const idLo = core_bentley_1.Id64.getLowerUint32(id);
474
+ const idHi = core_bentley_1.Id64.getUpperUint32(id);
475
+ if (undefined !== args.elementId && this.isNeverDrawn(idLo, idHi, 0))
476
+ return;
477
+ const replace = "replace" === args.onConflict;
478
+ const existing = replace ? undefined : map.get(idLo, idHi);
479
+ if (existing) {
480
+ (0, core_bentley_1.assert)("replace" !== args.onConflict);
481
+ switch (args.onConflict) {
482
+ case "skip":
483
+ return;
484
+ case "extend":
485
+ app = app.extendAppearance(existing);
486
+ break;
487
+ default:
488
+ app = existing.extendAppearance(app);
489
+ break;
490
+ }
491
+ }
492
+ map.set(idLo, idHi, app);
493
+ }
494
+ /** Specify overrides for all elements within the specified model.
495
+ * @param id The Id of the model.
496
+ * @param app The symbology overrides.
497
+ * @param replaceExisting Specifies whether to replace a pre-existing override for the same model.
498
+ * @note These overrides take priority over all other overrides.
499
+ * @note If [[defaultOverrides]] are defined, they will not apply to any element within this model, even if the supplied appearance overrides nothing.
500
+ * @deprecated Use [[FeatureOverrides.override]].
501
+ */
502
+ overrideModel(id, app, replaceExisting = true) {
503
+ this.override({ modelId: id, appearance: app, onConflict: replaceExisting ? "replace" : "skip" });
504
+ }
505
+ /** Specify overrides for all geometry belonging to the specified [SubCategory]($backend).
506
+ * @param id The Id of the subcategory.
507
+ * @param app The symbology overrides.
508
+ * @param replaceExisting Specifies whether to replace a pre-existing override for the same subcategory.
509
+ * @note These overrides have lower priority than element and model overrides.
510
+ * @note If [[defaultOverrides]] are defined, they will not apply to any geometry within this subcategory, even if the supplied appearance overrides nothing.
511
+ * @deprecated Use [[FeatureOverrides.override]].
512
+ */
513
+ overrideSubCategory(id, app, replaceExisting = true) {
514
+ this.override({ subCategoryId: id, appearance: app, onConflict: replaceExisting ? "replace" : "skip" });
515
+ }
516
+ /** Specify overrides for all geometry originating from the specified element.
517
+ * @param id The Id of the element.
518
+ * @param app The symbology overrides.
519
+ * @param replaceExisting Specifies whether to replace a pre-existing override for the same element.
520
+ * @note These overrides take precedence over subcategory overrides, but not over model overrides.
521
+ * @note If [[defaultOverrides]] are defined, they will not apply to this element, even if the supplied appearance overrides nothing.
522
+ * @deprecated Use [[FeatureOverrides.override]].
523
+ */
524
+ overrideElement(id, app, replaceExisting = true) {
525
+ this.override({ elementId: id, appearance: app, onConflict: replaceExisting ? "replace" : "skip" });
526
+ }
527
+ /** Specify overrides for all geometry originating from the specified animation node.
528
+ * @param id The Id of the animation node.
529
+ * @param app The symbology overrides.
530
+ * @note These overrides do not take precedence over element overrides.
531
+ */
532
+ overrideAnimationNode(id, app) {
533
+ this.animationNodeOverrides.set(id, app);
534
+ }
535
+ /** Defines a default appearance to be applied to any [[Feature]] *not* explicitly overridden.
536
+ * @param appearance The symbology overrides.
537
+ * @param replaceExisting Specifies whether to replace the current default overrides if they are already defined.
538
+ */
539
+ setDefaultOverrides(appearance, replaceExisting = true) {
540
+ if (replaceExisting || !appearance.overridesSymbology)
541
+ this._defaultOverrides = appearance;
542
+ }
543
+ /** Get the display priority of a subcategory. This is only relevant when using [[PlanProjectionSettings]].
544
+ * @internal
545
+ */
546
+ getSubCategoryPriority(idLo, idHi) {
547
+ var _a;
548
+ return (_a = this._subCategoryPriorities.get(idLo, idHi)) !== null && _a !== void 0 ? _a : 0;
549
+ }
550
+ /** Returns true if geometry belonging to the specified subcategory will be drawn. */
551
+ isSubCategoryIdVisible(id) { return this.isSubCategoryVisible(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id)); }
552
+ /** Returns the overrides applied to geometry belonging to the specified model, if any such are defined. */
553
+ getModelOverridesById(id) { return this.getModelOverrides(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id)); }
554
+ /** Returns the overrides applied to geometry belonging to the specified element, if any such are defined. */
555
+ getElementOverridesById(id) { return this.getElementOverrides(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id), 0); }
556
+ /** Returns the overrides applied to geometry belonging to the specified subcategory, if any such are defined. */
557
+ getSubCategoryOverridesById(id) { return this.getSubCategoryOverrides(core_bentley_1.Id64.getLowerUint32(id), core_bentley_1.Id64.getUpperUint32(id)); }
558
+ /** Returns true if the specified Feature will be drawn. */
559
+ isFeatureVisible(feature) {
560
+ const { elementId, subCategoryId, geometryClass } = feature;
561
+ const isValidElemId = !core_bentley_1.Id64.isInvalid(elementId);
562
+ const elemIdParts = isValidElemId ? core_bentley_1.Id64.getUint32Pair(elementId) : undefined;
563
+ if (undefined !== elemIdParts && this.isNeverDrawn(elemIdParts.lower, elemIdParts.upper, 0))
564
+ return false;
565
+ const alwaysDrawn = undefined !== elemIdParts && this.isAlwaysDrawn(elemIdParts.lower, elemIdParts.upper);
566
+ if (alwaysDrawn || this.isAlwaysDrawnExclusive)
567
+ return alwaysDrawn;
568
+ // NB: This ignores per-model subcategory visibility overrides, because caller did not specify a model.
569
+ if (!this.isSubCategoryIdVisible(subCategoryId))
570
+ return false;
571
+ return this.isClassVisible(geometryClass);
572
+ }
573
+ }
574
+ exports.FeatureOverrides = FeatureOverrides;
575
+ FeatureOverrides._weight1Appearance = FeatureAppearance.fromJSON({ weight: 1 });
576
+ /** @public */
577
+ var FeatureAppearanceProvider;
578
+ (function (FeatureAppearanceProvider) {
579
+ /** Produce a FeatureAppearanceSource for which `getAppearance()` returns the appearance specified in `source`, potentially modified by `provider`. */
580
+ function wrap(source, provider) {
581
+ return {
582
+ getAppearance: (elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) => {
583
+ return provider.getFeatureAppearance(source, elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);
584
+ },
585
+ };
586
+ }
587
+ /** Create a provider that obtains each feature's appearance from the source, and if the feature is visible, modifies the appearance.
588
+ * @param supplementAppearance A function accepting the feature's base appearance and returning a supplemental appearance.
589
+ * @public
590
+ */
591
+ function supplement(supplementAppearance) {
592
+ return {
593
+ getFeatureAppearance: (source, elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) => {
594
+ const app = source.getAppearance(elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);
595
+ return app ? supplementAppearance(app) : app;
596
+ },
597
+ };
598
+ }
599
+ FeatureAppearanceProvider.supplement = supplement;
600
+ /** Chain two FeatureAppearanceProviders together such that `first`'s `getFeatureAppearance` function is applied before `second`'s.
601
+ * If `second` invokes `source.getAppearance()`, the returned appearance will include any modifications applied by `first`.
602
+ * @public
603
+ */
604
+ function chain(first, second) {
605
+ if (first === second)
606
+ return first;
607
+ return {
608
+ getFeatureAppearance: (source, elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId) => {
609
+ return second.getFeatureAppearance(wrap(source, first), elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);
610
+ },
611
+ };
612
+ }
613
+ FeatureAppearanceProvider.chain = chain;
614
+ })(FeatureAppearanceProvider = exports.FeatureAppearanceProvider || (exports.FeatureAppearanceProvider = {}));
615
615
  //# sourceMappingURL=FeatureSymbology.js.map