@babylonjs/gui 5.0.0-rc.1 → 5.0.0-rc.10
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 +52 -52
- package/2D/adtInstrumentation.js +126 -126
- package/2D/adtInstrumentation.js.map +1 -1
- package/2D/advancedDynamicTexture.d.ts +449 -423
- package/2D/advancedDynamicTexture.js +1318 -1286
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +135 -97
- package/2D/controls/button.js +276 -238
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.d.ts +59 -51
- package/2D/controls/checkbox.js +188 -178
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.d.ts +103 -90
- package/2D/controls/colorpicker.js +1417 -1400
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.d.ts +175 -130
- package/2D/controls/container.js +570 -525
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +866 -743
- package/2D/controls/control.js +2433 -2308
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.d.ts +53 -55
- package/2D/controls/displayGrid.js +245 -245
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/ellipse.d.ts +21 -21
- package/2D/controls/ellipse.js +85 -85
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/focusableButton.d.ts +59 -52
- package/2D/controls/focusableButton.js +99 -92
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/focusableControl.d.ts +34 -34
- package/2D/controls/focusableControl.js +1 -1
- package/2D/controls/focusableControl.js.map +1 -1
- package/2D/controls/grid.d.ts +139 -135
- package/2D/controls/grid.js +529 -525
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.d.ts +204 -197
- package/2D/controls/image.js +887 -879
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/index.d.ts +29 -29
- package/2D/controls/index.js +29 -29
- package/2D/controls/index.js.map +1 -1
- package/2D/controls/inputPassword.d.ts +9 -8
- package/2D/controls/inputPassword.js +28 -25
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputText.d.ts +201 -182
- package/2D/controls/inputText.js +1119 -1096
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/line.d.ts +66 -66
- package/2D/controls/line.js +271 -271
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/multiLine.d.ts +75 -77
- package/2D/controls/multiLine.js +262 -262
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/radioButton.d.ts +49 -49
- package/2D/controls/radioButton.js +205 -205
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/rectangle.d.ts +29 -29
- package/2D/controls/rectangle.js +150 -150
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -175
- package/2D/controls/scrollViewers/scrollViewer.js +677 -676
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -45
- package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -263
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +263 -209
- package/2D/controls/selector.js +692 -629
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +82 -78
- package/2D/controls/sliders/baseSlider.js +347 -343
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +49 -47
- package/2D/controls/sliders/imageBasedSlider.js +192 -188
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +65 -61
- package/2D/controls/sliders/imageScrollBar.js +263 -256
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +38 -34
- package/2D/controls/sliders/scrollBar.js +143 -136
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.d.ts +35 -37
- package/2D/controls/sliders/slider.js +271 -271
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.d.ts +64 -56
- package/2D/controls/stackPanel.js +246 -236
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.d.ts +6 -6
- package/2D/controls/statics.js +49 -47
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.d.ts +175 -172
- package/2D/controls/textBlock.js +603 -598
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.d.ts +13 -13
- package/2D/controls/textWrapper.js +101 -101
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.d.ts +117 -83
- package/2D/controls/toggleButton.js +268 -234
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.d.ts +96 -96
- package/2D/controls/virtualKeyboard.js +256 -256
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/index.d.ts +9 -9
- package/2D/index.js +10 -9
- package/2D/index.js.map +1 -1
- package/2D/math2D.d.ts +117 -117
- package/2D/math2D.js +221 -221
- package/2D/math2D.js.map +1 -1
- package/2D/measure.d.ts +77 -77
- package/2D/measure.js +139 -149
- package/2D/measure.js.map +1 -1
- package/2D/multiLinePoint.d.ts +47 -47
- package/2D/multiLinePoint.js +127 -127
- package/2D/multiLinePoint.js.map +1 -1
- package/2D/style.d.ts +46 -46
- package/2D/style.js +97 -97
- package/2D/style.js.map +1 -1
- package/2D/valueAndUnit.d.ts +89 -89
- package/2D/valueAndUnit.js +226 -222
- package/2D/valueAndUnit.js.map +1 -1
- package/2D/xmlLoader.d.ts +60 -60
- package/2D/xmlLoader.js +348 -348
- package/2D/xmlLoader.js.map +1 -1
- package/3D/behaviors/defaultBehavior.d.ts +73 -73
- package/3D/behaviors/defaultBehavior.js +121 -121
- package/3D/behaviors/defaultBehavior.js.map +1 -1
- package/3D/controls/abstractButton3D.d.ts +15 -15
- package/3D/controls/abstractButton3D.js +25 -25
- package/3D/controls/abstractButton3D.js.map +1 -1
- package/3D/controls/button3D.d.ts +30 -30
- package/3D/controls/button3D.js +93 -93
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/container3D.d.ts +72 -72
- package/3D/controls/container3D.js +139 -140
- package/3D/controls/container3D.js.map +1 -1
- package/3D/controls/contentDisplay3D.d.ts +30 -30
- package/3D/controls/contentDisplay3D.js +79 -78
- package/3D/controls/contentDisplay3D.js.map +1 -1
- package/3D/controls/control3D.d.ts +201 -165
- package/3D/controls/control3D.js +445 -408
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/cylinderPanel.d.ts +17 -17
- package/3D/controls/cylinderPanel.js +66 -66
- package/3D/controls/cylinderPanel.js.map +1 -1
- package/3D/controls/handMenu.d.ts +28 -28
- package/3D/controls/handMenu.js +47 -47
- package/3D/controls/handMenu.js.map +1 -1
- package/3D/controls/holographicBackplate.d.ts +49 -48
- package/3D/controls/holographicBackplate.js +120 -120
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.d.ts +84 -83
- package/3D/controls/holographicButton.js +339 -338
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.d.ts +131 -128
- package/3D/controls/holographicSlate.js +431 -428
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/index.d.ts +21 -21
- package/3D/controls/index.js +21 -21
- package/3D/controls/index.js.map +1 -1
- package/3D/controls/meshButton3D.d.ts +21 -21
- package/3D/controls/meshButton3D.js +62 -61
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.d.ts +44 -44
- package/3D/controls/nearMenu.js +114 -112
- package/3D/controls/nearMenu.js.map +1 -1
- package/3D/controls/planePanel.d.ts +9 -9
- package/3D/controls/planePanel.js +36 -36
- package/3D/controls/planePanel.js.map +1 -1
- package/3D/controls/scatterPanel.d.ts +18 -18
- package/3D/controls/scatterPanel.js +108 -108
- package/3D/controls/scatterPanel.js.map +1 -1
- package/3D/controls/slider3D.d.ts +81 -81
- package/3D/controls/slider3D.js +268 -267
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/spherePanel.d.ts +17 -17
- package/3D/controls/spherePanel.js +67 -67
- package/3D/controls/spherePanel.js.map +1 -1
- package/3D/controls/stackPanel3D.d.ts +22 -22
- package/3D/controls/stackPanel3D.js +107 -107
- package/3D/controls/stackPanel3D.js.map +1 -1
- package/3D/controls/touchButton3D.d.ts +80 -75
- package/3D/controls/touchButton3D.js +233 -227
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +110 -109
- package/3D/controls/touchHolographicButton.js +445 -445
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.d.ts +61 -61
- package/3D/controls/touchHolographicMenu.js +149 -148
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/controls/touchMeshButton3D.d.ts +21 -22
- package/3D/controls/touchMeshButton3D.js +62 -62
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.d.ts +53 -52
- package/3D/controls/volumeBasedPanel.js +174 -174
- package/3D/controls/volumeBasedPanel.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +108 -108
- package/3D/gizmos/gizmoHandle.js +209 -209
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/index.d.ts +2 -2
- package/3D/gizmos/index.js +2 -2
- package/3D/gizmos/index.js.map +1 -1
- package/3D/gizmos/slateGizmo.d.ts +57 -57
- package/3D/gizmos/slateGizmo.js +369 -369
- package/3D/gizmos/slateGizmo.js.map +1 -1
- package/3D/gui3DManager.d.ts +94 -94
- package/3D/gui3DManager.js +257 -257
- package/3D/gui3DManager.js.map +1 -1
- package/3D/index.d.ts +5 -5
- package/3D/index.js +6 -5
- package/3D/index.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
- package/3D/materials/fluent/fluentMaterial.js +292 -281
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/index.d.ts +1 -1
- package/3D/materials/fluent/index.js +1 -1
- package/3D/materials/fluent/index.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.fragment.js +8 -6
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.vertex.js +8 -6
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -434
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/index.d.ts +1 -1
- package/3D/materials/fluentBackplate/index.js +1 -1
- package/3D/materials/fluentBackplate/index.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -6
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -6
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
- package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -537
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/index.d.ts +1 -1
- package/3D/materials/fluentButton/index.js +1 -1
- package/3D/materials/fluentButton/index.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -6
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -6
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
- package/3D/materials/fluentMaterial.d.ts +4 -4
- package/3D/materials/fluentMaterial.js +4 -4
- package/3D/materials/fluentMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +68 -68
- package/3D/materials/handle/handleMaterial.js +126 -126
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/index.d.ts +1 -1
- package/3D/materials/handle/index.js +1 -1
- package/3D/materials/handle/index.js.map +1 -1
- package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.fragment.js +8 -6
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
- package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.vertex.js +8 -6
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
- package/3D/materials/index.d.ts +5 -5
- package/3D/materials/index.js +6 -5
- package/3D/materials/index.js.map +1 -1
- package/3D/materials/mrdl/index.d.ts +3 -3
- package/3D/materials/mrdl/index.js +3 -3
- package/3D/materials/mrdl/index.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -409
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -786
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -786
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
- package/3D/vector3WithInfo.d.ts +16 -16
- package/3D/vector3WithInfo.js +23 -23
- package/3D/vector3WithInfo.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/legacy/legacy.d.ts +1 -1
- package/legacy/legacy.js +14 -13
- package/legacy/legacy.js.map +1 -1
- package/package.json +21 -328
- package/readme.md +2 -2
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
|
|
2
|
-
import { float } from "@babylonjs/core/types";
|
|
3
|
-
import { VolumeBasedPanel } from "./volumeBasedPanel";
|
|
4
|
-
import { Control3D } from "./control3D";
|
|
5
|
-
/**
|
|
6
|
-
* Class used to create a container panel deployed on the surface of a sphere
|
|
7
|
-
*/
|
|
8
|
-
export declare class SpherePanel extends VolumeBasedPanel {
|
|
9
|
-
private _radius;
|
|
10
|
-
/**
|
|
11
|
-
* Gets or sets the radius of the sphere where to project controls (5 by default)
|
|
12
|
-
*/
|
|
13
|
-
get radius(): float;
|
|
14
|
-
set radius(value: float);
|
|
15
|
-
protected _mapGridNode(control: Control3D, nodePosition: Vector3): void;
|
|
16
|
-
private _sphericalMapping;
|
|
17
|
-
}
|
|
1
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
2
|
+
import type { float } from "@babylonjs/core/types.js";
|
|
3
|
+
import { VolumeBasedPanel } from "./volumeBasedPanel";
|
|
4
|
+
import type { Control3D } from "./control3D";
|
|
5
|
+
/**
|
|
6
|
+
* Class used to create a container panel deployed on the surface of a sphere
|
|
7
|
+
*/
|
|
8
|
+
export declare class SpherePanel extends VolumeBasedPanel {
|
|
9
|
+
private _radius;
|
|
10
|
+
/**
|
|
11
|
+
* Gets or sets the radius of the sphere where to project controls (5 by default)
|
|
12
|
+
*/
|
|
13
|
+
get radius(): float;
|
|
14
|
+
set radius(value: float);
|
|
15
|
+
protected _mapGridNode(control: Control3D, nodePosition: Vector3): void;
|
|
16
|
+
private _sphericalMapping;
|
|
17
|
+
}
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
|
-
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
3
|
-
import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
-
import { VolumeBasedPanel } from "./volumeBasedPanel
|
|
5
|
-
import { Container3D } from "./container3D
|
|
6
|
-
import { Axis, Space } from
|
|
7
|
-
/**
|
|
8
|
-
* Class used to create a container panel deployed on the surface of a sphere
|
|
9
|
-
*/
|
|
10
|
-
var SpherePanel = /** @class */ (function (_super) {
|
|
11
|
-
__extends(SpherePanel, _super);
|
|
12
|
-
function SpherePanel() {
|
|
13
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
14
|
-
_this._radius = 5.0;
|
|
15
|
-
return _this;
|
|
16
|
-
}
|
|
17
|
-
Object.defineProperty(SpherePanel.prototype, "radius", {
|
|
18
|
-
/**
|
|
19
|
-
* Gets or sets the radius of the sphere where to project controls (5 by default)
|
|
20
|
-
*/
|
|
21
|
-
get: function () {
|
|
22
|
-
return this._radius;
|
|
23
|
-
},
|
|
24
|
-
set: function (value) {
|
|
25
|
-
var _this = this;
|
|
26
|
-
if (this._radius === value) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
this._radius = value;
|
|
30
|
-
Tools.SetImmediate(function () {
|
|
31
|
-
_this._arrangeChildren();
|
|
32
|
-
});
|
|
33
|
-
},
|
|
34
|
-
enumerable: false,
|
|
35
|
-
configurable: true
|
|
36
|
-
});
|
|
37
|
-
SpherePanel.prototype._mapGridNode = function (control, nodePosition) {
|
|
38
|
-
var mesh = control.mesh;
|
|
39
|
-
if (!mesh) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
var newPos = this._sphericalMapping(nodePosition);
|
|
43
|
-
control.position = newPos;
|
|
44
|
-
switch (this.orientation) {
|
|
45
|
-
case Container3D.FACEORIGIN_ORIENTATION:
|
|
46
|
-
mesh.lookAt(new Vector3(2 * newPos.x, 2 * newPos.y, 2 * newPos.z));
|
|
47
|
-
break;
|
|
48
|
-
case Container3D.FACEORIGINREVERSED_ORIENTATION:
|
|
49
|
-
mesh.lookAt(new Vector3(-newPos.x, -newPos.y, -newPos.z));
|
|
50
|
-
break;
|
|
51
|
-
case Container3D.FACEFORWARD_ORIENTATION:
|
|
52
|
-
break;
|
|
53
|
-
case Container3D.FACEFORWARDREVERSED_ORIENTATION:
|
|
54
|
-
mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
SpherePanel.prototype._sphericalMapping = function (source) {
|
|
59
|
-
var newPos = new Vector3(0, 0, this._radius);
|
|
60
|
-
var xAngle =
|
|
61
|
-
var yAngle = -(source.x / this._radius);
|
|
62
|
-
Matrix.RotationYawPitchRollToRef(yAngle, xAngle, 0, TmpVectors.Matrix[0]);
|
|
63
|
-
return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);
|
|
64
|
-
};
|
|
65
|
-
return SpherePanel;
|
|
66
|
-
}(VolumeBasedPanel));
|
|
67
|
-
export { SpherePanel };
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
3
|
+
import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
+
import { VolumeBasedPanel } from "./volumeBasedPanel";
|
|
5
|
+
import { Container3D } from "./container3D";
|
|
6
|
+
import { Axis, Space } from "@babylonjs/core/Maths/math.axis.js";
|
|
7
|
+
/**
|
|
8
|
+
* Class used to create a container panel deployed on the surface of a sphere
|
|
9
|
+
*/
|
|
10
|
+
var SpherePanel = /** @class */ (function (_super) {
|
|
11
|
+
__extends(SpherePanel, _super);
|
|
12
|
+
function SpherePanel() {
|
|
13
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
14
|
+
_this._radius = 5.0;
|
|
15
|
+
return _this;
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(SpherePanel.prototype, "radius", {
|
|
18
|
+
/**
|
|
19
|
+
* Gets or sets the radius of the sphere where to project controls (5 by default)
|
|
20
|
+
*/
|
|
21
|
+
get: function () {
|
|
22
|
+
return this._radius;
|
|
23
|
+
},
|
|
24
|
+
set: function (value) {
|
|
25
|
+
var _this = this;
|
|
26
|
+
if (this._radius === value) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this._radius = value;
|
|
30
|
+
Tools.SetImmediate(function () {
|
|
31
|
+
_this._arrangeChildren();
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
enumerable: false,
|
|
35
|
+
configurable: true
|
|
36
|
+
});
|
|
37
|
+
SpherePanel.prototype._mapGridNode = function (control, nodePosition) {
|
|
38
|
+
var mesh = control.mesh;
|
|
39
|
+
if (!mesh) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
var newPos = this._sphericalMapping(nodePosition);
|
|
43
|
+
control.position = newPos;
|
|
44
|
+
switch (this.orientation) {
|
|
45
|
+
case Container3D.FACEORIGIN_ORIENTATION:
|
|
46
|
+
mesh.lookAt(new Vector3(2 * newPos.x, 2 * newPos.y, 2 * newPos.z));
|
|
47
|
+
break;
|
|
48
|
+
case Container3D.FACEORIGINREVERSED_ORIENTATION:
|
|
49
|
+
mesh.lookAt(new Vector3(-newPos.x, -newPos.y, -newPos.z));
|
|
50
|
+
break;
|
|
51
|
+
case Container3D.FACEFORWARD_ORIENTATION:
|
|
52
|
+
break;
|
|
53
|
+
case Container3D.FACEFORWARDREVERSED_ORIENTATION:
|
|
54
|
+
mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
SpherePanel.prototype._sphericalMapping = function (source) {
|
|
59
|
+
var newPos = new Vector3(0, 0, this._radius);
|
|
60
|
+
var xAngle = source.y / this._radius;
|
|
61
|
+
var yAngle = -(source.x / this._radius);
|
|
62
|
+
Matrix.RotationYawPitchRollToRef(yAngle, xAngle, 0, TmpVectors.Matrix[0]);
|
|
63
|
+
return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);
|
|
64
|
+
};
|
|
65
|
+
return SpherePanel;
|
|
66
|
+
}(VolumeBasedPanel));
|
|
67
|
+
export { SpherePanel };
|
|
68
68
|
//# sourceMappingURL=spherePanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spherePanel.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"spherePanel.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/spherePanel.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,sCAAwB;AACxC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA+B;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,2CAA6B;AAEnD;;GAEG;AACH;IAAiC,+BAAgB;IAAjD;QAAA,qEAyDC;QAxDW,aAAO,GAAG,GAAG,CAAC;;IAwD1B,CAAC;IAnDG,sBAAW,+BAAM;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;aAED,UAAkB,KAAY;YAA9B,iBAUC;YATG,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;gBACxB,OAAO;aACV;YAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,KAAK,CAAC,YAAY,CAAC;gBACf,KAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;;;OAZA;IAcS,kCAAY,GAAtB,UAAuB,OAAkB,EAAE,YAAqB;QAC5D,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAE1B,QAAQ,IAAI,CAAC,WAAW,EAAE;YACtB,KAAK,WAAW,CAAC,sBAAsB;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM;YACV,KAAK,WAAW,CAAC,8BAA8B;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACV,KAAK,WAAW,CAAC,uBAAuB;gBACpC,MAAM;YACV,KAAK,WAAW,CAAC,+BAA+B;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;SACb;IACL,CAAC;IAEO,uCAAiB,GAAzB,UAA0B,MAAe;QACrC,IAAM,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvC,IAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACL,kBAAC;AAAD,CAAC,AAzDD,CAAiC,gBAAgB,GAyDhD","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\nimport type { float } from \"core/types\";\r\n\r\nimport { VolumeBasedPanel } from \"./volumeBasedPanel\";\r\nimport type { Control3D } from \"./control3D\";\r\nimport { Container3D } from \"./container3D\";\r\nimport { Axis, Space } from \"core/Maths/math.axis\";\r\n\r\n/**\r\n * Class used to create a container panel deployed on the surface of a sphere\r\n */\r\nexport class SpherePanel extends VolumeBasedPanel {\r\n private _radius = 5.0;\r\n\r\n /**\r\n * Gets or sets the radius of the sphere where to project controls (5 by default)\r\n */\r\n public get radius(): float {\r\n return this._radius;\r\n }\r\n\r\n public set radius(value: float) {\r\n if (this._radius === value) {\r\n return;\r\n }\r\n\r\n this._radius = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n protected _mapGridNode(control: Control3D, nodePosition: Vector3) {\r\n const mesh = control.mesh;\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n const newPos = this._sphericalMapping(nodePosition);\r\n control.position = newPos;\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n mesh.lookAt(new Vector3(2 * newPos.x, 2 * newPos.y, 2 * newPos.z));\r\n break;\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(-newPos.x, -newPos.y, -newPos.z));\r\n break;\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);\r\n break;\r\n }\r\n }\r\n\r\n private _sphericalMapping(source: Vector3) {\r\n const newPos = new Vector3(0, 0, this._radius);\r\n\r\n const xAngle = source.y / this._radius;\r\n const yAngle = -(source.x / this._radius);\r\n\r\n Matrix.RotationYawPitchRollToRef(yAngle, xAngle, 0, TmpVectors.Matrix[0]);\r\n\r\n return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);\r\n }\r\n}\r\n"]}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { Container3D } from "./container3D";
|
|
2
|
-
/**
|
|
3
|
-
* Class used to create a stack panel in 3D on XY plane
|
|
4
|
-
*/
|
|
5
|
-
export declare class StackPanel3D extends Container3D {
|
|
6
|
-
private _isVertical;
|
|
7
|
-
/**
|
|
8
|
-
* Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
|
|
9
|
-
*/
|
|
10
|
-
get isVertical(): boolean;
|
|
11
|
-
set isVertical(value: boolean);
|
|
12
|
-
/**
|
|
13
|
-
* Gets or sets the distance between elements
|
|
14
|
-
*/
|
|
15
|
-
margin: number;
|
|
16
|
-
/**
|
|
17
|
-
* Creates new StackPanel
|
|
18
|
-
* @param isVertical
|
|
19
|
-
*/
|
|
20
|
-
constructor(isVertical?: boolean);
|
|
21
|
-
protected _arrangeChildren(): void;
|
|
22
|
-
}
|
|
1
|
+
import { Container3D } from "./container3D";
|
|
2
|
+
/**
|
|
3
|
+
* Class used to create a stack panel in 3D on XY plane
|
|
4
|
+
*/
|
|
5
|
+
export declare class StackPanel3D extends Container3D {
|
|
6
|
+
private _isVertical;
|
|
7
|
+
/**
|
|
8
|
+
* Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
|
|
9
|
+
*/
|
|
10
|
+
get isVertical(): boolean;
|
|
11
|
+
set isVertical(value: boolean);
|
|
12
|
+
/**
|
|
13
|
+
* Gets or sets the distance between elements
|
|
14
|
+
*/
|
|
15
|
+
margin: number;
|
|
16
|
+
/**
|
|
17
|
+
* Creates new StackPanel
|
|
18
|
+
* @param isVertical
|
|
19
|
+
*/
|
|
20
|
+
constructor(isVertical?: boolean);
|
|
21
|
+
protected _arrangeChildren(): void;
|
|
22
|
+
}
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
|
-
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
3
|
-
import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
-
import { Container3D } from "./container3D
|
|
5
|
-
/**
|
|
6
|
-
* Class used to create a stack panel in 3D on XY plane
|
|
7
|
-
*/
|
|
8
|
-
var StackPanel3D = /** @class */ (function (_super) {
|
|
9
|
-
__extends(StackPanel3D, _super);
|
|
10
|
-
/**
|
|
11
|
-
* Creates new StackPanel
|
|
12
|
-
* @param isVertical
|
|
13
|
-
*/
|
|
14
|
-
function StackPanel3D(isVertical) {
|
|
15
|
-
if (isVertical === void 0) { isVertical = false; }
|
|
16
|
-
var _this = _super.call(this) || this;
|
|
17
|
-
_this._isVertical = false;
|
|
18
|
-
/**
|
|
19
|
-
* Gets or sets the distance between elements
|
|
20
|
-
*/
|
|
21
|
-
_this.margin = 0.1;
|
|
22
|
-
_this._isVertical = isVertical;
|
|
23
|
-
return _this;
|
|
24
|
-
}
|
|
25
|
-
Object.defineProperty(StackPanel3D.prototype, "isVertical", {
|
|
26
|
-
/**
|
|
27
|
-
* Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
|
|
28
|
-
*/
|
|
29
|
-
get: function () {
|
|
30
|
-
return this._isVertical;
|
|
31
|
-
},
|
|
32
|
-
set: function (value) {
|
|
33
|
-
var _this = this;
|
|
34
|
-
if (this._isVertical === value) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
this._isVertical = value;
|
|
38
|
-
Tools.SetImmediate(function () {
|
|
39
|
-
_this._arrangeChildren();
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
enumerable: false,
|
|
43
|
-
configurable: true
|
|
44
|
-
});
|
|
45
|
-
StackPanel3D.prototype._arrangeChildren = function () {
|
|
46
|
-
var width = 0;
|
|
47
|
-
var height = 0;
|
|
48
|
-
var controlCount = 0;
|
|
49
|
-
var extendSizes = [];
|
|
50
|
-
var currentInverseWorld = Matrix.Invert(this.node.computeWorldMatrix(true));
|
|
51
|
-
// Measure
|
|
52
|
-
for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
|
|
53
|
-
var child = _a[_i];
|
|
54
|
-
if (!child.mesh) {
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
controlCount++;
|
|
58
|
-
child.mesh.computeWorldMatrix(true);
|
|
59
|
-
child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, TmpVectors.Matrix[0]);
|
|
60
|
-
var boundingBox = child.mesh.getBoundingInfo().boundingBox;
|
|
61
|
-
var extendSize = Vector3.TransformNormal(boundingBox.extendSize, TmpVectors.Matrix[0]);
|
|
62
|
-
extendSizes.push(extendSize);
|
|
63
|
-
if (this._isVertical) {
|
|
64
|
-
height += extendSize.y;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
width += extendSize.x;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (this._isVertical) {
|
|
71
|
-
height += (controlCount - 1) * this.margin / 2;
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
width += (controlCount - 1) * this.margin / 2;
|
|
75
|
-
}
|
|
76
|
-
// Arrange
|
|
77
|
-
var offset;
|
|
78
|
-
if (this._isVertical) {
|
|
79
|
-
offset = -height;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
offset = -width;
|
|
83
|
-
}
|
|
84
|
-
var index = 0;
|
|
85
|
-
for (var _b = 0, _c = this._children; _b < _c.length; _b++) {
|
|
86
|
-
var child = _c[_b];
|
|
87
|
-
if (!child.mesh) {
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
controlCount--;
|
|
91
|
-
var extendSize = extendSizes[index++];
|
|
92
|
-
if (this._isVertical) {
|
|
93
|
-
child.position.y = offset + extendSize.y;
|
|
94
|
-
child.position.x = 0;
|
|
95
|
-
offset += extendSize.y * 2;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
child.position.x = offset + extendSize.x;
|
|
99
|
-
child.position.y = 0;
|
|
100
|
-
offset += extendSize.x * 2;
|
|
101
|
-
}
|
|
102
|
-
offset +=
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
return StackPanel3D;
|
|
106
|
-
}(Container3D));
|
|
107
|
-
export { StackPanel3D };
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
3
|
+
import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
+
import { Container3D } from "./container3D";
|
|
5
|
+
/**
|
|
6
|
+
* Class used to create a stack panel in 3D on XY plane
|
|
7
|
+
*/
|
|
8
|
+
var StackPanel3D = /** @class */ (function (_super) {
|
|
9
|
+
__extends(StackPanel3D, _super);
|
|
10
|
+
/**
|
|
11
|
+
* Creates new StackPanel
|
|
12
|
+
* @param isVertical
|
|
13
|
+
*/
|
|
14
|
+
function StackPanel3D(isVertical) {
|
|
15
|
+
if (isVertical === void 0) { isVertical = false; }
|
|
16
|
+
var _this = _super.call(this) || this;
|
|
17
|
+
_this._isVertical = false;
|
|
18
|
+
/**
|
|
19
|
+
* Gets or sets the distance between elements
|
|
20
|
+
*/
|
|
21
|
+
_this.margin = 0.1;
|
|
22
|
+
_this._isVertical = isVertical;
|
|
23
|
+
return _this;
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(StackPanel3D.prototype, "isVertical", {
|
|
26
|
+
/**
|
|
27
|
+
* Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)
|
|
28
|
+
*/
|
|
29
|
+
get: function () {
|
|
30
|
+
return this._isVertical;
|
|
31
|
+
},
|
|
32
|
+
set: function (value) {
|
|
33
|
+
var _this = this;
|
|
34
|
+
if (this._isVertical === value) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this._isVertical = value;
|
|
38
|
+
Tools.SetImmediate(function () {
|
|
39
|
+
_this._arrangeChildren();
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
enumerable: false,
|
|
43
|
+
configurable: true
|
|
44
|
+
});
|
|
45
|
+
StackPanel3D.prototype._arrangeChildren = function () {
|
|
46
|
+
var width = 0;
|
|
47
|
+
var height = 0;
|
|
48
|
+
var controlCount = 0;
|
|
49
|
+
var extendSizes = [];
|
|
50
|
+
var currentInverseWorld = Matrix.Invert(this.node.computeWorldMatrix(true));
|
|
51
|
+
// Measure
|
|
52
|
+
for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
|
|
53
|
+
var child = _a[_i];
|
|
54
|
+
if (!child.mesh) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
controlCount++;
|
|
58
|
+
child.mesh.computeWorldMatrix(true);
|
|
59
|
+
child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, TmpVectors.Matrix[0]);
|
|
60
|
+
var boundingBox = child.mesh.getBoundingInfo().boundingBox;
|
|
61
|
+
var extendSize = Vector3.TransformNormal(boundingBox.extendSize, TmpVectors.Matrix[0]);
|
|
62
|
+
extendSizes.push(extendSize);
|
|
63
|
+
if (this._isVertical) {
|
|
64
|
+
height += extendSize.y;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
width += extendSize.x;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (this._isVertical) {
|
|
71
|
+
height += ((controlCount - 1) * this.margin) / 2;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
width += ((controlCount - 1) * this.margin) / 2;
|
|
75
|
+
}
|
|
76
|
+
// Arrange
|
|
77
|
+
var offset;
|
|
78
|
+
if (this._isVertical) {
|
|
79
|
+
offset = -height;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
offset = -width;
|
|
83
|
+
}
|
|
84
|
+
var index = 0;
|
|
85
|
+
for (var _b = 0, _c = this._children; _b < _c.length; _b++) {
|
|
86
|
+
var child = _c[_b];
|
|
87
|
+
if (!child.mesh) {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
controlCount--;
|
|
91
|
+
var extendSize = extendSizes[index++];
|
|
92
|
+
if (this._isVertical) {
|
|
93
|
+
child.position.y = offset + extendSize.y;
|
|
94
|
+
child.position.x = 0;
|
|
95
|
+
offset += extendSize.y * 2;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
child.position.x = offset + extendSize.x;
|
|
99
|
+
child.position.y = 0;
|
|
100
|
+
offset += extendSize.x * 2;
|
|
101
|
+
}
|
|
102
|
+
offset += controlCount > 0 ? this.margin : 0;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
return StackPanel3D;
|
|
106
|
+
}(Container3D));
|
|
107
|
+
export { StackPanel3D };
|
|
108
108
|
//# sourceMappingURL=stackPanel3D.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stackPanel3D.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"stackPanel3D.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/stackPanel3D.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\n\r\nimport { Container3D } from \"./container3D\";\r\n\r\n/**\r\n * Class used to create a stack panel in 3D on XY plane\r\n */\r\nexport class StackPanel3D extends Container3D {\r\n private _isVertical = false;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if the stack panel is vertical or horizontal (horizontal by default)\r\n */\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n /**\r\n * Gets or sets the distance between elements\r\n */\r\n public margin = 0.1;\r\n\r\n /**\r\n * Creates new StackPanel\r\n * @param isVertical\r\n */\r\n public constructor(isVertical = false) {\r\n super();\r\n\r\n this._isVertical = isVertical;\r\n }\r\n\r\n protected _arrangeChildren() {\r\n let width = 0;\r\n let height = 0;\r\n let controlCount = 0;\r\n const extendSizes = [];\r\n\r\n const currentInverseWorld = Matrix.Invert(this.node!.computeWorldMatrix(true));\r\n\r\n // Measure\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n controlCount++;\r\n child.mesh.computeWorldMatrix(true);\r\n child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, TmpVectors.Matrix[0]);\r\n\r\n const boundingBox = child.mesh.getBoundingInfo().boundingBox;\r\n const extendSize = Vector3.TransformNormal(boundingBox.extendSize, TmpVectors.Matrix[0]);\r\n extendSizes.push(extendSize);\r\n\r\n if (this._isVertical) {\r\n height += extendSize.y;\r\n } else {\r\n width += extendSize.x;\r\n }\r\n }\r\n\r\n if (this._isVertical) {\r\n height += ((controlCount - 1) * this.margin) / 2;\r\n } else {\r\n width += ((controlCount - 1) * this.margin) / 2;\r\n }\r\n\r\n // Arrange\r\n let offset: number;\r\n if (this._isVertical) {\r\n offset = -height;\r\n } else {\r\n offset = -width;\r\n }\r\n\r\n let index = 0;\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n controlCount--;\r\n const extendSize = extendSizes[index++];\r\n\r\n if (this._isVertical) {\r\n child.position.y = offset + extendSize.y;\r\n child.position.x = 0;\r\n offset += extendSize.y * 2;\r\n } else {\r\n child.position.x = offset + extendSize.x;\r\n child.position.y = 0;\r\n offset += extendSize.x * 2;\r\n }\r\n\r\n offset += controlCount > 0 ? this.margin : 0;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1,75 +1,80 @@
|
|
|
1
|
-
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
|
|
2
|
-
import { Mesh } from "@babylonjs/core/Meshes/mesh";
|
|
3
|
-
import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
|
|
4
|
-
import { Scene } from "@babylonjs/core/scene";
|
|
5
|
-
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
6
|
-
import { Button3D } from "./button3D";
|
|
7
|
-
/**
|
|
8
|
-
* Class used to create a touchable button in 3D
|
|
9
|
-
*/
|
|
10
|
-
export declare class TouchButton3D extends Button3D {
|
|
11
|
-
private _collisionMesh;
|
|
12
|
-
private _collidableFrontDirection;
|
|
13
|
-
private _isNearPressed;
|
|
14
|
-
private _interactionSurfaceHeight;
|
|
15
|
-
private _isToggleButton;
|
|
16
|
-
private _toggleState;
|
|
17
|
-
private _toggleButtonCallback;
|
|
18
|
-
/**
|
|
19
|
-
* An event triggered when the button is toggled. Only fired if 'isToggleButton' is true
|
|
20
|
-
*/
|
|
21
|
-
onToggleObservable: Observable<boolean>;
|
|
22
|
-
/**
|
|
23
|
-
* Creates a new touchable button
|
|
24
|
-
* @param name defines the control name
|
|
25
|
-
* @param collisionMesh mesh to track collisions with
|
|
26
|
-
*/
|
|
27
|
-
constructor(name?: string, collisionMesh?: Mesh);
|
|
28
|
-
/**
|
|
29
|
-
* Whether the current interaction is caused by near interaction or not
|
|
30
|
-
*/
|
|
31
|
-
get isActiveNearInteraction(): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Sets the front-facing direction of the button. Pass in Vector3.Zero to allow interactions from any direction
|
|
34
|
-
* @param
|
|
35
|
-
*/
|
|
36
|
-
set collidableFrontDirection(frontWorldDir: Vector3);
|
|
37
|
-
/**
|
|
38
|
-
* Returns the front-facing direction of the button, or Vector3.Zero if there is no 'front'
|
|
39
|
-
*/
|
|
40
|
-
get collidableFrontDirection(): Vector3;
|
|
41
|
-
/**
|
|
42
|
-
* Sets the mesh used for testing input collision
|
|
43
|
-
* @param collisionMesh the new collision mesh for the button
|
|
44
|
-
*/
|
|
45
|
-
set collisionMesh(collisionMesh: Mesh);
|
|
46
|
-
/**
|
|
47
|
-
* Setter for if this TouchButton3D should be treated as a toggle button
|
|
48
|
-
* @param value If this TouchHolographicButton should act like a toggle button
|
|
49
|
-
*/
|
|
50
|
-
set isToggleButton(value: boolean);
|
|
51
|
-
get isToggleButton(): boolean;
|
|
52
|
-
/**
|
|
53
|
-
* A public entrypoint to set the toggle state of the TouchHolographicButton. Only works if 'isToggleButton' is true
|
|
54
|
-
* @param newState The new state to set the TouchHolographicButton's toggle state to
|
|
55
|
-
*/
|
|
56
|
-
set isToggled(newState: boolean);
|
|
57
|
-
get isToggled(): boolean;
|
|
58
|
-
protected _onToggle(newState: boolean): void;
|
|
59
|
-
private _isInteractionInFrontOfButton;
|
|
60
|
-
/**
|
|
61
|
-
* Get the height of the touchPoint from the collidable part of the button
|
|
62
|
-
* @param touchPoint the point to compare to the button, in absolute position
|
|
63
|
-
* @returns the depth of the touch point into the front of the button
|
|
64
|
-
*/
|
|
65
|
-
getPressDepth(touchPoint: Vector3): number;
|
|
66
|
-
protected _getInteractionHeight(interactionPos: Vector3, basePos: Vector3): number;
|
|
67
|
-
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
1
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
2
|
+
import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
|
3
|
+
import type { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
|
|
4
|
+
import type { Scene } from "@babylonjs/core/scene.js";
|
|
5
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
6
|
+
import { Button3D } from "./button3D";
|
|
7
|
+
/**
|
|
8
|
+
* Class used to create a touchable button in 3D
|
|
9
|
+
*/
|
|
10
|
+
export declare class TouchButton3D extends Button3D {
|
|
11
|
+
private _collisionMesh;
|
|
12
|
+
private _collidableFrontDirection;
|
|
13
|
+
private _isNearPressed;
|
|
14
|
+
private _interactionSurfaceHeight;
|
|
15
|
+
private _isToggleButton;
|
|
16
|
+
private _toggleState;
|
|
17
|
+
private _toggleButtonCallback;
|
|
18
|
+
/**
|
|
19
|
+
* An event triggered when the button is toggled. Only fired if 'isToggleButton' is true
|
|
20
|
+
*/
|
|
21
|
+
onToggleObservable: Observable<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new touchable button
|
|
24
|
+
* @param name defines the control name
|
|
25
|
+
* @param collisionMesh mesh to track collisions with
|
|
26
|
+
*/
|
|
27
|
+
constructor(name?: string, collisionMesh?: Mesh);
|
|
28
|
+
/**
|
|
29
|
+
* Whether the current interaction is caused by near interaction or not
|
|
30
|
+
*/
|
|
31
|
+
get isActiveNearInteraction(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the front-facing direction of the button. Pass in Vector3.Zero to allow interactions from any direction
|
|
34
|
+
* @param frontWorldDir the forward direction of the button
|
|
35
|
+
*/
|
|
36
|
+
set collidableFrontDirection(frontWorldDir: Vector3);
|
|
37
|
+
/**
|
|
38
|
+
* Returns the front-facing direction of the button, or Vector3.Zero if there is no 'front'
|
|
39
|
+
*/
|
|
40
|
+
get collidableFrontDirection(): Vector3;
|
|
41
|
+
/**
|
|
42
|
+
* Sets the mesh used for testing input collision
|
|
43
|
+
* @param collisionMesh the new collision mesh for the button
|
|
44
|
+
*/
|
|
45
|
+
set collisionMesh(collisionMesh: Mesh);
|
|
46
|
+
/**
|
|
47
|
+
* Setter for if this TouchButton3D should be treated as a toggle button
|
|
48
|
+
* @param value If this TouchHolographicButton should act like a toggle button
|
|
49
|
+
*/
|
|
50
|
+
set isToggleButton(value: boolean);
|
|
51
|
+
get isToggleButton(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* A public entrypoint to set the toggle state of the TouchHolographicButton. Only works if 'isToggleButton' is true
|
|
54
|
+
* @param newState The new state to set the TouchHolographicButton's toggle state to
|
|
55
|
+
*/
|
|
56
|
+
set isToggled(newState: boolean);
|
|
57
|
+
get isToggled(): boolean;
|
|
58
|
+
protected _onToggle(newState: boolean): void;
|
|
59
|
+
private _isInteractionInFrontOfButton;
|
|
60
|
+
/**
|
|
61
|
+
* Get the height of the touchPoint from the collidable part of the button
|
|
62
|
+
* @param touchPoint the point to compare to the button, in absolute position
|
|
63
|
+
* @returns the depth of the touch point into the front of the button
|
|
64
|
+
*/
|
|
65
|
+
getPressDepth(touchPoint: Vector3): number;
|
|
66
|
+
protected _getInteractionHeight(interactionPos: Vector3, basePos: Vector3): number;
|
|
67
|
+
/**
|
|
68
|
+
* @param providedType
|
|
69
|
+
* @param nearMeshPosition
|
|
70
|
+
* @param activeInteractionCount
|
|
71
|
+
* @hidden
|
|
72
|
+
*/
|
|
73
|
+
_generatePointerEventType(providedType: number, nearMeshPosition: Vector3, activeInteractionCount: number): number;
|
|
74
|
+
protected _getTypeName(): string;
|
|
75
|
+
protected _createNode(scene: Scene): TransformNode;
|
|
76
|
+
/**
|
|
77
|
+
* Releases all associated resources
|
|
78
|
+
*/
|
|
79
|
+
dispose(): void;
|
|
80
|
+
}
|