@babylonjs/gui 5.21.0 → 5.23.0

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 (178) hide show
  1. package/2D/adtInstrumentation.js +70 -90
  2. package/2D/adtInstrumentation.js.map +1 -1
  3. package/2D/advancedDynamicTexture.d.ts +12 -0
  4. package/2D/advancedDynamicTexture.js +569 -622
  5. package/2D/advancedDynamicTexture.js.map +1 -1
  6. package/2D/controls/button.js +76 -90
  7. package/2D/controls/button.js.map +1 -1
  8. package/2D/controls/checkbox.js +86 -106
  9. package/2D/controls/checkbox.js.map +1 -1
  10. package/2D/controls/colorpicker.js +395 -415
  11. package/2D/controls/colorpicker.js.map +1 -1
  12. package/2D/controls/container.js +187 -230
  13. package/2D/controls/container.js.map +1 -1
  14. package/2D/controls/control.js +1067 -1353
  15. package/2D/controls/control.js.map +1 -1
  16. package/2D/controls/displayGrid.js +152 -196
  17. package/2D/controls/displayGrid.js.map +1 -1
  18. package/2D/controls/ellipse.js +32 -40
  19. package/2D/controls/ellipse.js.map +1 -1
  20. package/2D/controls/focusableButton.js +30 -35
  21. package/2D/controls/focusableButton.js.map +1 -1
  22. package/2D/controls/grid.js +172 -212
  23. package/2D/controls/grid.js.map +1 -1
  24. package/2D/controls/image.js +489 -592
  25. package/2D/controls/image.js.map +1 -1
  26. package/2D/controls/inputPassword.js +9 -16
  27. package/2D/controls/inputPassword.js.map +1 -1
  28. package/2D/controls/inputText.js +380 -467
  29. package/2D/controls/inputText.js.map +1 -1
  30. package/2D/controls/inputTextArea.js +234 -273
  31. package/2D/controls/inputTextArea.js.map +1 -1
  32. package/2D/controls/line.js +147 -198
  33. package/2D/controls/line.js.map +1 -1
  34. package/2D/controls/multiLine.js +87 -113
  35. package/2D/controls/multiLine.js.map +1 -1
  36. package/2D/controls/radioButton.js +106 -127
  37. package/2D/controls/radioButton.js.map +1 -1
  38. package/2D/controls/rectangle.js +60 -72
  39. package/2D/controls/rectangle.js.map +1 -1
  40. package/2D/controls/scrollViewers/scrollViewer.js +439 -543
  41. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  42. package/2D/controls/scrollViewers/scrollViewerWindow.js +99 -118
  43. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  44. package/2D/controls/selector.js +241 -329
  45. package/2D/controls/selector.js.map +1 -1
  46. package/2D/controls/sliders/baseSlider.js +182 -230
  47. package/2D/controls/sliders/baseSlider.js.map +1 -1
  48. package/2D/controls/sliders/imageBasedSlider.js +86 -109
  49. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  50. package/2D/controls/sliders/imageScrollBar.js +148 -178
  51. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  52. package/2D/controls/sliders/scrollBar.js +64 -80
  53. package/2D/controls/sliders/scrollBar.js.map +1 -1
  54. package/2D/controls/sliders/slider.js +91 -115
  55. package/2D/controls/sliders/slider.js.map +1 -1
  56. package/2D/controls/stackPanel.js +114 -135
  57. package/2D/controls/stackPanel.js.map +1 -1
  58. package/2D/controls/statics.js +5 -5
  59. package/2D/controls/statics.js.map +1 -1
  60. package/2D/controls/textBlock.js +322 -384
  61. package/2D/controls/textBlock.js.map +1 -1
  62. package/2D/controls/textWrapper.js +27 -41
  63. package/2D/controls/textWrapper.js.map +1 -1
  64. package/2D/controls/toggleButton.js +105 -121
  65. package/2D/controls/toggleButton.js.map +1 -1
  66. package/2D/controls/virtualKeyboard.js +101 -123
  67. package/2D/controls/virtualKeyboard.js.map +1 -1
  68. package/2D/math2D.js +62 -70
  69. package/2D/math2D.js.map +1 -1
  70. package/2D/measure.js +30 -32
  71. package/2D/measure.js.map +1 -1
  72. package/2D/multiLinePoint.js +71 -89
  73. package/2D/multiLinePoint.js.map +1 -1
  74. package/2D/style.js +55 -73
  75. package/2D/style.js.map +1 -1
  76. package/2D/valueAndUnit.js +71 -104
  77. package/2D/valueAndUnit.js.map +1 -1
  78. package/2D/xmlLoader.js +70 -84
  79. package/2D/xmlLoader.js.map +1 -1
  80. package/3D/behaviors/defaultBehavior.js +40 -59
  81. package/3D/behaviors/defaultBehavior.js.map +1 -1
  82. package/3D/controls/abstractButton3D.js +8 -12
  83. package/3D/controls/abstractButton3D.js.map +1 -1
  84. package/3D/controls/button3D.js +30 -35
  85. package/3D/controls/button3D.js.map +1 -1
  86. package/3D/controls/container3D.js +57 -71
  87. package/3D/controls/container3D.js.map +1 -1
  88. package/3D/controls/contentDisplay3D.js +47 -60
  89. package/3D/controls/contentDisplay3D.js.map +1 -1
  90. package/3D/controls/control3D.js +123 -158
  91. package/3D/controls/control3D.js.map +1 -1
  92. package/3D/controls/cylinderPanel.js +28 -38
  93. package/3D/controls/cylinderPanel.js.map +1 -1
  94. package/3D/controls/handMenu.js +20 -29
  95. package/3D/controls/handMenu.js.map +1 -1
  96. package/3D/controls/holographicBackplate.js +52 -72
  97. package/3D/controls/holographicBackplate.js.map +1 -1
  98. package/3D/controls/holographicButton.js +160 -200
  99. package/3D/controls/holographicButton.js.map +1 -1
  100. package/3D/controls/holographicSlate.js +176 -206
  101. package/3D/controls/holographicSlate.js.map +1 -1
  102. package/3D/controls/meshButton3D.js +24 -30
  103. package/3D/controls/meshButton3D.js.map +1 -1
  104. package/3D/controls/nearMenu.js +57 -71
  105. package/3D/controls/nearMenu.js.map +1 -1
  106. package/3D/controls/planePanel.js +6 -13
  107. package/3D/controls/planePanel.js.map +1 -1
  108. package/3D/controls/scatterPanel.js +43 -54
  109. package/3D/controls/scatterPanel.js.map +1 -1
  110. package/3D/controls/slider3D.js +168 -222
  111. package/3D/controls/slider3D.js.map +1 -1
  112. package/3D/controls/spherePanel.js +29 -39
  113. package/3D/controls/spherePanel.js.map +1 -1
  114. package/3D/controls/stackPanel3D.js +36 -49
  115. package/3D/controls/stackPanel3D.js.map +1 -1
  116. package/3D/controls/touchButton3D.js +126 -154
  117. package/3D/controls/touchButton3D.js.map +1 -1
  118. package/3D/controls/touchHolographicButton.js +223 -272
  119. package/3D/controls/touchHolographicButton.js.map +1 -1
  120. package/3D/controls/touchHolographicMenu.js +55 -66
  121. package/3D/controls/touchHolographicMenu.js.map +1 -1
  122. package/3D/controls/touchMeshButton3D.js +24 -30
  123. package/3D/controls/touchMeshButton3D.js.map +1 -1
  124. package/3D/controls/volumeBasedPanel.js +85 -107
  125. package/3D/controls/volumeBasedPanel.js.map +1 -1
  126. package/3D/gizmos/gizmoHandle.js +68 -103
  127. package/3D/gizmos/gizmoHandle.js.map +1 -1
  128. package/3D/gizmos/slateGizmo.js +165 -182
  129. package/3D/gizmos/slateGizmo.js.map +1 -1
  130. package/3D/gui3DManager.js +76 -101
  131. package/3D/gui3DManager.js.map +1 -1
  132. package/3D/materials/fluent/fluentMaterial.js +110 -119
  133. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  134. package/3D/materials/fluent/shaders/fluent.fragment.js +20 -3
  135. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
  136. package/3D/materials/fluent/shaders/fluent.vertex.js +11 -3
  137. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
  138. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +168 -177
  139. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  140. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +9 -3
  141. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
  142. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +15 -3
  143. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
  144. package/3D/materials/fluentButton/fluentButtonMaterial.js +205 -213
  145. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  146. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +6 -3
  147. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
  148. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +6 -3
  149. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
  150. package/3D/materials/handle/handleMaterial.js +56 -69
  151. package/3D/materials/handle/handleMaterial.js.map +1 -1
  152. package/3D/materials/handle/shaders/handle.fragment.js +3 -3
  153. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
  154. package/3D/materials/handle/shaders/handle.vertex.js +3 -3
  155. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
  156. package/3D/materials/mrdl/mrdlBackplateMaterial.js +158 -166
  157. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  158. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +322 -330
  159. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  160. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +322 -330
  161. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  162. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +9 -3
  163. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
  164. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +6 -3
  165. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
  166. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +24 -3
  167. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
  168. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +12 -3
  169. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
  170. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +24 -3
  171. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
  172. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +12 -3
  173. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
  174. package/3D/vector3WithInfo.js +6 -12
  175. package/3D/vector3WithInfo.js.map +1 -1
  176. package/legacy/legacy.js +1 -1
  177. package/legacy/legacy.js.map +1 -1
  178. package/package.json +3 -6
@@ -1,4 +1,3 @@
1
- import { __extends } from "tslib";
2
1
  import { Tools } from "@babylonjs/core/Misc/tools.js";
3
2
  import { TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
3
  import { VolumeBasedPanel } from "./volumeBasedPanel.js";
@@ -6,36 +5,29 @@ import { Container3D } from "./container3D.js";
6
5
  /**
7
6
  * Class used to create a container panel where items get randomized planar mapping
8
7
  */
9
- var ScatterPanel = /** @class */ (function (_super) {
10
- __extends(ScatterPanel, _super);
11
- function ScatterPanel() {
12
- var _this = _super !== null && _super.apply(this, arguments) || this;
13
- _this._iteration = 100.0;
14
- return _this;
8
+ export class ScatterPanel extends VolumeBasedPanel {
9
+ constructor() {
10
+ super(...arguments);
11
+ this._iteration = 100.0;
15
12
  }
16
- Object.defineProperty(ScatterPanel.prototype, "iteration", {
17
- /**
18
- * Gets or sets the number of iteration to use to scatter the controls (100 by default)
19
- */
20
- get: function () {
21
- return this._iteration;
22
- },
23
- set: function (value) {
24
- var _this = this;
25
- if (this._iteration === value) {
26
- return;
27
- }
28
- this._iteration = value;
29
- Tools.SetImmediate(function () {
30
- _this._arrangeChildren();
31
- });
32
- },
33
- enumerable: false,
34
- configurable: true
35
- });
36
- ScatterPanel.prototype._mapGridNode = function (control, nodePosition) {
37
- var mesh = control.mesh;
38
- var newPos = this._scatterMapping(nodePosition);
13
+ /**
14
+ * Gets or sets the number of iteration to use to scatter the controls (100 by default)
15
+ */
16
+ get iteration() {
17
+ return this._iteration;
18
+ }
19
+ set iteration(value) {
20
+ if (this._iteration === value) {
21
+ return;
22
+ }
23
+ this._iteration = value;
24
+ Tools.SetImmediate(() => {
25
+ this._arrangeChildren();
26
+ });
27
+ }
28
+ _mapGridNode(control, nodePosition) {
29
+ const mesh = control.mesh;
30
+ const newPos = this._scatterMapping(nodePosition);
39
31
  if (!mesh) {
40
32
  return;
41
33
  }
@@ -50,25 +42,24 @@ var ScatterPanel = /** @class */ (function (_super) {
50
42
  break;
51
43
  }
52
44
  control.position = newPos;
53
- };
54
- ScatterPanel.prototype._scatterMapping = function (source) {
45
+ }
46
+ _scatterMapping(source) {
55
47
  source.x = (1.0 - Math.random() * 2.0) * this._cellWidth;
56
48
  source.y = (1.0 - Math.random() * 2.0) * this._cellHeight;
57
49
  return source;
58
- };
59
- ScatterPanel.prototype._finalProcessing = function () {
60
- var meshes = [];
61
- for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
62
- var child = _a[_i];
50
+ }
51
+ _finalProcessing() {
52
+ const meshes = [];
53
+ for (const child of this._children) {
63
54
  if (!child.mesh) {
64
55
  continue;
65
56
  }
66
57
  meshes.push(child.mesh);
67
58
  }
68
- for (var count = 0; count < this._iteration; count++) {
69
- meshes.sort(function (a, b) {
70
- var distance1 = a.position.lengthSquared();
71
- var distance2 = b.position.lengthSquared();
59
+ for (let count = 0; count < this._iteration; count++) {
60
+ meshes.sort((a, b) => {
61
+ const distance1 = a.position.lengthSquared();
62
+ const distance2 = b.position.lengthSquared();
72
63
  if (distance1 < distance2) {
73
64
  return 1;
74
65
  }
@@ -77,20 +68,20 @@ var ScatterPanel = /** @class */ (function (_super) {
77
68
  }
78
69
  return 0;
79
70
  });
80
- var radiusPaddingSquared = Math.pow(this.margin, 2.0);
81
- var cellSize = Math.max(this._cellWidth, this._cellHeight);
82
- var difference2D = TmpVectors.Vector2[0];
83
- var difference = TmpVectors.Vector3[0];
84
- for (var i = 0; i < meshes.length - 1; i++) {
85
- for (var j = i + 1; j < meshes.length; j++) {
71
+ const radiusPaddingSquared = Math.pow(this.margin, 2.0);
72
+ const cellSize = Math.max(this._cellWidth, this._cellHeight);
73
+ const difference2D = TmpVectors.Vector2[0];
74
+ const difference = TmpVectors.Vector3[0];
75
+ for (let i = 0; i < meshes.length - 1; i++) {
76
+ for (let j = i + 1; j < meshes.length; j++) {
86
77
  if (i != j) {
87
78
  meshes[j].position.subtractToRef(meshes[i].position, difference);
88
79
  // Ignore Z axis
89
80
  difference2D.x = difference.x;
90
81
  difference2D.y = difference.y;
91
- var combinedRadius = cellSize;
92
- var distance = difference2D.lengthSquared() - radiusPaddingSquared;
93
- var minSeparation = Math.min(distance, radiusPaddingSquared);
82
+ const combinedRadius = cellSize;
83
+ let distance = difference2D.lengthSquared() - radiusPaddingSquared;
84
+ const minSeparation = Math.min(distance, radiusPaddingSquared);
94
85
  distance -= minSeparation;
95
86
  if (distance < Math.pow(combinedRadius, 2.0)) {
96
87
  difference2D.normalize();
@@ -102,8 +93,6 @@ var ScatterPanel = /** @class */ (function (_super) {
102
93
  }
103
94
  }
104
95
  }
105
- };
106
- return ScatterPanel;
107
- }(VolumeBasedPanel));
108
- export { ScatterPanel };
96
+ }
97
+ }
109
98
  //# sourceMappingURL=scatterPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scatterPanel.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/scatterPanel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { 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\n\r\n/**\r\n * Class used to create a container panel where items get randomized planar mapping\r\n */\r\nexport class ScatterPanel extends VolumeBasedPanel {\r\n private _iteration = 100.0;\r\n\r\n /**\r\n * Gets or sets the number of iteration to use to scatter the controls (100 by default)\r\n */\r\n public get iteration(): float {\r\n return this._iteration;\r\n }\r\n\r\n public set iteration(value: float) {\r\n if (this._iteration === value) {\r\n return;\r\n }\r\n\r\n this._iteration = 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 const newPos = this._scatterMapping(nodePosition);\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n mesh.lookAt(new Vector3(0, 0, 1));\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(0, 0, -1));\r\n break;\r\n }\r\n\r\n control.position = newPos;\r\n }\r\n\r\n private _scatterMapping(source: Vector3): Vector3 {\r\n source.x = (1.0 - Math.random() * 2.0) * this._cellWidth;\r\n source.y = (1.0 - Math.random() * 2.0) * this._cellHeight;\r\n\r\n return source;\r\n }\r\n\r\n protected _finalProcessing() {\r\n const meshes = [];\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n meshes.push(child.mesh);\r\n }\r\n\r\n for (let count = 0; count < this._iteration; count++) {\r\n meshes.sort((a, b) => {\r\n const distance1 = a.position.lengthSquared();\r\n const distance2 = b.position.lengthSquared();\r\n\r\n if (distance1 < distance2) {\r\n return 1;\r\n } else if (distance1 > distance2) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n const radiusPaddingSquared = Math.pow(this.margin, 2.0);\r\n const cellSize = Math.max(this._cellWidth, this._cellHeight);\r\n const difference2D = TmpVectors.Vector2[0];\r\n const difference = TmpVectors.Vector3[0];\r\n\r\n for (let i = 0; i < meshes.length - 1; i++) {\r\n for (let j = i + 1; j < meshes.length; j++) {\r\n if (i != j) {\r\n meshes[j].position.subtractToRef(meshes[i].position, difference);\r\n\r\n // Ignore Z axis\r\n difference2D.x = difference.x;\r\n difference2D.y = difference.y;\r\n const combinedRadius = cellSize;\r\n let distance = difference2D.lengthSquared() - radiusPaddingSquared;\r\n const minSeparation = Math.min(distance, radiusPaddingSquared);\r\n distance -= minSeparation;\r\n\r\n if (distance < Math.pow(combinedRadius, 2.0)) {\r\n difference2D.normalize();\r\n difference.scaleInPlace((combinedRadius - Math.sqrt(distance)) * 0.5);\r\n meshes[j].position.addInPlace(difference);\r\n meshes[i].position.subtractInPlace(difference);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"scatterPanel.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/scatterPanel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { 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\n\r\n/**\r\n * Class used to create a container panel where items get randomized planar mapping\r\n */\r\nexport class ScatterPanel extends VolumeBasedPanel {\r\n private _iteration = 100.0;\r\n\r\n /**\r\n * Gets or sets the number of iteration to use to scatter the controls (100 by default)\r\n */\r\n public get iteration(): float {\r\n return this._iteration;\r\n }\r\n\r\n public set iteration(value: float) {\r\n if (this._iteration === value) {\r\n return;\r\n }\r\n\r\n this._iteration = 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 const newPos = this._scatterMapping(nodePosition);\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n mesh.lookAt(new Vector3(0, 0, 1));\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(0, 0, -1));\r\n break;\r\n }\r\n\r\n control.position = newPos;\r\n }\r\n\r\n private _scatterMapping(source: Vector3): Vector3 {\r\n source.x = (1.0 - Math.random() * 2.0) * this._cellWidth;\r\n source.y = (1.0 - Math.random() * 2.0) * this._cellHeight;\r\n\r\n return source;\r\n }\r\n\r\n protected _finalProcessing() {\r\n const meshes = [];\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n meshes.push(child.mesh);\r\n }\r\n\r\n for (let count = 0; count < this._iteration; count++) {\r\n meshes.sort((a, b) => {\r\n const distance1 = a.position.lengthSquared();\r\n const distance2 = b.position.lengthSquared();\r\n\r\n if (distance1 < distance2) {\r\n return 1;\r\n } else if (distance1 > distance2) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n const radiusPaddingSquared = Math.pow(this.margin, 2.0);\r\n const cellSize = Math.max(this._cellWidth, this._cellHeight);\r\n const difference2D = TmpVectors.Vector2[0];\r\n const difference = TmpVectors.Vector3[0];\r\n\r\n for (let i = 0; i < meshes.length - 1; i++) {\r\n for (let j = i + 1; j < meshes.length; j++) {\r\n if (i != j) {\r\n meshes[j].position.subtractToRef(meshes[i].position, difference);\r\n\r\n // Ignore Z axis\r\n difference2D.x = difference.x;\r\n difference2D.y = difference.y;\r\n const combinedRadius = cellSize;\r\n let distance = difference2D.lengthSquared() - radiusPaddingSquared;\r\n const minSeparation = Math.min(distance, radiusPaddingSquared);\r\n distance -= minSeparation;\r\n\r\n if (distance < Math.pow(combinedRadius, 2.0)) {\r\n difference2D.normalize();\r\n difference.scaleInPlace((combinedRadius - Math.sqrt(distance)) * 0.5);\r\n meshes[j].position.addInPlace(difference);\r\n meshes[i].position.subtractInPlace(difference);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1,4 +1,3 @@
1
- import { __extends } from "tslib";
2
1
  import { Observable } from "@babylonjs/core/Misc/observable.js";
3
2
  import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
3
  import { Control3D } from "./control3D.js";
@@ -8,175 +7,127 @@ import { SceneLoader } from "@babylonjs/core/Loading/sceneLoader.js";
8
7
  import { MRDLSliderBarMaterial } from "../materials/mrdl/mrdlSliderBarMaterial.js";
9
8
  import { MRDLSliderThumbMaterial } from "../materials/mrdl/mrdlSliderThumbMaterial.js";
10
9
  import { MRDLBackplateMaterial } from "../materials/mrdl/mrdlBackplateMaterial.js";
11
- var SLIDER_MIN = 0;
12
- var SLIDER_MAX = 100;
13
- var SLIDER_VAL = 50;
14
- var SLIDER_STEP = 0;
15
- var SLIDER_SCALING = 1.0;
16
- var SLIDER_MARGIN = 0.2;
10
+ const SLIDER_MIN = 0;
11
+ const SLIDER_MAX = 100;
12
+ const SLIDER_VAL = 50;
13
+ const SLIDER_STEP = 0;
14
+ const SLIDER_SCALING = 1.0;
15
+ const SLIDER_MARGIN = 0.2;
17
16
  /**
18
17
  * Class used to create a slider in 3D
19
18
  */
20
- var Slider3D = /** @class */ (function (_super) {
21
- __extends(Slider3D, _super);
19
+ export class Slider3D extends Control3D {
22
20
  /**
23
21
  * Creates a new slider
24
22
  * @param name defines the control name
25
23
  * @param sliderBackplateVisible defines if the control has a backplate, default is false
26
24
  */
27
- function Slider3D(name, sliderBackplateVisible) {
28
- var _this = _super.call(this, name) || this;
25
+ constructor(name, sliderBackplateVisible) {
26
+ super(name);
29
27
  /** Observable raised when the sldier value changes */
30
- _this.onValueChangedObservable = new Observable();
31
- _this._sliderBackplateVisible = sliderBackplateVisible || false;
32
- _this._minimum = SLIDER_MIN;
33
- _this._maximum = SLIDER_MAX;
34
- _this._step = SLIDER_STEP;
35
- _this._value = SLIDER_VAL;
36
- return _this;
28
+ this.onValueChangedObservable = new Observable();
29
+ this._sliderBackplateVisible = sliderBackplateVisible || false;
30
+ this._minimum = SLIDER_MIN;
31
+ this._maximum = SLIDER_MAX;
32
+ this._step = SLIDER_STEP;
33
+ this._value = SLIDER_VAL;
34
+ }
35
+ /**
36
+ * Gets the mesh used to render this control
37
+ */
38
+ get mesh() {
39
+ if (this.node) {
40
+ return this._sliderThumb;
41
+ }
42
+ return null;
43
+ }
44
+ /** Gets or sets minimum value */
45
+ get minimum() {
46
+ return this._minimum;
47
+ }
48
+ set minimum(value) {
49
+ if (this._minimum === value) {
50
+ return;
51
+ }
52
+ this._minimum = Math.max(value, SLIDER_MIN);
53
+ this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);
54
+ }
55
+ /** Gets or sets maximum value */
56
+ get maximum() {
57
+ return this._maximum;
58
+ }
59
+ set maximum(value) {
60
+ if (this._maximum === value) {
61
+ return;
62
+ }
63
+ this._maximum = Math.max(value, this._minimum);
64
+ this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);
65
+ }
66
+ /** Gets or sets step value */
67
+ get step() {
68
+ return this._step;
69
+ }
70
+ set step(value) {
71
+ if (this._step === value) {
72
+ return;
73
+ }
74
+ this._step = Math.max(Math.min(value, this._maximum - this._minimum), SLIDER_STEP);
75
+ }
76
+ /** Gets or sets current value */
77
+ get value() {
78
+ return this._value;
79
+ }
80
+ set value(value) {
81
+ if (this._value === value) {
82
+ return;
83
+ }
84
+ this._value = Math.max(Math.min(value, this._maximum), this._minimum);
85
+ if (this._sliderThumb) {
86
+ this._sliderThumb.position.x = this._convertToPosition(this.value);
87
+ }
88
+ this.onValueChangedObservable.notifyObservers(this._value);
89
+ }
90
+ get start() {
91
+ if (!this.node) {
92
+ return -SLIDER_SCALING / 2;
93
+ }
94
+ return this._sliderBar.position.x - this._sliderBar.scaling.x / 2;
95
+ }
96
+ get end() {
97
+ if (!this.node) {
98
+ return SLIDER_SCALING / 2;
99
+ }
100
+ return this._sliderBar.position.x + this._sliderBar.scaling.x / 2;
101
+ }
102
+ /**
103
+ * Gets the slider bar material used by this control
104
+ */
105
+ get sliderBarMaterial() {
106
+ return this._sliderBarMaterial;
107
+ }
108
+ /**
109
+ * Gets the slider thumb material used by this control
110
+ */
111
+ get sliderThumbMaterial() {
112
+ return this._sliderThumbMaterial;
113
+ }
114
+ /**
115
+ * Gets the slider backplate material used by this control
116
+ */
117
+ get sliderBackplateMaterial() {
118
+ return this._sliderBackplateMaterial;
119
+ }
120
+ /** Sets a boolean indicating if the control is visible */
121
+ set isVisible(value) {
122
+ if (this._isVisible === value) {
123
+ return;
124
+ }
125
+ this._isVisible = value;
126
+ this.node?.setEnabled(value);
37
127
  }
38
- Object.defineProperty(Slider3D.prototype, "mesh", {
39
- /**
40
- * Gets the mesh used to render this control
41
- */
42
- get: function () {
43
- if (this.node) {
44
- return this._sliderThumb;
45
- }
46
- return null;
47
- },
48
- enumerable: false,
49
- configurable: true
50
- });
51
- Object.defineProperty(Slider3D.prototype, "minimum", {
52
- /** Gets or sets minimum value */
53
- get: function () {
54
- return this._minimum;
55
- },
56
- set: function (value) {
57
- if (this._minimum === value) {
58
- return;
59
- }
60
- this._minimum = Math.max(value, SLIDER_MIN);
61
- this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);
62
- },
63
- enumerable: false,
64
- configurable: true
65
- });
66
- Object.defineProperty(Slider3D.prototype, "maximum", {
67
- /** Gets or sets maximum value */
68
- get: function () {
69
- return this._maximum;
70
- },
71
- set: function (value) {
72
- if (this._maximum === value) {
73
- return;
74
- }
75
- this._maximum = Math.max(value, this._minimum);
76
- this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);
77
- },
78
- enumerable: false,
79
- configurable: true
80
- });
81
- Object.defineProperty(Slider3D.prototype, "step", {
82
- /** Gets or sets step value */
83
- get: function () {
84
- return this._step;
85
- },
86
- set: function (value) {
87
- if (this._step === value) {
88
- return;
89
- }
90
- this._step = Math.max(Math.min(value, this._maximum - this._minimum), SLIDER_STEP);
91
- },
92
- enumerable: false,
93
- configurable: true
94
- });
95
- Object.defineProperty(Slider3D.prototype, "value", {
96
- /** Gets or sets current value */
97
- get: function () {
98
- return this._value;
99
- },
100
- set: function (value) {
101
- if (this._value === value) {
102
- return;
103
- }
104
- this._value = Math.max(Math.min(value, this._maximum), this._minimum);
105
- if (this._sliderThumb) {
106
- this._sliderThumb.position.x = this._convertToPosition(this.value);
107
- }
108
- this.onValueChangedObservable.notifyObservers(this._value);
109
- },
110
- enumerable: false,
111
- configurable: true
112
- });
113
- Object.defineProperty(Slider3D.prototype, "start", {
114
- get: function () {
115
- if (!this.node) {
116
- return -SLIDER_SCALING / 2;
117
- }
118
- return this._sliderBar.position.x - this._sliderBar.scaling.x / 2;
119
- },
120
- enumerable: false,
121
- configurable: true
122
- });
123
- Object.defineProperty(Slider3D.prototype, "end", {
124
- get: function () {
125
- if (!this.node) {
126
- return SLIDER_SCALING / 2;
127
- }
128
- return this._sliderBar.position.x + this._sliderBar.scaling.x / 2;
129
- },
130
- enumerable: false,
131
- configurable: true
132
- });
133
- Object.defineProperty(Slider3D.prototype, "sliderBarMaterial", {
134
- /**
135
- * Gets the slider bar material used by this control
136
- */
137
- get: function () {
138
- return this._sliderBarMaterial;
139
- },
140
- enumerable: false,
141
- configurable: true
142
- });
143
- Object.defineProperty(Slider3D.prototype, "sliderThumbMaterial", {
144
- /**
145
- * Gets the slider thumb material used by this control
146
- */
147
- get: function () {
148
- return this._sliderThumbMaterial;
149
- },
150
- enumerable: false,
151
- configurable: true
152
- });
153
- Object.defineProperty(Slider3D.prototype, "sliderBackplateMaterial", {
154
- /**
155
- * Gets the slider backplate material used by this control
156
- */
157
- get: function () {
158
- return this._sliderBackplateMaterial;
159
- },
160
- enumerable: false,
161
- configurable: true
162
- });
163
- Object.defineProperty(Slider3D.prototype, "isVisible", {
164
- /** Sets a boolean indicating if the control is visible */
165
- set: function (value) {
166
- var _a;
167
- if (this._isVisible === value) {
168
- return;
169
- }
170
- this._isVisible = value;
171
- (_a = this.node) === null || _a === void 0 ? void 0 : _a.setEnabled(value);
172
- },
173
- enumerable: false,
174
- configurable: true
175
- });
176
128
  // Mesh association
177
- Slider3D.prototype._createNode = function (scene) {
178
- var _this = this;
179
- var sliderBackplate = CreateBox("".concat(this.name, "_sliderbackplate"), {
129
+ _createNode(scene) {
130
+ const sliderBackplate = CreateBox(`${this.name}_sliderbackplate`, {
180
131
  width: 1.0,
181
132
  height: 1.0,
182
133
  depth: 1.0,
@@ -184,103 +135,98 @@ var Slider3D = /** @class */ (function (_super) {
184
135
  sliderBackplate.isPickable = false;
185
136
  sliderBackplate.visibility = 0;
186
137
  sliderBackplate.scaling = new Vector3(1, 0.5, 0.8);
187
- SceneLoader.ImportMeshAsync(undefined, Slider3D.MODEL_BASE_URL, Slider3D.MODEL_FILENAME, scene).then(function (result) {
188
- var sliderBackplateModel = result.meshes[1];
189
- var sliderBarModel = result.meshes[1].clone("".concat(_this.name, "_sliderbar"), sliderBackplate);
190
- var sliderThumbModel = result.meshes[1].clone("".concat(_this.name, "_sliderthumb"), sliderBackplate);
138
+ SceneLoader.ImportMeshAsync(undefined, Slider3D.MODEL_BASE_URL, Slider3D.MODEL_FILENAME, scene).then((result) => {
139
+ const sliderBackplateModel = result.meshes[1];
140
+ const sliderBarModel = result.meshes[1].clone(`${this.name}_sliderbar`, sliderBackplate);
141
+ const sliderThumbModel = result.meshes[1].clone(`${this.name}_sliderthumb`, sliderBackplate);
191
142
  sliderBackplateModel.visibility = 0;
192
- if (_this._sliderBackplateVisible) {
143
+ if (this._sliderBackplateVisible) {
193
144
  sliderBackplateModel.visibility = 1;
194
- sliderBackplateModel.name = "".concat(_this.name, "_sliderbackplate");
145
+ sliderBackplateModel.name = `${this.name}_sliderbackplate`;
195
146
  sliderBackplateModel.isPickable = false;
196
147
  sliderBackplateModel.scaling.x = 1;
197
148
  sliderBackplateModel.scaling.z = 0.2;
198
149
  sliderBackplateModel.parent = sliderBackplate;
199
- if (_this._sliderBackplateMaterial) {
200
- sliderBackplateModel.material = _this._sliderBackplateMaterial;
150
+ if (this._sliderBackplateMaterial) {
151
+ sliderBackplateModel.material = this._sliderBackplateMaterial;
201
152
  }
202
- _this._sliderBackplate = sliderBackplateModel;
153
+ this._sliderBackplate = sliderBackplateModel;
203
154
  }
204
155
  if (sliderBarModel) {
205
156
  sliderBarModel.parent = sliderBackplate;
206
157
  sliderBarModel.position.z = -0.1;
207
158
  sliderBarModel.scaling = new Vector3(SLIDER_SCALING - SLIDER_MARGIN, 0.04, 0.3);
208
159
  sliderBarModel.isPickable = false;
209
- if (_this._sliderBarMaterial) {
210
- sliderBarModel.material = _this._sliderBarMaterial;
160
+ if (this._sliderBarMaterial) {
161
+ sliderBarModel.material = this._sliderBarMaterial;
211
162
  }
212
- _this._sliderBar = sliderBarModel;
163
+ this._sliderBar = sliderBarModel;
213
164
  }
214
165
  if (sliderThumbModel) {
215
166
  sliderThumbModel.parent = sliderBackplate;
216
167
  sliderThumbModel.isPickable = true;
217
168
  sliderThumbModel.position.z = -0.115;
218
169
  sliderThumbModel.scaling = new Vector3(0.025, 0.3, 0.6);
219
- sliderThumbModel.position.x = _this._convertToPosition(_this.value);
220
- sliderThumbModel.addBehavior(_this._createBehavior());
221
- if (_this._sliderThumbMaterial) {
222
- sliderThumbModel.material = _this._sliderThumbMaterial;
170
+ sliderThumbModel.position.x = this._convertToPosition(this.value);
171
+ sliderThumbModel.addBehavior(this._createBehavior());
172
+ if (this._sliderThumbMaterial) {
173
+ sliderThumbModel.material = this._sliderThumbMaterial;
223
174
  }
224
- _this._sliderThumb = sliderThumbModel;
175
+ this._sliderThumb = sliderThumbModel;
225
176
  }
226
- _this._injectGUI3DReservedDataStore(sliderBackplate).control = _this;
227
- sliderBackplate.getChildMeshes().forEach(function (mesh) {
228
- _this._injectGUI3DReservedDataStore(mesh).control = _this;
177
+ this._injectGUI3DReservedDataStore(sliderBackplate).control = this;
178
+ sliderBackplate.getChildMeshes().forEach((mesh) => {
179
+ this._injectGUI3DReservedDataStore(mesh).control = this;
229
180
  });
230
181
  });
231
182
  this._affectMaterial(sliderBackplate);
232
183
  return sliderBackplate;
233
- };
234
- Slider3D.prototype._affectMaterial = function (mesh) {
235
- var _a, _b, _c;
236
- this._sliderBackplateMaterial = (_a = this._sliderBackplateMaterial) !== null && _a !== void 0 ? _a : new MRDLBackplateMaterial("".concat(this.name, "_sliderbackplate_material"), mesh.getScene());
237
- this._sliderBarMaterial = (_b = this._sliderBarMaterial) !== null && _b !== void 0 ? _b : new MRDLSliderBarMaterial("".concat(this.name, "_sliderbar_material"), mesh.getScene());
238
- this._sliderThumbMaterial = (_c = this._sliderThumbMaterial) !== null && _c !== void 0 ? _c : new MRDLSliderThumbMaterial("".concat(this.name, "_sliderthumb_material"), mesh.getScene());
239
- };
240
- Slider3D.prototype._createBehavior = function () {
241
- var _this = this;
242
- var pointerDragBehavior = new PointerDragBehavior({ dragAxis: Vector3.Right() });
184
+ }
185
+ _affectMaterial(mesh) {
186
+ this._sliderBackplateMaterial = this._sliderBackplateMaterial ?? new MRDLBackplateMaterial(`${this.name}_sliderbackplate_material`, mesh.getScene());
187
+ this._sliderBarMaterial = this._sliderBarMaterial ?? new MRDLSliderBarMaterial(`${this.name}_sliderbar_material`, mesh.getScene());
188
+ this._sliderThumbMaterial = this._sliderThumbMaterial ?? new MRDLSliderThumbMaterial(`${this.name}_sliderthumb_material`, mesh.getScene());
189
+ }
190
+ _createBehavior() {
191
+ const pointerDragBehavior = new PointerDragBehavior({ dragAxis: Vector3.Right() });
243
192
  pointerDragBehavior.moveAttached = false;
244
- pointerDragBehavior.onDragStartObservable.add(function () {
245
- _this._draggedPosition = _this._sliderThumb.position.x;
193
+ pointerDragBehavior.onDragStartObservable.add(() => {
194
+ this._draggedPosition = this._sliderThumb.position.x;
246
195
  });
247
- pointerDragBehavior.onDragObservable.add(function (event) {
248
- _this._draggedPosition += event.dragDistance / _this.scaling.x;
249
- _this.value = _this._convertToValue(_this._draggedPosition);
196
+ pointerDragBehavior.onDragObservable.add((event) => {
197
+ this._draggedPosition += event.dragDistance / this.scaling.x;
198
+ this.value = this._convertToValue(this._draggedPosition);
250
199
  });
251
200
  return pointerDragBehavior;
252
- };
253
- Slider3D.prototype._convertToPosition = function (value) {
254
- var position = ((value - this.minimum) / (this.maximum - this.minimum)) * (this.end - this.start) + this.start;
201
+ }
202
+ _convertToPosition(value) {
203
+ const position = ((value - this.minimum) / (this.maximum - this.minimum)) * (this.end - this.start) + this.start;
255
204
  return Math.min(Math.max(position, this.start), this.end);
256
- };
257
- Slider3D.prototype._convertToValue = function (position) {
258
- var value = ((position - this.start) / (this.end - this.start)) * (this.maximum - this.minimum);
205
+ }
206
+ _convertToValue(position) {
207
+ let value = ((position - this.start) / (this.end - this.start)) * (this.maximum - this.minimum);
259
208
  value = this.step ? Math.round(value / this.step) * this.step : value;
260
209
  return Math.max(Math.min(this.minimum + value, this._maximum), this._minimum);
261
- };
210
+ }
262
211
  /**
263
212
  * Releases all associated resources
264
213
  */
265
- Slider3D.prototype.dispose = function () {
266
- var _a, _b, _c, _d, _e, _f;
267
- _super.prototype.dispose.call(this);
268
- (_a = this._sliderBar) === null || _a === void 0 ? void 0 : _a.dispose();
269
- (_b = this._sliderThumb) === null || _b === void 0 ? void 0 : _b.dispose();
270
- (_c = this._sliderBarMaterial) === null || _c === void 0 ? void 0 : _c.dispose();
271
- (_d = this._sliderThumbMaterial) === null || _d === void 0 ? void 0 : _d.dispose();
272
- (_e = this._sliderBackplate) === null || _e === void 0 ? void 0 : _e.dispose();
273
- (_f = this._sliderBackplateMaterial) === null || _f === void 0 ? void 0 : _f.dispose();
274
- };
275
- /**
276
- * Base Url for the models.
277
- */
278
- Slider3D.MODEL_BASE_URL = "https://assets.babylonjs.com/meshes/MRTK/";
279
- /**
280
- * File name for the 8x4 model.
281
- */
282
- Slider3D.MODEL_FILENAME = "mrtk-fluent-backplate.glb";
283
- return Slider3D;
284
- }(Control3D));
285
- export { Slider3D };
214
+ dispose() {
215
+ super.dispose();
216
+ this._sliderBar?.dispose();
217
+ this._sliderThumb?.dispose();
218
+ this._sliderBarMaterial?.dispose();
219
+ this._sliderThumbMaterial?.dispose();
220
+ this._sliderBackplate?.dispose();
221
+ this._sliderBackplateMaterial?.dispose();
222
+ }
223
+ }
224
+ /**
225
+ * Base Url for the models.
226
+ */
227
+ Slider3D.MODEL_BASE_URL = "https://assets.babylonjs.com/meshes/MRTK/";
228
+ /**
229
+ * File name for the 8x4 model.
230
+ */
231
+ Slider3D.MODEL_FILENAME = "mrtk-fluent-backplate.glb";
286
232
  //# sourceMappingURL=slider3D.js.map