@babylonjs/gui 5.0.0-rc.1 → 5.0.0-rc.10

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 (305) hide show
  1. package/2D/adtInstrumentation.d.ts +52 -52
  2. package/2D/adtInstrumentation.js +126 -126
  3. package/2D/adtInstrumentation.js.map +1 -1
  4. package/2D/advancedDynamicTexture.d.ts +449 -423
  5. package/2D/advancedDynamicTexture.js +1318 -1286
  6. package/2D/advancedDynamicTexture.js.map +1 -1
  7. package/2D/controls/button.d.ts +135 -97
  8. package/2D/controls/button.js +276 -238
  9. package/2D/controls/button.js.map +1 -1
  10. package/2D/controls/checkbox.d.ts +59 -51
  11. package/2D/controls/checkbox.js +188 -178
  12. package/2D/controls/checkbox.js.map +1 -1
  13. package/2D/controls/colorpicker.d.ts +103 -90
  14. package/2D/controls/colorpicker.js +1417 -1400
  15. package/2D/controls/colorpicker.js.map +1 -1
  16. package/2D/controls/container.d.ts +175 -130
  17. package/2D/controls/container.js +570 -525
  18. package/2D/controls/container.js.map +1 -1
  19. package/2D/controls/control.d.ts +866 -743
  20. package/2D/controls/control.js +2433 -2308
  21. package/2D/controls/control.js.map +1 -1
  22. package/2D/controls/displayGrid.d.ts +53 -55
  23. package/2D/controls/displayGrid.js +245 -245
  24. package/2D/controls/displayGrid.js.map +1 -1
  25. package/2D/controls/ellipse.d.ts +21 -21
  26. package/2D/controls/ellipse.js +85 -85
  27. package/2D/controls/ellipse.js.map +1 -1
  28. package/2D/controls/focusableButton.d.ts +59 -52
  29. package/2D/controls/focusableButton.js +99 -92
  30. package/2D/controls/focusableButton.js.map +1 -1
  31. package/2D/controls/focusableControl.d.ts +34 -34
  32. package/2D/controls/focusableControl.js +1 -1
  33. package/2D/controls/focusableControl.js.map +1 -1
  34. package/2D/controls/grid.d.ts +139 -135
  35. package/2D/controls/grid.js +529 -525
  36. package/2D/controls/grid.js.map +1 -1
  37. package/2D/controls/image.d.ts +204 -197
  38. package/2D/controls/image.js +887 -879
  39. package/2D/controls/image.js.map +1 -1
  40. package/2D/controls/index.d.ts +29 -29
  41. package/2D/controls/index.js +29 -29
  42. package/2D/controls/index.js.map +1 -1
  43. package/2D/controls/inputPassword.d.ts +9 -8
  44. package/2D/controls/inputPassword.js +28 -25
  45. package/2D/controls/inputPassword.js.map +1 -1
  46. package/2D/controls/inputText.d.ts +201 -182
  47. package/2D/controls/inputText.js +1119 -1096
  48. package/2D/controls/inputText.js.map +1 -1
  49. package/2D/controls/line.d.ts +66 -66
  50. package/2D/controls/line.js +271 -271
  51. package/2D/controls/line.js.map +1 -1
  52. package/2D/controls/multiLine.d.ts +75 -77
  53. package/2D/controls/multiLine.js +262 -262
  54. package/2D/controls/multiLine.js.map +1 -1
  55. package/2D/controls/radioButton.d.ts +49 -49
  56. package/2D/controls/radioButton.js +205 -205
  57. package/2D/controls/radioButton.js.map +1 -1
  58. package/2D/controls/rectangle.d.ts +29 -29
  59. package/2D/controls/rectangle.js +150 -150
  60. package/2D/controls/rectangle.js.map +1 -1
  61. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -175
  62. package/2D/controls/scrollViewers/scrollViewer.js +677 -676
  63. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  64. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -45
  65. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -263
  66. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  67. package/2D/controls/selector.d.ts +263 -209
  68. package/2D/controls/selector.js +692 -629
  69. package/2D/controls/selector.js.map +1 -1
  70. package/2D/controls/sliders/baseSlider.d.ts +82 -78
  71. package/2D/controls/sliders/baseSlider.js +347 -343
  72. package/2D/controls/sliders/baseSlider.js.map +1 -1
  73. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -47
  74. package/2D/controls/sliders/imageBasedSlider.js +192 -188
  75. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  76. package/2D/controls/sliders/imageScrollBar.d.ts +65 -61
  77. package/2D/controls/sliders/imageScrollBar.js +263 -256
  78. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  79. package/2D/controls/sliders/scrollBar.d.ts +38 -34
  80. package/2D/controls/sliders/scrollBar.js +143 -136
  81. package/2D/controls/sliders/scrollBar.js.map +1 -1
  82. package/2D/controls/sliders/slider.d.ts +35 -37
  83. package/2D/controls/sliders/slider.js +271 -271
  84. package/2D/controls/sliders/slider.js.map +1 -1
  85. package/2D/controls/stackPanel.d.ts +64 -56
  86. package/2D/controls/stackPanel.js +246 -236
  87. package/2D/controls/stackPanel.js.map +1 -1
  88. package/2D/controls/statics.d.ts +6 -6
  89. package/2D/controls/statics.js +49 -47
  90. package/2D/controls/statics.js.map +1 -1
  91. package/2D/controls/textBlock.d.ts +175 -172
  92. package/2D/controls/textBlock.js +603 -598
  93. package/2D/controls/textBlock.js.map +1 -1
  94. package/2D/controls/textWrapper.d.ts +13 -13
  95. package/2D/controls/textWrapper.js +101 -101
  96. package/2D/controls/textWrapper.js.map +1 -1
  97. package/2D/controls/toggleButton.d.ts +117 -83
  98. package/2D/controls/toggleButton.js +268 -234
  99. package/2D/controls/toggleButton.js.map +1 -1
  100. package/2D/controls/virtualKeyboard.d.ts +96 -96
  101. package/2D/controls/virtualKeyboard.js +256 -256
  102. package/2D/controls/virtualKeyboard.js.map +1 -1
  103. package/2D/index.d.ts +9 -9
  104. package/2D/index.js +10 -9
  105. package/2D/index.js.map +1 -1
  106. package/2D/math2D.d.ts +117 -117
  107. package/2D/math2D.js +221 -221
  108. package/2D/math2D.js.map +1 -1
  109. package/2D/measure.d.ts +77 -77
  110. package/2D/measure.js +139 -149
  111. package/2D/measure.js.map +1 -1
  112. package/2D/multiLinePoint.d.ts +47 -47
  113. package/2D/multiLinePoint.js +127 -127
  114. package/2D/multiLinePoint.js.map +1 -1
  115. package/2D/style.d.ts +46 -46
  116. package/2D/style.js +97 -97
  117. package/2D/style.js.map +1 -1
  118. package/2D/valueAndUnit.d.ts +89 -89
  119. package/2D/valueAndUnit.js +226 -222
  120. package/2D/valueAndUnit.js.map +1 -1
  121. package/2D/xmlLoader.d.ts +60 -60
  122. package/2D/xmlLoader.js +348 -348
  123. package/2D/xmlLoader.js.map +1 -1
  124. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  125. package/3D/behaviors/defaultBehavior.js +121 -121
  126. package/3D/behaviors/defaultBehavior.js.map +1 -1
  127. package/3D/controls/abstractButton3D.d.ts +15 -15
  128. package/3D/controls/abstractButton3D.js +25 -25
  129. package/3D/controls/abstractButton3D.js.map +1 -1
  130. package/3D/controls/button3D.d.ts +30 -30
  131. package/3D/controls/button3D.js +93 -93
  132. package/3D/controls/button3D.js.map +1 -1
  133. package/3D/controls/container3D.d.ts +72 -72
  134. package/3D/controls/container3D.js +139 -140
  135. package/3D/controls/container3D.js.map +1 -1
  136. package/3D/controls/contentDisplay3D.d.ts +30 -30
  137. package/3D/controls/contentDisplay3D.js +79 -78
  138. package/3D/controls/contentDisplay3D.js.map +1 -1
  139. package/3D/controls/control3D.d.ts +201 -165
  140. package/3D/controls/control3D.js +445 -408
  141. package/3D/controls/control3D.js.map +1 -1
  142. package/3D/controls/cylinderPanel.d.ts +17 -17
  143. package/3D/controls/cylinderPanel.js +66 -66
  144. package/3D/controls/cylinderPanel.js.map +1 -1
  145. package/3D/controls/handMenu.d.ts +28 -28
  146. package/3D/controls/handMenu.js +47 -47
  147. package/3D/controls/handMenu.js.map +1 -1
  148. package/3D/controls/holographicBackplate.d.ts +49 -48
  149. package/3D/controls/holographicBackplate.js +120 -120
  150. package/3D/controls/holographicBackplate.js.map +1 -1
  151. package/3D/controls/holographicButton.d.ts +84 -83
  152. package/3D/controls/holographicButton.js +339 -338
  153. package/3D/controls/holographicButton.js.map +1 -1
  154. package/3D/controls/holographicSlate.d.ts +131 -128
  155. package/3D/controls/holographicSlate.js +431 -428
  156. package/3D/controls/holographicSlate.js.map +1 -1
  157. package/3D/controls/index.d.ts +21 -21
  158. package/3D/controls/index.js +21 -21
  159. package/3D/controls/index.js.map +1 -1
  160. package/3D/controls/meshButton3D.d.ts +21 -21
  161. package/3D/controls/meshButton3D.js +62 -61
  162. package/3D/controls/meshButton3D.js.map +1 -1
  163. package/3D/controls/nearMenu.d.ts +44 -44
  164. package/3D/controls/nearMenu.js +114 -112
  165. package/3D/controls/nearMenu.js.map +1 -1
  166. package/3D/controls/planePanel.d.ts +9 -9
  167. package/3D/controls/planePanel.js +36 -36
  168. package/3D/controls/planePanel.js.map +1 -1
  169. package/3D/controls/scatterPanel.d.ts +18 -18
  170. package/3D/controls/scatterPanel.js +108 -108
  171. package/3D/controls/scatterPanel.js.map +1 -1
  172. package/3D/controls/slider3D.d.ts +81 -81
  173. package/3D/controls/slider3D.js +268 -267
  174. package/3D/controls/slider3D.js.map +1 -1
  175. package/3D/controls/spherePanel.d.ts +17 -17
  176. package/3D/controls/spherePanel.js +67 -67
  177. package/3D/controls/spherePanel.js.map +1 -1
  178. package/3D/controls/stackPanel3D.d.ts +22 -22
  179. package/3D/controls/stackPanel3D.js +107 -107
  180. package/3D/controls/stackPanel3D.js.map +1 -1
  181. package/3D/controls/touchButton3D.d.ts +80 -75
  182. package/3D/controls/touchButton3D.js +233 -227
  183. package/3D/controls/touchButton3D.js.map +1 -1
  184. package/3D/controls/touchHolographicButton.d.ts +110 -109
  185. package/3D/controls/touchHolographicButton.js +445 -445
  186. package/3D/controls/touchHolographicButton.js.map +1 -1
  187. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  188. package/3D/controls/touchHolographicMenu.js +149 -148
  189. package/3D/controls/touchHolographicMenu.js.map +1 -1
  190. package/3D/controls/touchMeshButton3D.d.ts +21 -22
  191. package/3D/controls/touchMeshButton3D.js +62 -62
  192. package/3D/controls/touchMeshButton3D.js.map +1 -1
  193. package/3D/controls/volumeBasedPanel.d.ts +53 -52
  194. package/3D/controls/volumeBasedPanel.js +174 -174
  195. package/3D/controls/volumeBasedPanel.js.map +1 -1
  196. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  197. package/3D/gizmos/gizmoHandle.js +209 -209
  198. package/3D/gizmos/gizmoHandle.js.map +1 -1
  199. package/3D/gizmos/index.d.ts +2 -2
  200. package/3D/gizmos/index.js +2 -2
  201. package/3D/gizmos/index.js.map +1 -1
  202. package/3D/gizmos/slateGizmo.d.ts +57 -57
  203. package/3D/gizmos/slateGizmo.js +369 -369
  204. package/3D/gizmos/slateGizmo.js.map +1 -1
  205. package/3D/gui3DManager.d.ts +94 -94
  206. package/3D/gui3DManager.js +257 -257
  207. package/3D/gui3DManager.js.map +1 -1
  208. package/3D/index.d.ts +5 -5
  209. package/3D/index.js +6 -5
  210. package/3D/index.js.map +1 -1
  211. package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
  212. package/3D/materials/fluent/fluentMaterial.js +292 -281
  213. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  214. package/3D/materials/fluent/index.d.ts +1 -1
  215. package/3D/materials/fluent/index.js +1 -1
  216. package/3D/materials/fluent/index.js.map +1 -1
  217. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  218. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -6
  219. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
  220. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  221. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -6
  222. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
  223. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
  224. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -434
  225. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  226. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  227. package/3D/materials/fluentBackplate/index.js +1 -1
  228. package/3D/materials/fluentBackplate/index.js.map +1 -1
  229. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  230. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -6
  231. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
  232. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  233. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -6
  234. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
  235. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
  236. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -537
  237. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  238. package/3D/materials/fluentButton/index.d.ts +1 -1
  239. package/3D/materials/fluentButton/index.js +1 -1
  240. package/3D/materials/fluentButton/index.js.map +1 -1
  241. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  242. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -6
  243. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
  244. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  245. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -6
  246. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
  247. package/3D/materials/fluentMaterial.d.ts +4 -4
  248. package/3D/materials/fluentMaterial.js +4 -4
  249. package/3D/materials/fluentMaterial.js.map +1 -1
  250. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  251. package/3D/materials/handle/handleMaterial.js +126 -126
  252. package/3D/materials/handle/handleMaterial.js.map +1 -1
  253. package/3D/materials/handle/index.d.ts +1 -1
  254. package/3D/materials/handle/index.js +1 -1
  255. package/3D/materials/handle/index.js.map +1 -1
  256. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  257. package/3D/materials/handle/shaders/handle.fragment.js +8 -6
  258. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
  259. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  260. package/3D/materials/handle/shaders/handle.vertex.js +8 -6
  261. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
  262. package/3D/materials/index.d.ts +5 -5
  263. package/3D/materials/index.js +6 -5
  264. package/3D/materials/index.js.map +1 -1
  265. package/3D/materials/mrdl/index.d.ts +3 -3
  266. package/3D/materials/mrdl/index.js +3 -3
  267. package/3D/materials/mrdl/index.js.map +1 -1
  268. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
  269. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -409
  270. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  271. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
  272. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -786
  273. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  274. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
  275. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -786
  276. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  277. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  278. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -6
  279. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
  280. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  281. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -6
  282. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
  283. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  284. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -6
  285. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
  286. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  287. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -6
  288. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
  289. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  290. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -6
  291. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
  292. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  293. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -6
  294. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
  295. package/3D/vector3WithInfo.d.ts +16 -16
  296. package/3D/vector3WithInfo.js +23 -23
  297. package/3D/vector3WithInfo.js.map +1 -1
  298. package/index.d.ts +2 -2
  299. package/index.js +3 -2
  300. package/index.js.map +1 -1
  301. package/legacy/legacy.d.ts +1 -1
  302. package/legacy/legacy.js +14 -13
  303. package/legacy/legacy.js.map +1 -1
  304. package/package.json +21 -328
  305. package/readme.md +2 -2
@@ -1,339 +1,340 @@
1
- import { __extends } from "tslib";
2
- import { Button3D } from "./button3D.js";
3
- import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
- import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial.js";
5
- import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
6
- import { CreatePlane } from "@babylonjs/core/Meshes/Builders/planeBuilder.js";
7
- import { CreateBox } from "@babylonjs/core/Meshes/Builders/boxBuilder.js";
8
- import { FadeInOutBehavior } from "@babylonjs/core/Behaviors/Meshes/fadeInOutBehavior.js";
9
- import { FluentMaterial } from "../materials/fluent/fluentMaterial.js";
10
- import { StackPanel } from "../../2D/controls/stackPanel.js";
11
- import { Image } from "../../2D/controls/image.js";
12
- import { TextBlock } from "../../2D/controls/textBlock.js";
13
- import { AdvancedDynamicTexture } from "../../2D/advancedDynamicTexture.js";
14
- import { Color3 } from "@babylonjs/core/Maths/math.color.js";
15
- import { DomManagement } from "@babylonjs/core/Misc/domManagement.js";
16
- /**
17
- * Class used to create a holographic button in 3D
18
- */
19
- var HolographicButton = /** @class */ (function (_super) {
20
- __extends(HolographicButton, _super);
21
- /**
22
- * Creates a new button
23
- * @param name defines the control name
24
- */
25
- function HolographicButton(name, shareMaterials) {
26
- if (shareMaterials === void 0) { shareMaterials = true; }
27
- var _this = _super.call(this, name) || this;
28
- _this._shareMaterials = true;
29
- _this._shareMaterials = shareMaterials;
30
- // Default animations
31
- _this.pointerEnterAnimation = function () {
32
- if (!_this.mesh) {
33
- return;
34
- }
35
- _this._frontPlate.setEnabled(true);
36
- };
37
- _this.pointerOutAnimation = function () {
38
- if (!_this.mesh) {
39
- return;
40
- }
41
- _this._frontPlate.setEnabled(false);
42
- };
43
- return _this;
44
- }
45
- HolographicButton.prototype._disposeTooltip = function () {
46
- this._tooltipFade = null;
47
- if (this._tooltipTextBlock) {
48
- this._tooltipTextBlock.dispose();
49
- }
50
- if (this._tooltipTexture) {
51
- this._tooltipTexture.dispose();
52
- }
53
- if (this._tooltipMesh) {
54
- this._tooltipMesh.dispose();
55
- }
56
- this.onPointerEnterObservable.remove(this._tooltipHoverObserver);
57
- this.onPointerOutObservable.remove(this._tooltipOutObserver);
58
- };
59
- Object.defineProperty(HolographicButton.prototype, "renderingGroupId", {
60
- get: function () {
61
- return this._backPlate.renderingGroupId;
62
- },
63
- /**
64
- * Rendering ground id of all the mesh in the button
65
- */
66
- set: function (id) {
67
- this._backPlate.renderingGroupId = id;
68
- this._textPlate.renderingGroupId = id;
69
- this._frontPlate.renderingGroupId = id;
70
- if (this._tooltipMesh) {
71
- this._tooltipMesh.renderingGroupId = id;
72
- }
73
- },
74
- enumerable: false,
75
- configurable: true
76
- });
77
- Object.defineProperty(HolographicButton.prototype, "tooltipText", {
78
- get: function () {
79
- if (this._tooltipTextBlock) {
80
- return this._tooltipTextBlock.text;
81
- }
82
- return null;
83
- },
84
- /**
85
- * Text to be displayed on the tooltip shown when hovering on the button. When set to null tooltip is disabled. (Default: null)
86
- */
87
- set: function (text) {
88
- var _this = this;
89
- if (!text) {
90
- this._disposeTooltip();
91
- return;
92
- }
93
- if (!this._tooltipFade) {
94
- var rightHandedScene = this._backPlate._scene.useRightHandedSystem;
95
- // Create tooltip with mesh and text
96
- this._tooltipMesh = CreatePlane("", { size: 1 }, this._backPlate._scene);
97
- var tooltipBackground = CreatePlane("", { size: 1, sideOrientation: Mesh.DOUBLESIDE }, this._backPlate._scene);
98
- var mat = new StandardMaterial("", this._backPlate._scene);
99
- mat.diffuseColor = Color3.FromHexString("#212121");
100
- tooltipBackground.material = mat;
101
- tooltipBackground.isPickable = false;
102
- this._tooltipMesh.addChild(tooltipBackground);
103
- tooltipBackground.position = Vector3.Forward(rightHandedScene).scale(0.05);
104
- this._tooltipMesh.scaling.y = 1 / 3;
105
- this._tooltipMesh.position = Vector3.Up().scale(0.7).add(Vector3.Forward(rightHandedScene).scale(-0.15));
106
- this._tooltipMesh.isPickable = false;
107
- this._tooltipMesh.parent = this._backPlate;
108
- // Create text texture for the tooltip
109
- this._tooltipTexture = AdvancedDynamicTexture.CreateForMesh(this._tooltipMesh);
110
- this._tooltipTextBlock = new TextBlock();
111
- this._tooltipTextBlock.scaleY = 3;
112
- this._tooltipTextBlock.color = "white";
113
- this._tooltipTextBlock.fontSize = 130;
114
- this._tooltipTexture.addControl(this._tooltipTextBlock);
115
- // Add hover action to tooltip
116
- this._tooltipFade = new FadeInOutBehavior();
117
- this._tooltipFade.delay = 500;
118
- this._tooltipMesh.addBehavior(this._tooltipFade);
119
- this._tooltipHoverObserver = this.onPointerEnterObservable.add(function () {
120
- if (_this._tooltipFade) {
121
- _this._tooltipFade.fadeIn(true);
122
- }
123
- });
124
- this._tooltipOutObserver = this.onPointerOutObservable.add(function () {
125
- if (_this._tooltipFade) {
126
- _this._tooltipFade.fadeIn(false);
127
- }
128
- });
129
- }
130
- if (this._tooltipTextBlock) {
131
- this._tooltipTextBlock.text = text;
132
- }
133
- },
134
- enumerable: false,
135
- configurable: true
136
- });
137
- Object.defineProperty(HolographicButton.prototype, "text", {
138
- /**
139
- * Gets or sets text for the button
140
- */
141
- get: function () {
142
- return this._text;
143
- },
144
- set: function (value) {
145
- if (this._text === value) {
146
- return;
147
- }
148
- this._text = value;
149
- this._rebuildContent();
150
- },
151
- enumerable: false,
152
- configurable: true
153
- });
154
- Object.defineProperty(HolographicButton.prototype, "imageUrl", {
155
- /**
156
- * Gets or sets the image url for the button
157
- */
158
- get: function () {
159
- return this._imageUrl;
160
- },
161
- set: function (value) {
162
- if (this._imageUrl === value) {
163
- return;
164
- }
165
- this._imageUrl = value;
166
- this._rebuildContent();
167
- },
168
- enumerable: false,
169
- configurable: true
170
- });
171
- Object.defineProperty(HolographicButton.prototype, "backMaterial", {
172
- /**
173
- * Gets the back material used by this button
174
- */
175
- get: function () {
176
- return this._backMaterial;
177
- },
178
- enumerable: false,
179
- configurable: true
180
- });
181
- Object.defineProperty(HolographicButton.prototype, "frontMaterial", {
182
- /**
183
- * Gets the front material used by this button
184
- */
185
- get: function () {
186
- return this._frontMaterial;
187
- },
188
- enumerable: false,
189
- configurable: true
190
- });
191
- Object.defineProperty(HolographicButton.prototype, "plateMaterial", {
192
- /**
193
- * Gets the plate material used by this button
194
- */
195
- get: function () {
196
- return this._plateMaterial;
197
- },
198
- enumerable: false,
199
- configurable: true
200
- });
201
- Object.defineProperty(HolographicButton.prototype, "shareMaterials", {
202
- /**
203
- * Gets a boolean indicating if this button shares its material with other HolographicButtons
204
- */
205
- get: function () {
206
- return this._shareMaterials;
207
- },
208
- enumerable: false,
209
- configurable: true
210
- });
211
- HolographicButton.prototype._getTypeName = function () {
212
- return "HolographicButton";
213
- };
214
- HolographicButton.prototype._rebuildContent = function () {
215
- this._disposeFacadeTexture();
216
- var panel = new StackPanel();
217
- panel.isVertical = true;
218
- if (DomManagement.IsDocumentAvailable() && !!document.createElement) {
219
- if (this._imageUrl) {
220
- var image = new Image();
221
- image.source = this._imageUrl;
222
- image.paddingTop = "40px";
223
- image.height = "180px";
224
- image.width = "100px";
225
- image.paddingBottom = "40px";
226
- panel.addControl(image);
227
- }
228
- }
229
- if (this._text) {
230
- var text = new TextBlock();
231
- text.text = this._text;
232
- text.color = "white";
233
- text.height = "30px";
234
- text.fontSize = 24;
235
- panel.addControl(text);
236
- }
237
- if (this._frontPlate) {
238
- this.content = panel;
239
- }
240
- };
241
- // Mesh association
242
- HolographicButton.prototype._createNode = function (scene) {
243
- this._backPlate = CreateBox(this.name + "BackMesh", {
244
- width: 1.0,
245
- height: 1.0,
246
- depth: 0.08,
247
- }, scene);
248
- this._frontPlate = CreateBox(this.name + "FrontMesh", {
249
- width: 1.0,
250
- height: 1.0,
251
- depth: 0.08,
252
- }, scene);
253
- this._frontPlate.parent = this._backPlate;
254
- this._frontPlate.position = Vector3.Forward(scene.useRightHandedSystem).scale(-0.08);
255
- this._frontPlate.isPickable = false;
256
- this._frontPlate.setEnabled(false);
257
- this._textPlate = _super.prototype._createNode.call(this, scene);
258
- this._textPlate.parent = this._backPlate;
259
- this._textPlate.position = Vector3.Forward(scene.useRightHandedSystem).scale(-0.08);
260
- this._textPlate.isPickable = false;
261
- return this._backPlate;
262
- };
263
- HolographicButton.prototype._applyFacade = function (facadeTexture) {
264
- this._plateMaterial.emissiveTexture = facadeTexture;
265
- this._plateMaterial.opacityTexture = facadeTexture;
266
- };
267
- HolographicButton.prototype._createBackMaterial = function (mesh) {
268
- var _this = this;
269
- this._backMaterial = new FluentMaterial(this.name + "Back Material", mesh.getScene());
270
- this._backMaterial.renderHoverLight = true;
271
- this._pickedPointObserver = this._host.onPickedPointChangedObservable.add(function (pickedPoint) {
272
- if (pickedPoint) {
273
- _this._backMaterial.hoverPosition = pickedPoint;
274
- _this._backMaterial.hoverColor.a = 1.0;
275
- }
276
- else {
277
- _this._backMaterial.hoverColor.a = 0;
278
- }
279
- });
280
- };
281
- HolographicButton.prototype._createFrontMaterial = function (mesh) {
282
- this._frontMaterial = new FluentMaterial(this.name + "Front Material", mesh.getScene());
283
- this._frontMaterial.innerGlowColorIntensity = 0; // No inner glow
284
- this._frontMaterial.alpha = 0.5; // Additive
285
- this._frontMaterial.renderBorders = true;
286
- };
287
- HolographicButton.prototype._createPlateMaterial = function (mesh) {
288
- this._plateMaterial = new StandardMaterial(this.name + "Plate Material", mesh.getScene());
289
- this._plateMaterial.specularColor = Color3.Black();
290
- };
291
- HolographicButton.prototype._affectMaterial = function (mesh) {
292
- // Back
293
- if (this._shareMaterials) {
294
- if (!this._host._sharedMaterials["backFluentMaterial"]) {
295
- this._createBackMaterial(mesh);
296
- this._host._sharedMaterials["backFluentMaterial"] = this._backMaterial;
297
- }
298
- else {
299
- this._backMaterial = this._host._sharedMaterials["backFluentMaterial"];
300
- }
301
- // Front
302
- if (!this._host._sharedMaterials["frontFluentMaterial"]) {
303
- this._createFrontMaterial(mesh);
304
- this._host._sharedMaterials["frontFluentMaterial"] = this._frontMaterial;
305
- }
306
- else {
307
- this._frontMaterial = this._host._sharedMaterials["frontFluentMaterial"];
308
- }
309
- }
310
- else {
311
- this._createBackMaterial(mesh);
312
- this._createFrontMaterial(mesh);
313
- }
314
- this._createPlateMaterial(mesh);
315
- this._backPlate.material = this._backMaterial;
316
- this._frontPlate.material = this._frontMaterial;
317
- this._textPlate.material = this._plateMaterial;
318
- this._rebuildContent();
319
- };
320
- /**
321
- * Releases all associated resources
322
- */
323
- HolographicButton.prototype.dispose = function () {
324
- _super.prototype.dispose.call(this); // will dispose main mesh ie. back plate
325
- this._disposeTooltip();
326
- if (!this.shareMaterials) {
327
- this._backMaterial.dispose();
328
- this._frontMaterial.dispose();
329
- this._plateMaterial.dispose();
330
- if (this._pickedPointObserver) {
331
- this._host.onPickedPointChangedObservable.remove(this._pickedPointObserver);
332
- this._pickedPointObserver = null;
333
- }
334
- }
335
- };
336
- return HolographicButton;
337
- }(Button3D));
338
- export { HolographicButton };
1
+ import { __extends } from "tslib";
2
+ import { Button3D } from "./button3D";
3
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
+ import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial.js";
5
+ import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
6
+ import { CreatePlane } from "@babylonjs/core/Meshes/Builders/planeBuilder.js";
7
+ import { CreateBox } from "@babylonjs/core/Meshes/Builders/boxBuilder.js";
8
+ import { FadeInOutBehavior } from "@babylonjs/core/Behaviors/Meshes/fadeInOutBehavior.js";
9
+ import { FluentMaterial } from "../materials/fluent/fluentMaterial";
10
+ import { StackPanel } from "../../2D/controls/stackPanel";
11
+ import { Image } from "../../2D/controls/image";
12
+ import { TextBlock } from "../../2D/controls/textBlock";
13
+ import { AdvancedDynamicTexture } from "../../2D/advancedDynamicTexture";
14
+ import { Color3 } from "@babylonjs/core/Maths/math.color.js";
15
+ import { DomManagement } from "@babylonjs/core/Misc/domManagement.js";
16
+ /**
17
+ * Class used to create a holographic button in 3D
18
+ */
19
+ var HolographicButton = /** @class */ (function (_super) {
20
+ __extends(HolographicButton, _super);
21
+ /**
22
+ * Creates a new button
23
+ * @param name defines the control name
24
+ * @param shareMaterials
25
+ */
26
+ function HolographicButton(name, shareMaterials) {
27
+ if (shareMaterials === void 0) { shareMaterials = true; }
28
+ var _this = _super.call(this, name) || this;
29
+ _this._shareMaterials = true;
30
+ _this._shareMaterials = shareMaterials;
31
+ // Default animations
32
+ _this.pointerEnterAnimation = function () {
33
+ if (!_this.mesh) {
34
+ return;
35
+ }
36
+ _this._frontPlate.setEnabled(true);
37
+ };
38
+ _this.pointerOutAnimation = function () {
39
+ if (!_this.mesh) {
40
+ return;
41
+ }
42
+ _this._frontPlate.setEnabled(false);
43
+ };
44
+ return _this;
45
+ }
46
+ HolographicButton.prototype._disposeTooltip = function () {
47
+ this._tooltipFade = null;
48
+ if (this._tooltipTextBlock) {
49
+ this._tooltipTextBlock.dispose();
50
+ }
51
+ if (this._tooltipTexture) {
52
+ this._tooltipTexture.dispose();
53
+ }
54
+ if (this._tooltipMesh) {
55
+ this._tooltipMesh.dispose();
56
+ }
57
+ this.onPointerEnterObservable.remove(this._tooltipHoverObserver);
58
+ this.onPointerOutObservable.remove(this._tooltipOutObserver);
59
+ };
60
+ Object.defineProperty(HolographicButton.prototype, "renderingGroupId", {
61
+ get: function () {
62
+ return this._backPlate.renderingGroupId;
63
+ },
64
+ /**
65
+ * Rendering ground id of all the mesh in the button
66
+ */
67
+ set: function (id) {
68
+ this._backPlate.renderingGroupId = id;
69
+ this._textPlate.renderingGroupId = id;
70
+ this._frontPlate.renderingGroupId = id;
71
+ if (this._tooltipMesh) {
72
+ this._tooltipMesh.renderingGroupId = id;
73
+ }
74
+ },
75
+ enumerable: false,
76
+ configurable: true
77
+ });
78
+ Object.defineProperty(HolographicButton.prototype, "tooltipText", {
79
+ get: function () {
80
+ if (this._tooltipTextBlock) {
81
+ return this._tooltipTextBlock.text;
82
+ }
83
+ return null;
84
+ },
85
+ /**
86
+ * Text to be displayed on the tooltip shown when hovering on the button. When set to null tooltip is disabled. (Default: null)
87
+ */
88
+ set: function (text) {
89
+ var _this = this;
90
+ if (!text) {
91
+ this._disposeTooltip();
92
+ return;
93
+ }
94
+ if (!this._tooltipFade) {
95
+ var rightHandedScene = this._backPlate._scene.useRightHandedSystem;
96
+ // Create tooltip with mesh and text
97
+ this._tooltipMesh = CreatePlane("", { size: 1 }, this._backPlate._scene);
98
+ var tooltipBackground = CreatePlane("", { size: 1, sideOrientation: Mesh.DOUBLESIDE }, this._backPlate._scene);
99
+ var mat = new StandardMaterial("", this._backPlate._scene);
100
+ mat.diffuseColor = Color3.FromHexString("#212121");
101
+ tooltipBackground.material = mat;
102
+ tooltipBackground.isPickable = false;
103
+ this._tooltipMesh.addChild(tooltipBackground);
104
+ tooltipBackground.position = Vector3.Forward(rightHandedScene).scale(0.05);
105
+ this._tooltipMesh.scaling.y = 1 / 3;
106
+ this._tooltipMesh.position = Vector3.Up().scale(0.7).add(Vector3.Forward(rightHandedScene).scale(-0.15));
107
+ this._tooltipMesh.isPickable = false;
108
+ this._tooltipMesh.parent = this._backPlate;
109
+ // Create text texture for the tooltip
110
+ this._tooltipTexture = AdvancedDynamicTexture.CreateForMesh(this._tooltipMesh);
111
+ this._tooltipTextBlock = new TextBlock();
112
+ this._tooltipTextBlock.scaleY = 3;
113
+ this._tooltipTextBlock.color = "white";
114
+ this._tooltipTextBlock.fontSize = 130;
115
+ this._tooltipTexture.addControl(this._tooltipTextBlock);
116
+ // Add hover action to tooltip
117
+ this._tooltipFade = new FadeInOutBehavior();
118
+ this._tooltipFade.delay = 500;
119
+ this._tooltipMesh.addBehavior(this._tooltipFade);
120
+ this._tooltipHoverObserver = this.onPointerEnterObservable.add(function () {
121
+ if (_this._tooltipFade) {
122
+ _this._tooltipFade.fadeIn(true);
123
+ }
124
+ });
125
+ this._tooltipOutObserver = this.onPointerOutObservable.add(function () {
126
+ if (_this._tooltipFade) {
127
+ _this._tooltipFade.fadeIn(false);
128
+ }
129
+ });
130
+ }
131
+ if (this._tooltipTextBlock) {
132
+ this._tooltipTextBlock.text = text;
133
+ }
134
+ },
135
+ enumerable: false,
136
+ configurable: true
137
+ });
138
+ Object.defineProperty(HolographicButton.prototype, "text", {
139
+ /**
140
+ * Gets or sets text for the button
141
+ */
142
+ get: function () {
143
+ return this._text;
144
+ },
145
+ set: function (value) {
146
+ if (this._text === value) {
147
+ return;
148
+ }
149
+ this._text = value;
150
+ this._rebuildContent();
151
+ },
152
+ enumerable: false,
153
+ configurable: true
154
+ });
155
+ Object.defineProperty(HolographicButton.prototype, "imageUrl", {
156
+ /**
157
+ * Gets or sets the image url for the button
158
+ */
159
+ get: function () {
160
+ return this._imageUrl;
161
+ },
162
+ set: function (value) {
163
+ if (this._imageUrl === value) {
164
+ return;
165
+ }
166
+ this._imageUrl = value;
167
+ this._rebuildContent();
168
+ },
169
+ enumerable: false,
170
+ configurable: true
171
+ });
172
+ Object.defineProperty(HolographicButton.prototype, "backMaterial", {
173
+ /**
174
+ * Gets the back material used by this button
175
+ */
176
+ get: function () {
177
+ return this._backMaterial;
178
+ },
179
+ enumerable: false,
180
+ configurable: true
181
+ });
182
+ Object.defineProperty(HolographicButton.prototype, "frontMaterial", {
183
+ /**
184
+ * Gets the front material used by this button
185
+ */
186
+ get: function () {
187
+ return this._frontMaterial;
188
+ },
189
+ enumerable: false,
190
+ configurable: true
191
+ });
192
+ Object.defineProperty(HolographicButton.prototype, "plateMaterial", {
193
+ /**
194
+ * Gets the plate material used by this button
195
+ */
196
+ get: function () {
197
+ return this._plateMaterial;
198
+ },
199
+ enumerable: false,
200
+ configurable: true
201
+ });
202
+ Object.defineProperty(HolographicButton.prototype, "shareMaterials", {
203
+ /**
204
+ * Gets a boolean indicating if this button shares its material with other HolographicButtons
205
+ */
206
+ get: function () {
207
+ return this._shareMaterials;
208
+ },
209
+ enumerable: false,
210
+ configurable: true
211
+ });
212
+ HolographicButton.prototype._getTypeName = function () {
213
+ return "HolographicButton";
214
+ };
215
+ HolographicButton.prototype._rebuildContent = function () {
216
+ this._disposeFacadeTexture();
217
+ var panel = new StackPanel();
218
+ panel.isVertical = true;
219
+ if (DomManagement.IsDocumentAvailable() && !!document.createElement) {
220
+ if (this._imageUrl) {
221
+ var image = new Image();
222
+ image.source = this._imageUrl;
223
+ image.paddingTop = "40px";
224
+ image.height = "180px";
225
+ image.width = "100px";
226
+ image.paddingBottom = "40px";
227
+ panel.addControl(image);
228
+ }
229
+ }
230
+ if (this._text) {
231
+ var text = new TextBlock();
232
+ text.text = this._text;
233
+ text.color = "white";
234
+ text.height = "30px";
235
+ text.fontSize = 24;
236
+ panel.addControl(text);
237
+ }
238
+ if (this._frontPlate) {
239
+ this.content = panel;
240
+ }
241
+ };
242
+ // Mesh association
243
+ HolographicButton.prototype._createNode = function (scene) {
244
+ this._backPlate = CreateBox(this.name + "BackMesh", {
245
+ width: 1.0,
246
+ height: 1.0,
247
+ depth: 0.08,
248
+ }, scene);
249
+ this._frontPlate = CreateBox(this.name + "FrontMesh", {
250
+ width: 1.0,
251
+ height: 1.0,
252
+ depth: 0.08,
253
+ }, scene);
254
+ this._frontPlate.parent = this._backPlate;
255
+ this._frontPlate.position = Vector3.Forward(scene.useRightHandedSystem).scale(-0.08);
256
+ this._frontPlate.isPickable = false;
257
+ this._frontPlate.setEnabled(false);
258
+ this._textPlate = _super.prototype._createNode.call(this, scene);
259
+ this._textPlate.parent = this._backPlate;
260
+ this._textPlate.position = Vector3.Forward(scene.useRightHandedSystem).scale(-0.08);
261
+ this._textPlate.isPickable = false;
262
+ return this._backPlate;
263
+ };
264
+ HolographicButton.prototype._applyFacade = function (facadeTexture) {
265
+ this._plateMaterial.emissiveTexture = facadeTexture;
266
+ this._plateMaterial.opacityTexture = facadeTexture;
267
+ };
268
+ HolographicButton.prototype._createBackMaterial = function (mesh) {
269
+ var _this = this;
270
+ this._backMaterial = new FluentMaterial(this.name + "Back Material", mesh.getScene());
271
+ this._backMaterial.renderHoverLight = true;
272
+ this._pickedPointObserver = this._host.onPickedPointChangedObservable.add(function (pickedPoint) {
273
+ if (pickedPoint) {
274
+ _this._backMaterial.hoverPosition = pickedPoint;
275
+ _this._backMaterial.hoverColor.a = 1.0;
276
+ }
277
+ else {
278
+ _this._backMaterial.hoverColor.a = 0;
279
+ }
280
+ });
281
+ };
282
+ HolographicButton.prototype._createFrontMaterial = function (mesh) {
283
+ this._frontMaterial = new FluentMaterial(this.name + "Front Material", mesh.getScene());
284
+ this._frontMaterial.innerGlowColorIntensity = 0; // No inner glow
285
+ this._frontMaterial.alpha = 0.5; // Additive
286
+ this._frontMaterial.renderBorders = true;
287
+ };
288
+ HolographicButton.prototype._createPlateMaterial = function (mesh) {
289
+ this._plateMaterial = new StandardMaterial(this.name + "Plate Material", mesh.getScene());
290
+ this._plateMaterial.specularColor = Color3.Black();
291
+ };
292
+ HolographicButton.prototype._affectMaterial = function (mesh) {
293
+ // Back
294
+ if (this._shareMaterials) {
295
+ if (!this._host._sharedMaterials["backFluentMaterial"]) {
296
+ this._createBackMaterial(mesh);
297
+ this._host._sharedMaterials["backFluentMaterial"] = this._backMaterial;
298
+ }
299
+ else {
300
+ this._backMaterial = this._host._sharedMaterials["backFluentMaterial"];
301
+ }
302
+ // Front
303
+ if (!this._host._sharedMaterials["frontFluentMaterial"]) {
304
+ this._createFrontMaterial(mesh);
305
+ this._host._sharedMaterials["frontFluentMaterial"] = this._frontMaterial;
306
+ }
307
+ else {
308
+ this._frontMaterial = this._host._sharedMaterials["frontFluentMaterial"];
309
+ }
310
+ }
311
+ else {
312
+ this._createBackMaterial(mesh);
313
+ this._createFrontMaterial(mesh);
314
+ }
315
+ this._createPlateMaterial(mesh);
316
+ this._backPlate.material = this._backMaterial;
317
+ this._frontPlate.material = this._frontMaterial;
318
+ this._textPlate.material = this._plateMaterial;
319
+ this._rebuildContent();
320
+ };
321
+ /**
322
+ * Releases all associated resources
323
+ */
324
+ HolographicButton.prototype.dispose = function () {
325
+ _super.prototype.dispose.call(this); // will dispose main mesh ie. back plate
326
+ this._disposeTooltip();
327
+ if (!this.shareMaterials) {
328
+ this._backMaterial.dispose();
329
+ this._frontMaterial.dispose();
330
+ this._plateMaterial.dispose();
331
+ if (this._pickedPointObserver) {
332
+ this._host.onPickedPointChangedObservable.remove(this._pickedPointObserver);
333
+ this._pickedPointObserver = null;
334
+ }
335
+ }
336
+ };
337
+ return HolographicButton;
338
+ }(Button3D));
339
+ export { HolographicButton };
339
340
  //# sourceMappingURL=holographicButton.js.map