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

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 (306) 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/license.md +71 -0
  305. package/package.json +37 -325
  306. package/readme.md +2 -2
@@ -1,17 +1,17 @@
1
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2
- import { float } from "@babylonjs/core/types";
3
- import { VolumeBasedPanel } from "./volumeBasedPanel";
4
- import { Control3D } from "./control3D";
5
- /**
6
- * Class used to create a container panel deployed on the surface of a sphere
7
- */
8
- export declare class SpherePanel extends VolumeBasedPanel {
9
- private _radius;
10
- /**
11
- * Gets or sets the radius of the sphere where to project controls (5 by default)
12
- */
13
- get radius(): float;
14
- set radius(value: float);
15
- protected _mapGridNode(control: Control3D, nodePosition: Vector3): void;
16
- private _sphericalMapping;
17
- }
1
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
+ import type { float } from "@babylonjs/core/types.js";
3
+ import { VolumeBasedPanel } from "./volumeBasedPanel";
4
+ import type { Control3D } from "./control3D";
5
+ /**
6
+ * Class used to create a container panel deployed on the surface of a sphere
7
+ */
8
+ export declare class SpherePanel extends VolumeBasedPanel {
9
+ private _radius;
10
+ /**
11
+ * Gets or sets the radius of the sphere where to project controls (5 by default)
12
+ */
13
+ get radius(): float;
14
+ set radius(value: float);
15
+ protected _mapGridNode(control: Control3D, nodePosition: Vector3): void;
16
+ private _sphericalMapping;
17
+ }
@@ -1,68 +1,68 @@
1
- import { __extends } from "tslib";
2
- import { Tools } from "@babylonjs/core/Misc/tools.js";
3
- import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
- import { VolumeBasedPanel } from "./volumeBasedPanel.js";
5
- import { Container3D } from "./container3D.js";
6
- import { Axis, Space } from '@babylonjs/core/Maths/math.axis.js';
7
- /**
8
- * Class used to create a container panel deployed on the surface of a sphere
9
- */
10
- var SpherePanel = /** @class */ (function (_super) {
11
- __extends(SpherePanel, _super);
12
- function SpherePanel() {
13
- var _this = _super !== null && _super.apply(this, arguments) || this;
14
- _this._radius = 5.0;
15
- return _this;
16
- }
17
- Object.defineProperty(SpherePanel.prototype, "radius", {
18
- /**
19
- * Gets or sets the radius of the sphere where to project controls (5 by default)
20
- */
21
- get: function () {
22
- return this._radius;
23
- },
24
- set: function (value) {
25
- var _this = this;
26
- if (this._radius === value) {
27
- return;
28
- }
29
- this._radius = value;
30
- Tools.SetImmediate(function () {
31
- _this._arrangeChildren();
32
- });
33
- },
34
- enumerable: false,
35
- configurable: true
36
- });
37
- SpherePanel.prototype._mapGridNode = function (control, nodePosition) {
38
- var mesh = control.mesh;
39
- if (!mesh) {
40
- return;
41
- }
42
- var newPos = this._sphericalMapping(nodePosition);
43
- control.position = newPos;
44
- switch (this.orientation) {
45
- case Container3D.FACEORIGIN_ORIENTATION:
46
- mesh.lookAt(new Vector3(2 * newPos.x, 2 * newPos.y, 2 * newPos.z));
47
- break;
48
- case Container3D.FACEORIGINREVERSED_ORIENTATION:
49
- mesh.lookAt(new Vector3(-newPos.x, -newPos.y, -newPos.z));
50
- break;
51
- case Container3D.FACEFORWARD_ORIENTATION:
52
- break;
53
- case Container3D.FACEFORWARDREVERSED_ORIENTATION:
54
- mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);
55
- break;
56
- }
57
- };
58
- SpherePanel.prototype._sphericalMapping = function (source) {
59
- var newPos = new Vector3(0, 0, this._radius);
60
- var xAngle = (source.y / this._radius);
61
- var yAngle = -(source.x / this._radius);
62
- Matrix.RotationYawPitchRollToRef(yAngle, xAngle, 0, TmpVectors.Matrix[0]);
63
- return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);
64
- };
65
- return SpherePanel;
66
- }(VolumeBasedPanel));
67
- export { SpherePanel };
1
+ import { __extends } from "tslib";
2
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
3
+ import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
+ import { VolumeBasedPanel } from "./volumeBasedPanel";
5
+ import { Container3D } from "./container3D";
6
+ import { Axis, Space } from "@babylonjs/core/Maths/math.axis.js";
7
+ /**
8
+ * Class used to create a container panel deployed on the surface of a sphere
9
+ */
10
+ var SpherePanel = /** @class */ (function (_super) {
11
+ __extends(SpherePanel, _super);
12
+ function SpherePanel() {
13
+ var _this = _super !== null && _super.apply(this, arguments) || this;
14
+ _this._radius = 5.0;
15
+ return _this;
16
+ }
17
+ Object.defineProperty(SpherePanel.prototype, "radius", {
18
+ /**
19
+ * Gets or sets the radius of the sphere where to project controls (5 by default)
20
+ */
21
+ get: function () {
22
+ return this._radius;
23
+ },
24
+ set: function (value) {
25
+ var _this = this;
26
+ if (this._radius === value) {
27
+ return;
28
+ }
29
+ this._radius = value;
30
+ Tools.SetImmediate(function () {
31
+ _this._arrangeChildren();
32
+ });
33
+ },
34
+ enumerable: false,
35
+ configurable: true
36
+ });
37
+ SpherePanel.prototype._mapGridNode = function (control, nodePosition) {
38
+ var mesh = control.mesh;
39
+ if (!mesh) {
40
+ return;
41
+ }
42
+ var newPos = this._sphericalMapping(nodePosition);
43
+ control.position = newPos;
44
+ switch (this.orientation) {
45
+ case Container3D.FACEORIGIN_ORIENTATION:
46
+ mesh.lookAt(new Vector3(2 * newPos.x, 2 * newPos.y, 2 * newPos.z));
47
+ break;
48
+ case Container3D.FACEORIGINREVERSED_ORIENTATION:
49
+ mesh.lookAt(new Vector3(-newPos.x, -newPos.y, -newPos.z));
50
+ break;
51
+ case Container3D.FACEFORWARD_ORIENTATION:
52
+ break;
53
+ case Container3D.FACEFORWARDREVERSED_ORIENTATION:
54
+ mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);
55
+ break;
56
+ }
57
+ };
58
+ SpherePanel.prototype._sphericalMapping = function (source) {
59
+ var newPos = new Vector3(0, 0, this._radius);
60
+ var xAngle = source.y / this._radius;
61
+ var yAngle = -(source.x / this._radius);
62
+ Matrix.RotationYawPitchRollToRef(yAngle, xAngle, 0, TmpVectors.Matrix[0]);
63
+ return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);
64
+ };
65
+ return SpherePanel;
66
+ }(VolumeBasedPanel));
67
+ export { SpherePanel };
68
68
  //# sourceMappingURL=spherePanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spherePanel.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/3D/controls/spherePanel.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAE9D;;GAEG;AACH;IAAiC,+BAAgB;IAAjD;QAAA,qEAyDC;QAxDW,aAAO,GAAG,GAAG,CAAC;;IAwD1B,CAAC;IAnDG,sBAAW,+BAAM;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;aAED,UAAkB,KAAY;YAA9B,iBAUC;YATG,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;gBACxB,OAAO;aACV;YAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,KAAK,CAAC,YAAY,CAAC;gBACf,KAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;;;OAZA;IAcS,kCAAY,GAAtB,UAAuB,OAAkB,EAAE,YAAqB;QAC5D,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAExB,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAE1B,QAAQ,IAAI,CAAC,WAAW,EAAE;YACtB,KAAK,WAAW,CAAC,sBAAsB;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM;YACV,KAAK,WAAW,CAAC,8BAA8B;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACV,KAAK,WAAW,CAAC,uBAAuB;gBACpC,MAAM;YACV,KAAK,WAAW,CAAC,+BAA+B;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;SACb;IACL,CAAC;IAEO,uCAAiB,GAAzB,UAA0B,MAAe;QACrC,IAAI,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACL,kBAAC;AAAD,CAAC,AAzDD,CAAiC,gBAAgB,GAyDhD","sourcesContent":["import { Tools } from \"@babylonjs/core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { float } from \"@babylonjs/core/types\";\r\n\r\nimport { VolumeBasedPanel } from \"./volumeBasedPanel\";\r\nimport { Control3D } from \"./control3D\";\r\nimport { Container3D } from \"./container3D\";\r\nimport { Axis, Space } from '@babylonjs/core/Maths/math.axis';\r\n\r\n/**\r\n * Class used to create a container panel deployed on the surface of a sphere\r\n */\r\nexport class SpherePanel extends VolumeBasedPanel {\r\n private _radius = 5.0;\r\n\r\n /**\r\n * Gets or sets the radius of the sphere where to project controls (5 by default)\r\n */\r\n public get radius(): float {\r\n return this._radius;\r\n }\r\n\r\n public set radius(value: float) {\r\n if (this._radius === value) {\r\n return;\r\n }\r\n\r\n this._radius = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n protected _mapGridNode(control: Control3D, nodePosition: Vector3) {\r\n let mesh = control.mesh;\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n let newPos = this._sphericalMapping(nodePosition);\r\n control.position = newPos;\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n mesh.lookAt(new Vector3(2 * newPos.x, 2 * newPos.y, 2 * newPos.z));\r\n break;\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(-newPos.x, -newPos.y, -newPos.z));\r\n break;\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);\r\n break;\r\n }\r\n }\r\n\r\n private _sphericalMapping(source: Vector3) {\r\n let newPos = new Vector3(0, 0, this._radius);\r\n\r\n let xAngle = (source.y / this._radius);\r\n let yAngle = -(source.x / this._radius);\r\n\r\n Matrix.RotationYawPitchRollToRef(yAngle, xAngle, 0, TmpVectors.Matrix[0]);\r\n\r\n return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"spherePanel.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/spherePanel.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,sCAAwB;AACxC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA+B;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,2CAA6B;AAEnD;;GAEG;AACH;IAAiC,+BAAgB;IAAjD;QAAA,qEAyDC;QAxDW,aAAO,GAAG,GAAG,CAAC;;IAwD1B,CAAC;IAnDG,sBAAW,+BAAM;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;aAED,UAAkB,KAAY;YAA9B,iBAUC;YATG,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;gBACxB,OAAO;aACV;YAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,KAAK,CAAC,YAAY,CAAC;gBACf,KAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;;;OAZA;IAcS,kCAAY,GAAtB,UAAuB,OAAkB,EAAE,YAAqB;QAC5D,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAE1B,QAAQ,IAAI,CAAC,WAAW,EAAE;YACtB,KAAK,WAAW,CAAC,sBAAsB;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM;YACV,KAAK,WAAW,CAAC,8BAA8B;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACV,KAAK,WAAW,CAAC,uBAAuB;gBACpC,MAAM;YACV,KAAK,WAAW,CAAC,+BAA+B;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;SACb;IACL,CAAC;IAEO,uCAAiB,GAAzB,UAA0B,MAAe;QACrC,IAAM,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvC,IAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACL,kBAAC;AAAD,CAAC,AAzDD,CAAiC,gBAAgB,GAyDhD","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\nimport type { float } from \"core/types\";\r\n\r\nimport { VolumeBasedPanel } from \"./volumeBasedPanel\";\r\nimport type { Control3D } from \"./control3D\";\r\nimport { Container3D } from \"./container3D\";\r\nimport { Axis, Space } from \"core/Maths/math.axis\";\r\n\r\n/**\r\n * Class used to create a container panel deployed on the surface of a sphere\r\n */\r\nexport class SpherePanel extends VolumeBasedPanel {\r\n private _radius = 5.0;\r\n\r\n /**\r\n * Gets or sets the radius of the sphere where to project controls (5 by default)\r\n */\r\n public get radius(): float {\r\n return this._radius;\r\n }\r\n\r\n public set radius(value: float) {\r\n if (this._radius === value) {\r\n return;\r\n }\r\n\r\n this._radius = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n protected _mapGridNode(control: Control3D, nodePosition: Vector3) {\r\n const mesh = control.mesh;\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n const newPos = this._sphericalMapping(nodePosition);\r\n control.position = newPos;\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n mesh.lookAt(new Vector3(2 * newPos.x, 2 * newPos.y, 2 * newPos.z));\r\n break;\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(-newPos.x, -newPos.y, -newPos.z));\r\n break;\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);\r\n break;\r\n }\r\n }\r\n\r\n private _sphericalMapping(source: Vector3) {\r\n const newPos = new Vector3(0, 0, this._radius);\r\n\r\n const xAngle = source.y / this._radius;\r\n const yAngle = -(source.x / this._radius);\r\n\r\n Matrix.RotationYawPitchRollToRef(yAngle, xAngle, 0, TmpVectors.Matrix[0]);\r\n\r\n return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);\r\n }\r\n}\r\n"]}
@@ -1,22 +1,22 @@
1
- import { Container3D } from "./container3D";
2
- /**
3
- * Class used to create a stack panel in 3D on XY plane
4
- */
5
- export declare class StackPanel3D extends Container3D {
6
- private _isVertical;
7
- /**
8
- * Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
9
- */
10
- get isVertical(): boolean;
11
- set isVertical(value: boolean);
12
- /**
13
- * Gets or sets the distance between elements
14
- */
15
- margin: number;
16
- /**
17
- * Creates new StackPanel
18
- * @param isVertical
19
- */
20
- constructor(isVertical?: boolean);
21
- protected _arrangeChildren(): void;
22
- }
1
+ import { Container3D } from "./container3D";
2
+ /**
3
+ * Class used to create a stack panel in 3D on XY plane
4
+ */
5
+ export declare class StackPanel3D extends Container3D {
6
+ private _isVertical;
7
+ /**
8
+ * Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
9
+ */
10
+ get isVertical(): boolean;
11
+ set isVertical(value: boolean);
12
+ /**
13
+ * Gets or sets the distance between elements
14
+ */
15
+ margin: number;
16
+ /**
17
+ * Creates new StackPanel
18
+ * @param isVertical
19
+ */
20
+ constructor(isVertical?: boolean);
21
+ protected _arrangeChildren(): void;
22
+ }
@@ -1,108 +1,108 @@
1
- import { __extends } from "tslib";
2
- import { Tools } from "@babylonjs/core/Misc/tools.js";
3
- import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
- import { Container3D } from "./container3D.js";
5
- /**
6
- * Class used to create a stack panel in 3D on XY plane
7
- */
8
- var StackPanel3D = /** @class */ (function (_super) {
9
- __extends(StackPanel3D, _super);
10
- /**
11
- * Creates new StackPanel
12
- * @param isVertical
13
- */
14
- function StackPanel3D(isVertical) {
15
- if (isVertical === void 0) { isVertical = false; }
16
- var _this = _super.call(this) || this;
17
- _this._isVertical = false;
18
- /**
19
- * Gets or sets the distance between elements
20
- */
21
- _this.margin = 0.1;
22
- _this._isVertical = isVertical;
23
- return _this;
24
- }
25
- Object.defineProperty(StackPanel3D.prototype, "isVertical", {
26
- /**
27
- * Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
28
- */
29
- get: function () {
30
- return this._isVertical;
31
- },
32
- set: function (value) {
33
- var _this = this;
34
- if (this._isVertical === value) {
35
- return;
36
- }
37
- this._isVertical = value;
38
- Tools.SetImmediate(function () {
39
- _this._arrangeChildren();
40
- });
41
- },
42
- enumerable: false,
43
- configurable: true
44
- });
45
- StackPanel3D.prototype._arrangeChildren = function () {
46
- var width = 0;
47
- var height = 0;
48
- var controlCount = 0;
49
- var extendSizes = [];
50
- var currentInverseWorld = Matrix.Invert(this.node.computeWorldMatrix(true));
51
- // Measure
52
- for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
53
- var child = _a[_i];
54
- if (!child.mesh) {
55
- continue;
56
- }
57
- controlCount++;
58
- child.mesh.computeWorldMatrix(true);
59
- child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, TmpVectors.Matrix[0]);
60
- var boundingBox = child.mesh.getBoundingInfo().boundingBox;
61
- var extendSize = Vector3.TransformNormal(boundingBox.extendSize, TmpVectors.Matrix[0]);
62
- extendSizes.push(extendSize);
63
- if (this._isVertical) {
64
- height += extendSize.y;
65
- }
66
- else {
67
- width += extendSize.x;
68
- }
69
- }
70
- if (this._isVertical) {
71
- height += (controlCount - 1) * this.margin / 2;
72
- }
73
- else {
74
- width += (controlCount - 1) * this.margin / 2;
75
- }
76
- // Arrange
77
- var offset;
78
- if (this._isVertical) {
79
- offset = -height;
80
- }
81
- else {
82
- offset = -width;
83
- }
84
- var index = 0;
85
- for (var _b = 0, _c = this._children; _b < _c.length; _b++) {
86
- var child = _c[_b];
87
- if (!child.mesh) {
88
- continue;
89
- }
90
- controlCount--;
91
- var extendSize = extendSizes[index++];
92
- if (this._isVertical) {
93
- child.position.y = offset + extendSize.y;
94
- child.position.x = 0;
95
- offset += extendSize.y * 2;
96
- }
97
- else {
98
- child.position.x = offset + extendSize.x;
99
- child.position.y = 0;
100
- offset += extendSize.x * 2;
101
- }
102
- offset += (controlCount > 0 ? this.margin : 0);
103
- }
104
- };
105
- return StackPanel3D;
106
- }(Container3D));
107
- export { StackPanel3D };
1
+ import { __extends } from "tslib";
2
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
3
+ import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
+ import { Container3D } from "./container3D";
5
+ /**
6
+ * Class used to create a stack panel in 3D on XY plane
7
+ */
8
+ var StackPanel3D = /** @class */ (function (_super) {
9
+ __extends(StackPanel3D, _super);
10
+ /**
11
+ * Creates new StackPanel
12
+ * @param isVertical
13
+ */
14
+ function StackPanel3D(isVertical) {
15
+ if (isVertical === void 0) { isVertical = false; }
16
+ var _this = _super.call(this) || this;
17
+ _this._isVertical = false;
18
+ /**
19
+ * Gets or sets the distance between elements
20
+ */
21
+ _this.margin = 0.1;
22
+ _this._isVertical = isVertical;
23
+ return _this;
24
+ }
25
+ Object.defineProperty(StackPanel3D.prototype, "isVertical", {
26
+ /**
27
+ * Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
28
+ */
29
+ get: function () {
30
+ return this._isVertical;
31
+ },
32
+ set: function (value) {
33
+ var _this = this;
34
+ if (this._isVertical === value) {
35
+ return;
36
+ }
37
+ this._isVertical = value;
38
+ Tools.SetImmediate(function () {
39
+ _this._arrangeChildren();
40
+ });
41
+ },
42
+ enumerable: false,
43
+ configurable: true
44
+ });
45
+ StackPanel3D.prototype._arrangeChildren = function () {
46
+ var width = 0;
47
+ var height = 0;
48
+ var controlCount = 0;
49
+ var extendSizes = [];
50
+ var currentInverseWorld = Matrix.Invert(this.node.computeWorldMatrix(true));
51
+ // Measure
52
+ for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
53
+ var child = _a[_i];
54
+ if (!child.mesh) {
55
+ continue;
56
+ }
57
+ controlCount++;
58
+ child.mesh.computeWorldMatrix(true);
59
+ child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, TmpVectors.Matrix[0]);
60
+ var boundingBox = child.mesh.getBoundingInfo().boundingBox;
61
+ var extendSize = Vector3.TransformNormal(boundingBox.extendSize, TmpVectors.Matrix[0]);
62
+ extendSizes.push(extendSize);
63
+ if (this._isVertical) {
64
+ height += extendSize.y;
65
+ }
66
+ else {
67
+ width += extendSize.x;
68
+ }
69
+ }
70
+ if (this._isVertical) {
71
+ height += ((controlCount - 1) * this.margin) / 2;
72
+ }
73
+ else {
74
+ width += ((controlCount - 1) * this.margin) / 2;
75
+ }
76
+ // Arrange
77
+ var offset;
78
+ if (this._isVertical) {
79
+ offset = -height;
80
+ }
81
+ else {
82
+ offset = -width;
83
+ }
84
+ var index = 0;
85
+ for (var _b = 0, _c = this._children; _b < _c.length; _b++) {
86
+ var child = _c[_b];
87
+ if (!child.mesh) {
88
+ continue;
89
+ }
90
+ controlCount--;
91
+ var extendSize = extendSizes[index++];
92
+ if (this._isVertical) {
93
+ child.position.y = offset + extendSize.y;
94
+ child.position.x = 0;
95
+ offset += extendSize.y * 2;
96
+ }
97
+ else {
98
+ child.position.x = offset + extendSize.x;
99
+ child.position.y = 0;
100
+ offset += extendSize.x * 2;
101
+ }
102
+ offset += controlCount > 0 ? this.margin : 0;
103
+ }
104
+ };
105
+ return StackPanel3D;
106
+ }(Container3D));
107
+ export { StackPanel3D };
108
108
  //# sourceMappingURL=stackPanel3D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stackPanel3D.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/3D/controls/stackPanel3D.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"@babylonjs/core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\nimport { Container3D } from \"./container3D\";\r\n\r\n/**\r\n * Class used to create a stack panel in 3D on XY plane\r\n */\r\nexport class StackPanel3D extends Container3D {\r\n private _isVertical = false;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)\r\n */\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n /**\r\n * Gets or sets the distance between elements\r\n */\r\n public margin = 0.1;\r\n\r\n /**\r\n * Creates new StackPanel\r\n * @param isVertical\r\n */\r\n public constructor(isVertical = false) {\r\n super();\r\n\r\n this._isVertical = isVertical;\r\n }\r\n\r\n protected _arrangeChildren() {\r\n let width = 0;\r\n let height = 0;\r\n let controlCount = 0;\r\n let extendSizes = [];\r\n\r\n let currentInverseWorld = Matrix.Invert(this.node!.computeWorldMatrix(true));\r\n\r\n // Measure\r\n for (var child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n controlCount++;\r\n child.mesh.computeWorldMatrix(true);\r\n child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, TmpVectors.Matrix[0]);\r\n\r\n let boundingBox = child.mesh.getBoundingInfo().boundingBox;\r\n let extendSize = Vector3.TransformNormal(boundingBox.extendSize, TmpVectors.Matrix[0]);\r\n extendSizes.push(extendSize);\r\n\r\n if (this._isVertical) {\r\n height += extendSize.y;\r\n } else {\r\n width += extendSize.x;\r\n }\r\n }\r\n\r\n if (this._isVertical) {\r\n height += (controlCount - 1) * this.margin / 2;\r\n } else {\r\n width += (controlCount - 1) * this.margin / 2;\r\n }\r\n\r\n // Arrange\r\n let offset: number;\r\n if (this._isVertical) {\r\n offset = -height;\r\n } else {\r\n offset = -width;\r\n }\r\n\r\n let index = 0;\r\n for (var child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n controlCount--;\r\n let extendSize = extendSizes[index++];\r\n\r\n if (this._isVertical) {\r\n child.position.y = offset + extendSize.y;\r\n child.position.x = 0;\r\n offset += extendSize.y * 2;\r\n } else {\r\n child.position.x = offset + extendSize.x;\r\n child.position.y = 0;\r\n offset += extendSize.x * 2;\r\n }\r\n\r\n offset += (controlCount > 0 ? this.margin : 0);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"stackPanel3D.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/stackPanel3D.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\n\r\nimport { Container3D } from \"./container3D\";\r\n\r\n/**\r\n * Class used to create a stack panel in 3D on XY plane\r\n */\r\nexport class StackPanel3D extends Container3D {\r\n private _isVertical = false;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)\r\n */\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n /**\r\n * Gets or sets the distance between elements\r\n */\r\n public margin = 0.1;\r\n\r\n /**\r\n * Creates new StackPanel\r\n * @param isVertical\r\n */\r\n public constructor(isVertical = false) {\r\n super();\r\n\r\n this._isVertical = isVertical;\r\n }\r\n\r\n protected _arrangeChildren() {\r\n let width = 0;\r\n let height = 0;\r\n let controlCount = 0;\r\n const extendSizes = [];\r\n\r\n const currentInverseWorld = Matrix.Invert(this.node!.computeWorldMatrix(true));\r\n\r\n // Measure\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n controlCount++;\r\n child.mesh.computeWorldMatrix(true);\r\n child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, TmpVectors.Matrix[0]);\r\n\r\n const boundingBox = child.mesh.getBoundingInfo().boundingBox;\r\n const extendSize = Vector3.TransformNormal(boundingBox.extendSize, TmpVectors.Matrix[0]);\r\n extendSizes.push(extendSize);\r\n\r\n if (this._isVertical) {\r\n height += extendSize.y;\r\n } else {\r\n width += extendSize.x;\r\n }\r\n }\r\n\r\n if (this._isVertical) {\r\n height += ((controlCount - 1) * this.margin) / 2;\r\n } else {\r\n width += ((controlCount - 1) * this.margin) / 2;\r\n }\r\n\r\n // Arrange\r\n let offset: number;\r\n if (this._isVertical) {\r\n offset = -height;\r\n } else {\r\n offset = -width;\r\n }\r\n\r\n let index = 0;\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n controlCount--;\r\n const extendSize = extendSizes[index++];\r\n\r\n if (this._isVertical) {\r\n child.position.y = offset + extendSize.y;\r\n child.position.x = 0;\r\n offset += extendSize.y * 2;\r\n } else {\r\n child.position.x = offset + extendSize.x;\r\n child.position.y = 0;\r\n offset += extendSize.x * 2;\r\n }\r\n\r\n offset += controlCount > 0 ? this.margin : 0;\r\n }\r\n }\r\n}\r\n"]}
@@ -1,75 +1,80 @@
1
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2
- import { Mesh } from "@babylonjs/core/Meshes/mesh";
3
- import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
4
- import { Scene } from "@babylonjs/core/scene";
5
- import { Observable } from "@babylonjs/core/Misc/observable";
6
- import { Button3D } from "./button3D";
7
- /**
8
- * Class used to create a touchable button in 3D
9
- */
10
- export declare class TouchButton3D extends Button3D {
11
- private _collisionMesh;
12
- private _collidableFrontDirection;
13
- private _isNearPressed;
14
- private _interactionSurfaceHeight;
15
- private _isToggleButton;
16
- private _toggleState;
17
- private _toggleButtonCallback;
18
- /**
19
- * An event triggered when the button is toggled. Only fired if 'isToggleButton' is true
20
- */
21
- onToggleObservable: Observable<boolean>;
22
- /**
23
- * Creates a new touchable button
24
- * @param name defines the control name
25
- * @param collisionMesh mesh to track collisions with
26
- */
27
- constructor(name?: string, collisionMesh?: Mesh);
28
- /**
29
- * Whether the current interaction is caused by near interaction or not
30
- */
31
- get isActiveNearInteraction(): boolean;
32
- /**
33
- * Sets the front-facing direction of the button. Pass in Vector3.Zero to allow interactions from any direction
34
- * @param frontDir the forward direction of the button
35
- */
36
- set collidableFrontDirection(frontWorldDir: Vector3);
37
- /**
38
- * Returns the front-facing direction of the button, or Vector3.Zero if there is no 'front'
39
- */
40
- get collidableFrontDirection(): Vector3;
41
- /**
42
- * Sets the mesh used for testing input collision
43
- * @param collisionMesh the new collision mesh for the button
44
- */
45
- set collisionMesh(collisionMesh: Mesh);
46
- /**
47
- * Setter for if this TouchButton3D should be treated as a toggle button
48
- * @param value If this TouchHolographicButton should act like a toggle button
49
- */
50
- set isToggleButton(value: boolean);
51
- get isToggleButton(): boolean;
52
- /**
53
- * A public entrypoint to set the toggle state of the TouchHolographicButton. Only works if 'isToggleButton' is true
54
- * @param newState The new state to set the TouchHolographicButton's toggle state to
55
- */
56
- set isToggled(newState: boolean);
57
- get isToggled(): boolean;
58
- protected _onToggle(newState: boolean): void;
59
- private _isInteractionInFrontOfButton;
60
- /**
61
- * Get the height of the touchPoint from the collidable part of the button
62
- * @param touchPoint the point to compare to the button, in absolute position
63
- * @returns the depth of the touch point into the front of the button
64
- */
65
- getPressDepth(touchPoint: Vector3): number;
66
- protected _getInteractionHeight(interactionPos: Vector3, basePos: Vector3): number;
67
- /** @hidden */
68
- _generatePointerEventType(providedType: number, nearMeshPosition: Vector3, activeInteractionCount: number): number;
69
- protected _getTypeName(): string;
70
- protected _createNode(scene: Scene): TransformNode;
71
- /**
72
- * Releases all associated resources
73
- */
74
- dispose(): void;
75
- }
1
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
+ import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
3
+ import type { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
4
+ import type { Scene } from "@babylonjs/core/scene.js";
5
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
6
+ import { Button3D } from "./button3D";
7
+ /**
8
+ * Class used to create a touchable button in 3D
9
+ */
10
+ export declare class TouchButton3D extends Button3D {
11
+ private _collisionMesh;
12
+ private _collidableFrontDirection;
13
+ private _isNearPressed;
14
+ private _interactionSurfaceHeight;
15
+ private _isToggleButton;
16
+ private _toggleState;
17
+ private _toggleButtonCallback;
18
+ /**
19
+ * An event triggered when the button is toggled. Only fired if 'isToggleButton' is true
20
+ */
21
+ onToggleObservable: Observable<boolean>;
22
+ /**
23
+ * Creates a new touchable button
24
+ * @param name defines the control name
25
+ * @param collisionMesh mesh to track collisions with
26
+ */
27
+ constructor(name?: string, collisionMesh?: Mesh);
28
+ /**
29
+ * Whether the current interaction is caused by near interaction or not
30
+ */
31
+ get isActiveNearInteraction(): boolean;
32
+ /**
33
+ * Sets the front-facing direction of the button. Pass in Vector3.Zero to allow interactions from any direction
34
+ * @param frontWorldDir the forward direction of the button
35
+ */
36
+ set collidableFrontDirection(frontWorldDir: Vector3);
37
+ /**
38
+ * Returns the front-facing direction of the button, or Vector3.Zero if there is no 'front'
39
+ */
40
+ get collidableFrontDirection(): Vector3;
41
+ /**
42
+ * Sets the mesh used for testing input collision
43
+ * @param collisionMesh the new collision mesh for the button
44
+ */
45
+ set collisionMesh(collisionMesh: Mesh);
46
+ /**
47
+ * Setter for if this TouchButton3D should be treated as a toggle button
48
+ * @param value If this TouchHolographicButton should act like a toggle button
49
+ */
50
+ set isToggleButton(value: boolean);
51
+ get isToggleButton(): boolean;
52
+ /**
53
+ * A public entrypoint to set the toggle state of the TouchHolographicButton. Only works if 'isToggleButton' is true
54
+ * @param newState The new state to set the TouchHolographicButton's toggle state to
55
+ */
56
+ set isToggled(newState: boolean);
57
+ get isToggled(): boolean;
58
+ protected _onToggle(newState: boolean): void;
59
+ private _isInteractionInFrontOfButton;
60
+ /**
61
+ * Get the height of the touchPoint from the collidable part of the button
62
+ * @param touchPoint the point to compare to the button, in absolute position
63
+ * @returns the depth of the touch point into the front of the button
64
+ */
65
+ getPressDepth(touchPoint: Vector3): number;
66
+ protected _getInteractionHeight(interactionPos: Vector3, basePos: Vector3): number;
67
+ /**
68
+ * @param providedType
69
+ * @param nearMeshPosition
70
+ * @param activeInteractionCount
71
+ * @hidden
72
+ */
73
+ _generatePointerEventType(providedType: number, nearMeshPosition: Vector3, activeInteractionCount: number): number;
74
+ protected _getTypeName(): string;
75
+ protected _createNode(scene: Scene): TransformNode;
76
+ /**
77
+ * Releases all associated resources
78
+ */
79
+ dispose(): void;
80
+ }