@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,269 +1,269 @@
1
- import { __extends } from "tslib";
2
- import { Observable } from "@babylonjs/core/Misc/observable.js";
3
- import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
- import { Control3D } from "./control3D.js";
5
- import { CreateBox } from "@babylonjs/core/Meshes/Builders/boxBuilder.js";
6
- import { PointerDragBehavior } from "@babylonjs/core/Behaviors/Meshes/pointerDragBehavior.js";
7
- import { SceneLoader } from "@babylonjs/core/Loading/sceneLoader.js";
8
- import { MRDLSliderBarMaterial } from "../materials/mrdl/mrdlSliderBarMaterial.js";
9
- import { MRDLSliderThumbMaterial } from "../materials/mrdl/mrdlSliderThumbMaterial.js";
10
- 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;
17
- /**
18
- * Class used to create a slider in 3D
19
- */
20
- var Slider3D = /** @class */ (function (_super) {
21
- __extends(Slider3D, _super);
22
- /**
23
- * Creates a new slider
24
- * @param name defines the control name
25
- * @param sliderBackplateVisible defines if the control has a backplate, default is false
26
- */
27
- function Slider3D(name, sliderBackplateVisible) {
28
- var _this = _super.call(this, name) || this;
29
- /** 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;
37
- }
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
- // Mesh association
164
- Slider3D.prototype._createNode = function (scene) {
165
- var _this = this;
166
- var sliderBackplate = CreateBox("".concat(this.name, "_sliderbackplate"), {
167
- width: 1.0,
168
- height: 1.0,
169
- depth: 1.0,
170
- }, scene);
171
- sliderBackplate.isPickable = false;
172
- sliderBackplate.visibility = 0;
173
- sliderBackplate.scaling = new Vector3(1, 0.5, 0.8);
174
- SceneLoader.ImportMeshAsync(undefined, Slider3D.MODEL_BASE_URL, Slider3D.MODEL_FILENAME, scene).then(function (result) {
175
- var sliderBackplateModel = result.meshes[1];
176
- var sliderBarModel = result.meshes[1].clone("".concat(_this.name, "_sliderbar"), sliderBackplate);
177
- var sliderThumbModel = result.meshes[1].clone("".concat(_this.name, "_sliderthumb"), sliderBackplate);
178
- sliderBackplateModel.visibility = 0;
179
- if (_this._sliderBackplateVisible) {
180
- sliderBackplateModel.visibility = 1;
181
- sliderBackplateModel.name = "".concat(_this.name, "_sliderbackplate");
182
- sliderBackplateModel.isPickable = false;
183
- sliderBackplateModel.scaling.x = 1;
184
- sliderBackplateModel.scaling.z = 0.2;
185
- sliderBackplateModel.parent = sliderBackplate;
186
- if (_this._sliderBackplateMaterial) {
187
- sliderBackplateModel.material = _this._sliderBackplateMaterial;
188
- }
189
- _this._sliderBackplate = sliderBackplateModel;
190
- }
191
- if (sliderBarModel) {
192
- sliderBarModel.parent = sliderBackplate;
193
- sliderBarModel.position.z = -0.1;
194
- sliderBarModel.scaling = new Vector3(SLIDER_SCALING - SLIDER_MARGIN, 0.04, 0.3);
195
- sliderBarModel.isPickable = false;
196
- if (_this._sliderBarMaterial) {
197
- sliderBarModel.material = _this._sliderBarMaterial;
198
- }
199
- _this._sliderBar = sliderBarModel;
200
- }
201
- if (sliderThumbModel) {
202
- sliderThumbModel.parent = sliderBackplate;
203
- sliderThumbModel.isPickable = true;
204
- sliderThumbModel.position.z = -0.115;
205
- sliderThumbModel.scaling = new Vector3(0.025, 0.3, 0.6);
206
- sliderThumbModel.position.x = _this._convertToPosition(_this.value);
207
- sliderThumbModel.addBehavior(_this._createBehavior());
208
- if (_this._sliderThumbMaterial) {
209
- sliderThumbModel.material = _this._sliderThumbMaterial;
210
- }
211
- _this._sliderThumb = sliderThumbModel;
212
- }
213
- });
214
- this._affectMaterial(sliderBackplate);
215
- return sliderBackplate;
216
- };
217
- Slider3D.prototype._affectMaterial = function (mesh) {
218
- var _a, _b, _c;
219
- this._sliderBackplateMaterial = (_a = this._sliderBackplateMaterial) !== null && _a !== void 0 ? _a : new MRDLBackplateMaterial("".concat(this.name, "_sliderbackplate_material"), mesh.getScene());
220
- this._sliderBarMaterial = (_b = this._sliderBarMaterial) !== null && _b !== void 0 ? _b : new MRDLSliderBarMaterial("".concat(this.name, "_sliderbar_material"), mesh.getScene());
221
- this._sliderThumbMaterial = (_c = this._sliderThumbMaterial) !== null && _c !== void 0 ? _c : new MRDLSliderThumbMaterial("".concat(this.name, "_sliderthumb_material"), mesh.getScene());
222
- };
223
- Slider3D.prototype._createBehavior = function () {
224
- var _this = this;
225
- var pointerDragBehavior = new PointerDragBehavior({ dragAxis: Vector3.Right() });
226
- pointerDragBehavior.moveAttached = false;
227
- pointerDragBehavior.onDragStartObservable.add(function () {
228
- _this._draggedPosition = _this._sliderThumb.position.x;
229
- });
230
- pointerDragBehavior.onDragObservable.add(function (event) {
231
- _this._draggedPosition += event.dragDistance / _this.scaling.x;
232
- _this.value = _this._convertToValue(_this._draggedPosition);
233
- });
234
- return pointerDragBehavior;
235
- };
236
- Slider3D.prototype._convertToPosition = function (value) {
237
- var position = ((value - this.minimum) / (this.maximum - this.minimum)) * (this.end - this.start) + this.start;
238
- return Math.min(Math.max(position, this.start), this.end);
239
- };
240
- Slider3D.prototype._convertToValue = function (position) {
241
- var value = ((position - this.start) / (this.end - this.start)) * (this.maximum - this.minimum);
242
- value = this.step ? Math.round(value / this.step) * this.step : value;
243
- return Math.max(Math.min(this.minimum + value, this._maximum), this._minimum);
244
- };
245
- /**
246
- * Releases all associated resources
247
- */
248
- Slider3D.prototype.dispose = function () {
249
- var _a, _b, _c, _d, _e, _f;
250
- _super.prototype.dispose.call(this);
251
- (_a = this._sliderBar) === null || _a === void 0 ? void 0 : _a.dispose();
252
- (_b = this._sliderThumb) === null || _b === void 0 ? void 0 : _b.dispose();
253
- (_c = this._sliderBarMaterial) === null || _c === void 0 ? void 0 : _c.dispose();
254
- (_d = this._sliderThumbMaterial) === null || _d === void 0 ? void 0 : _d.dispose();
255
- (_e = this._sliderBackplate) === null || _e === void 0 ? void 0 : _e.dispose();
256
- (_f = this._sliderBackplateMaterial) === null || _f === void 0 ? void 0 : _f.dispose();
257
- };
258
- /**
259
- * Base Url for the models.
260
- */
261
- Slider3D.MODEL_BASE_URL = "https://assets.babylonjs.com/meshes/MRTK/";
262
- /**
263
- * File name for the 8x4 model.
264
- */
265
- Slider3D.MODEL_FILENAME = "mrtk-fluent-backplate.glb";
266
- return Slider3D;
267
- }(Control3D));
268
- export { Slider3D };
1
+ import { __extends } from "tslib";
2
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
3
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
+ import { Control3D } from "./control3D";
5
+ import { CreateBox } from "@babylonjs/core/Meshes/Builders/boxBuilder.js";
6
+ import { PointerDragBehavior } from "@babylonjs/core/Behaviors/Meshes/pointerDragBehavior.js";
7
+ import { SceneLoader } from "@babylonjs/core/Loading/sceneLoader.js";
8
+ import { MRDLSliderBarMaterial } from "../materials/mrdl/mrdlSliderBarMaterial";
9
+ import { MRDLSliderThumbMaterial } from "../materials/mrdl/mrdlSliderThumbMaterial";
10
+ import { MRDLBackplateMaterial } from "../materials/mrdl/mrdlBackplateMaterial";
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;
17
+ /**
18
+ * Class used to create a slider in 3D
19
+ */
20
+ var Slider3D = /** @class */ (function (_super) {
21
+ __extends(Slider3D, _super);
22
+ /**
23
+ * Creates a new slider
24
+ * @param name defines the control name
25
+ * @param sliderBackplateVisible defines if the control has a backplate, default is false
26
+ */
27
+ function Slider3D(name, sliderBackplateVisible) {
28
+ var _this = _super.call(this, name) || this;
29
+ /** 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;
37
+ }
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
+ // Mesh association
164
+ Slider3D.prototype._createNode = function (scene) {
165
+ var _this = this;
166
+ var sliderBackplate = CreateBox("".concat(this.name, "_sliderbackplate"), {
167
+ width: 1.0,
168
+ height: 1.0,
169
+ depth: 1.0,
170
+ }, scene);
171
+ sliderBackplate.isPickable = false;
172
+ sliderBackplate.visibility = 0;
173
+ sliderBackplate.scaling = new Vector3(1, 0.5, 0.8);
174
+ SceneLoader.ImportMeshAsync(undefined, Slider3D.MODEL_BASE_URL, Slider3D.MODEL_FILENAME, scene).then(function (result) {
175
+ var sliderBackplateModel = result.meshes[1];
176
+ var sliderBarModel = result.meshes[1].clone("".concat(_this.name, "_sliderbar"), sliderBackplate);
177
+ var sliderThumbModel = result.meshes[1].clone("".concat(_this.name, "_sliderthumb"), sliderBackplate);
178
+ sliderBackplateModel.visibility = 0;
179
+ if (_this._sliderBackplateVisible) {
180
+ sliderBackplateModel.visibility = 1;
181
+ sliderBackplateModel.name = "".concat(_this.name, "_sliderbackplate");
182
+ sliderBackplateModel.isPickable = false;
183
+ sliderBackplateModel.scaling.x = 1;
184
+ sliderBackplateModel.scaling.z = 0.2;
185
+ sliderBackplateModel.parent = sliderBackplate;
186
+ if (_this._sliderBackplateMaterial) {
187
+ sliderBackplateModel.material = _this._sliderBackplateMaterial;
188
+ }
189
+ _this._sliderBackplate = sliderBackplateModel;
190
+ }
191
+ if (sliderBarModel) {
192
+ sliderBarModel.parent = sliderBackplate;
193
+ sliderBarModel.position.z = -0.1;
194
+ sliderBarModel.scaling = new Vector3(SLIDER_SCALING - SLIDER_MARGIN, 0.04, 0.3);
195
+ sliderBarModel.isPickable = false;
196
+ if (_this._sliderBarMaterial) {
197
+ sliderBarModel.material = _this._sliderBarMaterial;
198
+ }
199
+ _this._sliderBar = sliderBarModel;
200
+ }
201
+ if (sliderThumbModel) {
202
+ sliderThumbModel.parent = sliderBackplate;
203
+ sliderThumbModel.isPickable = true;
204
+ sliderThumbModel.position.z = -0.115;
205
+ sliderThumbModel.scaling = new Vector3(0.025, 0.3, 0.6);
206
+ sliderThumbModel.position.x = _this._convertToPosition(_this.value);
207
+ sliderThumbModel.addBehavior(_this._createBehavior());
208
+ if (_this._sliderThumbMaterial) {
209
+ sliderThumbModel.material = _this._sliderThumbMaterial;
210
+ }
211
+ _this._sliderThumb = sliderThumbModel;
212
+ }
213
+ });
214
+ this._affectMaterial(sliderBackplate);
215
+ return sliderBackplate;
216
+ };
217
+ Slider3D.prototype._affectMaterial = function (mesh) {
218
+ var _a, _b, _c;
219
+ this._sliderBackplateMaterial = (_a = this._sliderBackplateMaterial) !== null && _a !== void 0 ? _a : new MRDLBackplateMaterial("".concat(this.name, "_sliderbackplate_material"), mesh.getScene());
220
+ this._sliderBarMaterial = (_b = this._sliderBarMaterial) !== null && _b !== void 0 ? _b : new MRDLSliderBarMaterial("".concat(this.name, "_sliderbar_material"), mesh.getScene());
221
+ this._sliderThumbMaterial = (_c = this._sliderThumbMaterial) !== null && _c !== void 0 ? _c : new MRDLSliderThumbMaterial("".concat(this.name, "_sliderthumb_material"), mesh.getScene());
222
+ };
223
+ Slider3D.prototype._createBehavior = function () {
224
+ var _this = this;
225
+ var pointerDragBehavior = new PointerDragBehavior({ dragAxis: Vector3.Right() });
226
+ pointerDragBehavior.moveAttached = false;
227
+ pointerDragBehavior.onDragStartObservable.add(function () {
228
+ _this._draggedPosition = _this._sliderThumb.position.x;
229
+ });
230
+ pointerDragBehavior.onDragObservable.add(function (event) {
231
+ _this._draggedPosition += event.dragDistance / _this.scaling.x;
232
+ _this.value = _this._convertToValue(_this._draggedPosition);
233
+ });
234
+ return pointerDragBehavior;
235
+ };
236
+ Slider3D.prototype._convertToPosition = function (value) {
237
+ var position = ((value - this.minimum) / (this.maximum - this.minimum)) * (this.end - this.start) + this.start;
238
+ return Math.min(Math.max(position, this.start), this.end);
239
+ };
240
+ Slider3D.prototype._convertToValue = function (position) {
241
+ var value = ((position - this.start) / (this.end - this.start)) * (this.maximum - this.minimum);
242
+ value = this.step ? Math.round(value / this.step) * this.step : value;
243
+ return Math.max(Math.min(this.minimum + value, this._maximum), this._minimum);
244
+ };
245
+ /**
246
+ * Releases all associated resources
247
+ */
248
+ Slider3D.prototype.dispose = function () {
249
+ var _a, _b, _c, _d, _e, _f;
250
+ _super.prototype.dispose.call(this);
251
+ (_a = this._sliderBar) === null || _a === void 0 ? void 0 : _a.dispose();
252
+ (_b = this._sliderThumb) === null || _b === void 0 ? void 0 : _b.dispose();
253
+ (_c = this._sliderBarMaterial) === null || _c === void 0 ? void 0 : _c.dispose();
254
+ (_d = this._sliderThumbMaterial) === null || _d === void 0 ? void 0 : _d.dispose();
255
+ (_e = this._sliderBackplate) === null || _e === void 0 ? void 0 : _e.dispose();
256
+ (_f = this._sliderBackplateMaterial) === null || _f === void 0 ? void 0 : _f.dispose();
257
+ };
258
+ /**
259
+ * Base Url for the models.
260
+ */
261
+ Slider3D.MODEL_BASE_URL = "https://assets.babylonjs.com/meshes/MRTK/";
262
+ /**
263
+ * File name for the 8x4 model.
264
+ */
265
+ Slider3D.MODEL_FILENAME = "mrtk-fluent-backplate.glb";
266
+ return Slider3D;
267
+ }(Control3D));
268
+ export { Slider3D };
269
269
  //# sourceMappingURL=slider3D.js.map
@@ -1,17 +1,17 @@
1
- import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
- import { float } from "@babylonjs/core/types.js";
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 { float } from "@babylonjs/core/types.js";
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
+ }