@babylonjs/gui 5.0.0-rc.7 → 5.0.0-rc.9

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 (203) hide show
  1. package/2D/adtInstrumentation.d.ts +52 -52
  2. package/2D/adtInstrumentation.js +126 -126
  3. package/2D/advancedDynamicTexture.d.ts +448 -448
  4. package/2D/advancedDynamicTexture.js +1318 -1318
  5. package/2D/controls/button.d.ts +135 -135
  6. package/2D/controls/button.js +276 -276
  7. package/2D/controls/checkbox.d.ts +59 -59
  8. package/2D/controls/checkbox.js +188 -188
  9. package/2D/controls/colorpicker.d.ts +103 -103
  10. package/2D/controls/colorpicker.js +1417 -1417
  11. package/2D/controls/container.d.ts +175 -175
  12. package/2D/controls/container.js +570 -570
  13. package/2D/controls/control.d.ts +866 -866
  14. package/2D/controls/control.js +2433 -2433
  15. package/2D/controls/displayGrid.d.ts +53 -53
  16. package/2D/controls/displayGrid.js +245 -245
  17. package/2D/controls/ellipse.d.ts +21 -21
  18. package/2D/controls/ellipse.js +85 -85
  19. package/2D/controls/focusableButton.d.ts +59 -59
  20. package/2D/controls/focusableButton.js +99 -99
  21. package/2D/controls/focusableControl.d.ts +34 -34
  22. package/2D/controls/focusableControl.js +1 -1
  23. package/2D/controls/grid.d.ts +139 -139
  24. package/2D/controls/grid.js +529 -529
  25. package/2D/controls/image.d.ts +204 -204
  26. package/2D/controls/image.js +887 -887
  27. package/2D/controls/index.d.ts +29 -29
  28. package/2D/controls/index.js +29 -29
  29. package/2D/controls/inputPassword.d.ts +8 -8
  30. package/2D/controls/inputPassword.js +25 -25
  31. package/2D/controls/inputText.d.ts +201 -201
  32. package/2D/controls/inputText.js +1119 -1119
  33. package/2D/controls/line.d.ts +66 -66
  34. package/2D/controls/line.js +271 -271
  35. package/2D/controls/multiLine.d.ts +75 -75
  36. package/2D/controls/multiLine.js +262 -262
  37. package/2D/controls/radioButton.d.ts +49 -49
  38. package/2D/controls/radioButton.js +205 -205
  39. package/2D/controls/rectangle.d.ts +29 -29
  40. package/2D/controls/rectangle.js +150 -150
  41. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -182
  42. package/2D/controls/scrollViewers/scrollViewer.js +677 -677
  43. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -57
  44. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -278
  45. package/2D/controls/selector.d.ts +263 -263
  46. package/2D/controls/selector.js +692 -692
  47. package/2D/controls/sliders/baseSlider.d.ts +82 -82
  48. package/2D/controls/sliders/baseSlider.js +347 -347
  49. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -49
  50. package/2D/controls/sliders/imageBasedSlider.js +192 -192
  51. package/2D/controls/sliders/imageScrollBar.d.ts +65 -65
  52. package/2D/controls/sliders/imageScrollBar.js +263 -263
  53. package/2D/controls/sliders/scrollBar.d.ts +38 -38
  54. package/2D/controls/sliders/scrollBar.js +143 -143
  55. package/2D/controls/sliders/slider.d.ts +35 -35
  56. package/2D/controls/sliders/slider.js +271 -271
  57. package/2D/controls/stackPanel.d.ts +64 -64
  58. package/2D/controls/stackPanel.js +246 -246
  59. package/2D/controls/statics.d.ts +6 -6
  60. package/2D/controls/statics.js +49 -49
  61. package/2D/controls/textBlock.d.ts +175 -175
  62. package/2D/controls/textBlock.js +603 -603
  63. package/2D/controls/textWrapper.d.ts +13 -13
  64. package/2D/controls/textWrapper.js +101 -101
  65. package/2D/controls/toggleButton.d.ts +117 -117
  66. package/2D/controls/toggleButton.js +268 -268
  67. package/2D/controls/virtualKeyboard.d.ts +96 -96
  68. package/2D/controls/virtualKeyboard.js +256 -256
  69. package/2D/index.d.ts +9 -9
  70. package/2D/index.js +9 -9
  71. package/2D/math2D.d.ts +117 -117
  72. package/2D/math2D.js +221 -221
  73. package/2D/measure.d.ts +77 -77
  74. package/2D/measure.js +139 -139
  75. package/2D/multiLinePoint.d.ts +47 -47
  76. package/2D/multiLinePoint.js +127 -127
  77. package/2D/style.d.ts +46 -46
  78. package/2D/style.js +97 -97
  79. package/2D/valueAndUnit.d.ts +89 -89
  80. package/2D/valueAndUnit.js +226 -226
  81. package/2D/xmlLoader.d.ts +60 -60
  82. package/2D/xmlLoader.js +348 -348
  83. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  84. package/3D/behaviors/defaultBehavior.js +121 -121
  85. package/3D/controls/abstractButton3D.d.ts +15 -15
  86. package/3D/controls/abstractButton3D.js +25 -25
  87. package/3D/controls/button3D.d.ts +30 -30
  88. package/3D/controls/button3D.js +93 -93
  89. package/3D/controls/container3D.d.ts +72 -72
  90. package/3D/controls/container3D.js +139 -139
  91. package/3D/controls/contentDisplay3D.d.ts +30 -30
  92. package/3D/controls/contentDisplay3D.js +79 -79
  93. package/3D/controls/control3D.d.ts +201 -201
  94. package/3D/controls/control3D.js +445 -445
  95. package/3D/controls/cylinderPanel.d.ts +17 -17
  96. package/3D/controls/cylinderPanel.js +66 -66
  97. package/3D/controls/handMenu.d.ts +28 -28
  98. package/3D/controls/handMenu.js +47 -47
  99. package/3D/controls/holographicBackplate.d.ts +49 -49
  100. package/3D/controls/holographicBackplate.js +120 -120
  101. package/3D/controls/holographicButton.d.ts +84 -84
  102. package/3D/controls/holographicButton.js +339 -339
  103. package/3D/controls/holographicSlate.d.ts +131 -131
  104. package/3D/controls/holographicSlate.js +431 -431
  105. package/3D/controls/index.d.ts +21 -21
  106. package/3D/controls/index.js +21 -21
  107. package/3D/controls/meshButton3D.d.ts +21 -21
  108. package/3D/controls/meshButton3D.js +62 -62
  109. package/3D/controls/nearMenu.d.ts +44 -44
  110. package/3D/controls/nearMenu.js +114 -114
  111. package/3D/controls/planePanel.d.ts +9 -9
  112. package/3D/controls/planePanel.js +36 -36
  113. package/3D/controls/scatterPanel.d.ts +18 -18
  114. package/3D/controls/scatterPanel.js +108 -108
  115. package/3D/controls/slider3D.d.ts +81 -81
  116. package/3D/controls/slider3D.js +268 -268
  117. package/3D/controls/spherePanel.d.ts +17 -17
  118. package/3D/controls/spherePanel.js +67 -67
  119. package/3D/controls/stackPanel3D.d.ts +22 -22
  120. package/3D/controls/stackPanel3D.js +107 -107
  121. package/3D/controls/touchButton3D.d.ts +80 -80
  122. package/3D/controls/touchButton3D.js +233 -233
  123. package/3D/controls/touchHolographicButton.d.ts +110 -110
  124. package/3D/controls/touchHolographicButton.js +445 -445
  125. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  126. package/3D/controls/touchHolographicMenu.js +149 -149
  127. package/3D/controls/touchMeshButton3D.d.ts +21 -21
  128. package/3D/controls/touchMeshButton3D.js +62 -62
  129. package/3D/controls/volumeBasedPanel.d.ts +53 -53
  130. package/3D/controls/volumeBasedPanel.js +174 -174
  131. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  132. package/3D/gizmos/gizmoHandle.js +209 -209
  133. package/3D/gizmos/index.d.ts +2 -2
  134. package/3D/gizmos/index.js +2 -2
  135. package/3D/gizmos/slateGizmo.d.ts +57 -57
  136. package/3D/gizmos/slateGizmo.js +369 -369
  137. package/3D/gui3DManager.d.ts +94 -94
  138. package/3D/gui3DManager.js +257 -257
  139. package/3D/index.d.ts +5 -5
  140. package/3D/index.js +5 -5
  141. package/3D/materials/fluent/fluentMaterial.d.ts +90 -90
  142. package/3D/materials/fluent/fluentMaterial.js +292 -292
  143. package/3D/materials/fluent/index.d.ts +1 -1
  144. package/3D/materials/fluent/index.js +1 -1
  145. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  146. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -8
  147. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  148. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -8
  149. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -154
  150. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -469
  151. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  152. package/3D/materials/fluentBackplate/index.js +1 -1
  153. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  154. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -8
  155. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  156. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -8
  157. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -189
  158. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -539
  159. package/3D/materials/fluentButton/index.d.ts +1 -1
  160. package/3D/materials/fluentButton/index.js +1 -1
  161. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  162. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -8
  163. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  164. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -8
  165. package/3D/materials/fluentMaterial.d.ts +4 -4
  166. package/3D/materials/fluentMaterial.js +4 -4
  167. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  168. package/3D/materials/handle/handleMaterial.js +126 -126
  169. package/3D/materials/handle/index.d.ts +1 -1
  170. package/3D/materials/handle/index.js +1 -1
  171. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  172. package/3D/materials/handle/shaders/handle.fragment.js +8 -8
  173. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  174. package/3D/materials/handle/shaders/handle.vertex.js +8 -8
  175. package/3D/materials/index.d.ts +5 -5
  176. package/3D/materials/index.js +5 -5
  177. package/3D/materials/mrdl/index.d.ts +3 -3
  178. package/3D/materials/mrdl/index.js +3 -3
  179. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -147
  180. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -436
  181. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -333
  182. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -851
  183. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -333
  184. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -851
  185. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  186. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -8
  187. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  188. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -8
  189. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  190. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -8
  191. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  192. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -8
  193. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  194. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -8
  195. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  196. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -8
  197. package/3D/vector3WithInfo.d.ts +16 -16
  198. package/3D/vector3WithInfo.js +23 -23
  199. package/index.d.ts +2 -2
  200. package/index.js +2 -2
  201. package/legacy/legacy.d.ts +1 -1
  202. package/legacy/legacy.js +13 -13
  203. package/package.json +2 -2
@@ -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,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,80 +1,80 @@
1
- import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
- import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
3
- import { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
4
- import { 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
- }
1
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
+ import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
3
+ import { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
4
+ import { 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
+ }