@itwin/frontend-devtools 4.0.0-dev.8 → 4.0.0-dev.80

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 (360) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/README.md +1 -1
  3. package/lib/cjs/ClipboardUtilities.d.ts +8 -8
  4. package/lib/cjs/ClipboardUtilities.js +26 -26
  5. package/lib/cjs/FrontEndDevTools.d.ts +19 -19
  6. package/lib/cjs/FrontEndDevTools.js +221 -221
  7. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  8. package/lib/cjs/effects/Convolution.d.ts +68 -68
  9. package/lib/cjs/effects/Convolution.js +148 -148
  10. package/lib/cjs/effects/Convolution.js.map +1 -1
  11. package/lib/cjs/effects/EffectTools.d.ts +33 -33
  12. package/lib/cjs/effects/EffectTools.js +67 -68
  13. package/lib/cjs/effects/EffectTools.js.map +1 -1
  14. package/lib/cjs/effects/Explosion.d.ts +12 -12
  15. package/lib/cjs/effects/Explosion.js +168 -168
  16. package/lib/cjs/effects/Explosion.js.map +1 -1
  17. package/lib/cjs/effects/FlipImage.d.ts +30 -30
  18. package/lib/cjs/effects/FlipImage.js +79 -79
  19. package/lib/cjs/effects/FlipImage.js.map +1 -1
  20. package/lib/cjs/effects/LensDistortion.d.ts +34 -34
  21. package/lib/cjs/effects/LensDistortion.js +88 -88
  22. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  23. package/lib/cjs/effects/Random.d.ts +24 -24
  24. package/lib/cjs/effects/Random.js +49 -49
  25. package/lib/cjs/effects/Saturation.d.ts +30 -30
  26. package/lib/cjs/effects/Saturation.js +59 -59
  27. package/lib/cjs/effects/Saturation.js.map +1 -1
  28. package/lib/cjs/effects/Snow.d.ts +76 -76
  29. package/lib/cjs/effects/Snow.js +187 -187
  30. package/lib/cjs/effects/Snow.js.map +1 -1
  31. package/lib/cjs/effects/Vignette.d.ts +39 -39
  32. package/lib/cjs/effects/Vignette.js +79 -79
  33. package/lib/cjs/effects/Vignette.js.map +1 -1
  34. package/lib/cjs/frontend-devtools.d.ts +82 -82
  35. package/lib/cjs/frontend-devtools.js +102 -98
  36. package/lib/cjs/frontend-devtools.js.map +1 -1
  37. package/lib/cjs/tools/AnimationIntervalTool.d.ts +15 -15
  38. package/lib/cjs/tools/AnimationIntervalTool.js +30 -30
  39. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  40. package/lib/cjs/tools/ChangeUnitsTool.d.ts +15 -15
  41. package/lib/cjs/tools/ChangeUnitsTool.js +41 -41
  42. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  43. package/lib/cjs/tools/ClipTools.d.ts +67 -67
  44. package/lib/cjs/tools/ClipTools.js +161 -164
  45. package/lib/cjs/tools/ClipTools.js.map +1 -1
  46. package/lib/cjs/tools/DisplayStyleTools.d.ts +145 -145
  47. package/lib/cjs/tools/DisplayStyleTools.js +368 -370
  48. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  49. package/lib/cjs/tools/EmphasizeElementsTool.d.ts +60 -60
  50. package/lib/cjs/tools/EmphasizeElementsTool.js +154 -154
  51. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  52. package/lib/cjs/tools/FrustumDecoration.d.ts +57 -57
  53. package/lib/cjs/tools/FrustumDecoration.js +374 -374
  54. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  55. package/lib/cjs/tools/InspectElementTool.d.ts +42 -42
  56. package/lib/cjs/tools/InspectElementTool.js +198 -198
  57. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  58. package/lib/cjs/tools/MapLayerTool.d.ts +264 -264
  59. package/lib/cjs/tools/MapLayerTool.d.ts.map +1 -1
  60. package/lib/cjs/tools/MapLayerTool.js +509 -507
  61. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  62. package/lib/cjs/tools/MeasureTileLoadTime.d.ts +12 -12
  63. package/lib/cjs/tools/MeasureTileLoadTime.js +63 -63
  64. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  65. package/lib/cjs/tools/ModelAppearanceTools.d.ts +86 -86
  66. package/lib/cjs/tools/ModelAppearanceTools.js +183 -183
  67. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  68. package/lib/cjs/tools/PlanProjectionTools.d.ts +40 -40
  69. package/lib/cjs/tools/PlanProjectionTools.js +149 -149
  70. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  71. package/lib/cjs/tools/PlanarMaskTools.d.ts +182 -182
  72. package/lib/cjs/tools/PlanarMaskTools.js +391 -393
  73. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  74. package/lib/cjs/tools/ProjectExtents.d.ts +41 -41
  75. package/lib/cjs/tools/ProjectExtents.js +110 -110
  76. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  77. package/lib/cjs/tools/RealityModelTools.d.ts +116 -116
  78. package/lib/cjs/tools/RealityModelTools.js +281 -281
  79. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  80. package/lib/cjs/tools/RealityTransitionTool.d.ts +25 -25
  81. package/lib/cjs/tools/RealityTransitionTool.js +115 -116
  82. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  83. package/lib/cjs/tools/RenderSystemTools.d.ts +38 -38
  84. package/lib/cjs/tools/RenderSystemTools.js +69 -70
  85. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  86. package/lib/cjs/tools/RenderTargetTools.d.ts +107 -107
  87. package/lib/cjs/tools/RenderTargetTools.d.ts.map +1 -1
  88. package/lib/cjs/tools/RenderTargetTools.js +174 -174
  89. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  90. package/lib/cjs/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  91. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +30 -30
  92. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  93. package/lib/cjs/tools/SavedViews.d.ts +46 -46
  94. package/lib/cjs/tools/SavedViews.js +136 -136
  95. package/lib/cjs/tools/SavedViews.js.map +1 -1
  96. package/lib/cjs/tools/ScheduleScriptTools.d.ts +37 -37
  97. package/lib/cjs/tools/ScheduleScriptTools.js +157 -159
  98. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  99. package/lib/cjs/tools/SelectionTools.d.ts +28 -28
  100. package/lib/cjs/tools/SelectionTools.js +87 -87
  101. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  102. package/lib/cjs/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  103. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +33 -33
  104. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  105. package/lib/cjs/tools/SourceAspectIdTools.d.ts +40 -40
  106. package/lib/cjs/tools/SourceAspectIdTools.js +85 -86
  107. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  108. package/lib/cjs/tools/TileRequestDecoration.d.ts +12 -12
  109. package/lib/cjs/tools/TileRequestDecoration.js +83 -83
  110. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  111. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts +11 -11
  112. package/lib/cjs/tools/TileTreeBoundsDecoration.js +74 -74
  113. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  114. package/lib/cjs/tools/ToolTipProvider.d.ts +15 -15
  115. package/lib/cjs/tools/ToolTipProvider.js +66 -66
  116. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  117. package/lib/cjs/tools/ViewportTools.d.ts +218 -218
  118. package/lib/cjs/tools/ViewportTools.d.ts.map +1 -1
  119. package/lib/cjs/tools/ViewportTools.js +516 -516
  120. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  121. package/lib/cjs/tools/parseArgs.d.ts +23 -23
  122. package/lib/cjs/tools/parseArgs.js +51 -51
  123. package/lib/cjs/tools/parseBoolean.d.ts +8 -8
  124. package/lib/cjs/tools/parseBoolean.js +26 -26
  125. package/lib/cjs/tools/parseToggle.d.ts +8 -8
  126. package/lib/cjs/tools/parseToggle.js +25 -25
  127. package/lib/cjs/ui/Button.d.ts +29 -29
  128. package/lib/cjs/ui/Button.d.ts.map +1 -1
  129. package/lib/cjs/ui/Button.js +26 -26
  130. package/lib/cjs/ui/CheckBox.d.ts +23 -23
  131. package/lib/cjs/ui/CheckBox.d.ts.map +1 -1
  132. package/lib/cjs/ui/CheckBox.js +27 -27
  133. package/lib/cjs/ui/ColorInput.d.ts +27 -27
  134. package/lib/cjs/ui/ColorInput.d.ts.map +1 -1
  135. package/lib/cjs/ui/ColorInput.js +53 -53
  136. package/lib/cjs/ui/ComboBox.d.ts +28 -28
  137. package/lib/cjs/ui/ComboBox.d.ts.map +1 -1
  138. package/lib/cjs/ui/ComboBox.js +42 -42
  139. package/lib/cjs/ui/DataList.d.ts +27 -27
  140. package/lib/cjs/ui/DataList.d.ts.map +1 -1
  141. package/lib/cjs/ui/DataList.js +39 -39
  142. package/lib/cjs/ui/NestedMenu.d.ts +19 -19
  143. package/lib/cjs/ui/NestedMenu.d.ts.map +1 -1
  144. package/lib/cjs/ui/NestedMenu.js +46 -46
  145. package/lib/cjs/ui/NumericInput.d.ts +35 -35
  146. package/lib/cjs/ui/NumericInput.d.ts.map +1 -1
  147. package/lib/cjs/ui/NumericInput.js +61 -61
  148. package/lib/cjs/ui/RadioBox.d.ts +29 -29
  149. package/lib/cjs/ui/RadioBox.d.ts.map +1 -1
  150. package/lib/cjs/ui/RadioBox.js +76 -76
  151. package/lib/cjs/ui/Slider.d.ts +28 -28
  152. package/lib/cjs/ui/Slider.d.ts.map +1 -1
  153. package/lib/cjs/ui/Slider.js +42 -42
  154. package/lib/cjs/ui/TextBox.d.ts +32 -32
  155. package/lib/cjs/ui/TextBox.d.ts.map +1 -1
  156. package/lib/cjs/ui/TextBox.js +56 -56
  157. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +37 -37
  158. package/lib/cjs/widgets/DiagnosticsPanel.js +81 -81
  159. package/lib/cjs/widgets/FpsTracker.d.ts +19 -19
  160. package/lib/cjs/widgets/FpsTracker.js +56 -56
  161. package/lib/cjs/widgets/GpuProfiler.d.ts +16 -16
  162. package/lib/cjs/widgets/GpuProfiler.js +192 -192
  163. package/lib/cjs/widgets/KeyinField.d.ts +61 -61
  164. package/lib/cjs/widgets/KeyinField.js +186 -187
  165. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  166. package/lib/cjs/widgets/MemoryTracker.d.ts +27 -27
  167. package/lib/cjs/widgets/MemoryTracker.js +242 -243
  168. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  169. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +15 -15
  170. package/lib/cjs/widgets/RenderCommandBreakdown.js +67 -68
  171. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  172. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +30 -30
  173. package/lib/cjs/widgets/TileMemoryBreakdown.js +203 -204
  174. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  175. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +21 -21
  176. package/lib/cjs/widgets/TileStatisticsTracker.d.ts.map +1 -1
  177. package/lib/cjs/widgets/TileStatisticsTracker.js +144 -142
  178. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  179. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +9 -9
  180. package/lib/cjs/widgets/ToolSettingsTracker.js +211 -211
  181. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  182. package/lib/esm/ClipboardUtilities.d.ts +8 -8
  183. package/lib/esm/ClipboardUtilities.js +22 -22
  184. package/lib/esm/FrontEndDevTools.d.ts +19 -19
  185. package/lib/esm/FrontEndDevTools.js +218 -217
  186. package/lib/esm/FrontEndDevTools.js.map +1 -1
  187. package/lib/esm/effects/Convolution.d.ts +68 -68
  188. package/lib/esm/effects/Convolution.js +144 -138
  189. package/lib/esm/effects/Convolution.js.map +1 -1
  190. package/lib/esm/effects/EffectTools.d.ts +33 -33
  191. package/lib/esm/effects/EffectTools.js +63 -62
  192. package/lib/esm/effects/EffectTools.js.map +1 -1
  193. package/lib/esm/effects/Explosion.d.ts +12 -12
  194. package/lib/esm/effects/Explosion.js +165 -164
  195. package/lib/esm/effects/Explosion.js.map +1 -1
  196. package/lib/esm/effects/FlipImage.d.ts +30 -30
  197. package/lib/esm/effects/FlipImage.js +76 -74
  198. package/lib/esm/effects/FlipImage.js.map +1 -1
  199. package/lib/esm/effects/LensDistortion.d.ts +34 -34
  200. package/lib/esm/effects/LensDistortion.js +85 -83
  201. package/lib/esm/effects/LensDistortion.js.map +1 -1
  202. package/lib/esm/effects/Random.d.ts +24 -24
  203. package/lib/esm/effects/Random.js +41 -41
  204. package/lib/esm/effects/Saturation.d.ts +30 -30
  205. package/lib/esm/effects/Saturation.js +56 -54
  206. package/lib/esm/effects/Saturation.js.map +1 -1
  207. package/lib/esm/effects/Snow.d.ts +76 -76
  208. package/lib/esm/effects/Snow.js +184 -182
  209. package/lib/esm/effects/Snow.js.map +1 -1
  210. package/lib/esm/effects/Vignette.d.ts +39 -39
  211. package/lib/esm/effects/Vignette.js +76 -74
  212. package/lib/esm/effects/Vignette.js.map +1 -1
  213. package/lib/esm/frontend-devtools.d.ts +82 -82
  214. package/lib/esm/frontend-devtools.js +86 -86
  215. package/lib/esm/tools/AnimationIntervalTool.d.ts +15 -15
  216. package/lib/esm/tools/AnimationIntervalTool.js +27 -26
  217. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  218. package/lib/esm/tools/ChangeUnitsTool.d.ts +15 -15
  219. package/lib/esm/tools/ChangeUnitsTool.js +38 -37
  220. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  221. package/lib/esm/tools/ClipTools.d.ts +67 -67
  222. package/lib/esm/tools/ClipTools.js +158 -158
  223. package/lib/esm/tools/ClipTools.js.map +1 -1
  224. package/lib/esm/tools/DisplayStyleTools.d.ts +145 -145
  225. package/lib/esm/tools/DisplayStyleTools.js +364 -356
  226. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  227. package/lib/esm/tools/EmphasizeElementsTool.d.ts +60 -60
  228. package/lib/esm/tools/EmphasizeElementsTool.js +150 -145
  229. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  230. package/lib/esm/tools/FrustumDecoration.d.ts +57 -57
  231. package/lib/esm/tools/FrustumDecoration.js +370 -367
  232. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  233. package/lib/esm/tools/InspectElementTool.d.ts +42 -42
  234. package/lib/esm/tools/InspectElementTool.js +195 -194
  235. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  236. package/lib/esm/tools/MapLayerTool.d.ts +264 -264
  237. package/lib/esm/tools/MapLayerTool.d.ts.map +1 -1
  238. package/lib/esm/tools/MapLayerTool.js +506 -485
  239. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  240. package/lib/esm/tools/MeasureTileLoadTime.d.ts +12 -12
  241. package/lib/esm/tools/MeasureTileLoadTime.js +60 -59
  242. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  243. package/lib/esm/tools/ModelAppearanceTools.d.ts +86 -86
  244. package/lib/esm/tools/ModelAppearanceTools.js +180 -172
  245. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  246. package/lib/esm/tools/PlanProjectionTools.d.ts +40 -40
  247. package/lib/esm/tools/PlanProjectionTools.js +146 -143
  248. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  249. package/lib/esm/tools/PlanarMaskTools.d.ts +182 -182
  250. package/lib/esm/tools/PlanarMaskTools.js +387 -377
  251. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  252. package/lib/esm/tools/ProjectExtents.d.ts +41 -41
  253. package/lib/esm/tools/ProjectExtents.js +105 -104
  254. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  255. package/lib/esm/tools/RealityModelTools.d.ts +116 -116
  256. package/lib/esm/tools/RealityModelTools.js +278 -268
  257. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  258. package/lib/esm/tools/RealityTransitionTool.d.ts +25 -25
  259. package/lib/esm/tools/RealityTransitionTool.js +112 -112
  260. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  261. package/lib/esm/tools/RenderSystemTools.d.ts +38 -38
  262. package/lib/esm/tools/RenderSystemTools.js +65 -63
  263. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  264. package/lib/esm/tools/RenderTargetTools.d.ts +107 -107
  265. package/lib/esm/tools/RenderTargetTools.d.ts.map +1 -1
  266. package/lib/esm/tools/RenderTargetTools.js +169 -159
  267. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  268. package/lib/esm/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  269. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +27 -26
  270. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  271. package/lib/esm/tools/SavedViews.d.ts +46 -46
  272. package/lib/esm/tools/SavedViews.js +131 -128
  273. package/lib/esm/tools/SavedViews.js.map +1 -1
  274. package/lib/esm/tools/ScheduleScriptTools.d.ts +37 -37
  275. package/lib/esm/tools/ScheduleScriptTools.js +154 -153
  276. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  277. package/lib/esm/tools/SelectionTools.d.ts +28 -28
  278. package/lib/esm/tools/SelectionTools.js +84 -82
  279. package/lib/esm/tools/SelectionTools.js.map +1 -1
  280. package/lib/esm/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  281. package/lib/esm/tools/SetGpuMemoryLimitTool.js +30 -29
  282. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  283. package/lib/esm/tools/SourceAspectIdTools.d.ts +40 -40
  284. package/lib/esm/tools/SourceAspectIdTools.js +81 -80
  285. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  286. package/lib/esm/tools/TileRequestDecoration.d.ts +12 -12
  287. package/lib/esm/tools/TileRequestDecoration.js +80 -79
  288. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  289. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts +11 -11
  290. package/lib/esm/tools/TileTreeBoundsDecoration.js +71 -70
  291. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  292. package/lib/esm/tools/ToolTipProvider.d.ts +15 -15
  293. package/lib/esm/tools/ToolTipProvider.js +63 -62
  294. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  295. package/lib/esm/tools/ViewportTools.d.ts +218 -218
  296. package/lib/esm/tools/ViewportTools.d.ts.map +1 -1
  297. package/lib/esm/tools/ViewportTools.js +511 -492
  298. package/lib/esm/tools/ViewportTools.js.map +1 -1
  299. package/lib/esm/tools/parseArgs.d.ts +23 -23
  300. package/lib/esm/tools/parseArgs.js +47 -47
  301. package/lib/esm/tools/parseBoolean.d.ts +8 -8
  302. package/lib/esm/tools/parseBoolean.js +22 -22
  303. package/lib/esm/tools/parseToggle.d.ts +8 -8
  304. package/lib/esm/tools/parseToggle.js +21 -21
  305. package/lib/esm/ui/Button.d.ts +29 -29
  306. package/lib/esm/ui/Button.d.ts.map +1 -1
  307. package/lib/esm/ui/Button.js +22 -22
  308. package/lib/esm/ui/CheckBox.d.ts +23 -23
  309. package/lib/esm/ui/CheckBox.d.ts.map +1 -1
  310. package/lib/esm/ui/CheckBox.js +23 -23
  311. package/lib/esm/ui/ColorInput.d.ts +27 -27
  312. package/lib/esm/ui/ColorInput.d.ts.map +1 -1
  313. package/lib/esm/ui/ColorInput.js +48 -48
  314. package/lib/esm/ui/ComboBox.d.ts +28 -28
  315. package/lib/esm/ui/ComboBox.d.ts.map +1 -1
  316. package/lib/esm/ui/ComboBox.js +38 -38
  317. package/lib/esm/ui/DataList.d.ts +27 -27
  318. package/lib/esm/ui/DataList.d.ts.map +1 -1
  319. package/lib/esm/ui/DataList.js +34 -34
  320. package/lib/esm/ui/NestedMenu.d.ts +19 -19
  321. package/lib/esm/ui/NestedMenu.d.ts.map +1 -1
  322. package/lib/esm/ui/NestedMenu.js +42 -42
  323. package/lib/esm/ui/NumericInput.d.ts +35 -35
  324. package/lib/esm/ui/NumericInput.d.ts.map +1 -1
  325. package/lib/esm/ui/NumericInput.js +56 -56
  326. package/lib/esm/ui/RadioBox.d.ts +29 -29
  327. package/lib/esm/ui/RadioBox.d.ts.map +1 -1
  328. package/lib/esm/ui/RadioBox.js +72 -72
  329. package/lib/esm/ui/Slider.d.ts +28 -28
  330. package/lib/esm/ui/Slider.d.ts.map +1 -1
  331. package/lib/esm/ui/Slider.js +38 -38
  332. package/lib/esm/ui/TextBox.d.ts +32 -32
  333. package/lib/esm/ui/TextBox.d.ts.map +1 -1
  334. package/lib/esm/ui/TextBox.js +52 -52
  335. package/lib/esm/widgets/DiagnosticsPanel.d.ts +37 -37
  336. package/lib/esm/widgets/DiagnosticsPanel.js +77 -77
  337. package/lib/esm/widgets/FpsTracker.d.ts +19 -19
  338. package/lib/esm/widgets/FpsTracker.js +52 -52
  339. package/lib/esm/widgets/GpuProfiler.d.ts +16 -16
  340. package/lib/esm/widgets/GpuProfiler.js +188 -188
  341. package/lib/esm/widgets/KeyinField.d.ts +61 -61
  342. package/lib/esm/widgets/KeyinField.js +182 -183
  343. package/lib/esm/widgets/KeyinField.js.map +1 -1
  344. package/lib/esm/widgets/MemoryTracker.d.ts +27 -27
  345. package/lib/esm/widgets/MemoryTracker.js +237 -238
  346. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  347. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +15 -15
  348. package/lib/esm/widgets/RenderCommandBreakdown.js +63 -64
  349. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  350. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +30 -30
  351. package/lib/esm/widgets/TileMemoryBreakdown.js +199 -200
  352. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  353. package/lib/esm/widgets/TileStatisticsTracker.d.ts +21 -21
  354. package/lib/esm/widgets/TileStatisticsTracker.d.ts.map +1 -1
  355. package/lib/esm/widgets/TileStatisticsTracker.js +140 -138
  356. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  357. package/lib/esm/widgets/ToolSettingsTracker.d.ts +9 -9
  358. package/lib/esm/widgets/ToolSettingsTracker.js +208 -207
  359. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  360. package/package.json +14 -14
@@ -1,150 +1,150 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ChangePlanProjectionSettingsTool = exports.OverrideSubCategoryPriorityTool = exports.DumpPlanProjectionSettingsTool = void 0;
8
- /** @packageDocumentation
9
- * @module Tools
10
- */
11
- const core_common_1 = require("@itwin/core-common");
12
- const core_frontend_1 = require("@itwin/core-frontend");
13
- const ClipboardUtilities_1 = require("../ClipboardUtilities");
14
- const DisplayStyleTools_1 = require("./DisplayStyleTools");
15
- const parseArgs_1 = require("./parseArgs");
16
- /** Dumps a JSON representation of the plan projection settings for the current viewport.
17
- * @beta
18
- */
19
- class DumpPlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
20
- constructor() {
21
- super(...arguments);
22
- this._copyToClipboard = false;
23
- }
24
- static get minArgs() { return 0; }
25
- static get maxArgs() { return 1; }
26
- get require3d() { return true; }
27
- async parse(args) {
28
- if (1 === args.length)
29
- this._copyToClipboard = "c" === args[0].toLowerCase();
30
- return true;
31
- }
32
- async execute(vp) {
33
- const settings = vp.displayStyle.settings.planProjectionSettings;
34
- if (undefined === settings) {
35
- core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, "No plan projection settings defined"));
36
- return false;
37
- }
38
- const props = [];
39
- for (const [modelId, value] of settings)
40
- props.push({ modelId, settings: value.toJSON() });
41
- const json = JSON.stringify(props);
42
- if (this._copyToClipboard)
43
- (0, ClipboardUtilities_1.copyStringToClipboard)(json);
44
- const messageDetails = new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, "Dumped plan projection settings", json);
45
- core_frontend_1.IModelApp.notifications.outputMessage(messageDetails);
46
- return false;
47
- }
48
- }
49
- exports.DumpPlanProjectionSettingsTool = DumpPlanProjectionSettingsTool;
50
- DumpPlanProjectionSettingsTool.toolId = "DumpLayerSettings";
51
- /** Changes subcategory display priority.
52
- * @beta
53
- */
54
- class OverrideSubCategoryPriorityTool extends DisplayStyleTools_1.DisplayStyleTool {
55
- constructor() {
56
- super(...arguments);
57
- this._subcatIds = new Set();
58
- }
59
- static get minArgs() { return 1; }
60
- static get maxArgs() { return 2; }
61
- async execute(vp) {
62
- const style = vp.displayStyle;
63
- for (const id of this._subcatIds) {
64
- const ovr = style.getSubCategoryOverride(id);
65
- if (undefined === ovr) {
66
- if (undefined !== this._priority)
67
- style.overrideSubCategory(id, core_common_1.SubCategoryOverride.fromJSON({ priority: this._priority }));
68
- }
69
- else {
70
- const props = ovr.toJSON();
71
- props.priority = this._priority;
72
- style.overrideSubCategory(id, core_common_1.SubCategoryOverride.fromJSON(props));
73
- }
74
- }
75
- return true;
76
- }
77
- async parse(args) {
78
- for (const id of args[0].split(","))
79
- this._subcatIds.add(id);
80
- const priority = parseInt(args[1], 10);
81
- if (!Number.isNaN(priority))
82
- this._priority = priority;
83
- return true;
84
- }
85
- }
86
- exports.OverrideSubCategoryPriorityTool = OverrideSubCategoryPriorityTool;
87
- OverrideSubCategoryPriorityTool.toolId = "OverrideSubCategoryPriority";
88
- /** Changes plan projection settings for one or more models.
89
- * @beta
90
- */
91
- class ChangePlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
92
- constructor() {
93
- super(...arguments);
94
- this._modelIds = new Set();
95
- }
96
- static get minArgs() { return 1; }
97
- static get maxArgs() { return 5; }
98
- get require3d() { return true; }
99
- async execute(vp) {
100
- const settings = vp.displayStyle.settings;
101
- for (const modelId of this._modelIds)
102
- settings.setPlanProjectionSettings(modelId, this._settings);
103
- return true;
104
- }
105
- async parse(inputArgs) {
106
- if (!this.parseModels(inputArgs[0]))
107
- return false;
108
- const args = (0, parseArgs_1.parseArgs)(inputArgs.slice(1));
109
- const props = {};
110
- props.transparency = args.getFloat("t");
111
- props.overlay = args.getBoolean("o");
112
- props.enforceDisplayPriority = args.getBoolean("p");
113
- props.elevation = args.getFloat("e");
114
- this._settings = core_common_1.PlanProjectionSettings.fromJSON(props);
115
- return true;
116
- }
117
- parseModels(models) {
118
- const vp = core_frontend_1.IModelApp.viewManager.selectedView; // already validated by super.parseAndRun
119
- models = models.toLowerCase();
120
- const isPlanProjection = (modelId) => {
121
- const model = vp.iModel.models.getLoaded(modelId);
122
- return undefined !== model && isPlanProjectionModel(model);
123
- };
124
- const isPlanProjectionModel = (model) => {
125
- const model3d = model.asGeometricModel3d;
126
- return undefined !== model3d && model3d.isPlanProjection;
127
- };
128
- switch (models[0]) {
129
- case "a": // all models in selector
130
- vp.view.forEachModel((model) => {
131
- if (isPlanProjectionModel(model))
132
- this._modelIds.add(model.id);
133
- });
134
- break;
135
- case "0": // comma-separated list of Ids
136
- for (const modelId of models.split(","))
137
- if (isPlanProjection(modelId))
138
- this._modelIds.add(modelId);
139
- break;
140
- }
141
- if (this._modelIds.size === 0) {
142
- core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Error, "No plan projection models"));
143
- return false;
144
- }
145
- return true;
146
- }
147
- }
148
- exports.ChangePlanProjectionSettingsTool = ChangePlanProjectionSettingsTool;
149
- ChangePlanProjectionSettingsTool.toolId = "ChangeLayerSettings";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ChangePlanProjectionSettingsTool = exports.OverrideSubCategoryPriorityTool = exports.DumpPlanProjectionSettingsTool = void 0;
8
+ /** @packageDocumentation
9
+ * @module Tools
10
+ */
11
+ const core_common_1 = require("@itwin/core-common");
12
+ const core_frontend_1 = require("@itwin/core-frontend");
13
+ const ClipboardUtilities_1 = require("../ClipboardUtilities");
14
+ const DisplayStyleTools_1 = require("./DisplayStyleTools");
15
+ const parseArgs_1 = require("./parseArgs");
16
+ /** Dumps a JSON representation of the plan projection settings for the current viewport.
17
+ * @beta
18
+ */
19
+ class DumpPlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
20
+ constructor() {
21
+ super(...arguments);
22
+ this._copyToClipboard = false;
23
+ }
24
+ static get minArgs() { return 0; }
25
+ static get maxArgs() { return 1; }
26
+ get require3d() { return true; }
27
+ async parse(args) {
28
+ if (1 === args.length)
29
+ this._copyToClipboard = "c" === args[0].toLowerCase();
30
+ return true;
31
+ }
32
+ async execute(vp) {
33
+ const settings = vp.displayStyle.settings.planProjectionSettings;
34
+ if (undefined === settings) {
35
+ core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, "No plan projection settings defined"));
36
+ return false;
37
+ }
38
+ const props = [];
39
+ for (const [modelId, value] of settings)
40
+ props.push({ modelId, settings: value.toJSON() });
41
+ const json = JSON.stringify(props);
42
+ if (this._copyToClipboard)
43
+ (0, ClipboardUtilities_1.copyStringToClipboard)(json);
44
+ const messageDetails = new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, "Dumped plan projection settings", json);
45
+ core_frontend_1.IModelApp.notifications.outputMessage(messageDetails);
46
+ return false;
47
+ }
48
+ }
49
+ DumpPlanProjectionSettingsTool.toolId = "DumpLayerSettings";
50
+ exports.DumpPlanProjectionSettingsTool = DumpPlanProjectionSettingsTool;
51
+ /** Changes subcategory display priority.
52
+ * @beta
53
+ */
54
+ class OverrideSubCategoryPriorityTool extends DisplayStyleTools_1.DisplayStyleTool {
55
+ constructor() {
56
+ super(...arguments);
57
+ this._subcatIds = new Set();
58
+ }
59
+ static get minArgs() { return 1; }
60
+ static get maxArgs() { return 2; }
61
+ async execute(vp) {
62
+ const style = vp.displayStyle;
63
+ for (const id of this._subcatIds) {
64
+ const ovr = style.getSubCategoryOverride(id);
65
+ if (undefined === ovr) {
66
+ if (undefined !== this._priority)
67
+ style.overrideSubCategory(id, core_common_1.SubCategoryOverride.fromJSON({ priority: this._priority }));
68
+ }
69
+ else {
70
+ const props = ovr.toJSON();
71
+ props.priority = this._priority;
72
+ style.overrideSubCategory(id, core_common_1.SubCategoryOverride.fromJSON(props));
73
+ }
74
+ }
75
+ return true;
76
+ }
77
+ async parse(args) {
78
+ for (const id of args[0].split(","))
79
+ this._subcatIds.add(id);
80
+ const priority = parseInt(args[1], 10);
81
+ if (!Number.isNaN(priority))
82
+ this._priority = priority;
83
+ return true;
84
+ }
85
+ }
86
+ OverrideSubCategoryPriorityTool.toolId = "OverrideSubCategoryPriority";
87
+ exports.OverrideSubCategoryPriorityTool = OverrideSubCategoryPriorityTool;
88
+ /** Changes plan projection settings for one or more models.
89
+ * @beta
90
+ */
91
+ class ChangePlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
92
+ constructor() {
93
+ super(...arguments);
94
+ this._modelIds = new Set();
95
+ }
96
+ static get minArgs() { return 1; }
97
+ static get maxArgs() { return 5; }
98
+ get require3d() { return true; }
99
+ async execute(vp) {
100
+ const settings = vp.displayStyle.settings;
101
+ for (const modelId of this._modelIds)
102
+ settings.setPlanProjectionSettings(modelId, this._settings);
103
+ return true;
104
+ }
105
+ async parse(inputArgs) {
106
+ if (!this.parseModels(inputArgs[0]))
107
+ return false;
108
+ const args = (0, parseArgs_1.parseArgs)(inputArgs.slice(1));
109
+ const props = {};
110
+ props.transparency = args.getFloat("t");
111
+ props.overlay = args.getBoolean("o");
112
+ props.enforceDisplayPriority = args.getBoolean("p");
113
+ props.elevation = args.getFloat("e");
114
+ this._settings = core_common_1.PlanProjectionSettings.fromJSON(props);
115
+ return true;
116
+ }
117
+ parseModels(models) {
118
+ const vp = core_frontend_1.IModelApp.viewManager.selectedView; // already validated by super.parseAndRun
119
+ models = models.toLowerCase();
120
+ const isPlanProjection = (modelId) => {
121
+ const model = vp.iModel.models.getLoaded(modelId);
122
+ return undefined !== model && isPlanProjectionModel(model);
123
+ };
124
+ const isPlanProjectionModel = (model) => {
125
+ const model3d = model.asGeometricModel3d;
126
+ return undefined !== model3d && model3d.isPlanProjection;
127
+ };
128
+ switch (models[0]) {
129
+ case "a": // all models in selector
130
+ vp.view.forEachModel((model) => {
131
+ if (isPlanProjectionModel(model))
132
+ this._modelIds.add(model.id);
133
+ });
134
+ break;
135
+ case "0": // comma-separated list of Ids
136
+ for (const modelId of models.split(","))
137
+ if (isPlanProjection(modelId))
138
+ this._modelIds.add(modelId);
139
+ break;
140
+ }
141
+ if (this._modelIds.size === 0) {
142
+ core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Error, "No plan projection models"));
143
+ return false;
144
+ }
145
+ return true;
146
+ }
147
+ }
148
+ ChangePlanProjectionSettingsTool.toolId = "ChangeLayerSettings";
149
+ exports.ChangePlanProjectionSettingsTool = ChangePlanProjectionSettingsTool;
150
150
  //# sourceMappingURL=PlanProjectionTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanProjectionTools.js","sourceRoot":"","sources":["../../../src/tools/PlanProjectionTools.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\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { PlanProjectionSettings, PlanProjectionSettingsProps, SubCategoryOverride } from \"@itwin/core-common\";\r\nimport { DisplayStyle3dState, IModelApp, ModelState, NotifyMessageDetails, OutputMessagePriority, Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\nimport { parseArgs } from \"./parseArgs\";\r\n\r\n/** Dumps a JSON representation of the plan projection settings for the current viewport.\r\n * @beta\r\n */\r\nexport class DumpPlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"DumpLayerSettings\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _copyToClipboard = false;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async parse(args: string[]) {\r\n if (1 === args.length)\r\n this._copyToClipboard = \"c\" === args[0].toLowerCase();\r\n\r\n return true;\r\n }\r\n\r\n protected async execute(vp: Viewport) {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings.planProjectionSettings;\r\n if (undefined === settings) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"No plan projection settings defined\"));\r\n return false;\r\n }\r\n\r\n const props = [];\r\n for (const [modelId, value] of settings)\r\n props.push({ modelId, settings: value.toJSON() });\r\n\r\n const json = JSON.stringify(props);\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n const messageDetails = new NotifyMessageDetails(OutputMessagePriority.Info, \"Dumped plan projection settings\", json);\r\n IModelApp.notifications.outputMessage(messageDetails);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Changes subcategory display priority.\r\n * @beta\r\n */\r\nexport abstract class OverrideSubCategoryPriorityTool extends DisplayStyleTool {\r\n public static override toolId = \"OverrideSubCategoryPriority\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n private readonly _subcatIds = new Set<string>();\r\n private _priority?: number;\r\n\r\n protected async execute(vp: Viewport) {\r\n const style = vp.displayStyle;\r\n for (const id of this._subcatIds) {\r\n const ovr = style.getSubCategoryOverride(id);\r\n if (undefined === ovr) {\r\n if (undefined !== this._priority)\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON({ priority: this._priority }));\r\n } else {\r\n const props = ovr.toJSON();\r\n props.priority = this._priority;\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON(props));\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected async parse(args: string[]) {\r\n for (const id of args[0].split(\",\"))\r\n this._subcatIds.add(id);\r\n\r\n const priority = parseInt(args[1], 10);\r\n if (!Number.isNaN(priority))\r\n this._priority = priority;\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Changes plan projection settings for one or more models.\r\n * @beta\r\n */\r\nexport abstract class ChangePlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"ChangeLayerSettings\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 5; }\r\n\r\n private readonly _modelIds = new Set<string>();\r\n private _settings?: PlanProjectionSettings;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async execute(vp: Viewport) {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings;\r\n for (const modelId of this._modelIds)\r\n settings.setPlanProjectionSettings(modelId, this._settings);\r\n\r\n return true;\r\n }\r\n\r\n protected async parse(inputArgs: string[]) {\r\n if (!this.parseModels(inputArgs[0]))\r\n return false;\r\n\r\n const args = parseArgs(inputArgs.slice(1));\r\n const props: PlanProjectionSettingsProps = {};\r\n\r\n props.transparency = args.getFloat(\"t\");\r\n props.overlay = args.getBoolean(\"o\");\r\n props.enforceDisplayPriority = args.getBoolean(\"p\");\r\n props.elevation = args.getFloat(\"e\");\r\n\r\n this._settings = PlanProjectionSettings.fromJSON(props);\r\n return true;\r\n }\r\n\r\n private parseModels(models: string) {\r\n const vp = IModelApp.viewManager.selectedView!; // already validated by super.parseAndRun\r\n models = models.toLowerCase();\r\n\r\n const isPlanProjection = (modelId: string) => {\r\n const model = vp.iModel.models.getLoaded(modelId);\r\n return undefined !== model && isPlanProjectionModel(model);\r\n };\r\n const isPlanProjectionModel = (model: ModelState) => {\r\n const model3d = model.asGeometricModel3d;\r\n return undefined !== model3d && model3d.isPlanProjection;\r\n };\r\n\r\n switch (models[0]) {\r\n case \"a\": // all models in selector\r\n vp.view.forEachModel((model) => {\r\n if (isPlanProjectionModel(model))\r\n this._modelIds.add(model.id);\r\n });\r\n break;\r\n case \"0\": // comma-separated list of Ids\r\n for (const modelId of models.split(\",\"))\r\n if (isPlanProjection(modelId))\r\n this._modelIds.add(modelId);\r\n\r\n break;\r\n }\r\n\r\n if (this._modelIds.size === 0) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"No plan projection models\"));\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PlanProjectionTools.js","sourceRoot":"","sources":["../../../src/tools/PlanProjectionTools.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\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { PlanProjectionSettings, PlanProjectionSettingsProps, SubCategoryOverride } from \"@itwin/core-common\";\r\nimport { DisplayStyle3dState, IModelApp, ModelState, NotifyMessageDetails, OutputMessagePriority, Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\nimport { parseArgs } from \"./parseArgs\";\r\n\r\n/** Dumps a JSON representation of the plan projection settings for the current viewport.\r\n * @beta\r\n */\r\nexport class DumpPlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"DumpLayerSettings\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _copyToClipboard = false;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async parse(args: string[]) {\r\n if (1 === args.length)\r\n this._copyToClipboard = \"c\" === args[0].toLowerCase();\r\n\r\n return true;\r\n }\r\n\r\n protected async execute(vp: Viewport) {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings.planProjectionSettings;\r\n if (undefined === settings) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"No plan projection settings defined\"));\r\n return false;\r\n }\r\n\r\n const props = [];\r\n for (const [modelId, value] of settings)\r\n props.push({ modelId, settings: value.toJSON() });\r\n\r\n const json = JSON.stringify(props);\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n const messageDetails = new NotifyMessageDetails(OutputMessagePriority.Info, \"Dumped plan projection settings\", json);\r\n IModelApp.notifications.outputMessage(messageDetails);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Changes subcategory display priority.\r\n * @beta\r\n */\r\nexport abstract class OverrideSubCategoryPriorityTool extends DisplayStyleTool {\r\n public static override toolId = \"OverrideSubCategoryPriority\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n private readonly _subcatIds = new Set<string>();\r\n private _priority?: number;\r\n\r\n protected async execute(vp: Viewport) {\r\n const style = vp.displayStyle;\r\n for (const id of this._subcatIds) {\r\n const ovr = style.getSubCategoryOverride(id);\r\n if (undefined === ovr) {\r\n if (undefined !== this._priority)\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON({ priority: this._priority }));\r\n } else {\r\n const props = ovr.toJSON();\r\n props.priority = this._priority;\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON(props));\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected async parse(args: string[]) {\r\n for (const id of args[0].split(\",\"))\r\n this._subcatIds.add(id);\r\n\r\n const priority = parseInt(args[1], 10);\r\n if (!Number.isNaN(priority))\r\n this._priority = priority;\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Changes plan projection settings for one or more models.\r\n * @beta\r\n */\r\nexport abstract class ChangePlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"ChangeLayerSettings\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 5; }\r\n\r\n private readonly _modelIds = new Set<string>();\r\n private _settings?: PlanProjectionSettings;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async execute(vp: Viewport) {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings;\r\n for (const modelId of this._modelIds)\r\n settings.setPlanProjectionSettings(modelId, this._settings);\r\n\r\n return true;\r\n }\r\n\r\n protected async parse(inputArgs: string[]) {\r\n if (!this.parseModels(inputArgs[0]))\r\n return false;\r\n\r\n const args = parseArgs(inputArgs.slice(1));\r\n const props: PlanProjectionSettingsProps = {};\r\n\r\n props.transparency = args.getFloat(\"t\");\r\n props.overlay = args.getBoolean(\"o\");\r\n props.enforceDisplayPriority = args.getBoolean(\"p\");\r\n props.elevation = args.getFloat(\"e\");\r\n\r\n this._settings = PlanProjectionSettings.fromJSON(props);\r\n return true;\r\n }\r\n\r\n private parseModels(models: string) {\r\n const vp = IModelApp.viewManager.selectedView!; // already validated by super.parseAndRun\r\n models = models.toLowerCase();\r\n\r\n const isPlanProjection = (modelId: string) => {\r\n const model = vp.iModel.models.getLoaded(modelId);\r\n return undefined !== model && isPlanProjectionModel(model);\r\n };\r\n const isPlanProjectionModel = (model: ModelState) => {\r\n const model3d = model.asGeometricModel3d;\r\n return undefined !== model3d && model3d.isPlanProjection;\r\n };\r\n\r\n switch (models[0]) {\r\n case \"a\": // all models in selector\r\n vp.view.forEachModel((model) => {\r\n if (isPlanProjectionModel(model))\r\n this._modelIds.add(model.id);\r\n });\r\n break;\r\n case \"0\": // comma-separated list of Ids\r\n for (const modelId of models.split(\",\"))\r\n if (isPlanProjection(modelId))\r\n this._modelIds.add(modelId);\r\n\r\n break;\r\n }\r\n\r\n if (this._modelIds.size === 0) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"No plan projection models\"));\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n"]}