@itwin/core-common 3.2.0-dev.7 → 3.2.0-dev.72

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 (656) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/lib/cjs/AnalysisStyle.d.ts +3 -0
  3. package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
  4. package/lib/cjs/AnalysisStyle.js.map +1 -1
  5. package/lib/cjs/BackgroundMapProvider.d.ts +6 -0
  6. package/lib/cjs/BackgroundMapProvider.d.ts.map +1 -1
  7. package/lib/cjs/BackgroundMapProvider.js +10 -0
  8. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  9. package/lib/cjs/BackgroundMapSettings.d.ts +4 -0
  10. package/lib/cjs/BackgroundMapSettings.d.ts.map +1 -1
  11. package/lib/cjs/BackgroundMapSettings.js +1 -0
  12. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  13. package/lib/cjs/Base64EncodedString.d.ts +1 -0
  14. package/lib/cjs/Base64EncodedString.d.ts.map +1 -1
  15. package/lib/cjs/Base64EncodedString.js.map +1 -1
  16. package/lib/cjs/BriefcaseTypes.d.ts +5 -0
  17. package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
  18. package/lib/cjs/BriefcaseTypes.js +2 -0
  19. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  20. package/lib/cjs/Camera.d.ts +1 -0
  21. package/lib/cjs/Camera.d.ts.map +1 -1
  22. package/lib/cjs/Camera.js.map +1 -1
  23. package/lib/cjs/ChangedElements.d.ts +2 -0
  24. package/lib/cjs/ChangedElements.d.ts.map +1 -1
  25. package/lib/cjs/ChangedElements.js +1 -0
  26. package/lib/cjs/ChangedElements.js.map +1 -1
  27. package/lib/cjs/ChangedEntities.d.ts +3 -0
  28. package/lib/cjs/ChangedEntities.d.ts.map +1 -1
  29. package/lib/cjs/ChangedEntities.js.map +1 -1
  30. package/lib/cjs/ChangesetProps.d.ts +9 -1
  31. package/lib/cjs/ChangesetProps.d.ts.map +1 -1
  32. package/lib/cjs/ChangesetProps.js +3 -1
  33. package/lib/cjs/ChangesetProps.js.map +1 -1
  34. package/lib/cjs/ClipStyle.d.ts +2 -0
  35. package/lib/cjs/ClipStyle.d.ts.map +1 -1
  36. package/lib/cjs/ClipStyle.js.map +1 -1
  37. package/lib/cjs/CloudStorage.d.ts.map +1 -1
  38. package/lib/cjs/CloudStorage.js +14 -20
  39. package/lib/cjs/CloudStorage.js.map +1 -1
  40. package/lib/cjs/Code.d.ts +3 -0
  41. package/lib/cjs/Code.d.ts.map +1 -1
  42. package/lib/cjs/Code.js +1 -0
  43. package/lib/cjs/Code.js.map +1 -1
  44. package/lib/cjs/ColorByName.d.ts +153 -152
  45. package/lib/cjs/ColorByName.d.ts.map +1 -1
  46. package/lib/cjs/ColorByName.js +153 -153
  47. package/lib/cjs/ColorByName.js.map +1 -1
  48. package/lib/cjs/ColorDef.d.ts +55 -46
  49. package/lib/cjs/ColorDef.d.ts.map +1 -1
  50. package/lib/cjs/ColorDef.js +49 -31
  51. package/lib/cjs/ColorDef.js.map +1 -1
  52. package/lib/cjs/CommonLoggerCategory.d.ts +1 -0
  53. package/lib/cjs/CommonLoggerCategory.d.ts.map +1 -1
  54. package/lib/cjs/CommonLoggerCategory.js +1 -0
  55. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  56. package/lib/cjs/ConcurrentQuery.d.ts +6 -1
  57. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  58. package/lib/cjs/ConcurrentQuery.js +3 -1
  59. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  60. package/lib/cjs/ContextRealityModel.d.ts +2 -0
  61. package/lib/cjs/ContextRealityModel.d.ts.map +1 -1
  62. package/lib/cjs/ContextRealityModel.js.map +1 -1
  63. package/lib/cjs/DisplayStyleSettings.d.ts +10 -0
  64. package/lib/cjs/DisplayStyleSettings.d.ts.map +1 -1
  65. package/lib/cjs/DisplayStyleSettings.js +1 -0
  66. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  67. package/lib/cjs/ECSqlTypes.d.ts +6 -0
  68. package/lib/cjs/ECSqlTypes.d.ts.map +1 -1
  69. package/lib/cjs/ECSqlTypes.js +4 -0
  70. package/lib/cjs/ECSqlTypes.js.map +1 -1
  71. package/lib/cjs/ElementProps.d.ts +37 -1
  72. package/lib/cjs/ElementProps.d.ts.map +1 -1
  73. package/lib/cjs/ElementProps.js +2 -0
  74. package/lib/cjs/ElementProps.js.map +1 -1
  75. package/lib/cjs/EmphasizeElementsProps.d.ts +3 -0
  76. package/lib/cjs/EmphasizeElementsProps.d.ts.map +1 -1
  77. package/lib/cjs/EmphasizeElementsProps.js +1 -0
  78. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  79. package/lib/cjs/EntityProps.d.ts +4 -0
  80. package/lib/cjs/EntityProps.d.ts.map +1 -1
  81. package/lib/cjs/EntityProps.js.map +1 -1
  82. package/lib/cjs/Environment.d.ts +1 -0
  83. package/lib/cjs/Environment.d.ts.map +1 -1
  84. package/lib/cjs/Environment.js.map +1 -1
  85. package/lib/cjs/FeatureSymbology.d.ts +3 -0
  86. package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
  87. package/lib/cjs/FeatureSymbology.js.map +1 -1
  88. package/lib/cjs/FeatureTable.d.ts +1 -0
  89. package/lib/cjs/FeatureTable.d.ts.map +1 -1
  90. package/lib/cjs/FeatureTable.js +1 -0
  91. package/lib/cjs/FeatureTable.js.map +1 -1
  92. package/lib/cjs/Fonts.d.ts +3 -0
  93. package/lib/cjs/Fonts.d.ts.map +1 -1
  94. package/lib/cjs/Fonts.js +1 -0
  95. package/lib/cjs/Fonts.js.map +1 -1
  96. package/lib/cjs/Frustum.d.ts +1 -0
  97. package/lib/cjs/Frustum.d.ts.map +1 -1
  98. package/lib/cjs/Frustum.js +1 -0
  99. package/lib/cjs/Frustum.js.map +1 -1
  100. package/lib/cjs/GeoCoordinateServices.d.ts +1 -0
  101. package/lib/cjs/GeoCoordinateServices.d.ts.map +1 -1
  102. package/lib/cjs/GeoCoordinateServices.js +1 -0
  103. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  104. package/lib/cjs/GeometryContainment.d.ts +2 -0
  105. package/lib/cjs/GeometryContainment.d.ts.map +1 -1
  106. package/lib/cjs/GeometryContainment.js.map +1 -1
  107. package/lib/cjs/GeometryParams.d.ts +3 -0
  108. package/lib/cjs/GeometryParams.d.ts.map +1 -1
  109. package/lib/cjs/GeometryParams.js +3 -0
  110. package/lib/cjs/GeometryParams.js.map +1 -1
  111. package/lib/cjs/GeometrySummary.d.ts +3 -0
  112. package/lib/cjs/GeometrySummary.d.ts.map +1 -1
  113. package/lib/cjs/GeometrySummary.js +1 -0
  114. package/lib/cjs/GeometrySummary.js.map +1 -1
  115. package/lib/cjs/GraphicParams.d.ts +1 -0
  116. package/lib/cjs/GraphicParams.d.ts.map +1 -1
  117. package/lib/cjs/GraphicParams.js +1 -0
  118. package/lib/cjs/GraphicParams.js.map +1 -1
  119. package/lib/cjs/GroundPlane.d.ts +1 -0
  120. package/lib/cjs/GroundPlane.d.ts.map +1 -1
  121. package/lib/cjs/GroundPlane.js.map +1 -1
  122. package/lib/cjs/HSVColor.d.ts +4 -1
  123. package/lib/cjs/HSVColor.d.ts.map +1 -1
  124. package/lib/cjs/HSVColor.js +4 -1
  125. package/lib/cjs/HSVColor.js.map +1 -1
  126. package/lib/cjs/IModel.d.ts +6 -1
  127. package/lib/cjs/IModel.d.ts.map +1 -1
  128. package/lib/cjs/IModel.js.map +1 -1
  129. package/lib/cjs/Image.d.ts +2 -0
  130. package/lib/cjs/Image.d.ts.map +1 -1
  131. package/lib/cjs/Image.js +2 -0
  132. package/lib/cjs/Image.js.map +1 -1
  133. package/lib/cjs/IpcAppProps.d.ts +1 -0
  134. package/lib/cjs/IpcAppProps.d.ts.map +1 -1
  135. package/lib/cjs/IpcAppProps.js.map +1 -1
  136. package/lib/cjs/LightSettings.d.ts +5 -0
  137. package/lib/cjs/LightSettings.d.ts.map +1 -1
  138. package/lib/cjs/LightSettings.js.map +1 -1
  139. package/lib/cjs/LinePixels.d.ts +1 -0
  140. package/lib/cjs/LinePixels.d.ts.map +1 -1
  141. package/lib/cjs/LinePixels.js +1 -0
  142. package/lib/cjs/LinePixels.js.map +1 -1
  143. package/lib/cjs/Localization.d.ts +1 -0
  144. package/lib/cjs/Localization.d.ts.map +1 -1
  145. package/lib/cjs/Localization.js.map +1 -1
  146. package/lib/cjs/MassProperties.d.ts +27 -1
  147. package/lib/cjs/MassProperties.d.ts.map +1 -1
  148. package/lib/cjs/MassProperties.js +1 -0
  149. package/lib/cjs/MassProperties.js.map +1 -1
  150. package/lib/cjs/MaterialProps.d.ts +6 -0
  151. package/lib/cjs/MaterialProps.d.ts.map +1 -1
  152. package/lib/cjs/MaterialProps.js +1 -0
  153. package/lib/cjs/MaterialProps.js.map +1 -1
  154. package/lib/cjs/ModelClipGroup.d.ts +1 -0
  155. package/lib/cjs/ModelClipGroup.d.ts.map +1 -1
  156. package/lib/cjs/ModelClipGroup.js.map +1 -1
  157. package/lib/cjs/ModelGeometryChanges.d.ts +9 -1
  158. package/lib/cjs/ModelGeometryChanges.d.ts.map +1 -1
  159. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  160. package/lib/cjs/ModelProps.d.ts +6 -0
  161. package/lib/cjs/ModelProps.d.ts.map +1 -1
  162. package/lib/cjs/ModelProps.js.map +1 -1
  163. package/lib/cjs/PlanProjectionSettings.d.ts +1 -0
  164. package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
  165. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  166. package/lib/cjs/PlanarClipMask.d.ts +3 -0
  167. package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
  168. package/lib/cjs/PlanarClipMask.js +2 -0
  169. package/lib/cjs/PlanarClipMask.js.map +1 -1
  170. package/lib/cjs/RgbColor.d.ts +1 -0
  171. package/lib/cjs/RgbColor.d.ts.map +1 -1
  172. package/lib/cjs/RgbColor.js.map +1 -1
  173. package/lib/cjs/SessionProps.d.ts +1 -0
  174. package/lib/cjs/SessionProps.d.ts.map +1 -1
  175. package/lib/cjs/SessionProps.js.map +1 -1
  176. package/lib/cjs/SkyBox.d.ts +4 -0
  177. package/lib/cjs/SkyBox.d.ts.map +1 -1
  178. package/lib/cjs/SkyBox.js +1 -0
  179. package/lib/cjs/SkyBox.js.map +1 -1
  180. package/lib/cjs/SolarShadows.d.ts +1 -0
  181. package/lib/cjs/SolarShadows.d.ts.map +1 -1
  182. package/lib/cjs/SolarShadows.js.map +1 -1
  183. package/lib/cjs/SpatialClassification.d.ts +5 -0
  184. package/lib/cjs/SpatialClassification.d.ts.map +1 -1
  185. package/lib/cjs/SpatialClassification.js +2 -0
  186. package/lib/cjs/SpatialClassification.js.map +1 -1
  187. package/lib/cjs/TerrainSettings.d.ts +3 -0
  188. package/lib/cjs/TerrainSettings.d.ts.map +1 -1
  189. package/lib/cjs/TerrainSettings.js +1 -0
  190. package/lib/cjs/TerrainSettings.js.map +1 -1
  191. package/lib/cjs/TextureProps.d.ts +3 -0
  192. package/lib/cjs/TextureProps.d.ts.map +1 -1
  193. package/lib/cjs/TextureProps.js.map +1 -1
  194. package/lib/cjs/ThematicDisplay.d.ts +9 -1
  195. package/lib/cjs/ThematicDisplay.d.ts.map +1 -1
  196. package/lib/cjs/ThematicDisplay.js +5 -1
  197. package/lib/cjs/ThematicDisplay.js.map +1 -1
  198. package/lib/cjs/Thumbnail.d.ts +2 -0
  199. package/lib/cjs/Thumbnail.d.ts.map +1 -1
  200. package/lib/cjs/Thumbnail.js.map +1 -1
  201. package/lib/cjs/TileProps.d.ts +1 -0
  202. package/lib/cjs/TileProps.d.ts.map +1 -1
  203. package/lib/cjs/TileProps.js.map +1 -1
  204. package/lib/cjs/Tween.d.ts +16 -4
  205. package/lib/cjs/Tween.d.ts.map +1 -1
  206. package/lib/cjs/Tween.js.map +1 -1
  207. package/lib/cjs/TxnAction.d.ts +1 -0
  208. package/lib/cjs/TxnAction.d.ts.map +1 -1
  209. package/lib/cjs/TxnAction.js +1 -0
  210. package/lib/cjs/TxnAction.js.map +1 -1
  211. package/lib/cjs/ViewDetails.d.ts +3 -0
  212. package/lib/cjs/ViewDetails.d.ts.map +1 -1
  213. package/lib/cjs/ViewDetails.js +1 -0
  214. package/lib/cjs/ViewDetails.js.map +1 -1
  215. package/lib/cjs/ViewFlags.d.ts +4 -0
  216. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  217. package/lib/cjs/ViewFlags.js +1 -0
  218. package/lib/cjs/ViewFlags.js.map +1 -1
  219. package/lib/cjs/ViewProps.d.ts +69 -3
  220. package/lib/cjs/ViewProps.d.ts.map +1 -1
  221. package/lib/cjs/ViewProps.js.map +1 -1
  222. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +1 -0
  223. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts.map +1 -1
  224. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  225. package/lib/cjs/domains/FunctionalElementProps.d.ts +4 -1
  226. package/lib/cjs/domains/FunctionalElementProps.d.ts.map +1 -1
  227. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  228. package/lib/cjs/domains/GenericElementProps.d.ts +8 -2
  229. package/lib/cjs/domains/GenericElementProps.d.ts.map +1 -1
  230. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  231. package/lib/cjs/geometry/AdditionalTransform.d.ts +2 -0
  232. package/lib/cjs/geometry/AdditionalTransform.d.ts.map +1 -1
  233. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  234. package/lib/cjs/geometry/Cartographic.d.ts +1 -0
  235. package/lib/cjs/geometry/Cartographic.d.ts.map +1 -1
  236. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  237. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +5 -0
  238. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts.map +1 -1
  239. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  240. package/lib/cjs/geometry/ElementGeometry.d.ts +2 -0
  241. package/lib/cjs/geometry/ElementGeometry.d.ts.map +1 -1
  242. package/lib/cjs/geometry/ElementGeometry.js +1 -0
  243. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  244. package/lib/cjs/geometry/GeodeticDatum.d.ts +80 -1
  245. package/lib/cjs/geometry/GeodeticDatum.d.ts.map +1 -1
  246. package/lib/cjs/geometry/GeodeticDatum.js +79 -1
  247. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  248. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +1 -0
  249. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts.map +1 -1
  250. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  251. package/lib/cjs/geometry/GeometryStream.d.ts +15 -0
  252. package/lib/cjs/geometry/GeometryStream.d.ts.map +1 -1
  253. package/lib/cjs/geometry/GeometryStream.js +11 -7
  254. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  255. package/lib/cjs/geometry/ImageGraphic.d.ts +2 -0
  256. package/lib/cjs/geometry/ImageGraphic.d.ts.map +1 -1
  257. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  258. package/lib/cjs/geometry/Placement.d.ts +6 -0
  259. package/lib/cjs/geometry/Placement.d.ts.map +1 -1
  260. package/lib/cjs/geometry/Placement.js.map +1 -1
  261. package/lib/cjs/geometry/Projection.d.ts +6 -0
  262. package/lib/cjs/geometry/Projection.d.ts.map +1 -1
  263. package/lib/cjs/geometry/Projection.js.map +1 -1
  264. package/lib/cjs/geometry/TextString.d.ts +1 -0
  265. package/lib/cjs/geometry/TextString.d.ts.map +1 -1
  266. package/lib/cjs/geometry/TextString.js.map +1 -1
  267. package/lib/cjs/ipc/IpcSocket.d.ts +1 -0
  268. package/lib/cjs/ipc/IpcSocket.d.ts.map +1 -1
  269. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  270. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts.map +1 -1
  271. package/lib/cjs/ipc/IpcWebSocketTransport.js +3 -2
  272. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  273. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +5 -2
  274. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  275. package/lib/cjs/rpc/IModelReadRpcInterface.js +4 -1
  276. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  277. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +4 -2
  278. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  279. package/lib/cjs/rpc/IModelTileRpcInterface.js +4 -2
  280. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  281. package/lib/cjs/rpc/core/RpcControl.d.ts.map +1 -1
  282. package/lib/cjs/rpc/core/RpcControl.js +3 -2
  283. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  284. package/lib/cjs/rpc/core/RpcInvocation.d.ts +3 -0
  285. package/lib/cjs/rpc/core/RpcInvocation.d.ts.map +1 -1
  286. package/lib/cjs/rpc/core/RpcInvocation.js +33 -7
  287. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  288. package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
  289. package/lib/cjs/rpc/core/RpcMarshaling.js +2 -1
  290. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  291. package/lib/cjs/rpc/core/RpcOperation.d.ts +2 -0
  292. package/lib/cjs/rpc/core/RpcOperation.d.ts.map +1 -1
  293. package/lib/cjs/rpc/core/RpcOperation.js +2 -0
  294. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  295. package/lib/cjs/rpc/core/RpcProtocol.d.ts +22 -1
  296. package/lib/cjs/rpc/core/RpcProtocol.d.ts.map +1 -1
  297. package/lib/cjs/rpc/core/RpcProtocol.js +13 -2
  298. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  299. package/lib/cjs/rpc/core/RpcRequest.d.ts +3 -0
  300. package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
  301. package/lib/cjs/rpc/core/RpcRequest.js +35 -1
  302. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  303. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
  304. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +1 -2
  305. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  306. package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
  307. package/lib/cjs/rpc/web/RpcMultipart.js +2 -1
  308. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  309. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  310. package/lib/cjs/rpc/web/WebAppRpcLogging.js +14 -10
  311. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  312. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +1 -0
  313. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  314. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +3 -2
  315. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  316. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +5 -6
  317. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  318. package/lib/cjs/rpc/web/WebAppRpcRequest.js +49 -27
  319. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  320. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  321. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +4 -3
  322. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  323. package/lib/cjs/tile/ElementGraphics.d.ts +8 -0
  324. package/lib/cjs/tile/ElementGraphics.d.ts.map +1 -1
  325. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  326. package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
  327. package/lib/cjs/tile/IModelTileIO.js +2 -2
  328. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  329. package/lib/esm/AnalysisStyle.d.ts +3 -0
  330. package/lib/esm/AnalysisStyle.d.ts.map +1 -1
  331. package/lib/esm/AnalysisStyle.js.map +1 -1
  332. package/lib/esm/BackgroundMapProvider.d.ts +6 -0
  333. package/lib/esm/BackgroundMapProvider.d.ts.map +1 -1
  334. package/lib/esm/BackgroundMapProvider.js +10 -0
  335. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  336. package/lib/esm/BackgroundMapSettings.d.ts +4 -0
  337. package/lib/esm/BackgroundMapSettings.d.ts.map +1 -1
  338. package/lib/esm/BackgroundMapSettings.js +1 -0
  339. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  340. package/lib/esm/Base64EncodedString.d.ts +1 -0
  341. package/lib/esm/Base64EncodedString.d.ts.map +1 -1
  342. package/lib/esm/Base64EncodedString.js.map +1 -1
  343. package/lib/esm/BriefcaseTypes.d.ts +5 -0
  344. package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
  345. package/lib/esm/BriefcaseTypes.js +2 -0
  346. package/lib/esm/BriefcaseTypes.js.map +1 -1
  347. package/lib/esm/Camera.d.ts +1 -0
  348. package/lib/esm/Camera.d.ts.map +1 -1
  349. package/lib/esm/Camera.js.map +1 -1
  350. package/lib/esm/ChangedElements.d.ts +2 -0
  351. package/lib/esm/ChangedElements.d.ts.map +1 -1
  352. package/lib/esm/ChangedElements.js +1 -0
  353. package/lib/esm/ChangedElements.js.map +1 -1
  354. package/lib/esm/ChangedEntities.d.ts +3 -0
  355. package/lib/esm/ChangedEntities.d.ts.map +1 -1
  356. package/lib/esm/ChangedEntities.js.map +1 -1
  357. package/lib/esm/ChangesetProps.d.ts +9 -1
  358. package/lib/esm/ChangesetProps.d.ts.map +1 -1
  359. package/lib/esm/ChangesetProps.js +3 -1
  360. package/lib/esm/ChangesetProps.js.map +1 -1
  361. package/lib/esm/ClipStyle.d.ts +2 -0
  362. package/lib/esm/ClipStyle.d.ts.map +1 -1
  363. package/lib/esm/ClipStyle.js.map +1 -1
  364. package/lib/esm/CloudStorage.d.ts.map +1 -1
  365. package/lib/esm/CloudStorage.js +14 -20
  366. package/lib/esm/CloudStorage.js.map +1 -1
  367. package/lib/esm/Code.d.ts +3 -0
  368. package/lib/esm/Code.d.ts.map +1 -1
  369. package/lib/esm/Code.js +1 -0
  370. package/lib/esm/Code.js.map +1 -1
  371. package/lib/esm/ColorByName.d.ts +153 -152
  372. package/lib/esm/ColorByName.d.ts.map +1 -1
  373. package/lib/esm/ColorByName.js +153 -153
  374. package/lib/esm/ColorByName.js.map +1 -1
  375. package/lib/esm/ColorDef.d.ts +55 -46
  376. package/lib/esm/ColorDef.d.ts.map +1 -1
  377. package/lib/esm/ColorDef.js +49 -31
  378. package/lib/esm/ColorDef.js.map +1 -1
  379. package/lib/esm/CommonLoggerCategory.d.ts +1 -0
  380. package/lib/esm/CommonLoggerCategory.d.ts.map +1 -1
  381. package/lib/esm/CommonLoggerCategory.js +1 -0
  382. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  383. package/lib/esm/ConcurrentQuery.d.ts +6 -1
  384. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  385. package/lib/esm/ConcurrentQuery.js +2 -0
  386. package/lib/esm/ConcurrentQuery.js.map +1 -1
  387. package/lib/esm/ContextRealityModel.d.ts +2 -0
  388. package/lib/esm/ContextRealityModel.d.ts.map +1 -1
  389. package/lib/esm/ContextRealityModel.js.map +1 -1
  390. package/lib/esm/DisplayStyleSettings.d.ts +10 -0
  391. package/lib/esm/DisplayStyleSettings.d.ts.map +1 -1
  392. package/lib/esm/DisplayStyleSettings.js +1 -0
  393. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  394. package/lib/esm/ECSqlTypes.d.ts +6 -0
  395. package/lib/esm/ECSqlTypes.d.ts.map +1 -1
  396. package/lib/esm/ECSqlTypes.js +4 -0
  397. package/lib/esm/ECSqlTypes.js.map +1 -1
  398. package/lib/esm/ElementProps.d.ts +37 -1
  399. package/lib/esm/ElementProps.d.ts.map +1 -1
  400. package/lib/esm/ElementProps.js +2 -0
  401. package/lib/esm/ElementProps.js.map +1 -1
  402. package/lib/esm/EmphasizeElementsProps.d.ts +3 -0
  403. package/lib/esm/EmphasizeElementsProps.d.ts.map +1 -1
  404. package/lib/esm/EmphasizeElementsProps.js +1 -0
  405. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  406. package/lib/esm/EntityProps.d.ts +4 -0
  407. package/lib/esm/EntityProps.d.ts.map +1 -1
  408. package/lib/esm/EntityProps.js.map +1 -1
  409. package/lib/esm/Environment.d.ts +1 -0
  410. package/lib/esm/Environment.d.ts.map +1 -1
  411. package/lib/esm/Environment.js.map +1 -1
  412. package/lib/esm/FeatureSymbology.d.ts +3 -0
  413. package/lib/esm/FeatureSymbology.d.ts.map +1 -1
  414. package/lib/esm/FeatureSymbology.js.map +1 -1
  415. package/lib/esm/FeatureTable.d.ts +1 -0
  416. package/lib/esm/FeatureTable.d.ts.map +1 -1
  417. package/lib/esm/FeatureTable.js +1 -0
  418. package/lib/esm/FeatureTable.js.map +1 -1
  419. package/lib/esm/Fonts.d.ts +3 -0
  420. package/lib/esm/Fonts.d.ts.map +1 -1
  421. package/lib/esm/Fonts.js +1 -0
  422. package/lib/esm/Fonts.js.map +1 -1
  423. package/lib/esm/Frustum.d.ts +1 -0
  424. package/lib/esm/Frustum.d.ts.map +1 -1
  425. package/lib/esm/Frustum.js +1 -0
  426. package/lib/esm/Frustum.js.map +1 -1
  427. package/lib/esm/GeoCoordinateServices.d.ts +1 -0
  428. package/lib/esm/GeoCoordinateServices.d.ts.map +1 -1
  429. package/lib/esm/GeoCoordinateServices.js +1 -0
  430. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  431. package/lib/esm/GeometryContainment.d.ts +2 -0
  432. package/lib/esm/GeometryContainment.d.ts.map +1 -1
  433. package/lib/esm/GeometryContainment.js.map +1 -1
  434. package/lib/esm/GeometryParams.d.ts +3 -0
  435. package/lib/esm/GeometryParams.d.ts.map +1 -1
  436. package/lib/esm/GeometryParams.js +3 -0
  437. package/lib/esm/GeometryParams.js.map +1 -1
  438. package/lib/esm/GeometrySummary.d.ts +3 -0
  439. package/lib/esm/GeometrySummary.d.ts.map +1 -1
  440. package/lib/esm/GeometrySummary.js +1 -0
  441. package/lib/esm/GeometrySummary.js.map +1 -1
  442. package/lib/esm/GraphicParams.d.ts +1 -0
  443. package/lib/esm/GraphicParams.d.ts.map +1 -1
  444. package/lib/esm/GraphicParams.js +1 -0
  445. package/lib/esm/GraphicParams.js.map +1 -1
  446. package/lib/esm/GroundPlane.d.ts +1 -0
  447. package/lib/esm/GroundPlane.d.ts.map +1 -1
  448. package/lib/esm/GroundPlane.js.map +1 -1
  449. package/lib/esm/HSVColor.d.ts +4 -1
  450. package/lib/esm/HSVColor.d.ts.map +1 -1
  451. package/lib/esm/HSVColor.js +4 -1
  452. package/lib/esm/HSVColor.js.map +1 -1
  453. package/lib/esm/IModel.d.ts +6 -1
  454. package/lib/esm/IModel.d.ts.map +1 -1
  455. package/lib/esm/IModel.js.map +1 -1
  456. package/lib/esm/Image.d.ts +2 -0
  457. package/lib/esm/Image.d.ts.map +1 -1
  458. package/lib/esm/Image.js +2 -0
  459. package/lib/esm/Image.js.map +1 -1
  460. package/lib/esm/IpcAppProps.d.ts +1 -0
  461. package/lib/esm/IpcAppProps.d.ts.map +1 -1
  462. package/lib/esm/IpcAppProps.js.map +1 -1
  463. package/lib/esm/LightSettings.d.ts +5 -0
  464. package/lib/esm/LightSettings.d.ts.map +1 -1
  465. package/lib/esm/LightSettings.js.map +1 -1
  466. package/lib/esm/LinePixels.d.ts +1 -0
  467. package/lib/esm/LinePixels.d.ts.map +1 -1
  468. package/lib/esm/LinePixels.js +1 -0
  469. package/lib/esm/LinePixels.js.map +1 -1
  470. package/lib/esm/Localization.d.ts +1 -0
  471. package/lib/esm/Localization.d.ts.map +1 -1
  472. package/lib/esm/Localization.js.map +1 -1
  473. package/lib/esm/MassProperties.d.ts +27 -1
  474. package/lib/esm/MassProperties.d.ts.map +1 -1
  475. package/lib/esm/MassProperties.js +1 -0
  476. package/lib/esm/MassProperties.js.map +1 -1
  477. package/lib/esm/MaterialProps.d.ts +6 -0
  478. package/lib/esm/MaterialProps.d.ts.map +1 -1
  479. package/lib/esm/MaterialProps.js +1 -0
  480. package/lib/esm/MaterialProps.js.map +1 -1
  481. package/lib/esm/ModelClipGroup.d.ts +1 -0
  482. package/lib/esm/ModelClipGroup.d.ts.map +1 -1
  483. package/lib/esm/ModelClipGroup.js.map +1 -1
  484. package/lib/esm/ModelGeometryChanges.d.ts +9 -1
  485. package/lib/esm/ModelGeometryChanges.d.ts.map +1 -1
  486. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  487. package/lib/esm/ModelProps.d.ts +6 -0
  488. package/lib/esm/ModelProps.d.ts.map +1 -1
  489. package/lib/esm/ModelProps.js.map +1 -1
  490. package/lib/esm/PlanProjectionSettings.d.ts +1 -0
  491. package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
  492. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  493. package/lib/esm/PlanarClipMask.d.ts +3 -0
  494. package/lib/esm/PlanarClipMask.d.ts.map +1 -1
  495. package/lib/esm/PlanarClipMask.js +2 -0
  496. package/lib/esm/PlanarClipMask.js.map +1 -1
  497. package/lib/esm/RgbColor.d.ts +1 -0
  498. package/lib/esm/RgbColor.d.ts.map +1 -1
  499. package/lib/esm/RgbColor.js.map +1 -1
  500. package/lib/esm/SessionProps.d.ts +1 -0
  501. package/lib/esm/SessionProps.d.ts.map +1 -1
  502. package/lib/esm/SessionProps.js.map +1 -1
  503. package/lib/esm/SkyBox.d.ts +4 -0
  504. package/lib/esm/SkyBox.d.ts.map +1 -1
  505. package/lib/esm/SkyBox.js +1 -0
  506. package/lib/esm/SkyBox.js.map +1 -1
  507. package/lib/esm/SolarShadows.d.ts +1 -0
  508. package/lib/esm/SolarShadows.d.ts.map +1 -1
  509. package/lib/esm/SolarShadows.js.map +1 -1
  510. package/lib/esm/SpatialClassification.d.ts +5 -0
  511. package/lib/esm/SpatialClassification.d.ts.map +1 -1
  512. package/lib/esm/SpatialClassification.js +2 -0
  513. package/lib/esm/SpatialClassification.js.map +1 -1
  514. package/lib/esm/TerrainSettings.d.ts +3 -0
  515. package/lib/esm/TerrainSettings.d.ts.map +1 -1
  516. package/lib/esm/TerrainSettings.js +1 -0
  517. package/lib/esm/TerrainSettings.js.map +1 -1
  518. package/lib/esm/TextureProps.d.ts +3 -0
  519. package/lib/esm/TextureProps.d.ts.map +1 -1
  520. package/lib/esm/TextureProps.js.map +1 -1
  521. package/lib/esm/ThematicDisplay.d.ts +9 -1
  522. package/lib/esm/ThematicDisplay.d.ts.map +1 -1
  523. package/lib/esm/ThematicDisplay.js +5 -1
  524. package/lib/esm/ThematicDisplay.js.map +1 -1
  525. package/lib/esm/Thumbnail.d.ts +2 -0
  526. package/lib/esm/Thumbnail.d.ts.map +1 -1
  527. package/lib/esm/Thumbnail.js.map +1 -1
  528. package/lib/esm/TileProps.d.ts +1 -0
  529. package/lib/esm/TileProps.d.ts.map +1 -1
  530. package/lib/esm/TileProps.js.map +1 -1
  531. package/lib/esm/Tween.d.ts +16 -4
  532. package/lib/esm/Tween.d.ts.map +1 -1
  533. package/lib/esm/Tween.js.map +1 -1
  534. package/lib/esm/TxnAction.d.ts +1 -0
  535. package/lib/esm/TxnAction.d.ts.map +1 -1
  536. package/lib/esm/TxnAction.js +1 -0
  537. package/lib/esm/TxnAction.js.map +1 -1
  538. package/lib/esm/ViewDetails.d.ts +3 -0
  539. package/lib/esm/ViewDetails.d.ts.map +1 -1
  540. package/lib/esm/ViewDetails.js +1 -0
  541. package/lib/esm/ViewDetails.js.map +1 -1
  542. package/lib/esm/ViewFlags.d.ts +4 -0
  543. package/lib/esm/ViewFlags.d.ts.map +1 -1
  544. package/lib/esm/ViewFlags.js +1 -0
  545. package/lib/esm/ViewFlags.js.map +1 -1
  546. package/lib/esm/ViewProps.d.ts +69 -3
  547. package/lib/esm/ViewProps.d.ts.map +1 -1
  548. package/lib/esm/ViewProps.js.map +1 -1
  549. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +1 -0
  550. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts.map +1 -1
  551. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  552. package/lib/esm/domains/FunctionalElementProps.d.ts +4 -1
  553. package/lib/esm/domains/FunctionalElementProps.d.ts.map +1 -1
  554. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  555. package/lib/esm/domains/GenericElementProps.d.ts +8 -2
  556. package/lib/esm/domains/GenericElementProps.d.ts.map +1 -1
  557. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  558. package/lib/esm/geometry/AdditionalTransform.d.ts +2 -0
  559. package/lib/esm/geometry/AdditionalTransform.d.ts.map +1 -1
  560. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  561. package/lib/esm/geometry/Cartographic.d.ts +1 -0
  562. package/lib/esm/geometry/Cartographic.d.ts.map +1 -1
  563. package/lib/esm/geometry/Cartographic.js.map +1 -1
  564. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +5 -0
  565. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts.map +1 -1
  566. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  567. package/lib/esm/geometry/ElementGeometry.d.ts +2 -0
  568. package/lib/esm/geometry/ElementGeometry.d.ts.map +1 -1
  569. package/lib/esm/geometry/ElementGeometry.js +1 -0
  570. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  571. package/lib/esm/geometry/GeodeticDatum.d.ts +80 -1
  572. package/lib/esm/geometry/GeodeticDatum.d.ts.map +1 -1
  573. package/lib/esm/geometry/GeodeticDatum.js +77 -0
  574. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  575. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +1 -0
  576. package/lib/esm/geometry/GeodeticEllipsoid.d.ts.map +1 -1
  577. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  578. package/lib/esm/geometry/GeometryStream.d.ts +15 -0
  579. package/lib/esm/geometry/GeometryStream.d.ts.map +1 -1
  580. package/lib/esm/geometry/GeometryStream.js +11 -7
  581. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  582. package/lib/esm/geometry/ImageGraphic.d.ts +2 -0
  583. package/lib/esm/geometry/ImageGraphic.d.ts.map +1 -1
  584. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  585. package/lib/esm/geometry/Placement.d.ts +6 -0
  586. package/lib/esm/geometry/Placement.d.ts.map +1 -1
  587. package/lib/esm/geometry/Placement.js.map +1 -1
  588. package/lib/esm/geometry/Projection.d.ts +6 -0
  589. package/lib/esm/geometry/Projection.d.ts.map +1 -1
  590. package/lib/esm/geometry/Projection.js.map +1 -1
  591. package/lib/esm/geometry/TextString.d.ts +1 -0
  592. package/lib/esm/geometry/TextString.d.ts.map +1 -1
  593. package/lib/esm/geometry/TextString.js.map +1 -1
  594. package/lib/esm/ipc/IpcSocket.d.ts +1 -0
  595. package/lib/esm/ipc/IpcSocket.d.ts.map +1 -1
  596. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  597. package/lib/esm/ipc/IpcWebSocketTransport.d.ts.map +1 -1
  598. package/lib/esm/ipc/IpcWebSocketTransport.js +1 -0
  599. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  600. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +5 -2
  601. package/lib/esm/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  602. package/lib/esm/rpc/IModelReadRpcInterface.js +4 -1
  603. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  604. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +4 -2
  605. package/lib/esm/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  606. package/lib/esm/rpc/IModelTileRpcInterface.js +4 -2
  607. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  608. package/lib/esm/rpc/core/RpcControl.d.ts.map +1 -1
  609. package/lib/esm/rpc/core/RpcControl.js +1 -0
  610. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  611. package/lib/esm/rpc/core/RpcInvocation.d.ts +3 -0
  612. package/lib/esm/rpc/core/RpcInvocation.d.ts.map +1 -1
  613. package/lib/esm/rpc/core/RpcInvocation.js +35 -9
  614. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  615. package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
  616. package/lib/esm/rpc/core/RpcMarshaling.js +1 -0
  617. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  618. package/lib/esm/rpc/core/RpcOperation.d.ts +2 -0
  619. package/lib/esm/rpc/core/RpcOperation.d.ts.map +1 -1
  620. package/lib/esm/rpc/core/RpcOperation.js +2 -0
  621. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  622. package/lib/esm/rpc/core/RpcProtocol.d.ts +22 -1
  623. package/lib/esm/rpc/core/RpcProtocol.d.ts.map +1 -1
  624. package/lib/esm/rpc/core/RpcProtocol.js +12 -1
  625. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  626. package/lib/esm/rpc/core/RpcRequest.d.ts +3 -0
  627. package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
  628. package/lib/esm/rpc/core/RpcRequest.js +36 -2
  629. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  630. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
  631. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +0 -1
  632. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  633. package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
  634. package/lib/esm/rpc/web/RpcMultipart.js +1 -0
  635. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  636. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  637. package/lib/esm/rpc/web/WebAppRpcLogging.js +14 -10
  638. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  639. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +1 -0
  640. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  641. package/lib/esm/rpc/web/WebAppRpcProtocol.js +3 -2
  642. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  643. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +5 -6
  644. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  645. package/lib/esm/rpc/web/WebAppRpcRequest.js +47 -25
  646. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  647. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  648. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +1 -0
  649. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  650. package/lib/esm/tile/ElementGraphics.d.ts +8 -0
  651. package/lib/esm/tile/ElementGraphics.d.ts.map +1 -1
  652. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  653. package/lib/esm/tile/IModelTileIO.d.ts +2 -2
  654. package/lib/esm/tile/IModelTileIO.js +2 -2
  655. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  656. package/package.json +24 -11
@@ -1 +1 @@
1
- {"version":3,"file":"LightSettings.js","sourceRoot":"","sources":["../../src/LightSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { assert, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { Vector3d, XYZProps } from \"@itwin/core-geometry\";\r\nimport { RgbColor, RgbColorProps } from \"./RgbColor\";\r\n\r\nfunction extractIntensity(value: number | undefined, defaultValue: number) {\r\n const maxIntensity = 5;\r\n return typeof value === \"number\" ? Math.max(0, Math.min(maxIntensity, value)) : defaultValue;\r\n}\r\n\r\n/** Wire format for the solar directional light associated with a [[LightSettingsProps]].\r\n * The light is colored white and oriented in any direction in world coordinates.\r\n * It will cast shadows if it is above the world XY plane and if the shadows view flag is enabled for the view.\r\n * By default, the solar light is only applied when shadows are enabled, but can be set to be applied unconditionally.\r\n * @public\r\n */\r\nexport interface SolarLightProps {\r\n /** Intensity of the light, typically in [0..1] but can range up to 5. Default: 1.0 */\r\n intensity?: number;\r\n /** Direction of the light in world coordinates. Defaults to a vector looking down on the scene at a 45 degree angle mostly along the Y axis. */\r\n direction?: XYZProps;\r\n /** If true, the light will be applied even when shadows are turned off for the view.\r\n * If false, a roughly overhead light of the same intensity oriented in view space will be used instead.\r\n * Default: false.\r\n */\r\n alwaysEnabled?: boolean;\r\n /** If defined, the time in UNIX milliseconds from which [[direction]] was calculated.\r\n * @see [[DisplayStyleSettings.setSunTime]] to compute the solar direction from a point in time.\r\n */\r\n timePoint?: number;\r\n}\r\n\r\nconst defaultSolarDirection = Vector3d.create(0.272166, 0.680414, 0.680414);\r\n\r\n/** Describes the solar directional light associated with a [[LightSettings]].\r\n * @see [[SolarLightProps]].\r\n * @public\r\n */\r\nexport class SolarLight {\r\n /** Direction of the light in world coordinates. Defaults to a vector looking down on the scene at a 45 degree angle mostly along the Y axis. */\r\n public readonly direction: Readonly<Vector3d>;\r\n /** Intensity of the light, typically in [0..1] but can range up to 5. Default: 1.0 */\r\n public readonly intensity: number;\r\n /** If true, the light will be applied even when shadows are turned off for the view.\r\n * If false, a roughly overhead light of the same intensity oriented in view space will be used instead.\r\n * Default: false.\r\n */\r\n public readonly alwaysEnabled: boolean;\r\n /** If defined, the time in UNIX milliseconds from which [[direction]] was calculated.\r\n * @see [[DisplayStyleSettings.setSunTime]] to compute the solar direction from a point in time.\r\n */\r\n public readonly timePoint?: number;\r\n\r\n public constructor(json?: SolarLightProps) {\r\n json = json || {};\r\n this.intensity = extractIntensity(json.intensity, 1);\r\n this.alwaysEnabled = JsonUtils.asBool(json.alwaysEnabled);\r\n\r\n if (json.direction)\r\n this.direction = Vector3d.fromJSON(json.direction);\r\n else\r\n this.direction = defaultSolarDirection.clone();\r\n\r\n if (typeof json.timePoint === \"number\")\r\n this.timePoint = json.timePoint;\r\n }\r\n\r\n public toJSON(): SolarLightProps | undefined {\r\n const direction = this.direction.isAlmostEqual(defaultSolarDirection) ? undefined : this.direction.toJSON();\r\n const intensity = this.intensity !== 1 ? this.intensity : undefined;\r\n const alwaysEnabled = this.alwaysEnabled ? true : undefined;\r\n const timePoint = this.timePoint;\r\n\r\n if (undefined === direction && undefined === intensity && undefined === alwaysEnabled && undefined === timePoint)\r\n return undefined;\r\n\r\n const json: SolarLightProps = {};\r\n if (direction)\r\n json.direction = direction;\r\n\r\n if (undefined !== intensity)\r\n json.intensity = intensity;\r\n\r\n if (undefined !== alwaysEnabled)\r\n json.alwaysEnabled = alwaysEnabled;\r\n\r\n if (undefined !== timePoint)\r\n json.timePoint = timePoint;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of this SolarLight, identical except in any properties explicitly specified by `changedProps`, with a possible exception for [[timePoint]].\r\n * If `this.timePoint` is defined and `changedProps` defines `direction` but **doesn't** define `timePoint`, the time point will only be preserved in the\r\n * copy if `changesProps.direction` is equal to `this.direction`.\r\n */\r\n public clone(changedProps?: SolarLightProps): SolarLight {\r\n if (!changedProps)\r\n return this;\r\n\r\n const props = this.toJSON() ?? {};\r\n if (undefined !== changedProps.direction)\r\n props.direction = changedProps.direction;\r\n\r\n if (undefined !== changedProps.intensity)\r\n props.intensity = changedProps.intensity;\r\n\r\n if (undefined !== changedProps.alwaysEnabled)\r\n props.alwaysEnabled = changedProps.alwaysEnabled;\r\n\r\n if (undefined !== changedProps.timePoint)\r\n props.timePoint = changedProps.timePoint;\r\n\r\n // If our direction was computed from a time point and the caller only supplies a direction, invalidate the time point unless the input direction matches our direction.\r\n // If caller explicitly supplied a timePoint, trust it.\r\n if (undefined !== this.timePoint && undefined === changedProps.timePoint && undefined !== changedProps.direction) {\r\n const newDirection = Vector3d.fromJSON(changedProps.direction);\r\n if (!newDirection.isAlmostEqual(this.direction))\r\n props.timePoint = undefined;\r\n }\r\n\r\n return new SolarLight(props);\r\n }\r\n\r\n public equals(rhs: SolarLight): boolean {\r\n return this.intensity === rhs.intensity && this.alwaysEnabled === rhs.alwaysEnabled && this.direction.isExactEqual(rhs.direction) && this.timePoint === rhs.timePoint;\r\n }\r\n}\r\n\r\n/** Wire format for the ambient light associated with a [[LightSettingsProps]].\r\n * Ambient light applies equally to all surfaces in the scene.\r\n * @public\r\n */\r\nexport interface AmbientLightProps {\r\n /** The color of the light. Black is treated as a special case, indicating that the surface's own diffuse color should be used. */\r\n color?: RgbColorProps;\r\n /** The intensity of the light. Default: 0.2. */\r\n intensity?: number;\r\n}\r\n\r\n/** Describes the ambient light associated with a [[LightSettings]].\r\n * @see [[AmbientLightProps]]\r\n * @public\r\n */\r\nexport class AmbientLight {\r\n public readonly color: RgbColor;\r\n public readonly intensity: number;\r\n\r\n public constructor(json?: AmbientLightProps) {\r\n json = json || {};\r\n this.intensity = extractIntensity(json.intensity, 0.2);\r\n this.color = json.color ? RgbColor.fromJSON(json.color) : new RgbColor(0, 0, 0);\r\n }\r\n\r\n public toJSON(): AmbientLightProps | undefined {\r\n const color = this.color.r !== 0 || this.color.g !== 0 || this.color.b !== 0 ? this.color.toJSON() : undefined;\r\n const intensity = 0.2 !== this.intensity ? this.intensity : undefined;\r\n if (undefined === color && undefined === intensity)\r\n return undefined;\r\n\r\n const json: AmbientLightProps = {};\r\n if (color)\r\n json.color = color;\r\n\r\n if (undefined !== intensity)\r\n json.intensity = intensity;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of this light, identical except for any properties explicitly specified by `changed`. */\r\n public clone(changed?: AmbientLightProps): AmbientLight {\r\n if (!changed)\r\n return this;\r\n\r\n const props = this.toJSON() ?? {};\r\n if (undefined !== changed.intensity)\r\n props.intensity = changed.intensity;\r\n\r\n if (undefined !== changed.color)\r\n props.color = changed.color;\r\n\r\n return new AmbientLight(props);\r\n }\r\n\r\n public equals(rhs: AmbientLight): boolean {\r\n return this.intensity === rhs.intensity && this.color.equals(rhs.color);\r\n }\r\n}\r\n\r\n/** Wire format for a pair of hemisphere lights associated with a [[LightSettingsProps]].\r\n * Hemisphere lights are oriented in opposite directions along the world Z axis. Each has its own color; they share one intensity.\r\n * They are often used to simulate outdoor reflection of light from the ground and sky, so the colors often match the ground and sky colors\r\n * of the [[SkyBox]].\r\n * @public\r\n */\r\nexport interface HemisphereLightsProps {\r\n /** The color of the downward-facing light. Default: (143, 205, 255). */\r\n upperColor?: RgbColorProps;\r\n /** The color of the upward-facing light. Default: (120, 143, 125). */\r\n lowerColor?: RgbColorProps;\r\n /** Intensity of the lights. Default: 0. */\r\n intensity?: number;\r\n}\r\n\r\nconst defaultUpperHemisphereColor = new RgbColor(143, 205, 255);\r\nconst defaultLowerHemisphereColor = new RgbColor(120, 143, 125);\r\n\r\n/** Describes a pair of hemisphere lights associated with a [[LightSettings]].\r\n * @see [[HemisphereLightsProps]]\r\n * @public\r\n */\r\nexport class HemisphereLights {\r\n public readonly upperColor: RgbColor;\r\n public readonly lowerColor: RgbColor;\r\n public readonly intensity: number;\r\n\r\n public constructor(json?: HemisphereLightsProps) {\r\n json = json || {};\r\n this.intensity = extractIntensity(json.intensity, 0);\r\n this.upperColor = json.upperColor ? RgbColor.fromJSON(json.upperColor) : defaultUpperHemisphereColor;\r\n this.lowerColor = json.lowerColor ? RgbColor.fromJSON(json.lowerColor) : defaultLowerHemisphereColor;\r\n }\r\n\r\n public toJSON(): HemisphereLightsProps | undefined {\r\n const upperColor = this.upperColor.equals(defaultUpperHemisphereColor) ? undefined : this.upperColor.toJSON();\r\n const lowerColor = this.lowerColor.equals(defaultLowerHemisphereColor) ? undefined : this.lowerColor.toJSON();\r\n const intensity = 0 === this.intensity ? undefined : this.intensity;\r\n\r\n if (undefined === upperColor && undefined === lowerColor && undefined === intensity)\r\n return undefined;\r\n\r\n const json: HemisphereLightsProps = {};\r\n if (upperColor)\r\n json.upperColor = upperColor;\r\n\r\n if (lowerColor)\r\n json.lowerColor = lowerColor;\r\n\r\n if (undefined !== intensity)\r\n json.intensity = intensity;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of these lights, identical except for any properties explicitly specified by `changed`. */\r\n public clone(changed?: HemisphereLightsProps): HemisphereLights {\r\n if (!changed)\r\n return this;\r\n\r\n const props = this.toJSON() || {};\r\n if (undefined !== changed.upperColor)\r\n props.upperColor = changed.upperColor;\r\n\r\n if (undefined !== changed.lowerColor)\r\n props.lowerColor = changed.lowerColor;\r\n\r\n if (undefined !== changed.intensity)\r\n props.intensity = changed.intensity;\r\n\r\n return new HemisphereLights(props);\r\n }\r\n\r\n public equals(rhs: HemisphereLights): boolean {\r\n return this.intensity === rhs.intensity && this.upperColor.equals(rhs.upperColor) && this.lowerColor.equals(rhs.lowerColor);\r\n }\r\n}\r\n\r\n/** JSON representation of a [[FresnelSettings]].\r\n * @public\r\n */\r\nexport interface FresnelSettingsProps {\r\n /** @see [[FresnelSettings.intensity]].\r\n * Default value: 0\r\n */\r\n intensity?: number;\r\n\r\n /** @see [[FresnelSettings.invert]].\r\n * Default value: false\r\n */\r\n invert?: boolean;\r\n}\r\n\r\nfunction clampIntensity(intensity = 0): number {\r\n return Math.max(intensity, 0);\r\n}\r\n\r\n/** As part of a [[LightSettings]], describes how to apply a Fresnel effect to the contents of the view.\r\n * The \"Fresnel effect\" is based on the observation that the reflectivity of a surface varies based on the angle between the surface and\r\n * the viewer's line of sight. For example, a flat surface will appear more reflective when viewed at a glancing angle than it will when\r\n * viewed from above; and a sphere will appear more reflective around its edges than at its center.\r\n *\r\n * This principle can be used to improve photorealism, but the implementation provided here is intended to produce non-realistic but\r\n * aesthetically-pleasing results.\r\n * @see [[LightSettings.fresnel]].\r\n * @public\r\n */\r\nexport class FresnelSettings {\r\n /** The strength of the effect in terms of how much brighter the surface becomes. The intensity at a given point on the surface is determined by\r\n * the angle between the viewer's line of sight and the vector from the viewer to that point. Maximum intensity is produced when those vectors are\r\n * perpendicular, and zero intensity is produced when those vectors are parallel (unless [[invert]] is `true`).\r\n *\r\n * A value of zero turns off the effect. Values less than zero are clamped to zero. Typical values range between 0 and 1.\r\n */\r\n public readonly intensity: number;\r\n /** If true, inverts the effect's [[intensity]] such that maximum intensity is produced when the viewer's line of sight is parallel to the vector between\r\n * the viewer and the point on the surface, and zero intensity is produced when the viewer's line of sight is perpendicular to that vector.\r\n */\r\n public readonly invert: boolean;\r\n\r\n private constructor(intensity: number, invert: boolean) {\r\n assert(intensity >= 0);\r\n this.intensity = intensity;\r\n this.invert = invert;\r\n }\r\n\r\n private static readonly _defaults = new FresnelSettings(0, false);\r\n\r\n /** Create from JSON representation, using default values for any unspecified or `undefined` properties. */\r\n public static fromJSON(props?: FresnelSettingsProps): FresnelSettings {\r\n const intensity = clampIntensity(JsonUtils.asDouble(props?.intensity));\r\n const invert = JsonUtils.asBool(props?.invert);\r\n if (0 === intensity && !invert)\r\n return this._defaults;\r\n\r\n return new this(intensity, invert);\r\n }\r\n\r\n /** Create a new FresnelSettings.\r\n * @note Intensity values less than zero will be set to zero.\r\n */\r\n public static create(intensity=0, invert=false): FresnelSettings {\r\n return this.fromJSON({ intensity, invert });\r\n }\r\n\r\n /** Convert to JSON representation.\r\n * @note If all settings match the default values, `undefined` will be returned.\r\n */\r\n public toJSON(): FresnelSettingsProps | undefined {\r\n if (0 === this.intensity && !this.invert)\r\n return undefined;\r\n\r\n const props: FresnelSettingsProps = { };\r\n if (0 !== this.intensity)\r\n props.intensity = this.intensity;\r\n\r\n if (this.invert)\r\n props.invert = true;\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of these settings, modified to match any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps?: FresnelSettingsProps): FresnelSettings {\r\n if ((undefined === changedProps?.intensity || changedProps.intensity === this.intensity)\r\n && (undefined === changedProps?.invert || changedProps.invert === this.invert))\r\n return this;\r\n\r\n const intensity = changedProps?.intensity ?? this.intensity;\r\n const invert = changedProps?.invert ?? this.invert;\r\n return FresnelSettings.fromJSON({ intensity, invert });\r\n }\r\n\r\n /** Return true if these settings are equivalent to `rhs`. */\r\n public equals(rhs: FresnelSettings): boolean {\r\n return this === rhs || (this.intensity === rhs.intensity && this.invert === rhs.invert);\r\n }\r\n}\r\n\r\n/** Wire format for a [[LightSettings]] describing lighting for a 3d scene.\r\n * 3d lighting provides the following lights, all of which are optional:\r\n * - A \"portrait\" light affixed to the camera and pointing directly forward into the scene. Color: white.\r\n * - A second directional light. Color: white.\r\n * - This can be a solar shadow-casting light, or (when shadows are disabled) a roughly overhead light oriented in view space.\r\n * - A pair of hemisphere lights pointing in opposite directions along the world Z axis. Each has its own customizable color.\r\n * - An ambient light of any color applied equally to all surfaces.\r\n * Specular intensity of all lights is controlled separately.\r\n * Light intensities are typically expressed in [0..1] but can be as large as 5.\r\n * @see [[DisplayStyle3dSettingsProps]]\r\n * @public\r\n */\r\nexport interface LightSettingsProps {\r\n /** A white portrait light affixed to the camera and pointing directly forward into the scene. */\r\n portrait?: {\r\n /** Intensity, typically in [0..1], maximum 5. Default: 0.3. */\r\n intensity?: number;\r\n };\r\n /** Solar light settings. */\r\n solar?: SolarLightProps;\r\n /** Hemisphere light settings. */\r\n hemisphere?: HemisphereLightsProps;\r\n /** Ambient light settings. */\r\n ambient?: AmbientLightProps;\r\n /** Specular intensity applied to all lights. */\r\n specularIntensity?: number;\r\n /** Applies a [cel-shaded](https://en.wikipedia.org/wiki/Cel_shading) effect. If greater than zero, specifies the number of cels. Continuous lighting intensities\r\n * are computed, then quantized to the specified number of cels. Values greater than 254 have no visible effect.\r\n * Typically a value of 2 is appropriate if specular intensity is close to zero; 3 if specular intensity is larger.\r\n * Cel-shading is often combined with thick, dark visible edges for a cartoon or comic book effect.\r\n * Default: 0\r\n */\r\n numCels?: number;\r\n\r\n /** Fresnel settings.\r\n * @see [[FresnelSettings]].\r\n */\r\n fresnel?: FresnelSettingsProps;\r\n}\r\n\r\n/** Describes the lighting for a 3d scene, associated with a [[DisplayStyle3dSettings]] in turn associated with a [DisplayStyle3d]($backend) or [DisplayStyle3dState]($frontend).\r\n * @see [[LightSettingsProps]]\r\n * @public\r\n */\r\nexport class LightSettings {\r\n public readonly solar: SolarLight;\r\n public readonly ambient: AmbientLight;\r\n public readonly hemisphere: HemisphereLights;\r\n /** @see [[LightSettingsProps.portrait]]. */\r\n public readonly portraitIntensity: number;\r\n public readonly specularIntensity: number;\r\n /** @see [[LightSettingsProps.numCels]]. */\r\n public readonly numCels: number;\r\n public readonly fresnel: FresnelSettings;\r\n\r\n private constructor(solar: SolarLight, ambient: AmbientLight, hemisphere: HemisphereLights, portraitIntensity: number, specularIntensity: number, numCels: number,\r\n fresnel: FresnelSettings) {\r\n this.solar = solar;\r\n this.ambient = ambient;\r\n this.hemisphere = hemisphere;\r\n this.portraitIntensity = portraitIntensity;\r\n this.specularIntensity = specularIntensity;\r\n this.numCels = numCels;\r\n this.fresnel = fresnel;\r\n }\r\n\r\n public static fromJSON(props?: LightSettingsProps): LightSettings {\r\n const solar = new SolarLight(props?.solar);\r\n const ambient = new AmbientLight(props?.ambient);\r\n const hemisphere = new HemisphereLights(props?.hemisphere);\r\n const portraitIntensity = extractIntensity(props?.portrait?.intensity, 0.3);\r\n const specularIntensity = extractIntensity(props?.specularIntensity, 1.0);\r\n const numCels = JsonUtils.asInt(props?.numCels, 0);\r\n const fresnel = FresnelSettings.fromJSON(props?.fresnel);\r\n\r\n return new LightSettings(solar, ambient, hemisphere, portraitIntensity, specularIntensity, numCels, fresnel);\r\n }\r\n\r\n public toJSON(): LightSettingsProps | undefined {\r\n const solar = this.solar.toJSON();\r\n const ambient = this.ambient.toJSON();\r\n const hemisphere = this.hemisphere.toJSON();\r\n const portrait = 0.3 !== this.portraitIntensity ? { intensity: this.portraitIntensity } : undefined;\r\n const specularIntensity = 1 !== this.specularIntensity ? this.specularIntensity : undefined;\r\n const numCels = 0 !== this.numCels ? this.numCels : undefined;\r\n const fresnel = this.fresnel.toJSON();\r\n\r\n if (!solar && !ambient && !hemisphere && !portrait && undefined === specularIntensity && undefined === numCels && undefined === fresnel)\r\n return undefined;\r\n\r\n const json: LightSettingsProps = {};\r\n if (solar)\r\n json.solar = solar;\r\n\r\n if (ambient)\r\n json.ambient = ambient;\r\n\r\n if (hemisphere)\r\n json.hemisphere = hemisphere;\r\n\r\n if (portrait)\r\n json.portrait = portrait;\r\n\r\n if (undefined !== specularIntensity)\r\n json.specularIntensity = specularIntensity;\r\n\r\n if (undefined !== numCels)\r\n json.numCels = numCels;\r\n\r\n if (fresnel)\r\n json.fresnel = fresnel;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of these light settings, identical except for any properties explicitly specified by `changed`.\r\n * Note that the solar, ambient, and hemisphere lights will also be cloned using their own `clone` methods - so for example, the following:\r\n * ` clone({ ambient: { intensity: 0.5 } })`\r\n * will overwrite the ambient light's intensity but preserve its current color, rather than replacing the color with the default color.\r\n */\r\n public clone(changed?: LightSettingsProps): LightSettings {\r\n if (!changed)\r\n return this;\r\n\r\n const solar = this.solar.clone(changed.solar);\r\n const ambient = this.ambient.clone(changed.ambient);\r\n const hemisphere = this.hemisphere.clone(changed.hemisphere);\r\n const portrait = changed.portrait?.intensity ?? this.portraitIntensity;\r\n const specular = changed.specularIntensity ?? this.specularIntensity;\r\n const numCels = changed.numCels ?? this.numCels;\r\n const fresnel = this.fresnel.clone(changed.fresnel);\r\n\r\n return new LightSettings(solar, ambient, hemisphere, portrait, specular, numCels, fresnel);\r\n }\r\n\r\n public equals(rhs: LightSettings): boolean {\r\n if (this === rhs)\r\n return true;\r\n\r\n return this.portraitIntensity === rhs.portraitIntensity && this.specularIntensity === rhs.specularIntensity && this.numCels === rhs.numCels\r\n && this.ambient.equals(rhs.ambient) && this.solar.equals(rhs.solar) && this.hemisphere.equals(rhs.hemisphere) && this.fresnel.equals(rhs.fresnel);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"LightSettings.js","sourceRoot":"","sources":["../../src/LightSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\nimport { assert, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { Vector3d, XYZProps } from \"@itwin/core-geometry\";\r\nimport { RgbColor, RgbColorProps } from \"./RgbColor\";\r\n\r\nfunction extractIntensity(value: number | undefined, defaultValue: number) {\r\n const maxIntensity = 5;\r\n return typeof value === \"number\" ? Math.max(0, Math.min(maxIntensity, value)) : defaultValue;\r\n}\r\n\r\n/** Wire format for the solar directional light associated with a [[LightSettingsProps]].\r\n * The light is colored white and oriented in any direction in world coordinates.\r\n * It will cast shadows if it is above the world XY plane and if the shadows view flag is enabled for the view.\r\n * By default, the solar light is only applied when shadows are enabled, but can be set to be applied unconditionally.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SolarLightProps {\r\n /** Intensity of the light, typically in [0..1] but can range up to 5. Default: 1.0 */\r\n intensity?: number;\r\n /** Direction of the light in world coordinates. Defaults to a vector looking down on the scene at a 45 degree angle mostly along the Y axis. */\r\n direction?: XYZProps;\r\n /** If true, the light will be applied even when shadows are turned off for the view.\r\n * If false, a roughly overhead light of the same intensity oriented in view space will be used instead.\r\n * Default: false.\r\n */\r\n alwaysEnabled?: boolean;\r\n /** If defined, the time in UNIX milliseconds from which [[direction]] was calculated.\r\n * @see [[DisplayStyleSettings.setSunTime]] to compute the solar direction from a point in time.\r\n */\r\n timePoint?: number;\r\n}\r\n\r\nconst defaultSolarDirection = Vector3d.create(0.272166, 0.680414, 0.680414);\r\n\r\n/** Describes the solar directional light associated with a [[LightSettings]].\r\n * @see [[SolarLightProps]].\r\n * @public\r\n */\r\nexport class SolarLight {\r\n /** Direction of the light in world coordinates. Defaults to a vector looking down on the scene at a 45 degree angle mostly along the Y axis. */\r\n public readonly direction: Readonly<Vector3d>;\r\n /** Intensity of the light, typically in [0..1] but can range up to 5. Default: 1.0 */\r\n public readonly intensity: number;\r\n /** If true, the light will be applied even when shadows are turned off for the view.\r\n * If false, a roughly overhead light of the same intensity oriented in view space will be used instead.\r\n * Default: false.\r\n */\r\n public readonly alwaysEnabled: boolean;\r\n /** If defined, the time in UNIX milliseconds from which [[direction]] was calculated.\r\n * @see [[DisplayStyleSettings.setSunTime]] to compute the solar direction from a point in time.\r\n */\r\n public readonly timePoint?: number;\r\n\r\n public constructor(json?: SolarLightProps) {\r\n json = json || {};\r\n this.intensity = extractIntensity(json.intensity, 1);\r\n this.alwaysEnabled = JsonUtils.asBool(json.alwaysEnabled);\r\n\r\n if (json.direction)\r\n this.direction = Vector3d.fromJSON(json.direction);\r\n else\r\n this.direction = defaultSolarDirection.clone();\r\n\r\n if (typeof json.timePoint === \"number\")\r\n this.timePoint = json.timePoint;\r\n }\r\n\r\n public toJSON(): SolarLightProps | undefined {\r\n const direction = this.direction.isAlmostEqual(defaultSolarDirection) ? undefined : this.direction.toJSON();\r\n const intensity = this.intensity !== 1 ? this.intensity : undefined;\r\n const alwaysEnabled = this.alwaysEnabled ? true : undefined;\r\n const timePoint = this.timePoint;\r\n\r\n if (undefined === direction && undefined === intensity && undefined === alwaysEnabled && undefined === timePoint)\r\n return undefined;\r\n\r\n const json: SolarLightProps = {};\r\n if (direction)\r\n json.direction = direction;\r\n\r\n if (undefined !== intensity)\r\n json.intensity = intensity;\r\n\r\n if (undefined !== alwaysEnabled)\r\n json.alwaysEnabled = alwaysEnabled;\r\n\r\n if (undefined !== timePoint)\r\n json.timePoint = timePoint;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of this SolarLight, identical except in any properties explicitly specified by `changedProps`, with a possible exception for [[timePoint]].\r\n * If `this.timePoint` is defined and `changedProps` defines `direction` but **doesn't** define `timePoint`, the time point will only be preserved in the\r\n * copy if `changesProps.direction` is equal to `this.direction`.\r\n */\r\n public clone(changedProps?: SolarLightProps): SolarLight {\r\n if (!changedProps)\r\n return this;\r\n\r\n const props = this.toJSON() ?? {};\r\n if (undefined !== changedProps.direction)\r\n props.direction = changedProps.direction;\r\n\r\n if (undefined !== changedProps.intensity)\r\n props.intensity = changedProps.intensity;\r\n\r\n if (undefined !== changedProps.alwaysEnabled)\r\n props.alwaysEnabled = changedProps.alwaysEnabled;\r\n\r\n if (undefined !== changedProps.timePoint)\r\n props.timePoint = changedProps.timePoint;\r\n\r\n // If our direction was computed from a time point and the caller only supplies a direction, invalidate the time point unless the input direction matches our direction.\r\n // If caller explicitly supplied a timePoint, trust it.\r\n if (undefined !== this.timePoint && undefined === changedProps.timePoint && undefined !== changedProps.direction) {\r\n const newDirection = Vector3d.fromJSON(changedProps.direction);\r\n if (!newDirection.isAlmostEqual(this.direction))\r\n props.timePoint = undefined;\r\n }\r\n\r\n return new SolarLight(props);\r\n }\r\n\r\n public equals(rhs: SolarLight): boolean {\r\n return this.intensity === rhs.intensity && this.alwaysEnabled === rhs.alwaysEnabled && this.direction.isExactEqual(rhs.direction) && this.timePoint === rhs.timePoint;\r\n }\r\n}\r\n\r\n/** Wire format for the ambient light associated with a [[LightSettingsProps]].\r\n * Ambient light applies equally to all surfaces in the scene.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface AmbientLightProps {\r\n /** The color of the light. Black is treated as a special case, indicating that the surface's own diffuse color should be used. */\r\n color?: RgbColorProps;\r\n /** The intensity of the light. Default: 0.2. */\r\n intensity?: number;\r\n}\r\n\r\n/** Describes the ambient light associated with a [[LightSettings]].\r\n * @see [[AmbientLightProps]]\r\n * @public\r\n */\r\nexport class AmbientLight {\r\n public readonly color: RgbColor;\r\n public readonly intensity: number;\r\n\r\n public constructor(json?: AmbientLightProps) {\r\n json = json || {};\r\n this.intensity = extractIntensity(json.intensity, 0.2);\r\n this.color = json.color ? RgbColor.fromJSON(json.color) : new RgbColor(0, 0, 0);\r\n }\r\n\r\n public toJSON(): AmbientLightProps | undefined {\r\n const color = this.color.r !== 0 || this.color.g !== 0 || this.color.b !== 0 ? this.color.toJSON() : undefined;\r\n const intensity = 0.2 !== this.intensity ? this.intensity : undefined;\r\n if (undefined === color && undefined === intensity)\r\n return undefined;\r\n\r\n const json: AmbientLightProps = {};\r\n if (color)\r\n json.color = color;\r\n\r\n if (undefined !== intensity)\r\n json.intensity = intensity;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of this light, identical except for any properties explicitly specified by `changed`. */\r\n public clone(changed?: AmbientLightProps): AmbientLight {\r\n if (!changed)\r\n return this;\r\n\r\n const props = this.toJSON() ?? {};\r\n if (undefined !== changed.intensity)\r\n props.intensity = changed.intensity;\r\n\r\n if (undefined !== changed.color)\r\n props.color = changed.color;\r\n\r\n return new AmbientLight(props);\r\n }\r\n\r\n public equals(rhs: AmbientLight): boolean {\r\n return this.intensity === rhs.intensity && this.color.equals(rhs.color);\r\n }\r\n}\r\n\r\n/** Wire format for a pair of hemisphere lights associated with a [[LightSettingsProps]].\r\n * Hemisphere lights are oriented in opposite directions along the world Z axis. Each has its own color; they share one intensity.\r\n * They are often used to simulate outdoor reflection of light from the ground and sky, so the colors often match the ground and sky colors\r\n * of the [[SkyBox]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface HemisphereLightsProps {\r\n /** The color of the downward-facing light. Default: (143, 205, 255). */\r\n upperColor?: RgbColorProps;\r\n /** The color of the upward-facing light. Default: (120, 143, 125). */\r\n lowerColor?: RgbColorProps;\r\n /** Intensity of the lights. Default: 0. */\r\n intensity?: number;\r\n}\r\n\r\nconst defaultUpperHemisphereColor = new RgbColor(143, 205, 255);\r\nconst defaultLowerHemisphereColor = new RgbColor(120, 143, 125);\r\n\r\n/** Describes a pair of hemisphere lights associated with a [[LightSettings]].\r\n * @see [[HemisphereLightsProps]]\r\n * @public\r\n */\r\nexport class HemisphereLights {\r\n public readonly upperColor: RgbColor;\r\n public readonly lowerColor: RgbColor;\r\n public readonly intensity: number;\r\n\r\n public constructor(json?: HemisphereLightsProps) {\r\n json = json || {};\r\n this.intensity = extractIntensity(json.intensity, 0);\r\n this.upperColor = json.upperColor ? RgbColor.fromJSON(json.upperColor) : defaultUpperHemisphereColor;\r\n this.lowerColor = json.lowerColor ? RgbColor.fromJSON(json.lowerColor) : defaultLowerHemisphereColor;\r\n }\r\n\r\n public toJSON(): HemisphereLightsProps | undefined {\r\n const upperColor = this.upperColor.equals(defaultUpperHemisphereColor) ? undefined : this.upperColor.toJSON();\r\n const lowerColor = this.lowerColor.equals(defaultLowerHemisphereColor) ? undefined : this.lowerColor.toJSON();\r\n const intensity = 0 === this.intensity ? undefined : this.intensity;\r\n\r\n if (undefined === upperColor && undefined === lowerColor && undefined === intensity)\r\n return undefined;\r\n\r\n const json: HemisphereLightsProps = {};\r\n if (upperColor)\r\n json.upperColor = upperColor;\r\n\r\n if (lowerColor)\r\n json.lowerColor = lowerColor;\r\n\r\n if (undefined !== intensity)\r\n json.intensity = intensity;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of these lights, identical except for any properties explicitly specified by `changed`. */\r\n public clone(changed?: HemisphereLightsProps): HemisphereLights {\r\n if (!changed)\r\n return this;\r\n\r\n const props = this.toJSON() || {};\r\n if (undefined !== changed.upperColor)\r\n props.upperColor = changed.upperColor;\r\n\r\n if (undefined !== changed.lowerColor)\r\n props.lowerColor = changed.lowerColor;\r\n\r\n if (undefined !== changed.intensity)\r\n props.intensity = changed.intensity;\r\n\r\n return new HemisphereLights(props);\r\n }\r\n\r\n public equals(rhs: HemisphereLights): boolean {\r\n return this.intensity === rhs.intensity && this.upperColor.equals(rhs.upperColor) && this.lowerColor.equals(rhs.lowerColor);\r\n }\r\n}\r\n\r\n/** JSON representation of a [[FresnelSettings]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface FresnelSettingsProps {\r\n /** @see [[FresnelSettings.intensity]].\r\n * Default value: 0\r\n */\r\n intensity?: number;\r\n\r\n /** @see [[FresnelSettings.invert]].\r\n * Default value: false\r\n */\r\n invert?: boolean;\r\n}\r\n\r\nfunction clampIntensity(intensity = 0): number {\r\n return Math.max(intensity, 0);\r\n}\r\n\r\n/** As part of a [[LightSettings]], describes how to apply a Fresnel effect to the contents of the view.\r\n * The \"Fresnel effect\" is based on the observation that the reflectivity of a surface varies based on the angle between the surface and\r\n * the viewer's line of sight. For example, a flat surface will appear more reflective when viewed at a glancing angle than it will when\r\n * viewed from above; and a sphere will appear more reflective around its edges than at its center.\r\n *\r\n * This principle can be used to improve photorealism, but the implementation provided here is intended to produce non-realistic but\r\n * aesthetically-pleasing results.\r\n * @see [[LightSettings.fresnel]].\r\n * @public\r\n */\r\nexport class FresnelSettings {\r\n /** The strength of the effect in terms of how much brighter the surface becomes. The intensity at a given point on the surface is determined by\r\n * the angle between the viewer's line of sight and the vector from the viewer to that point. Maximum intensity is produced when those vectors are\r\n * perpendicular, and zero intensity is produced when those vectors are parallel (unless [[invert]] is `true`).\r\n *\r\n * A value of zero turns off the effect. Values less than zero are clamped to zero. Typical values range between 0 and 1.\r\n */\r\n public readonly intensity: number;\r\n /** If true, inverts the effect's [[intensity]] such that maximum intensity is produced when the viewer's line of sight is parallel to the vector between\r\n * the viewer and the point on the surface, and zero intensity is produced when the viewer's line of sight is perpendicular to that vector.\r\n */\r\n public readonly invert: boolean;\r\n\r\n private constructor(intensity: number, invert: boolean) {\r\n assert(intensity >= 0);\r\n this.intensity = intensity;\r\n this.invert = invert;\r\n }\r\n\r\n private static readonly _defaults = new FresnelSettings(0, false);\r\n\r\n /** Create from JSON representation, using default values for any unspecified or `undefined` properties. */\r\n public static fromJSON(props?: FresnelSettingsProps): FresnelSettings {\r\n const intensity = clampIntensity(JsonUtils.asDouble(props?.intensity));\r\n const invert = JsonUtils.asBool(props?.invert);\r\n if (0 === intensity && !invert)\r\n return this._defaults;\r\n\r\n return new this(intensity, invert);\r\n }\r\n\r\n /** Create a new FresnelSettings.\r\n * @note Intensity values less than zero will be set to zero.\r\n */\r\n public static create(intensity = 0, invert = false): FresnelSettings {\r\n return this.fromJSON({ intensity, invert });\r\n }\r\n\r\n /** Convert to JSON representation.\r\n * @note If all settings match the default values, `undefined` will be returned.\r\n */\r\n public toJSON(): FresnelSettingsProps | undefined {\r\n if (0 === this.intensity && !this.invert)\r\n return undefined;\r\n\r\n const props: FresnelSettingsProps = {};\r\n if (0 !== this.intensity)\r\n props.intensity = this.intensity;\r\n\r\n if (this.invert)\r\n props.invert = true;\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of these settings, modified to match any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps?: FresnelSettingsProps): FresnelSettings {\r\n if ((undefined === changedProps?.intensity || changedProps.intensity === this.intensity)\r\n && (undefined === changedProps?.invert || changedProps.invert === this.invert))\r\n return this;\r\n\r\n const intensity = changedProps?.intensity ?? this.intensity;\r\n const invert = changedProps?.invert ?? this.invert;\r\n return FresnelSettings.fromJSON({ intensity, invert });\r\n }\r\n\r\n /** Return true if these settings are equivalent to `rhs`. */\r\n public equals(rhs: FresnelSettings): boolean {\r\n return this === rhs || (this.intensity === rhs.intensity && this.invert === rhs.invert);\r\n }\r\n}\r\n\r\n/** Wire format for a [[LightSettings]] describing lighting for a 3d scene.\r\n * 3d lighting provides the following lights, all of which are optional:\r\n * - A \"portrait\" light affixed to the camera and pointing directly forward into the scene. Color: white.\r\n * - A second directional light. Color: white.\r\n * - This can be a solar shadow-casting light, or (when shadows are disabled) a roughly overhead light oriented in view space.\r\n * - A pair of hemisphere lights pointing in opposite directions along the world Z axis. Each has its own customizable color.\r\n * - An ambient light of any color applied equally to all surfaces.\r\n * Specular intensity of all lights is controlled separately.\r\n * Light intensities are typically expressed in [0..1] but can be as large as 5.\r\n * @see [[DisplayStyle3dSettingsProps]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface LightSettingsProps {\r\n /** A white portrait light affixed to the camera and pointing directly forward into the scene. */\r\n portrait?: {\r\n /** Intensity, typically in [0..1], maximum 5. Default: 0.3. */\r\n intensity?: number;\r\n };\r\n /** Solar light settings. */\r\n solar?: SolarLightProps;\r\n /** Hemisphere light settings. */\r\n hemisphere?: HemisphereLightsProps;\r\n /** Ambient light settings. */\r\n ambient?: AmbientLightProps;\r\n /** Specular intensity applied to all lights. */\r\n specularIntensity?: number;\r\n /** Applies a [cel-shaded](https://en.wikipedia.org/wiki/Cel_shading) effect. If greater than zero, specifies the number of cels. Continuous lighting intensities\r\n * are computed, then quantized to the specified number of cels. Values greater than 254 have no visible effect.\r\n * Typically a value of 2 is appropriate if specular intensity is close to zero; 3 if specular intensity is larger.\r\n * Cel-shading is often combined with thick, dark visible edges for a cartoon or comic book effect.\r\n * Default: 0\r\n */\r\n numCels?: number;\r\n\r\n /** Fresnel settings.\r\n * @see [[FresnelSettings]].\r\n */\r\n fresnel?: FresnelSettingsProps;\r\n}\r\n\r\n/** Describes the lighting for a 3d scene, associated with a [[DisplayStyle3dSettings]] in turn associated with a [DisplayStyle3d]($backend) or [DisplayStyle3dState]($frontend).\r\n * @see [[LightSettingsProps]]\r\n * @public\r\n */\r\nexport class LightSettings {\r\n public readonly solar: SolarLight;\r\n public readonly ambient: AmbientLight;\r\n public readonly hemisphere: HemisphereLights;\r\n /** @see [[LightSettingsProps.portrait]]. */\r\n public readonly portraitIntensity: number;\r\n public readonly specularIntensity: number;\r\n /** @see [[LightSettingsProps.numCels]]. */\r\n public readonly numCels: number;\r\n public readonly fresnel: FresnelSettings;\r\n\r\n private constructor(solar: SolarLight, ambient: AmbientLight, hemisphere: HemisphereLights, portraitIntensity: number, specularIntensity: number, numCels: number,\r\n fresnel: FresnelSettings) {\r\n this.solar = solar;\r\n this.ambient = ambient;\r\n this.hemisphere = hemisphere;\r\n this.portraitIntensity = portraitIntensity;\r\n this.specularIntensity = specularIntensity;\r\n this.numCels = numCels;\r\n this.fresnel = fresnel;\r\n }\r\n\r\n public static fromJSON(props?: LightSettingsProps): LightSettings {\r\n const solar = new SolarLight(props?.solar);\r\n const ambient = new AmbientLight(props?.ambient);\r\n const hemisphere = new HemisphereLights(props?.hemisphere);\r\n const portraitIntensity = extractIntensity(props?.portrait?.intensity, 0.3);\r\n const specularIntensity = extractIntensity(props?.specularIntensity, 1.0);\r\n const numCels = JsonUtils.asInt(props?.numCels, 0);\r\n const fresnel = FresnelSettings.fromJSON(props?.fresnel);\r\n\r\n return new LightSettings(solar, ambient, hemisphere, portraitIntensity, specularIntensity, numCels, fresnel);\r\n }\r\n\r\n public toJSON(): LightSettingsProps | undefined {\r\n const solar = this.solar.toJSON();\r\n const ambient = this.ambient.toJSON();\r\n const hemisphere = this.hemisphere.toJSON();\r\n const portrait = 0.3 !== this.portraitIntensity ? { intensity: this.portraitIntensity } : undefined;\r\n const specularIntensity = 1 !== this.specularIntensity ? this.specularIntensity : undefined;\r\n const numCels = 0 !== this.numCels ? this.numCels : undefined;\r\n const fresnel = this.fresnel.toJSON();\r\n\r\n if (!solar && !ambient && !hemisphere && !portrait && undefined === specularIntensity && undefined === numCels && undefined === fresnel)\r\n return undefined;\r\n\r\n const json: LightSettingsProps = {};\r\n if (solar)\r\n json.solar = solar;\r\n\r\n if (ambient)\r\n json.ambient = ambient;\r\n\r\n if (hemisphere)\r\n json.hemisphere = hemisphere;\r\n\r\n if (portrait)\r\n json.portrait = portrait;\r\n\r\n if (undefined !== specularIntensity)\r\n json.specularIntensity = specularIntensity;\r\n\r\n if (undefined !== numCels)\r\n json.numCels = numCels;\r\n\r\n if (fresnel)\r\n json.fresnel = fresnel;\r\n\r\n return json;\r\n }\r\n\r\n /** Create a copy of these light settings, identical except for any properties explicitly specified by `changed`.\r\n * Note that the solar, ambient, and hemisphere lights will also be cloned using their own `clone` methods - so for example, the following:\r\n * ` clone({ ambient: { intensity: 0.5 } })`\r\n * will overwrite the ambient light's intensity but preserve its current color, rather than replacing the color with the default color.\r\n */\r\n public clone(changed?: LightSettingsProps): LightSettings {\r\n if (!changed)\r\n return this;\r\n\r\n const solar = this.solar.clone(changed.solar);\r\n const ambient = this.ambient.clone(changed.ambient);\r\n const hemisphere = this.hemisphere.clone(changed.hemisphere);\r\n const portrait = changed.portrait?.intensity ?? this.portraitIntensity;\r\n const specular = changed.specularIntensity ?? this.specularIntensity;\r\n const numCels = changed.numCels ?? this.numCels;\r\n const fresnel = this.fresnel.clone(changed.fresnel);\r\n\r\n return new LightSettings(solar, ambient, hemisphere, portrait, specular, numCels, fresnel);\r\n }\r\n\r\n public equals(rhs: LightSettings): boolean {\r\n if (this === rhs)\r\n return true;\r\n\r\n return this.portraitIntensity === rhs.portraitIntensity && this.specularIntensity === rhs.specularIntensity && this.numCels === rhs.numCels\r\n && this.ambient.equals(rhs.ambient) && this.solar.equals(rhs.solar) && this.hemisphere.equals(rhs.hemisphere) && this.fresnel.equals(rhs.fresnel);\r\n }\r\n}\r\n"]}
@@ -4,6 +4,7 @@
4
4
  /** Enumerates the available patterns for drawing patterned lines.
5
5
  * Each is a 32-bit pattern in which each bit specifies the on- or off-state of a pixel along the line. The pattern repeats along the length of the entire line.
6
6
  * @public
7
+ * @extensions
7
8
  */
8
9
  export declare enum LinePixels {
9
10
  /** A solid line. */
@@ -1 +1 @@
1
- {"version":3,"file":"LinePixels.d.ts","sourceRoot":"","sources":["../../src/LinePixels.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,oBAAY,UAAU;IACpB,oBAAoB;IACpB,KAAK,IAAI;IACT,oBAAoB;IACpB,KAAK,IAAQ;IACb,sIAAsI;IACtI,KAAK,aAAa;IAClB,mGAAmG;IACnG,KAAK,aAAa;IAClB,qGAAqG;IACrG,KAAK,aAAa;IAClB,wLAAwL;IACxL,KAAK,aAAa;IAClB,qHAAqH;IACrH,KAAK,aAAa;IAClB,uLAAuL;IACvL,KAAK,aAAa;IAClB,qIAAqI;IACrI,KAAK,aAAa;IAClB,qIAAqI;IACrI,UAAU,aAAa;IACvB,gEAAgE;IAChE,SAAS,IAAa;IACtB,6EAA6E;IAC7E,OAAO,KAAK;CACb"}
1
+ {"version":3,"file":"LinePixels.d.ts","sourceRoot":"","sources":["../../src/LinePixels.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,oBAAY,UAAU;IACpB,oBAAoB;IACpB,KAAK,IAAI;IACT,oBAAoB;IACpB,KAAK,IAAQ;IACb,sIAAsI;IACtI,KAAK,aAAa;IAClB,mGAAmG;IACnG,KAAK,aAAa;IAClB,qGAAqG;IACrG,KAAK,aAAa;IAClB,wLAAwL;IACxL,KAAK,aAAa;IAClB,qHAAqH;IACrH,KAAK,aAAa;IAClB,uLAAuL;IACvL,KAAK,aAAa;IAClB,qIAAqI;IACrI,KAAK,aAAa;IAClB,qIAAqI;IACrI,UAAU,aAAa;IACvB,gEAAgE;IAChE,SAAS,IAAa;IACtB,6EAA6E;IAC7E,OAAO,KAAK;CACb"}
@@ -8,6 +8,7 @@
8
8
  /** Enumerates the available patterns for drawing patterned lines.
9
9
  * Each is a 32-bit pattern in which each bit specifies the on- or off-state of a pixel along the line. The pattern repeats along the length of the entire line.
10
10
  * @public
11
+ * @extensions
11
12
  */
12
13
  export var LinePixels;
13
14
  (function (LinePixels) {
@@ -1 +1 @@
1
- {"version":3,"file":"LinePixels.js","sourceRoot":"","sources":["../../src/LinePixels.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;GAGG;AACH,MAAM,CAAN,IAAY,UAyBX;AAzBD,WAAY,UAAU;IACpB,oBAAoB;IACpB,6CAAS,CAAA;IACT,oBAAoB;IACpB,6CAAa,CAAA;IACb,sIAAsI;IACtI,sDAAkB,CAAA;IAClB,mGAAmG;IACnG,sDAAkB,CAAA;IAClB,qGAAqG;IACrG,sDAAkB,CAAA;IAClB,wLAAwL;IACxL,sDAAkB,CAAA;IAClB,qHAAqH;IACrH,sDAAkB,CAAA;IAClB,uLAAuL;IACvL,sDAAkB,CAAA;IAClB,qIAAqI;IACrI,sDAAkB,CAAA;IAClB,qIAAqI;IACrI,gEAAuB,CAAA;IACvB,gEAAgE;IAChE,qDAAsB,CAAA;IACtB,6EAA6E;IAC7E,kDAAY,CAAA;AACd,CAAC,EAzBW,UAAU,KAAV,UAAU,QAyBrB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Symbology\r\n */\r\n\r\n/** Enumerates the available patterns for drawing patterned lines.\r\n * Each is a 32-bit pattern in which each bit specifies the on- or off-state of a pixel along the line. The pattern repeats along the length of the entire line.\r\n * @public\r\n */\r\nexport enum LinePixels {\r\n /** A solid line. */\r\n Solid = 0,\r\n /** A solid line. */\r\n Code0 = Solid,\r\n /** 1 lit pixel followed by 7 unlit pixels: =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= */\r\n Code1 = 0x80808080,\r\n /** 5 lit pixels followed by 3 unlit pixels: =====&nbsp;&nbsp;&nbsp;=====&nbsp;&nbsp;&nbsp;===== */\r\n Code2 = 0xf8f8f8f8,\r\n /** 11 lit pixels followed by 5 unlit pixels: ===========&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=========== */\r\n Code3 = 0xffe0ffe0,\r\n /** 7 lit pixels followed by 4 unlit pixels followed by 1 lit pixel followed by 1 lit pixel: =======&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;=======&nbsp;&nbsp;&nbsp;&nbsp;= */\r\n Code4 = 0xfe10fe10,\r\n /** 3 lit pixels followed by 5 unlit pixels: ===&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;===&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=== */\r\n Code5 = 0xe0e0e0e0,\r\n /** 5 lit pixels followed by 3 unlit followed by 1 lit followed by 3 unlit followed by 1 lit followed by 3 unlit: =====&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;===== */\r\n Code6 = 0xf888f888,\r\n /** 8 lit pixels followed by 3 unlit followed by 2 lit followed by 3 unlit: ========&nbsp;&nbsp;&nbsp;==&nbsp;&nbsp;&nbsp;======== */\r\n Code7 = 0xff18ff18,\r\n /** 2 lit pixels followed by 2 unlit pixels - default style for drawing hidden edges: ==&nbsp;&nbsp;==&nbsp;&nbsp;==&nbsp;&nbsp;== */\r\n HiddenLine = 0xcccccccc,\r\n /** Barely visible - 1 lit pixel followed by 31 unlit pixels. */\r\n Invisible = 0x00000001,\r\n /** Indicates no valid line style or none specified, depending on context. */\r\n Invalid = -1,\r\n}\r\n"]}
1
+ {"version":3,"file":"LinePixels.js","sourceRoot":"","sources":["../../src/LinePixels.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAyBX;AAzBD,WAAY,UAAU;IACpB,oBAAoB;IACpB,6CAAS,CAAA;IACT,oBAAoB;IACpB,6CAAa,CAAA;IACb,sIAAsI;IACtI,sDAAkB,CAAA;IAClB,mGAAmG;IACnG,sDAAkB,CAAA;IAClB,qGAAqG;IACrG,sDAAkB,CAAA;IAClB,wLAAwL;IACxL,sDAAkB,CAAA;IAClB,qHAAqH;IACrH,sDAAkB,CAAA;IAClB,uLAAuL;IACvL,sDAAkB,CAAA;IAClB,qIAAqI;IACrI,sDAAkB,CAAA;IAClB,qIAAqI;IACrI,gEAAuB,CAAA;IACvB,gEAAgE;IAChE,qDAAsB,CAAA;IACtB,6EAA6E;IAC7E,kDAAY,CAAA;AACd,CAAC,EAzBW,UAAU,KAAV,UAAU,QAyBrB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Symbology\r\n */\r\n\r\n/** Enumerates the available patterns for drawing patterned lines.\r\n * Each is a 32-bit pattern in which each bit specifies the on- or off-state of a pixel along the line. The pattern repeats along the length of the entire line.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum LinePixels {\r\n /** A solid line. */\r\n Solid = 0,\r\n /** A solid line. */\r\n Code0 = Solid,\r\n /** 1 lit pixel followed by 7 unlit pixels: =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= */\r\n Code1 = 0x80808080,\r\n /** 5 lit pixels followed by 3 unlit pixels: =====&nbsp;&nbsp;&nbsp;=====&nbsp;&nbsp;&nbsp;===== */\r\n Code2 = 0xf8f8f8f8,\r\n /** 11 lit pixels followed by 5 unlit pixels: ===========&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=========== */\r\n Code3 = 0xffe0ffe0,\r\n /** 7 lit pixels followed by 4 unlit pixels followed by 1 lit pixel followed by 1 lit pixel: =======&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;=======&nbsp;&nbsp;&nbsp;&nbsp;= */\r\n Code4 = 0xfe10fe10,\r\n /** 3 lit pixels followed by 5 unlit pixels: ===&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;===&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=== */\r\n Code5 = 0xe0e0e0e0,\r\n /** 5 lit pixels followed by 3 unlit followed by 1 lit followed by 3 unlit followed by 1 lit followed by 3 unlit: =====&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;===== */\r\n Code6 = 0xf888f888,\r\n /** 8 lit pixels followed by 3 unlit followed by 2 lit followed by 3 unlit: ========&nbsp;&nbsp;&nbsp;==&nbsp;&nbsp;&nbsp;======== */\r\n Code7 = 0xff18ff18,\r\n /** 2 lit pixels followed by 2 unlit pixels - default style for drawing hidden edges: ==&nbsp;&nbsp;==&nbsp;&nbsp;==&nbsp;&nbsp;== */\r\n HiddenLine = 0xcccccccc,\r\n /** Barely visible - 1 lit pixel followed by 31 unlit pixels. */\r\n Invisible = 0x00000001,\r\n /** Indicates no valid line style or none specified, depending on context. */\r\n Invalid = -1,\r\n}\r\n"]}
@@ -30,6 +30,7 @@ interface LocalizationOptions {
30
30
  }
31
31
  /** The interface defining the localization requirements of [IModelApp]($frontend).
32
32
  * @public
33
+ * @extensions
33
34
  */
34
35
  export interface Localization {
35
36
  /** This method must be called and awaited before using an instance of Localization.
@@ -1 +1 @@
1
- {"version":3,"file":"Localization.d.ts","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;GAEG;AACH,UAAU,mBAAmB;IAC3B,+BAA+B;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAClF;;;;;OAKG;IACH,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAClH,wCAAwC;IACxC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACnG;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9C;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,gBAAgB;IAChB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,gBAAgB;IAChB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,2DAA2D;IAC3D,eAAe,IAAI,SAAS,MAAM,EAAE,CAAC;IACrC,qGAAqG;IACrG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IAClD,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IACnF,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IACpE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IACvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,mBAAmB,IAAI,IAAI;IAC3B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAChD,eAAe,IAAI,SAAS,MAAM,EAAE;IAC9B,cAAc;CAC5B"}
1
+ {"version":3,"file":"Localization.d.ts","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;GAEG;AACH,UAAU,mBAAmB;IAC3B,+BAA+B;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAClF;;;;;OAKG;IACH,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAClH,wCAAwC;IACxC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACnG;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9C;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,gBAAgB;IAChB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,gBAAgB;IAChB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,2DAA2D;IAC3D,eAAe,IAAI,SAAS,MAAM,EAAE,CAAC;IACrC,qGAAqG;IACrG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IAClD,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IACnF,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IACpE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IACvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,mBAAmB,IAAI,IAAI;IAC3B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAChD,eAAe,IAAI,SAAS,MAAM,EAAE;IAC9B,cAAc;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Localization.js","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAkGH;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACrB,KAAK,CAAC,UAAU,KAAoB,CAAC;IACrC,kBAAkB,CAAC,GAAsB,IAAY,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,+BAA+B,CAAC,UAAkB,EAAE,GAAsB,IAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5H,gBAAgB,CAAC,UAAkB,EAAE,GAAsB,IAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,gBAAgB,CAAC,WAAmB,IAAY,OAAO,WAAW,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,iBAAiB,KAAoB,CAAC;IAC5C,mBAAmB,KAAW,CAAC;IAC/B,mBAAmB,KAAgC,OAAO,SAAS,CAAC,CAAC,CAAC;IACtE,eAAe,KAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,cAAc,KAAK,CAAC;CAClC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Localization\r\n */\r\n\r\n/** Options for Localization\r\n * @public\r\n */\r\ninterface LocalizationOptions {\r\n /** for interpolation values */\r\n [key: string]: any;\r\n /**\r\n * defaultValue to return if a translation was not found\r\n */\r\n defaultValue?: any;\r\n /**\r\n * count value used for plurals\r\n */\r\n count?: number;\r\n /**\r\n * used for contexts (eg. male\\female)\r\n */\r\n context?: any;\r\n /**\r\n * override languages to use\r\n */\r\n lngs?: string[];\r\n /**\r\n * override language to lookup key if not found see fallbacks for details\r\n */\r\n fallbackLng?: string;\r\n}\r\n\r\n/** The interface defining the localization requirements of [IModelApp]($frontend).\r\n * @public\r\n */\r\nexport interface Localization {\r\n /** This method must be called and awaited before using an instance of Localization.\r\n * @param namespaces an array of namespaces to load. There must be at least one namespace, and it\r\n * becomes the default namespace.\r\n * @note IModelApp.startup calls this internally, so you should not call this method directly\r\n * except for Localization instances outside of IModelApp (e.g., for tests.)\r\n */\r\n initialize(namespaces: string[]): Promise<void>;\r\n\r\n /** Return the translated value of a key.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @note The key includes the namespace, which identifies the particular localization file that contains the property,\r\n * followed by a colon, followed by the property in the JSON file.\r\n * For example:\r\n * ``` ts\r\n * const dataString: string = IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.BingDataAttribution\");\r\n * ```\r\n * assigns to dataString the string with property BackgroundMap.BingDataAttribution from the iModelJs.json localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n */\r\n getLocalizedString(key: string | string[], options?: LocalizationOptions): string;\r\n /** Similar to `getLocalizedString` but the namespace is a separate param and the key does not include the namespace.\r\n * @param namespace - the namespace that identifies the particular localization file that contains the property.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n */\r\n getLocalizedStringWithNamespace(namespace: string, key: string | string[], options?: LocalizationOptions): string;\r\n /** get the English string for a key. */\r\n getEnglishString(namespace: string, key: string | string[], options?: LocalizationOptions): string;\r\n /** Replace all instances of `%{key}` within a string with the translations of those keys.\r\n * For example:\r\n * ``` ts\r\n * \"MyKeys\": {\r\n * \"Key1\": \"First value\",\r\n * \"Key2\": \"Second value\"\r\n * }\r\n * ```\r\n *\r\n * ``` ts\r\n * getLocalizedKeys(\"string with %{MyKeys.Key1} followed by %{MyKeys.Key2}!\"\") // returns \"string with First Value followed by Second Value!\"\r\n * ```\r\n */\r\n getLocalizedKeys(inputString: string): string;\r\n\r\n /** Register a new Namespace and return a Promise that is fulfilled when the content is loaded.\r\n * If the namespace is already registered, its Promise will be returned.\r\n * @param name - the name of the namespace.\r\n * @note - The registerNamespace method starts fetching the appropriate version of the JSON localization file from the server,\r\n * based on the current locale. To make sure that fetch is complete before performing translations from this namespace, await\r\n * fulfillment of returned Promise.\r\n * @see [Localization in iTwin.js]($docs/learning/frontend/Localization.md)\r\n */\r\n registerNamespace(namespace: string): Promise<void>;\r\n /** @internal */\r\n unregisterNamespace(namespace: string): void;\r\n /** @internal */\r\n getNamespacePromise(name: string): Promise<void> | undefined;\r\n /** Get the list of available languages for translations */\r\n getLanguageList(): readonly string[];\r\n /** Change the language for translations. This overrides the language from the browser, for tests. */\r\n changeLanguage(language: string): Promise<void>;\r\n}\r\n\r\n/** An empty [[Localization]] used if one is not provided to [IModelApp]($frontend). Does not perform localizations (merely returns the key.)\r\n * @public\r\n */\r\nexport class EmptyLocalization implements Localization {\r\n public async initialize(): Promise<void> { }\r\n public getLocalizedString(key: string | string[]): string { return typeof (key) == \"string\" ? key : key[0]; }\r\n public getLocalizedStringWithNamespace(_namespace: string, key: string | string[]): string { return this.getLocalizedString(key); }\r\n public getEnglishString(_namespace: string, key: string | string[]): string { return this.getLocalizedString(key); }\r\n public getLocalizedKeys(inputString: string): string { return inputString; }\r\n public async registerNamespace(): Promise<void> { }\r\n public unregisterNamespace(): void { }\r\n public getNamespacePromise(): Promise<void> | undefined { return undefined; }\r\n public getLanguageList(): readonly string[] { return []; }\r\n public async changeLanguage() { }\r\n}\r\n"]}
1
+ {"version":3,"file":"Localization.js","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAmGH;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACrB,KAAK,CAAC,UAAU,KAAoB,CAAC;IACrC,kBAAkB,CAAC,GAAsB,IAAY,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,+BAA+B,CAAC,UAAkB,EAAE,GAAsB,IAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5H,gBAAgB,CAAC,UAAkB,EAAE,GAAsB,IAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,gBAAgB,CAAC,WAAmB,IAAY,OAAO,WAAW,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,iBAAiB,KAAoB,CAAC;IAC5C,mBAAmB,KAAW,CAAC;IAC/B,mBAAmB,KAAgC,OAAO,SAAS,CAAC,CAAC,CAAC;IACtE,eAAe,KAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,cAAc,KAAK,CAAC;CAClC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Localization\r\n */\r\n\r\n/** Options for Localization\r\n * @public\r\n */\r\ninterface LocalizationOptions {\r\n /** for interpolation values */\r\n [key: string]: any;\r\n /**\r\n * defaultValue to return if a translation was not found\r\n */\r\n defaultValue?: any;\r\n /**\r\n * count value used for plurals\r\n */\r\n count?: number;\r\n /**\r\n * used for contexts (eg. male\\female)\r\n */\r\n context?: any;\r\n /**\r\n * override languages to use\r\n */\r\n lngs?: string[];\r\n /**\r\n * override language to lookup key if not found see fallbacks for details\r\n */\r\n fallbackLng?: string;\r\n}\r\n\r\n/** The interface defining the localization requirements of [IModelApp]($frontend).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface Localization {\r\n /** This method must be called and awaited before using an instance of Localization.\r\n * @param namespaces an array of namespaces to load. There must be at least one namespace, and it\r\n * becomes the default namespace.\r\n * @note IModelApp.startup calls this internally, so you should not call this method directly\r\n * except for Localization instances outside of IModelApp (e.g., for tests.)\r\n */\r\n initialize(namespaces: string[]): Promise<void>;\r\n\r\n /** Return the translated value of a key.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @note The key includes the namespace, which identifies the particular localization file that contains the property,\r\n * followed by a colon, followed by the property in the JSON file.\r\n * For example:\r\n * ``` ts\r\n * const dataString: string = IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.BingDataAttribution\");\r\n * ```\r\n * assigns to dataString the string with property BackgroundMap.BingDataAttribution from the iModelJs.json localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n */\r\n getLocalizedString(key: string | string[], options?: LocalizationOptions): string;\r\n /** Similar to `getLocalizedString` but the namespace is a separate param and the key does not include the namespace.\r\n * @param namespace - the namespace that identifies the particular localization file that contains the property.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n */\r\n getLocalizedStringWithNamespace(namespace: string, key: string | string[], options?: LocalizationOptions): string;\r\n /** get the English string for a key. */\r\n getEnglishString(namespace: string, key: string | string[], options?: LocalizationOptions): string;\r\n /** Replace all instances of `%{key}` within a string with the translations of those keys.\r\n * For example:\r\n * ``` ts\r\n * \"MyKeys\": {\r\n * \"Key1\": \"First value\",\r\n * \"Key2\": \"Second value\"\r\n * }\r\n * ```\r\n *\r\n * ``` ts\r\n * getLocalizedKeys(\"string with %{MyKeys.Key1} followed by %{MyKeys.Key2}!\"\") // returns \"string with First Value followed by Second Value!\"\r\n * ```\r\n */\r\n getLocalizedKeys(inputString: string): string;\r\n\r\n /** Register a new Namespace and return a Promise that is fulfilled when the content is loaded.\r\n * If the namespace is already registered, its Promise will be returned.\r\n * @param name - the name of the namespace.\r\n * @note - The registerNamespace method starts fetching the appropriate version of the JSON localization file from the server,\r\n * based on the current locale. To make sure that fetch is complete before performing translations from this namespace, await\r\n * fulfillment of returned Promise.\r\n * @see [Localization in iTwin.js]($docs/learning/frontend/Localization.md)\r\n */\r\n registerNamespace(namespace: string): Promise<void>;\r\n /** @internal */\r\n unregisterNamespace(namespace: string): void;\r\n /** @internal */\r\n getNamespacePromise(name: string): Promise<void> | undefined;\r\n /** Get the list of available languages for translations */\r\n getLanguageList(): readonly string[];\r\n /** Change the language for translations. This overrides the language from the browser, for tests. */\r\n changeLanguage(language: string): Promise<void>;\r\n}\r\n\r\n/** An empty [[Localization]] used if one is not provided to [IModelApp]($frontend). Does not perform localizations (merely returns the key.)\r\n * @public\r\n */\r\nexport class EmptyLocalization implements Localization {\r\n public async initialize(): Promise<void> { }\r\n public getLocalizedString(key: string | string[]): string { return typeof (key) == \"string\" ? key : key[0]; }\r\n public getLocalizedStringWithNamespace(_namespace: string, key: string | string[]): string { return this.getLocalizedString(key); }\r\n public getEnglishString(_namespace: string, key: string | string[]): string { return this.getLocalizedString(key); }\r\n public getLocalizedKeys(inputString: string): string { return inputString; }\r\n public async registerNamespace(): Promise<void> { }\r\n public unregisterNamespace(): void { }\r\n public getNamespacePromise(): Promise<void> | undefined { return undefined; }\r\n public getLanguageList(): readonly string[] { return []; }\r\n public async changeLanguage() { }\r\n}\r\n"]}
@@ -1,10 +1,11 @@
1
1
  /** @packageDocumentation
2
2
  * @module Geometry
3
3
  */
4
- import { BentleyStatus, Id64Array } from "@itwin/core-bentley";
4
+ import { BentleyStatus, CompressedId64Set, Id64Array, Id64String } from "@itwin/core-bentley";
5
5
  import { XYZProps } from "@itwin/core-geometry";
6
6
  /** Specify whether to accumulate volumes, areas, or lengths for the supplied elements.
7
7
  * @public
8
+ * @extensions
8
9
  */
9
10
  export declare enum MassPropertiesOperation {
10
11
  /** Return lengths for open paths and planar regions. */
@@ -16,24 +17,49 @@ export declare enum MassPropertiesOperation {
16
17
  }
17
18
  /** Information required to request mass properties for elements from the front end to the back end.
18
19
  * @public
20
+ * @extensions
19
21
  */
20
22
  export interface MassPropertiesRequestProps {
21
23
  operation: MassPropertiesOperation;
22
24
  candidates?: Id64Array;
23
25
  }
26
+ /** Information required to request mass properties for each element separately from the front end to the back end.
27
+ * @public
28
+ */
29
+ export interface MassPropertiesPerCandidateRequestProps {
30
+ operations: MassPropertiesOperation[];
31
+ candidates: CompressedId64Set;
32
+ }
24
33
  /** Information returned from the back end to the front end holding the result of the mass properties calculation.
25
34
  * @public
35
+ * @extensions
26
36
  */
27
37
  export interface MassPropertiesResponseProps {
38
+ /** Success if requested [[MassPropertiesOperation]] could be evaluated for the specified elements */
28
39
  status: BentleyStatus;
40
+ /** Volume of solids when [[MassPropertiesOperation.AccumulateVolumes]] requested */
29
41
  volume?: number;
42
+ /** Surface area of solids and surfaces when [[MassPropertiesOperation.AccumulateVolumes]] or [[MassPropertiesOperation.AccumulateAreas]] requested */
30
43
  area?: number;
44
+ /** Perimeter of surfaces and planar regions when [[MassPropertiesOperation.AccumulateAreas]] requested */
31
45
  perimeter?: number;
46
+ /** Length of curves or perimeter of planar regions when [[MassPropertiesOperation.AccumulateAreas]] or [[MassPropertiesOperation.AccumulateLength]] requested */
32
47
  length?: number;
48
+ /** Centroid of geometry */
33
49
  centroid?: XYZProps;
50
+ /** Product of inertia with respect to xy plane */
34
51
  ixy?: number;
52
+ /** Product of inertia with respect to xz plane */
35
53
  ixz?: number;
54
+ /** Product of inertia with respect to yz plane */
36
55
  iyz?: number;
56
+ /** Moments of inertia */
37
57
  moments?: XYZProps;
38
58
  }
59
+ /** Information returned from the back end to the front end holding the result of the mass properties calculation for a single candidate.
60
+ * @public
61
+ */
62
+ export interface MassPropertiesPerCandidateResponseProps extends MassPropertiesResponseProps {
63
+ candidate: Id64String;
64
+ }
39
65
  //# sourceMappingURL=MassProperties.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassProperties.d.ts","sourceRoot":"","sources":["../../src/MassProperties.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;GAEG;AACH,oBAAY,uBAAuB;IACjC,wDAAwD;IACxD,iBAAiB,IAAI;IACrB,kEAAkE;IAClE,eAAe,IAAI;IACnB,mDAAmD;IACnD,iBAAiB,IAAI;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,uBAAuB,CAAC;IACnC,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB"}
1
+ {"version":3,"file":"MassProperties.d.ts","sourceRoot":"","sources":["../../src/MassProperties.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,wDAAwD;IACxD,iBAAiB,IAAI;IACrB,kEAAkE;IAClE,eAAe,IAAI;IACnB,mDAAmD;IACnD,iBAAiB,IAAI;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,uBAAuB,CAAC;IACnC,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qGAAqG;IACrG,MAAM,EAAE,aAAa,CAAC;IACtB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sJAAsJ;IACtJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iKAAiK;IACjK,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uCAAwC,SAAQ,2BAA2B;IAC1F,SAAS,EAAE,UAAU,CAAC;CACvB"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  /** Specify whether to accumulate volumes, areas, or lengths for the supplied elements.
9
9
  * @public
10
+ * @extensions
10
11
  */
11
12
  export var MassPropertiesOperation;
12
13
  (function (MassPropertiesOperation) {
@@ -1 +1 @@
1
- {"version":3,"file":"MassProperties.js","sourceRoot":"","sources":["../../src/MassProperties.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IACjC,wDAAwD;IACxD,+FAAqB,CAAA;IACrB,kEAAkE;IAClE,2FAAmB,CAAA;IACnB,mDAAmD;IACnD,+FAAqB,CAAA;AACvB,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Geometry\r\n */\r\n\r\nimport { BentleyStatus, Id64Array } from \"@itwin/core-bentley\";\r\nimport { XYZProps } from \"@itwin/core-geometry\";\r\n\r\n/** Specify whether to accumulate volumes, areas, or lengths for the supplied elements.\r\n * @public\r\n */\r\nexport enum MassPropertiesOperation {\r\n /** Return lengths for open paths and planar regions. */\r\n AccumulateLengths = 0,\r\n /** Return areas and perimeters for solid and surface geometry. */\r\n AccumulateAreas = 1,\r\n /** Return volumes and areas for solid geometry. */\r\n AccumulateVolumes = 2,\r\n}\r\n\r\n/** Information required to request mass properties for elements from the front end to the back end.\r\n * @public\r\n */\r\nexport interface MassPropertiesRequestProps {\r\n operation: MassPropertiesOperation;\r\n candidates?: Id64Array;\r\n}\r\n\r\n/** Information returned from the back end to the front end holding the result of the mass properties calculation.\r\n * @public\r\n */\r\nexport interface MassPropertiesResponseProps {\r\n status: BentleyStatus;\r\n volume?: number;\r\n area?: number;\r\n perimeter?: number;\r\n length?: number;\r\n centroid?: XYZProps;\r\n ixy?: number;\r\n ixz?: number;\r\n iyz?: number;\r\n moments?: XYZProps;\r\n}\r\n"]}
1
+ {"version":3,"file":"MassProperties.js","sourceRoot":"","sources":["../../src/MassProperties.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH;;;GAGG;AACH,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IACjC,wDAAwD;IACxD,+FAAqB,CAAA;IACrB,kEAAkE;IAClE,2FAAmB,CAAA;IACnB,mDAAmD;IACnD,+FAAqB,CAAA;AACvB,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Geometry\r\n */\r\n\r\nimport { BentleyStatus, CompressedId64Set, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { XYZProps } from \"@itwin/core-geometry\";\r\n\r\n/** Specify whether to accumulate volumes, areas, or lengths for the supplied elements.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum MassPropertiesOperation {\r\n /** Return lengths for open paths and planar regions. */\r\n AccumulateLengths = 0,\r\n /** Return areas and perimeters for solid and surface geometry. */\r\n AccumulateAreas = 1,\r\n /** Return volumes and areas for solid geometry. */\r\n AccumulateVolumes = 2,\r\n}\r\n\r\n/** Information required to request mass properties for elements from the front end to the back end.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface MassPropertiesRequestProps {\r\n operation: MassPropertiesOperation;\r\n candidates?: Id64Array;\r\n}\r\n\r\n/** Information required to request mass properties for each element separately from the front end to the back end.\r\n * @public\r\n */\r\nexport interface MassPropertiesPerCandidateRequestProps {\r\n operations: MassPropertiesOperation[];\r\n candidates: CompressedId64Set;\r\n}\r\n\r\n/** Information returned from the back end to the front end holding the result of the mass properties calculation.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface MassPropertiesResponseProps {\r\n /** Success if requested [[MassPropertiesOperation]] could be evaluated for the specified elements */\r\n status: BentleyStatus;\r\n /** Volume of solids when [[MassPropertiesOperation.AccumulateVolumes]] requested */\r\n volume?: number;\r\n /** Surface area of solids and surfaces when [[MassPropertiesOperation.AccumulateVolumes]] or [[MassPropertiesOperation.AccumulateAreas]] requested */\r\n area?: number;\r\n /** Perimeter of surfaces and planar regions when [[MassPropertiesOperation.AccumulateAreas]] requested */\r\n perimeter?: number;\r\n /** Length of curves or perimeter of planar regions when [[MassPropertiesOperation.AccumulateAreas]] or [[MassPropertiesOperation.AccumulateLength]] requested */\r\n length?: number;\r\n /** Centroid of geometry */\r\n centroid?: XYZProps;\r\n /** Product of inertia with respect to xy plane */\r\n ixy?: number;\r\n /** Product of inertia with respect to xz plane */\r\n ixz?: number;\r\n /** Product of inertia with respect to yz plane */\r\n iyz?: number;\r\n /** Moments of inertia */\r\n moments?: XYZProps;\r\n}\r\n\r\n/** Information returned from the back end to the front end holding the result of the mass properties calculation for a single candidate.\r\n * @public\r\n */\r\nexport interface MassPropertiesPerCandidateResponseProps extends MassPropertiesResponseProps {\r\n candidate: Id64String;\r\n}\r\n"]}
@@ -8,15 +8,18 @@ import { TextureMapping } from "./TextureMapping";
8
8
  * the second to green, and the third to blue.
9
9
  * @see usage in [[RenderMaterialAssetProps]].
10
10
  * @public
11
+ * @extensions
11
12
  */
12
13
  export declare type RgbFactorProps = number[];
13
14
  /** A 2d point specified as an array of 2 numbers [x, y].
14
15
  * @see usage in [[TextureMapProps]].
15
16
  * @public
17
+ * @extensions
16
18
  */
17
19
  export declare type Point2dProps = number[];
18
20
  /** Describes the units in which a [[TextureMapProps]]' scale is expressed.
19
21
  * @public
22
+ * @extensions
20
23
  */
21
24
  export declare enum TextureMapUnits {
22
25
  /** Indicates the scale has no units. */
@@ -28,6 +31,7 @@ export declare enum TextureMapUnits {
28
31
  }
29
32
  /** As part of a [[RenderMaterialAssetProps]], describes how to map a [[RenderTexture]]'s image to the triangles of a mesh to which the material is applied.
30
33
  * @public
34
+ * @extensions
31
35
  */
32
36
  export interface TextureMapProps {
33
37
  /** Angle in degrees to rotate texture when applying; defaults to 0.0 if undefined */
@@ -51,6 +55,7 @@ export interface TextureMapProps {
51
55
  }
52
56
  /** Describes the graphical properties of a [RenderMaterialElement]($backend) as part of a [[RenderMaterialProps]].
53
57
  * @public
58
+ * @extensions
54
59
  */
55
60
  export interface RenderMaterialAssetProps {
56
61
  /** If true, this material has a fill/diffuse color; if undefined, defaults to false */
@@ -96,6 +101,7 @@ export interface RenderMaterialAssetProps {
96
101
  /** Properties that define a [RenderMaterialElement]($backend).
97
102
  * @see [[RenderMaterial]] for the representation used by the display system.
98
103
  * @public
104
+ * @extensions
99
105
  */
100
106
  export interface RenderMaterialProps extends DefinitionElementProps {
101
107
  /** The name of a palette that can be used to categorize multiple materials. */
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialProps.d.ts","sourceRoot":"","sources":["../../src/MaterialProps.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;GAIG;AACH,oBAAY,cAAc,GAAG,MAAM,EAAE,CAAC;AAEtC;;;GAGG;AACH,oBAAY,YAAY,GAAG,MAAM,EAAE,CAAC;AAEpC;;GAEG;AACH,oBAAY,eAAe;IACzB,wCAAwC;IACxC,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,WAAW,IAAI;IACf,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,oHAAoH;IACpH,eAAe,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC;IACtC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qGAAqG;IACrG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sJAAsJ;IACtJ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+HAA+H;IAC/H,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8JAA8J;IAC9J,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;OAEG;IACH,GAAG,CAAC,EAAE;QACJ,4BAA4B;QAC5B,OAAO,CAAC,EAAE,eAAe,CAAC;KAC3B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE;QACf,2EAA2E;QAC3E,cAAc,CAAC,EAAE;YACf,iEAAiE;YACjE,cAAc,CAAC,EAAE,wBAAwB,CAAC;SAC3C,CAAC;KACH,CAAC;CACH"}
1
+ {"version":3,"file":"MaterialProps.d.ts","sourceRoot":"","sources":["../../src/MaterialProps.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,oBAAY,cAAc,GAAG,MAAM,EAAE,CAAC;AAEtC;;;;GAIG;AACH,oBAAY,YAAY,GAAG,MAAM,EAAE,CAAC;AAEpC;;;GAGG;AACH,oBAAY,eAAe;IACzB,wCAAwC;IACxC,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,WAAW,IAAI;IACf,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAID;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,oHAAoH;IACpH,eAAe,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC;IACtC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qGAAqG;IACrG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sJAAsJ;IACtJ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+HAA+H;IAC/H,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8JAA8J;IAC9J,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;OAEG;IACH,GAAG,CAAC,EAAE;QACJ,4BAA4B;QAC5B,OAAO,CAAC,EAAE,eAAe,CAAC;KAC3B,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE;QACf,2EAA2E;QAC3E,cAAc,CAAC,EAAE;YACf,iEAAiE;YACjE,cAAc,CAAC,EAAE,wBAAwB,CAAC;SAC3C,CAAC;KACH,CAAC;CACH"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  /** Describes the units in which a [[TextureMapProps]]' scale is expressed.
9
9
  * @public
10
+ * @extensions
10
11
  */
11
12
  export var TextureMapUnits;
12
13
  (function (TextureMapUnits) {
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialProps.js","sourceRoot":"","sources":["../../src/MaterialProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAmBH;;GAEG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,wCAAwC;IACxC,6DAAY,CAAA;IACZ,yDAAU,CAAA;IACV,mEAAe,CAAA;IACf,qDAAQ,CAAA;IACR,yDAAU,CAAA;AACZ,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { DefinitionElementProps } from \"./ElementProps\";\r\nimport { TextureMapping } from \"./TextureMapping\";\r\n\r\n/** Describes a color as an array of three numbers ranging from 0 to 1 where the first entry corresponds to the color's red component,\r\n * the second to green, and the third to blue.\r\n * @see usage in [[RenderMaterialAssetProps]].\r\n * @public\r\n */\r\nexport type RgbFactorProps = number[];\r\n\r\n/** A 2d point specified as an array of 2 numbers [x, y].\r\n * @see usage in [[TextureMapProps]].\r\n * @public\r\n */\r\nexport type Point2dProps = number[];\r\n\r\n/** Describes the units in which a [[TextureMapProps]]' scale is expressed.\r\n * @public\r\n */\r\nexport enum TextureMapUnits {\r\n /** Indicates the scale has no units. */\r\n Relative = 0,\r\n Meters = 3,\r\n Millimeters = 4,\r\n Feet = 5,\r\n Inches = 6,\r\n}\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\n/** As part of a [[RenderMaterialAssetProps]], describes how to map a [[RenderTexture]]'s image to the triangles of a mesh to which the material is applied.\r\n * @public\r\n */\r\nexport interface TextureMapProps {\r\n /** Angle in degrees to rotate texture when applying; defaults to 0.0 if undefined */\r\n pattern_angle?: number;\r\n /** If true, flip the pattern map in U; if undefined, defaults to false */\r\n pattern_u_flip?: boolean;\r\n /** If true, flip the pattern map in V; if undefined, defaults to false */\r\n pattern_flip?: boolean;\r\n /** X, Y scale to apply to the pattern map; if undefined, defaults to {0,0}, which is almost never useful. */\r\n pattern_scale?: Point2dProps;\r\n /** X, Y offset to apply to the pattern map; if undefined, defaults to {0,0} */\r\n pattern_offset?: Point2dProps;\r\n /** Units to use when applying the scaling; if undefined, defaults to [[TextureMapUnits.Relative]] */\r\n pattern_scalemode?: TextureMapUnits;\r\n /** Mapping mode to use for the texture application; if undefined, defaults to [[TextureMapping.Mode.Parametric]] */\r\n pattern_mapping?: TextureMapping.Mode;\r\n /** Weight at which to combine diffuse image and color; if undefined, defaults to 1.0 */\r\n pattern_weight?: number;\r\n /** The Id of the persistent [Texture]($backend) element defining the texture image. */\r\n TextureId: Id64String;\r\n}\r\n\r\n/** Describes the graphical properties of a [RenderMaterialElement]($backend) as part of a [[RenderMaterialProps]].\r\n * @public\r\n */\r\nexport interface RenderMaterialAssetProps {\r\n /** If true, this material has a fill/diffuse color; if undefined, defaults to false */\r\n HasBaseColor?: boolean;\r\n /** Surface color used for fill or diffuse illumination; if undefined, defaults to black */\r\n color?: RgbFactorProps;\r\n /** If true, this material has a specular color; if undefined, defaults to false */\r\n HasSpecularColor?: boolean;\r\n /** Surface color used for specular illumination; if undefined, defaults to black */\r\n specular_color?: RgbFactorProps;\r\n /** If true, this material has a specular exponent; if undefined, defaults to false */\r\n HasFinish?: boolean;\r\n /** Specular exponent (surface shininess); range is 0 to 128; if undefined, defaults to 15.0 * 0.9 */\r\n finish?: number;\r\n /** If true, this material has surface transparency; if undefined, defaults to false */\r\n HasTransmit?: boolean;\r\n /** Surface transparency; if undefined, defaults to 0.0 */\r\n transmit?: number;\r\n /** If true, this material has a value for diffuse reflectivity; if undefined, defaults to false */\r\n HasDiffuse?: boolean;\r\n /** Surface diffuse reflectivity; if undefined, defaults to 0.6 */\r\n diffuse?: number;\r\n /** If true, this material has a value for specular reflectivity; if undefined, defaults to false. If false, specular value is actually set to 0.0 */\r\n HasSpecular?: boolean;\r\n /** Surface specular reflectivity; if undefined, defaults to 0.4 */\r\n specular?: number;\r\n /** If true, this material has a value for environmental reflectivity; if undefined, defaults to false */\r\n HasReflect?: boolean;\r\n /** Surface environmental reflectivity; stored as fraction of specular in V8 material settings; if undefined defaults to 0.0 */\r\n reflect?: number;\r\n /** If true, this material has a surface reflectance color; if undefined, defaults to false. If false, reflectance color is actually set to specular color */\r\n HasReflectColor?: boolean;\r\n /** Surface reflectance color; if undefined, defaults to black */\r\n reflect_color?: RgbFactorProps;\r\n /** An optional set of texture maps associated with this material.\r\n * A large variety of map types may be present (e.g., bump maps, specular maps, fur, etc), but currently only the pattern map is used.\r\n */\r\n Map?: {\r\n /** Optional pattern map. */\r\n Pattern?: TextureMapProps;\r\n };\r\n}\r\n\r\n/** Properties that define a [RenderMaterialElement]($backend).\r\n * @see [[RenderMaterial]] for the representation used by the display system.\r\n * @public\r\n */\r\nexport interface RenderMaterialProps extends DefinitionElementProps {\r\n /** The name of a palette that can be used to categorize multiple materials. */\r\n paletteName: string;\r\n /** An optional description of the material. */\r\n description?: string;\r\n jsonProperties?: {\r\n /** A container for various \"assets\" describing aspects of the material. */\r\n materialAssets?: {\r\n /** Properties of the material describing how it is displayed. */\r\n renderMaterial?: RenderMaterialAssetProps;\r\n };\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"MaterialProps.js","sourceRoot":"","sources":["../../src/MaterialProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAqBH;;;GAGG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,wCAAwC;IACxC,6DAAY,CAAA;IACZ,yDAAU,CAAA;IACV,mEAAe,CAAA;IACf,qDAAQ,CAAA;IACR,yDAAU,CAAA;AACZ,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { DefinitionElementProps } from \"./ElementProps\";\r\nimport { TextureMapping } from \"./TextureMapping\";\r\n\r\n/** Describes a color as an array of three numbers ranging from 0 to 1 where the first entry corresponds to the color's red component,\r\n * the second to green, and the third to blue.\r\n * @see usage in [[RenderMaterialAssetProps]].\r\n * @public\r\n * @extensions\r\n */\r\nexport type RgbFactorProps = number[];\r\n\r\n/** A 2d point specified as an array of 2 numbers [x, y].\r\n * @see usage in [[TextureMapProps]].\r\n * @public\r\n * @extensions\r\n */\r\nexport type Point2dProps = number[];\r\n\r\n/** Describes the units in which a [[TextureMapProps]]' scale is expressed.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum TextureMapUnits {\r\n /** Indicates the scale has no units. */\r\n Relative = 0,\r\n Meters = 3,\r\n Millimeters = 4,\r\n Feet = 5,\r\n Inches = 6,\r\n}\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\n/** As part of a [[RenderMaterialAssetProps]], describes how to map a [[RenderTexture]]'s image to the triangles of a mesh to which the material is applied.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureMapProps {\r\n /** Angle in degrees to rotate texture when applying; defaults to 0.0 if undefined */\r\n pattern_angle?: number;\r\n /** If true, flip the pattern map in U; if undefined, defaults to false */\r\n pattern_u_flip?: boolean;\r\n /** If true, flip the pattern map in V; if undefined, defaults to false */\r\n pattern_flip?: boolean;\r\n /** X, Y scale to apply to the pattern map; if undefined, defaults to {0,0}, which is almost never useful. */\r\n pattern_scale?: Point2dProps;\r\n /** X, Y offset to apply to the pattern map; if undefined, defaults to {0,0} */\r\n pattern_offset?: Point2dProps;\r\n /** Units to use when applying the scaling; if undefined, defaults to [[TextureMapUnits.Relative]] */\r\n pattern_scalemode?: TextureMapUnits;\r\n /** Mapping mode to use for the texture application; if undefined, defaults to [[TextureMapping.Mode.Parametric]] */\r\n pattern_mapping?: TextureMapping.Mode;\r\n /** Weight at which to combine diffuse image and color; if undefined, defaults to 1.0 */\r\n pattern_weight?: number;\r\n /** The Id of the persistent [Texture]($backend) element defining the texture image. */\r\n TextureId: Id64String;\r\n}\r\n\r\n/** Describes the graphical properties of a [RenderMaterialElement]($backend) as part of a [[RenderMaterialProps]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface RenderMaterialAssetProps {\r\n /** If true, this material has a fill/diffuse color; if undefined, defaults to false */\r\n HasBaseColor?: boolean;\r\n /** Surface color used for fill or diffuse illumination; if undefined, defaults to black */\r\n color?: RgbFactorProps;\r\n /** If true, this material has a specular color; if undefined, defaults to false */\r\n HasSpecularColor?: boolean;\r\n /** Surface color used for specular illumination; if undefined, defaults to black */\r\n specular_color?: RgbFactorProps;\r\n /** If true, this material has a specular exponent; if undefined, defaults to false */\r\n HasFinish?: boolean;\r\n /** Specular exponent (surface shininess); range is 0 to 128; if undefined, defaults to 15.0 * 0.9 */\r\n finish?: number;\r\n /** If true, this material has surface transparency; if undefined, defaults to false */\r\n HasTransmit?: boolean;\r\n /** Surface transparency; if undefined, defaults to 0.0 */\r\n transmit?: number;\r\n /** If true, this material has a value for diffuse reflectivity; if undefined, defaults to false */\r\n HasDiffuse?: boolean;\r\n /** Surface diffuse reflectivity; if undefined, defaults to 0.6 */\r\n diffuse?: number;\r\n /** If true, this material has a value for specular reflectivity; if undefined, defaults to false. If false, specular value is actually set to 0.0 */\r\n HasSpecular?: boolean;\r\n /** Surface specular reflectivity; if undefined, defaults to 0.4 */\r\n specular?: number;\r\n /** If true, this material has a value for environmental reflectivity; if undefined, defaults to false */\r\n HasReflect?: boolean;\r\n /** Surface environmental reflectivity; stored as fraction of specular in V8 material settings; if undefined defaults to 0.0 */\r\n reflect?: number;\r\n /** If true, this material has a surface reflectance color; if undefined, defaults to false. If false, reflectance color is actually set to specular color */\r\n HasReflectColor?: boolean;\r\n /** Surface reflectance color; if undefined, defaults to black */\r\n reflect_color?: RgbFactorProps;\r\n /** An optional set of texture maps associated with this material.\r\n * A large variety of map types may be present (e.g., bump maps, specular maps, fur, etc), but currently only the pattern map is used.\r\n */\r\n Map?: {\r\n /** Optional pattern map. */\r\n Pattern?: TextureMapProps;\r\n };\r\n}\r\n\r\n/** Properties that define a [RenderMaterialElement]($backend).\r\n * @see [[RenderMaterial]] for the representation used by the display system.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface RenderMaterialProps extends DefinitionElementProps {\r\n /** The name of a palette that can be used to categorize multiple materials. */\r\n paletteName: string;\r\n /** An optional description of the material. */\r\n description?: string;\r\n jsonProperties?: {\r\n /** A container for various \"assets\" describing aspects of the material. */\r\n materialAssets?: {\r\n /** Properties of the material describing how it is displayed. */\r\n renderMaterial?: RenderMaterialAssetProps;\r\n };\r\n };\r\n}\r\n"]}
@@ -5,6 +5,7 @@ import { Id64Array, Id64String } from "@itwin/core-bentley";
5
5
  import { ClipVector, ClipVectorProps } from "@itwin/core-geometry";
6
6
  /** JSON representation of a [[ModelClipGroup]].
7
7
  * @public
8
+ * @extensions
8
9
  */
9
10
  export interface ModelClipGroupProps {
10
11
  /** The Ids of the models in the group. */
@@ -1 +1 @@
1
- {"version":3,"file":"ModelClipGroup.d.ts","sourceRoot":"","sources":["../../src/ModelClipGroup.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oFAAoF;IACpF,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,0FAA0F;IAC1F,SAAgB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnC,2GAA2G;IAC3G,SAAgB,IAAI,CAAC,EAAE,UAAU,CAAC;IAElC,OAAO;IAKP,2HAA2H;WAC7G,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,cAAc;IAItF,wCAAwC;IACjC,KAAK,IAAI,cAAc;IAK9B,oEAAoE;IAC7D,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAIlD,uCAAuC;WACzB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc;IAMlE,sCAAsC;IAC/B,MAAM,IAAI,mBAAmB;CAUrC;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,uDAAuD;IACvD,SAAgB,MAAM,EAAE,cAAc,EAAE,CAAC;IAEzC;;OAEG;gBACgB,MAAM,GAAE,cAAc,EAAO;IAIhD,kDAAkD;IAC3C,KAAK,IAAI,eAAe;IAK/B,4EAA4E;IACrE,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS;IAIjE,yHAAyH;IAClH,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAIlD;;OAEG;IACI,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAInE,uCAAuC;WACzB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,SAAS,GAAG,eAAe;IAKjF,sCAAsC;IAC/B,MAAM,IAAI,mBAAmB,EAAE;CAGvC"}
1
+ {"version":3,"file":"ModelClipGroup.d.ts","sourceRoot":"","sources":["../../src/ModelClipGroup.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oFAAoF;IACpF,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,0FAA0F;IAC1F,SAAgB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnC,2GAA2G;IAC3G,SAAgB,IAAI,CAAC,EAAE,UAAU,CAAC;IAElC,OAAO;IAKP,2HAA2H;WAC7G,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,cAAc;IAItF,wCAAwC;IACjC,KAAK,IAAI,cAAc;IAK9B,oEAAoE;IAC7D,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAIlD,uCAAuC;WACzB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc;IAMlE,sCAAsC;IAC/B,MAAM,IAAI,mBAAmB;CAUrC;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,uDAAuD;IACvD,SAAgB,MAAM,EAAE,cAAc,EAAE,CAAC;IAEzC;;OAEG;gBACgB,MAAM,GAAE,cAAc,EAAO;IAIhD,kDAAkD;IAC3C,KAAK,IAAI,eAAe;IAK/B,4EAA4E;IACrE,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS;IAIjE,yHAAyH;IAClH,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAIlD;;OAEG;IACI,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAInE,uCAAuC;WACzB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,SAAS,GAAG,eAAe;IAKjF,sCAAsC;IAC/B,MAAM,IAAI,mBAAmB,EAAE;CAGvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModelClipGroup.js","sourceRoot":"","sources":["../../src/ModelClipGroup.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { ClipVector, ClipVectorProps } from \"@itwin/core-geometry\";\r\n\r\n/** JSON representation of a [[ModelClipGroup]].\r\n * @public\r\n */\r\nexport interface ModelClipGroupProps {\r\n /** The Ids of the models in the group. */\r\n models?: Id64Array;\r\n /** JSON representation of the [ClipVector]($core-geometry) applied to the group. */\r\n clip?: ClipVectorProps;\r\n}\r\n\r\n/** Describes how to clip a group of models in the context of a [ViewDefinition3d]($backend) by applying a single [ClipVector]($core-geometry] to each model in the group.\r\n * @see [[ModelClipGroups]] to define multiple groups of models with different clip vectors.\r\n * @public\r\n */\r\nexport class ModelClipGroup {\r\n /** The Ids of the models to be clipped, or undefined if the group includes all models. */\r\n public readonly models?: Id64Array;\r\n /** The clip to apply to the group of models. `undefined` indicates the models are exempt from clipping. */\r\n public readonly clip?: ClipVector;\r\n\r\n private constructor(models: Id64Array | undefined, clip: ClipVector | undefined) {\r\n this.models = models;\r\n this.clip = clip;\r\n }\r\n\r\n /** Create a new ModelClipGroup. The input arguments are captured as references and should not be subsequently modified. */\r\n public static create(clip: ClipVector | undefined, models?: Id64Array): ModelClipGroup {\r\n return new ModelClipGroup(models, clip);\r\n }\r\n\r\n /** Create a deep copy of this group. */\r\n public clone(): ModelClipGroup {\r\n const models = this.models ? [...this.models] : undefined;\r\n return new ModelClipGroup(models, this.clip?.clone());\r\n }\r\n\r\n /** Returns whether the specified model Id belongs to this group. */\r\n public includesModel(modelId: Id64String): boolean {\r\n return undefined === this.models || this.models.includes(modelId);\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props: ModelClipGroupProps): ModelClipGroup {\r\n const models = props.models ? [...props.models] : undefined;\r\n const clip = props.clip ? ClipVector.fromJSON(props.clip) : undefined;\r\n return new ModelClipGroup(models, undefined !== clip && clip.isValid ? clip : undefined);\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): ModelClipGroupProps {\r\n const props: ModelClipGroupProps = {};\r\n if (this.models)\r\n props.models = [...this.models];\r\n\r\n if (this.clip)\r\n props.clip = this.clip.toJSON();\r\n\r\n return props;\r\n }\r\n}\r\n\r\n/** Describes how to clip groups of models in the context of a [ViewDefinition3d]($backend) or [ViewState3d]($frontend).\r\n * Each group will be clipped by the [ClipVector]($core-geometry) associated with the group to which it belongs.\r\n * A model belongs to the first group in the list for which `ModelClipGroup.includesModel()` returns `true`.\r\n * A catch-all group can be defined by a ModelClipGroup with an `undefined` array of model Ids; any model whose Id does not appear in any group's list would belong to this group. If a catch-all group exists, it should appear last in the list.\r\n * A group of models can be exempted from clipping by a ModelClipGroup with an `undefined` ClipVector.\r\n * @note A ModelClipGroups obtained from a [[ViewDetails3d]] should **not** be modified directly. Clone it instead and modify the clone.\r\n * @see [[ViewDetails3d.modelClipGroups]] to define the clip groups for a [ViewDefinition3d]($backend) or [ViewState3d]($frontend).\r\n * @public\r\n */\r\nexport class ModelClipGroups {\r\n /** The groups of models and their associated clips. */\r\n public readonly groups: ModelClipGroup[];\r\n\r\n /** Create a new ModelClipGroups.\r\n * @note The ModelClipGroup takes ownership of the input array, which should not be subsequently modified.\r\n */\r\n public constructor(groups: ModelClipGroup[] = []) {\r\n this.groups = groups;\r\n }\r\n\r\n /** Create a deep copy of this ModelClipGroups. */\r\n public clone(): ModelClipGroups {\r\n const groups = this.groups.map((group) => group.clone());\r\n return new ModelClipGroups(groups);\r\n }\r\n\r\n /** Find the first group to which the specified model Id belongs, if any. */\r\n public findGroup(modelId: Id64String): ModelClipGroup | undefined {\r\n return this.groups.find((group) => group.includesModel(modelId));\r\n }\r\n\r\n /** Returns the array index of the group to which the specified model belongs, or -1 if the model belongs to no group. */\r\n public findGroupIndex(modelId: Id64String): number {\r\n return this.groups.findIndex((group) => group.includesModel(modelId));\r\n }\r\n\r\n /** Find the clip that should be applied to the specified model.\r\n * @note This may return `undefined` if the model belongs to no group, **or** it belongs to a group that should not be clipped.\r\n */\r\n public getClipForModel(modelId: Id64String): ClipVector | undefined {\r\n return this.findGroup(modelId)?.clip;\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props: ModelClipGroupProps[] | undefined): ModelClipGroups {\r\n const groups = props?.map((prop) => ModelClipGroup.fromJSON(prop));\r\n return new ModelClipGroups(groups);\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): ModelClipGroupProps[] {\r\n return this.groups.map((group) => group.toJSON());\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ModelClipGroup.js","sourceRoot":"","sources":["../../src/ModelClipGroup.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAmB,MAAM,sBAAsB,CAAC;AAanE;;;GAGG;AACH,MAAM,OAAO,cAAc;IAMzB,YAAoB,MAA6B,EAAE,IAA4B;QAC7E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,2HAA2H;IACpH,MAAM,CAAC,MAAM,CAAC,IAA4B,EAAE,MAAkB;QACnE,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,wCAAwC;IACjC,KAAK;;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,oEAAoE;IAC7D,aAAa,CAAC,OAAmB;QACtC,OAAO,SAAS,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,uCAAuC;IAChC,MAAM,CAAC,QAAQ,CAAC,KAA0B;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3F,CAAC;IAED,sCAAsC;IAC/B,MAAM;QACX,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,MAAM;YACb,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,IAAI;YACX,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAElC,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,eAAe;IAI1B;;OAEG;IACH,YAAmB,SAA2B,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kDAAkD;IAC3C,KAAK;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,4EAA4E;IACrE,SAAS,CAAC,OAAmB;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,yHAAyH;IAClH,cAAc,CAAC,OAAmB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAmB;;QACxC,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC;IACvC,CAAC;IAED,uCAAuC;IAChC,MAAM,CAAC,QAAQ,CAAC,KAAwC;QAC7D,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,sCAAsC;IAC/B,MAAM;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { ClipVector, ClipVectorProps } from \"@itwin/core-geometry\";\r\n\r\n/** JSON representation of a [[ModelClipGroup]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ModelClipGroupProps {\r\n /** The Ids of the models in the group. */\r\n models?: Id64Array;\r\n /** JSON representation of the [ClipVector]($core-geometry) applied to the group. */\r\n clip?: ClipVectorProps;\r\n}\r\n\r\n/** Describes how to clip a group of models in the context of a [ViewDefinition3d]($backend) by applying a single [ClipVector]($core-geometry] to each model in the group.\r\n * @see [[ModelClipGroups]] to define multiple groups of models with different clip vectors.\r\n * @public\r\n */\r\nexport class ModelClipGroup {\r\n /** The Ids of the models to be clipped, or undefined if the group includes all models. */\r\n public readonly models?: Id64Array;\r\n /** The clip to apply to the group of models. `undefined` indicates the models are exempt from clipping. */\r\n public readonly clip?: ClipVector;\r\n\r\n private constructor(models: Id64Array | undefined, clip: ClipVector | undefined) {\r\n this.models = models;\r\n this.clip = clip;\r\n }\r\n\r\n /** Create a new ModelClipGroup. The input arguments are captured as references and should not be subsequently modified. */\r\n public static create(clip: ClipVector | undefined, models?: Id64Array): ModelClipGroup {\r\n return new ModelClipGroup(models, clip);\r\n }\r\n\r\n /** Create a deep copy of this group. */\r\n public clone(): ModelClipGroup {\r\n const models = this.models ? [...this.models] : undefined;\r\n return new ModelClipGroup(models, this.clip?.clone());\r\n }\r\n\r\n /** Returns whether the specified model Id belongs to this group. */\r\n public includesModel(modelId: Id64String): boolean {\r\n return undefined === this.models || this.models.includes(modelId);\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props: ModelClipGroupProps): ModelClipGroup {\r\n const models = props.models ? [...props.models] : undefined;\r\n const clip = props.clip ? ClipVector.fromJSON(props.clip) : undefined;\r\n return new ModelClipGroup(models, undefined !== clip && clip.isValid ? clip : undefined);\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): ModelClipGroupProps {\r\n const props: ModelClipGroupProps = {};\r\n if (this.models)\r\n props.models = [...this.models];\r\n\r\n if (this.clip)\r\n props.clip = this.clip.toJSON();\r\n\r\n return props;\r\n }\r\n}\r\n\r\n/** Describes how to clip groups of models in the context of a [ViewDefinition3d]($backend) or [ViewState3d]($frontend).\r\n * Each group will be clipped by the [ClipVector]($core-geometry) associated with the group to which it belongs.\r\n * A model belongs to the first group in the list for which `ModelClipGroup.includesModel()` returns `true`.\r\n * A catch-all group can be defined by a ModelClipGroup with an `undefined` array of model Ids; any model whose Id does not appear in any group's list would belong to this group. If a catch-all group exists, it should appear last in the list.\r\n * A group of models can be exempted from clipping by a ModelClipGroup with an `undefined` ClipVector.\r\n * @note A ModelClipGroups obtained from a [[ViewDetails3d]] should **not** be modified directly. Clone it instead and modify the clone.\r\n * @see [[ViewDetails3d.modelClipGroups]] to define the clip groups for a [ViewDefinition3d]($backend) or [ViewState3d]($frontend).\r\n * @public\r\n */\r\nexport class ModelClipGroups {\r\n /** The groups of models and their associated clips. */\r\n public readonly groups: ModelClipGroup[];\r\n\r\n /** Create a new ModelClipGroups.\r\n * @note The ModelClipGroup takes ownership of the input array, which should not be subsequently modified.\r\n */\r\n public constructor(groups: ModelClipGroup[] = []) {\r\n this.groups = groups;\r\n }\r\n\r\n /** Create a deep copy of this ModelClipGroups. */\r\n public clone(): ModelClipGroups {\r\n const groups = this.groups.map((group) => group.clone());\r\n return new ModelClipGroups(groups);\r\n }\r\n\r\n /** Find the first group to which the specified model Id belongs, if any. */\r\n public findGroup(modelId: Id64String): ModelClipGroup | undefined {\r\n return this.groups.find((group) => group.includesModel(modelId));\r\n }\r\n\r\n /** Returns the array index of the group to which the specified model belongs, or -1 if the model belongs to no group. */\r\n public findGroupIndex(modelId: Id64String): number {\r\n return this.groups.findIndex((group) => group.includesModel(modelId));\r\n }\r\n\r\n /** Find the clip that should be applied to the specified model.\r\n * @note This may return `undefined` if the model belongs to no group, **or** it belongs to a group that should not be clipped.\r\n */\r\n public getClipForModel(modelId: Id64String): ClipVector | undefined {\r\n return this.findGroup(modelId)?.clip;\r\n }\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props: ModelClipGroupProps[] | undefined): ModelClipGroups {\r\n const groups = props?.map((prop) => ModelClipGroup.fromJSON(prop));\r\n return new ModelClipGroups(groups);\r\n }\r\n\r\n /** Convert to JSON representation. */\r\n public toJSON(): ModelClipGroupProps[] {\r\n return this.groups.map((group) => group.toJSON());\r\n }\r\n}\r\n"]}
@@ -9,6 +9,7 @@ import { Range3d, Range3dProps } from "@itwin/core-geometry";
9
9
  * @see [[ElementGeometryChange]] for a more useful representation of an individual element change.
10
10
  * @see [[ModelGeometryChanges.iterable]] to iterate over [[ElementGeometryChange]]s.
11
11
  * @public
12
+ * @extensions
12
13
  */
13
14
  export interface ElementIdsAndRangesProps {
14
15
  /** The Ids of the elements, compressed and sorted in ascending order. */
@@ -20,6 +21,7 @@ export interface ElementIdsAndRangesProps {
20
21
  * A given element Id will appear in no more than one of [[inserted]], [[updated]], or [[deleted]].
21
22
  * @see [[ModelGeometryChanges]] for a more useful representation.
22
23
  * @public
24
+ * @extensions
23
25
  */
24
26
  export interface ModelGeometryChangesProps {
25
27
  /** The Id of the model. */
@@ -38,6 +40,7 @@ export interface ModelGeometryChangesProps {
38
40
  /** Represents the insertion of a new [GeometricElement]($backend), or a change to the geometric properties of an existing [GeometricElement]($backend).
39
41
  * @see [[ElementGeometryChange]].
40
42
  * @public
43
+ * @extensions
41
44
  */
42
45
  export interface ExtantElementGeometryChange {
43
46
  /** Indicates whether this change resulted from the insertion of a new element or modification of an existing one.
@@ -52,6 +55,7 @@ export interface ExtantElementGeometryChange {
52
55
  /** Represents the deletion of a [GeometricElement]($backend).
53
56
  * @see [[ElementGeometryChange]].
54
57
  * @public
58
+ * @extensions
55
59
  */
56
60
  export interface DeletedElementGeometryChange {
57
61
  /** Discriminant for [[ElementGeometryChange]] union. */
@@ -59,7 +63,10 @@ export interface DeletedElementGeometryChange {
59
63
  /** The element's Id. */
60
64
  readonly id: Id64String;
61
65
  }
62
- /** @public */
66
+ /**
67
+ * @public
68
+ * @extensions
69
+ */
63
70
  export declare type ElementGeometryChange = ExtantElementGeometryChange | DeletedElementGeometryChange;
64
71
  /** Represents a change to the geometry of a [GeometricElement]($backend), as exposed by [[ModelGeometryChanges.elements]].
65
72
  * @public
@@ -72,6 +79,7 @@ export declare namespace ElementGeometryChange {
72
79
  }
73
80
  /** Represents geometric changes to a set of [GeometricElement]($backend)s belonging to a single [GeometricModel]($backend).
74
81
  * @public
82
+ * @extensions
75
83
  */
76
84
  export interface ModelGeometryChanges {
77
85
  /** The model's Id. */
@@ -1 +1 @@
1
- {"version":3,"file":"ModelGeometryChanges.d.ts","sourceRoot":"","sources":["../../src/ModelGeometryChanges.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,uGAAuG;IACvG,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,8GAA8G;IAC9G,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IAC7C,gHAAgH;IAChH,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjD,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;IAC/B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;CACzB;AAED,cAAc;AACd,oBAAY,qBAAqB,GAAG,2BAA2B,GAAG,4BAA4B,CAAC;AAE/F;;GAEG;AACH,yBAAiB,qBAAqB,CAAC;IAgBrC,sIAAsI;IACtI,SAAiB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAUlG;IAED,sIAAsI;IACtI,SAAgB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAEjG;CACF;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CACpD;AAED;;;GAGG;AACH,yBAAiB,oBAAoB,CAAC;IACpC,gHAAgH;IAChH,SAAiB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,EAAE,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAGnG;IAED,gHAAgH;IAChH,SAAgB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,EAAE,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAElG;IAED,oCAAoC;IACpC,SAAgB,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,oBAAoB,CAO/E;IAED,kEAAkE;IAClE,SAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,oBAAoB,GAAG,SAAS,CAM5H;CACF"}
1
+ {"version":3,"file":"ModelGeometryChanges.d.ts","sourceRoot":"","sources":["../../src/ModelGeometryChanges.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,uGAAuG;IACvG,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,8GAA8G;IAC9G,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IAC7C,gHAAgH;IAChH,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjD,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;IAC/B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;CACzB;AAED;;;GAGG;AACH,oBAAY,qBAAqB,GAAG,2BAA2B,GAAG,4BAA4B,CAAC;AAE/F;;GAEG;AACH,yBAAiB,qBAAqB,CAAC;IAgBrC,sIAAsI;IACtI,SAAiB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAUlG;IAED,sIAAsI;IACtI,SAAgB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAEjG;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CACpD;AAED;;;GAGG;AACH,yBAAiB,oBAAoB,CAAC;IACpC,gHAAgH;IAChH,SAAiB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,EAAE,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAGnG;IAED,gHAAgH;IAChH,SAAgB,QAAQ,CAAC,YAAY,EAAE,yBAAyB,EAAE,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAElG;IAED,oCAAoC;IACpC,SAAgB,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,oBAAoB,CAO/E;IAED,kEAAkE;IAClE,SAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,oBAAoB,GAAG,SAAS,CAM5H;CACF"}