@babylonjs/gui 5.0.0-beta.6 → 5.0.0-beta.8-snapshot
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.
- package/2D/adtInstrumentation.d.ts +2 -2
- package/2D/adtInstrumentation.js.map +1 -1
- package/2D/advancedDynamicTexture.d.ts +20 -9
- package/2D/advancedDynamicTexture.js +17 -0
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +6 -6
- package/2D/controls/button.js +4 -4
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.d.ts +6 -6
- package/2D/controls/checkbox.js +2 -2
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.d.ts +5 -5
- package/2D/controls/colorpicker.js +93 -85
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.d.ts +7 -7
- package/2D/controls/container.js +7 -7
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +7 -7
- package/2D/controls/control.js +3 -0
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.d.ts +3 -3
- package/2D/controls/displayGrid.js +2 -2
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/ellipse.d.ts +1 -1
- package/2D/controls/ellipse.js +2 -2
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/focusableButton.d.ts +5 -5
- package/2D/controls/focusableButton.js +2 -2
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/focusableControl.d.ts +11 -11
- package/2D/controls/focusableControl.js.map +1 -1
- package/2D/controls/grid.d.ts +2 -2
- package/2D/controls/grid.js +2 -2
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.d.ts +5 -5
- package/2D/controls/image.js +17 -17
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/index.js.map +1 -1
- package/2D/controls/inputPassword.d.ts +1 -1
- package/2D/controls/inputPassword.js +2 -2
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputText.d.ts +8 -8
- package/2D/controls/inputText.js +19 -17
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/line.d.ts +3 -3
- package/2D/controls/line.js +4 -4
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/multiLine.d.ts +5 -5
- package/2D/controls/multiLine.js +2 -2
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/radioButton.d.ts +4 -4
- package/2D/controls/radioButton.js +2 -2
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/rectangle.d.ts +1 -1
- package/2D/controls/rectangle.js +2 -2
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.d.ts +6 -6
- package/2D/controls/scrollViewers/scrollViewer.js +5 -5
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +5 -5
- package/2D/controls/scrollViewers/scrollViewerWindow.js +4 -4
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +11 -11
- package/2D/controls/selector.js +19 -14
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +3 -3
- package/2D/controls/sliders/baseSlider.js +5 -5
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +5 -5
- package/2D/controls/sliders/imageBasedSlider.js +4 -4
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +3 -3
- package/2D/controls/sliders/imageScrollBar.js +5 -2
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +3 -3
- package/2D/controls/sliders/scrollBar.js +5 -2
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.d.ts +3 -3
- package/2D/controls/sliders/slider.js +5 -5
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.d.ts +1 -1
- package/2D/controls/stackPanel.js +6 -4
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.d.ts +3 -3
- package/2D/controls/textBlock.js +5 -3
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.d.ts +3 -3
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.d.ts +2 -2
- package/2D/controls/virtualKeyboard.js +6 -6
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/index.js.map +1 -1
- package/2D/math2D.d.ts +2 -2
- package/2D/math2D.js +2 -2
- package/2D/math2D.js.map +1 -1
- package/2D/measure.d.ts +4 -4
- package/2D/measure.js +6 -16
- package/2D/measure.js.map +1 -1
- package/2D/multiLinePoint.d.ts +3 -3
- package/2D/multiLinePoint.js +3 -3
- package/2D/multiLinePoint.js.map +1 -1
- package/2D/style.d.ts +2 -2
- package/2D/style.js.map +1 -1
- package/2D/valueAndUnit.d.ts +1 -1
- package/2D/valueAndUnit.js +4 -2
- package/2D/valueAndUnit.js.map +1 -1
- package/2D/xmlLoader.d.ts +10 -10
- package/2D/xmlLoader.js +17 -17
- package/2D/xmlLoader.js.map +1 -1
- package/3D/behaviors/defaultBehavior.d.ts +7 -7
- package/3D/behaviors/defaultBehavior.js.map +1 -1
- package/3D/controls/abstractButton3D.d.ts +2 -2
- package/3D/controls/abstractButton3D.js.map +1 -1
- package/3D/controls/button3D.d.ts +4 -4
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/container3D.d.ts +3 -3
- package/3D/controls/container3D.js +1 -2
- package/3D/controls/container3D.js.map +1 -1
- package/3D/controls/contentDisplay3D.js.map +1 -1
- package/3D/controls/control3D.d.ts +7 -7
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/cylinderPanel.d.ts +2 -2
- package/3D/controls/cylinderPanel.js +2 -2
- package/3D/controls/cylinderPanel.js.map +1 -1
- package/3D/controls/handMenu.d.ts +5 -5
- package/3D/controls/handMenu.js.map +1 -1
- package/3D/controls/holographicBackplate.d.ts +3 -3
- package/3D/controls/holographicBackplate.js +3 -4
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.d.ts +5 -5
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.d.ts +5 -5
- package/3D/controls/holographicSlate.js +4 -0
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/index.js.map +1 -1
- package/3D/controls/meshButton3D.d.ts +4 -4
- package/3D/controls/meshButton3D.js +1 -2
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.d.ts +3 -3
- package/3D/controls/nearMenu.js +3 -1
- package/3D/controls/nearMenu.js.map +1 -1
- package/3D/controls/planePanel.d.ts +1 -1
- package/3D/controls/planePanel.js.map +1 -1
- package/3D/controls/scatterPanel.d.ts +2 -2
- package/3D/controls/scatterPanel.js +1 -1
- package/3D/controls/scatterPanel.js.map +1 -1
- package/3D/controls/slider3D.d.ts +5 -5
- package/3D/controls/slider3D.js +7 -8
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/spherePanel.d.ts +2 -2
- package/3D/controls/spherePanel.js +2 -2
- package/3D/controls/spherePanel.js.map +1 -1
- package/3D/controls/stackPanel3D.js +3 -3
- package/3D/controls/stackPanel3D.js.map +1 -1
- package/3D/controls/touchButton3D.d.ts +5 -5
- package/3D/controls/touchButton3D.js +4 -3
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +5 -5
- package/3D/controls/touchHolographicButton.js +6 -7
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.d.ts +6 -6
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/controls/touchMeshButton3D.d.ts +4 -4
- package/3D/controls/touchMeshButton3D.js +1 -2
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.d.ts +9 -9
- package/3D/controls/volumeBasedPanel.js +12 -13
- package/3D/controls/volumeBasedPanel.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +4 -4
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/index.js.map +1 -1
- package/3D/gizmos/slateGizmo.d.ts +4 -4
- package/3D/gizmos/slateGizmo.js.map +1 -1
- package/3D/gui3DManager.d.ts +7 -7
- package/3D/gui3DManager.js.map +1 -1
- package/3D/index.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.d.ts +10 -10
- package/3D/materials/fluent/fluentMaterial.js +16 -5
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/index.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.d.ts +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.js +4 -2
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.d.ts +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.js +4 -2
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +10 -10
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +46 -11
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/index.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +4 -2
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +4 -2
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +10 -10
- package/3D/materials/fluentButton/fluentButtonMaterial.js +6 -4
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/index.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +4 -2
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +4 -2
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
- package/3D/materials/fluentMaterial.d.ts +1 -1
- package/3D/materials/fluentMaterial.js +1 -1
- package/3D/materials/fluentMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +4 -4
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/index.js.map +1 -1
- package/3D/materials/handle/shaders/handle.fragment.d.ts +1 -1
- package/3D/materials/handle/shaders/handle.fragment.js +3 -1
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
- package/3D/materials/handle/shaders/handle.vertex.d.ts +1 -1
- package/3D/materials/handle/shaders/handle.vertex.js +4 -2
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
- package/3D/materials/index.js.map +1 -1
- package/3D/materials/mrdl/index.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +14 -14
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +41 -14
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +15 -15
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +87 -22
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +15 -15
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +87 -22
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +4 -2
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +4 -2
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +4 -2
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +4 -2
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +4 -2
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +4 -2
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
- package/3D/vector3WithInfo.d.ts +1 -1
- package/3D/vector3WithInfo.js.map +1 -1
- package/index.js.map +1 -1
- package/legacy/legacy.d.ts +1 -1
- package/legacy/legacy.js +3 -3
- package/legacy/legacy.js.map +1 -1
- package/package.json +21 -329
- package/readme.md +0 -31
|
@@ -2,7 +2,7 @@ import { Rectangle } from "./rectangle";
|
|
|
2
2
|
import { StackPanel } from "./stackPanel";
|
|
3
3
|
/** Class used to create a RadioGroup
|
|
4
4
|
* which contains groups of radio buttons
|
|
5
|
-
*/
|
|
5
|
+
*/
|
|
6
6
|
export declare class SelectorGroup {
|
|
7
7
|
/** name of SelectorGroup */
|
|
8
8
|
name: string;
|
|
@@ -28,13 +28,13 @@ export declare class SelectorGroup {
|
|
|
28
28
|
/** @hidden*/
|
|
29
29
|
_getSelector(selectorNb: number): StackPanel | undefined;
|
|
30
30
|
/** Removes the selector at the given position
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
* @param selectorNb the position of the selector within the group
|
|
32
|
+
*/
|
|
33
33
|
removeSelector(selectorNb: number): void;
|
|
34
34
|
}
|
|
35
35
|
/** Class used to create a CheckboxGroup
|
|
36
36
|
* which contains groups of checkbox buttons
|
|
37
|
-
*/
|
|
37
|
+
*/
|
|
38
38
|
export declare class CheckboxGroup extends SelectorGroup {
|
|
39
39
|
/** Adds a checkbox as a control
|
|
40
40
|
* @param text is the label for the selector
|
|
@@ -53,7 +53,7 @@ export declare class CheckboxGroup extends SelectorGroup {
|
|
|
53
53
|
}
|
|
54
54
|
/** Class used to create a RadioGroup
|
|
55
55
|
* which contains groups of radio buttons
|
|
56
|
-
*/
|
|
56
|
+
*/
|
|
57
57
|
export declare class RadioGroup extends SelectorGroup {
|
|
58
58
|
private _selectNb;
|
|
59
59
|
/** Adds a radio button as a control
|
|
@@ -73,7 +73,7 @@ export declare class RadioGroup extends SelectorGroup {
|
|
|
73
73
|
}
|
|
74
74
|
/** Class used to create a SliderGroup
|
|
75
75
|
* which contains groups of slider buttons
|
|
76
|
-
*/
|
|
76
|
+
*/
|
|
77
77
|
export declare class SliderGroup extends SelectorGroup {
|
|
78
78
|
/**
|
|
79
79
|
* Adds a slider to the SelectorGroup
|
|
@@ -97,7 +97,7 @@ export declare class SliderGroup extends SelectorGroup {
|
|
|
97
97
|
}
|
|
98
98
|
/** Class used to hold the controls for the checkboxes, radio buttons and sliders
|
|
99
99
|
* @see https://doc.babylonjs.com/how_to/selector
|
|
100
|
-
*/
|
|
100
|
+
*/
|
|
101
101
|
export declare class SelectionPanel extends Rectangle {
|
|
102
102
|
/** name of SelectionPanel */
|
|
103
103
|
name: string;
|
|
@@ -114,10 +114,10 @@ export declare class SelectionPanel extends Rectangle {
|
|
|
114
114
|
private _groups;
|
|
115
115
|
private _bars;
|
|
116
116
|
/**
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
* Creates a new SelectionPanel
|
|
118
|
+
* @param name of SelectionPanel
|
|
119
|
+
* @param groups is an array of SelectionGroups
|
|
120
|
+
*/
|
|
121
121
|
constructor(
|
|
122
122
|
/** name of SelectionPanel */
|
|
123
123
|
name: string,
|
package/2D/controls/selector.js
CHANGED
|
@@ -9,7 +9,7 @@ import { Slider } from "./sliders/slider.js";
|
|
|
9
9
|
import { Container } from "./container.js";
|
|
10
10
|
/** Class used to create a RadioGroup
|
|
11
11
|
* which contains groups of radio buttons
|
|
12
|
-
*/
|
|
12
|
+
*/
|
|
13
13
|
var SelectorGroup = /** @class */ (function () {
|
|
14
14
|
/**
|
|
15
15
|
* Creates a new SelectorGroup
|
|
@@ -76,8 +76,8 @@ var SelectorGroup = /** @class */ (function () {
|
|
|
76
76
|
return this._selectors[selectorNb];
|
|
77
77
|
};
|
|
78
78
|
/** Removes the selector at the given position
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
* @param selectorNb the position of the selector within the group
|
|
80
|
+
*/
|
|
81
81
|
SelectorGroup.prototype.removeSelector = function (selectorNb) {
|
|
82
82
|
if (selectorNb < 0 || selectorNb >= this._selectors.length) {
|
|
83
83
|
return;
|
|
@@ -90,7 +90,7 @@ var SelectorGroup = /** @class */ (function () {
|
|
|
90
90
|
export { SelectorGroup };
|
|
91
91
|
/** Class used to create a CheckboxGroup
|
|
92
92
|
* which contains groups of checkbox buttons
|
|
93
|
-
*/
|
|
93
|
+
*/
|
|
94
94
|
var CheckboxGroup = /** @class */ (function (_super) {
|
|
95
95
|
__extends(CheckboxGroup, _super);
|
|
96
96
|
function CheckboxGroup() {
|
|
@@ -147,7 +147,7 @@ var CheckboxGroup = /** @class */ (function (_super) {
|
|
|
147
147
|
export { CheckboxGroup };
|
|
148
148
|
/** Class used to create a RadioGroup
|
|
149
149
|
* which contains groups of radio buttons
|
|
150
|
-
*/
|
|
150
|
+
*/
|
|
151
151
|
var RadioGroup = /** @class */ (function (_super) {
|
|
152
152
|
__extends(RadioGroup, _super);
|
|
153
153
|
function RadioGroup() {
|
|
@@ -210,7 +210,7 @@ var RadioGroup = /** @class */ (function (_super) {
|
|
|
210
210
|
export { RadioGroup };
|
|
211
211
|
/** Class used to create a SliderGroup
|
|
212
212
|
* which contains groups of slider buttons
|
|
213
|
-
*/
|
|
213
|
+
*/
|
|
214
214
|
var SliderGroup = /** @class */ (function (_super) {
|
|
215
215
|
__extends(SliderGroup, _super);
|
|
216
216
|
function SliderGroup() {
|
|
@@ -232,7 +232,9 @@ var SliderGroup = /** @class */ (function (_super) {
|
|
|
232
232
|
if (min === void 0) { min = 0; }
|
|
233
233
|
if (max === void 0) { max = 0; }
|
|
234
234
|
if (value === void 0) { value = 0; }
|
|
235
|
-
if (onValueChange === void 0) { onValueChange = function (v) {
|
|
235
|
+
if (onValueChange === void 0) { onValueChange = function (v) {
|
|
236
|
+
return v | 0;
|
|
237
|
+
}; }
|
|
236
238
|
var button = new Slider();
|
|
237
239
|
button.name = unit;
|
|
238
240
|
button.value = value;
|
|
@@ -265,7 +267,8 @@ var SliderGroup = /** @class */ (function (_super) {
|
|
|
265
267
|
/** @hidden */
|
|
266
268
|
SliderGroup.prototype._setSelectorLabel = function (selectorNb, label) {
|
|
267
269
|
this.selectors[selectorNb].children[0].name = label;
|
|
268
|
-
this.selectors[selectorNb].children[0].text =
|
|
270
|
+
this.selectors[selectorNb].children[0].text =
|
|
271
|
+
label + ": " + this.selectors[selectorNb].children[1].value + " " + this.selectors[selectorNb].children[1].name;
|
|
269
272
|
};
|
|
270
273
|
/** @hidden */
|
|
271
274
|
SliderGroup.prototype._setSelectorLabelColor = function (selectorNb, color) {
|
|
@@ -284,14 +287,14 @@ var SliderGroup = /** @class */ (function (_super) {
|
|
|
284
287
|
export { SliderGroup };
|
|
285
288
|
/** Class used to hold the controls for the checkboxes, radio buttons and sliders
|
|
286
289
|
* @see https://doc.babylonjs.com/how_to/selector
|
|
287
|
-
*/
|
|
290
|
+
*/
|
|
288
291
|
var SelectionPanel = /** @class */ (function (_super) {
|
|
289
292
|
__extends(SelectionPanel, _super);
|
|
290
293
|
/**
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
294
|
+
* Creates a new SelectionPanel
|
|
295
|
+
* @param name of SelectionPanel
|
|
296
|
+
* @param groups is an array of SelectionGroups
|
|
297
|
+
*/
|
|
295
298
|
function SelectionPanel(
|
|
296
299
|
/** name of SelectionPanel */
|
|
297
300
|
name,
|
|
@@ -617,7 +620,9 @@ var SelectionPanel = /** @class */ (function (_super) {
|
|
|
617
620
|
if (min === void 0) { min = 0; }
|
|
618
621
|
if (max === void 0) { max = 0; }
|
|
619
622
|
if (value === void 0) { value = 0; }
|
|
620
|
-
if (onVal === void 0) { onVal = function (v) {
|
|
623
|
+
if (onVal === void 0) { onVal = function (v) {
|
|
624
|
+
return v | 0;
|
|
625
|
+
}; }
|
|
621
626
|
if (groupNb < 0 || groupNb >= this._groups.length) {
|
|
622
627
|
return;
|
|
623
628
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/selector.ts"],"names":[],"mappings":"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","sourcesContent":["import { Rectangle } from \"./rectangle\";\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { Control } from \"./control\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { Checkbox } from \"./checkbox\";\r\nimport { RadioButton } from \"./radioButton\";\r\nimport { Slider } from \"./sliders/slider\";\r\nimport { Container } from \"./container\";\r\n\r\n/** Class used to create a RadioGroup\r\n * which contains groups of radio buttons\r\n*/\r\nexport class SelectorGroup {\r\n private _groupPanel = new StackPanel();\r\n private _selectors: StackPanel[] = new Array();\r\n private _groupHeader: TextBlock;\r\n\r\n /**\r\n * Creates a new SelectorGroup\r\n * @param name of group, used as a group heading\r\n */\r\n constructor(\r\n /** name of SelectorGroup */\r\n public name: string) {\r\n\r\n this._groupPanel.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._groupPanel.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._groupHeader = this._addGroupHeader(name);\r\n }\r\n\r\n /** Gets the groupPanel of the SelectorGroup */\r\n public get groupPanel(): StackPanel {\r\n return this._groupPanel;\r\n }\r\n\r\n /** Gets the selectors array */\r\n public get selectors(): StackPanel[] {\r\n return this._selectors;\r\n }\r\n\r\n /** Gets and sets the group header */\r\n public get header() {\r\n return this._groupHeader.text;\r\n }\r\n\r\n public set header(label: string) {\r\n if (this._groupHeader.text === \"label\") {\r\n return;\r\n }\r\n\r\n this._groupHeader.text = label;\r\n }\r\n\r\n /** @hidden */\r\n private _addGroupHeader(text: string): TextBlock {\r\n var groupHeading = new TextBlock(\"groupHead\", text);\r\n groupHeading.width = 0.9;\r\n groupHeading.height = \"30px\";\r\n groupHeading.textWrapping = true;\r\n groupHeading.color = \"black\";\r\n groupHeading.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n groupHeading.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n groupHeading.left = \"2px\";\r\n this._groupPanel.addControl(groupHeading);\r\n return groupHeading;\r\n }\r\n\r\n /** @hidden*/\r\n public _getSelector(selectorNb: number) {\r\n if (selectorNb < 0 || selectorNb >= this._selectors.length) {\r\n return;\r\n }\r\n return this._selectors[selectorNb];\r\n }\r\n\r\n /** Removes the selector at the given position\r\n * @param selectorNb the position of the selector within the group\r\n */\r\n public removeSelector(selectorNb: number) {\r\n if (selectorNb < 0 || selectorNb >= this._selectors.length) {\r\n return;\r\n }\r\n this._groupPanel.removeControl(this._selectors[selectorNb]);\r\n this._selectors.splice(selectorNb, 1);\r\n }\r\n\r\n}\r\n\r\n/** Class used to create a CheckboxGroup\r\n * which contains groups of checkbox buttons\r\n*/\r\nexport class CheckboxGroup extends SelectorGroup {\r\n /** Adds a checkbox as a control\r\n * @param text is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addCheckbox(text: string, func = (s: boolean) => { }, checked: boolean = false): void {\r\n var checked = checked || false;\r\n var button = new Checkbox();\r\n button.width = \"20px\";\r\n button.height = \"20px\";\r\n button.color = \"#364249\";\r\n button.background = \"#CCCCCC\";\r\n button.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n\r\n button.onIsCheckedChangedObservable.add(function (state) {\r\n func(state);\r\n });\r\n\r\n var _selector = Control.AddHeader(button, text, \"200px\", { isHorizontal: true, controlFirst: true });\r\n _selector.height = \"30px\";\r\n _selector.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n _selector.left = \"4px\";\r\n\r\n this.groupPanel.addControl(_selector);\r\n this.selectors.push(_selector);\r\n button.isChecked = checked;\r\n\r\n if (this.groupPanel.parent && this.groupPanel.parent.parent) {\r\n button.color = (<SelectionPanel>this.groupPanel.parent.parent).buttonColor;\r\n button.background = (<SelectionPanel>this.groupPanel.parent.parent).buttonBackground;\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabel(selectorNb: number, label: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).text = label;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabelColor(selectorNb: number, color: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonColor(selectorNb: number, color: string) {\r\n this.selectors[selectorNb].children[0].color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonBackground(selectorNb: number, color: string) {\r\n (<Checkbox>this.selectors[selectorNb].children[0]).background = color;\r\n }\r\n}\r\n\r\n/** Class used to create a RadioGroup\r\n * which contains groups of radio buttons\r\n*/\r\nexport class RadioGroup extends SelectorGroup {\r\n private _selectNb = 0;\r\n\r\n /** Adds a radio button as a control\r\n * @param label is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addRadio(label: string, func = (n: number) => { }, checked = false): void {\r\n var nb = this._selectNb++;\r\n var button = new RadioButton();\r\n button.name = label;\r\n button.width = \"20px\";\r\n button.height = \"20px\";\r\n button.color = \"#364249\";\r\n button.background = \"#CCCCCC\";\r\n button.group = this.name;\r\n button.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n\r\n button.onIsCheckedChangedObservable.add(function (state) {\r\n if (state) {\r\n func(nb);\r\n }\r\n });\r\n\r\n var _selector = Control.AddHeader(button, label, \"200px\", { isHorizontal: true, controlFirst: true });\r\n _selector.height = \"30px\";\r\n _selector.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n _selector.left = \"4px\";\r\n this.groupPanel.addControl(_selector);\r\n this.selectors.push(_selector);\r\n button.isChecked = checked;\r\n\r\n if (this.groupPanel.parent && this.groupPanel.parent.parent) {\r\n button.color = (<SelectionPanel>this.groupPanel.parent.parent).buttonColor;\r\n button.background = (<SelectionPanel>this.groupPanel.parent.parent).buttonBackground;\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabel(selectorNb: number, label: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).text = label;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabelColor(selectorNb: number, color: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonColor(selectorNb: number, color: string) {\r\n this.selectors[selectorNb].children[0].color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonBackground(selectorNb: number, color: string) {\r\n (<RadioButton>this.selectors[selectorNb].children[0]).background = color;\r\n }\r\n}\r\n\r\n/** Class used to create a SliderGroup\r\n * which contains groups of slider buttons\r\n*/\r\nexport class SliderGroup extends SelectorGroup {\r\n /**\r\n * Adds a slider to the SelectorGroup\r\n * @param label is the label for the SliderBar\r\n * @param func is the function called when the Slider moves\r\n * @param unit is a string describing the units used, eg degrees or metres\r\n * @param min is the minimum value for the Slider\r\n * @param max is the maximum value for the Slider\r\n * @param value is the start value for the Slider between min and max\r\n * @param onValueChange is the function used to format the value displayed, eg radians to degrees\r\n */\r\n public addSlider(label: string, func = (v: number) => { }, unit: string = \"Units\", min: number = 0, max: number = 0, value: number = 0, onValueChange = (v: number) => { return v | 0; }): void {\r\n var button = new Slider();\r\n button.name = unit;\r\n button.value = value;\r\n button.minimum = min;\r\n button.maximum = max;\r\n button.width = 0.9;\r\n button.height = \"20px\";\r\n button.color = \"#364249\";\r\n button.background = \"#CCCCCC\";\r\n button.borderColor = \"black\";\r\n button.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n button.left = \"4px\";\r\n button.paddingBottom = \"4px\";\r\n\r\n button.onValueChangedObservable.add(function (value) {\r\n (<TextBlock>button.parent!.children[0]).text = button.parent!.children[0].name + \": \" + onValueChange(value) + \" \" + button.name;\r\n func(value);\r\n });\r\n\r\n var _selector = Control.AddHeader(button, label + \": \" + onValueChange(value) + \" \" + unit, \"30px\", { isHorizontal: false, controlFirst: false });\r\n _selector.height = \"60px\";\r\n _selector.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n _selector.left = \"4px\";\r\n _selector.children[0].name = label;\r\n this.groupPanel.addControl(_selector);\r\n this.selectors.push(_selector);\r\n\r\n if (this.groupPanel.parent && this.groupPanel.parent.parent) {\r\n button.color = (<SelectionPanel>this.groupPanel.parent.parent).buttonColor;\r\n button.background = (<SelectionPanel>this.groupPanel.parent.parent).buttonBackground;\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabel(selectorNb: number, label: string) {\r\n this.selectors[selectorNb].children[0].name = label;\r\n (<TextBlock>this.selectors[selectorNb].children[0]).text = label + \": \" + (<Slider>this.selectors[selectorNb].children[1]).value + \" \" + this.selectors[selectorNb].children[1].name;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabelColor(selectorNb: number, color: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[0]).color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonColor(selectorNb: number, color: string) {\r\n this.selectors[selectorNb].children[1].color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonBackground(selectorNb: number, color: string) {\r\n (<Slider>this.selectors[selectorNb].children[1]).background = color;\r\n }\r\n}\r\n\r\n/** Class used to hold the controls for the checkboxes, radio buttons and sliders\r\n * @see https://doc.babylonjs.com/how_to/selector\r\n*/\r\nexport class SelectionPanel extends Rectangle {\r\n private _panel: StackPanel;\r\n private _buttonColor: string = \"#364249\";\r\n private _buttonBackground: string = \"#CCCCCC\";\r\n private _headerColor: string = \"black\";\r\n private _barColor: string = \"white\";\r\n private _barHeight: string = \"2px\";\r\n private _spacerHeight: string = \"20px\";\r\n private _labelColor: string;\r\n private _groups: SelectorGroup[];\r\n private _bars: any[] = new Array();\r\n\r\n /**\r\n * Creates a new SelectionPanel\r\n * @param name of SelectionPanel\r\n * @param groups is an array of SelectionGroups\r\n */\r\n constructor(\r\n /** name of SelectionPanel */\r\n public name: string,\r\n /** an array of SelectionGroups */\r\n public groups: SelectorGroup[] = []) {\r\n super(name);\r\n this._groups = groups;\r\n this.thickness = 2;\r\n this._panel = new StackPanel();\r\n this._panel.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._panel.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._panel.top = 5;\r\n this._panel.left = 5;\r\n this._panel.width = 0.95;\r\n if (groups.length > 0) {\r\n for (var i = 0; i < groups.length - 1; i++) {\r\n this._panel.addControl(groups[i].groupPanel);\r\n this._addSpacer();\r\n }\r\n this._panel.addControl(groups[groups.length - 1].groupPanel);\r\n }\r\n this.addControl(this._panel);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"SelectionPanel\";\r\n }\r\n\r\n /** Gets the (stack) panel of the SelectionPanel */\r\n public get panel(): StackPanel {\r\n return this._panel;\r\n }\r\n\r\n /** Gets or sets the headerColor */\r\n public get headerColor(): string {\r\n return this._headerColor;\r\n }\r\n\r\n public set headerColor(color: string) {\r\n if (this._headerColor === color) {\r\n return;\r\n }\r\n this._headerColor = color;\r\n this._setHeaderColor();\r\n\r\n }\r\n\r\n private _setHeaderColor() {\r\n for (var i = 0; i < this._groups.length; i++) {\r\n this._groups[i].groupPanel.children[0].color = this._headerColor;\r\n }\r\n }\r\n\r\n /** Gets or sets the button color */\r\n public get buttonColor(): string {\r\n return this._buttonColor;\r\n }\r\n\r\n public set buttonColor(color: string) {\r\n if (this._buttonColor === color) {\r\n return;\r\n }\r\n\r\n this._buttonColor = color;\r\n this._setbuttonColor();\r\n\r\n }\r\n\r\n private _setbuttonColor() {\r\n for (var i = 0; i < this._groups.length; i++) {\r\n for (var j = 0; j < this._groups[i].selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>this._groups[i])._setSelectorButtonColor(j, this._buttonColor);\r\n }\r\n }\r\n }\r\n\r\n /** Gets or sets the label color */\r\n public get labelColor(): string {\r\n return this._labelColor;\r\n }\r\n\r\n public set labelColor(color: string) {\r\n if (this._labelColor === color) {\r\n return;\r\n }\r\n this._labelColor = color;\r\n this._setLabelColor();\r\n }\r\n\r\n private _setLabelColor() {\r\n for (var i = 0; i < this._groups.length; i++) {\r\n for (var j = 0; j < this._groups[i].selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>this._groups[i])._setSelectorLabelColor(j, this._labelColor);\r\n }\r\n }\r\n }\r\n\r\n /** Gets or sets the button background */\r\n public get buttonBackground(): string {\r\n return this._buttonBackground;\r\n }\r\n\r\n public set buttonBackground(color: string) {\r\n if (this._buttonBackground === color) {\r\n return;\r\n }\r\n\r\n this._buttonBackground = color;\r\n this._setButtonBackground();\r\n\r\n }\r\n\r\n private _setButtonBackground() {\r\n for (var i = 0; i < this._groups.length; i++) {\r\n for (var j = 0; j < this._groups[i].selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>this._groups[i])._setSelectorButtonBackground(j, this._buttonBackground);\r\n }\r\n }\r\n }\r\n\r\n /** Gets or sets the color of separator bar */\r\n public get barColor(): string {\r\n return this._barColor;\r\n }\r\n\r\n public set barColor(color: string) {\r\n if (this._barColor === color) {\r\n return;\r\n }\r\n\r\n this._barColor = color;\r\n this._setBarColor();\r\n }\r\n\r\n private _setBarColor() {\r\n for (var i = 0; i < this._bars.length; i++) {\r\n this._bars[i].children[0].background = this._barColor;\r\n }\r\n }\r\n\r\n /** Gets or sets the height of separator bar */\r\n public get barHeight(): string {\r\n return this._barHeight;\r\n }\r\n\r\n public set barHeight(value: string) {\r\n if (this._barHeight === value) {\r\n return;\r\n }\r\n\r\n this._barHeight = value;\r\n this._setBarHeight();\r\n }\r\n\r\n private _setBarHeight() {\r\n for (var i = 0; i < this._bars.length; i++) {\r\n this._bars[i].children[0].height = this._barHeight;\r\n }\r\n }\r\n\r\n /** Gets or sets the height of spacers*/\r\n public get spacerHeight(): string {\r\n return this._spacerHeight;\r\n }\r\n\r\n public set spacerHeight(value: string) {\r\n if (this._spacerHeight === value) {\r\n return;\r\n }\r\n\r\n this._spacerHeight = value;\r\n this._setSpacerHeight();\r\n }\r\n\r\n private _setSpacerHeight() {\r\n for (var i = 0; i < this._bars.length; i++) {\r\n this._bars[i].height = this._spacerHeight;\r\n }\r\n }\r\n\r\n /** Adds a bar between groups */\r\n private _addSpacer(): void {\r\n var separator = new Container();\r\n separator.width = 1;\r\n separator.height = this._spacerHeight;\r\n separator.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n\r\n var bar = new Rectangle();\r\n bar.width = 1;\r\n bar.height = this._barHeight;\r\n bar.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n bar.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;\r\n bar.background = this._barColor;\r\n bar.color = \"transparent\";\r\n separator.addControl(bar);\r\n\r\n this._panel.addControl(separator);\r\n this._bars.push(separator);\r\n }\r\n\r\n /** Add a group to the selection panel\r\n * @param group is the selector group to add\r\n */\r\n public addGroup(group: SelectorGroup): void {\r\n if (this._groups.length > 0) {\r\n this._addSpacer();\r\n }\r\n this._panel.addControl(group.groupPanel);\r\n this._groups.push(group);\r\n group.groupPanel.children[0].color = this._headerColor;\r\n for (var j = 0; j < group.selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>group)._setSelectorButtonColor(j, this._buttonColor);\r\n (<CheckboxGroup | RadioGroup | SliderGroup>group)._setSelectorButtonBackground(j, this._buttonBackground);\r\n }\r\n }\r\n\r\n /** Remove the group from the given position\r\n * @param groupNb is the position of the group in the list\r\n */\r\n public removeGroup(groupNb: number): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n var group = this._groups[groupNb];\r\n this._panel.removeControl(group.groupPanel);\r\n this._groups.splice(groupNb, 1);\r\n if (groupNb < this._bars.length) {\r\n this._panel.removeControl(this._bars[groupNb]);\r\n this._bars.splice(groupNb, 1);\r\n }\r\n }\r\n\r\n /** Change a group header label\r\n * @param label is the new group header label\r\n * @param groupNb is the number of the group to relabel\r\n * */\r\n public setHeaderName(label: string, groupNb: number) {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n var group = this._groups[groupNb];\r\n (<TextBlock>group.groupPanel.children[0]).text = label;\r\n }\r\n\r\n /** Change selector label to the one given\r\n * @param label is the new selector label\r\n * @param groupNb is the number of the groupcontaining the selector\r\n * @param selectorNb is the number of the selector within a group to relabel\r\n * */\r\n public relabel(label: string, groupNb: number, selectorNb: number): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n var group = this._groups[groupNb];\r\n if (selectorNb < 0 || selectorNb >= group.selectors.length) {\r\n return;\r\n }\r\n (<CheckboxGroup | RadioGroup | SliderGroup>group)._setSelectorLabel(selectorNb, label);\r\n }\r\n\r\n /** For a given group position remove the selector at the given position\r\n * @param groupNb is the number of the group to remove the selector from\r\n * @param selectorNb is the number of the selector within the group\r\n */\r\n public removeFromGroupSelector(groupNb: number, selectorNb: number): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n var group = this._groups[groupNb];\r\n if (selectorNb < 0 || selectorNb >= group.selectors.length) {\r\n return;\r\n }\r\n group.removeSelector(selectorNb);\r\n }\r\n\r\n /** For a given group position of correct type add a checkbox button\r\n * @param groupNb is the number of the group to remove the selector from\r\n * @param label is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addToGroupCheckbox(groupNb: number, label: string, func = () => { }, checked: boolean = false): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n var group = this._groups[groupNb];\r\n (<CheckboxGroup>group).addCheckbox(label, func, checked);\r\n }\r\n\r\n /** For a given group position of correct type add a radio button\r\n * @param groupNb is the number of the group to remove the selector from\r\n * @param label is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addToGroupRadio(groupNb: number, label: string, func = () => { }, checked: boolean = false): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n var group = this._groups[groupNb];\r\n (<RadioGroup>group).addRadio(label, func, checked);\r\n }\r\n\r\n /**\r\n * For a given slider group add a slider\r\n * @param groupNb is the number of the group to add the slider to\r\n * @param label is the label for the Slider\r\n * @param func is the function called when the Slider moves\r\n * @param unit is a string describing the units used, eg degrees or metres\r\n * @param min is the minimum value for the Slider\r\n * @param max is the maximum value for the Slider\r\n * @param value is the start value for the Slider between min and max\r\n * @param onVal is the function used to format the value displayed, eg radians to degrees\r\n */\r\n public addToGroupSlider(groupNb: number, label: string, func = () => { }, unit: string = \"Units\", min: number = 0, max: number = 0, value: number = 0, onVal = (v: number) => { return v | 0; }): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n var group = this._groups[groupNb];\r\n (<SliderGroup>group).addSlider(label, func, unit, min, max, value, onVal);\r\n }\r\n\r\n}"]}
|
|
1
|
+
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/selector.ts"],"names":[],"mappings":"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","sourcesContent":["import { Rectangle } from \"./rectangle\";\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { Control } from \"./control\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { Checkbox } from \"./checkbox\";\r\nimport { RadioButton } from \"./radioButton\";\r\nimport { Slider } from \"./sliders/slider\";\r\nimport { Container } from \"./container\";\r\n\r\n/** Class used to create a RadioGroup\r\n * which contains groups of radio buttons\r\n */\r\nexport class SelectorGroup {\r\n private _groupPanel = new StackPanel();\r\n private _selectors: StackPanel[] = new Array();\r\n private _groupHeader: TextBlock;\r\n\r\n /**\r\n * Creates a new SelectorGroup\r\n * @param name of group, used as a group heading\r\n */\r\n constructor(\r\n /** name of SelectorGroup */\r\n public name: string\r\n ) {\r\n this._groupPanel.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._groupPanel.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._groupHeader = this._addGroupHeader(name);\r\n }\r\n\r\n /** Gets the groupPanel of the SelectorGroup */\r\n public get groupPanel(): StackPanel {\r\n return this._groupPanel;\r\n }\r\n\r\n /** Gets the selectors array */\r\n public get selectors(): StackPanel[] {\r\n return this._selectors;\r\n }\r\n\r\n /** Gets and sets the group header */\r\n public get header() {\r\n return this._groupHeader.text;\r\n }\r\n\r\n public set header(label: string) {\r\n if (this._groupHeader.text === \"label\") {\r\n return;\r\n }\r\n\r\n this._groupHeader.text = label;\r\n }\r\n\r\n /** @hidden */\r\n private _addGroupHeader(text: string): TextBlock {\r\n const groupHeading = new TextBlock(\"groupHead\", text);\r\n groupHeading.width = 0.9;\r\n groupHeading.height = \"30px\";\r\n groupHeading.textWrapping = true;\r\n groupHeading.color = \"black\";\r\n groupHeading.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n groupHeading.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n groupHeading.left = \"2px\";\r\n this._groupPanel.addControl(groupHeading);\r\n return groupHeading;\r\n }\r\n\r\n /** @hidden*/\r\n public _getSelector(selectorNb: number) {\r\n if (selectorNb < 0 || selectorNb >= this._selectors.length) {\r\n return;\r\n }\r\n return this._selectors[selectorNb];\r\n }\r\n\r\n /** Removes the selector at the given position\r\n * @param selectorNb the position of the selector within the group\r\n */\r\n public removeSelector(selectorNb: number) {\r\n if (selectorNb < 0 || selectorNb >= this._selectors.length) {\r\n return;\r\n }\r\n this._groupPanel.removeControl(this._selectors[selectorNb]);\r\n this._selectors.splice(selectorNb, 1);\r\n }\r\n}\r\n\r\n/** Class used to create a CheckboxGroup\r\n * which contains groups of checkbox buttons\r\n */\r\nexport class CheckboxGroup extends SelectorGroup {\r\n /** Adds a checkbox as a control\r\n * @param text is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addCheckbox(text: string, func = (s: boolean) => {}, checked: boolean = false): void {\r\n var checked = checked || false;\r\n const button = new Checkbox();\r\n button.width = \"20px\";\r\n button.height = \"20px\";\r\n button.color = \"#364249\";\r\n button.background = \"#CCCCCC\";\r\n button.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n\r\n button.onIsCheckedChangedObservable.add(function (state) {\r\n func(state);\r\n });\r\n\r\n const _selector = Control.AddHeader(button, text, \"200px\", { isHorizontal: true, controlFirst: true });\r\n _selector.height = \"30px\";\r\n _selector.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n _selector.left = \"4px\";\r\n\r\n this.groupPanel.addControl(_selector);\r\n this.selectors.push(_selector);\r\n button.isChecked = checked;\r\n\r\n if (this.groupPanel.parent && this.groupPanel.parent.parent) {\r\n button.color = (<SelectionPanel>this.groupPanel.parent.parent).buttonColor;\r\n button.background = (<SelectionPanel>this.groupPanel.parent.parent).buttonBackground;\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabel(selectorNb: number, label: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).text = label;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabelColor(selectorNb: number, color: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonColor(selectorNb: number, color: string) {\r\n this.selectors[selectorNb].children[0].color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonBackground(selectorNb: number, color: string) {\r\n (<Checkbox>this.selectors[selectorNb].children[0]).background = color;\r\n }\r\n}\r\n\r\n/** Class used to create a RadioGroup\r\n * which contains groups of radio buttons\r\n */\r\nexport class RadioGroup extends SelectorGroup {\r\n private _selectNb = 0;\r\n\r\n /** Adds a radio button as a control\r\n * @param label is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addRadio(label: string, func = (n: number) => {}, checked = false): void {\r\n const nb = this._selectNb++;\r\n const button = new RadioButton();\r\n button.name = label;\r\n button.width = \"20px\";\r\n button.height = \"20px\";\r\n button.color = \"#364249\";\r\n button.background = \"#CCCCCC\";\r\n button.group = this.name;\r\n button.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n\r\n button.onIsCheckedChangedObservable.add(function (state) {\r\n if (state) {\r\n func(nb);\r\n }\r\n });\r\n\r\n const _selector = Control.AddHeader(button, label, \"200px\", { isHorizontal: true, controlFirst: true });\r\n _selector.height = \"30px\";\r\n _selector.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n _selector.left = \"4px\";\r\n this.groupPanel.addControl(_selector);\r\n this.selectors.push(_selector);\r\n button.isChecked = checked;\r\n\r\n if (this.groupPanel.parent && this.groupPanel.parent.parent) {\r\n button.color = (<SelectionPanel>this.groupPanel.parent.parent).buttonColor;\r\n button.background = (<SelectionPanel>this.groupPanel.parent.parent).buttonBackground;\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabel(selectorNb: number, label: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).text = label;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabelColor(selectorNb: number, color: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[1]).color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonColor(selectorNb: number, color: string) {\r\n this.selectors[selectorNb].children[0].color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonBackground(selectorNb: number, color: string) {\r\n (<RadioButton>this.selectors[selectorNb].children[0]).background = color;\r\n }\r\n}\r\n\r\n/** Class used to create a SliderGroup\r\n * which contains groups of slider buttons\r\n */\r\nexport class SliderGroup extends SelectorGroup {\r\n /**\r\n * Adds a slider to the SelectorGroup\r\n * @param label is the label for the SliderBar\r\n * @param func is the function called when the Slider moves\r\n * @param unit is a string describing the units used, eg degrees or metres\r\n * @param min is the minimum value for the Slider\r\n * @param max is the maximum value for the Slider\r\n * @param value is the start value for the Slider between min and max\r\n * @param onValueChange is the function used to format the value displayed, eg radians to degrees\r\n */\r\n public addSlider(\r\n label: string,\r\n func = (v: number) => {},\r\n unit: string = \"Units\",\r\n min: number = 0,\r\n max: number = 0,\r\n value: number = 0,\r\n onValueChange = (v: number) => {\r\n return v | 0;\r\n }\r\n ): void {\r\n const button = new Slider();\r\n button.name = unit;\r\n button.value = value;\r\n button.minimum = min;\r\n button.maximum = max;\r\n button.width = 0.9;\r\n button.height = \"20px\";\r\n button.color = \"#364249\";\r\n button.background = \"#CCCCCC\";\r\n button.borderColor = \"black\";\r\n button.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n button.left = \"4px\";\r\n button.paddingBottom = \"4px\";\r\n\r\n button.onValueChangedObservable.add(function (value) {\r\n (<TextBlock>button.parent!.children[0]).text = button.parent!.children[0].name + \": \" + onValueChange(value) + \" \" + button.name;\r\n func(value);\r\n });\r\n\r\n const _selector = Control.AddHeader(button, label + \": \" + onValueChange(value) + \" \" + unit, \"30px\", { isHorizontal: false, controlFirst: false });\r\n _selector.height = \"60px\";\r\n _selector.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n _selector.left = \"4px\";\r\n _selector.children[0].name = label;\r\n this.groupPanel.addControl(_selector);\r\n this.selectors.push(_selector);\r\n\r\n if (this.groupPanel.parent && this.groupPanel.parent.parent) {\r\n button.color = (<SelectionPanel>this.groupPanel.parent.parent).buttonColor;\r\n button.background = (<SelectionPanel>this.groupPanel.parent.parent).buttonBackground;\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabel(selectorNb: number, label: string) {\r\n this.selectors[selectorNb].children[0].name = label;\r\n (<TextBlock>this.selectors[selectorNb].children[0]).text =\r\n label + \": \" + (<Slider>this.selectors[selectorNb].children[1]).value + \" \" + this.selectors[selectorNb].children[1].name;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorLabelColor(selectorNb: number, color: string) {\r\n (<TextBlock>this.selectors[selectorNb].children[0]).color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonColor(selectorNb: number, color: string) {\r\n this.selectors[selectorNb].children[1].color = color;\r\n }\r\n\r\n /** @hidden */\r\n public _setSelectorButtonBackground(selectorNb: number, color: string) {\r\n (<Slider>this.selectors[selectorNb].children[1]).background = color;\r\n }\r\n}\r\n\r\n/** Class used to hold the controls for the checkboxes, radio buttons and sliders\r\n * @see https://doc.babylonjs.com/how_to/selector\r\n */\r\nexport class SelectionPanel extends Rectangle {\r\n private _panel: StackPanel;\r\n private _buttonColor: string = \"#364249\";\r\n private _buttonBackground: string = \"#CCCCCC\";\r\n private _headerColor: string = \"black\";\r\n private _barColor: string = \"white\";\r\n private _barHeight: string = \"2px\";\r\n private _spacerHeight: string = \"20px\";\r\n private _labelColor: string;\r\n private _groups: SelectorGroup[];\r\n private _bars: any[] = new Array();\r\n\r\n /**\r\n * Creates a new SelectionPanel\r\n * @param name of SelectionPanel\r\n * @param groups is an array of SelectionGroups\r\n */\r\n constructor(\r\n /** name of SelectionPanel */\r\n public name: string,\r\n /** an array of SelectionGroups */\r\n public groups: SelectorGroup[] = []\r\n ) {\r\n super(name);\r\n this._groups = groups;\r\n this.thickness = 2;\r\n this._panel = new StackPanel();\r\n this._panel.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._panel.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._panel.top = 5;\r\n this._panel.left = 5;\r\n this._panel.width = 0.95;\r\n if (groups.length > 0) {\r\n for (let i = 0; i < groups.length - 1; i++) {\r\n this._panel.addControl(groups[i].groupPanel);\r\n this._addSpacer();\r\n }\r\n this._panel.addControl(groups[groups.length - 1].groupPanel);\r\n }\r\n this.addControl(this._panel);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"SelectionPanel\";\r\n }\r\n\r\n /** Gets the (stack) panel of the SelectionPanel */\r\n public get panel(): StackPanel {\r\n return this._panel;\r\n }\r\n\r\n /** Gets or sets the headerColor */\r\n public get headerColor(): string {\r\n return this._headerColor;\r\n }\r\n\r\n public set headerColor(color: string) {\r\n if (this._headerColor === color) {\r\n return;\r\n }\r\n this._headerColor = color;\r\n this._setHeaderColor();\r\n }\r\n\r\n private _setHeaderColor() {\r\n for (let i = 0; i < this._groups.length; i++) {\r\n this._groups[i].groupPanel.children[0].color = this._headerColor;\r\n }\r\n }\r\n\r\n /** Gets or sets the button color */\r\n public get buttonColor(): string {\r\n return this._buttonColor;\r\n }\r\n\r\n public set buttonColor(color: string) {\r\n if (this._buttonColor === color) {\r\n return;\r\n }\r\n\r\n this._buttonColor = color;\r\n this._setbuttonColor();\r\n }\r\n\r\n private _setbuttonColor() {\r\n for (let i = 0; i < this._groups.length; i++) {\r\n for (let j = 0; j < this._groups[i].selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>this._groups[i])._setSelectorButtonColor(j, this._buttonColor);\r\n }\r\n }\r\n }\r\n\r\n /** Gets or sets the label color */\r\n public get labelColor(): string {\r\n return this._labelColor;\r\n }\r\n\r\n public set labelColor(color: string) {\r\n if (this._labelColor === color) {\r\n return;\r\n }\r\n this._labelColor = color;\r\n this._setLabelColor();\r\n }\r\n\r\n private _setLabelColor() {\r\n for (let i = 0; i < this._groups.length; i++) {\r\n for (let j = 0; j < this._groups[i].selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>this._groups[i])._setSelectorLabelColor(j, this._labelColor);\r\n }\r\n }\r\n }\r\n\r\n /** Gets or sets the button background */\r\n public get buttonBackground(): string {\r\n return this._buttonBackground;\r\n }\r\n\r\n public set buttonBackground(color: string) {\r\n if (this._buttonBackground === color) {\r\n return;\r\n }\r\n\r\n this._buttonBackground = color;\r\n this._setButtonBackground();\r\n }\r\n\r\n private _setButtonBackground() {\r\n for (let i = 0; i < this._groups.length; i++) {\r\n for (let j = 0; j < this._groups[i].selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>this._groups[i])._setSelectorButtonBackground(j, this._buttonBackground);\r\n }\r\n }\r\n }\r\n\r\n /** Gets or sets the color of separator bar */\r\n public get barColor(): string {\r\n return this._barColor;\r\n }\r\n\r\n public set barColor(color: string) {\r\n if (this._barColor === color) {\r\n return;\r\n }\r\n\r\n this._barColor = color;\r\n this._setBarColor();\r\n }\r\n\r\n private _setBarColor() {\r\n for (let i = 0; i < this._bars.length; i++) {\r\n this._bars[i].children[0].background = this._barColor;\r\n }\r\n }\r\n\r\n /** Gets or sets the height of separator bar */\r\n public get barHeight(): string {\r\n return this._barHeight;\r\n }\r\n\r\n public set barHeight(value: string) {\r\n if (this._barHeight === value) {\r\n return;\r\n }\r\n\r\n this._barHeight = value;\r\n this._setBarHeight();\r\n }\r\n\r\n private _setBarHeight() {\r\n for (let i = 0; i < this._bars.length; i++) {\r\n this._bars[i].children[0].height = this._barHeight;\r\n }\r\n }\r\n\r\n /** Gets or sets the height of spacers*/\r\n public get spacerHeight(): string {\r\n return this._spacerHeight;\r\n }\r\n\r\n public set spacerHeight(value: string) {\r\n if (this._spacerHeight === value) {\r\n return;\r\n }\r\n\r\n this._spacerHeight = value;\r\n this._setSpacerHeight();\r\n }\r\n\r\n private _setSpacerHeight() {\r\n for (let i = 0; i < this._bars.length; i++) {\r\n this._bars[i].height = this._spacerHeight;\r\n }\r\n }\r\n\r\n /** Adds a bar between groups */\r\n private _addSpacer(): void {\r\n const separator = new Container();\r\n separator.width = 1;\r\n separator.height = this._spacerHeight;\r\n separator.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n\r\n const bar = new Rectangle();\r\n bar.width = 1;\r\n bar.height = this._barHeight;\r\n bar.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n bar.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;\r\n bar.background = this._barColor;\r\n bar.color = \"transparent\";\r\n separator.addControl(bar);\r\n\r\n this._panel.addControl(separator);\r\n this._bars.push(separator);\r\n }\r\n\r\n /** Add a group to the selection panel\r\n * @param group is the selector group to add\r\n */\r\n public addGroup(group: SelectorGroup): void {\r\n if (this._groups.length > 0) {\r\n this._addSpacer();\r\n }\r\n this._panel.addControl(group.groupPanel);\r\n this._groups.push(group);\r\n group.groupPanel.children[0].color = this._headerColor;\r\n for (let j = 0; j < group.selectors.length; j++) {\r\n (<CheckboxGroup | RadioGroup | SliderGroup>group)._setSelectorButtonColor(j, this._buttonColor);\r\n (<CheckboxGroup | RadioGroup | SliderGroup>group)._setSelectorButtonBackground(j, this._buttonBackground);\r\n }\r\n }\r\n\r\n /** Remove the group from the given position\r\n * @param groupNb is the position of the group in the list\r\n */\r\n public removeGroup(groupNb: number): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n const group = this._groups[groupNb];\r\n this._panel.removeControl(group.groupPanel);\r\n this._groups.splice(groupNb, 1);\r\n if (groupNb < this._bars.length) {\r\n this._panel.removeControl(this._bars[groupNb]);\r\n this._bars.splice(groupNb, 1);\r\n }\r\n }\r\n\r\n /** Change a group header label\r\n * @param label is the new group header label\r\n * @param groupNb is the number of the group to relabel\r\n * */\r\n public setHeaderName(label: string, groupNb: number) {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n const group = this._groups[groupNb];\r\n (<TextBlock>group.groupPanel.children[0]).text = label;\r\n }\r\n\r\n /** Change selector label to the one given\r\n * @param label is the new selector label\r\n * @param groupNb is the number of the groupcontaining the selector\r\n * @param selectorNb is the number of the selector within a group to relabel\r\n * */\r\n public relabel(label: string, groupNb: number, selectorNb: number): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n const group = this._groups[groupNb];\r\n if (selectorNb < 0 || selectorNb >= group.selectors.length) {\r\n return;\r\n }\r\n (<CheckboxGroup | RadioGroup | SliderGroup>group)._setSelectorLabel(selectorNb, label);\r\n }\r\n\r\n /** For a given group position remove the selector at the given position\r\n * @param groupNb is the number of the group to remove the selector from\r\n * @param selectorNb is the number of the selector within the group\r\n */\r\n public removeFromGroupSelector(groupNb: number, selectorNb: number): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n const group = this._groups[groupNb];\r\n if (selectorNb < 0 || selectorNb >= group.selectors.length) {\r\n return;\r\n }\r\n group.removeSelector(selectorNb);\r\n }\r\n\r\n /** For a given group position of correct type add a checkbox button\r\n * @param groupNb is the number of the group to remove the selector from\r\n * @param label is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addToGroupCheckbox(groupNb: number, label: string, func = () => {}, checked: boolean = false): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n const group = this._groups[groupNb];\r\n (<CheckboxGroup>group).addCheckbox(label, func, checked);\r\n }\r\n\r\n /** For a given group position of correct type add a radio button\r\n * @param groupNb is the number of the group to remove the selector from\r\n * @param label is the label for the selector\r\n * @param func is the function called when the Selector is checked\r\n * @param checked is true when Selector is checked\r\n */\r\n public addToGroupRadio(groupNb: number, label: string, func = () => {}, checked: boolean = false): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n const group = this._groups[groupNb];\r\n (<RadioGroup>group).addRadio(label, func, checked);\r\n }\r\n\r\n /**\r\n * For a given slider group add a slider\r\n * @param groupNb is the number of the group to add the slider to\r\n * @param label is the label for the Slider\r\n * @param func is the function called when the Slider moves\r\n * @param unit is a string describing the units used, eg degrees or metres\r\n * @param min is the minimum value for the Slider\r\n * @param max is the maximum value for the Slider\r\n * @param value is the start value for the Slider between min and max\r\n * @param onVal is the function used to format the value displayed, eg radians to degrees\r\n */\r\n public addToGroupSlider(\r\n groupNb: number,\r\n label: string,\r\n func = () => {},\r\n unit: string = \"Units\",\r\n min: number = 0,\r\n max: number = 0,\r\n value: number = 0,\r\n onVal = (v: number) => {\r\n return v | 0;\r\n }\r\n ): void {\r\n if (groupNb < 0 || groupNb >= this._groups.length) {\r\n return;\r\n }\r\n const group = this._groups[groupNb];\r\n (<SliderGroup>group).addSlider(label, func, unit, min, max, value, onVal);\r\n }\r\n}\r\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2
|
-
import { Vector2 } from "@babylonjs/core/Maths/math.vector";
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
import { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
3
|
import { Control } from "../control";
|
|
4
4
|
import { ValueAndUnit } from "../../valueAndUnit";
|
|
5
|
-
import { PointerInfoBase } from
|
|
5
|
+
import { PointerInfoBase } from "@babylonjs/core/Events/pointerEvents.js";
|
|
6
6
|
/**
|
|
7
7
|
* Class used to create slider controls
|
|
8
8
|
*/
|
|
@@ -235,7 +235,7 @@ var BaseSlider = /** @class */ (function (_super) {
|
|
|
235
235
|
this._backgroundBoxLength -= this._effectiveThumbThickness;
|
|
236
236
|
}
|
|
237
237
|
//throw error when height is less than width for vertical slider
|
|
238
|
-
if (
|
|
238
|
+
if (this.isVertical && this._currentMeasure.height < this._currentMeasure.width) {
|
|
239
239
|
console.error("Height should be greater than width");
|
|
240
240
|
return;
|
|
241
241
|
}
|
|
@@ -245,11 +245,11 @@ var BaseSlider = /** @class */ (function (_super) {
|
|
|
245
245
|
else {
|
|
246
246
|
this._effectiveBarOffset = this._backgroundBoxThickness * this._barOffset.getValue(this._host);
|
|
247
247
|
}
|
|
248
|
-
this._backgroundBoxThickness -=
|
|
248
|
+
this._backgroundBoxThickness -= this._effectiveBarOffset * 2;
|
|
249
249
|
if (this.isVertical) {
|
|
250
250
|
this._renderLeft += this._effectiveBarOffset;
|
|
251
251
|
if (!this.isThumbClamped && this.displayThumb) {
|
|
252
|
-
this._renderTop +=
|
|
252
|
+
this._renderTop += this._effectiveThumbThickness / 2;
|
|
253
253
|
}
|
|
254
254
|
this._renderHeight = this._backgroundBoxLength;
|
|
255
255
|
this._renderWidth = this._backgroundBoxThickness;
|
|
@@ -257,7 +257,7 @@ var BaseSlider = /** @class */ (function (_super) {
|
|
|
257
257
|
else {
|
|
258
258
|
this._renderTop += this._effectiveBarOffset;
|
|
259
259
|
if (!this.isThumbClamped && this.displayThumb) {
|
|
260
|
-
this._renderLeft +=
|
|
260
|
+
this._renderLeft += this._effectiveThumbThickness / 2;
|
|
261
261
|
}
|
|
262
262
|
this._renderHeight = this._backgroundBoxThickness;
|
|
263
263
|
this._renderWidth = this._backgroundBoxLength;
|
|
@@ -272,7 +272,7 @@ var BaseSlider = /** @class */ (function (_super) {
|
|
|
272
272
|
}
|
|
273
273
|
var value;
|
|
274
274
|
if (this._isVertical) {
|
|
275
|
-
value = this._minimum + (1 - (
|
|
275
|
+
value = this._minimum + (1 - (y - this._currentMeasure.top) / this._currentMeasure.height) * (this._maximum - this._minimum);
|
|
276
276
|
}
|
|
277
277
|
else {
|
|
278
278
|
value = this._minimum + ((x - this._currentMeasure.left) / this._currentMeasure.width) * (this._maximum - this._minimum);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseSlider.js","sourceRoot":"","sources":["../../../../../sourceES6/gui/src/2D/controls/sliders/baseSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\nimport { Control } from \"../control\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { PointerInfoBase } from '@babylonjs/core/Events/pointerEvents';\r\nimport { serialize } from \"@babylonjs/core/Misc/decorators\";\r\n\r\n/**\r\n * Class used to create slider controls\r\n */\r\nexport class BaseSlider extends Control {\r\n protected _thumbWidth = new ValueAndUnit(20, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _minimum = 0;\r\n private _maximum = 100;\r\n private _value = 50;\r\n private _isVertical = false;\r\n protected _barOffset = new ValueAndUnit(5, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _isThumbClamped = false;\r\n protected _displayThumb = true;\r\n private _step = 0;\r\n\r\n private _lastPointerDownId = -1;\r\n\r\n // Shared rendering info\r\n protected _effectiveBarOffset = 0;\r\n protected _renderLeft: number;\r\n protected _renderTop: number;\r\n protected _renderWidth: number;\r\n protected _renderHeight: number;\r\n protected _backgroundBoxLength: number;\r\n protected _backgroundBoxThickness: number;\r\n protected _effectiveThumbThickness: number;\r\n\r\n /** Observable raised when the sldier value changes */\r\n public onValueChangedObservable = new Observable<number>();\r\n\r\n /** Gets or sets a boolean indicating if the thumb must be rendered */\r\n @serialize()\r\n public get displayThumb(): boolean {\r\n return this._displayThumb;\r\n }\r\n\r\n public set displayThumb(value: boolean) {\r\n if (this._displayThumb === value) {\r\n return;\r\n }\r\n\r\n this._displayThumb = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a step to apply to values (0 by default) */\r\n @serialize()\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public set step(value: number) {\r\n if (this._step === value) {\r\n return;\r\n }\r\n\r\n this._step = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets main bar offset (ie. the margin applied to the value bar) */\r\n @serialize()\r\n public get barOffset(): string | number {\r\n return this._barOffset.toString(this._host);\r\n }\r\n\r\n /** Gets main bar offset in pixels*/\r\n public get barOffsetInPixels(): number {\r\n return this._barOffset.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set barOffset(value: string | number) {\r\n if (this._barOffset.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._barOffset.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets thumb width */\r\n @serialize()\r\n public get thumbWidth(): string | number {\r\n return this._thumbWidth.toString(this._host);\r\n }\r\n\r\n /** Gets thumb width in pixels */\r\n public get thumbWidthInPixels(): number {\r\n return this._thumbWidth.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set thumbWidth(value: string | number) {\r\n if (this._thumbWidth.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._thumbWidth.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets minimum value */\r\n @serialize()\r\n public get minimum(): number {\r\n return this._minimum;\r\n }\r\n\r\n public set minimum(value: number) {\r\n if (this._minimum === value) {\r\n return;\r\n }\r\n\r\n this._minimum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets maximum value */\r\n @serialize()\r\n public get maximum(): number {\r\n return this._maximum;\r\n }\r\n\r\n public set maximum(value: number) {\r\n if (this._maximum === value) {\r\n return;\r\n }\r\n\r\n this._maximum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets current value */\r\n @serialize()\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(value: number) {\r\n value = Math.max(Math.min(value, this._maximum), this._minimum);\r\n\r\n if (this._value === value) {\r\n return;\r\n }\r\n\r\n this._value = value;\r\n this._markAsDirty();\r\n this.onValueChangedObservable.notifyObservers(this._value);\r\n }\r\n\r\n /**Gets or sets a boolean indicating if the slider should be vertical or horizontal */\r\n @serialize()\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a value indicating if the thumb can go over main bar extends */\r\n @serialize()\r\n public get isThumbClamped(): boolean {\r\n return this._isThumbClamped;\r\n }\r\n\r\n public set isThumbClamped(value: boolean) {\r\n if (this._isThumbClamped === value) {\r\n return;\r\n }\r\n\r\n this._isThumbClamped = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new BaseSlider\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"BaseSlider\";\r\n }\r\n\r\n protected _getThumbPosition() {\r\n if (this.isVertical) {\r\n return ((this.maximum - this.value) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n return ((this.value - this.minimum) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n protected _getThumbThickness(type: string): number {\r\n var thumbThickness = 0;\r\n switch (type) {\r\n case \"circle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.max(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n }\r\n else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n break;\r\n case \"rectangle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.min(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n }\r\n else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n }\r\n return thumbThickness;\r\n }\r\n\r\n protected _prepareRenderingData(type: string) {\r\n // Main bar\r\n this._effectiveBarOffset = 0;\r\n this._renderLeft = this._currentMeasure.left;\r\n this._renderTop = this._currentMeasure.top;\r\n this._renderWidth = this._currentMeasure.width;\r\n this._renderHeight = this._currentMeasure.height;\r\n\r\n this._backgroundBoxLength = Math.max(this._currentMeasure.width, this._currentMeasure.height);\r\n this._backgroundBoxThickness = Math.min(this._currentMeasure.width, this._currentMeasure.height);\r\n this._effectiveThumbThickness = this._getThumbThickness(type);\r\n\r\n if (this.displayThumb) {\r\n this._backgroundBoxLength -= this._effectiveThumbThickness;\r\n }\r\n //throw error when height is less than width for vertical slider\r\n if ((this.isVertical && this._currentMeasure.height < this._currentMeasure.width)) {\r\n console.error(\"Height should be greater than width\");\r\n return;\r\n }\r\n if (this._barOffset.isPixel) {\r\n this._effectiveBarOffset = Math.min(this._barOffset.getValue(this._host), this._backgroundBoxThickness);\r\n }\r\n else {\r\n this._effectiveBarOffset = this._backgroundBoxThickness * this._barOffset.getValue(this._host);\r\n }\r\n\r\n this._backgroundBoxThickness -= (this._effectiveBarOffset * 2);\r\n\r\n if (this.isVertical) {\r\n this._renderLeft += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderTop += (this._effectiveThumbThickness / 2);\r\n }\r\n\r\n this._renderHeight = this._backgroundBoxLength;\r\n this._renderWidth = this._backgroundBoxThickness;\r\n\r\n }\r\n else {\r\n this._renderTop += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderLeft += (this._effectiveThumbThickness / 2);\r\n }\r\n this._renderHeight = this._backgroundBoxThickness;\r\n this._renderWidth = this._backgroundBoxLength;\r\n }\r\n }\r\n\r\n // Events\r\n private _pointerIsDown = false;\r\n\r\n /** @hidden */\r\n protected _updateValueFromPointer(x: number, y: number): void {\r\n if (this.rotation != 0) {\r\n this._invertTransformMatrix.transformCoordinates(x, y, this._transformedPosition);\r\n x = this._transformedPosition.x;\r\n y = this._transformedPosition.y;\r\n }\r\n\r\n let value: number;\r\n if (this._isVertical) {\r\n value = this._minimum + (1 - ((y - this._currentMeasure.top) / this._currentMeasure.height)) * (this._maximum - this._minimum);\r\n }\r\n else {\r\n value = this._minimum + ((x - this._currentMeasure.left) / this._currentMeasure.width) * (this._maximum - this._minimum);\r\n }\r\n\r\n this.value = this._step ? ((value / this._step) | 0) * this._step : value;\r\n }\r\n\r\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\r\n return false;\r\n }\r\n\r\n if (this.isReadOnly) {\r\n return true;\r\n }\r\n\r\n this._pointerIsDown = true;\r\n\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n this._host._capturingControl[pointerId] = this;\r\n this._lastPointerDownId = pointerId;\r\n return true;\r\n }\r\n\r\n public _onPointerMove(target: Control, coordinates: Vector2, pointerId: number, pi: PointerInfoBase): void {\r\n // Only listen to pointer move events coming from the last pointer to click on the element (To support dual vr controller interaction)\r\n if (pointerId != this._lastPointerDownId) {\r\n return;\r\n }\r\n\r\n if (this._pointerIsDown && !this.isReadOnly) {\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n }\r\n\r\n super._onPointerMove(target, coordinates, pointerId, pi);\r\n }\r\n\r\n public _onPointerUp(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, notifyClick: boolean): void {\r\n this._pointerIsDown = false;\r\n\r\n delete this._host._capturingControl[pointerId];\r\n super._onPointerUp(target, coordinates, pointerId, buttonIndex, notifyClick);\r\n }\r\n\r\n public _onCanvasBlur(): void {\r\n this._forcePointerUp();\r\n super._onCanvasBlur();\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"baseSlider.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/2D/controls/sliders/baseSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport { Vector2 } from \"core/Maths/math.vector\";\r\n\r\nimport { Control } from \"../control\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { PointerInfoBase } from \"core/Events/pointerEvents\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\n\r\n/**\r\n * Class used to create slider controls\r\n */\r\nexport class BaseSlider extends Control {\r\n protected _thumbWidth = new ValueAndUnit(20, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _minimum = 0;\r\n private _maximum = 100;\r\n private _value = 50;\r\n private _isVertical = false;\r\n protected _barOffset = new ValueAndUnit(5, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _isThumbClamped = false;\r\n protected _displayThumb = true;\r\n private _step = 0;\r\n\r\n private _lastPointerDownId = -1;\r\n\r\n // Shared rendering info\r\n protected _effectiveBarOffset = 0;\r\n protected _renderLeft: number;\r\n protected _renderTop: number;\r\n protected _renderWidth: number;\r\n protected _renderHeight: number;\r\n protected _backgroundBoxLength: number;\r\n protected _backgroundBoxThickness: number;\r\n protected _effectiveThumbThickness: number;\r\n\r\n /** Observable raised when the sldier value changes */\r\n public onValueChangedObservable = new Observable<number>();\r\n\r\n /** Gets or sets a boolean indicating if the thumb must be rendered */\r\n @serialize()\r\n public get displayThumb(): boolean {\r\n return this._displayThumb;\r\n }\r\n\r\n public set displayThumb(value: boolean) {\r\n if (this._displayThumb === value) {\r\n return;\r\n }\r\n\r\n this._displayThumb = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a step to apply to values (0 by default) */\r\n @serialize()\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public set step(value: number) {\r\n if (this._step === value) {\r\n return;\r\n }\r\n\r\n this._step = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets main bar offset (ie. the margin applied to the value bar) */\r\n @serialize()\r\n public get barOffset(): string | number {\r\n return this._barOffset.toString(this._host);\r\n }\r\n\r\n /** Gets main bar offset in pixels*/\r\n public get barOffsetInPixels(): number {\r\n return this._barOffset.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set barOffset(value: string | number) {\r\n if (this._barOffset.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._barOffset.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets thumb width */\r\n @serialize()\r\n public get thumbWidth(): string | number {\r\n return this._thumbWidth.toString(this._host);\r\n }\r\n\r\n /** Gets thumb width in pixels */\r\n public get thumbWidthInPixels(): number {\r\n return this._thumbWidth.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set thumbWidth(value: string | number) {\r\n if (this._thumbWidth.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._thumbWidth.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets minimum value */\r\n @serialize()\r\n public get minimum(): number {\r\n return this._minimum;\r\n }\r\n\r\n public set minimum(value: number) {\r\n if (this._minimum === value) {\r\n return;\r\n }\r\n\r\n this._minimum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets maximum value */\r\n @serialize()\r\n public get maximum(): number {\r\n return this._maximum;\r\n }\r\n\r\n public set maximum(value: number) {\r\n if (this._maximum === value) {\r\n return;\r\n }\r\n\r\n this._maximum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets current value */\r\n @serialize()\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(value: number) {\r\n value = Math.max(Math.min(value, this._maximum), this._minimum);\r\n\r\n if (this._value === value) {\r\n return;\r\n }\r\n\r\n this._value = value;\r\n this._markAsDirty();\r\n this.onValueChangedObservable.notifyObservers(this._value);\r\n }\r\n\r\n /**Gets or sets a boolean indicating if the slider should be vertical or horizontal */\r\n @serialize()\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a value indicating if the thumb can go over main bar extends */\r\n @serialize()\r\n public get isThumbClamped(): boolean {\r\n return this._isThumbClamped;\r\n }\r\n\r\n public set isThumbClamped(value: boolean) {\r\n if (this._isThumbClamped === value) {\r\n return;\r\n }\r\n\r\n this._isThumbClamped = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new BaseSlider\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"BaseSlider\";\r\n }\r\n\r\n protected _getThumbPosition() {\r\n if (this.isVertical) {\r\n return ((this.maximum - this.value) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n return ((this.value - this.minimum) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n protected _getThumbThickness(type: string): number {\r\n let thumbThickness = 0;\r\n switch (type) {\r\n case \"circle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.max(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n break;\r\n case \"rectangle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.min(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n }\r\n return thumbThickness;\r\n }\r\n\r\n protected _prepareRenderingData(type: string) {\r\n // Main bar\r\n this._effectiveBarOffset = 0;\r\n this._renderLeft = this._currentMeasure.left;\r\n this._renderTop = this._currentMeasure.top;\r\n this._renderWidth = this._currentMeasure.width;\r\n this._renderHeight = this._currentMeasure.height;\r\n\r\n this._backgroundBoxLength = Math.max(this._currentMeasure.width, this._currentMeasure.height);\r\n this._backgroundBoxThickness = Math.min(this._currentMeasure.width, this._currentMeasure.height);\r\n this._effectiveThumbThickness = this._getThumbThickness(type);\r\n\r\n if (this.displayThumb) {\r\n this._backgroundBoxLength -= this._effectiveThumbThickness;\r\n }\r\n //throw error when height is less than width for vertical slider\r\n if (this.isVertical && this._currentMeasure.height < this._currentMeasure.width) {\r\n console.error(\"Height should be greater than width\");\r\n return;\r\n }\r\n if (this._barOffset.isPixel) {\r\n this._effectiveBarOffset = Math.min(this._barOffset.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n this._effectiveBarOffset = this._backgroundBoxThickness * this._barOffset.getValue(this._host);\r\n }\r\n\r\n this._backgroundBoxThickness -= this._effectiveBarOffset * 2;\r\n\r\n if (this.isVertical) {\r\n this._renderLeft += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderTop += this._effectiveThumbThickness / 2;\r\n }\r\n\r\n this._renderHeight = this._backgroundBoxLength;\r\n this._renderWidth = this._backgroundBoxThickness;\r\n } else {\r\n this._renderTop += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderLeft += this._effectiveThumbThickness / 2;\r\n }\r\n this._renderHeight = this._backgroundBoxThickness;\r\n this._renderWidth = this._backgroundBoxLength;\r\n }\r\n }\r\n\r\n // Events\r\n private _pointerIsDown = false;\r\n\r\n /** @hidden */\r\n protected _updateValueFromPointer(x: number, y: number): void {\r\n if (this.rotation != 0) {\r\n this._invertTransformMatrix.transformCoordinates(x, y, this._transformedPosition);\r\n x = this._transformedPosition.x;\r\n y = this._transformedPosition.y;\r\n }\r\n\r\n let value: number;\r\n if (this._isVertical) {\r\n value = this._minimum + (1 - (y - this._currentMeasure.top) / this._currentMeasure.height) * (this._maximum - this._minimum);\r\n } else {\r\n value = this._minimum + ((x - this._currentMeasure.left) / this._currentMeasure.width) * (this._maximum - this._minimum);\r\n }\r\n\r\n this.value = this._step ? ((value / this._step) | 0) * this._step : value;\r\n }\r\n\r\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\r\n return false;\r\n }\r\n\r\n if (this.isReadOnly) {\r\n return true;\r\n }\r\n\r\n this._pointerIsDown = true;\r\n\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n this._host._capturingControl[pointerId] = this;\r\n this._lastPointerDownId = pointerId;\r\n return true;\r\n }\r\n\r\n public _onPointerMove(target: Control, coordinates: Vector2, pointerId: number, pi: PointerInfoBase): void {\r\n // Only listen to pointer move events coming from the last pointer to click on the element (To support dual vr controller interaction)\r\n if (pointerId != this._lastPointerDownId) {\r\n return;\r\n }\r\n\r\n if (this._pointerIsDown && !this.isReadOnly) {\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n }\r\n\r\n super._onPointerMove(target, coordinates, pointerId, pi);\r\n }\r\n\r\n public _onPointerUp(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, notifyClick: boolean): void {\r\n this._pointerIsDown = false;\r\n\r\n delete this._host._capturingControl[pointerId];\r\n super._onPointerUp(target, coordinates, pointerId, buttonIndex, notifyClick);\r\n }\r\n\r\n public _onCanvasBlur(): void {\r\n this._forcePointerUp();\r\n super._onCanvasBlur();\r\n }\r\n}\r\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseSlider } from "./baseSlider";
|
|
2
2
|
import { Measure } from "../../measure";
|
|
3
3
|
import { Image } from "../image";
|
|
4
|
-
import { Nullable } from
|
|
5
|
-
import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
|
|
4
|
+
import { Nullable } from "@babylonjs/core/types.js";
|
|
5
|
+
import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
6
6
|
import { AdvancedDynamicTexture } from "../../advancedDynamicTexture";
|
|
7
7
|
/**
|
|
8
8
|
* Class used to create slider controls based on images
|
|
@@ -38,9 +38,9 @@ export declare class ImageBasedSlider extends BaseSlider {
|
|
|
38
38
|
protected _getTypeName(): string;
|
|
39
39
|
_draw(context: ICanvasRenderingContext, invalidatedRectangle?: Nullable<Measure>): void;
|
|
40
40
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
* Serializes the current control
|
|
42
|
+
* @param serializationObject defined the JSON serialized object
|
|
43
|
+
*/
|
|
44
44
|
serialize(serializationObject: any): void;
|
|
45
45
|
/** @hidden */
|
|
46
46
|
_parseFromContent(serializedObject: any, host: AdvancedDynamicTexture): void;
|
|
@@ -2,7 +2,7 @@ import { __decorate, __extends } from "tslib";
|
|
|
2
2
|
import { BaseSlider } from "./baseSlider.js";
|
|
3
3
|
import { Measure } from "../../measure.js";
|
|
4
4
|
import { Image } from "../image.js";
|
|
5
|
-
import { RegisterClass } from
|
|
5
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
6
6
|
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
7
7
|
/**
|
|
8
8
|
* Class used to create slider controls based on images
|
|
@@ -157,9 +157,9 @@ var ImageBasedSlider = /** @class */ (function (_super) {
|
|
|
157
157
|
context.restore();
|
|
158
158
|
};
|
|
159
159
|
/**
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
160
|
+
* Serializes the current control
|
|
161
|
+
* @param serializationObject defined the JSON serialized object
|
|
162
|
+
*/
|
|
163
163
|
ImageBasedSlider.prototype.serialize = function (serializationObject) {
|
|
164
164
|
_super.prototype.serialize.call(this, serializationObject);
|
|
165
165
|
var backgroundImage = {};
|