@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,175 +1,175 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
|
-
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
3
|
-
import { Matrix, Vector3, TmpVectors } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
-
import { Container3D } from "./container3D
|
|
5
|
-
/**
|
|
6
|
-
* Abstract class used to create a container panel deployed on the surface of a volume
|
|
7
|
-
*/
|
|
8
|
-
var VolumeBasedPanel = /** @class */ (function (_super) {
|
|
9
|
-
__extends(VolumeBasedPanel, _super);
|
|
10
|
-
/**
|
|
11
|
-
* Creates new VolumeBasedPanel
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
_this
|
|
16
|
-
_this.
|
|
17
|
-
_this.
|
|
18
|
-
_this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
*
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
this.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
this.
|
|
99
|
-
|
|
100
|
-
var
|
|
101
|
-
var
|
|
102
|
-
var
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
var
|
|
114
|
-
var
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
this.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
var
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
cellCounter
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
};
|
|
172
|
-
return VolumeBasedPanel;
|
|
173
|
-
}(Container3D));
|
|
174
|
-
export { VolumeBasedPanel };
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
3
|
+
import { Matrix, Vector3, TmpVectors } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
+
import { Container3D } from "./container3D";
|
|
5
|
+
/**
|
|
6
|
+
* Abstract class used to create a container panel deployed on the surface of a volume
|
|
7
|
+
*/
|
|
8
|
+
var VolumeBasedPanel = /** @class */ (function (_super) {
|
|
9
|
+
__extends(VolumeBasedPanel, _super);
|
|
10
|
+
/**
|
|
11
|
+
* Creates new VolumeBasedPanel
|
|
12
|
+
* @param name
|
|
13
|
+
*/
|
|
14
|
+
function VolumeBasedPanel(name) {
|
|
15
|
+
var _this = _super.call(this, name) || this;
|
|
16
|
+
_this._columns = 10;
|
|
17
|
+
_this._rows = 0;
|
|
18
|
+
_this._rowThenColum = true;
|
|
19
|
+
_this._orientation = Container3D.FACEORIGIN_ORIENTATION;
|
|
20
|
+
/**
|
|
21
|
+
* Gets or sets the distance between elements
|
|
22
|
+
*/
|
|
23
|
+
_this.margin = 0;
|
|
24
|
+
return _this;
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(VolumeBasedPanel.prototype, "orientation", {
|
|
27
|
+
/**
|
|
28
|
+
* Gets or sets the orientation to apply to all controls (BABYLON.Container3D.FaceOriginReversedOrientation by default)
|
|
29
|
+
* | Value | Type | Description |
|
|
30
|
+
* | ----- | ----------------------------------- | ----------- |
|
|
31
|
+
* | 0 | UNSET_ORIENTATION | Control rotation will remain unchanged |
|
|
32
|
+
* | 1 | FACEORIGIN_ORIENTATION | Control will rotate to make it look at sphere central axis |
|
|
33
|
+
* | 2 | FACEORIGINREVERSED_ORIENTATION | Control will rotate to make it look back at sphere central axis |
|
|
34
|
+
* | 3 | FACEFORWARD_ORIENTATION | Control will rotate to look at z axis (0, 0, 1) |
|
|
35
|
+
* | 4 | FACEFORWARDREVERSED_ORIENTATION | Control will rotate to look at negative z axis (0, 0, -1) |
|
|
36
|
+
*/
|
|
37
|
+
get: function () {
|
|
38
|
+
return this._orientation;
|
|
39
|
+
},
|
|
40
|
+
set: function (value) {
|
|
41
|
+
var _this = this;
|
|
42
|
+
if (this._orientation === value) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this._orientation = value;
|
|
46
|
+
Tools.SetImmediate(function () {
|
|
47
|
+
_this._arrangeChildren();
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
enumerable: false,
|
|
51
|
+
configurable: true
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(VolumeBasedPanel.prototype, "columns", {
|
|
54
|
+
/**
|
|
55
|
+
* Gets or sets the number of columns requested (10 by default).
|
|
56
|
+
* The panel will automatically compute the number of rows based on number of child controls.
|
|
57
|
+
*/
|
|
58
|
+
get: function () {
|
|
59
|
+
return this._columns;
|
|
60
|
+
},
|
|
61
|
+
set: function (value) {
|
|
62
|
+
var _this = this;
|
|
63
|
+
if (this._columns === value) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
this._columns = value;
|
|
67
|
+
this._rowThenColum = true;
|
|
68
|
+
Tools.SetImmediate(function () {
|
|
69
|
+
_this._arrangeChildren();
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
enumerable: false,
|
|
73
|
+
configurable: true
|
|
74
|
+
});
|
|
75
|
+
Object.defineProperty(VolumeBasedPanel.prototype, "rows", {
|
|
76
|
+
/**
|
|
77
|
+
* Gets or sets a the number of rows requested.
|
|
78
|
+
* The panel will automatically compute the number of columns based on number of child controls.
|
|
79
|
+
*/
|
|
80
|
+
get: function () {
|
|
81
|
+
return this._rows;
|
|
82
|
+
},
|
|
83
|
+
set: function (value) {
|
|
84
|
+
var _this = this;
|
|
85
|
+
if (this._rows === value) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this._rows = value;
|
|
89
|
+
this._rowThenColum = false;
|
|
90
|
+
Tools.SetImmediate(function () {
|
|
91
|
+
_this._arrangeChildren();
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
enumerable: false,
|
|
95
|
+
configurable: true
|
|
96
|
+
});
|
|
97
|
+
VolumeBasedPanel.prototype._arrangeChildren = function () {
|
|
98
|
+
this._cellWidth = 0;
|
|
99
|
+
this._cellHeight = 0;
|
|
100
|
+
var rows = 0;
|
|
101
|
+
var columns = 0;
|
|
102
|
+
var controlCount = 0;
|
|
103
|
+
var currentInverseWorld = Matrix.Invert(this.node.computeWorldMatrix(true));
|
|
104
|
+
// Measure
|
|
105
|
+
for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
|
|
106
|
+
var child = _a[_i];
|
|
107
|
+
if (!child.mesh) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
controlCount++;
|
|
111
|
+
child.mesh.computeWorldMatrix(true);
|
|
112
|
+
// child.mesh.getWorldMatrix().multiplyToRef(currentInverseWorld, Tmp.Matrix[0]);
|
|
113
|
+
var boundingBox = child.mesh.getHierarchyBoundingVectors();
|
|
114
|
+
var extendSize = TmpVectors.Vector3[0];
|
|
115
|
+
var diff = TmpVectors.Vector3[1];
|
|
116
|
+
boundingBox.max.subtractToRef(boundingBox.min, diff);
|
|
117
|
+
diff.scaleInPlace(0.5);
|
|
118
|
+
Vector3.TransformNormalToRef(diff, currentInverseWorld, extendSize);
|
|
119
|
+
this._cellWidth = Math.max(this._cellWidth, extendSize.x * 2);
|
|
120
|
+
this._cellHeight = Math.max(this._cellHeight, extendSize.y * 2);
|
|
121
|
+
}
|
|
122
|
+
this._cellWidth += this.margin * 2;
|
|
123
|
+
this._cellHeight += this.margin * 2;
|
|
124
|
+
// Arrange
|
|
125
|
+
if (this._rowThenColum) {
|
|
126
|
+
columns = this._columns;
|
|
127
|
+
rows = Math.ceil(controlCount / this._columns);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
rows = this._rows;
|
|
131
|
+
columns = Math.ceil(controlCount / this._rows);
|
|
132
|
+
}
|
|
133
|
+
var startOffsetX = columns * 0.5 * this._cellWidth;
|
|
134
|
+
var startOffsetY = rows * 0.5 * this._cellHeight;
|
|
135
|
+
var nodeGrid = [];
|
|
136
|
+
var cellCounter = 0;
|
|
137
|
+
if (this._rowThenColum) {
|
|
138
|
+
for (var r = 0; r < rows; r++) {
|
|
139
|
+
for (var c = 0; c < columns; c++) {
|
|
140
|
+
nodeGrid.push(new Vector3(c * this._cellWidth - startOffsetX + this._cellWidth / 2, r * this._cellHeight - startOffsetY + this._cellHeight / 2, 0));
|
|
141
|
+
cellCounter++;
|
|
142
|
+
if (cellCounter > controlCount) {
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
for (var c = 0; c < columns; c++) {
|
|
150
|
+
for (var r = 0; r < rows; r++) {
|
|
151
|
+
nodeGrid.push(new Vector3(c * this._cellWidth - startOffsetX + this._cellWidth / 2, r * this._cellHeight - startOffsetY + this._cellHeight / 2, 0));
|
|
152
|
+
cellCounter++;
|
|
153
|
+
if (cellCounter > controlCount) {
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
cellCounter = 0;
|
|
160
|
+
for (var _b = 0, _c = this._children; _b < _c.length; _b++) {
|
|
161
|
+
var child = _c[_b];
|
|
162
|
+
if (!child.mesh) {
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
this._mapGridNode(child, nodeGrid[cellCounter]);
|
|
166
|
+
cellCounter++;
|
|
167
|
+
}
|
|
168
|
+
this._finalProcessing();
|
|
169
|
+
};
|
|
170
|
+
/** Child classes can implement this function to provide additional processing */
|
|
171
|
+
VolumeBasedPanel.prototype._finalProcessing = function () { };
|
|
172
|
+
return VolumeBasedPanel;
|
|
173
|
+
}(Container3D));
|
|
174
|
+
export { VolumeBasedPanel };
|
|
175
175
|
//# sourceMappingURL=volumeBasedPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volumeBasedPanel.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/3D/controls/volumeBasedPanel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"@babylonjs/core/Misc/tools\";\r\nimport { Matrix, Vector3, TmpVectors } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { int } from \"@babylonjs/core/types\";\r\n\r\nimport { Container3D } from \"./container3D\";\r\nimport { Control3D } from \"./control3D\";\r\n\r\n/**\r\n * Abstract class used to create a container panel deployed on the surface of a volume\r\n */\r\nexport abstract class VolumeBasedPanel extends Container3D {\r\n private _columns = 10;\r\n private _rows = 0;\r\n private _rowThenColum = true;\r\n\r\n private _orientation = Container3D.FACEORIGIN_ORIENTATION;\r\n\r\n protected _cellWidth: number;\r\n protected _cellHeight: number;\r\n\r\n /**\r\n * Gets or sets the distance between elements\r\n */\r\n public margin = 0;\r\n\r\n /**\r\n * Gets or sets the orientation to apply to all controls (BABYLON.Container3D.FaceOriginReversedOrientation by default)\r\n * | Value | Type | Description |\r\n * | ----- | ----------------------------------- | ----------- |\r\n * | 0 | UNSET_ORIENTATION | Control rotation will remain unchanged |\r\n * | 1 | FACEORIGIN_ORIENTATION | Control will rotate to make it look at sphere central axis |\r\n * | 2 | FACEORIGINREVERSED_ORIENTATION | Control will rotate to make it look back at sphere central axis |\r\n * | 3 | FACEFORWARD_ORIENTATION | Control will rotate to look at z axis (0, 0, 1) |\r\n * | 4 | FACEFORWARDREVERSED_ORIENTATION | Control will rotate to look at negative z axis (0, 0, -1) |\r\n */\r\n public get orientation(): number {\r\n return this._orientation;\r\n }\r\n\r\n public set orientation(value: number) {\r\n if (this._orientation === value) {\r\n return;\r\n }\r\n\r\n this._orientation = 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 number of columns requested (10 by default).\r\n * The panel will automatically compute the number of rows based on number of child controls.\r\n */\r\n public get columns(): int {\r\n return this._columns;\r\n }\r\n\r\n public set columns(value: int) {\r\n if (this._columns === value) {\r\n return;\r\n }\r\n\r\n this._columns = value;\r\n this._rowThenColum = true;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n /**\r\n * Gets or sets a the number of rows requested.\r\n * The panel will automatically compute the number of columns based on number of child controls.\r\n */\r\n public get rows(): int {\r\n return this._rows;\r\n }\r\n\r\n public set rows(value: int) {\r\n if (this._rows === value) {\r\n return;\r\n }\r\n\r\n this._rows = value;\r\n this._rowThenColum = false;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n /**\r\n * Creates new VolumeBasedPanel\r\n */\r\n public constructor(name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _arrangeChildren() {\r\n this._cellWidth = 0;\r\n this._cellHeight = 0;\r\n let rows = 0;\r\n let columns = 0;\r\n let controlCount = 0;\r\n\r\n let currentInverseWorld = Matrix.Invert(this.node!.computeWorldMatrix(true));\r\n\r\n // Measure\r\n for (var 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, Tmp.Matrix[0]);\r\n\r\n let boundingBox = child.mesh.getHierarchyBoundingVectors();\r\n let extendSize = TmpVectors.Vector3[0];\r\n let diff = TmpVectors.Vector3[1];\r\n\r\n boundingBox.max.subtractToRef(boundingBox.min, diff);\r\n\r\n diff.scaleInPlace(0.5);\r\n\r\n Vector3.TransformNormalToRef(diff, currentInverseWorld, extendSize);\r\n\r\n this._cellWidth = Math.max(this._cellWidth, extendSize.x * 2);\r\n this._cellHeight = Math.max(this._cellHeight, extendSize.y * 2);\r\n }\r\n\r\n this._cellWidth += this.margin * 2;\r\n this._cellHeight += this.margin * 2;\r\n\r\n // Arrange\r\n if (this._rowThenColum) {\r\n columns = this._columns;\r\n rows = Math.ceil(controlCount / this._columns);\r\n } else {\r\n rows = this._rows;\r\n columns = Math.ceil(controlCount / this._rows);\r\n }\r\n\r\n let startOffsetX = (columns * 0.5) * this._cellWidth;\r\n let startOffsetY = (rows * 0.5) * this._cellHeight;\r\n let nodeGrid = [];\r\n let cellCounter = 0;\r\n\r\n if (this._rowThenColum) {\r\n for (var r = 0; r < rows; r++) {\r\n for (var c = 0; c < columns; c++) {\r\n nodeGrid.push(new Vector3((c * this._cellWidth) - startOffsetX + this._cellWidth / 2, (r * this._cellHeight) - startOffsetY + this._cellHeight / 2, 0));\r\n cellCounter++;\r\n if (cellCounter > controlCount) {\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n for (var c = 0; c < columns; c++) {\r\n for (var r = 0; r < rows; r++) {\r\n nodeGrid.push(new Vector3((c * this._cellWidth) - startOffsetX + this._cellWidth / 2, (r * this._cellHeight) - startOffsetY + this._cellHeight / 2, 0));\r\n cellCounter++;\r\n if (cellCounter > controlCount) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n cellCounter = 0;\r\n for (var child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n this._mapGridNode(child, nodeGrid[cellCounter]);\r\n\r\n cellCounter++;\r\n }\r\n\r\n this._finalProcessing();\r\n }\r\n\r\n /** Child classes must implement this function to provide correct control positioning */\r\n protected abstract _mapGridNode(control: Control3D, nodePosition: Vector3): void;\r\n\r\n /** Child classes can implement this function to provide additional processing */\r\n protected _finalProcessing() {\r\n\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"volumeBasedPanel.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/volumeBasedPanel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { Matrix, Vector3, TmpVectors } from \"core/Maths/math.vector\";\r\nimport type { int } from \"core/types\";\r\n\r\nimport { Container3D } from \"./container3D\";\r\nimport type { Control3D } from \"./control3D\";\r\n\r\n/**\r\n * Abstract class used to create a container panel deployed on the surface of a volume\r\n */\r\nexport abstract class VolumeBasedPanel extends Container3D {\r\n private _columns = 10;\r\n private _rows = 0;\r\n private _rowThenColum = true;\r\n\r\n private _orientation = Container3D.FACEORIGIN_ORIENTATION;\r\n\r\n protected _cellWidth: number;\r\n protected _cellHeight: number;\r\n\r\n /**\r\n * Gets or sets the distance between elements\r\n */\r\n public margin = 0;\r\n\r\n /**\r\n * Gets or sets the orientation to apply to all controls (BABYLON.Container3D.FaceOriginReversedOrientation by default)\r\n * | Value | Type | Description |\r\n * | ----- | ----------------------------------- | ----------- |\r\n * | 0 | UNSET_ORIENTATION | Control rotation will remain unchanged |\r\n * | 1 | FACEORIGIN_ORIENTATION | Control will rotate to make it look at sphere central axis |\r\n * | 2 | FACEORIGINREVERSED_ORIENTATION | Control will rotate to make it look back at sphere central axis |\r\n * | 3 | FACEFORWARD_ORIENTATION | Control will rotate to look at z axis (0, 0, 1) |\r\n * | 4 | FACEFORWARDREVERSED_ORIENTATION | Control will rotate to look at negative z axis (0, 0, -1) |\r\n */\r\n public get orientation(): number {\r\n return this._orientation;\r\n }\r\n\r\n public set orientation(value: number) {\r\n if (this._orientation === value) {\r\n return;\r\n }\r\n\r\n this._orientation = 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 number of columns requested (10 by default).\r\n * The panel will automatically compute the number of rows based on number of child controls.\r\n */\r\n public get columns(): int {\r\n return this._columns;\r\n }\r\n\r\n public set columns(value: int) {\r\n if (this._columns === value) {\r\n return;\r\n }\r\n\r\n this._columns = value;\r\n this._rowThenColum = true;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n /**\r\n * Gets or sets a the number of rows requested.\r\n * The panel will automatically compute the number of columns based on number of child controls.\r\n */\r\n public get rows(): int {\r\n return this._rows;\r\n }\r\n\r\n public set rows(value: int) {\r\n if (this._rows === value) {\r\n return;\r\n }\r\n\r\n this._rows = value;\r\n this._rowThenColum = false;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n /**\r\n * Creates new VolumeBasedPanel\r\n * @param name\r\n */\r\n public constructor(name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _arrangeChildren() {\r\n this._cellWidth = 0;\r\n this._cellHeight = 0;\r\n let rows = 0;\r\n let columns = 0;\r\n let controlCount = 0;\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, Tmp.Matrix[0]);\r\n\r\n const boundingBox = child.mesh.getHierarchyBoundingVectors();\r\n const extendSize = TmpVectors.Vector3[0];\r\n const diff = TmpVectors.Vector3[1];\r\n\r\n boundingBox.max.subtractToRef(boundingBox.min, diff);\r\n\r\n diff.scaleInPlace(0.5);\r\n\r\n Vector3.TransformNormalToRef(diff, currentInverseWorld, extendSize);\r\n\r\n this._cellWidth = Math.max(this._cellWidth, extendSize.x * 2);\r\n this._cellHeight = Math.max(this._cellHeight, extendSize.y * 2);\r\n }\r\n\r\n this._cellWidth += this.margin * 2;\r\n this._cellHeight += this.margin * 2;\r\n\r\n // Arrange\r\n if (this._rowThenColum) {\r\n columns = this._columns;\r\n rows = Math.ceil(controlCount / this._columns);\r\n } else {\r\n rows = this._rows;\r\n columns = Math.ceil(controlCount / this._rows);\r\n }\r\n\r\n const startOffsetX = columns * 0.5 * this._cellWidth;\r\n const startOffsetY = rows * 0.5 * this._cellHeight;\r\n const nodeGrid = [];\r\n let cellCounter = 0;\r\n\r\n if (this._rowThenColum) {\r\n for (let r = 0; r < rows; r++) {\r\n for (let c = 0; c < columns; c++) {\r\n nodeGrid.push(new Vector3(c * this._cellWidth - startOffsetX + this._cellWidth / 2, r * this._cellHeight - startOffsetY + this._cellHeight / 2, 0));\r\n cellCounter++;\r\n if (cellCounter > controlCount) {\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n for (let c = 0; c < columns; c++) {\r\n for (let r = 0; r < rows; r++) {\r\n nodeGrid.push(new Vector3(c * this._cellWidth - startOffsetX + this._cellWidth / 2, r * this._cellHeight - startOffsetY + this._cellHeight / 2, 0));\r\n cellCounter++;\r\n if (cellCounter > controlCount) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n cellCounter = 0;\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n this._mapGridNode(child, nodeGrid[cellCounter]);\r\n\r\n cellCounter++;\r\n }\r\n\r\n this._finalProcessing();\r\n }\r\n\r\n /** Child classes must implement this function to provide correct control positioning */\r\n protected abstract _mapGridNode(control: Control3D, nodePosition: Vector3): void;\r\n\r\n /** Child classes can implement this function to provide additional processing */\r\n protected _finalProcessing() {}\r\n}\r\n"]}
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
import { Scene } from "@babylonjs/core/scene";
|
|
2
|
-
import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
|
|
3
|
-
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
|
|
4
|
-
import { HandleMaterial } from "../materials/handle/handleMaterial";
|
|
5
|
-
import { SlateGizmo } from "./slateGizmo";
|
|
6
|
-
import { BaseSixDofDragBehavior } from "@babylonjs/core/Behaviors/Meshes/baseSixDofDragBehavior";
|
|
7
|
-
/**
|
|
8
|
-
* State of the handle regarding user interaction
|
|
9
|
-
*/
|
|
10
|
-
export declare enum HandleState {
|
|
11
|
-
/**
|
|
12
|
-
* Handle is idle
|
|
13
|
-
*/
|
|
14
|
-
IDLE = 0,
|
|
15
|
-
/**
|
|
16
|
-
* Handle is hovered
|
|
17
|
-
*/
|
|
18
|
-
HOVER = 1,
|
|
19
|
-
/**
|
|
20
|
-
* Handle is dragged
|
|
21
|
-
*/
|
|
22
|
-
DRAG = 2
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Base class for SlateGizmo handles
|
|
26
|
-
*/
|
|
27
|
-
export declare abstract class GizmoHandle {
|
|
28
|
-
protected _scene: Scene;
|
|
29
|
-
protected _state: HandleState;
|
|
30
|
-
protected _materials: HandleMaterial[];
|
|
31
|
-
private _dragStartObserver;
|
|
32
|
-
private _draggingObserver;
|
|
33
|
-
private _dragEndObserver;
|
|
34
|
-
/**
|
|
35
|
-
* @hidden
|
|
36
|
-
*/
|
|
37
|
-
_dragBehavior: BaseSixDofDragBehavior;
|
|
38
|
-
/**
|
|
39
|
-
* The current state of the handle
|
|
40
|
-
*/
|
|
41
|
-
get state(): HandleState;
|
|
42
|
-
private _gizmo;
|
|
43
|
-
/**
|
|
44
|
-
* Returns the gizmo carrying this handle
|
|
45
|
-
*/
|
|
46
|
-
get gizmo(): SlateGizmo;
|
|
47
|
-
/**
|
|
48
|
-
* Sets hover state
|
|
49
|
-
*/
|
|
50
|
-
set hover(value: boolean);
|
|
51
|
-
/**
|
|
52
|
-
* Sets drag state
|
|
53
|
-
*/
|
|
54
|
-
set drag(value: boolean);
|
|
55
|
-
/**
|
|
56
|
-
* Node of this handle
|
|
57
|
-
*/
|
|
58
|
-
node: TransformNode;
|
|
59
|
-
/**
|
|
60
|
-
* Creates a handle for a SlateGizmo
|
|
61
|
-
* @param gizmo associated SlateGizmo
|
|
62
|
-
* @param scene scene
|
|
63
|
-
*/
|
|
64
|
-
constructor(gizmo: SlateGizmo, scene: Scene);
|
|
65
|
-
protected _createMaterial(positionOffset?: Vector3): HandleMaterial;
|
|
66
|
-
private _updateMaterial;
|
|
67
|
-
/**
|
|
68
|
-
* Binds callbacks from dragging interaction
|
|
69
|
-
* @param dragStartFn Function to call on drag start
|
|
70
|
-
* @param dragFn Function to call on drag
|
|
71
|
-
* @param dragEndFn Function to call on drag end
|
|
72
|
-
*/
|
|
73
|
-
setDragBehavior(dragStartFn: (event: {
|
|
74
|
-
position: Vector3;
|
|
75
|
-
}) => void, dragFn: (event: {
|
|
76
|
-
position: Vector3;
|
|
77
|
-
}) => void, dragEndFn: () => void): void;
|
|
78
|
-
/**
|
|
79
|
-
* Creates the meshes and parent node of the handle
|
|
80
|
-
* Should be
|
|
81
|
-
* @returns created node
|
|
82
|
-
*/
|
|
83
|
-
abstract createNode(): TransformNode;
|
|
84
|
-
/**
|
|
85
|
-
* Disposes the handle
|
|
86
|
-
*/
|
|
87
|
-
dispose(): void;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Side handle class that rotates the slate
|
|
91
|
-
*/
|
|
92
|
-
export declare class SideHandle extends GizmoHandle {
|
|
93
|
-
/**
|
|
94
|
-
* Creates the meshes and parent node of the handle
|
|
95
|
-
* @returns created node
|
|
96
|
-
*/
|
|
97
|
-
createNode(): TransformNode;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Corner handle that resizes the slate
|
|
101
|
-
*/
|
|
102
|
-
export declare class CornerHandle extends GizmoHandle {
|
|
103
|
-
/**
|
|
104
|
-
* Creates the meshes and parent node of the handle
|
|
105
|
-
* @returns created node
|
|
106
|
-
*/
|
|
107
|
-
createNode(): TransformNode;
|
|
108
|
-
}
|
|
1
|
+
import type { Scene } from "@babylonjs/core/scene.js";
|
|
2
|
+
import { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
|
|
3
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
+
import { HandleMaterial } from "../materials/handle/handleMaterial";
|
|
5
|
+
import type { SlateGizmo } from "./slateGizmo";
|
|
6
|
+
import { BaseSixDofDragBehavior } from "@babylonjs/core/Behaviors/Meshes/baseSixDofDragBehavior.js";
|
|
7
|
+
/**
|
|
8
|
+
* State of the handle regarding user interaction
|
|
9
|
+
*/
|
|
10
|
+
export declare enum HandleState {
|
|
11
|
+
/**
|
|
12
|
+
* Handle is idle
|
|
13
|
+
*/
|
|
14
|
+
IDLE = 0,
|
|
15
|
+
/**
|
|
16
|
+
* Handle is hovered
|
|
17
|
+
*/
|
|
18
|
+
HOVER = 1,
|
|
19
|
+
/**
|
|
20
|
+
* Handle is dragged
|
|
21
|
+
*/
|
|
22
|
+
DRAG = 2
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Base class for SlateGizmo handles
|
|
26
|
+
*/
|
|
27
|
+
export declare abstract class GizmoHandle {
|
|
28
|
+
protected _scene: Scene;
|
|
29
|
+
protected _state: HandleState;
|
|
30
|
+
protected _materials: HandleMaterial[];
|
|
31
|
+
private _dragStartObserver;
|
|
32
|
+
private _draggingObserver;
|
|
33
|
+
private _dragEndObserver;
|
|
34
|
+
/**
|
|
35
|
+
* @hidden
|
|
36
|
+
*/
|
|
37
|
+
_dragBehavior: BaseSixDofDragBehavior;
|
|
38
|
+
/**
|
|
39
|
+
* The current state of the handle
|
|
40
|
+
*/
|
|
41
|
+
get state(): HandleState;
|
|
42
|
+
private _gizmo;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the gizmo carrying this handle
|
|
45
|
+
*/
|
|
46
|
+
get gizmo(): SlateGizmo;
|
|
47
|
+
/**
|
|
48
|
+
* Sets hover state
|
|
49
|
+
*/
|
|
50
|
+
set hover(value: boolean);
|
|
51
|
+
/**
|
|
52
|
+
* Sets drag state
|
|
53
|
+
*/
|
|
54
|
+
set drag(value: boolean);
|
|
55
|
+
/**
|
|
56
|
+
* Node of this handle
|
|
57
|
+
*/
|
|
58
|
+
node: TransformNode;
|
|
59
|
+
/**
|
|
60
|
+
* Creates a handle for a SlateGizmo
|
|
61
|
+
* @param gizmo associated SlateGizmo
|
|
62
|
+
* @param scene scene
|
|
63
|
+
*/
|
|
64
|
+
constructor(gizmo: SlateGizmo, scene: Scene);
|
|
65
|
+
protected _createMaterial(positionOffset?: Vector3): HandleMaterial;
|
|
66
|
+
private _updateMaterial;
|
|
67
|
+
/**
|
|
68
|
+
* Binds callbacks from dragging interaction
|
|
69
|
+
* @param dragStartFn Function to call on drag start
|
|
70
|
+
* @param dragFn Function to call on drag
|
|
71
|
+
* @param dragEndFn Function to call on drag end
|
|
72
|
+
*/
|
|
73
|
+
setDragBehavior(dragStartFn: (event: {
|
|
74
|
+
position: Vector3;
|
|
75
|
+
}) => void, dragFn: (event: {
|
|
76
|
+
position: Vector3;
|
|
77
|
+
}) => void, dragEndFn: () => void): void;
|
|
78
|
+
/**
|
|
79
|
+
* Creates the meshes and parent node of the handle
|
|
80
|
+
* Should be overridden by child classes
|
|
81
|
+
* @returns created node
|
|
82
|
+
*/
|
|
83
|
+
abstract createNode(): TransformNode;
|
|
84
|
+
/**
|
|
85
|
+
* Disposes the handle
|
|
86
|
+
*/
|
|
87
|
+
dispose(): void;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Side handle class that rotates the slate
|
|
91
|
+
*/
|
|
92
|
+
export declare class SideHandle extends GizmoHandle {
|
|
93
|
+
/**
|
|
94
|
+
* Creates the meshes and parent node of the handle
|
|
95
|
+
* @returns created node
|
|
96
|
+
*/
|
|
97
|
+
createNode(): TransformNode;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Corner handle that resizes the slate
|
|
101
|
+
*/
|
|
102
|
+
export declare class CornerHandle extends GizmoHandle {
|
|
103
|
+
/**
|
|
104
|
+
* Creates the meshes and parent node of the handle
|
|
105
|
+
* @returns created node
|
|
106
|
+
*/
|
|
107
|
+
createNode(): TransformNode;
|
|
108
|
+
}
|