@itwin/core-common 3.6.0-dev.51 → 3.6.0-dev.53

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