@babylonjs/gui 5.0.0-alpha.6 → 5.0.0-alpha.60

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 (272) hide show
  1. package/2D/adtInstrumentation.js +1 -1
  2. package/2D/advancedDynamicTexture.d.ts +26 -4
  3. package/2D/advancedDynamicTexture.js +107 -47
  4. package/2D/advancedDynamicTexture.js.map +1 -1
  5. package/2D/controls/button.js +10 -10
  6. package/2D/controls/button.js.map +1 -1
  7. package/2D/controls/checkbox.d.ts +2 -1
  8. package/2D/controls/checkbox.js +10 -8
  9. package/2D/controls/checkbox.js.map +1 -1
  10. package/2D/controls/colorpicker.d.ts +4 -3
  11. package/2D/controls/colorpicker.js +40 -23
  12. package/2D/controls/colorpicker.js.map +1 -1
  13. package/2D/controls/container.d.ts +16 -5
  14. package/2D/controls/container.js +89 -11
  15. package/2D/controls/container.js.map +1 -1
  16. package/2D/controls/control.d.ts +40 -15
  17. package/2D/controls/control.js +103 -59
  18. package/2D/controls/control.js.map +1 -1
  19. package/2D/controls/displayGrid.d.ts +2 -1
  20. package/2D/controls/displayGrid.js +6 -6
  21. package/2D/controls/displayGrid.js.map +1 -1
  22. package/2D/controls/ellipse.d.ts +5 -3
  23. package/2D/controls/ellipse.js +9 -5
  24. package/2D/controls/ellipse.js.map +1 -1
  25. package/2D/controls/focusableButton.d.ts +4 -2
  26. package/2D/controls/focusableButton.js +9 -6
  27. package/2D/controls/focusableButton.js.map +1 -1
  28. package/2D/controls/focusableControl.d.ts +2 -1
  29. package/2D/controls/focusableControl.js.map +1 -1
  30. package/2D/controls/grid.d.ts +11 -2
  31. package/2D/controls/grid.js +63 -6
  32. package/2D/controls/grid.js.map +1 -1
  33. package/2D/controls/image.d.ts +20 -12
  34. package/2D/controls/image.js +154 -111
  35. package/2D/controls/image.js.map +1 -1
  36. package/2D/controls/index.js +29 -29
  37. package/2D/controls/inputPassword.js +4 -4
  38. package/2D/controls/inputPassword.js.map +1 -1
  39. package/2D/controls/inputText.d.ts +6 -4
  40. package/2D/controls/inputText.js +39 -13
  41. package/2D/controls/inputText.js.map +1 -1
  42. package/2D/controls/line.d.ts +3 -2
  43. package/2D/controls/line.js +8 -8
  44. package/2D/controls/line.js.map +1 -1
  45. package/2D/controls/multiLine.d.ts +4 -3
  46. package/2D/controls/multiLine.js +6 -6
  47. package/2D/controls/multiLine.js.map +1 -1
  48. package/2D/controls/radioButton.d.ts +2 -1
  49. package/2D/controls/radioButton.js +10 -7
  50. package/2D/controls/radioButton.js.map +1 -1
  51. package/2D/controls/rectangle.d.ts +8 -3
  52. package/2D/controls/rectangle.js +21 -5
  53. package/2D/controls/rectangle.js.map +1 -1
  54. package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -2
  55. package/2D/controls/scrollViewers/scrollViewer.js +9 -9
  56. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  57. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +4 -3
  58. package/2D/controls/scrollViewers/scrollViewerWindow.js +4 -4
  59. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  60. package/2D/controls/selector.js +8 -8
  61. package/2D/controls/selector.js.map +1 -1
  62. package/2D/controls/sliders/baseSlider.d.ts +1 -1
  63. package/2D/controls/sliders/baseSlider.js +12 -10
  64. package/2D/controls/sliders/baseSlider.js.map +1 -1
  65. package/2D/controls/sliders/imageBasedSlider.d.ts +10 -1
  66. package/2D/controls/sliders/imageBasedSlider.js +29 -5
  67. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  68. package/2D/controls/sliders/imageScrollBar.d.ts +2 -1
  69. package/2D/controls/sliders/imageScrollBar.js +3 -3
  70. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  71. package/2D/controls/sliders/scrollBar.d.ts +2 -1
  72. package/2D/controls/sliders/scrollBar.js +3 -3
  73. package/2D/controls/sliders/scrollBar.js.map +1 -1
  74. package/2D/controls/sliders/slider.d.ts +2 -1
  75. package/2D/controls/sliders/slider.js +4 -4
  76. package/2D/controls/sliders/slider.js.map +1 -1
  77. package/2D/controls/stackPanel.d.ts +3 -2
  78. package/2D/controls/stackPanel.js +6 -6
  79. package/2D/controls/stackPanel.js.map +1 -1
  80. package/2D/controls/statics.js +3 -3
  81. package/2D/controls/statics.js.map +1 -1
  82. package/2D/controls/textBlock.d.ts +9 -8
  83. package/2D/controls/textBlock.js +25 -15
  84. package/2D/controls/textBlock.js.map +1 -1
  85. package/2D/controls/textWrapper.js +2 -2
  86. package/2D/controls/textWrapper.js.map +1 -1
  87. package/2D/controls/toggleButton.d.ts +1 -13
  88. package/2D/controls/toggleButton.js +29 -38
  89. package/2D/controls/toggleButton.js.map +1 -1
  90. package/2D/controls/virtualKeyboard.js +5 -5
  91. package/2D/controls/virtualKeyboard.js.map +1 -1
  92. package/2D/index.d.ts +1 -1
  93. package/2D/index.js +9 -9
  94. package/2D/index.js.map +1 -1
  95. package/2D/math2D.js +2 -2
  96. package/2D/measure.js +1 -1
  97. package/2D/measure.js.map +1 -1
  98. package/2D/multiLinePoint.js +3 -3
  99. package/2D/style.js +2 -2
  100. package/2D/xmlLoader.d.ts +17 -3
  101. package/2D/xmlLoader.js +54 -15
  102. package/2D/xmlLoader.js.map +1 -1
  103. package/3D/behaviors/defaultBehavior.d.ts +73 -0
  104. package/3D/behaviors/defaultBehavior.js +122 -0
  105. package/3D/behaviors/defaultBehavior.js.map +1 -0
  106. package/3D/controls/abstractButton3D.d.ts +2 -2
  107. package/3D/controls/abstractButton3D.js +3 -3
  108. package/3D/controls/abstractButton3D.js.map +1 -1
  109. package/3D/controls/button3D.d.ts +0 -24
  110. package/3D/controls/button3D.js +7 -83
  111. package/3D/controls/button3D.js.map +1 -1
  112. package/3D/controls/container3D.js +2 -2
  113. package/3D/controls/contentDisplay3D.d.ts +30 -0
  114. package/3D/controls/contentDisplay3D.js +79 -0
  115. package/3D/controls/contentDisplay3D.js.map +1 -0
  116. package/3D/controls/control3D.d.ts +8 -7
  117. package/3D/controls/control3D.js +39 -28
  118. package/3D/controls/control3D.js.map +1 -1
  119. package/3D/controls/cylinderPanel.js +5 -5
  120. package/3D/controls/handMenu.d.ts +28 -0
  121. package/3D/controls/handMenu.js +48 -0
  122. package/3D/controls/handMenu.js.map +1 -0
  123. package/3D/controls/holographicBackplate.d.ts +48 -0
  124. package/3D/controls/holographicBackplate.js +121 -0
  125. package/3D/controls/holographicBackplate.js.map +1 -0
  126. package/3D/controls/holographicButton.d.ts +1 -1
  127. package/3D/controls/holographicButton.js +27 -24
  128. package/3D/controls/holographicButton.js.map +1 -1
  129. package/3D/controls/holographicSlate.d.ts +118 -0
  130. package/3D/controls/holographicSlate.js +360 -0
  131. package/3D/controls/holographicSlate.js.map +1 -0
  132. package/3D/controls/index.d.ts +10 -0
  133. package/3D/controls/index.js +22 -12
  134. package/3D/controls/index.js.map +1 -1
  135. package/3D/controls/meshButton3D.js +2 -2
  136. package/3D/controls/meshButton3D.js.map +1 -1
  137. package/3D/controls/nearMenu.d.ts +45 -0
  138. package/3D/controls/nearMenu.js +111 -0
  139. package/3D/controls/nearMenu.js.map +1 -0
  140. package/3D/controls/planePanel.js +3 -3
  141. package/3D/controls/scatterPanel.js +4 -4
  142. package/3D/controls/slider3D.d.ts +80 -0
  143. package/3D/controls/slider3D.js +268 -0
  144. package/3D/controls/slider3D.js.map +1 -0
  145. package/3D/controls/spherePanel.js +5 -5
  146. package/3D/controls/stackPanel3D.js +3 -3
  147. package/3D/controls/touchButton3D.d.ts +43 -0
  148. package/3D/controls/touchButton3D.js +133 -0
  149. package/3D/controls/touchButton3D.js.map +1 -0
  150. package/3D/controls/touchHolographicButton.d.ts +100 -0
  151. package/3D/controls/touchHolographicButton.js +408 -0
  152. package/3D/controls/touchHolographicButton.js.map +1 -0
  153. package/3D/controls/touchHolographicMenu.d.ts +61 -0
  154. package/3D/controls/touchHolographicMenu.js +147 -0
  155. package/3D/controls/touchHolographicMenu.js.map +1 -0
  156. package/3D/controls/touchMeshButton3D.d.ts +22 -0
  157. package/3D/controls/touchMeshButton3D.js +63 -0
  158. package/3D/controls/touchMeshButton3D.js.map +1 -0
  159. package/3D/controls/touchToggleButton3D.d.ts +35 -0
  160. package/3D/controls/touchToggleButton3D.js +60 -0
  161. package/3D/controls/touchToggleButton3D.js.map +1 -0
  162. package/3D/controls/volumeBasedPanel.d.ts +1 -1
  163. package/3D/controls/volumeBasedPanel.js +5 -5
  164. package/3D/controls/volumeBasedPanel.js.map +1 -1
  165. package/3D/gizmos/gizmoHandle.d.ts +108 -0
  166. package/3D/gizmos/gizmoHandle.js +210 -0
  167. package/3D/gizmos/gizmoHandle.js.map +1 -0
  168. package/3D/gizmos/index.d.ts +2 -0
  169. package/3D/gizmos/index.js +3 -0
  170. package/3D/gizmos/index.js.map +1 -0
  171. package/3D/gizmos/slateGizmo.d.ts +59 -0
  172. package/3D/gizmos/slateGizmo.js +364 -0
  173. package/3D/gizmos/slateGizmo.js.map +1 -0
  174. package/3D/gui3DManager.d.ts +9 -0
  175. package/3D/gui3DManager.js +30 -13
  176. package/3D/gui3DManager.js.map +1 -1
  177. package/3D/index.d.ts +3 -2
  178. package/3D/index.js +5 -4
  179. package/3D/index.js.map +1 -1
  180. package/3D/materials/fluent/fluentMaterial.d.ts +90 -0
  181. package/3D/materials/fluent/fluentMaterial.js +282 -0
  182. package/3D/materials/fluent/fluentMaterial.js.map +1 -0
  183. package/3D/materials/fluent/index.d.ts +1 -0
  184. package/3D/materials/fluent/index.js +2 -0
  185. package/3D/materials/fluent/index.js.map +1 -0
  186. package/3D/materials/{shaders → fluent/shaders}/fluent.fragment.d.ts +0 -0
  187. package/3D/materials/fluent/shaders/fluent.fragment.js +7 -0
  188. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
  189. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.d.ts +0 -0
  190. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.js +2 -2
  191. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
  192. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -0
  193. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +435 -0
  194. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
  195. package/3D/materials/fluentBackplate/index.d.ts +1 -0
  196. package/3D/materials/fluentBackplate/index.js +2 -0
  197. package/3D/materials/fluentBackplate/index.js.map +1 -0
  198. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
  199. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +7 -0
  200. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
  201. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
  202. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +7 -0
  203. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
  204. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -0
  205. package/3D/materials/fluentButton/fluentButtonMaterial.js +538 -0
  206. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
  207. package/3D/materials/fluentButton/index.d.ts +1 -0
  208. package/3D/materials/fluentButton/index.js +2 -0
  209. package/3D/materials/fluentButton/index.js.map +1 -0
  210. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
  211. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +7 -0
  212. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
  213. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
  214. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +7 -0
  215. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
  216. package/3D/materials/fluentMaterial.d.ts +2 -88
  217. package/3D/materials/fluentMaterial.js +2 -277
  218. package/3D/materials/fluentMaterial.js.map +1 -1
  219. package/3D/materials/handle/handleMaterial.d.ts +68 -0
  220. package/3D/materials/handle/handleMaterial.js +127 -0
  221. package/3D/materials/handle/handleMaterial.js.map +1 -0
  222. package/3D/materials/handle/index.d.ts +1 -0
  223. package/3D/materials/handle/index.js +2 -0
  224. package/3D/materials/handle/index.js.map +1 -0
  225. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
  226. package/3D/materials/handle/shaders/handle.fragment.js +7 -0
  227. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
  228. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
  229. package/3D/materials/handle/shaders/handle.vertex.js +7 -0
  230. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
  231. package/3D/materials/index.d.ts +5 -1
  232. package/3D/materials/index.js +5 -1
  233. package/3D/materials/index.js.map +1 -1
  234. package/3D/materials/mrdl/index.d.ts +3 -0
  235. package/3D/materials/mrdl/index.js +4 -0
  236. package/3D/materials/mrdl/index.js.map +1 -0
  237. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -0
  238. package/3D/materials/mrdl/mrdlBackplateMaterial.js +410 -0
  239. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
  240. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -0
  241. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +787 -0
  242. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
  243. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -0
  244. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +787 -0
  245. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
  246. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
  247. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +7 -0
  248. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
  249. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
  250. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +7 -0
  251. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
  252. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
  253. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +7 -0
  254. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
  255. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
  256. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +7 -0
  257. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
  258. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
  259. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +7 -0
  260. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
  261. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
  262. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +7 -0
  263. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
  264. package/3D/vector3WithInfo.js +1 -1
  265. package/index.d.ts +2 -2
  266. package/index.js +2 -2
  267. package/index.js.map +1 -1
  268. package/legacy/legacy.js +2 -2
  269. package/package.json +126 -9
  270. package/3D/materials/shaders/fluent.fragment.js +0 -7
  271. package/3D/materials/shaders/fluent.fragment.js.map +0 -1
  272. package/3D/materials/shaders/fluent.vertex.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { PerfCounter } from "@babylonjs/core/Misc/perfCounter";
1
+ import { PerfCounter } from "@babylonjs/core/Misc/perfCounter.js";
2
2
  /**
3
3
  * This class can be used to get instrumentation data from a AdvancedDynamicTexture object
4
4
  */
@@ -170,6 +170,19 @@ export declare class AdvancedDynamicTexture extends DynamicTexture {
170
170
  */
171
171
  getDescendants(directDescendantsOnly?: boolean, predicate?: (control: Control) => boolean): Control[];
172
172
  /**
173
+ * Will return all controls with the given type name
174
+ * @param typeName defines the type name to search for
175
+ * @returns an array of all controls found
176
+ */
177
+ getControlsByType(typeName: string): Control[];
178
+ /**
179
+ * Will return the first control with the given name
180
+ * @param name defines the name to search for
181
+ * @return the first control found or null
182
+ */
183
+ getControlByName(name: string): Nullable<Control>;
184
+ private _getControlByKey;
185
+ /**
173
186
  * Gets or sets the current focused control
174
187
  */
175
188
  get focusedControl(): Nullable<IFocusableControl>;
@@ -249,7 +262,7 @@ export declare class AdvancedDynamicTexture extends DynamicTexture {
249
262
  dispose(): void;
250
263
  private _onResize;
251
264
  /** @hidden */
252
- _getGlobalViewport(scene: Scene): Viewport;
265
+ _getGlobalViewport(): Viewport;
253
266
  /**
254
267
  * Get screen coordinates for a vector3
255
268
  * @param position defines the position to project
@@ -316,14 +329,23 @@ export declare class AdvancedDynamicTexture extends DynamicTexture {
316
329
  /**
317
330
  * Recreate the content of the ADT from a JSON object
318
331
  * @param serializedObject define the JSON serialized object to restore from
332
+ * @param scaleToSize defines whether to scale to texture to the saved size
319
333
  */
320
- parseContent(serializedObject: any): void;
334
+ parseContent(serializedObject: any, scaleToSize?: boolean): void;
321
335
  /**
322
336
  * Recreate the content of the ADT from a snippet saved by the GUI editor
323
337
  * @param snippetId defines the snippet to load
338
+ * @param scaleToSize defines whether to scale to texture to the saved size
324
339
  * @returns a promise that will resolve on success
325
340
  */
326
- parseFromSnippetAsync(snippetId: string): Promise<void>;
341
+ parseFromSnippetAsync(snippetId: string, scaleToSize?: boolean): Promise<void>;
342
+ /**
343
+ * Recreate the content of the ADT from a url json
344
+ * @param url defines the url to load
345
+ * @param scaleToSize defines whether to scale to texture to the saved size
346
+ * @returns a promise that will resolve on success
347
+ */
348
+ parseFromURLAsync(url: string, scaleToSize?: boolean): Promise<void>;
327
349
  /**
328
350
  * Creates a new AdvancedDynamicTexture in projected mode (ie. attached to a mesh)
329
351
  * @param mesh defines the mesh which will receive the texture
@@ -353,7 +375,7 @@ export declare class AdvancedDynamicTexture extends DynamicTexture {
353
375
  * LayerMask is set through advancedTexture.layer.layerMask
354
376
  * @param name defines name for the texture
355
377
  * @param foreground defines a boolean indicating if the texture must be rendered in foreground (default is true)
356
- * @param scene defines the hsoting scene
378
+ * @param scene defines the hosting scene
357
379
  * @param sampling defines the texture sampling mode (Texture.BILINEAR_SAMPLINGMODE by default)
358
380
  * @returns a new AdvancedDynamicTexture
359
381
  */
@@ -1,22 +1,22 @@
1
1
  import { __extends } from "tslib";
2
- import { Observable } from "@babylonjs/core/Misc/observable";
3
- import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
4
- import { Tools } from "@babylonjs/core/Misc/tools";
5
- import { PointerEventTypes } from '@babylonjs/core/Events/pointerEvents';
6
- import { ClipboardEventTypes, ClipboardInfo } from "@babylonjs/core/Events/clipboardEvents";
7
- import { KeyboardEventTypes } from "@babylonjs/core/Events/keyboardEvents";
8
- import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial";
9
- import { Texture } from "@babylonjs/core/Materials/Textures/texture";
10
- import { DynamicTexture } from "@babylonjs/core/Materials/Textures/dynamicTexture";
11
- import { Layer } from "@babylonjs/core/Layers/layer";
12
- import { Container } from "./controls/container";
13
- import { Control } from "./controls/control";
14
- import { Style } from "./style";
15
- import { Measure } from "./measure";
16
- import { Constants } from '@babylonjs/core/Engines/constants';
17
- import { Viewport } from '@babylonjs/core/Maths/math.viewport';
18
- import { Color3 } from '@babylonjs/core/Maths/math.color';
19
- import { WebRequest } from "@babylonjs/core/Misc/webRequest";
2
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
3
+ import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
5
+ import { PointerEventTypes } from '@babylonjs/core/Events/pointerEvents.js';
6
+ import { ClipboardEventTypes, ClipboardInfo } from "@babylonjs/core/Events/clipboardEvents.js";
7
+ import { KeyboardEventTypes } from "@babylonjs/core/Events/keyboardEvents.js";
8
+ import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial.js";
9
+ import { Texture } from "@babylonjs/core/Materials/Textures/texture.js";
10
+ import { DynamicTexture } from "@babylonjs/core/Materials/Textures/dynamicTexture.js";
11
+ import { Layer } from "@babylonjs/core/Layers/layer.js";
12
+ import { Container } from "./controls/container.js";
13
+ import { Control } from "./controls/control.js";
14
+ import { Style } from "./style.js";
15
+ import { Measure } from "./measure.js";
16
+ import { Constants } from '@babylonjs/core/Engines/constants.js';
17
+ import { Viewport } from '@babylonjs/core/Maths/math.viewport.js';
18
+ import { Color3 } from '@babylonjs/core/Maths/math.color.js';
19
+ import { WebRequest } from "@babylonjs/core/Misc/webRequest.js";
20
20
  /**
21
21
  * Class used to create texture to support 2D GUI elements
22
22
  * @see https://doc.babylonjs.com/how_to/gui
@@ -38,6 +38,7 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
38
38
  if (height === void 0) { height = 0; }
39
39
  if (generateMipMaps === void 0) { generateMipMaps = false; }
40
40
  if (samplingMode === void 0) { samplingMode = Texture.NEAREST_SAMPLINGMODE; }
41
+ if (invertY === void 0) { invertY = true; }
41
42
  var _this = _super.call(this, name, { width: width, height: height }, scene, generateMipMaps, samplingMode, Constants.TEXTUREFORMAT_RGBA, invertY) || this;
42
43
  _this._isDirty = false;
43
44
  /** @hidden */
@@ -130,6 +131,7 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
130
131
  if (!scene || !_this._texture) {
131
132
  return _this;
132
133
  }
134
+ _this.applyYInversionOnUpdate = invertY;
133
135
  _this._rootElement = scene.getEngine().getInputElement();
134
136
  _this._renderObserver = scene.onBeforeCameraRenderObservable.add(function (camera) { return _this._checkUpdate(camera); });
135
137
  _this._preKeyboardObserver = scene.onPreKeyboardObservable.add(function (info) {
@@ -341,6 +343,25 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
341
343
  AdvancedDynamicTexture.prototype.getDescendants = function (directDescendantsOnly, predicate) {
342
344
  return this._rootContainer.getDescendants(directDescendantsOnly, predicate);
343
345
  };
346
+ /**
347
+ * Will return all controls with the given type name
348
+ * @param typeName defines the type name to search for
349
+ * @returns an array of all controls found
350
+ */
351
+ AdvancedDynamicTexture.prototype.getControlsByType = function (typeName) {
352
+ return this._rootContainer.getDescendants(false, function (control) { return control.typeName === typeName; });
353
+ };
354
+ /**
355
+ * Will return the first control with the given name
356
+ * @param name defines the name to search for
357
+ * @return the first control found or null
358
+ */
359
+ AdvancedDynamicTexture.prototype.getControlByName = function (name) {
360
+ return this._getControlByKey("name", name);
361
+ };
362
+ AdvancedDynamicTexture.prototype._getControlByKey = function (key, value) {
363
+ return this._rootContainer.getDescendants().find(function (control) { return control[key] === value; }) || null;
364
+ };
344
365
  Object.defineProperty(AdvancedDynamicTexture.prototype, "focusedControl", {
345
366
  /**
346
367
  * Gets or sets the current focused control
@@ -565,9 +586,9 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
565
586
  this.invalidateRect(0, 0, textureSize.width - 1, textureSize.height - 1);
566
587
  };
567
588
  /** @hidden */
568
- AdvancedDynamicTexture.prototype._getGlobalViewport = function (scene) {
569
- var engine = scene.getEngine();
570
- return this._fullscreenViewport.toGlobal(engine.getRenderWidth(), engine.getRenderHeight());
589
+ AdvancedDynamicTexture.prototype._getGlobalViewport = function () {
590
+ var size = this.getSize();
591
+ return this._fullscreenViewport.toGlobal(size.width, size.height);
571
592
  };
572
593
  /**
573
594
  * Get screen coordinates for a vector3
@@ -576,14 +597,8 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
576
597
  * @returns the projected position
577
598
  */
578
599
  AdvancedDynamicTexture.prototype.getProjectedPosition = function (position, worldMatrix) {
579
- var scene = this.getScene();
580
- if (!scene) {
581
- return Vector2.Zero();
582
- }
583
- var globalViewport = this._getGlobalViewport(scene);
584
- var projectedPosition = Vector3.Project(position, worldMatrix, scene.getTransformMatrix(), globalViewport);
585
- projectedPosition.scaleInPlace(this.renderScale);
586
- return new Vector2(projectedPosition.x, projectedPosition.y);
600
+ var result = this.getProjectedPositionWithZ(position, worldMatrix);
601
+ return new Vector2(result.x, result.y);
587
602
  };
588
603
  /**
589
604
  * Get screen coordinates for a vector3
@@ -596,9 +611,8 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
596
611
  if (!scene) {
597
612
  return Vector3.Zero();
598
613
  }
599
- var globalViewport = this._getGlobalViewport(scene);
614
+ var globalViewport = this._getGlobalViewport();
600
615
  var projectedPosition = Vector3.Project(position, worldMatrix, scene.getTransformMatrix(), globalViewport);
601
- projectedPosition.scaleInPlace(this.renderScale);
602
616
  return new Vector3(projectedPosition.x, projectedPosition.y, projectedPosition.z);
603
617
  };
604
618
  AdvancedDynamicTexture.prototype._checkUpdate = function (camera) {
@@ -612,7 +626,7 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
612
626
  if (!scene) {
613
627
  return;
614
628
  }
615
- var globalViewport = this._getGlobalViewport(scene);
629
+ var globalViewport = this._getGlobalViewport();
616
630
  var _loop_1 = function (control) {
617
631
  if (!control.isVisible) {
618
632
  return "continue";
@@ -631,11 +645,8 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
631
645
  return "continue";
632
646
  }
633
647
  control.notRenderable = false;
634
- // Account for RenderScale.
635
- projectedPosition.scaleInPlace(this_1.renderScale);
636
648
  control._moveToProjectedPosition(projectedPosition);
637
649
  };
638
- var this_1 = this;
639
650
  for (var _i = 0, _a = this._linkedControls; _i < _a.length; _i++) {
640
651
  var control = _a[_i];
641
652
  _loop_1(control);
@@ -704,6 +715,9 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
704
715
  var textureSize = this.getSize();
705
716
  if (this._isFullscreen) {
706
717
  var camera = scene.cameraToUseForPointers || scene.activeCamera;
718
+ if (!camera) {
719
+ return;
720
+ }
707
721
  var viewport = camera.viewport;
708
722
  x = x * (textureSize.width / (engine.getRenderWidth() * viewport.width));
709
723
  y = y * (textureSize.height / (engine.getRenderHeight() * viewport.height));
@@ -714,7 +728,9 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
714
728
  }
715
729
  this._cursorChanged = false;
716
730
  if (!this._rootContainer._processPicking(x, y, pi, type, pointerId, buttonIndex, deltaX, deltaY)) {
717
- this._changeCursor("");
731
+ if (!scene.doNotHandleCursors) {
732
+ this._changeCursor("");
733
+ }
718
734
  if (type === PointerEventTypes.POINTERMOVE) {
719
735
  if (this._lastControlOver[pointerId]) {
720
736
  this._lastControlOver[pointerId]._onPointerOut(this._lastControlOver[pointerId], pi);
@@ -722,7 +738,7 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
722
738
  }
723
739
  }
724
740
  }
725
- if (!this._cursorChanged) {
741
+ if (!this._cursorChanged && !scene.doNotHandleCursors) {
726
742
  this._changeCursor("");
727
743
  }
728
744
  this._manageFocus();
@@ -762,9 +778,6 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
762
778
  && pi.type !== PointerEventTypes.POINTERWHEEL) {
763
779
  return;
764
780
  }
765
- if (!scene) {
766
- return;
767
- }
768
781
  if (pi.type === PointerEventTypes.POINTERMOVE && pi.event.pointerId) {
769
782
  _this._defaultMousePointerId = pi.event.pointerId; // This is required to make sure we have the correct pointer ID for wheel
770
783
  }
@@ -824,15 +837,19 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
824
837
  this._pointerObserver = scene.onPointerObservable.add(function (pi, state) {
825
838
  if (pi.type !== PointerEventTypes.POINTERMOVE
826
839
  && pi.type !== PointerEventTypes.POINTERUP
827
- && pi.type !== PointerEventTypes.POINTERDOWN) {
840
+ && pi.type !== PointerEventTypes.POINTERDOWN
841
+ && pi.type !== PointerEventTypes.POINTERWHEEL) {
828
842
  return;
829
843
  }
844
+ if (pi.type === PointerEventTypes.POINTERMOVE && pi.event.pointerId) {
845
+ _this._defaultMousePointerId = pi.event.pointerId; // This is required to make sure we have the correct pointer ID for wheel
846
+ }
830
847
  var pointerId = pi.event.pointerId || _this._defaultMousePointerId;
831
848
  if (pi.pickInfo && pi.pickInfo.hit && pi.pickInfo.pickedMesh === mesh) {
832
849
  var uv = pi.pickInfo.getTextureCoordinates();
833
850
  if (uv) {
834
851
  var size = _this.getSize();
835
- _this._doPicking(uv.x * size.width, (_this.applyYInversionOnUpdate ? (1.0 - uv.y) : uv.y) * size.height, pi, pi.type, pointerId, pi.event.button);
852
+ _this._doPicking(uv.x * size.width, (_this.applyYInversionOnUpdate ? (1.0 - uv.y) : uv.y) * size.height, pi, pi.type, pointerId, pi.event.button, pi.event.deltaX, pi.event.deltaY);
836
853
  }
837
854
  }
838
855
  else if (pi.type === PointerEventTypes.POINTERUP) {
@@ -919,6 +936,7 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
919
936
  var key = _a[0], value = _a[1];
920
937
  value._onCanvasBlur();
921
938
  });
939
+ _this.focusedControl = null;
922
940
  _this._lastControlDown = {};
923
941
  });
924
942
  };
@@ -927,8 +945,11 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
927
945
  * @returns an object with the JSON serialized data
928
946
  */
929
947
  AdvancedDynamicTexture.prototype.serializeContent = function () {
948
+ var size = this.getSize();
930
949
  var serializationObject = {
931
- root: {}
950
+ root: {},
951
+ width: size.width,
952
+ height: size.height,
932
953
  };
933
954
  this._rootContainer.serialize(serializationObject.root);
934
955
  return serializationObject;
@@ -936,16 +957,25 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
936
957
  /**
937
958
  * Recreate the content of the ADT from a JSON object
938
959
  * @param serializedObject define the JSON serialized object to restore from
960
+ * @param scaleToSize defines whether to scale to texture to the saved size
939
961
  */
940
- AdvancedDynamicTexture.prototype.parseContent = function (serializedObject) {
962
+ AdvancedDynamicTexture.prototype.parseContent = function (serializedObject, scaleToSize) {
941
963
  this._rootContainer = Control.Parse(serializedObject.root, this);
964
+ if (scaleToSize) {
965
+ var width = serializedObject.width;
966
+ var height = serializedObject.height;
967
+ if (typeof (width) === "number" && typeof (height) === "number" && width >= 0 && height >= 0) {
968
+ this.scaleTo(width, height);
969
+ }
970
+ }
942
971
  };
943
972
  /**
944
973
  * Recreate the content of the ADT from a snippet saved by the GUI editor
945
974
  * @param snippetId defines the snippet to load
975
+ * @param scaleToSize defines whether to scale to texture to the saved size
946
976
  * @returns a promise that will resolve on success
947
977
  */
948
- AdvancedDynamicTexture.prototype.parseFromSnippetAsync = function (snippetId) {
978
+ AdvancedDynamicTexture.prototype.parseFromSnippetAsync = function (snippetId, scaleToSize) {
949
979
  var _this = this;
950
980
  if (snippetId === "_BLANK") {
951
981
  return Promise.resolve();
@@ -957,7 +987,7 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
957
987
  if (request.status == 200) {
958
988
  var snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);
959
989
  var serializationObject = JSON.parse(snippet.gui);
960
- _this.parseContent(serializationObject);
990
+ _this.parseContent(serializationObject, scaleToSize);
961
991
  _this.snippetId = snippetId;
962
992
  resolve();
963
993
  }
@@ -970,6 +1000,36 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
970
1000
  request.send();
971
1001
  });
972
1002
  };
1003
+ /**
1004
+ * Recreate the content of the ADT from a url json
1005
+ * @param url defines the url to load
1006
+ * @param scaleToSize defines whether to scale to texture to the saved size
1007
+ * @returns a promise that will resolve on success
1008
+ */
1009
+ AdvancedDynamicTexture.prototype.parseFromURLAsync = function (url, scaleToSize) {
1010
+ var _this = this;
1011
+ if (url === "") {
1012
+ return Promise.resolve();
1013
+ }
1014
+ return new Promise(function (resolve, reject) {
1015
+ var request = new WebRequest();
1016
+ request.addEventListener("readystatechange", function () {
1017
+ if (request.readyState == 4) {
1018
+ if (request.status == 200) {
1019
+ var gui = request.responseText;
1020
+ var serializationObject = JSON.parse(gui);
1021
+ _this.parseContent(serializationObject, scaleToSize);
1022
+ resolve();
1023
+ }
1024
+ else {
1025
+ reject("Unable to load");
1026
+ }
1027
+ }
1028
+ });
1029
+ request.open("GET", url);
1030
+ request.send();
1031
+ });
1032
+ };
973
1033
  // Statics
974
1034
  /**
975
1035
  * Creates a new AdvancedDynamicTexture in projected mode (ie. attached to a mesh)
@@ -1029,7 +1089,7 @@ var AdvancedDynamicTexture = /** @class */ (function (_super) {
1029
1089
  * LayerMask is set through advancedTexture.layer.layerMask
1030
1090
  * @param name defines name for the texture
1031
1091
  * @param foreground defines a boolean indicating if the texture must be rendered in foreground (default is true)
1032
- * @param scene defines the hsoting scene
1092
+ * @param scene defines the hosting scene
1033
1093
  * @param sampling defines the texture sampling mode (Texture.BILINEAR_SAMPLINGMODE by default)
1034
1094
  * @returns a new AdvancedDynamicTexture
1035
1095
  */