@itwin/core-common 3.5.0-dev.63 → 3.5.0-dev.66

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 (954) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  3. package/lib/cjs/AmbientOcclusion.js +55 -55
  4. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  5. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  6. package/lib/cjs/AnalysisStyle.js +165 -165
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/AuthorizationClient.d.ts +11 -11
  9. package/lib/cjs/AuthorizationClient.js +9 -9
  10. package/lib/cjs/AuthorizationClient.js.map +1 -1
  11. package/lib/cjs/BackendTypes.d.ts +12 -12
  12. package/lib/cjs/BackendTypes.js +9 -9
  13. package/lib/cjs/BackendTypes.js.map +1 -1
  14. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  15. package/lib/cjs/BackgroundMapProvider.js +68 -68
  16. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  17. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  18. package/lib/cjs/BackgroundMapSettings.js +156 -156
  19. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  20. package/lib/cjs/Base64EncodedString.d.ts +32 -32
  21. package/lib/cjs/Base64EncodedString.js +66 -66
  22. package/lib/cjs/Base64EncodedString.js.map +1 -1
  23. package/lib/cjs/BlobReader.d.ts +31 -31
  24. package/lib/cjs/BlobReader.js +84 -84
  25. package/lib/cjs/BlobReader.js.map +1 -1
  26. package/lib/cjs/BriefcaseTypes.d.ts +189 -189
  27. package/lib/cjs/BriefcaseTypes.js +95 -95
  28. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  29. package/lib/cjs/Camera.d.ts +42 -42
  30. package/lib/cjs/Camera.js +62 -62
  31. package/lib/cjs/Camera.js.map +1 -1
  32. package/lib/cjs/ChangedElements.d.ts +85 -83
  33. package/lib/cjs/ChangedElements.d.ts.map +1 -1
  34. package/lib/cjs/ChangedElements.js +23 -21
  35. package/lib/cjs/ChangedElements.js.map +1 -1
  36. package/lib/cjs/ChangedEntities.d.ts +45 -45
  37. package/lib/cjs/ChangedEntities.js +9 -9
  38. package/lib/cjs/ChangedEntities.js.map +1 -1
  39. package/lib/cjs/ChangesetProps.d.ts +98 -98
  40. package/lib/cjs/ChangesetProps.js +22 -22
  41. package/lib/cjs/ChangesetProps.js.map +1 -1
  42. package/lib/cjs/ClipStyle.d.ts +89 -89
  43. package/lib/cjs/ClipStyle.js +123 -123
  44. package/lib/cjs/ClipStyle.js.map +1 -1
  45. package/lib/cjs/CloudStorage.d.ts +62 -62
  46. package/lib/cjs/CloudStorage.js +113 -113
  47. package/lib/cjs/CloudStorage.js.map +1 -1
  48. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  49. package/lib/cjs/CloudStorageTileCache.js +66 -66
  50. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  51. package/lib/cjs/Code.d.ts +256 -256
  52. package/lib/cjs/Code.js +281 -281
  53. package/lib/cjs/Code.js.map +1 -1
  54. package/lib/cjs/ColorByName.d.ts +161 -161
  55. package/lib/cjs/ColorByName.js +169 -169
  56. package/lib/cjs/ColorByName.js.map +1 -1
  57. package/lib/cjs/ColorDef.d.ts +208 -208
  58. package/lib/cjs/ColorDef.js +571 -571
  59. package/lib/cjs/ColorDef.js.map +1 -1
  60. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  61. package/lib/cjs/CommonLoggerCategory.js +26 -26
  62. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  63. package/lib/cjs/ConcurrentQuery.d.ts +421 -421
  64. package/lib/cjs/ConcurrentQuery.js +552 -552
  65. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  66. package/lib/cjs/ContextRealityModel.d.ts +276 -276
  67. package/lib/cjs/ContextRealityModel.js +358 -358
  68. package/lib/cjs/ContextRealityModel.js.map +1 -1
  69. package/lib/cjs/DisplayStyleSettings.d.ts +584 -584
  70. package/lib/cjs/DisplayStyleSettings.js +981 -981
  71. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  72. package/lib/cjs/ECSchemaProps.d.ts +39 -39
  73. package/lib/cjs/ECSchemaProps.js +9 -9
  74. package/lib/cjs/ECSchemaProps.js.map +1 -1
  75. package/lib/cjs/ECSqlReader.d.ts +70 -70
  76. package/lib/cjs/ECSqlReader.js +280 -280
  77. package/lib/cjs/ECSqlReader.js.map +1 -1
  78. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  79. package/lib/cjs/ECSqlTypes.js +189 -189
  80. package/lib/cjs/ECSqlTypes.js.map +1 -1
  81. package/lib/cjs/ElementMesh.d.ts +39 -39
  82. package/lib/cjs/ElementMesh.js +56 -56
  83. package/lib/cjs/ElementMesh.js.map +1 -1
  84. package/lib/cjs/ElementProps.d.ts +479 -479
  85. package/lib/cjs/ElementProps.js +99 -99
  86. package/lib/cjs/ElementProps.js.map +1 -1
  87. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  88. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  89. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  90. package/lib/cjs/EntityProps.d.ts +176 -176
  91. package/lib/cjs/EntityProps.js +112 -112
  92. package/lib/cjs/EntityProps.js.map +1 -1
  93. package/lib/cjs/EntityReference.d.ts +51 -51
  94. package/lib/cjs/EntityReference.js +56 -56
  95. package/lib/cjs/EntityReference.js.map +1 -1
  96. package/lib/cjs/Environment.d.ts +61 -61
  97. package/lib/cjs/Environment.js +73 -73
  98. package/lib/cjs/Environment.js.map +1 -1
  99. package/lib/cjs/FeatureGates.d.ts +31 -31
  100. package/lib/cjs/FeatureGates.js +55 -55
  101. package/lib/cjs/FeatureGates.js.map +1 -1
  102. package/lib/cjs/FeatureIndex.d.ts +39 -39
  103. package/lib/cjs/FeatureIndex.js +63 -63
  104. package/lib/cjs/FeatureIndex.js.map +1 -1
  105. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  106. package/lib/cjs/FeatureSymbology.js +614 -614
  107. package/lib/cjs/FeatureSymbology.js.map +1 -1
  108. package/lib/cjs/FeatureTable.d.ts +141 -141
  109. package/lib/cjs/FeatureTable.js +278 -278
  110. package/lib/cjs/FeatureTable.js.map +1 -1
  111. package/lib/cjs/Fonts.d.ts +51 -51
  112. package/lib/cjs/Fonts.js +53 -53
  113. package/lib/cjs/Fonts.js.map +1 -1
  114. package/lib/cjs/Frustum.d.ts +114 -114
  115. package/lib/cjs/Frustum.js +292 -292
  116. package/lib/cjs/Frustum.js.map +1 -1
  117. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  118. package/lib/cjs/GeoCoordinateServices.js +80 -80
  119. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  120. package/lib/cjs/GeometryContainment.d.ts +28 -28
  121. package/lib/cjs/GeometryContainment.js +9 -9
  122. package/lib/cjs/GeometryContainment.js.map +1 -1
  123. package/lib/cjs/GeometryParams.d.ts +130 -130
  124. package/lib/cjs/GeometryParams.js +174 -174
  125. package/lib/cjs/GeometryParams.js.map +1 -1
  126. package/lib/cjs/GeometrySummary.d.ts +45 -45
  127. package/lib/cjs/GeometrySummary.js +23 -23
  128. package/lib/cjs/GeometrySummary.js.map +1 -1
  129. package/lib/cjs/Gradient.d.ts +139 -139
  130. package/lib/cjs/Gradient.js +455 -455
  131. package/lib/cjs/Gradient.js.map +1 -1
  132. package/lib/cjs/GraphicParams.d.ts +58 -58
  133. package/lib/cjs/GraphicParams.js +85 -85
  134. package/lib/cjs/GraphicParams.js.map +1 -1
  135. package/lib/cjs/GroundPlane.d.ts +52 -52
  136. package/lib/cjs/GroundPlane.js +64 -64
  137. package/lib/cjs/GroundPlane.js.map +1 -1
  138. package/lib/cjs/HSLColor.d.ts +20 -20
  139. package/lib/cjs/HSLColor.js +32 -32
  140. package/lib/cjs/HSLColor.js.map +1 -1
  141. package/lib/cjs/HSVColor.d.ts +30 -30
  142. package/lib/cjs/HSVColor.js +59 -59
  143. package/lib/cjs/HSVColor.js.map +1 -1
  144. package/lib/cjs/HiddenLine.d.ts +97 -97
  145. package/lib/cjs/HiddenLine.js +162 -162
  146. package/lib/cjs/HiddenLine.js.map +1 -1
  147. package/lib/cjs/Hilite.d.ts +50 -50
  148. package/lib/cjs/Hilite.js +64 -64
  149. package/lib/cjs/Hilite.js.map +1 -1
  150. package/lib/cjs/IModel.d.ts +359 -359
  151. package/lib/cjs/IModel.js +347 -347
  152. package/lib/cjs/IModel.js.map +1 -1
  153. package/lib/cjs/IModelError.d.ts +36 -36
  154. package/lib/cjs/IModelError.js +72 -72
  155. package/lib/cjs/IModelError.js.map +1 -1
  156. package/lib/cjs/IModelVersion.d.ts +68 -68
  157. package/lib/cjs/IModelVersion.js +79 -79
  158. package/lib/cjs/IModelVersion.js.map +1 -1
  159. package/lib/cjs/Image.d.ts +86 -86
  160. package/lib/cjs/Image.js +128 -128
  161. package/lib/cjs/Image.js.map +1 -1
  162. package/lib/cjs/IpcAppProps.d.ts +141 -141
  163. package/lib/cjs/IpcAppProps.js +23 -23
  164. package/lib/cjs/IpcAppProps.js.map +1 -1
  165. package/lib/cjs/LightSettings.d.ts +224 -224
  166. package/lib/cjs/LightSettings.js +309 -309
  167. package/lib/cjs/LightSettings.js.map +1 -1
  168. package/lib/cjs/LinePixels.d.ts +34 -34
  169. package/lib/cjs/LinePixels.js +42 -42
  170. package/lib/cjs/LinePixels.js.map +1 -1
  171. package/lib/cjs/Localization.d.ts +113 -113
  172. package/lib/cjs/Localization.js +26 -26
  173. package/lib/cjs/Localization.js.map +1 -1
  174. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  175. package/lib/cjs/MapImagerySettings.js +80 -80
  176. package/lib/cjs/MapImagerySettings.js.map +1 -1
  177. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  178. package/lib/cjs/MapLayerSettings.js +411 -411
  179. package/lib/cjs/MapLayerSettings.js.map +1 -1
  180. package/lib/cjs/MassProperties.d.ts +64 -64
  181. package/lib/cjs/MassProperties.js +23 -23
  182. package/lib/cjs/MassProperties.js.map +1 -1
  183. package/lib/cjs/MaterialProps.d.ts +118 -118
  184. package/lib/cjs/MaterialProps.js +23 -23
  185. package/lib/cjs/MaterialProps.js.map +1 -1
  186. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  187. package/lib/cjs/ModelClipGroup.js +98 -98
  188. package/lib/cjs/ModelClipGroup.js.map +1 -1
  189. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  190. package/lib/cjs/ModelGeometryChanges.js +83 -83
  191. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  192. package/lib/cjs/ModelProps.d.ts +67 -67
  193. package/lib/cjs/ModelProps.js +9 -9
  194. package/lib/cjs/ModelProps.js.map +1 -1
  195. package/lib/cjs/NativeAppProps.d.ts +122 -122
  196. package/lib/cjs/NativeAppProps.js +30 -30
  197. package/lib/cjs/NativeAppProps.js.map +1 -1
  198. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  199. package/lib/cjs/OctEncodedNormal.js +98 -98
  200. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  201. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  202. package/lib/cjs/PlanProjectionSettings.js +63 -63
  203. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  204. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  205. package/lib/cjs/PlanarClipMask.js +136 -136
  206. package/lib/cjs/PlanarClipMask.js.map +1 -1
  207. package/lib/cjs/QPoint.d.ts +479 -479
  208. package/lib/cjs/QPoint.js +826 -826
  209. package/lib/cjs/QPoint.js.map +1 -1
  210. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  211. package/lib/cjs/RealityDataAccessProps.js +19 -19
  212. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  213. package/lib/cjs/RealityModelDisplaySettings.d.ts +118 -118
  214. package/lib/cjs/RealityModelDisplaySettings.js +114 -114
  215. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  216. package/lib/cjs/Render.d.ts +89 -89
  217. package/lib/cjs/Render.js +177 -177
  218. package/lib/cjs/Render.js.map +1 -1
  219. package/lib/cjs/RenderMaterial.d.ts +58 -58
  220. package/lib/cjs/RenderMaterial.js +76 -76
  221. package/lib/cjs/RenderMaterial.js.map +1 -1
  222. package/lib/cjs/RenderSchedule.d.ts +543 -543
  223. package/lib/cjs/RenderSchedule.js +1002 -1002
  224. package/lib/cjs/RenderTexture.d.ts +70 -70
  225. package/lib/cjs/RenderTexture.js +59 -59
  226. package/lib/cjs/RenderTexture.js.map +1 -1
  227. package/lib/cjs/RgbColor.d.ts +47 -47
  228. package/lib/cjs/RgbColor.js +77 -77
  229. package/lib/cjs/RgbColor.js.map +1 -1
  230. package/lib/cjs/RpcInterface.d.ts +33 -33
  231. package/lib/cjs/RpcInterface.js +137 -137
  232. package/lib/cjs/RpcInterface.js.map +1 -1
  233. package/lib/cjs/RpcManager.d.ts +40 -40
  234. package/lib/cjs/RpcManager.js +55 -55
  235. package/lib/cjs/RpcManager.js.map +1 -1
  236. package/lib/cjs/SessionProps.d.ts +16 -16
  237. package/lib/cjs/SessionProps.js +9 -9
  238. package/lib/cjs/SessionProps.js.map +1 -1
  239. package/lib/cjs/SkyBox.d.ts +215 -215
  240. package/lib/cjs/SkyBox.js +210 -210
  241. package/lib/cjs/SkyBox.js.map +1 -1
  242. package/lib/cjs/Snapping.d.ts +49 -49
  243. package/lib/cjs/Snapping.js +9 -9
  244. package/lib/cjs/Snapping.js.map +1 -1
  245. package/lib/cjs/SolarCalculate.d.ts +27 -27
  246. package/lib/cjs/SolarCalculate.js +211 -211
  247. package/lib/cjs/SolarCalculate.js.map +1 -1
  248. package/lib/cjs/SolarShadows.d.ts +35 -35
  249. package/lib/cjs/SolarShadows.js +62 -62
  250. package/lib/cjs/SolarShadows.js.map +1 -1
  251. package/lib/cjs/SpatialClassification.d.ts +208 -208
  252. package/lib/cjs/SpatialClassification.js +340 -340
  253. package/lib/cjs/SpatialClassification.js.map +1 -1
  254. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  255. package/lib/cjs/SubCategoryAppearance.js +96 -96
  256. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  257. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  258. package/lib/cjs/SubCategoryOverride.js +104 -104
  259. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  260. package/lib/cjs/TerrainSettings.d.ts +82 -82
  261. package/lib/cjs/TerrainSettings.js +102 -102
  262. package/lib/cjs/TerrainSettings.js.map +1 -1
  263. package/lib/cjs/TextureMapping.d.ts +116 -101
  264. package/lib/cjs/TextureMapping.d.ts.map +1 -1
  265. package/lib/cjs/TextureMapping.js +174 -174
  266. package/lib/cjs/TextureMapping.js.map +1 -1
  267. package/lib/cjs/TextureProps.d.ts +65 -65
  268. package/lib/cjs/TextureProps.js +28 -28
  269. package/lib/cjs/TextureProps.js.map +1 -1
  270. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  271. package/lib/cjs/ThematicDisplay.js +344 -344
  272. package/lib/cjs/ThematicDisplay.js.map +1 -1
  273. package/lib/cjs/Thumbnail.d.ts +26 -26
  274. package/lib/cjs/Thumbnail.js +9 -9
  275. package/lib/cjs/Thumbnail.js.map +1 -1
  276. package/lib/cjs/TileProps.d.ts +82 -82
  277. package/lib/cjs/TileProps.js +29 -29
  278. package/lib/cjs/TileProps.js.map +1 -1
  279. package/lib/cjs/Tween.d.ts +191 -191
  280. package/lib/cjs/Tween.js +570 -570
  281. package/lib/cjs/Tween.js.map +1 -1
  282. package/lib/cjs/TxnAction.d.ts +21 -21
  283. package/lib/cjs/TxnAction.js +29 -29
  284. package/lib/cjs/TxnAction.js.map +1 -1
  285. package/lib/cjs/ViewDetails.d.ts +125 -125
  286. package/lib/cjs/ViewDetails.d.ts.map +1 -1
  287. package/lib/cjs/ViewDetails.js +166 -158
  288. package/lib/cjs/ViewDetails.js.map +1 -1
  289. package/lib/cjs/ViewFlags.d.ts +291 -291
  290. package/lib/cjs/ViewFlags.js +368 -368
  291. package/lib/cjs/ViewFlags.js.map +1 -1
  292. package/lib/cjs/ViewProps.d.ts +205 -205
  293. package/lib/cjs/ViewProps.js +9 -9
  294. package/lib/cjs/ViewProps.js.map +1 -1
  295. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  296. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  297. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  298. package/lib/cjs/core-common.d.ts +245 -245
  299. package/lib/cjs/core-common.js +261 -261
  300. package/lib/cjs/core-common.js.map +1 -1
  301. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  302. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  303. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  304. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  305. package/lib/cjs/domains/GenericElementProps.js +9 -9
  306. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  307. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  308. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  309. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  310. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  311. package/lib/cjs/geometry/AreaPattern.js +204 -204
  312. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  313. package/lib/cjs/geometry/BoundingSphere.d.ts +14 -14
  314. package/lib/cjs/geometry/BoundingSphere.js +30 -30
  315. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  316. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  317. package/lib/cjs/geometry/Cartographic.js +345 -345
  318. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  319. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  320. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  321. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  322. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  323. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  324. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  325. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  326. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  327. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  328. package/lib/cjs/geometry/FrustumPlanes.d.ts +32 -32
  329. package/lib/cjs/geometry/FrustumPlanes.js +132 -132
  330. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  331. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  332. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  333. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  334. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  335. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  336. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  337. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  338. package/lib/cjs/geometry/GeometryStream.js +469 -469
  339. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  340. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  341. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  342. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  343. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  344. package/lib/cjs/geometry/LineStyle.js +129 -129
  345. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  346. package/lib/cjs/geometry/Placement.d.ts +95 -95
  347. package/lib/cjs/geometry/Placement.js +131 -131
  348. package/lib/cjs/geometry/Placement.js.map +1 -1
  349. package/lib/cjs/geometry/Projection.d.ts +251 -251
  350. package/lib/cjs/geometry/Projection.js +198 -198
  351. package/lib/cjs/geometry/Projection.js.map +1 -1
  352. package/lib/cjs/geometry/TextString.d.ts +55 -55
  353. package/lib/cjs/geometry/TextString.js +65 -65
  354. package/lib/cjs/geometry/TextString.js.map +1 -1
  355. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  356. package/lib/cjs/ipc/IpcSession.js +27 -27
  357. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  358. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  359. package/lib/cjs/ipc/IpcSocket.js +16 -16
  360. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  361. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  362. package/lib/cjs/ipc/IpcWebSocket.js +151 -151
  363. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  364. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  365. package/lib/cjs/ipc/IpcWebSocketTransport.js +160 -160
  366. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  367. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  368. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  369. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  370. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +99 -99
  371. package/lib/cjs/rpc/IModelReadRpcInterface.js +122 -122
  372. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  373. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  374. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  375. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  376. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  377. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  378. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  379. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  380. package/lib/cjs/rpc/TestRpcManager.js +39 -39
  381. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  382. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  383. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  384. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  385. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  386. package/lib/cjs/rpc/core/RpcConfiguration.js +191 -191
  387. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  388. package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -85
  389. package/lib/cjs/rpc/core/RpcConstants.js +103 -103
  390. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  391. package/lib/cjs/rpc/core/RpcControl.d.ts +54 -54
  392. package/lib/cjs/rpc/core/RpcControl.js +144 -144
  393. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  394. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  395. package/lib/cjs/rpc/core/RpcInvocation.js +258 -258
  396. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  397. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +35 -35
  398. package/lib/cjs/rpc/core/RpcMarshaling.js +156 -156
  399. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  400. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  401. package/lib/cjs/rpc/core/RpcOperation.js +133 -133
  402. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  403. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  404. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
  405. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  406. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  407. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  408. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  409. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  410. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  411. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  412. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  413. package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
  414. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  415. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  416. package/lib/cjs/rpc/core/RpcRequest.js +477 -477
  417. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  418. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  419. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  420. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  421. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  422. package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
  423. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  424. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  425. package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
  426. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  427. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  428. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  429. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  430. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  431. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -142
  432. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  433. package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
  434. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  435. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  436. package/lib/cjs/rpc/web/RpcMultipart.d.ts +35 -35
  437. package/lib/cjs/rpc/web/RpcMultipart.js +50 -50
  438. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  439. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +28 -28
  440. package/lib/cjs/rpc/web/WebAppRpcLogging.js +139 -139
  441. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  442. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +87 -87
  443. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  444. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  445. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +67 -67
  446. package/lib/cjs/rpc/web/WebAppRpcRequest.js +239 -239
  447. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  448. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  449. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +372 -372
  450. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  451. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  452. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  453. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  454. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  455. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  456. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  457. package/lib/cjs/tile/ElementGraphics.d.ts +145 -145
  458. package/lib/cjs/tile/ElementGraphics.js +9 -9
  459. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  460. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  461. package/lib/cjs/tile/GltfTileIO.js +109 -109
  462. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  463. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  464. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  465. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  466. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  467. package/lib/cjs/tile/IModelTileIO.js +95 -95
  468. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  469. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  470. package/lib/cjs/tile/PntsTileIO.js +26 -26
  471. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  472. package/lib/cjs/tile/TileIO.d.ts +66 -66
  473. package/lib/cjs/tile/TileIO.js +118 -118
  474. package/lib/cjs/tile/TileIO.js.map +1 -1
  475. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  476. package/lib/cjs/tile/TileMetadata.js +676 -676
  477. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  478. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  479. package/lib/esm/AmbientOcclusion.js +52 -52
  480. package/lib/esm/AmbientOcclusion.js.map +1 -1
  481. package/lib/esm/AnalysisStyle.d.ts +134 -134
  482. package/lib/esm/AnalysisStyle.js +159 -159
  483. package/lib/esm/AnalysisStyle.js.map +1 -1
  484. package/lib/esm/AuthorizationClient.d.ts +11 -11
  485. package/lib/esm/AuthorizationClient.js +8 -8
  486. package/lib/esm/AuthorizationClient.js.map +1 -1
  487. package/lib/esm/BackendTypes.d.ts +12 -12
  488. package/lib/esm/BackendTypes.js +8 -8
  489. package/lib/esm/BackendTypes.js.map +1 -1
  490. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  491. package/lib/esm/BackgroundMapProvider.js +64 -64
  492. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  493. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  494. package/lib/esm/BackgroundMapSettings.js +152 -152
  495. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  496. package/lib/esm/Base64EncodedString.d.ts +32 -32
  497. package/lib/esm/Base64EncodedString.js +63 -63
  498. package/lib/esm/Base64EncodedString.js.map +1 -1
  499. package/lib/esm/BlobReader.d.ts +31 -31
  500. package/lib/esm/BlobReader.js +79 -79
  501. package/lib/esm/BlobReader.js.map +1 -1
  502. package/lib/esm/BriefcaseTypes.d.ts +189 -189
  503. package/lib/esm/BriefcaseTypes.js +92 -92
  504. package/lib/esm/BriefcaseTypes.js.map +1 -1
  505. package/lib/esm/Camera.d.ts +42 -42
  506. package/lib/esm/Camera.js +58 -58
  507. package/lib/esm/Camera.js.map +1 -1
  508. package/lib/esm/ChangedElements.d.ts +85 -83
  509. package/lib/esm/ChangedElements.d.ts.map +1 -1
  510. package/lib/esm/ChangedElements.js +20 -18
  511. package/lib/esm/ChangedElements.js.map +1 -1
  512. package/lib/esm/ChangedEntities.d.ts +45 -45
  513. package/lib/esm/ChangedEntities.js +8 -8
  514. package/lib/esm/ChangedEntities.js.map +1 -1
  515. package/lib/esm/ChangesetProps.d.ts +98 -98
  516. package/lib/esm/ChangesetProps.js +19 -19
  517. package/lib/esm/ChangesetProps.js.map +1 -1
  518. package/lib/esm/ClipStyle.d.ts +89 -89
  519. package/lib/esm/ClipStyle.js +118 -118
  520. package/lib/esm/ClipStyle.js.map +1 -1
  521. package/lib/esm/CloudStorage.d.ts +62 -62
  522. package/lib/esm/CloudStorage.js +109 -109
  523. package/lib/esm/CloudStorage.js.map +1 -1
  524. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  525. package/lib/esm/CloudStorageTileCache.js +62 -62
  526. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  527. package/lib/esm/Code.d.ts +256 -256
  528. package/lib/esm/Code.js +276 -276
  529. package/lib/esm/Code.js.map +1 -1
  530. package/lib/esm/ColorByName.d.ts +161 -161
  531. package/lib/esm/ColorByName.js +166 -166
  532. package/lib/esm/ColorByName.js.map +1 -1
  533. package/lib/esm/ColorDef.d.ts +208 -208
  534. package/lib/esm/ColorDef.js +567 -567
  535. package/lib/esm/ColorDef.js.map +1 -1
  536. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  537. package/lib/esm/CommonLoggerCategory.js +23 -23
  538. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  539. package/lib/esm/ConcurrentQuery.d.ts +421 -421
  540. package/lib/esm/ConcurrentQuery.js +545 -545
  541. package/lib/esm/ConcurrentQuery.js.map +1 -1
  542. package/lib/esm/ContextRealityModel.d.ts +276 -276
  543. package/lib/esm/ContextRealityModel.js +353 -353
  544. package/lib/esm/ContextRealityModel.js.map +1 -1
  545. package/lib/esm/DisplayStyleSettings.d.ts +584 -584
  546. package/lib/esm/DisplayStyleSettings.js +976 -976
  547. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  548. package/lib/esm/ECSchemaProps.d.ts +39 -39
  549. package/lib/esm/ECSchemaProps.js +8 -8
  550. package/lib/esm/ECSchemaProps.js.map +1 -1
  551. package/lib/esm/ECSqlReader.d.ts +70 -70
  552. package/lib/esm/ECSqlReader.js +275 -275
  553. package/lib/esm/ECSqlReader.js.map +1 -1
  554. package/lib/esm/ECSqlTypes.d.ts +128 -128
  555. package/lib/esm/ECSqlTypes.js +185 -185
  556. package/lib/esm/ECSqlTypes.js.map +1 -1
  557. package/lib/esm/ElementMesh.d.ts +39 -39
  558. package/lib/esm/ElementMesh.js +52 -52
  559. package/lib/esm/ElementMesh.js.map +1 -1
  560. package/lib/esm/ElementProps.d.ts +479 -479
  561. package/lib/esm/ElementProps.js +92 -92
  562. package/lib/esm/ElementProps.js.map +1 -1
  563. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  564. package/lib/esm/EmphasizeElementsProps.js +22 -22
  565. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  566. package/lib/esm/EntityProps.d.ts +176 -176
  567. package/lib/esm/EntityProps.js +107 -107
  568. package/lib/esm/EntityProps.js.map +1 -1
  569. package/lib/esm/EntityReference.d.ts +51 -51
  570. package/lib/esm/EntityReference.js +52 -52
  571. package/lib/esm/EntityReference.js.map +1 -1
  572. package/lib/esm/Environment.d.ts +61 -61
  573. package/lib/esm/Environment.js +69 -69
  574. package/lib/esm/Environment.js.map +1 -1
  575. package/lib/esm/FeatureGates.d.ts +31 -31
  576. package/lib/esm/FeatureGates.js +51 -51
  577. package/lib/esm/FeatureGates.js.map +1 -1
  578. package/lib/esm/FeatureIndex.d.ts +39 -39
  579. package/lib/esm/FeatureIndex.js +57 -57
  580. package/lib/esm/FeatureIndex.js.map +1 -1
  581. package/lib/esm/FeatureSymbology.d.ts +444 -444
  582. package/lib/esm/FeatureSymbology.js +609 -609
  583. package/lib/esm/FeatureSymbology.js.map +1 -1
  584. package/lib/esm/FeatureTable.d.ts +141 -141
  585. package/lib/esm/FeatureTable.js +272 -272
  586. package/lib/esm/FeatureTable.js.map +1 -1
  587. package/lib/esm/Fonts.d.ts +51 -51
  588. package/lib/esm/Fonts.js +49 -49
  589. package/lib/esm/Fonts.js.map +1 -1
  590. package/lib/esm/Frustum.d.ts +114 -114
  591. package/lib/esm/Frustum.js +288 -288
  592. package/lib/esm/Frustum.js.map +1 -1
  593. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  594. package/lib/esm/GeoCoordinateServices.js +76 -76
  595. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  596. package/lib/esm/GeometryContainment.d.ts +28 -28
  597. package/lib/esm/GeometryContainment.js +8 -8
  598. package/lib/esm/GeometryContainment.js.map +1 -1
  599. package/lib/esm/GeometryParams.d.ts +130 -130
  600. package/lib/esm/GeometryParams.js +170 -170
  601. package/lib/esm/GeometryParams.js.map +1 -1
  602. package/lib/esm/GeometrySummary.d.ts +45 -45
  603. package/lib/esm/GeometrySummary.js +20 -20
  604. package/lib/esm/GeometrySummary.js.map +1 -1
  605. package/lib/esm/Gradient.d.ts +139 -139
  606. package/lib/esm/Gradient.js +452 -452
  607. package/lib/esm/Gradient.js.map +1 -1
  608. package/lib/esm/GraphicParams.d.ts +58 -58
  609. package/lib/esm/GraphicParams.js +81 -81
  610. package/lib/esm/GraphicParams.js.map +1 -1
  611. package/lib/esm/GroundPlane.d.ts +52 -52
  612. package/lib/esm/GroundPlane.js +60 -60
  613. package/lib/esm/GroundPlane.js.map +1 -1
  614. package/lib/esm/HSLColor.d.ts +20 -20
  615. package/lib/esm/HSLColor.js +28 -28
  616. package/lib/esm/HSLColor.js.map +1 -1
  617. package/lib/esm/HSVColor.d.ts +30 -30
  618. package/lib/esm/HSVColor.js +55 -55
  619. package/lib/esm/HSVColor.js.map +1 -1
  620. package/lib/esm/HiddenLine.d.ts +97 -97
  621. package/lib/esm/HiddenLine.js +159 -159
  622. package/lib/esm/HiddenLine.js.map +1 -1
  623. package/lib/esm/Hilite.d.ts +50 -50
  624. package/lib/esm/Hilite.js +61 -61
  625. package/lib/esm/Hilite.js.map +1 -1
  626. package/lib/esm/IModel.d.ts +359 -359
  627. package/lib/esm/IModel.js +342 -342
  628. package/lib/esm/IModel.js.map +1 -1
  629. package/lib/esm/IModelError.d.ts +36 -36
  630. package/lib/esm/IModelError.js +55 -55
  631. package/lib/esm/IModelError.js.map +1 -1
  632. package/lib/esm/IModelVersion.d.ts +68 -68
  633. package/lib/esm/IModelVersion.js +75 -75
  634. package/lib/esm/IModelVersion.js.map +1 -1
  635. package/lib/esm/Image.d.ts +86 -86
  636. package/lib/esm/Image.js +120 -120
  637. package/lib/esm/Image.js.map +1 -1
  638. package/lib/esm/IpcAppProps.d.ts +141 -141
  639. package/lib/esm/IpcAppProps.js +19 -19
  640. package/lib/esm/IpcAppProps.js.map +1 -1
  641. package/lib/esm/LightSettings.d.ts +224 -224
  642. package/lib/esm/LightSettings.js +301 -301
  643. package/lib/esm/LightSettings.js.map +1 -1
  644. package/lib/esm/LinePixels.d.ts +34 -34
  645. package/lib/esm/LinePixels.js +39 -39
  646. package/lib/esm/LinePixels.js.map +1 -1
  647. package/lib/esm/Localization.d.ts +113 -113
  648. package/lib/esm/Localization.js +22 -22
  649. package/lib/esm/Localization.js.map +1 -1
  650. package/lib/esm/MapImagerySettings.d.ts +62 -62
  651. package/lib/esm/MapImagerySettings.js +76 -76
  652. package/lib/esm/MapImagerySettings.js.map +1 -1
  653. package/lib/esm/MapLayerSettings.d.ts +272 -272
  654. package/lib/esm/MapLayerSettings.js +403 -403
  655. package/lib/esm/MapLayerSettings.js.map +1 -1
  656. package/lib/esm/MassProperties.d.ts +64 -64
  657. package/lib/esm/MassProperties.js +20 -20
  658. package/lib/esm/MassProperties.js.map +1 -1
  659. package/lib/esm/MaterialProps.d.ts +118 -118
  660. package/lib/esm/MaterialProps.js +20 -20
  661. package/lib/esm/MaterialProps.js.map +1 -1
  662. package/lib/esm/ModelClipGroup.d.ts +67 -67
  663. package/lib/esm/ModelClipGroup.js +93 -93
  664. package/lib/esm/ModelClipGroup.js.map +1 -1
  665. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  666. package/lib/esm/ModelGeometryChanges.js +80 -80
  667. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  668. package/lib/esm/ModelProps.d.ts +67 -67
  669. package/lib/esm/ModelProps.js +8 -8
  670. package/lib/esm/ModelProps.js.map +1 -1
  671. package/lib/esm/NativeAppProps.d.ts +122 -122
  672. package/lib/esm/NativeAppProps.js +27 -27
  673. package/lib/esm/NativeAppProps.js.map +1 -1
  674. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  675. package/lib/esm/OctEncodedNormal.js +93 -93
  676. package/lib/esm/OctEncodedNormal.js.map +1 -1
  677. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  678. package/lib/esm/PlanProjectionSettings.js +59 -59
  679. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  680. package/lib/esm/PlanarClipMask.d.ts +177 -177
  681. package/lib/esm/PlanarClipMask.js +132 -132
  682. package/lib/esm/PlanarClipMask.js.map +1 -1
  683. package/lib/esm/QPoint.d.ts +479 -479
  684. package/lib/esm/QPoint.js +815 -815
  685. package/lib/esm/QPoint.js.map +1 -1
  686. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  687. package/lib/esm/RealityDataAccessProps.js +16 -16
  688. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  689. package/lib/esm/RealityModelDisplaySettings.d.ts +118 -118
  690. package/lib/esm/RealityModelDisplaySettings.js +109 -109
  691. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  692. package/lib/esm/Render.d.ts +89 -89
  693. package/lib/esm/Render.js +165 -165
  694. package/lib/esm/Render.js.map +1 -1
  695. package/lib/esm/RenderMaterial.d.ts +58 -58
  696. package/lib/esm/RenderMaterial.js +72 -72
  697. package/lib/esm/RenderMaterial.js.map +1 -1
  698. package/lib/esm/RenderSchedule.d.ts +543 -543
  699. package/lib/esm/RenderSchedule.js +999 -999
  700. package/lib/esm/RenderTexture.d.ts +70 -70
  701. package/lib/esm/RenderTexture.js +55 -55
  702. package/lib/esm/RenderTexture.js.map +1 -1
  703. package/lib/esm/RgbColor.d.ts +47 -47
  704. package/lib/esm/RgbColor.js +73 -73
  705. package/lib/esm/RgbColor.js.map +1 -1
  706. package/lib/esm/RpcInterface.d.ts +33 -33
  707. package/lib/esm/RpcInterface.js +133 -133
  708. package/lib/esm/RpcInterface.js.map +1 -1
  709. package/lib/esm/RpcManager.d.ts +40 -40
  710. package/lib/esm/RpcManager.js +51 -51
  711. package/lib/esm/RpcManager.js.map +1 -1
  712. package/lib/esm/SessionProps.d.ts +16 -16
  713. package/lib/esm/SessionProps.js +8 -8
  714. package/lib/esm/SessionProps.js.map +1 -1
  715. package/lib/esm/SkyBox.d.ts +215 -215
  716. package/lib/esm/SkyBox.js +203 -203
  717. package/lib/esm/SkyBox.js.map +1 -1
  718. package/lib/esm/Snapping.d.ts +49 -49
  719. package/lib/esm/Snapping.js +8 -8
  720. package/lib/esm/Snapping.js.map +1 -1
  721. package/lib/esm/SolarCalculate.d.ts +27 -27
  722. package/lib/esm/SolarCalculate.js +204 -204
  723. package/lib/esm/SolarCalculate.js.map +1 -1
  724. package/lib/esm/SolarShadows.d.ts +35 -35
  725. package/lib/esm/SolarShadows.js +58 -58
  726. package/lib/esm/SolarShadows.js.map +1 -1
  727. package/lib/esm/SpatialClassification.d.ts +208 -208
  728. package/lib/esm/SpatialClassification.js +334 -334
  729. package/lib/esm/SpatialClassification.js.map +1 -1
  730. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  731. package/lib/esm/SubCategoryAppearance.js +92 -92
  732. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  733. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  734. package/lib/esm/SubCategoryOverride.js +100 -100
  735. package/lib/esm/SubCategoryOverride.js.map +1 -1
  736. package/lib/esm/TerrainSettings.d.ts +82 -82
  737. package/lib/esm/TerrainSettings.js +98 -98
  738. package/lib/esm/TerrainSettings.js.map +1 -1
  739. package/lib/esm/TextureMapping.d.ts +116 -101
  740. package/lib/esm/TextureMapping.d.ts.map +1 -1
  741. package/lib/esm/TextureMapping.js +170 -170
  742. package/lib/esm/TextureMapping.js.map +1 -1
  743. package/lib/esm/TextureProps.d.ts +65 -65
  744. package/lib/esm/TextureProps.js +25 -25
  745. package/lib/esm/TextureProps.js.map +1 -1
  746. package/lib/esm/ThematicDisplay.d.ts +230 -230
  747. package/lib/esm/ThematicDisplay.js +337 -337
  748. package/lib/esm/ThematicDisplay.js.map +1 -1
  749. package/lib/esm/Thumbnail.d.ts +26 -26
  750. package/lib/esm/Thumbnail.js +8 -8
  751. package/lib/esm/Thumbnail.js.map +1 -1
  752. package/lib/esm/TileProps.d.ts +82 -82
  753. package/lib/esm/TileProps.js +25 -25
  754. package/lib/esm/TileProps.js.map +1 -1
  755. package/lib/esm/Tween.d.ts +191 -191
  756. package/lib/esm/Tween.js +565 -565
  757. package/lib/esm/Tween.js.map +1 -1
  758. package/lib/esm/TxnAction.d.ts +21 -21
  759. package/lib/esm/TxnAction.js +26 -26
  760. package/lib/esm/TxnAction.js.map +1 -1
  761. package/lib/esm/ViewDetails.d.ts +125 -125
  762. package/lib/esm/ViewDetails.d.ts.map +1 -1
  763. package/lib/esm/ViewDetails.js +161 -153
  764. package/lib/esm/ViewDetails.js.map +1 -1
  765. package/lib/esm/ViewFlags.d.ts +291 -291
  766. package/lib/esm/ViewFlags.js +364 -364
  767. package/lib/esm/ViewFlags.js.map +1 -1
  768. package/lib/esm/ViewProps.d.ts +205 -205
  769. package/lib/esm/ViewProps.js +8 -8
  770. package/lib/esm/ViewProps.js.map +1 -1
  771. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  772. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  773. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  774. package/lib/esm/core-common.d.ts +245 -245
  775. package/lib/esm/core-common.js +249 -249
  776. package/lib/esm/core-common.js.map +1 -1
  777. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  778. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  779. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  780. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  781. package/lib/esm/domains/GenericElementProps.js +8 -8
  782. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  783. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  784. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  785. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  786. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  787. package/lib/esm/geometry/AreaPattern.js +201 -201
  788. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  789. package/lib/esm/geometry/BoundingSphere.d.ts +14 -14
  790. package/lib/esm/geometry/BoundingSphere.js +26 -26
  791. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  792. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  793. package/lib/esm/geometry/Cartographic.js +340 -340
  794. package/lib/esm/geometry/Cartographic.js.map +1 -1
  795. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  796. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  797. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  798. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  799. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  800. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  801. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  802. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  803. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  804. package/lib/esm/geometry/FrustumPlanes.d.ts +32 -32
  805. package/lib/esm/geometry/FrustumPlanes.js +128 -128
  806. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  807. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  808. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  809. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  810. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  811. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  812. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  813. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  814. package/lib/esm/geometry/GeometryStream.js +464 -464
  815. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  816. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  817. package/lib/esm/geometry/ImageGraphic.js +93 -93
  818. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  819. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  820. package/lib/esm/geometry/LineStyle.js +126 -126
  821. package/lib/esm/geometry/LineStyle.js.map +1 -1
  822. package/lib/esm/geometry/Placement.d.ts +95 -95
  823. package/lib/esm/geometry/Placement.js +126 -126
  824. package/lib/esm/geometry/Placement.js.map +1 -1
  825. package/lib/esm/geometry/Projection.d.ts +251 -251
  826. package/lib/esm/geometry/Projection.js +192 -192
  827. package/lib/esm/geometry/Projection.js.map +1 -1
  828. package/lib/esm/geometry/TextString.d.ts +55 -55
  829. package/lib/esm/geometry/TextString.js +61 -61
  830. package/lib/esm/geometry/TextString.js.map +1 -1
  831. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  832. package/lib/esm/ipc/IpcSession.js +23 -23
  833. package/lib/esm/ipc/IpcSession.js.map +1 -1
  834. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  835. package/lib/esm/ipc/IpcSocket.js +12 -12
  836. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  837. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  838. package/lib/esm/ipc/IpcWebSocket.js +145 -145
  839. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  840. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  841. package/lib/esm/ipc/IpcWebSocketTransport.js +156 -156
  842. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  843. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  844. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  845. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  846. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +99 -99
  847. package/lib/esm/rpc/IModelReadRpcInterface.js +117 -117
  848. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  849. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  850. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  851. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  852. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  853. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  854. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  855. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  856. package/lib/esm/rpc/TestRpcManager.js +35 -35
  857. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  858. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  859. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  860. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  861. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  862. package/lib/esm/rpc/core/RpcConfiguration.js +184 -184
  863. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  864. package/lib/esm/rpc/core/RpcConstants.d.ts +85 -85
  865. package/lib/esm/rpc/core/RpcConstants.js +100 -100
  866. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  867. package/lib/esm/rpc/core/RpcControl.d.ts +54 -54
  868. package/lib/esm/rpc/core/RpcControl.js +137 -137
  869. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  870. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  871. package/lib/esm/rpc/core/RpcInvocation.js +254 -254
  872. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  873. package/lib/esm/rpc/core/RpcMarshaling.d.ts +35 -35
  874. package/lib/esm/rpc/core/RpcMarshaling.js +152 -152
  875. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  876. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  877. package/lib/esm/rpc/core/RpcOperation.js +128 -128
  878. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  879. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  880. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -90
  881. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  882. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  883. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  884. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  885. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  886. package/lib/esm/rpc/core/RpcPush.js +119 -119
  887. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  888. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  889. package/lib/esm/rpc/core/RpcRegistry.js +194 -194
  890. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  891. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  892. package/lib/esm/rpc/core/RpcRequest.js +472 -472
  893. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  894. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  895. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  896. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  897. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  898. package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
  899. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  900. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  901. package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
  902. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  903. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  904. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  905. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  906. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  907. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -138
  908. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  909. package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
  910. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  911. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  912. package/lib/esm/rpc/web/RpcMultipart.d.ts +35 -35
  913. package/lib/esm/rpc/web/RpcMultipart.js +46 -46
  914. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  915. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +28 -28
  916. package/lib/esm/rpc/web/WebAppRpcLogging.js +135 -135
  917. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  918. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +87 -87
  919. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  920. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  921. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +67 -67
  922. package/lib/esm/rpc/web/WebAppRpcRequest.js +235 -235
  923. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  924. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  925. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +368 -368
  926. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  927. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  928. package/lib/esm/tile/B3dmTileIO.js +62 -62
  929. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  930. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  931. package/lib/esm/tile/CompositeTileIO.js +22 -22
  932. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  933. package/lib/esm/tile/ElementGraphics.d.ts +145 -145
  934. package/lib/esm/tile/ElementGraphics.js +8 -8
  935. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  936. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  937. package/lib/esm/tile/GltfTileIO.js +105 -105
  938. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  939. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  940. package/lib/esm/tile/I3dmTileIO.js +36 -36
  941. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  942. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  943. package/lib/esm/tile/IModelTileIO.js +90 -90
  944. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  945. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  946. package/lib/esm/tile/PntsTileIO.js +22 -22
  947. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  948. package/lib/esm/tile/TileIO.d.ts +66 -66
  949. package/lib/esm/tile/TileIO.js +110 -110
  950. package/lib/esm/tile/TileIO.js.map +1 -1
  951. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  952. package/lib/esm/tile/TileMetadata.js +661 -661
  953. package/lib/esm/tile/TileMetadata.js.map +1 -1
  954. package/package.json +7 -7
@@ -1,572 +1,572 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Symbology
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ColorDef = void 0;
11
- const core_geometry_1 = require("@itwin/core-geometry");
12
- const ColorByName_1 = require("./ColorByName");
13
- const HSLColor_1 = require("./HSLColor");
14
- const HSVColor_1 = require("./HSVColor");
15
- // cspell: ignore ttbbggrr bbggrr rrggbb aabbggrr abgr rrggbb hsla lerp torgb dhue dsaturation dvalue intpart fractpart cyanish
16
- // portions adapted from Three.js Copyright © 2010-2017 three.js authors
17
- const scratchBytes = new Uint8Array(4);
18
- const scratchUInt32 = new Uint32Array(scratchBytes.buffer);
19
- /** An immutable integer representation of a color.
20
- *
21
- * A color consists of 4 components: Red, Blue, Green, and Transparency. Each component is an 8-bit unsigned integer in the range [0..255]. A value of zero means that component contributes nothing
22
- * to the color: e.g., a color with Red=0 contains no shade of red, and a color with Transparency=0 is fully opaque. A value of 255 means that component contributes its maximum
23
- * value to the color: e.g., a color with Red=255 is as red as it is possible to be, and a color with Transparency=255 is fully transparent.
24
- *
25
- * Internally, these 4 components are combined into a single 32-bit unsigned integer as represented by [[ColorDefProps]]. This representation can result in some confusion regarding:
26
- * 1. The ordering of the individual components; and
27
- * 2. Whether to specify transparency or opacity (sometimes referred to as "alpha").
28
- *
29
- * ColorDef uses `0xTTBBGGRR` internally, which uses Transparency and puts Red in the low byte and Transparency in the high byte. It can be converted to `0xRRGGBB` format (blue in the low byte)
30
- * using [[getRgb]] and `0xAABBGGRRx format (red in the low byte, using opacity instead of transparency) using [[getAbgr]].
31
- *
32
- * A ColorDef can be created from a numeric [[ColorDefProps]], from a string in one of the common HTML formats (e.g., [[fromString]]), or by specifying values for the individual components
33
- * (e.g., [[from]]).
34
- *
35
- * ColorDef is **immutable**. To obtain a modified copy of a ColorDef, use methods like [[adjustedForContrast]], [[inverse]], or [[withTransparency]]. For example:
36
- * ```ts
37
- * const semiTransparentBlue = ColorDef.blue.withTransparency(100);
38
- * ```
39
- * @public
40
- * @extensions
41
- */
42
- class ColorDef {
43
- constructor(tbgr) {
44
- scratchUInt32[0] = tbgr; // Force to be a 32-bit unsigned integer
45
- this._tbgr = scratchUInt32[0];
46
- }
47
- /**
48
- * Create a new ColorDef.
49
- * @param val value to use.
50
- * If a number, it is interpreted as a 0xTTBBGGRR (Red in the low byte, high byte is transparency 0==fully opaque) value.
51
- * If a string, it must be in one of the forms supported by [[fromString]] - any unrecognized string will produce [[black]].
52
- */
53
- static create(val) {
54
- return this.fromTbgr(this.computeTbgr(val));
55
- }
56
- /** @internal */
57
- static computeTbgr(val) {
58
- switch (typeof val) {
59
- case "number":
60
- return val;
61
- case "string":
62
- return this.computeTbgrFromString(val);
63
- default:
64
- return 0;
65
- }
66
- }
67
- /** Convert this ColorDef to a 32 bit number representing the 0xTTBBGGRR value */
68
- toJSON() { return this._tbgr; }
69
- /** Create a new ColorDef from a json object. If the json object is a number, it is assumed to be a 0xTTBBGGRR value. */
70
- static fromJSON(json) {
71
- return this.create(json);
72
- }
73
- /** Create a ColorDef from Red, Green, Blue, Transparency values. All inputs should be integers between 0-255. */
74
- static from(red, green, blue, transparency) {
75
- return this.fromTbgr(this.computeTbgrFromComponents(red, green, blue, transparency));
76
- }
77
- /** Compute the 0xTTBBGGRR value corresponding to the specified Red, Green, Blue, Transparency components. All inputs should be integers between 0-255. */
78
- static computeTbgrFromComponents(red, green, blue, transparency) {
79
- scratchBytes[0] = red;
80
- scratchBytes[1] = green;
81
- scratchBytes[2] = blue;
82
- scratchBytes[3] = transparency || 0;
83
- return scratchUInt32[0];
84
- }
85
- /** Create a ColorDef from its 0xTTBBGGRR representation. */
86
- static fromTbgr(tbgr) {
87
- switch (tbgr) {
88
- case ColorByName_1.ColorByName.black:
89
- return this.black;
90
- case ColorByName_1.ColorByName.white:
91
- return this.white;
92
- case ColorByName_1.ColorByName.red:
93
- return this.red;
94
- case ColorByName_1.ColorByName.green:
95
- return this.green;
96
- case ColorByName_1.ColorByName.blue:
97
- return this.blue;
98
- default:
99
- return new ColorDef(tbgr);
100
- }
101
- }
102
- /** Create a ColorDef from its 0xAABBGGRR representation. */
103
- static fromAbgr(abgr) {
104
- return this.fromTbgr(this.getAbgr(abgr));
105
- }
106
- /** Create a ColorDef from a string representation. The following representations are supported:
107
- * *"rgb(255,0,0)"*
108
- * *"rgba(255,0,0,.2)"*
109
- * *"rgb(100%,0%,0%)"*
110
- * *"hsl(120,50%,50%)"*
111
- * *"#rrbbgg"*
112
- * *"blanchedAlmond"* (see possible values from [[ColorByName]]). Case-insensitive.
113
- *
114
- * If `val` is not a valid color string, this function returns [[black]].
115
- * @see [[isValidColor]] to determine if `val` is a valid color string.
116
- */
117
- static fromString(val) {
118
- return this.fromTbgr(this.computeTbgrFromString(val));
119
- }
120
- /** Determine whether the input is a valid representation of a ColorDef.
121
- * @see [[fromString]] for the definition of a valid string representation.
122
- * @see [[ColorDefProps]] for the definition of a valid numeric representation.
123
- */
124
- static isValidColor(val) {
125
- if (typeof val === "number")
126
- return val >= 0 && val <= 0xffffffff && Math.floor(val) === val;
127
- return undefined !== this.tryComputeTbgrFromString(val);
128
- }
129
- /** Compute the 0xTTBBGGRR value corresponding to a string representation of a color.
130
- * If `val` is not a valid color string, this function returns 0 (black).
131
- * @see [[fromString]] for the definition of a valid color string.
132
- * @see [[tryComputeTbgrFromString]] to determine if `val` is a valid color string.
133
- */
134
- static computeTbgrFromString(val) {
135
- var _a;
136
- return (_a = this.tryComputeTbgrFromString(val)) !== null && _a !== void 0 ? _a : 0;
137
- }
138
- /** Try to compute the 0xTTBBGGRR value corresponding to a string representation of a ColorDef.
139
- * @returns the corresponding numeric representation, or `undefined` if the input does not represent a color.
140
- * @see [[fromString]] for the definition of a valid color string.
141
- */
142
- static tryComputeTbgrFromString(val) {
143
- if (typeof val !== "string")
144
- return undefined;
145
- val = val.toLowerCase();
146
- let m = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(val);
147
- if (m) { // rgb / hsl
148
- let color;
149
- const name = m[1];
150
- const components = m[2];
151
- const hasPercent = (str) => str[str.length - 1] === "%";
152
- const floatOrPercent = (str) => {
153
- const v = parseFloat(str);
154
- return 255 * core_geometry_1.Geometry.clamp(hasPercent(str) ? v / 100. : v, 0, 1);
155
- };
156
- const intOrPercent = (str) => {
157
- const v = hasPercent(str) ? (parseFloat(str) / 100.) * 255 : parseInt(str, 10);
158
- return core_geometry_1.Geometry.clamp(v, 0, 255);
159
- };
160
- switch (name) {
161
- case "rgb":
162
- case "rgba":
163
- color = /^(\d+%*)\s*[, ]\s*(\d+%*)\s*[, ]\s*(\d+%*)\s*([,\/]\s*([0-9]*\.?[0-9]+%*)\s*)?$/.exec(components);
164
- if (color) { // rgb(255,0,0) rgba(255,0,0,0.5)
165
- return this.computeTbgrFromComponents(intOrPercent(color[1]), intOrPercent(color[2]), intOrPercent(color[3]), typeof color[5] === "string" ? 255 - floatOrPercent(color[5]) : 0);
166
- }
167
- break;
168
- case "hsl":
169
- case "hsla":
170
- color = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(components);
171
- if (color) { // hsl(120,50%,50%) hsla(120,50%,50%,0.5)
172
- const h = parseFloat(color[1]) / 360;
173
- const s = parseInt(color[2], 10) / 100;
174
- const l = parseInt(color[3], 10) / 100;
175
- const t = typeof color[5] === "string" ? 255 - floatOrPercent(color[5]) : 0;
176
- return this.computeTbgrFromHSL(h, s, l, t);
177
- }
178
- break;
179
- }
180
- // eslint-disable-next-line no-cond-assign
181
- }
182
- else if (m = /^\#([a-f0-9]+)$/.exec(val)) { // hex color
183
- const hex = m[1];
184
- const size = hex.length;
185
- if (size === 3) { // #ff0
186
- return this.computeTbgrFromComponents(parseInt(hex.charAt(0) + hex.charAt(0), 16), parseInt(hex.charAt(1) + hex.charAt(1), 16), parseInt(hex.charAt(2) + hex.charAt(2), 16), 0);
187
- }
188
- if (size === 6) { // #ff0000
189
- return this.computeTbgrFromComponents(parseInt(hex.charAt(0) + hex.charAt(1), 16), parseInt(hex.charAt(2) + hex.charAt(3), 16), parseInt(hex.charAt(4) + hex.charAt(5), 16), 0);
190
- }
191
- }
192
- if (val && val.length > 0) { // ColorRgb value
193
- for (const [key, value] of Object.entries(ColorByName_1.ColorByName))
194
- if (key.toLowerCase() === val)
195
- return value;
196
- }
197
- return undefined;
198
- }
199
- /** Get the red, green, blue, and transparency values from this ColorDef. Values will be integers between 0-255. */
200
- get colors() {
201
- return ColorDef.getColors(this._tbgr);
202
- }
203
- /** Get the r,g,b,t values encoded in an 0xTTBBGGRR value. Values will be integers between 0-255. */
204
- static getColors(tbgr) {
205
- scratchUInt32[0] = tbgr;
206
- return {
207
- b: scratchBytes[2],
208
- g: scratchBytes[1],
209
- r: scratchBytes[0],
210
- t: scratchBytes[3],
211
- };
212
- }
213
- /** The color value of this ColorDef as an integer in the form 0xTTBBGGRR (red in the low byte) */
214
- get tbgr() { return this._tbgr; }
215
- /** Get the value of the color as a number in 0xAABBGGRR format (i.e. red is in low byte). Transparency (0==fully opaque) converted to alpha (0==fully transparent). */
216
- getAbgr() {
217
- return ColorDef.getAbgr(this._tbgr);
218
- }
219
- /** Get the value of a 0xTTBBGGRR color as a number in 0xAABBGGRR format (i.e. red is in low byte). Transparency (0==fully opaque) converted to alpha (0==fully transparent). */
220
- static getAbgr(tbgr) {
221
- scratchUInt32[0] = tbgr;
222
- scratchBytes[3] = 255 - scratchBytes[3];
223
- return scratchUInt32[0];
224
- }
225
- /** Get the RGB value of the color as a number in 0xRRGGBB format (i.e blue is in the low byte). Transparency is ignored. Value will be from 0 to 2^24 */
226
- getRgb() {
227
- return ColorDef.getRgb(this._tbgr);
228
- }
229
- /** Get the RGB value of the 0xTTBBGGRR color as a number in 0xRRGGBB format (i.e blue is in the low byte). Transparency is ignored. Value will be from 0 to 2^24 */
230
- static getRgb(tbgr) {
231
- scratchUInt32[0] = tbgr;
232
- return (scratchBytes[0] << 16) + (scratchBytes[1] << 8) + scratchBytes[2];
233
- }
234
- /** Return a copy of this ColorDef with the specified alpha component.
235
- * @param alpha the new alpha value as an integer between 0-255.
236
- * @returns A ColorDef with equivalent red, green, and blue components to this one but with the specified alpha.
237
- */
238
- withAlpha(alpha) {
239
- const tbgr = ColorDef.withAlpha(this._tbgr, alpha);
240
- return tbgr === this._tbgr ? this : ColorDef.fromTbgr(tbgr);
241
- }
242
- /** Return a color equivalent to the specified 0xTTBBGGRR but with modified alpha component.
243
- * @param alpha the new alpha value as an integer between 0-255.
244
- * @returns The 0xTTBBGGRR value equivalent to `tbgr` but with the specified alpha.
245
- */
246
- static withAlpha(tbgr, alpha) {
247
- scratchUInt32[0] = tbgr;
248
- scratchBytes[3] = 255 - (alpha | 0);
249
- return scratchUInt32[0];
250
- }
251
- /** Get the alpha value for this ColorDef. Will be between 0-255 */
252
- getAlpha() {
253
- return ColorDef.getAlpha(this._tbgr);
254
- }
255
- /** Extract the alpha value from a 0xTTBBGGRR color. */
256
- static getAlpha(tbgr) {
257
- scratchUInt32[0] = tbgr;
258
- return 255 - scratchBytes[3];
259
- }
260
- /** True if this ColorDef is fully opaque. */
261
- get isOpaque() {
262
- return ColorDef.isOpaque(this._tbgr);
263
- }
264
- /** True if the specified 0xTTBBGGRR color is fully opaque. */
265
- static isOpaque(tbgr) {
266
- return 255 === this.getAlpha(tbgr);
267
- }
268
- /** Get the transparency value for this ColorDef (inverse of alpha). Will be between 0-255. */
269
- getTransparency() {
270
- return ColorDef.getTransparency(this._tbgr);
271
- }
272
- /** Extract the transparency component from a 0xTTBBGGRR color as an integer between 0-255.. */
273
- static getTransparency(tbgr) {
274
- scratchUInt32[0] = tbgr;
275
- return scratchBytes[3];
276
- }
277
- /** Create a copy of this ColorDef with the specified transparency.
278
- * @param transparency the new transparency value. Must be between 0-255, where 0 means 'fully opaque' and 255 means 'fully transparent'.
279
- * @returns a new ColorDef with the same color as this one and the specified transparency.
280
- */
281
- withTransparency(transparency) {
282
- const tbgr = ColorDef.withTransparency(this._tbgr, transparency);
283
- return tbgr === this._tbgr ? this : ColorDef.fromTbgr(tbgr);
284
- }
285
- /** Compute the 0xTTBBGGRR value of the specified color and transparency.
286
- * @param transparency the new transparency as an integer between 0-255.
287
- * @returns The 0xTTBBGGRR value equivalent to `tbgr` but with the specified transparency.
288
- */
289
- static withTransparency(tbgr, transparency) {
290
- return this.withAlpha(tbgr, 255 - transparency);
291
- }
292
- /** The "known name" for this ColorDef. Will be undefined if color value is not in [[ColorByName]] list */
293
- get name() {
294
- return ColorDef.getName(this.tbgr);
295
- }
296
- /** Obtain the name of the color in the [[ColorByName]] list associated with the specified 0xTTBBGGRR value, or undefined if no such named color exists.
297
- * @note A handful of colors (like "aqua" and "cyan") have identical tbgr values; in such cases the first match will be returned.
298
- */
299
- static getName(tbgr) {
300
- for (const [key, value] of Object.entries(ColorByName_1.ColorByName))
301
- if (value === tbgr)
302
- return key;
303
- return undefined;
304
- }
305
- /** Convert this ColorDef to a string in the form "#rrggbb" where values are hex digits of the respective colors */
306
- toHexString() {
307
- return ColorDef.toHexString(this.tbgr);
308
- }
309
- /** Convert the 0xTTBBGGRR value to a string in the form "#rrggbb". */
310
- static toHexString(tbgr) {
311
- return `#${(`000000${this.getRgb(tbgr).toString(16)}`).slice(-6)}`;
312
- }
313
- static getColorsString(tbgr) {
314
- const c = this.getColors(tbgr);
315
- return `${c.r},${c.g},${c.b}`;
316
- }
317
- /** Convert this ColorDef to a string in the form "rgb(r,g,b)" where values are decimal digits of the respective colors. */
318
- toRgbString() {
319
- return ColorDef.toRgbString(this.tbgr);
320
- }
321
- /** Convert the 0xTTBBGGRR color to a string in the form "rgb(r,g,b)" where each component is specified in decimal. */
322
- static toRgbString(tbgr) {
323
- return `rgb(${this.getColorsString(tbgr)})`;
324
- }
325
- /** Convert this ColorDef to a string in the form "rgba(r,g,b,a)" where color values are decimal digits and a is a fraction */
326
- toRgbaString() {
327
- return ColorDef.toRgbaString(this.tbgr);
328
- }
329
- /** Convert the 0xTTBBGGRR color to a string of the form "rgba(r,g,b,a)" where the color components are specified in decimal and the alpha component is a fraction. */
330
- static toRgbaString(tbgr) {
331
- return `rgba(${this.getColorsString(tbgr)},${this.getAlpha(tbgr) / 255.})`;
332
- }
333
- /** Create a ColorDef that is the linear interpolation of this ColorDef and another ColorDef, using a weighting factor.
334
- * @param color2 The other color
335
- * @param weight The weighting factor for color2. 0.0 = this color, 1.0 = color2.
336
- * @param result Optional ColorDef to hold result. If undefined, a new ColorDef is created.
337
- */
338
- lerp(color2, weight) {
339
- return ColorDef.fromTbgr(ColorDef.lerp(this.tbgr, color2.tbgr, weight));
340
- }
341
- /** Interpolate between two 0xTTBBGGRR colors using a weighting factor.
342
- * @param tbgr1 The first color
343
- * @param tbgr2 The other color
344
- * @param weight The weighting factor in [0..1]. A value of 0.0 selects `tbgr1`; 1.0 selects `tbgr2`; 0.5 mixes them evenly; etc.
345
- * @returns The linear interpolation between `tbgr1` and `tbgr2` using the specified weight.
346
- */
347
- static lerp(tbgr1, tbgr2, weight) {
348
- const c = this.getColors(tbgr1);
349
- const color = this.getColors(tbgr2);
350
- c.r += (color.r - c.r) * weight;
351
- c.g += (color.g - c.g) * weight;
352
- c.b += (color.b - c.b) * weight;
353
- return this.computeTbgrFromComponents(c.r, c.g, c.b, c.t);
354
- }
355
- /** Create a new ColorDef that is the inverse (all colors set to 255 - this) of this color. Ignores transparency - result has 0 transparency. */
356
- inverse() {
357
- return ColorDef.fromTbgr(ColorDef.inverse(this.tbgr));
358
- }
359
- /** Return a 0xTTBBGGRR color whose color components are the inverse of the input color. The result has 0 transparency. */
360
- static inverse(tbgr) {
361
- const colors = this.getColors(tbgr);
362
- return this.computeTbgrFromComponents(255 - colors.r, 255 - colors.g, 255 - colors.b);
363
- }
364
- /** Create a ColorDef from hue, saturation, lightness values */
365
- static fromHSL(h, s, l, transparency = 0) {
366
- return this.fromTbgr(this.computeTbgrFromHSL(h, s, l, transparency));
367
- }
368
- /** Compute the 0xTTBBGGRR color corresponding to the specified hue, saturation, lightness values. */
369
- static computeTbgrFromHSL(h, s, l, transparency = 0) {
370
- const torgb = (p1, q1, t) => {
371
- if (t < 0)
372
- t += 1;
373
- if (t > 1)
374
- t -= 1;
375
- if (t < 1 / 6)
376
- return p1 + (q1 - p1) * 6 * t;
377
- if (t < 1 / 2)
378
- return q1;
379
- if (t < 2 / 3)
380
- return p1 + (q1 - p1) * 6 * (2 / 3 - t);
381
- return p1;
382
- };
383
- const hue2rgb = (p1, q1, t) => Math.round(torgb(p1, q1, t) * 255);
384
- const modulo = (n, m) => ((n % m) + m) % m;
385
- // h,s,l ranges are in 0.0 - 1.0
386
- h = modulo(h, 1);
387
- s = core_geometry_1.Geometry.clamp(s, 0, 1);
388
- l = core_geometry_1.Geometry.clamp(l, 0, 1);
389
- if (s === 0) {
390
- l *= 255;
391
- return this.computeTbgrFromComponents(l, l, l, transparency);
392
- }
393
- const p = l <= 0.5 ? l * (1 + s) : l + s - (l * s);
394
- const q = (2 * l) - p;
395
- return this.computeTbgrFromComponents(hue2rgb(q, p, h + 1 / 3), hue2rgb(q, p, h), hue2rgb(q, p, h - 1 / 3), transparency);
396
- }
397
- /** Create an [[HSLColor]] from this ColorDef */
398
- toHSL() {
399
- // h,s,l ranges are in 0.0 - 1.0
400
- const col = this.colors;
401
- col.r /= 255;
402
- col.g /= 255;
403
- col.b /= 255;
404
- const max = Math.max(col.r, col.g, col.b);
405
- const min = Math.min(col.r, col.g, col.b);
406
- let hue = 0;
407
- let saturation;
408
- const lightness = (min + max) / 2.0;
409
- if (min === max) {
410
- saturation = 0;
411
- }
412
- else {
413
- const delta = max - min;
414
- saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);
415
- switch (max) {
416
- case col.r:
417
- hue = (col.g - col.b) / delta + (col.g < col.b ? 6 : 0);
418
- break;
419
- case col.g:
420
- hue = (col.b - col.r) / delta + 2;
421
- break;
422
- case col.b:
423
- hue = (col.r - col.g) / delta + 4;
424
- break;
425
- }
426
- hue /= 6;
427
- }
428
- return new HSLColor_1.HSLColor(hue, saturation, lightness);
429
- }
430
- /** Create an [[HSVColor]] from this ColorDef */
431
- toHSV() {
432
- const { r, g, b } = this.colors;
433
- let min = (r < g) ? r : g;
434
- if (b < min)
435
- min = b;
436
- let max = (r > g) ? r : g;
437
- if (b > max)
438
- max = b;
439
- /* amount of "blackness" present */
440
- const v = Math.floor((max / 255.0 * 100) + 0.5);
441
- const deltaRgb = max - min;
442
- const s = (max !== 0.0) ? Math.floor((deltaRgb / max * 100) + 0.5) : 0;
443
- let h = 0;
444
- if (s) {
445
- const redDistance = (max - r) / deltaRgb;
446
- const greenDistance = (max - g) / deltaRgb;
447
- const blueDistance = (max - b) / deltaRgb;
448
- let intermediateHue;
449
- if (r === max) /* color between yellow & magenta */
450
- intermediateHue = blueDistance - greenDistance;
451
- else if (g === max) /* color between cyan & yellow */
452
- intermediateHue = 2.0 + redDistance - blueDistance;
453
- else /* color between magenta & cyan */
454
- intermediateHue = 4.0 + greenDistance - redDistance;
455
- /* intermediate hue is [0..6] */
456
- intermediateHue *= 60;
457
- if (intermediateHue < 0.0)
458
- intermediateHue += 360;
459
- h = Math.floor(intermediateHue + 0.5);
460
- if (h >= 360)
461
- h = 0;
462
- }
463
- else {
464
- h = 0;
465
- }
466
- return new HSVColor_1.HSVColor(h, s, v);
467
- }
468
- /** Create a ColorDef from an HSVColor */
469
- static fromHSV(hsv, transparency = 0) {
470
- // Check for simple case first.
471
- if ((!hsv.s) || (hsv.h === -1)) {
472
- // hue must be undefined, have no color only white
473
- const white = 0xff & Math.floor(((255.0 * hsv.v) / 100.0) + 0.5 + 3.0e-14);
474
- return ColorDef.from(white, white, white, 0);
475
- }
476
- let dhue = hsv.h, dsaturation = hsv.s, dvalue = hsv.v;
477
- if (dhue === 360)
478
- dhue = 0.0;
479
- dhue /= 60; // hue is now [0..6]
480
- const hueIntpart = Math.floor(dhue); // convert double -> int
481
- const hueFractpart = dhue - hueIntpart;
482
- dvalue /= 100;
483
- dsaturation /= 100;
484
- const p = 0xff & Math.floor((dvalue * (1.0 - dsaturation) * 255.0) + 0.5);
485
- const q = 0xff & Math.floor((dvalue * (1.0 - (dsaturation * hueFractpart)) * 255.0) + 0.5);
486
- const t = 0xff & Math.floor((dvalue * (1.0 - (dsaturation * (1.0 - hueFractpart))) * 255.0) + 0.5);
487
- const v = 0xff & Math.floor(dvalue * 255 + 0.5);
488
- let r = 0, b = 0, g = 0;
489
- switch (hueIntpart) {
490
- /* eslint-disable max-statements-per-line */
491
- case 0:
492
- r = v;
493
- g = t;
494
- b = p;
495
- break; // reddish
496
- case 1:
497
- r = q, g = v;
498
- b = p;
499
- break; // yellowish
500
- case 2:
501
- r = p, g = v;
502
- b = t;
503
- break; // greenish
504
- case 3:
505
- r = p, g = q;
506
- b = v;
507
- break; // cyanish
508
- case 4:
509
- r = t, g = p;
510
- b = v;
511
- break; // bluish
512
- case 5:
513
- r = v, g = p;
514
- b = q;
515
- break; // magenta-ish
516
- /* eslint-enable max-statements-per-line */
517
- }
518
- return ColorDef.from(r, g, b, transparency);
519
- }
520
- visibilityCheck(other) {
521
- const fg = this.colors;
522
- const bg = other.colors;
523
- // Compute luminosity
524
- const red = Math.abs(fg.r - bg.r);
525
- const green = Math.abs(fg.g - bg.g);
526
- const blue = Math.abs(fg.b - bg.b);
527
- return (0.30 * red) + (0.59 * green) + (0.11 * blue);
528
- }
529
- /**
530
- * Create a new ColorDef that is adjusted from this ColorDef for maximum contrast against another color. The color will either be lighter
531
- * or darker, depending on which has more visibility against the other color.
532
- * @param other the color to contrast with
533
- * @param alpha optional alpha value for the adjusted color. If not supplied alpha from this color is used.
534
- */
535
- adjustedForContrast(other, alpha) {
536
- const visibility = this.visibilityCheck(other);
537
- if (HSVColor_1.HSVConstants.VISIBILITY_GOAL <= visibility) {
538
- return undefined !== alpha ? this.withAlpha(alpha) : this;
539
- }
540
- const adjPercent = Math.floor(((HSVColor_1.HSVConstants.VISIBILITY_GOAL - visibility) / 255.0) * 100.0);
541
- let darkerHSV = this.toHSV();
542
- let brightHSV = darkerHSV.clone();
543
- darkerHSV = darkerHSV.adjusted(true, adjPercent);
544
- brightHSV = brightHSV.adjusted(false, adjPercent);
545
- if (undefined === alpha)
546
- alpha = this.getAlpha();
547
- const darker = ColorDef.fromHSV(darkerHSV).withAlpha(alpha);
548
- const bright = ColorDef.fromHSV(brightHSV).withAlpha(alpha);
549
- if (bright.getRgb() === other.getRgb()) // Couldn't adjust brighter...
550
- return darker;
551
- if (darker.getRgb() === other.getRgb()) // Couldn't adjust darker...
552
- return bright;
553
- // NOTE: Best choice is the one most visible against the other color...
554
- return (bright.visibilityCheck(other) >= darker.visibilityCheck(other)) ? bright : darker;
555
- }
556
- /** True if the value of this ColorDef is the same as another ColorDef. */
557
- equals(other) {
558
- return this._tbgr === other._tbgr;
559
- }
560
- }
561
- exports.ColorDef = ColorDef;
562
- /** pure black */
563
- ColorDef.black = new ColorDef(ColorByName_1.ColorByName.black);
564
- /** pure white */
565
- ColorDef.white = new ColorDef(ColorByName_1.ColorByName.white);
566
- /** pure red */
567
- ColorDef.red = new ColorDef(ColorByName_1.ColorByName.red);
568
- /** pure green */
569
- ColorDef.green = new ColorDef(ColorByName_1.ColorByName.green);
570
- /** pure blue */
571
- ColorDef.blue = new ColorDef(ColorByName_1.ColorByName.blue);
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Symbology
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ColorDef = void 0;
11
+ const core_geometry_1 = require("@itwin/core-geometry");
12
+ const ColorByName_1 = require("./ColorByName");
13
+ const HSLColor_1 = require("./HSLColor");
14
+ const HSVColor_1 = require("./HSVColor");
15
+ // cspell: ignore ttbbggrr bbggrr rrggbb aabbggrr abgr rrggbb hsla lerp torgb dhue dsaturation dvalue intpart fractpart cyanish
16
+ // portions adapted from Three.js Copyright © 2010-2017 three.js authors
17
+ const scratchBytes = new Uint8Array(4);
18
+ const scratchUInt32 = new Uint32Array(scratchBytes.buffer);
19
+ /** An immutable integer representation of a color.
20
+ *
21
+ * A color consists of 4 components: Red, Blue, Green, and Transparency. Each component is an 8-bit unsigned integer in the range [0..255]. A value of zero means that component contributes nothing
22
+ * to the color: e.g., a color with Red=0 contains no shade of red, and a color with Transparency=0 is fully opaque. A value of 255 means that component contributes its maximum
23
+ * value to the color: e.g., a color with Red=255 is as red as it is possible to be, and a color with Transparency=255 is fully transparent.
24
+ *
25
+ * Internally, these 4 components are combined into a single 32-bit unsigned integer as represented by [[ColorDefProps]]. This representation can result in some confusion regarding:
26
+ * 1. The ordering of the individual components; and
27
+ * 2. Whether to specify transparency or opacity (sometimes referred to as "alpha").
28
+ *
29
+ * ColorDef uses `0xTTBBGGRR` internally, which uses Transparency and puts Red in the low byte and Transparency in the high byte. It can be converted to `0xRRGGBB` format (blue in the low byte)
30
+ * using [[getRgb]] and `0xAABBGGRRx format (red in the low byte, using opacity instead of transparency) using [[getAbgr]].
31
+ *
32
+ * A ColorDef can be created from a numeric [[ColorDefProps]], from a string in one of the common HTML formats (e.g., [[fromString]]), or by specifying values for the individual components
33
+ * (e.g., [[from]]).
34
+ *
35
+ * ColorDef is **immutable**. To obtain a modified copy of a ColorDef, use methods like [[adjustedForContrast]], [[inverse]], or [[withTransparency]]. For example:
36
+ * ```ts
37
+ * const semiTransparentBlue = ColorDef.blue.withTransparency(100);
38
+ * ```
39
+ * @public
40
+ * @extensions
41
+ */
42
+ class ColorDef {
43
+ constructor(tbgr) {
44
+ scratchUInt32[0] = tbgr; // Force to be a 32-bit unsigned integer
45
+ this._tbgr = scratchUInt32[0];
46
+ }
47
+ /**
48
+ * Create a new ColorDef.
49
+ * @param val value to use.
50
+ * If a number, it is interpreted as a 0xTTBBGGRR (Red in the low byte, high byte is transparency 0==fully opaque) value.
51
+ * If a string, it must be in one of the forms supported by [[fromString]] - any unrecognized string will produce [[black]].
52
+ */
53
+ static create(val) {
54
+ return this.fromTbgr(this.computeTbgr(val));
55
+ }
56
+ /** @internal */
57
+ static computeTbgr(val) {
58
+ switch (typeof val) {
59
+ case "number":
60
+ return val;
61
+ case "string":
62
+ return this.computeTbgrFromString(val);
63
+ default:
64
+ return 0;
65
+ }
66
+ }
67
+ /** Convert this ColorDef to a 32 bit number representing the 0xTTBBGGRR value */
68
+ toJSON() { return this._tbgr; }
69
+ /** Create a new ColorDef from a json object. If the json object is a number, it is assumed to be a 0xTTBBGGRR value. */
70
+ static fromJSON(json) {
71
+ return this.create(json);
72
+ }
73
+ /** Create a ColorDef from Red, Green, Blue, Transparency values. All inputs should be integers between 0-255. */
74
+ static from(red, green, blue, transparency) {
75
+ return this.fromTbgr(this.computeTbgrFromComponents(red, green, blue, transparency));
76
+ }
77
+ /** Compute the 0xTTBBGGRR value corresponding to the specified Red, Green, Blue, Transparency components. All inputs should be integers between 0-255. */
78
+ static computeTbgrFromComponents(red, green, blue, transparency) {
79
+ scratchBytes[0] = red;
80
+ scratchBytes[1] = green;
81
+ scratchBytes[2] = blue;
82
+ scratchBytes[3] = transparency || 0;
83
+ return scratchUInt32[0];
84
+ }
85
+ /** Create a ColorDef from its 0xTTBBGGRR representation. */
86
+ static fromTbgr(tbgr) {
87
+ switch (tbgr) {
88
+ case ColorByName_1.ColorByName.black:
89
+ return this.black;
90
+ case ColorByName_1.ColorByName.white:
91
+ return this.white;
92
+ case ColorByName_1.ColorByName.red:
93
+ return this.red;
94
+ case ColorByName_1.ColorByName.green:
95
+ return this.green;
96
+ case ColorByName_1.ColorByName.blue:
97
+ return this.blue;
98
+ default:
99
+ return new ColorDef(tbgr);
100
+ }
101
+ }
102
+ /** Create a ColorDef from its 0xAABBGGRR representation. */
103
+ static fromAbgr(abgr) {
104
+ return this.fromTbgr(this.getAbgr(abgr));
105
+ }
106
+ /** Create a ColorDef from a string representation. The following representations are supported:
107
+ * *"rgb(255,0,0)"*
108
+ * *"rgba(255,0,0,.2)"*
109
+ * *"rgb(100%,0%,0%)"*
110
+ * *"hsl(120,50%,50%)"*
111
+ * *"#rrbbgg"*
112
+ * *"blanchedAlmond"* (see possible values from [[ColorByName]]). Case-insensitive.
113
+ *
114
+ * If `val` is not a valid color string, this function returns [[black]].
115
+ * @see [[isValidColor]] to determine if `val` is a valid color string.
116
+ */
117
+ static fromString(val) {
118
+ return this.fromTbgr(this.computeTbgrFromString(val));
119
+ }
120
+ /** Determine whether the input is a valid representation of a ColorDef.
121
+ * @see [[fromString]] for the definition of a valid string representation.
122
+ * @see [[ColorDefProps]] for the definition of a valid numeric representation.
123
+ */
124
+ static isValidColor(val) {
125
+ if (typeof val === "number")
126
+ return val >= 0 && val <= 0xffffffff && Math.floor(val) === val;
127
+ return undefined !== this.tryComputeTbgrFromString(val);
128
+ }
129
+ /** Compute the 0xTTBBGGRR value corresponding to a string representation of a color.
130
+ * If `val` is not a valid color string, this function returns 0 (black).
131
+ * @see [[fromString]] for the definition of a valid color string.
132
+ * @see [[tryComputeTbgrFromString]] to determine if `val` is a valid color string.
133
+ */
134
+ static computeTbgrFromString(val) {
135
+ var _a;
136
+ return (_a = this.tryComputeTbgrFromString(val)) !== null && _a !== void 0 ? _a : 0;
137
+ }
138
+ /** Try to compute the 0xTTBBGGRR value corresponding to a string representation of a ColorDef.
139
+ * @returns the corresponding numeric representation, or `undefined` if the input does not represent a color.
140
+ * @see [[fromString]] for the definition of a valid color string.
141
+ */
142
+ static tryComputeTbgrFromString(val) {
143
+ if (typeof val !== "string")
144
+ return undefined;
145
+ val = val.toLowerCase();
146
+ let m = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(val);
147
+ if (m) { // rgb / hsl
148
+ let color;
149
+ const name = m[1];
150
+ const components = m[2];
151
+ const hasPercent = (str) => str[str.length - 1] === "%";
152
+ const floatOrPercent = (str) => {
153
+ const v = parseFloat(str);
154
+ return 255 * core_geometry_1.Geometry.clamp(hasPercent(str) ? v / 100. : v, 0, 1);
155
+ };
156
+ const intOrPercent = (str) => {
157
+ const v = hasPercent(str) ? (parseFloat(str) / 100.) * 255 : parseInt(str, 10);
158
+ return core_geometry_1.Geometry.clamp(v, 0, 255);
159
+ };
160
+ switch (name) {
161
+ case "rgb":
162
+ case "rgba":
163
+ color = /^(\d+%*)\s*[, ]\s*(\d+%*)\s*[, ]\s*(\d+%*)\s*([,\/]\s*([0-9]*\.?[0-9]+%*)\s*)?$/.exec(components);
164
+ if (color) { // rgb(255,0,0) rgba(255,0,0,0.5)
165
+ return this.computeTbgrFromComponents(intOrPercent(color[1]), intOrPercent(color[2]), intOrPercent(color[3]), typeof color[5] === "string" ? 255 - floatOrPercent(color[5]) : 0);
166
+ }
167
+ break;
168
+ case "hsl":
169
+ case "hsla":
170
+ color = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(components);
171
+ if (color) { // hsl(120,50%,50%) hsla(120,50%,50%,0.5)
172
+ const h = parseFloat(color[1]) / 360;
173
+ const s = parseInt(color[2], 10) / 100;
174
+ const l = parseInt(color[3], 10) / 100;
175
+ const t = typeof color[5] === "string" ? 255 - floatOrPercent(color[5]) : 0;
176
+ return this.computeTbgrFromHSL(h, s, l, t);
177
+ }
178
+ break;
179
+ }
180
+ // eslint-disable-next-line no-cond-assign
181
+ }
182
+ else if (m = /^\#([a-f0-9]+)$/.exec(val)) { // hex color
183
+ const hex = m[1];
184
+ const size = hex.length;
185
+ if (size === 3) { // #ff0
186
+ return this.computeTbgrFromComponents(parseInt(hex.charAt(0) + hex.charAt(0), 16), parseInt(hex.charAt(1) + hex.charAt(1), 16), parseInt(hex.charAt(2) + hex.charAt(2), 16), 0);
187
+ }
188
+ if (size === 6) { // #ff0000
189
+ return this.computeTbgrFromComponents(parseInt(hex.charAt(0) + hex.charAt(1), 16), parseInt(hex.charAt(2) + hex.charAt(3), 16), parseInt(hex.charAt(4) + hex.charAt(5), 16), 0);
190
+ }
191
+ }
192
+ if (val && val.length > 0) { // ColorRgb value
193
+ for (const [key, value] of Object.entries(ColorByName_1.ColorByName))
194
+ if (key.toLowerCase() === val)
195
+ return value;
196
+ }
197
+ return undefined;
198
+ }
199
+ /** Get the red, green, blue, and transparency values from this ColorDef. Values will be integers between 0-255. */
200
+ get colors() {
201
+ return ColorDef.getColors(this._tbgr);
202
+ }
203
+ /** Get the r,g,b,t values encoded in an 0xTTBBGGRR value. Values will be integers between 0-255. */
204
+ static getColors(tbgr) {
205
+ scratchUInt32[0] = tbgr;
206
+ return {
207
+ b: scratchBytes[2],
208
+ g: scratchBytes[1],
209
+ r: scratchBytes[0],
210
+ t: scratchBytes[3],
211
+ };
212
+ }
213
+ /** The color value of this ColorDef as an integer in the form 0xTTBBGGRR (red in the low byte) */
214
+ get tbgr() { return this._tbgr; }
215
+ /** Get the value of the color as a number in 0xAABBGGRR format (i.e. red is in low byte). Transparency (0==fully opaque) converted to alpha (0==fully transparent). */
216
+ getAbgr() {
217
+ return ColorDef.getAbgr(this._tbgr);
218
+ }
219
+ /** Get the value of a 0xTTBBGGRR color as a number in 0xAABBGGRR format (i.e. red is in low byte). Transparency (0==fully opaque) converted to alpha (0==fully transparent). */
220
+ static getAbgr(tbgr) {
221
+ scratchUInt32[0] = tbgr;
222
+ scratchBytes[3] = 255 - scratchBytes[3];
223
+ return scratchUInt32[0];
224
+ }
225
+ /** Get the RGB value of the color as a number in 0xRRGGBB format (i.e blue is in the low byte). Transparency is ignored. Value will be from 0 to 2^24 */
226
+ getRgb() {
227
+ return ColorDef.getRgb(this._tbgr);
228
+ }
229
+ /** Get the RGB value of the 0xTTBBGGRR color as a number in 0xRRGGBB format (i.e blue is in the low byte). Transparency is ignored. Value will be from 0 to 2^24 */
230
+ static getRgb(tbgr) {
231
+ scratchUInt32[0] = tbgr;
232
+ return (scratchBytes[0] << 16) + (scratchBytes[1] << 8) + scratchBytes[2];
233
+ }
234
+ /** Return a copy of this ColorDef with the specified alpha component.
235
+ * @param alpha the new alpha value as an integer between 0-255.
236
+ * @returns A ColorDef with equivalent red, green, and blue components to this one but with the specified alpha.
237
+ */
238
+ withAlpha(alpha) {
239
+ const tbgr = ColorDef.withAlpha(this._tbgr, alpha);
240
+ return tbgr === this._tbgr ? this : ColorDef.fromTbgr(tbgr);
241
+ }
242
+ /** Return a color equivalent to the specified 0xTTBBGGRR but with modified alpha component.
243
+ * @param alpha the new alpha value as an integer between 0-255.
244
+ * @returns The 0xTTBBGGRR value equivalent to `tbgr` but with the specified alpha.
245
+ */
246
+ static withAlpha(tbgr, alpha) {
247
+ scratchUInt32[0] = tbgr;
248
+ scratchBytes[3] = 255 - (alpha | 0);
249
+ return scratchUInt32[0];
250
+ }
251
+ /** Get the alpha value for this ColorDef. Will be between 0-255 */
252
+ getAlpha() {
253
+ return ColorDef.getAlpha(this._tbgr);
254
+ }
255
+ /** Extract the alpha value from a 0xTTBBGGRR color. */
256
+ static getAlpha(tbgr) {
257
+ scratchUInt32[0] = tbgr;
258
+ return 255 - scratchBytes[3];
259
+ }
260
+ /** True if this ColorDef is fully opaque. */
261
+ get isOpaque() {
262
+ return ColorDef.isOpaque(this._tbgr);
263
+ }
264
+ /** True if the specified 0xTTBBGGRR color is fully opaque. */
265
+ static isOpaque(tbgr) {
266
+ return 255 === this.getAlpha(tbgr);
267
+ }
268
+ /** Get the transparency value for this ColorDef (inverse of alpha). Will be between 0-255. */
269
+ getTransparency() {
270
+ return ColorDef.getTransparency(this._tbgr);
271
+ }
272
+ /** Extract the transparency component from a 0xTTBBGGRR color as an integer between 0-255.. */
273
+ static getTransparency(tbgr) {
274
+ scratchUInt32[0] = tbgr;
275
+ return scratchBytes[3];
276
+ }
277
+ /** Create a copy of this ColorDef with the specified transparency.
278
+ * @param transparency the new transparency value. Must be between 0-255, where 0 means 'fully opaque' and 255 means 'fully transparent'.
279
+ * @returns a new ColorDef with the same color as this one and the specified transparency.
280
+ */
281
+ withTransparency(transparency) {
282
+ const tbgr = ColorDef.withTransparency(this._tbgr, transparency);
283
+ return tbgr === this._tbgr ? this : ColorDef.fromTbgr(tbgr);
284
+ }
285
+ /** Compute the 0xTTBBGGRR value of the specified color and transparency.
286
+ * @param transparency the new transparency as an integer between 0-255.
287
+ * @returns The 0xTTBBGGRR value equivalent to `tbgr` but with the specified transparency.
288
+ */
289
+ static withTransparency(tbgr, transparency) {
290
+ return this.withAlpha(tbgr, 255 - transparency);
291
+ }
292
+ /** The "known name" for this ColorDef. Will be undefined if color value is not in [[ColorByName]] list */
293
+ get name() {
294
+ return ColorDef.getName(this.tbgr);
295
+ }
296
+ /** Obtain the name of the color in the [[ColorByName]] list associated with the specified 0xTTBBGGRR value, or undefined if no such named color exists.
297
+ * @note A handful of colors (like "aqua" and "cyan") have identical tbgr values; in such cases the first match will be returned.
298
+ */
299
+ static getName(tbgr) {
300
+ for (const [key, value] of Object.entries(ColorByName_1.ColorByName))
301
+ if (value === tbgr)
302
+ return key;
303
+ return undefined;
304
+ }
305
+ /** Convert this ColorDef to a string in the form "#rrggbb" where values are hex digits of the respective colors */
306
+ toHexString() {
307
+ return ColorDef.toHexString(this.tbgr);
308
+ }
309
+ /** Convert the 0xTTBBGGRR value to a string in the form "#rrggbb". */
310
+ static toHexString(tbgr) {
311
+ return `#${(`000000${this.getRgb(tbgr).toString(16)}`).slice(-6)}`;
312
+ }
313
+ static getColorsString(tbgr) {
314
+ const c = this.getColors(tbgr);
315
+ return `${c.r},${c.g},${c.b}`;
316
+ }
317
+ /** Convert this ColorDef to a string in the form "rgb(r,g,b)" where values are decimal digits of the respective colors. */
318
+ toRgbString() {
319
+ return ColorDef.toRgbString(this.tbgr);
320
+ }
321
+ /** Convert the 0xTTBBGGRR color to a string in the form "rgb(r,g,b)" where each component is specified in decimal. */
322
+ static toRgbString(tbgr) {
323
+ return `rgb(${this.getColorsString(tbgr)})`;
324
+ }
325
+ /** Convert this ColorDef to a string in the form "rgba(r,g,b,a)" where color values are decimal digits and a is a fraction */
326
+ toRgbaString() {
327
+ return ColorDef.toRgbaString(this.tbgr);
328
+ }
329
+ /** Convert the 0xTTBBGGRR color to a string of the form "rgba(r,g,b,a)" where the color components are specified in decimal and the alpha component is a fraction. */
330
+ static toRgbaString(tbgr) {
331
+ return `rgba(${this.getColorsString(tbgr)},${this.getAlpha(tbgr) / 255.})`;
332
+ }
333
+ /** Create a ColorDef that is the linear interpolation of this ColorDef and another ColorDef, using a weighting factor.
334
+ * @param color2 The other color
335
+ * @param weight The weighting factor for color2. 0.0 = this color, 1.0 = color2.
336
+ * @param result Optional ColorDef to hold result. If undefined, a new ColorDef is created.
337
+ */
338
+ lerp(color2, weight) {
339
+ return ColorDef.fromTbgr(ColorDef.lerp(this.tbgr, color2.tbgr, weight));
340
+ }
341
+ /** Interpolate between two 0xTTBBGGRR colors using a weighting factor.
342
+ * @param tbgr1 The first color
343
+ * @param tbgr2 The other color
344
+ * @param weight The weighting factor in [0..1]. A value of 0.0 selects `tbgr1`; 1.0 selects `tbgr2`; 0.5 mixes them evenly; etc.
345
+ * @returns The linear interpolation between `tbgr1` and `tbgr2` using the specified weight.
346
+ */
347
+ static lerp(tbgr1, tbgr2, weight) {
348
+ const c = this.getColors(tbgr1);
349
+ const color = this.getColors(tbgr2);
350
+ c.r += (color.r - c.r) * weight;
351
+ c.g += (color.g - c.g) * weight;
352
+ c.b += (color.b - c.b) * weight;
353
+ return this.computeTbgrFromComponents(c.r, c.g, c.b, c.t);
354
+ }
355
+ /** Create a new ColorDef that is the inverse (all colors set to 255 - this) of this color. Ignores transparency - result has 0 transparency. */
356
+ inverse() {
357
+ return ColorDef.fromTbgr(ColorDef.inverse(this.tbgr));
358
+ }
359
+ /** Return a 0xTTBBGGRR color whose color components are the inverse of the input color. The result has 0 transparency. */
360
+ static inverse(tbgr) {
361
+ const colors = this.getColors(tbgr);
362
+ return this.computeTbgrFromComponents(255 - colors.r, 255 - colors.g, 255 - colors.b);
363
+ }
364
+ /** Create a ColorDef from hue, saturation, lightness values */
365
+ static fromHSL(h, s, l, transparency = 0) {
366
+ return this.fromTbgr(this.computeTbgrFromHSL(h, s, l, transparency));
367
+ }
368
+ /** Compute the 0xTTBBGGRR color corresponding to the specified hue, saturation, lightness values. */
369
+ static computeTbgrFromHSL(h, s, l, transparency = 0) {
370
+ const torgb = (p1, q1, t) => {
371
+ if (t < 0)
372
+ t += 1;
373
+ if (t > 1)
374
+ t -= 1;
375
+ if (t < 1 / 6)
376
+ return p1 + (q1 - p1) * 6 * t;
377
+ if (t < 1 / 2)
378
+ return q1;
379
+ if (t < 2 / 3)
380
+ return p1 + (q1 - p1) * 6 * (2 / 3 - t);
381
+ return p1;
382
+ };
383
+ const hue2rgb = (p1, q1, t) => Math.round(torgb(p1, q1, t) * 255);
384
+ const modulo = (n, m) => ((n % m) + m) % m;
385
+ // h,s,l ranges are in 0.0 - 1.0
386
+ h = modulo(h, 1);
387
+ s = core_geometry_1.Geometry.clamp(s, 0, 1);
388
+ l = core_geometry_1.Geometry.clamp(l, 0, 1);
389
+ if (s === 0) {
390
+ l *= 255;
391
+ return this.computeTbgrFromComponents(l, l, l, transparency);
392
+ }
393
+ const p = l <= 0.5 ? l * (1 + s) : l + s - (l * s);
394
+ const q = (2 * l) - p;
395
+ return this.computeTbgrFromComponents(hue2rgb(q, p, h + 1 / 3), hue2rgb(q, p, h), hue2rgb(q, p, h - 1 / 3), transparency);
396
+ }
397
+ /** Create an [[HSLColor]] from this ColorDef */
398
+ toHSL() {
399
+ // h,s,l ranges are in 0.0 - 1.0
400
+ const col = this.colors;
401
+ col.r /= 255;
402
+ col.g /= 255;
403
+ col.b /= 255;
404
+ const max = Math.max(col.r, col.g, col.b);
405
+ const min = Math.min(col.r, col.g, col.b);
406
+ let hue = 0;
407
+ let saturation;
408
+ const lightness = (min + max) / 2.0;
409
+ if (min === max) {
410
+ saturation = 0;
411
+ }
412
+ else {
413
+ const delta = max - min;
414
+ saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);
415
+ switch (max) {
416
+ case col.r:
417
+ hue = (col.g - col.b) / delta + (col.g < col.b ? 6 : 0);
418
+ break;
419
+ case col.g:
420
+ hue = (col.b - col.r) / delta + 2;
421
+ break;
422
+ case col.b:
423
+ hue = (col.r - col.g) / delta + 4;
424
+ break;
425
+ }
426
+ hue /= 6;
427
+ }
428
+ return new HSLColor_1.HSLColor(hue, saturation, lightness);
429
+ }
430
+ /** Create an [[HSVColor]] from this ColorDef */
431
+ toHSV() {
432
+ const { r, g, b } = this.colors;
433
+ let min = (r < g) ? r : g;
434
+ if (b < min)
435
+ min = b;
436
+ let max = (r > g) ? r : g;
437
+ if (b > max)
438
+ max = b;
439
+ /* amount of "blackness" present */
440
+ const v = Math.floor((max / 255.0 * 100) + 0.5);
441
+ const deltaRgb = max - min;
442
+ const s = (max !== 0.0) ? Math.floor((deltaRgb / max * 100) + 0.5) : 0;
443
+ let h = 0;
444
+ if (s) {
445
+ const redDistance = (max - r) / deltaRgb;
446
+ const greenDistance = (max - g) / deltaRgb;
447
+ const blueDistance = (max - b) / deltaRgb;
448
+ let intermediateHue;
449
+ if (r === max) /* color between yellow & magenta */
450
+ intermediateHue = blueDistance - greenDistance;
451
+ else if (g === max) /* color between cyan & yellow */
452
+ intermediateHue = 2.0 + redDistance - blueDistance;
453
+ else /* color between magenta & cyan */
454
+ intermediateHue = 4.0 + greenDistance - redDistance;
455
+ /* intermediate hue is [0..6] */
456
+ intermediateHue *= 60;
457
+ if (intermediateHue < 0.0)
458
+ intermediateHue += 360;
459
+ h = Math.floor(intermediateHue + 0.5);
460
+ if (h >= 360)
461
+ h = 0;
462
+ }
463
+ else {
464
+ h = 0;
465
+ }
466
+ return new HSVColor_1.HSVColor(h, s, v);
467
+ }
468
+ /** Create a ColorDef from an HSVColor */
469
+ static fromHSV(hsv, transparency = 0) {
470
+ // Check for simple case first.
471
+ if ((!hsv.s) || (hsv.h === -1)) {
472
+ // hue must be undefined, have no color only white
473
+ const white = 0xff & Math.floor(((255.0 * hsv.v) / 100.0) + 0.5 + 3.0e-14);
474
+ return ColorDef.from(white, white, white, 0);
475
+ }
476
+ let dhue = hsv.h, dsaturation = hsv.s, dvalue = hsv.v;
477
+ if (dhue === 360)
478
+ dhue = 0.0;
479
+ dhue /= 60; // hue is now [0..6]
480
+ const hueIntpart = Math.floor(dhue); // convert double -> int
481
+ const hueFractpart = dhue - hueIntpart;
482
+ dvalue /= 100;
483
+ dsaturation /= 100;
484
+ const p = 0xff & Math.floor((dvalue * (1.0 - dsaturation) * 255.0) + 0.5);
485
+ const q = 0xff & Math.floor((dvalue * (1.0 - (dsaturation * hueFractpart)) * 255.0) + 0.5);
486
+ const t = 0xff & Math.floor((dvalue * (1.0 - (dsaturation * (1.0 - hueFractpart))) * 255.0) + 0.5);
487
+ const v = 0xff & Math.floor(dvalue * 255 + 0.5);
488
+ let r = 0, b = 0, g = 0;
489
+ switch (hueIntpart) {
490
+ /* eslint-disable max-statements-per-line */
491
+ case 0:
492
+ r = v;
493
+ g = t;
494
+ b = p;
495
+ break; // reddish
496
+ case 1:
497
+ r = q, g = v;
498
+ b = p;
499
+ break; // yellowish
500
+ case 2:
501
+ r = p, g = v;
502
+ b = t;
503
+ break; // greenish
504
+ case 3:
505
+ r = p, g = q;
506
+ b = v;
507
+ break; // cyanish
508
+ case 4:
509
+ r = t, g = p;
510
+ b = v;
511
+ break; // bluish
512
+ case 5:
513
+ r = v, g = p;
514
+ b = q;
515
+ break; // magenta-ish
516
+ /* eslint-enable max-statements-per-line */
517
+ }
518
+ return ColorDef.from(r, g, b, transparency);
519
+ }
520
+ visibilityCheck(other) {
521
+ const fg = this.colors;
522
+ const bg = other.colors;
523
+ // Compute luminosity
524
+ const red = Math.abs(fg.r - bg.r);
525
+ const green = Math.abs(fg.g - bg.g);
526
+ const blue = Math.abs(fg.b - bg.b);
527
+ return (0.30 * red) + (0.59 * green) + (0.11 * blue);
528
+ }
529
+ /**
530
+ * Create a new ColorDef that is adjusted from this ColorDef for maximum contrast against another color. The color will either be lighter
531
+ * or darker, depending on which has more visibility against the other color.
532
+ * @param other the color to contrast with
533
+ * @param alpha optional alpha value for the adjusted color. If not supplied alpha from this color is used.
534
+ */
535
+ adjustedForContrast(other, alpha) {
536
+ const visibility = this.visibilityCheck(other);
537
+ if (HSVColor_1.HSVConstants.VISIBILITY_GOAL <= visibility) {
538
+ return undefined !== alpha ? this.withAlpha(alpha) : this;
539
+ }
540
+ const adjPercent = Math.floor(((HSVColor_1.HSVConstants.VISIBILITY_GOAL - visibility) / 255.0) * 100.0);
541
+ let darkerHSV = this.toHSV();
542
+ let brightHSV = darkerHSV.clone();
543
+ darkerHSV = darkerHSV.adjusted(true, adjPercent);
544
+ brightHSV = brightHSV.adjusted(false, adjPercent);
545
+ if (undefined === alpha)
546
+ alpha = this.getAlpha();
547
+ const darker = ColorDef.fromHSV(darkerHSV).withAlpha(alpha);
548
+ const bright = ColorDef.fromHSV(brightHSV).withAlpha(alpha);
549
+ if (bright.getRgb() === other.getRgb()) // Couldn't adjust brighter...
550
+ return darker;
551
+ if (darker.getRgb() === other.getRgb()) // Couldn't adjust darker...
552
+ return bright;
553
+ // NOTE: Best choice is the one most visible against the other color...
554
+ return (bright.visibilityCheck(other) >= darker.visibilityCheck(other)) ? bright : darker;
555
+ }
556
+ /** True if the value of this ColorDef is the same as another ColorDef. */
557
+ equals(other) {
558
+ return this._tbgr === other._tbgr;
559
+ }
560
+ }
561
+ exports.ColorDef = ColorDef;
562
+ /** pure black */
563
+ ColorDef.black = new ColorDef(ColorByName_1.ColorByName.black);
564
+ /** pure white */
565
+ ColorDef.white = new ColorDef(ColorByName_1.ColorByName.white);
566
+ /** pure red */
567
+ ColorDef.red = new ColorDef(ColorByName_1.ColorByName.red);
568
+ /** pure green */
569
+ ColorDef.green = new ColorDef(ColorByName_1.ColorByName.green);
570
+ /** pure blue */
571
+ ColorDef.blue = new ColorDef(ColorByName_1.ColorByName.blue);
572
572
  //# sourceMappingURL=ColorDef.js.map