@itwin/core-common 3.6.0-dev.54 → 3.6.0-dev.59

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 (943) hide show
  1. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  2. package/lib/cjs/AmbientOcclusion.js +55 -55
  3. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  4. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  5. package/lib/cjs/AnalysisStyle.js +165 -165
  6. package/lib/cjs/AnalysisStyle.js.map +1 -1
  7. package/lib/cjs/AuthorizationClient.d.ts +17 -17
  8. package/lib/cjs/AuthorizationClient.js +9 -9
  9. package/lib/cjs/AuthorizationClient.js.map +1 -1
  10. package/lib/cjs/BackendTypes.d.ts +12 -12
  11. package/lib/cjs/BackendTypes.js +9 -9
  12. package/lib/cjs/BackendTypes.js.map +1 -1
  13. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  14. package/lib/cjs/BackgroundMapProvider.js +68 -68
  15. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  16. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  17. package/lib/cjs/BackgroundMapSettings.js +156 -156
  18. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  19. package/lib/cjs/Base64EncodedString.d.ts +32 -32
  20. package/lib/cjs/Base64EncodedString.js +66 -66
  21. package/lib/cjs/Base64EncodedString.js.map +1 -1
  22. package/lib/cjs/BlobReader.d.ts +31 -31
  23. package/lib/cjs/BlobReader.js +84 -84
  24. package/lib/cjs/BlobReader.js.map +1 -1
  25. package/lib/cjs/BriefcaseTypes.d.ts +189 -189
  26. package/lib/cjs/BriefcaseTypes.js +95 -95
  27. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  28. package/lib/cjs/Camera.d.ts +42 -42
  29. package/lib/cjs/Camera.js +62 -62
  30. package/lib/cjs/Camera.js.map +1 -1
  31. package/lib/cjs/ChangedElements.d.ts +85 -85
  32. package/lib/cjs/ChangedElements.js +23 -23
  33. package/lib/cjs/ChangedElements.js.map +1 -1
  34. package/lib/cjs/ChangedEntities.d.ts +45 -45
  35. package/lib/cjs/ChangedEntities.js +9 -9
  36. package/lib/cjs/ChangedEntities.js.map +1 -1
  37. package/lib/cjs/ChangesetProps.d.ts +98 -98
  38. package/lib/cjs/ChangesetProps.js +22 -22
  39. package/lib/cjs/ChangesetProps.js.map +1 -1
  40. package/lib/cjs/ClipStyle.d.ts +89 -89
  41. package/lib/cjs/ClipStyle.js +123 -123
  42. package/lib/cjs/ClipStyle.js.map +1 -1
  43. package/lib/cjs/CloudStorage.d.ts +62 -62
  44. package/lib/cjs/CloudStorage.js +113 -113
  45. package/lib/cjs/CloudStorage.js.map +1 -1
  46. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  47. package/lib/cjs/CloudStorageTileCache.js +66 -66
  48. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  49. package/lib/cjs/Code.d.ts +277 -269
  50. package/lib/cjs/Code.d.ts.map +1 -1
  51. package/lib/cjs/Code.js +269 -268
  52. package/lib/cjs/Code.js.map +1 -1
  53. package/lib/cjs/ColorByName.d.ts +161 -161
  54. package/lib/cjs/ColorByName.js +169 -169
  55. package/lib/cjs/ColorByName.js.map +1 -1
  56. package/lib/cjs/ColorDef.d.ts +208 -208
  57. package/lib/cjs/ColorDef.js +571 -571
  58. package/lib/cjs/ColorDef.js.map +1 -1
  59. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  60. package/lib/cjs/CommonLoggerCategory.js +26 -26
  61. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  62. package/lib/cjs/ConcurrentQuery.d.ts +421 -421
  63. package/lib/cjs/ConcurrentQuery.js +552 -552
  64. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  65. package/lib/cjs/ContextRealityModel.d.ts +276 -276
  66. package/lib/cjs/ContextRealityModel.js +358 -358
  67. package/lib/cjs/ContextRealityModel.js.map +1 -1
  68. package/lib/cjs/DisplayStyleSettings.d.ts +584 -584
  69. package/lib/cjs/DisplayStyleSettings.js +981 -981
  70. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  71. package/lib/cjs/ECSchemaProps.d.ts +39 -39
  72. package/lib/cjs/ECSchemaProps.js +9 -9
  73. package/lib/cjs/ECSchemaProps.js.map +1 -1
  74. package/lib/cjs/ECSqlReader.d.ts +70 -70
  75. package/lib/cjs/ECSqlReader.js +280 -280
  76. package/lib/cjs/ECSqlReader.js.map +1 -1
  77. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  78. package/lib/cjs/ECSqlTypes.js +189 -189
  79. package/lib/cjs/ECSqlTypes.js.map +1 -1
  80. package/lib/cjs/ElementMesh.d.ts +39 -39
  81. package/lib/cjs/ElementMesh.js +56 -56
  82. package/lib/cjs/ElementMesh.js.map +1 -1
  83. package/lib/cjs/ElementProps.d.ts +483 -483
  84. package/lib/cjs/ElementProps.js +99 -99
  85. package/lib/cjs/ElementProps.js.map +1 -1
  86. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  87. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  88. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  89. package/lib/cjs/EntityProps.d.ts +177 -177
  90. package/lib/cjs/EntityProps.js +113 -113
  91. package/lib/cjs/EntityProps.js.map +1 -1
  92. package/lib/cjs/EntityReference.d.ts +51 -51
  93. package/lib/cjs/EntityReference.js +56 -56
  94. package/lib/cjs/EntityReference.js.map +1 -1
  95. package/lib/cjs/Environment.d.ts +61 -61
  96. package/lib/cjs/Environment.js +73 -73
  97. package/lib/cjs/Environment.js.map +1 -1
  98. package/lib/cjs/FeatureIndex.d.ts +39 -39
  99. package/lib/cjs/FeatureIndex.js +63 -63
  100. package/lib/cjs/FeatureIndex.js.map +1 -1
  101. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  102. package/lib/cjs/FeatureSymbology.js +614 -614
  103. package/lib/cjs/FeatureSymbology.js.map +1 -1
  104. package/lib/cjs/FeatureTable.d.ts +141 -141
  105. package/lib/cjs/FeatureTable.js +278 -278
  106. package/lib/cjs/FeatureTable.js.map +1 -1
  107. package/lib/cjs/Fonts.d.ts +51 -51
  108. package/lib/cjs/Fonts.js +53 -53
  109. package/lib/cjs/Fonts.js.map +1 -1
  110. package/lib/cjs/Frustum.d.ts +114 -114
  111. package/lib/cjs/Frustum.js +292 -292
  112. package/lib/cjs/Frustum.js.map +1 -1
  113. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  114. package/lib/cjs/GeoCoordinateServices.js +80 -80
  115. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  116. package/lib/cjs/GeometryContainment.d.ts +28 -28
  117. package/lib/cjs/GeometryContainment.js +9 -9
  118. package/lib/cjs/GeometryContainment.js.map +1 -1
  119. package/lib/cjs/GeometryParams.d.ts +130 -130
  120. package/lib/cjs/GeometryParams.js +174 -174
  121. package/lib/cjs/GeometryParams.js.map +1 -1
  122. package/lib/cjs/GeometrySummary.d.ts +45 -45
  123. package/lib/cjs/GeometrySummary.js +23 -23
  124. package/lib/cjs/GeometrySummary.js.map +1 -1
  125. package/lib/cjs/Gradient.d.ts +139 -139
  126. package/lib/cjs/Gradient.js +455 -455
  127. package/lib/cjs/Gradient.js.map +1 -1
  128. package/lib/cjs/GraphicParams.d.ts +58 -58
  129. package/lib/cjs/GraphicParams.js +85 -85
  130. package/lib/cjs/GraphicParams.js.map +1 -1
  131. package/lib/cjs/GroundPlane.d.ts +52 -52
  132. package/lib/cjs/GroundPlane.js +64 -64
  133. package/lib/cjs/GroundPlane.js.map +1 -1
  134. package/lib/cjs/HSLColor.d.ts +20 -20
  135. package/lib/cjs/HSLColor.js +32 -32
  136. package/lib/cjs/HSLColor.js.map +1 -1
  137. package/lib/cjs/HSVColor.d.ts +30 -30
  138. package/lib/cjs/HSVColor.js +59 -59
  139. package/lib/cjs/HSVColor.js.map +1 -1
  140. package/lib/cjs/HiddenLine.d.ts +97 -97
  141. package/lib/cjs/HiddenLine.js +162 -162
  142. package/lib/cjs/HiddenLine.js.map +1 -1
  143. package/lib/cjs/Hilite.d.ts +50 -50
  144. package/lib/cjs/Hilite.js +64 -64
  145. package/lib/cjs/Hilite.js.map +1 -1
  146. package/lib/cjs/IModel.d.ts +359 -359
  147. package/lib/cjs/IModel.js +347 -347
  148. package/lib/cjs/IModel.js.map +1 -1
  149. package/lib/cjs/IModelError.d.ts +42 -42
  150. package/lib/cjs/IModelError.js +71 -71
  151. package/lib/cjs/IModelError.js.map +1 -1
  152. package/lib/cjs/IModelVersion.d.ts +68 -68
  153. package/lib/cjs/IModelVersion.js +79 -79
  154. package/lib/cjs/IModelVersion.js.map +1 -1
  155. package/lib/cjs/Image.d.ts +86 -86
  156. package/lib/cjs/Image.js +128 -128
  157. package/lib/cjs/Image.js.map +1 -1
  158. package/lib/cjs/IpcAppProps.d.ts +141 -141
  159. package/lib/cjs/IpcAppProps.js +23 -23
  160. package/lib/cjs/IpcAppProps.js.map +1 -1
  161. package/lib/cjs/LightSettings.d.ts +224 -224
  162. package/lib/cjs/LightSettings.js +309 -309
  163. package/lib/cjs/LightSettings.js.map +1 -1
  164. package/lib/cjs/LinePixels.d.ts +34 -34
  165. package/lib/cjs/LinePixels.js +42 -42
  166. package/lib/cjs/LinePixels.js.map +1 -1
  167. package/lib/cjs/Localization.d.ts +113 -113
  168. package/lib/cjs/Localization.js +33 -33
  169. package/lib/cjs/Localization.js.map +1 -1
  170. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  171. package/lib/cjs/MapImagerySettings.js +80 -80
  172. package/lib/cjs/MapImagerySettings.js.map +1 -1
  173. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  174. package/lib/cjs/MapLayerSettings.js +411 -411
  175. package/lib/cjs/MapLayerSettings.js.map +1 -1
  176. package/lib/cjs/MassProperties.d.ts +64 -64
  177. package/lib/cjs/MassProperties.js +23 -23
  178. package/lib/cjs/MassProperties.js.map +1 -1
  179. package/lib/cjs/MaterialProps.d.ts +153 -153
  180. package/lib/cjs/MaterialProps.js +35 -35
  181. package/lib/cjs/MaterialProps.js.map +1 -1
  182. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  183. package/lib/cjs/ModelClipGroup.js +98 -98
  184. package/lib/cjs/ModelClipGroup.js.map +1 -1
  185. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  186. package/lib/cjs/ModelGeometryChanges.js +83 -83
  187. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  188. package/lib/cjs/ModelProps.d.ts +67 -67
  189. package/lib/cjs/ModelProps.js +9 -9
  190. package/lib/cjs/ModelProps.js.map +1 -1
  191. package/lib/cjs/NativeAppProps.d.ts +122 -122
  192. package/lib/cjs/NativeAppProps.js +30 -30
  193. package/lib/cjs/NativeAppProps.js.map +1 -1
  194. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  195. package/lib/cjs/OctEncodedNormal.js +98 -98
  196. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  197. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  198. package/lib/cjs/PlanProjectionSettings.js +63 -63
  199. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  200. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  201. package/lib/cjs/PlanarClipMask.js +136 -136
  202. package/lib/cjs/PlanarClipMask.js.map +1 -1
  203. package/lib/cjs/QPoint.d.ts +479 -479
  204. package/lib/cjs/QPoint.js +826 -826
  205. package/lib/cjs/QPoint.js.map +1 -1
  206. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  207. package/lib/cjs/RealityDataAccessProps.js +19 -19
  208. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  209. package/lib/cjs/RealityModelDisplaySettings.d.ts +183 -183
  210. package/lib/cjs/RealityModelDisplaySettings.js +142 -142
  211. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  212. package/lib/cjs/Render.d.ts +89 -89
  213. package/lib/cjs/Render.js +177 -177
  214. package/lib/cjs/Render.js.map +1 -1
  215. package/lib/cjs/RenderMaterial.d.ts +58 -58
  216. package/lib/cjs/RenderMaterial.js +76 -76
  217. package/lib/cjs/RenderMaterial.js.map +1 -1
  218. package/lib/cjs/RenderSchedule.d.ts +543 -543
  219. package/lib/cjs/RenderSchedule.js +1002 -1002
  220. package/lib/cjs/RenderTexture.d.ts +70 -70
  221. package/lib/cjs/RenderTexture.js +59 -59
  222. package/lib/cjs/RenderTexture.js.map +1 -1
  223. package/lib/cjs/RgbColor.d.ts +47 -47
  224. package/lib/cjs/RgbColor.js +77 -77
  225. package/lib/cjs/RgbColor.js.map +1 -1
  226. package/lib/cjs/RpcInterface.d.ts +33 -33
  227. package/lib/cjs/RpcInterface.js +137 -137
  228. package/lib/cjs/RpcInterface.js.map +1 -1
  229. package/lib/cjs/RpcManager.d.ts +40 -40
  230. package/lib/cjs/RpcManager.js +55 -55
  231. package/lib/cjs/RpcManager.js.map +1 -1
  232. package/lib/cjs/SessionProps.d.ts +16 -16
  233. package/lib/cjs/SessionProps.js +9 -9
  234. package/lib/cjs/SessionProps.js.map +1 -1
  235. package/lib/cjs/SkyBox.d.ts +215 -215
  236. package/lib/cjs/SkyBox.js +210 -210
  237. package/lib/cjs/SkyBox.js.map +1 -1
  238. package/lib/cjs/Snapping.d.ts +49 -49
  239. package/lib/cjs/Snapping.js +9 -9
  240. package/lib/cjs/Snapping.js.map +1 -1
  241. package/lib/cjs/SolarCalculate.d.ts +27 -27
  242. package/lib/cjs/SolarCalculate.js +211 -211
  243. package/lib/cjs/SolarCalculate.js.map +1 -1
  244. package/lib/cjs/SolarShadows.d.ts +35 -35
  245. package/lib/cjs/SolarShadows.js +62 -62
  246. package/lib/cjs/SolarShadows.js.map +1 -1
  247. package/lib/cjs/SpatialClassification.d.ts +208 -208
  248. package/lib/cjs/SpatialClassification.js +340 -340
  249. package/lib/cjs/SpatialClassification.js.map +1 -1
  250. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  251. package/lib/cjs/SubCategoryAppearance.js +96 -96
  252. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  253. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  254. package/lib/cjs/SubCategoryOverride.js +104 -104
  255. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  256. package/lib/cjs/TerrainSettings.d.ts +82 -82
  257. package/lib/cjs/TerrainSettings.js +102 -102
  258. package/lib/cjs/TerrainSettings.js.map +1 -1
  259. package/lib/cjs/TextureMapping.d.ts +118 -118
  260. package/lib/cjs/TextureMapping.js +174 -174
  261. package/lib/cjs/TextureMapping.js.map +1 -1
  262. package/lib/cjs/TextureProps.d.ts +65 -65
  263. package/lib/cjs/TextureProps.js +28 -28
  264. package/lib/cjs/TextureProps.js.map +1 -1
  265. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  266. package/lib/cjs/ThematicDisplay.js +344 -344
  267. package/lib/cjs/ThematicDisplay.js.map +1 -1
  268. package/lib/cjs/Thumbnail.d.ts +26 -26
  269. package/lib/cjs/Thumbnail.js +9 -9
  270. package/lib/cjs/Thumbnail.js.map +1 -1
  271. package/lib/cjs/TileProps.d.ts +82 -82
  272. package/lib/cjs/TileProps.js +29 -29
  273. package/lib/cjs/TileProps.js.map +1 -1
  274. package/lib/cjs/Tween.d.ts +191 -191
  275. package/lib/cjs/Tween.js +570 -570
  276. package/lib/cjs/Tween.js.map +1 -1
  277. package/lib/cjs/TxnAction.d.ts +21 -21
  278. package/lib/cjs/TxnAction.js +29 -29
  279. package/lib/cjs/TxnAction.js.map +1 -1
  280. package/lib/cjs/ViewDetails.d.ts +125 -125
  281. package/lib/cjs/ViewDetails.js +166 -166
  282. package/lib/cjs/ViewDetails.js.map +1 -1
  283. package/lib/cjs/ViewFlags.d.ts +287 -287
  284. package/lib/cjs/ViewFlags.js +368 -368
  285. package/lib/cjs/ViewFlags.js.map +1 -1
  286. package/lib/cjs/ViewProps.d.ts +205 -205
  287. package/lib/cjs/ViewProps.js +9 -9
  288. package/lib/cjs/ViewProps.js.map +1 -1
  289. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  290. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  291. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  292. package/lib/cjs/core-common.d.ts +244 -244
  293. package/lib/cjs/core-common.js +260 -260
  294. package/lib/cjs/core-common.js.map +1 -1
  295. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  296. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  297. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  298. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  299. package/lib/cjs/domains/GenericElementProps.js +9 -9
  300. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  301. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  302. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  303. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  304. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  305. package/lib/cjs/geometry/AreaPattern.js +204 -204
  306. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  307. package/lib/cjs/geometry/BoundingSphere.d.ts +27 -27
  308. package/lib/cjs/geometry/BoundingSphere.js +44 -44
  309. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  310. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  311. package/lib/cjs/geometry/Cartographic.js +345 -345
  312. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  313. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  314. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  315. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  316. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  317. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  318. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  319. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  320. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  321. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  322. package/lib/cjs/geometry/FrustumPlanes.d.ts +81 -81
  323. package/lib/cjs/geometry/FrustumPlanes.js +193 -193
  324. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  325. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  326. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  327. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  328. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  329. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  330. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  331. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  332. package/lib/cjs/geometry/GeometryStream.js +469 -469
  333. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  334. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  335. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  336. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  337. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  338. package/lib/cjs/geometry/LineStyle.js +129 -129
  339. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  340. package/lib/cjs/geometry/Placement.d.ts +95 -95
  341. package/lib/cjs/geometry/Placement.js +131 -131
  342. package/lib/cjs/geometry/Placement.js.map +1 -1
  343. package/lib/cjs/geometry/Projection.d.ts +251 -251
  344. package/lib/cjs/geometry/Projection.js +198 -198
  345. package/lib/cjs/geometry/Projection.js.map +1 -1
  346. package/lib/cjs/geometry/TextString.d.ts +55 -55
  347. package/lib/cjs/geometry/TextString.js +65 -65
  348. package/lib/cjs/geometry/TextString.js.map +1 -1
  349. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  350. package/lib/cjs/ipc/IpcSession.js +27 -27
  351. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  352. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  353. package/lib/cjs/ipc/IpcSocket.js +16 -16
  354. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  355. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  356. package/lib/cjs/ipc/IpcWebSocket.js +151 -151
  357. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  358. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  359. package/lib/cjs/ipc/IpcWebSocketTransport.js +160 -160
  360. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  361. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  362. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  363. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  364. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +99 -99
  365. package/lib/cjs/rpc/IModelReadRpcInterface.js +122 -122
  366. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  367. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  368. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  369. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  370. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  371. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  372. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  373. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  374. package/lib/cjs/rpc/TestRpcManager.js +39 -39
  375. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  376. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  377. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  378. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  379. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  380. package/lib/cjs/rpc/core/RpcConfiguration.js +191 -191
  381. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  382. package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -85
  383. package/lib/cjs/rpc/core/RpcConstants.js +103 -103
  384. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  385. package/lib/cjs/rpc/core/RpcControl.d.ts +54 -54
  386. package/lib/cjs/rpc/core/RpcControl.js +144 -144
  387. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  388. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  389. package/lib/cjs/rpc/core/RpcInvocation.js +258 -258
  390. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  391. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +35 -35
  392. package/lib/cjs/rpc/core/RpcMarshaling.js +156 -156
  393. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  394. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  395. package/lib/cjs/rpc/core/RpcOperation.js +133 -133
  396. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  397. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  398. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
  399. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  400. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  401. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  402. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  403. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  404. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  405. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  406. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  407. package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
  408. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  409. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  410. package/lib/cjs/rpc/core/RpcRequest.js +477 -477
  411. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  412. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  413. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  414. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  415. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  416. package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
  417. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  418. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  419. package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
  420. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  421. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  422. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  423. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  424. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  425. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -142
  426. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  427. package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
  428. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  429. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  430. package/lib/cjs/rpc/web/RpcMultipart.d.ts +35 -35
  431. package/lib/cjs/rpc/web/RpcMultipart.js +50 -50
  432. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  433. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +28 -28
  434. package/lib/cjs/rpc/web/WebAppRpcLogging.js +139 -139
  435. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  436. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +87 -87
  437. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  438. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  439. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +67 -67
  440. package/lib/cjs/rpc/web/WebAppRpcRequest.js +239 -239
  441. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  442. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  443. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +372 -372
  444. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  445. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  446. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  447. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  448. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  449. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  450. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  451. package/lib/cjs/tile/ElementGraphics.d.ts +145 -145
  452. package/lib/cjs/tile/ElementGraphics.js +9 -9
  453. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  454. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  455. package/lib/cjs/tile/GltfTileIO.js +109 -109
  456. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  457. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  458. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  459. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  460. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  461. package/lib/cjs/tile/IModelTileIO.js +95 -95
  462. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  463. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  464. package/lib/cjs/tile/PntsTileIO.js +26 -26
  465. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  466. package/lib/cjs/tile/TileIO.d.ts +66 -66
  467. package/lib/cjs/tile/TileIO.js +118 -118
  468. package/lib/cjs/tile/TileIO.js.map +1 -1
  469. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  470. package/lib/cjs/tile/TileMetadata.js +676 -676
  471. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  472. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  473. package/lib/esm/AmbientOcclusion.js +52 -52
  474. package/lib/esm/AmbientOcclusion.js.map +1 -1
  475. package/lib/esm/AnalysisStyle.d.ts +134 -134
  476. package/lib/esm/AnalysisStyle.js +159 -159
  477. package/lib/esm/AnalysisStyle.js.map +1 -1
  478. package/lib/esm/AuthorizationClient.d.ts +17 -17
  479. package/lib/esm/AuthorizationClient.js +8 -8
  480. package/lib/esm/AuthorizationClient.js.map +1 -1
  481. package/lib/esm/BackendTypes.d.ts +12 -12
  482. package/lib/esm/BackendTypes.js +8 -8
  483. package/lib/esm/BackendTypes.js.map +1 -1
  484. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  485. package/lib/esm/BackgroundMapProvider.js +64 -64
  486. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  487. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  488. package/lib/esm/BackgroundMapSettings.js +152 -152
  489. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  490. package/lib/esm/Base64EncodedString.d.ts +32 -32
  491. package/lib/esm/Base64EncodedString.js +63 -63
  492. package/lib/esm/Base64EncodedString.js.map +1 -1
  493. package/lib/esm/BlobReader.d.ts +31 -31
  494. package/lib/esm/BlobReader.js +79 -79
  495. package/lib/esm/BlobReader.js.map +1 -1
  496. package/lib/esm/BriefcaseTypes.d.ts +189 -189
  497. package/lib/esm/BriefcaseTypes.js +92 -92
  498. package/lib/esm/BriefcaseTypes.js.map +1 -1
  499. package/lib/esm/Camera.d.ts +42 -42
  500. package/lib/esm/Camera.js +58 -58
  501. package/lib/esm/Camera.js.map +1 -1
  502. package/lib/esm/ChangedElements.d.ts +85 -85
  503. package/lib/esm/ChangedElements.js +20 -20
  504. package/lib/esm/ChangedElements.js.map +1 -1
  505. package/lib/esm/ChangedEntities.d.ts +45 -45
  506. package/lib/esm/ChangedEntities.js +8 -8
  507. package/lib/esm/ChangedEntities.js.map +1 -1
  508. package/lib/esm/ChangesetProps.d.ts +98 -98
  509. package/lib/esm/ChangesetProps.js +19 -19
  510. package/lib/esm/ChangesetProps.js.map +1 -1
  511. package/lib/esm/ClipStyle.d.ts +89 -89
  512. package/lib/esm/ClipStyle.js +118 -118
  513. package/lib/esm/ClipStyle.js.map +1 -1
  514. package/lib/esm/CloudStorage.d.ts +62 -62
  515. package/lib/esm/CloudStorage.js +109 -109
  516. package/lib/esm/CloudStorage.js.map +1 -1
  517. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  518. package/lib/esm/CloudStorageTileCache.js +62 -62
  519. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  520. package/lib/esm/Code.d.ts +277 -269
  521. package/lib/esm/Code.d.ts.map +1 -1
  522. package/lib/esm/Code.js +264 -263
  523. package/lib/esm/Code.js.map +1 -1
  524. package/lib/esm/ColorByName.d.ts +161 -161
  525. package/lib/esm/ColorByName.js +166 -166
  526. package/lib/esm/ColorByName.js.map +1 -1
  527. package/lib/esm/ColorDef.d.ts +208 -208
  528. package/lib/esm/ColorDef.js +567 -567
  529. package/lib/esm/ColorDef.js.map +1 -1
  530. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  531. package/lib/esm/CommonLoggerCategory.js +23 -23
  532. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  533. package/lib/esm/ConcurrentQuery.d.ts +421 -421
  534. package/lib/esm/ConcurrentQuery.js +545 -545
  535. package/lib/esm/ConcurrentQuery.js.map +1 -1
  536. package/lib/esm/ContextRealityModel.d.ts +276 -276
  537. package/lib/esm/ContextRealityModel.js +353 -353
  538. package/lib/esm/ContextRealityModel.js.map +1 -1
  539. package/lib/esm/DisplayStyleSettings.d.ts +584 -584
  540. package/lib/esm/DisplayStyleSettings.js +976 -976
  541. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  542. package/lib/esm/ECSchemaProps.d.ts +39 -39
  543. package/lib/esm/ECSchemaProps.js +8 -8
  544. package/lib/esm/ECSchemaProps.js.map +1 -1
  545. package/lib/esm/ECSqlReader.d.ts +70 -70
  546. package/lib/esm/ECSqlReader.js +275 -275
  547. package/lib/esm/ECSqlReader.js.map +1 -1
  548. package/lib/esm/ECSqlTypes.d.ts +128 -128
  549. package/lib/esm/ECSqlTypes.js +185 -185
  550. package/lib/esm/ECSqlTypes.js.map +1 -1
  551. package/lib/esm/ElementMesh.d.ts +39 -39
  552. package/lib/esm/ElementMesh.js +52 -52
  553. package/lib/esm/ElementMesh.js.map +1 -1
  554. package/lib/esm/ElementProps.d.ts +483 -483
  555. package/lib/esm/ElementProps.js +92 -92
  556. package/lib/esm/ElementProps.js.map +1 -1
  557. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  558. package/lib/esm/EmphasizeElementsProps.js +22 -22
  559. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  560. package/lib/esm/EntityProps.d.ts +177 -177
  561. package/lib/esm/EntityProps.js +108 -108
  562. package/lib/esm/EntityProps.js.map +1 -1
  563. package/lib/esm/EntityReference.d.ts +51 -51
  564. package/lib/esm/EntityReference.js +52 -52
  565. package/lib/esm/EntityReference.js.map +1 -1
  566. package/lib/esm/Environment.d.ts +61 -61
  567. package/lib/esm/Environment.js +69 -69
  568. package/lib/esm/Environment.js.map +1 -1
  569. package/lib/esm/FeatureIndex.d.ts +39 -39
  570. package/lib/esm/FeatureIndex.js +57 -57
  571. package/lib/esm/FeatureIndex.js.map +1 -1
  572. package/lib/esm/FeatureSymbology.d.ts +444 -444
  573. package/lib/esm/FeatureSymbology.js +609 -609
  574. package/lib/esm/FeatureSymbology.js.map +1 -1
  575. package/lib/esm/FeatureTable.d.ts +141 -141
  576. package/lib/esm/FeatureTable.js +272 -272
  577. package/lib/esm/FeatureTable.js.map +1 -1
  578. package/lib/esm/Fonts.d.ts +51 -51
  579. package/lib/esm/Fonts.js +49 -49
  580. package/lib/esm/Fonts.js.map +1 -1
  581. package/lib/esm/Frustum.d.ts +114 -114
  582. package/lib/esm/Frustum.js +288 -288
  583. package/lib/esm/Frustum.js.map +1 -1
  584. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  585. package/lib/esm/GeoCoordinateServices.js +76 -76
  586. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  587. package/lib/esm/GeometryContainment.d.ts +28 -28
  588. package/lib/esm/GeometryContainment.js +8 -8
  589. package/lib/esm/GeometryContainment.js.map +1 -1
  590. package/lib/esm/GeometryParams.d.ts +130 -130
  591. package/lib/esm/GeometryParams.js +170 -170
  592. package/lib/esm/GeometryParams.js.map +1 -1
  593. package/lib/esm/GeometrySummary.d.ts +45 -45
  594. package/lib/esm/GeometrySummary.js +20 -20
  595. package/lib/esm/GeometrySummary.js.map +1 -1
  596. package/lib/esm/Gradient.d.ts +139 -139
  597. package/lib/esm/Gradient.js +452 -452
  598. package/lib/esm/Gradient.js.map +1 -1
  599. package/lib/esm/GraphicParams.d.ts +58 -58
  600. package/lib/esm/GraphicParams.js +81 -81
  601. package/lib/esm/GraphicParams.js.map +1 -1
  602. package/lib/esm/GroundPlane.d.ts +52 -52
  603. package/lib/esm/GroundPlane.js +60 -60
  604. package/lib/esm/GroundPlane.js.map +1 -1
  605. package/lib/esm/HSLColor.d.ts +20 -20
  606. package/lib/esm/HSLColor.js +28 -28
  607. package/lib/esm/HSLColor.js.map +1 -1
  608. package/lib/esm/HSVColor.d.ts +30 -30
  609. package/lib/esm/HSVColor.js +55 -55
  610. package/lib/esm/HSVColor.js.map +1 -1
  611. package/lib/esm/HiddenLine.d.ts +97 -97
  612. package/lib/esm/HiddenLine.js +159 -159
  613. package/lib/esm/HiddenLine.js.map +1 -1
  614. package/lib/esm/Hilite.d.ts +50 -50
  615. package/lib/esm/Hilite.js +61 -61
  616. package/lib/esm/Hilite.js.map +1 -1
  617. package/lib/esm/IModel.d.ts +359 -359
  618. package/lib/esm/IModel.js +342 -342
  619. package/lib/esm/IModel.js.map +1 -1
  620. package/lib/esm/IModelError.d.ts +42 -42
  621. package/lib/esm/IModelError.js +56 -56
  622. package/lib/esm/IModelError.js.map +1 -1
  623. package/lib/esm/IModelVersion.d.ts +68 -68
  624. package/lib/esm/IModelVersion.js +75 -75
  625. package/lib/esm/IModelVersion.js.map +1 -1
  626. package/lib/esm/Image.d.ts +86 -86
  627. package/lib/esm/Image.js +120 -120
  628. package/lib/esm/Image.js.map +1 -1
  629. package/lib/esm/IpcAppProps.d.ts +141 -141
  630. package/lib/esm/IpcAppProps.js +19 -19
  631. package/lib/esm/IpcAppProps.js.map +1 -1
  632. package/lib/esm/LightSettings.d.ts +224 -224
  633. package/lib/esm/LightSettings.js +301 -301
  634. package/lib/esm/LightSettings.js.map +1 -1
  635. package/lib/esm/LinePixels.d.ts +34 -34
  636. package/lib/esm/LinePixels.js +39 -39
  637. package/lib/esm/LinePixels.js.map +1 -1
  638. package/lib/esm/Localization.d.ts +113 -113
  639. package/lib/esm/Localization.js +29 -29
  640. package/lib/esm/Localization.js.map +1 -1
  641. package/lib/esm/MapImagerySettings.d.ts +62 -62
  642. package/lib/esm/MapImagerySettings.js +76 -76
  643. package/lib/esm/MapImagerySettings.js.map +1 -1
  644. package/lib/esm/MapLayerSettings.d.ts +272 -272
  645. package/lib/esm/MapLayerSettings.js +403 -403
  646. package/lib/esm/MapLayerSettings.js.map +1 -1
  647. package/lib/esm/MassProperties.d.ts +64 -64
  648. package/lib/esm/MassProperties.js +20 -20
  649. package/lib/esm/MassProperties.js.map +1 -1
  650. package/lib/esm/MaterialProps.d.ts +153 -153
  651. package/lib/esm/MaterialProps.js +32 -32
  652. package/lib/esm/MaterialProps.js.map +1 -1
  653. package/lib/esm/ModelClipGroup.d.ts +67 -67
  654. package/lib/esm/ModelClipGroup.js +93 -93
  655. package/lib/esm/ModelClipGroup.js.map +1 -1
  656. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  657. package/lib/esm/ModelGeometryChanges.js +80 -80
  658. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  659. package/lib/esm/ModelProps.d.ts +67 -67
  660. package/lib/esm/ModelProps.js +8 -8
  661. package/lib/esm/ModelProps.js.map +1 -1
  662. package/lib/esm/NativeAppProps.d.ts +122 -122
  663. package/lib/esm/NativeAppProps.js +27 -27
  664. package/lib/esm/NativeAppProps.js.map +1 -1
  665. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  666. package/lib/esm/OctEncodedNormal.js +93 -93
  667. package/lib/esm/OctEncodedNormal.js.map +1 -1
  668. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  669. package/lib/esm/PlanProjectionSettings.js +59 -59
  670. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  671. package/lib/esm/PlanarClipMask.d.ts +177 -177
  672. package/lib/esm/PlanarClipMask.js +132 -132
  673. package/lib/esm/PlanarClipMask.js.map +1 -1
  674. package/lib/esm/QPoint.d.ts +479 -479
  675. package/lib/esm/QPoint.js +815 -815
  676. package/lib/esm/QPoint.js.map +1 -1
  677. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  678. package/lib/esm/RealityDataAccessProps.js +16 -16
  679. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  680. package/lib/esm/RealityModelDisplaySettings.d.ts +183 -183
  681. package/lib/esm/RealityModelDisplaySettings.js +137 -137
  682. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  683. package/lib/esm/Render.d.ts +89 -89
  684. package/lib/esm/Render.js +165 -165
  685. package/lib/esm/Render.js.map +1 -1
  686. package/lib/esm/RenderMaterial.d.ts +58 -58
  687. package/lib/esm/RenderMaterial.js +72 -72
  688. package/lib/esm/RenderMaterial.js.map +1 -1
  689. package/lib/esm/RenderSchedule.d.ts +543 -543
  690. package/lib/esm/RenderSchedule.js +999 -999
  691. package/lib/esm/RenderTexture.d.ts +70 -70
  692. package/lib/esm/RenderTexture.js +55 -55
  693. package/lib/esm/RenderTexture.js.map +1 -1
  694. package/lib/esm/RgbColor.d.ts +47 -47
  695. package/lib/esm/RgbColor.js +73 -73
  696. package/lib/esm/RgbColor.js.map +1 -1
  697. package/lib/esm/RpcInterface.d.ts +33 -33
  698. package/lib/esm/RpcInterface.js +133 -133
  699. package/lib/esm/RpcInterface.js.map +1 -1
  700. package/lib/esm/RpcManager.d.ts +40 -40
  701. package/lib/esm/RpcManager.js +51 -51
  702. package/lib/esm/RpcManager.js.map +1 -1
  703. package/lib/esm/SessionProps.d.ts +16 -16
  704. package/lib/esm/SessionProps.js +8 -8
  705. package/lib/esm/SessionProps.js.map +1 -1
  706. package/lib/esm/SkyBox.d.ts +215 -215
  707. package/lib/esm/SkyBox.js +203 -203
  708. package/lib/esm/SkyBox.js.map +1 -1
  709. package/lib/esm/Snapping.d.ts +49 -49
  710. package/lib/esm/Snapping.js +8 -8
  711. package/lib/esm/Snapping.js.map +1 -1
  712. package/lib/esm/SolarCalculate.d.ts +27 -27
  713. package/lib/esm/SolarCalculate.js +204 -204
  714. package/lib/esm/SolarCalculate.js.map +1 -1
  715. package/lib/esm/SolarShadows.d.ts +35 -35
  716. package/lib/esm/SolarShadows.js +58 -58
  717. package/lib/esm/SolarShadows.js.map +1 -1
  718. package/lib/esm/SpatialClassification.d.ts +208 -208
  719. package/lib/esm/SpatialClassification.js +334 -334
  720. package/lib/esm/SpatialClassification.js.map +1 -1
  721. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  722. package/lib/esm/SubCategoryAppearance.js +92 -92
  723. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  724. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  725. package/lib/esm/SubCategoryOverride.js +100 -100
  726. package/lib/esm/SubCategoryOverride.js.map +1 -1
  727. package/lib/esm/TerrainSettings.d.ts +82 -82
  728. package/lib/esm/TerrainSettings.js +98 -98
  729. package/lib/esm/TerrainSettings.js.map +1 -1
  730. package/lib/esm/TextureMapping.d.ts +118 -118
  731. package/lib/esm/TextureMapping.js +170 -170
  732. package/lib/esm/TextureMapping.js.map +1 -1
  733. package/lib/esm/TextureProps.d.ts +65 -65
  734. package/lib/esm/TextureProps.js +25 -25
  735. package/lib/esm/TextureProps.js.map +1 -1
  736. package/lib/esm/ThematicDisplay.d.ts +230 -230
  737. package/lib/esm/ThematicDisplay.js +337 -337
  738. package/lib/esm/ThematicDisplay.js.map +1 -1
  739. package/lib/esm/Thumbnail.d.ts +26 -26
  740. package/lib/esm/Thumbnail.js +8 -8
  741. package/lib/esm/Thumbnail.js.map +1 -1
  742. package/lib/esm/TileProps.d.ts +82 -82
  743. package/lib/esm/TileProps.js +25 -25
  744. package/lib/esm/TileProps.js.map +1 -1
  745. package/lib/esm/Tween.d.ts +191 -191
  746. package/lib/esm/Tween.js +565 -565
  747. package/lib/esm/Tween.js.map +1 -1
  748. package/lib/esm/TxnAction.d.ts +21 -21
  749. package/lib/esm/TxnAction.js +26 -26
  750. package/lib/esm/TxnAction.js.map +1 -1
  751. package/lib/esm/ViewDetails.d.ts +125 -125
  752. package/lib/esm/ViewDetails.js +161 -161
  753. package/lib/esm/ViewDetails.js.map +1 -1
  754. package/lib/esm/ViewFlags.d.ts +287 -287
  755. package/lib/esm/ViewFlags.js +364 -364
  756. package/lib/esm/ViewFlags.js.map +1 -1
  757. package/lib/esm/ViewProps.d.ts +205 -205
  758. package/lib/esm/ViewProps.js +8 -8
  759. package/lib/esm/ViewProps.js.map +1 -1
  760. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  761. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  762. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  763. package/lib/esm/core-common.d.ts +244 -244
  764. package/lib/esm/core-common.js +248 -248
  765. package/lib/esm/core-common.js.map +1 -1
  766. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  767. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  768. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  769. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  770. package/lib/esm/domains/GenericElementProps.js +8 -8
  771. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  772. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  773. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  774. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  775. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  776. package/lib/esm/geometry/AreaPattern.js +201 -201
  777. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  778. package/lib/esm/geometry/BoundingSphere.d.ts +27 -27
  779. package/lib/esm/geometry/BoundingSphere.js +40 -40
  780. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  781. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  782. package/lib/esm/geometry/Cartographic.js +340 -340
  783. package/lib/esm/geometry/Cartographic.js.map +1 -1
  784. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  785. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  786. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  787. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  788. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  789. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  790. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  791. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  792. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  793. package/lib/esm/geometry/FrustumPlanes.d.ts +81 -81
  794. package/lib/esm/geometry/FrustumPlanes.js +189 -189
  795. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  796. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  797. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  798. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  799. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  800. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  801. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  802. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  803. package/lib/esm/geometry/GeometryStream.js +464 -464
  804. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  805. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  806. package/lib/esm/geometry/ImageGraphic.js +93 -93
  807. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  808. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  809. package/lib/esm/geometry/LineStyle.js +126 -126
  810. package/lib/esm/geometry/LineStyle.js.map +1 -1
  811. package/lib/esm/geometry/Placement.d.ts +95 -95
  812. package/lib/esm/geometry/Placement.js +126 -126
  813. package/lib/esm/geometry/Placement.js.map +1 -1
  814. package/lib/esm/geometry/Projection.d.ts +251 -251
  815. package/lib/esm/geometry/Projection.js +192 -192
  816. package/lib/esm/geometry/Projection.js.map +1 -1
  817. package/lib/esm/geometry/TextString.d.ts +55 -55
  818. package/lib/esm/geometry/TextString.js +61 -61
  819. package/lib/esm/geometry/TextString.js.map +1 -1
  820. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  821. package/lib/esm/ipc/IpcSession.js +23 -23
  822. package/lib/esm/ipc/IpcSession.js.map +1 -1
  823. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  824. package/lib/esm/ipc/IpcSocket.js +12 -12
  825. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  826. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  827. package/lib/esm/ipc/IpcWebSocket.js +145 -145
  828. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  829. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  830. package/lib/esm/ipc/IpcWebSocketTransport.js +156 -156
  831. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  832. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  833. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  834. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  835. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +99 -99
  836. package/lib/esm/rpc/IModelReadRpcInterface.js +117 -117
  837. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  838. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  839. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  840. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  841. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  842. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  843. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  844. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  845. package/lib/esm/rpc/TestRpcManager.js +35 -35
  846. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  847. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  848. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  849. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  850. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  851. package/lib/esm/rpc/core/RpcConfiguration.js +184 -184
  852. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  853. package/lib/esm/rpc/core/RpcConstants.d.ts +85 -85
  854. package/lib/esm/rpc/core/RpcConstants.js +100 -100
  855. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  856. package/lib/esm/rpc/core/RpcControl.d.ts +54 -54
  857. package/lib/esm/rpc/core/RpcControl.js +137 -137
  858. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  859. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  860. package/lib/esm/rpc/core/RpcInvocation.js +254 -254
  861. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  862. package/lib/esm/rpc/core/RpcMarshaling.d.ts +35 -35
  863. package/lib/esm/rpc/core/RpcMarshaling.js +152 -152
  864. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  865. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  866. package/lib/esm/rpc/core/RpcOperation.js +128 -128
  867. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  868. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  869. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -90
  870. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  871. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  872. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  873. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  874. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  875. package/lib/esm/rpc/core/RpcPush.js +119 -119
  876. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  877. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  878. package/lib/esm/rpc/core/RpcRegistry.js +194 -194
  879. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  880. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  881. package/lib/esm/rpc/core/RpcRequest.js +472 -472
  882. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  883. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  884. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  885. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  886. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  887. package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
  888. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  889. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  890. package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
  891. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  892. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  893. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  894. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  895. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  896. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -138
  897. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  898. package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
  899. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  900. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  901. package/lib/esm/rpc/web/RpcMultipart.d.ts +35 -35
  902. package/lib/esm/rpc/web/RpcMultipart.js +46 -46
  903. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  904. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +28 -28
  905. package/lib/esm/rpc/web/WebAppRpcLogging.js +135 -135
  906. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  907. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +87 -87
  908. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  909. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  910. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +67 -67
  911. package/lib/esm/rpc/web/WebAppRpcRequest.js +235 -235
  912. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  913. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  914. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +368 -368
  915. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  916. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  917. package/lib/esm/tile/B3dmTileIO.js +62 -62
  918. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  919. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  920. package/lib/esm/tile/CompositeTileIO.js +22 -22
  921. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  922. package/lib/esm/tile/ElementGraphics.d.ts +145 -145
  923. package/lib/esm/tile/ElementGraphics.js +8 -8
  924. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  925. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  926. package/lib/esm/tile/GltfTileIO.js +105 -105
  927. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  928. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  929. package/lib/esm/tile/I3dmTileIO.js +36 -36
  930. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  931. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  932. package/lib/esm/tile/IModelTileIO.js +90 -90
  933. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  934. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  935. package/lib/esm/tile/PntsTileIO.js +22 -22
  936. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  937. package/lib/esm/tile/TileIO.d.ts +66 -66
  938. package/lib/esm/tile/TileIO.js +110 -110
  939. package/lib/esm/tile/TileIO.js.map +1 -1
  940. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  941. package/lib/esm/tile/TileMetadata.js +661 -661
  942. package/lib/esm/tile/TileMetadata.js.map +1 -1
  943. package/package.json +7 -7
@@ -1,82 +1,82 @@
1
- /** @packageDocumentation
2
- * @module Geometry
3
- */
4
- import { ClipPlane, Point3d, Vector3d } from "@itwin/core-geometry";
5
- import { Frustum } from "../Frustum";
6
- import { BoundingSphere } from "./BoundingSphere";
7
- /** Represents a the planes of a [[Frustum]] for testing containment and intersection.
8
- * A valid frustum produces six planes. A degenerate frustum produces zero planes.
9
- * @public
10
- * @extensions
11
- */
12
- export declare class FrustumPlanes {
13
- private _planes;
14
- private constructor();
15
- /** Compute the six planes of the specified frustum.
16
- * If the frustum is degenerate - that is, its points do not represent a truncated pyramid - then the returned `FrustumPlanes` will contain zero planes.
17
- * @see [[isValid]] to test this condition.
18
- */
19
- static fromFrustum(frustum: Frustum): FrustumPlanes;
20
- /** Create an empty set of frustum planes. [[isValid]] will be `true`. This can be useful when you want to create a `FrustumPlanes` object and initialize it later via [[init]] -
21
- * for example, if you intend to use the same object repeatedly with different [[Frustum]]s.
22
- */
23
- static createEmpty(): FrustumPlanes;
24
- /** Returns true if [[planes]] consists of six planes. This may return `false` if a degenerate [[Frustum]] was supplied to [[fromFrustum]], or if this object was created
25
- * via [[createEmpty]] - in either case, [[planes]] will be an empty array.
26
- */
27
- get isValid(): boolean;
28
- /** Obtain the list of planes defining the frustum. If [[isValid]] is `true`, it will have a length of six, with the planes ordered as
29
- * right, left, top, bottom, back, front. Otherwise, it will be empty.
30
- */
31
- get planes(): ClipPlane[];
32
- /** Recompute the planes from the specified frustum.
33
- * @returns true upon success, or false if the input frustum was degenerate, in which case [[isValid]] will be `false`.
34
- */
35
- init(frustum: Frustum): boolean;
36
- /** Compute to what degree a [[Frustum]] is contained with these frustum planes.
37
- * @param box The frustum to test for containment.
38
- * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
39
- * @returns the degree to which `box` is contained within the clipping planes.
40
- */
41
- computeFrustumContainment(box: Frustum, sphere?: BoundingSphere): FrustumPlanes.Containment;
42
- /** Determines whether a [[Frustum]] intersects with or is fully contained within these frustum planes.
43
- * @param box The frustum to test for containment.
44
- * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
45
- * @returns true if `box` is not entirely outside of the clipping planes.
46
- */
47
- intersectsFrustum(box: Frustum, sphere?: BoundingSphere): boolean;
48
- /** Determines whether a point is contained within these frustum planes.
49
- * @param point The point to test for containment.
50
- * @param tolerance The maximum distance from the interior of the frustum planes that will still be considered "contained".
51
- * @returns true if `point` is no further than `tolerance` meters outside of the clipping planes.
52
- */
53
- containsPoint(point: Point3d, tolerance?: number): boolean;
54
- /** Compute the degree to which a set of points is contained within these frustum planes.
55
- * @param points The points to test for containment.
56
- * @param sphere An optional spherical bounding volume fully containing all of the points. If supplied, this can reduce the amount of computation required.
57
- * @param tolerance The maximum distance from the interior of the frustum planes a point must be to be considered "contained".
58
- * @returns the degree to which all of the points are contained within the clipping planes.
59
- */
60
- computeContainment(points: Point3d[], sphere?: BoundingSphere, tolerance?: number): FrustumPlanes.Containment;
61
- /** Computes whether a ray intersects these clipping planes.
62
- * @param origin The origin of the ray.
63
- * @param direction The direction of the ray.
64
- * @returns true if the ray extending from `origin` in the specified `direction` intersects at least one of the clipping planes.
65
- */
66
- intersectsRay(origin: Point3d, direction: Vector3d): boolean;
67
- }
68
- /** @public @extensions */
69
- export declare namespace FrustumPlanes {
70
- /** Describes the degree to which an object is contained within the planes of a [[Frustum]].
71
- * @see [[FrustumPlanes.computeContainment]], for example.
72
- */
73
- enum Containment {
74
- /** The object is entirely outside of the frustum, intersecting none of its planes. */
75
- Outside = 0,
76
- /** The object intersects at least one of the frustum planes. placing it partially inside of the frustum. */
77
- Partial = 1,
78
- /** The object is entirely inside of the frustum, intersecting none of its planes. */
79
- Inside = 2
80
- }
81
- }
1
+ /** @packageDocumentation
2
+ * @module Geometry
3
+ */
4
+ import { ClipPlane, Point3d, Vector3d } from "@itwin/core-geometry";
5
+ import { Frustum } from "../Frustum";
6
+ import { BoundingSphere } from "./BoundingSphere";
7
+ /** Represents a the planes of a [[Frustum]] for testing containment and intersection.
8
+ * A valid frustum produces six planes. A degenerate frustum produces zero planes.
9
+ * @public
10
+ * @extensions
11
+ */
12
+ export declare class FrustumPlanes {
13
+ private _planes;
14
+ private constructor();
15
+ /** Compute the six planes of the specified frustum.
16
+ * If the frustum is degenerate - that is, its points do not represent a truncated pyramid - then the returned `FrustumPlanes` will contain zero planes.
17
+ * @see [[isValid]] to test this condition.
18
+ */
19
+ static fromFrustum(frustum: Frustum): FrustumPlanes;
20
+ /** Create an empty set of frustum planes. [[isValid]] will be `true`. This can be useful when you want to create a `FrustumPlanes` object and initialize it later via [[init]] -
21
+ * for example, if you intend to use the same object repeatedly with different [[Frustum]]s.
22
+ */
23
+ static createEmpty(): FrustumPlanes;
24
+ /** Returns true if [[planes]] consists of six planes. This may return `false` if a degenerate [[Frustum]] was supplied to [[fromFrustum]], or if this object was created
25
+ * via [[createEmpty]] - in either case, [[planes]] will be an empty array.
26
+ */
27
+ get isValid(): boolean;
28
+ /** Obtain the list of planes defining the frustum. If [[isValid]] is `true`, it will have a length of six, with the planes ordered as
29
+ * right, left, top, bottom, back, front. Otherwise, it will be empty.
30
+ */
31
+ get planes(): ClipPlane[];
32
+ /** Recompute the planes from the specified frustum.
33
+ * @returns true upon success, or false if the input frustum was degenerate, in which case [[isValid]] will be `false`.
34
+ */
35
+ init(frustum: Frustum): boolean;
36
+ /** Compute to what degree a [[Frustum]] is contained with these frustum planes.
37
+ * @param box The frustum to test for containment.
38
+ * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
39
+ * @returns the degree to which `box` is contained within the clipping planes.
40
+ */
41
+ computeFrustumContainment(box: Frustum, sphere?: BoundingSphere): FrustumPlanes.Containment;
42
+ /** Determines whether a [[Frustum]] intersects with or is fully contained within these frustum planes.
43
+ * @param box The frustum to test for containment.
44
+ * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
45
+ * @returns true if `box` is not entirely outside of the clipping planes.
46
+ */
47
+ intersectsFrustum(box: Frustum, sphere?: BoundingSphere): boolean;
48
+ /** Determines whether a point is contained within these frustum planes.
49
+ * @param point The point to test for containment.
50
+ * @param tolerance The maximum distance from the interior of the frustum planes that will still be considered "contained".
51
+ * @returns true if `point` is no further than `tolerance` meters outside of the clipping planes.
52
+ */
53
+ containsPoint(point: Point3d, tolerance?: number): boolean;
54
+ /** Compute the degree to which a set of points is contained within these frustum planes.
55
+ * @param points The points to test for containment.
56
+ * @param sphere An optional spherical bounding volume fully containing all of the points. If supplied, this can reduce the amount of computation required.
57
+ * @param tolerance The maximum distance from the interior of the frustum planes a point must be to be considered "contained".
58
+ * @returns the degree to which all of the points are contained within the clipping planes.
59
+ */
60
+ computeContainment(points: Point3d[], sphere?: BoundingSphere, tolerance?: number): FrustumPlanes.Containment;
61
+ /** Computes whether a ray intersects these clipping planes.
62
+ * @param origin The origin of the ray.
63
+ * @param direction The direction of the ray.
64
+ * @returns true if the ray extending from `origin` in the specified `direction` intersects at least one of the clipping planes.
65
+ */
66
+ intersectsRay(origin: Point3d, direction: Vector3d): boolean;
67
+ }
68
+ /** @public @extensions */
69
+ export declare namespace FrustumPlanes {
70
+ /** Describes the degree to which an object is contained within the planes of a [[Frustum]].
71
+ * @see [[FrustumPlanes.computeContainment]], for example.
72
+ */
73
+ enum Containment {
74
+ /** The object is entirely outside of the frustum, intersecting none of its planes. */
75
+ Outside = 0,
76
+ /** The object intersects at least one of the frustum planes. placing it partially inside of the frustum. */
77
+ Partial = 1,
78
+ /** The object is entirely inside of the frustum, intersecting none of its planes. */
79
+ Inside = 2
80
+ }
81
+ }
82
82
  //# sourceMappingURL=FrustumPlanes.d.ts.map
@@ -1,190 +1,190 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Geometry
7
- */
8
- import { assert } from "@itwin/core-bentley";
9
- import { ClipPlane, Vector3d } from "@itwin/core-geometry";
10
- const planePointIndices = [
11
- [1, 3, 5],
12
- [0, 4, 2],
13
- [2, 6, 3],
14
- [0, 1, 4],
15
- [0, 2, 1],
16
- [4, 5, 6], // front
17
- ];
18
- function computeFrustumPlanes(frustum) {
19
- const planes = [];
20
- const points = frustum.points;
21
- const expandPlaneDistance = 1e-6;
22
- for (const indices of planePointIndices) {
23
- const i0 = indices[0], i1 = indices[1], i2 = indices[2];
24
- const normal = Vector3d.createCrossProductToPoints(points[i2], points[i1], points[i0]);
25
- normal.normalizeInPlace();
26
- const plane = ClipPlane.createNormalAndDistance(normal, normal.dotProduct(points[i0]) - expandPlaneDistance);
27
- if (!plane)
28
- return [];
29
- planes.push(plane);
30
- }
31
- assert(planes.length === 6);
32
- return planes;
33
- }
34
- // Scratch variable used by FrustumPlanes.computeContainment.
35
- const planesContainingSphere = [false, false, false, false, false, false];
36
- /** Represents a the planes of a [[Frustum]] for testing containment and intersection.
37
- * A valid frustum produces six planes. A degenerate frustum produces zero planes.
38
- * @public
39
- * @extensions
40
- */
41
- export class FrustumPlanes {
42
- constructor(planes) {
43
- this._planes = planes;
44
- }
45
- /** Compute the six planes of the specified frustum.
46
- * If the frustum is degenerate - that is, its points do not represent a truncated pyramid - then the returned `FrustumPlanes` will contain zero planes.
47
- * @see [[isValid]] to test this condition.
48
- */
49
- static fromFrustum(frustum) {
50
- const planes = computeFrustumPlanes(frustum);
51
- return new FrustumPlanes(planes);
52
- }
53
- /** Create an empty set of frustum planes. [[isValid]] will be `true`. This can be useful when you want to create a `FrustumPlanes` object and initialize it later via [[init]] -
54
- * for example, if you intend to use the same object repeatedly with different [[Frustum]]s.
55
- */
56
- static createEmpty() {
57
- return new FrustumPlanes([]);
58
- }
59
- /** Returns true if [[planes]] consists of six planes. This may return `false` if a degenerate [[Frustum]] was supplied to [[fromFrustum]], or if this object was created
60
- * via [[createEmpty]] - in either case, [[planes]] will be an empty array.
61
- */
62
- get isValid() {
63
- return this._planes.length === 6;
64
- }
65
- /** Obtain the list of planes defining the frustum. If [[isValid]] is `true`, it will have a length of six, with the planes ordered as
66
- * right, left, top, bottom, back, front. Otherwise, it will be empty.
67
- */
68
- get planes() {
69
- return this._planes;
70
- }
71
- /** Recompute the planes from the specified frustum.
72
- * @returns true upon success, or false if the input frustum was degenerate, in which case [[isValid]] will be `false`.
73
- */
74
- init(frustum) {
75
- this._planes = computeFrustumPlanes(frustum);
76
- return this.isValid;
77
- }
78
- /** Compute to what degree a [[Frustum]] is contained with these frustum planes.
79
- * @param box The frustum to test for containment.
80
- * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
81
- * @returns the degree to which `box` is contained within the clipping planes.
82
- */
83
- computeFrustumContainment(box, sphere) {
84
- return this.computeContainment(box.points, sphere);
85
- }
86
- /** Determines whether a [[Frustum]] intersects with or is fully contained within these frustum planes.
87
- * @param box The frustum to test for containment.
88
- * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
89
- * @returns true if `box` is not entirely outside of the clipping planes.
90
- */
91
- intersectsFrustum(box, sphere) {
92
- return FrustumPlanes.Containment.Outside !== this.computeFrustumContainment(box, sphere);
93
- }
94
- /** Determines whether a point is contained within these frustum planes.
95
- * @param point The point to test for containment.
96
- * @param tolerance The maximum distance from the interior of the frustum planes that will still be considered "contained".
97
- * @returns true if `point` is no further than `tolerance` meters outside of the clipping planes.
98
- */
99
- containsPoint(point, tolerance = 1.0e-8) {
100
- return FrustumPlanes.Containment.Outside !== this.computeContainment([point], undefined, tolerance);
101
- }
102
- /** Compute the degree to which a set of points is contained within these frustum planes.
103
- * @param points The points to test for containment.
104
- * @param sphere An optional spherical bounding volume fully containing all of the points. If supplied, this can reduce the amount of computation required.
105
- * @param tolerance The maximum distance from the interior of the frustum planes a point must be to be considered "contained".
106
- * @returns the degree to which all of the points are contained within the clipping planes.
107
- */
108
- computeContainment(points, sphere, tolerance = 1.0e-8) {
109
- assert(this.isValid);
110
- if (undefined === this._planes)
111
- return FrustumPlanes.Containment.Outside;
112
- // Do the cheap test against bounding sphere first.
113
- if (sphere) {
114
- for (let i = 0; i < this._planes.length; i++) {
115
- const plane = this._planes[i];
116
- const centerDistance = plane.altitude(sphere.center);
117
- const tolerancePlusRadius = tolerance + sphere.radius;
118
- if (centerDistance < -tolerancePlusRadius)
119
- return FrustumPlanes.Containment.Outside;
120
- planesContainingSphere[i] = centerDistance > tolerancePlusRadius;
121
- }
122
- }
123
- // Test against points.
124
- let allInside = true;
125
- for (let i = 0; i < this._planes.length; i++) {
126
- if (sphere && planesContainingSphere[i])
127
- continue;
128
- const plane = this._planes[i];
129
- let nOutside = 0;
130
- for (const point of points) {
131
- if (plane.altitude(point) + tolerance < 0) {
132
- ++nOutside;
133
- allInside = false;
134
- }
135
- }
136
- if (nOutside === points.length)
137
- return FrustumPlanes.Containment.Outside;
138
- }
139
- return allInside ? FrustumPlanes.Containment.Inside : FrustumPlanes.Containment.Partial;
140
- }
141
- /** Computes whether a ray intersects these clipping planes.
142
- * @param origin The origin of the ray.
143
- * @param direction The direction of the ray.
144
- * @returns true if the ray extending from `origin` in the specified `direction` intersects at least one of the clipping planes.
145
- */
146
- intersectsRay(origin, direction) {
147
- assert(this.isValid);
148
- if (undefined === this._planes) {
149
- return false;
150
- }
151
- let tFar = 1e37;
152
- let tNear = -tFar;
153
- for (const plane of this._planes) {
154
- const vD = plane.velocity(direction);
155
- const vN = plane.altitude(origin);
156
- if (0.0 === vD) {
157
- // ray is parallel... no need to continue testing if outside halfspace.
158
- if (vN < 0.0) {
159
- return false;
160
- }
161
- }
162
- else {
163
- const rayDistance = -vN / vD;
164
- if (vD < 0.0) {
165
- tFar = Math.min(rayDistance, tFar);
166
- }
167
- else {
168
- tNear = Math.max(rayDistance, tNear);
169
- }
170
- }
171
- }
172
- return tNear <= tFar;
173
- }
174
- }
175
- /** @public @extensions */
176
- (function (FrustumPlanes) {
177
- /** Describes the degree to which an object is contained within the planes of a [[Frustum]].
178
- * @see [[FrustumPlanes.computeContainment]], for example.
179
- */
180
- let Containment;
181
- (function (Containment) {
182
- /** The object is entirely outside of the frustum, intersecting none of its planes. */
183
- Containment[Containment["Outside"] = 0] = "Outside";
184
- /** The object intersects at least one of the frustum planes. placing it partially inside of the frustum. */
185
- Containment[Containment["Partial"] = 1] = "Partial";
186
- /** The object is entirely inside of the frustum, intersecting none of its planes. */
187
- Containment[Containment["Inside"] = 2] = "Inside";
188
- })(Containment = FrustumPlanes.Containment || (FrustumPlanes.Containment = {}));
189
- })(FrustumPlanes || (FrustumPlanes = {}));
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Geometry
7
+ */
8
+ import { assert } from "@itwin/core-bentley";
9
+ import { ClipPlane, Vector3d } from "@itwin/core-geometry";
10
+ const planePointIndices = [
11
+ [1, 3, 5],
12
+ [0, 4, 2],
13
+ [2, 6, 3],
14
+ [0, 1, 4],
15
+ [0, 2, 1],
16
+ [4, 5, 6], // front
17
+ ];
18
+ function computeFrustumPlanes(frustum) {
19
+ const planes = [];
20
+ const points = frustum.points;
21
+ const expandPlaneDistance = 1e-6;
22
+ for (const indices of planePointIndices) {
23
+ const i0 = indices[0], i1 = indices[1], i2 = indices[2];
24
+ const normal = Vector3d.createCrossProductToPoints(points[i2], points[i1], points[i0]);
25
+ normal.normalizeInPlace();
26
+ const plane = ClipPlane.createNormalAndDistance(normal, normal.dotProduct(points[i0]) - expandPlaneDistance);
27
+ if (!plane)
28
+ return [];
29
+ planes.push(plane);
30
+ }
31
+ assert(planes.length === 6);
32
+ return planes;
33
+ }
34
+ // Scratch variable used by FrustumPlanes.computeContainment.
35
+ const planesContainingSphere = [false, false, false, false, false, false];
36
+ /** Represents a the planes of a [[Frustum]] for testing containment and intersection.
37
+ * A valid frustum produces six planes. A degenerate frustum produces zero planes.
38
+ * @public
39
+ * @extensions
40
+ */
41
+ export class FrustumPlanes {
42
+ constructor(planes) {
43
+ this._planes = planes;
44
+ }
45
+ /** Compute the six planes of the specified frustum.
46
+ * If the frustum is degenerate - that is, its points do not represent a truncated pyramid - then the returned `FrustumPlanes` will contain zero planes.
47
+ * @see [[isValid]] to test this condition.
48
+ */
49
+ static fromFrustum(frustum) {
50
+ const planes = computeFrustumPlanes(frustum);
51
+ return new FrustumPlanes(planes);
52
+ }
53
+ /** Create an empty set of frustum planes. [[isValid]] will be `true`. This can be useful when you want to create a `FrustumPlanes` object and initialize it later via [[init]] -
54
+ * for example, if you intend to use the same object repeatedly with different [[Frustum]]s.
55
+ */
56
+ static createEmpty() {
57
+ return new FrustumPlanes([]);
58
+ }
59
+ /** Returns true if [[planes]] consists of six planes. This may return `false` if a degenerate [[Frustum]] was supplied to [[fromFrustum]], or if this object was created
60
+ * via [[createEmpty]] - in either case, [[planes]] will be an empty array.
61
+ */
62
+ get isValid() {
63
+ return this._planes.length === 6;
64
+ }
65
+ /** Obtain the list of planes defining the frustum. If [[isValid]] is `true`, it will have a length of six, with the planes ordered as
66
+ * right, left, top, bottom, back, front. Otherwise, it will be empty.
67
+ */
68
+ get planes() {
69
+ return this._planes;
70
+ }
71
+ /** Recompute the planes from the specified frustum.
72
+ * @returns true upon success, or false if the input frustum was degenerate, in which case [[isValid]] will be `false`.
73
+ */
74
+ init(frustum) {
75
+ this._planes = computeFrustumPlanes(frustum);
76
+ return this.isValid;
77
+ }
78
+ /** Compute to what degree a [[Frustum]] is contained with these frustum planes.
79
+ * @param box The frustum to test for containment.
80
+ * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
81
+ * @returns the degree to which `box` is contained within the clipping planes.
82
+ */
83
+ computeFrustumContainment(box, sphere) {
84
+ return this.computeContainment(box.points, sphere);
85
+ }
86
+ /** Determines whether a [[Frustum]] intersects with or is fully contained within these frustum planes.
87
+ * @param box The frustum to test for containment.
88
+ * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.
89
+ * @returns true if `box` is not entirely outside of the clipping planes.
90
+ */
91
+ intersectsFrustum(box, sphere) {
92
+ return FrustumPlanes.Containment.Outside !== this.computeFrustumContainment(box, sphere);
93
+ }
94
+ /** Determines whether a point is contained within these frustum planes.
95
+ * @param point The point to test for containment.
96
+ * @param tolerance The maximum distance from the interior of the frustum planes that will still be considered "contained".
97
+ * @returns true if `point` is no further than `tolerance` meters outside of the clipping planes.
98
+ */
99
+ containsPoint(point, tolerance = 1.0e-8) {
100
+ return FrustumPlanes.Containment.Outside !== this.computeContainment([point], undefined, tolerance);
101
+ }
102
+ /** Compute the degree to which a set of points is contained within these frustum planes.
103
+ * @param points The points to test for containment.
104
+ * @param sphere An optional spherical bounding volume fully containing all of the points. If supplied, this can reduce the amount of computation required.
105
+ * @param tolerance The maximum distance from the interior of the frustum planes a point must be to be considered "contained".
106
+ * @returns the degree to which all of the points are contained within the clipping planes.
107
+ */
108
+ computeContainment(points, sphere, tolerance = 1.0e-8) {
109
+ assert(this.isValid);
110
+ if (undefined === this._planes)
111
+ return FrustumPlanes.Containment.Outside;
112
+ // Do the cheap test against bounding sphere first.
113
+ if (sphere) {
114
+ for (let i = 0; i < this._planes.length; i++) {
115
+ const plane = this._planes[i];
116
+ const centerDistance = plane.altitude(sphere.center);
117
+ const tolerancePlusRadius = tolerance + sphere.radius;
118
+ if (centerDistance < -tolerancePlusRadius)
119
+ return FrustumPlanes.Containment.Outside;
120
+ planesContainingSphere[i] = centerDistance > tolerancePlusRadius;
121
+ }
122
+ }
123
+ // Test against points.
124
+ let allInside = true;
125
+ for (let i = 0; i < this._planes.length; i++) {
126
+ if (sphere && planesContainingSphere[i])
127
+ continue;
128
+ const plane = this._planes[i];
129
+ let nOutside = 0;
130
+ for (const point of points) {
131
+ if (plane.altitude(point) + tolerance < 0) {
132
+ ++nOutside;
133
+ allInside = false;
134
+ }
135
+ }
136
+ if (nOutside === points.length)
137
+ return FrustumPlanes.Containment.Outside;
138
+ }
139
+ return allInside ? FrustumPlanes.Containment.Inside : FrustumPlanes.Containment.Partial;
140
+ }
141
+ /** Computes whether a ray intersects these clipping planes.
142
+ * @param origin The origin of the ray.
143
+ * @param direction The direction of the ray.
144
+ * @returns true if the ray extending from `origin` in the specified `direction` intersects at least one of the clipping planes.
145
+ */
146
+ intersectsRay(origin, direction) {
147
+ assert(this.isValid);
148
+ if (undefined === this._planes) {
149
+ return false;
150
+ }
151
+ let tFar = 1e37;
152
+ let tNear = -tFar;
153
+ for (const plane of this._planes) {
154
+ const vD = plane.velocity(direction);
155
+ const vN = plane.altitude(origin);
156
+ if (0.0 === vD) {
157
+ // ray is parallel... no need to continue testing if outside halfspace.
158
+ if (vN < 0.0) {
159
+ return false;
160
+ }
161
+ }
162
+ else {
163
+ const rayDistance = -vN / vD;
164
+ if (vD < 0.0) {
165
+ tFar = Math.min(rayDistance, tFar);
166
+ }
167
+ else {
168
+ tNear = Math.max(rayDistance, tNear);
169
+ }
170
+ }
171
+ }
172
+ return tNear <= tFar;
173
+ }
174
+ }
175
+ /** @public @extensions */
176
+ (function (FrustumPlanes) {
177
+ /** Describes the degree to which an object is contained within the planes of a [[Frustum]].
178
+ * @see [[FrustumPlanes.computeContainment]], for example.
179
+ */
180
+ let Containment;
181
+ (function (Containment) {
182
+ /** The object is entirely outside of the frustum, intersecting none of its planes. */
183
+ Containment[Containment["Outside"] = 0] = "Outside";
184
+ /** The object intersects at least one of the frustum planes. placing it partially inside of the frustum. */
185
+ Containment[Containment["Partial"] = 1] = "Partial";
186
+ /** The object is entirely inside of the frustum, intersecting none of its planes. */
187
+ Containment[Containment["Inside"] = 2] = "Inside";
188
+ })(Containment = FrustumPlanes.Containment || (FrustumPlanes.Containment = {}));
189
+ })(FrustumPlanes || (FrustumPlanes = {}));
190
190
  //# sourceMappingURL=FrustumPlanes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrustumPlanes.js","sourceRoot":"","sources":["../../../src/geometry/FrustumPlanes.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Geometry\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { ClipPlane, Point3d, Vector3d } from \"@itwin/core-geometry\";\nimport { Frustum } from \"../Frustum\";\nimport { BoundingSphere } from \"./BoundingSphere\";\n\nconst planePointIndices = [\n [1, 3, 5], // right\n [0, 4, 2], // left\n [2, 6, 3], // top\n [0, 1, 4], // bottom\n [0, 2, 1], // back\n [4, 5, 6], // front\n];\n\nfunction computeFrustumPlanes(frustum: Frustum): ClipPlane[] {\n const planes = [];\n const points = frustum.points;\n const expandPlaneDistance = 1e-6;\n\n for (const indices of planePointIndices) {\n const i0 = indices[0], i1 = indices[1], i2 = indices[2];\n const normal = Vector3d.createCrossProductToPoints(points[i2], points[i1], points[i0]);\n normal.normalizeInPlace();\n\n const plane = ClipPlane.createNormalAndDistance(normal, normal.dotProduct(points[i0]) - expandPlaneDistance);\n if (!plane)\n return [];\n\n planes.push(plane);\n }\n\n assert(planes.length === 6);\n return planes;\n}\n\n// Scratch variable used by FrustumPlanes.computeContainment.\nconst planesContainingSphere = [false, false, false, false, false, false];\n\n/** Represents a the planes of a [[Frustum]] for testing containment and intersection.\n * A valid frustum produces six planes. A degenerate frustum produces zero planes.\n * @public\n * @extensions\n */\nexport class FrustumPlanes {\n private _planes: ClipPlane[];\n\n private constructor(planes: ClipPlane[]) {\n this._planes = planes;\n }\n\n /** Compute the six planes of the specified frustum.\n * If the frustum is degenerate - that is, its points do not represent a truncated pyramid - then the returned `FrustumPlanes` will contain zero planes.\n * @see [[isValid]] to test this condition.\n */\n public static fromFrustum(frustum: Frustum): FrustumPlanes {\n const planes = computeFrustumPlanes(frustum);\n return new FrustumPlanes(planes);\n }\n\n /** Create an empty set of frustum planes. [[isValid]] will be `true`. This can be useful when you want to create a `FrustumPlanes` object and initialize it later via [[init]] -\n * for example, if you intend to use the same object repeatedly with different [[Frustum]]s.\n */\n public static createEmpty(): FrustumPlanes {\n return new FrustumPlanes([]);\n }\n\n /** Returns true if [[planes]] consists of six planes. This may return `false` if a degenerate [[Frustum]] was supplied to [[fromFrustum]], or if this object was created\n * via [[createEmpty]] - in either case, [[planes]] will be an empty array.\n */\n public get isValid(): boolean {\n return this._planes.length === 6;\n }\n\n /** Obtain the list of planes defining the frustum. If [[isValid]] is `true`, it will have a length of six, with the planes ordered as\n * right, left, top, bottom, back, front. Otherwise, it will be empty.\n */\n public get planes(): ClipPlane[] {\n return this._planes;\n }\n\n /** Recompute the planes from the specified frustum.\n * @returns true upon success, or false if the input frustum was degenerate, in which case [[isValid]] will be `false`.\n */\n public init(frustum: Frustum): boolean {\n this._planes = computeFrustumPlanes(frustum);\n return this.isValid;\n }\n\n /** Compute to what degree a [[Frustum]] is contained with these frustum planes.\n * @param box The frustum to test for containment.\n * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.\n * @returns the degree to which `box` is contained within the clipping planes.\n */\n public computeFrustumContainment(box: Frustum, sphere?: BoundingSphere): FrustumPlanes.Containment {\n return this.computeContainment(box.points, sphere);\n }\n\n /** Determines whether a [[Frustum]] intersects with or is fully contained within these frustum planes.\n * @param box The frustum to test for containment.\n * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.\n * @returns true if `box` is not entirely outside of the clipping planes.\n */\n public intersectsFrustum(box: Frustum, sphere?: BoundingSphere): boolean {\n return FrustumPlanes.Containment.Outside !== this.computeFrustumContainment(box, sphere);\n }\n\n /** Determines whether a point is contained within these frustum planes.\n * @param point The point to test for containment.\n * @param tolerance The maximum distance from the interior of the frustum planes that will still be considered \"contained\".\n * @returns true if `point` is no further than `tolerance` meters outside of the clipping planes.\n */\n public containsPoint(point: Point3d, tolerance: number = 1.0e-8): boolean {\n return FrustumPlanes.Containment.Outside !== this.computeContainment([point], undefined, tolerance);\n }\n\n /** Compute the degree to which a set of points is contained within these frustum planes.\n * @param points The points to test for containment.\n * @param sphere An optional spherical bounding volume fully containing all of the points. If supplied, this can reduce the amount of computation required.\n * @param tolerance The maximum distance from the interior of the frustum planes a point must be to be considered \"contained\".\n * @returns the degree to which all of the points are contained within the clipping planes.\n */\n public computeContainment(points: Point3d[], sphere?: BoundingSphere, tolerance: number = 1.0e-8): FrustumPlanes.Containment {\n assert(this.isValid);\n if (undefined === this._planes)\n return FrustumPlanes.Containment.Outside;\n\n // Do the cheap test against bounding sphere first.\n if (sphere) {\n for (let i = 0; i < this._planes.length; i++) {\n const plane = this._planes[i];\n const centerDistance = plane.altitude(sphere.center);\n const tolerancePlusRadius = tolerance + sphere.radius;\n if (centerDistance < -tolerancePlusRadius)\n return FrustumPlanes.Containment.Outside;\n\n planesContainingSphere[i] = centerDistance > tolerancePlusRadius;\n }\n }\n\n // Test against points.\n let allInside = true;\n for (let i = 0; i < this._planes.length; i++) {\n if (sphere && planesContainingSphere[i])\n continue;\n\n const plane = this._planes[i];\n let nOutside = 0;\n for (const point of points) {\n if (plane.altitude(point) + tolerance < 0) {\n ++nOutside;\n allInside = false;\n }\n }\n\n if (nOutside === points.length)\n return FrustumPlanes.Containment.Outside;\n }\n\n return allInside ? FrustumPlanes.Containment.Inside : FrustumPlanes.Containment.Partial;\n }\n\n /** Computes whether a ray intersects these clipping planes.\n * @param origin The origin of the ray.\n * @param direction The direction of the ray.\n * @returns true if the ray extending from `origin` in the specified `direction` intersects at least one of the clipping planes.\n */\n public intersectsRay(origin: Point3d, direction: Vector3d): boolean {\n assert(this.isValid);\n if (undefined === this._planes) {\n return false;\n }\n\n let tFar = 1e37;\n let tNear = -tFar;\n\n for (const plane of this._planes) {\n const vD = plane.velocity(direction);\n const vN = plane.altitude(origin);\n if (0.0 === vD) {\n // ray is parallel... no need to continue testing if outside halfspace.\n if (vN < 0.0) {\n return false;\n }\n } else {\n const rayDistance = -vN / vD;\n if (vD < 0.0) {\n tFar = Math.min(rayDistance, tFar);\n } else {\n tNear = Math.max(rayDistance, tNear);\n }\n }\n }\n\n return tNear <= tFar;\n }\n}\n\n/** @public @extensions */\nexport namespace FrustumPlanes { // eslint-disable-line no-redeclare\n /** Describes the degree to which an object is contained within the planes of a [[Frustum]].\n * @see [[FrustumPlanes.computeContainment]], for example.\n */\n export enum Containment {\n /** The object is entirely outside of the frustum, intersecting none of its planes. */\n Outside = 0,\n /** The object intersects at least one of the frustum planes. placing it partially inside of the frustum. */\n Partial = 1,\n /** The object is entirely inside of the frustum, intersecting none of its planes. */\n Inside = 2,\n }\n}\n"]}
1
+ {"version":3,"file":"FrustumPlanes.js","sourceRoot":"","sources":["../../../src/geometry/FrustumPlanes.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 Geometry\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ClipPlane, Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { Frustum } from \"../Frustum\";\r\nimport { BoundingSphere } from \"./BoundingSphere\";\r\n\r\nconst planePointIndices = [\r\n [1, 3, 5], // right\r\n [0, 4, 2], // left\r\n [2, 6, 3], // top\r\n [0, 1, 4], // bottom\r\n [0, 2, 1], // back\r\n [4, 5, 6], // front\r\n];\r\n\r\nfunction computeFrustumPlanes(frustum: Frustum): ClipPlane[] {\r\n const planes = [];\r\n const points = frustum.points;\r\n const expandPlaneDistance = 1e-6;\r\n\r\n for (const indices of planePointIndices) {\r\n const i0 = indices[0], i1 = indices[1], i2 = indices[2];\r\n const normal = Vector3d.createCrossProductToPoints(points[i2], points[i1], points[i0]);\r\n normal.normalizeInPlace();\r\n\r\n const plane = ClipPlane.createNormalAndDistance(normal, normal.dotProduct(points[i0]) - expandPlaneDistance);\r\n if (!plane)\r\n return [];\r\n\r\n planes.push(plane);\r\n }\r\n\r\n assert(planes.length === 6);\r\n return planes;\r\n}\r\n\r\n// Scratch variable used by FrustumPlanes.computeContainment.\r\nconst planesContainingSphere = [false, false, false, false, false, false];\r\n\r\n/** Represents a the planes of a [[Frustum]] for testing containment and intersection.\r\n * A valid frustum produces six planes. A degenerate frustum produces zero planes.\r\n * @public\r\n * @extensions\r\n */\r\nexport class FrustumPlanes {\r\n private _planes: ClipPlane[];\r\n\r\n private constructor(planes: ClipPlane[]) {\r\n this._planes = planes;\r\n }\r\n\r\n /** Compute the six planes of the specified frustum.\r\n * If the frustum is degenerate - that is, its points do not represent a truncated pyramid - then the returned `FrustumPlanes` will contain zero planes.\r\n * @see [[isValid]] to test this condition.\r\n */\r\n public static fromFrustum(frustum: Frustum): FrustumPlanes {\r\n const planes = computeFrustumPlanes(frustum);\r\n return new FrustumPlanes(planes);\r\n }\r\n\r\n /** Create an empty set of frustum planes. [[isValid]] will be `true`. This can be useful when you want to create a `FrustumPlanes` object and initialize it later via [[init]] -\r\n * for example, if you intend to use the same object repeatedly with different [[Frustum]]s.\r\n */\r\n public static createEmpty(): FrustumPlanes {\r\n return new FrustumPlanes([]);\r\n }\r\n\r\n /** Returns true if [[planes]] consists of six planes. This may return `false` if a degenerate [[Frustum]] was supplied to [[fromFrustum]], or if this object was created\r\n * via [[createEmpty]] - in either case, [[planes]] will be an empty array.\r\n */\r\n public get isValid(): boolean {\r\n return this._planes.length === 6;\r\n }\r\n\r\n /** Obtain the list of planes defining the frustum. If [[isValid]] is `true`, it will have a length of six, with the planes ordered as\r\n * right, left, top, bottom, back, front. Otherwise, it will be empty.\r\n */\r\n public get planes(): ClipPlane[] {\r\n return this._planes;\r\n }\r\n\r\n /** Recompute the planes from the specified frustum.\r\n * @returns true upon success, or false if the input frustum was degenerate, in which case [[isValid]] will be `false`.\r\n */\r\n public init(frustum: Frustum): boolean {\r\n this._planes = computeFrustumPlanes(frustum);\r\n return this.isValid;\r\n }\r\n\r\n /** Compute to what degree a [[Frustum]] is contained with these frustum planes.\r\n * @param box The frustum to test for containment.\r\n * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.\r\n * @returns the degree to which `box` is contained within the clipping planes.\r\n */\r\n public computeFrustumContainment(box: Frustum, sphere?: BoundingSphere): FrustumPlanes.Containment {\r\n return this.computeContainment(box.points, sphere);\r\n }\r\n\r\n /** Determines whether a [[Frustum]] intersects with or is fully contained within these frustum planes.\r\n * @param box The frustum to test for containment.\r\n * @param sphere An optional spherical bounding volume fully containing `box`. If supplied, this can reduce the amount of computation required.\r\n * @returns true if `box` is not entirely outside of the clipping planes.\r\n */\r\n public intersectsFrustum(box: Frustum, sphere?: BoundingSphere): boolean {\r\n return FrustumPlanes.Containment.Outside !== this.computeFrustumContainment(box, sphere);\r\n }\r\n\r\n /** Determines whether a point is contained within these frustum planes.\r\n * @param point The point to test for containment.\r\n * @param tolerance The maximum distance from the interior of the frustum planes that will still be considered \"contained\".\r\n * @returns true if `point` is no further than `tolerance` meters outside of the clipping planes.\r\n */\r\n public containsPoint(point: Point3d, tolerance: number = 1.0e-8): boolean {\r\n return FrustumPlanes.Containment.Outside !== this.computeContainment([point], undefined, tolerance);\r\n }\r\n\r\n /** Compute the degree to which a set of points is contained within these frustum planes.\r\n * @param points The points to test for containment.\r\n * @param sphere An optional spherical bounding volume fully containing all of the points. If supplied, this can reduce the amount of computation required.\r\n * @param tolerance The maximum distance from the interior of the frustum planes a point must be to be considered \"contained\".\r\n * @returns the degree to which all of the points are contained within the clipping planes.\r\n */\r\n public computeContainment(points: Point3d[], sphere?: BoundingSphere, tolerance: number = 1.0e-8): FrustumPlanes.Containment {\r\n assert(this.isValid);\r\n if (undefined === this._planes)\r\n return FrustumPlanes.Containment.Outside;\r\n\r\n // Do the cheap test against bounding sphere first.\r\n if (sphere) {\r\n for (let i = 0; i < this._planes.length; i++) {\r\n const plane = this._planes[i];\r\n const centerDistance = plane.altitude(sphere.center);\r\n const tolerancePlusRadius = tolerance + sphere.radius;\r\n if (centerDistance < -tolerancePlusRadius)\r\n return FrustumPlanes.Containment.Outside;\r\n\r\n planesContainingSphere[i] = centerDistance > tolerancePlusRadius;\r\n }\r\n }\r\n\r\n // Test against points.\r\n let allInside = true;\r\n for (let i = 0; i < this._planes.length; i++) {\r\n if (sphere && planesContainingSphere[i])\r\n continue;\r\n\r\n const plane = this._planes[i];\r\n let nOutside = 0;\r\n for (const point of points) {\r\n if (plane.altitude(point) + tolerance < 0) {\r\n ++nOutside;\r\n allInside = false;\r\n }\r\n }\r\n\r\n if (nOutside === points.length)\r\n return FrustumPlanes.Containment.Outside;\r\n }\r\n\r\n return allInside ? FrustumPlanes.Containment.Inside : FrustumPlanes.Containment.Partial;\r\n }\r\n\r\n /** Computes whether a ray intersects these clipping planes.\r\n * @param origin The origin of the ray.\r\n * @param direction The direction of the ray.\r\n * @returns true if the ray extending from `origin` in the specified `direction` intersects at least one of the clipping planes.\r\n */\r\n public intersectsRay(origin: Point3d, direction: Vector3d): boolean {\r\n assert(this.isValid);\r\n if (undefined === this._planes) {\r\n return false;\r\n }\r\n\r\n let tFar = 1e37;\r\n let tNear = -tFar;\r\n\r\n for (const plane of this._planes) {\r\n const vD = plane.velocity(direction);\r\n const vN = plane.altitude(origin);\r\n if (0.0 === vD) {\r\n // ray is parallel... no need to continue testing if outside halfspace.\r\n if (vN < 0.0) {\r\n return false;\r\n }\r\n } else {\r\n const rayDistance = -vN / vD;\r\n if (vD < 0.0) {\r\n tFar = Math.min(rayDistance, tFar);\r\n } else {\r\n tNear = Math.max(rayDistance, tNear);\r\n }\r\n }\r\n }\r\n\r\n return tNear <= tFar;\r\n }\r\n}\r\n\r\n/** @public @extensions */\r\nexport namespace FrustumPlanes { // eslint-disable-line no-redeclare\r\n /** Describes the degree to which an object is contained within the planes of a [[Frustum]].\r\n * @see [[FrustumPlanes.computeContainment]], for example.\r\n */\r\n export enum Containment {\r\n /** The object is entirely outside of the frustum, intersecting none of its planes. */\r\n Outside = 0,\r\n /** The object intersects at least one of the frustum planes. placing it partially inside of the frustum. */\r\n Partial = 1,\r\n /** The object is entirely inside of the frustum, intersecting none of its planes. */\r\n Inside = 2,\r\n }\r\n}\r\n"]}