@babylonjs/gui 5.0.0-rc.6 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -448
- package/2D/advancedDynamicTexture.js +1318 -1318
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +135 -135
- package/2D/controls/button.js +276 -276
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.d.ts +59 -59
- package/2D/controls/checkbox.js +188 -188
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.d.ts +103 -103
- package/2D/controls/colorpicker.js +1417 -1417
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.d.ts +175 -175
- package/2D/controls/container.js +570 -570
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +866 -866
- package/2D/controls/control.js +2433 -2433
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.d.ts +53 -53
- 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 -59
- package/2D/controls/focusableButton.js +99 -99
- 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 -139
- package/2D/controls/grid.js +529 -529
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.d.ts +204 -204
- package/2D/controls/image.js +887 -887
- 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/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 -201
- package/2D/controls/inputText.js +1119 -1119
- 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 -75
- 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 -182
- package/2D/controls/scrollViewers/scrollViewer.js +677 -677
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -57
- package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -278
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +263 -263
- package/2D/controls/selector.js +692 -692
- package/2D/controls/sliders/baseSlider.d.ts +82 -82
- package/2D/controls/sliders/baseSlider.js +347 -347
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +49 -49
- package/2D/controls/sliders/imageBasedSlider.js +192 -192
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +65 -65
- package/2D/controls/sliders/imageScrollBar.js +263 -263
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +38 -38
- package/2D/controls/sliders/scrollBar.js +143 -143
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.d.ts +35 -35
- package/2D/controls/sliders/slider.js +271 -271
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.d.ts +64 -64
- package/2D/controls/stackPanel.js +246 -246
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.d.ts +6 -6
- package/2D/controls/statics.js +49 -49
- package/2D/controls/textBlock.d.ts +175 -175
- package/2D/controls/textBlock.js +603 -603
- 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/toggleButton.d.ts +117 -117
- package/2D/controls/toggleButton.js +268 -268
- 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 -139
- 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 -226
- 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 -139
- package/3D/controls/container3D.js.map +1 -1
- package/3D/controls/contentDisplay3D.d.ts +30 -30
- package/3D/controls/contentDisplay3D.js +79 -79
- package/3D/controls/contentDisplay3D.js.map +1 -1
- package/3D/controls/control3D.d.ts +201 -201
- package/3D/controls/control3D.js +445 -445
- 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 -49
- package/3D/controls/holographicBackplate.js +120 -120
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.d.ts +84 -84
- package/3D/controls/holographicButton.js +339 -339
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.d.ts +131 -131
- package/3D/controls/holographicSlate.js +431 -431
- 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/meshButton3D.d.ts +21 -21
- package/3D/controls/meshButton3D.js +62 -62
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.d.ts +44 -44
- package/3D/controls/nearMenu.js +114 -114
- 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 -268
- 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/touchButton3D.d.ts +80 -80
- package/3D/controls/touchButton3D.js +233 -233
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +110 -110
- 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 -149
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/controls/touchMeshButton3D.d.ts +21 -21
- package/3D/controls/touchMeshButton3D.js +62 -62
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.d.ts +53 -53
- 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/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 -292
- 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/shaders/fluent.fragment.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.fragment.js +8 -8
- package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.vertex.js +8 -8
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -469
- 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/shaders/fluentBackplate.fragment.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -8
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -8
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
- package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -539
- 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/shaders/fluentButton.fragment.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -8
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -8
- package/3D/materials/fluentMaterial.d.ts +4 -4
- package/3D/materials/fluentMaterial.js +4 -4
- 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/shaders/handle.fragment.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.fragment.js +8 -8
- package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.vertex.js +8 -8
- 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/mrdlBackplateMaterial.d.ts +148 -147
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -436
- 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 -851
- 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 -851
- 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 -8
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -8
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -8
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -8
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -8
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -8
- package/3D/vector3WithInfo.d.ts +16 -16
- package/3D/vector3WithInfo.js +23 -23
- 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/license.md +71 -0
- package/package.json +24 -5
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
|
-
import { ShaderMaterial } from "@babylonjs/core/Materials/shaderMaterial.js";
|
|
3
|
-
import { Color3, TmpColors } from "@babylonjs/core/Maths/math.color.js";
|
|
4
|
-
import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
5
|
-
import "./shaders/handle.vertex.js";
|
|
6
|
-
import "./shaders/handle.fragment.js";
|
|
7
|
-
/**
|
|
8
|
-
* Class used to render gizmo handles with fluent design
|
|
9
|
-
*/
|
|
10
|
-
var HandleMaterial = /** @class */ (function (_super) {
|
|
11
|
-
__extends(HandleMaterial, _super);
|
|
12
|
-
/**
|
|
13
|
-
* Creates a handle material
|
|
14
|
-
* @param name Name of the material
|
|
15
|
-
* @param scene Scene
|
|
16
|
-
*/
|
|
17
|
-
function HandleMaterial(name, scene) {
|
|
18
|
-
var _this = _super.call(this, name, scene, "handle", {
|
|
19
|
-
attributes: ["position"],
|
|
20
|
-
uniforms: ["worldViewProjection", "color", "scale", "positionOffset"],
|
|
21
|
-
needAlphaBlending: false,
|
|
22
|
-
needAlphaTesting: false,
|
|
23
|
-
}) || this;
|
|
24
|
-
_this._hover = false;
|
|
25
|
-
_this._drag = false;
|
|
26
|
-
_this._color = new Color3();
|
|
27
|
-
_this._scale = 1;
|
|
28
|
-
_this._lastTick = -1;
|
|
29
|
-
/**
|
|
30
|
-
* Length of animation
|
|
31
|
-
*/
|
|
32
|
-
_this.animationLength = 100;
|
|
33
|
-
/**
|
|
34
|
-
* Color of the handle when hovered
|
|
35
|
-
*/
|
|
36
|
-
_this.hoverColor = new Color3(0, 0.467, 0.84);
|
|
37
|
-
/**
|
|
38
|
-
* Color of the handle when idle
|
|
39
|
-
*/
|
|
40
|
-
_this.baseColor = new Color3(1, 1, 1);
|
|
41
|
-
/**
|
|
42
|
-
* Scale of the handle when hovered
|
|
43
|
-
*/
|
|
44
|
-
_this.hoverScale = 0.75;
|
|
45
|
-
/**
|
|
46
|
-
* Scale of the handle when idle
|
|
47
|
-
*/
|
|
48
|
-
_this.baseScale = 0.35;
|
|
49
|
-
/**
|
|
50
|
-
* Scale of the handle when dragged
|
|
51
|
-
*/
|
|
52
|
-
_this.dragScale = 0.55;
|
|
53
|
-
/**
|
|
54
|
-
* @hidden
|
|
55
|
-
*/
|
|
56
|
-
_this._positionOffset = Vector3.Zero();
|
|
57
|
-
_this._updateInterpolationTarget();
|
|
58
|
-
// Register callback for scene after render
|
|
59
|
-
_this._lastTick = Date.now();
|
|
60
|
-
_this._onBeforeRender = _this.getScene().onBeforeRenderObservable.add(function () {
|
|
61
|
-
var tick = Date.now();
|
|
62
|
-
var delta = tick - _this._lastTick;
|
|
63
|
-
var scaleDiff = _this._targetScale - _this._scale;
|
|
64
|
-
var colorDiff = TmpColors.Color3[0].copyFrom(_this._targetColor).subtractToRef(_this._color, TmpColors.Color3[0]);
|
|
65
|
-
_this._scale = _this._scale + (scaleDiff * delta) / _this.animationLength;
|
|
66
|
-
colorDiff.scaleToRef(delta / _this.animationLength, colorDiff);
|
|
67
|
-
_this._color.addToRef(colorDiff, _this._color);
|
|
68
|
-
_this.setColor3("color", _this._color);
|
|
69
|
-
_this.setFloat("scale", _this._scale);
|
|
70
|
-
_this.setVector3("positionOffset", _this._positionOffset);
|
|
71
|
-
_this._lastTick = tick;
|
|
72
|
-
});
|
|
73
|
-
return _this;
|
|
74
|
-
}
|
|
75
|
-
Object.defineProperty(HandleMaterial.prototype, "hover", {
|
|
76
|
-
/**
|
|
77
|
-
* Is the material indicating hovering state
|
|
78
|
-
*/
|
|
79
|
-
get: function () {
|
|
80
|
-
return this._hover;
|
|
81
|
-
},
|
|
82
|
-
set: function (b) {
|
|
83
|
-
this._hover = b;
|
|
84
|
-
this._updateInterpolationTarget();
|
|
85
|
-
},
|
|
86
|
-
enumerable: false,
|
|
87
|
-
configurable: true
|
|
88
|
-
});
|
|
89
|
-
Object.defineProperty(HandleMaterial.prototype, "drag", {
|
|
90
|
-
/**
|
|
91
|
-
* Is the material indicating drag state
|
|
92
|
-
*/
|
|
93
|
-
get: function () {
|
|
94
|
-
return this._drag;
|
|
95
|
-
},
|
|
96
|
-
set: function (b) {
|
|
97
|
-
this._drag = b;
|
|
98
|
-
this._updateInterpolationTarget();
|
|
99
|
-
},
|
|
100
|
-
enumerable: false,
|
|
101
|
-
configurable: true
|
|
102
|
-
});
|
|
103
|
-
HandleMaterial.prototype._updateInterpolationTarget = function () {
|
|
104
|
-
if (this.drag) {
|
|
105
|
-
this._targetColor = this.hoverColor;
|
|
106
|
-
this._targetScale = this.dragScale;
|
|
107
|
-
}
|
|
108
|
-
else if (this.hover) {
|
|
109
|
-
this._targetColor = this.hoverColor;
|
|
110
|
-
this._targetScale = this.hoverScale;
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
this._targetColor = this.baseColor;
|
|
114
|
-
this._targetScale = this.baseScale;
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Disposes the handle material
|
|
119
|
-
*/
|
|
120
|
-
HandleMaterial.prototype.dispose = function () {
|
|
121
|
-
_super.prototype.dispose.call(this);
|
|
122
|
-
this.getScene().onBeforeRenderObservable.remove(this._onBeforeRender);
|
|
123
|
-
};
|
|
124
|
-
return HandleMaterial;
|
|
125
|
-
}(ShaderMaterial));
|
|
126
|
-
export { HandleMaterial };
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { ShaderMaterial } from "@babylonjs/core/Materials/shaderMaterial.js";
|
|
3
|
+
import { Color3, TmpColors } from "@babylonjs/core/Maths/math.color.js";
|
|
4
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
5
|
+
import "./shaders/handle.vertex.js";
|
|
6
|
+
import "./shaders/handle.fragment.js";
|
|
7
|
+
/**
|
|
8
|
+
* Class used to render gizmo handles with fluent design
|
|
9
|
+
*/
|
|
10
|
+
var HandleMaterial = /** @class */ (function (_super) {
|
|
11
|
+
__extends(HandleMaterial, _super);
|
|
12
|
+
/**
|
|
13
|
+
* Creates a handle material
|
|
14
|
+
* @param name Name of the material
|
|
15
|
+
* @param scene Scene
|
|
16
|
+
*/
|
|
17
|
+
function HandleMaterial(name, scene) {
|
|
18
|
+
var _this = _super.call(this, name, scene, "handle", {
|
|
19
|
+
attributes: ["position"],
|
|
20
|
+
uniforms: ["worldViewProjection", "color", "scale", "positionOffset"],
|
|
21
|
+
needAlphaBlending: false,
|
|
22
|
+
needAlphaTesting: false,
|
|
23
|
+
}) || this;
|
|
24
|
+
_this._hover = false;
|
|
25
|
+
_this._drag = false;
|
|
26
|
+
_this._color = new Color3();
|
|
27
|
+
_this._scale = 1;
|
|
28
|
+
_this._lastTick = -1;
|
|
29
|
+
/**
|
|
30
|
+
* Length of animation
|
|
31
|
+
*/
|
|
32
|
+
_this.animationLength = 100;
|
|
33
|
+
/**
|
|
34
|
+
* Color of the handle when hovered
|
|
35
|
+
*/
|
|
36
|
+
_this.hoverColor = new Color3(0, 0.467, 0.84);
|
|
37
|
+
/**
|
|
38
|
+
* Color of the handle when idle
|
|
39
|
+
*/
|
|
40
|
+
_this.baseColor = new Color3(1, 1, 1);
|
|
41
|
+
/**
|
|
42
|
+
* Scale of the handle when hovered
|
|
43
|
+
*/
|
|
44
|
+
_this.hoverScale = 0.75;
|
|
45
|
+
/**
|
|
46
|
+
* Scale of the handle when idle
|
|
47
|
+
*/
|
|
48
|
+
_this.baseScale = 0.35;
|
|
49
|
+
/**
|
|
50
|
+
* Scale of the handle when dragged
|
|
51
|
+
*/
|
|
52
|
+
_this.dragScale = 0.55;
|
|
53
|
+
/**
|
|
54
|
+
* @hidden
|
|
55
|
+
*/
|
|
56
|
+
_this._positionOffset = Vector3.Zero();
|
|
57
|
+
_this._updateInterpolationTarget();
|
|
58
|
+
// Register callback for scene after render
|
|
59
|
+
_this._lastTick = Date.now();
|
|
60
|
+
_this._onBeforeRender = _this.getScene().onBeforeRenderObservable.add(function () {
|
|
61
|
+
var tick = Date.now();
|
|
62
|
+
var delta = tick - _this._lastTick;
|
|
63
|
+
var scaleDiff = _this._targetScale - _this._scale;
|
|
64
|
+
var colorDiff = TmpColors.Color3[0].copyFrom(_this._targetColor).subtractToRef(_this._color, TmpColors.Color3[0]);
|
|
65
|
+
_this._scale = _this._scale + (scaleDiff * delta) / _this.animationLength;
|
|
66
|
+
colorDiff.scaleToRef(delta / _this.animationLength, colorDiff);
|
|
67
|
+
_this._color.addToRef(colorDiff, _this._color);
|
|
68
|
+
_this.setColor3("color", _this._color);
|
|
69
|
+
_this.setFloat("scale", _this._scale);
|
|
70
|
+
_this.setVector3("positionOffset", _this._positionOffset);
|
|
71
|
+
_this._lastTick = tick;
|
|
72
|
+
});
|
|
73
|
+
return _this;
|
|
74
|
+
}
|
|
75
|
+
Object.defineProperty(HandleMaterial.prototype, "hover", {
|
|
76
|
+
/**
|
|
77
|
+
* Is the material indicating hovering state
|
|
78
|
+
*/
|
|
79
|
+
get: function () {
|
|
80
|
+
return this._hover;
|
|
81
|
+
},
|
|
82
|
+
set: function (b) {
|
|
83
|
+
this._hover = b;
|
|
84
|
+
this._updateInterpolationTarget();
|
|
85
|
+
},
|
|
86
|
+
enumerable: false,
|
|
87
|
+
configurable: true
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(HandleMaterial.prototype, "drag", {
|
|
90
|
+
/**
|
|
91
|
+
* Is the material indicating drag state
|
|
92
|
+
*/
|
|
93
|
+
get: function () {
|
|
94
|
+
return this._drag;
|
|
95
|
+
},
|
|
96
|
+
set: function (b) {
|
|
97
|
+
this._drag = b;
|
|
98
|
+
this._updateInterpolationTarget();
|
|
99
|
+
},
|
|
100
|
+
enumerable: false,
|
|
101
|
+
configurable: true
|
|
102
|
+
});
|
|
103
|
+
HandleMaterial.prototype._updateInterpolationTarget = function () {
|
|
104
|
+
if (this.drag) {
|
|
105
|
+
this._targetColor = this.hoverColor;
|
|
106
|
+
this._targetScale = this.dragScale;
|
|
107
|
+
}
|
|
108
|
+
else if (this.hover) {
|
|
109
|
+
this._targetColor = this.hoverColor;
|
|
110
|
+
this._targetScale = this.hoverScale;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this._targetColor = this.baseColor;
|
|
114
|
+
this._targetScale = this.baseScale;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Disposes the handle material
|
|
119
|
+
*/
|
|
120
|
+
HandleMaterial.prototype.dispose = function () {
|
|
121
|
+
_super.prototype.dispose.call(this);
|
|
122
|
+
this.getScene().onBeforeRenderObservable.remove(this._onBeforeRender);
|
|
123
|
+
};
|
|
124
|
+
return HandleMaterial;
|
|
125
|
+
}(ShaderMaterial));
|
|
126
|
+
export { HandleMaterial };
|
|
127
127
|
//# sourceMappingURL=handleMaterial.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleMaterial.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/3D/materials/handle/handleMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["import { ShaderMaterial } from \"core/Materials/shaderMaterial\";\r\nimport { Scene } from \"core/scene\";\r\nimport { Nullable } from \"core/types\";\r\nimport { Observer } from \"core/Misc/observable\";\r\nimport { Color3, TmpColors } from \"core/Maths/math.color\";\r\nimport { Vector3 } from \"core/Maths/math.vector\";\r\n\r\nimport \"./shaders/handle.vertex\";\r\nimport \"./shaders/handle.fragment\";\r\n\r\n/**\r\n * Class used to render gizmo handles with fluent design\r\n */\r\nexport class HandleMaterial extends ShaderMaterial {\r\n private _hover: boolean = false;\r\n private _drag: boolean = false;\r\n private _onBeforeRender: Nullable<Observer<Scene>>;\r\n private _color: Color3 = new Color3();\r\n private _scale: number = 1;\r\n private _targetColor: Color3;\r\n private _targetScale: number;\r\n private _lastTick = -1;\r\n\r\n /**\r\n * Is the material indicating hovering state\r\n */\r\n public get hover(): boolean {\r\n return this._hover;\r\n }\r\n\r\n public set hover(b: boolean) {\r\n this._hover = b;\r\n\r\n this._updateInterpolationTarget();\r\n }\r\n\r\n /**\r\n * Is the material indicating drag state\r\n */\r\n public get drag(): boolean {\r\n return this._drag;\r\n }\r\n\r\n public set drag(b: boolean) {\r\n this._drag = b;\r\n\r\n this._updateInterpolationTarget();\r\n }\r\n\r\n /**\r\n * Length of animation\r\n */\r\n public animationLength: number = 100;\r\n\r\n /**\r\n * Color of the handle when hovered\r\n */\r\n public hoverColor: Color3 = new Color3(0, 0.467, 0.84);\r\n\r\n /**\r\n * Color of the handle when idle\r\n */\r\n public baseColor: Color3 = new Color3(1, 1, 1);\r\n\r\n /**\r\n * Scale of the handle when hovered\r\n */\r\n public hoverScale: number = 0.75;\r\n\r\n /**\r\n * Scale of the handle when idle\r\n */\r\n public baseScale: number = 0.35;\r\n\r\n /**\r\n * Scale of the handle when dragged\r\n */\r\n public dragScale: number = 0.55;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _positionOffset: Vector3 = Vector3.Zero();\r\n\r\n /**\r\n * Creates a handle material\r\n * @param name Name of the material\r\n * @param scene Scene\r\n */\r\n constructor(name: string, scene: Scene) {\r\n super(name, scene, \"handle\", {\r\n attributes: [\"position\"],\r\n uniforms: [\"worldViewProjection\", \"color\", \"scale\", \"positionOffset\"],\r\n needAlphaBlending: false,\r\n needAlphaTesting: false,\r\n });\r\n\r\n this._updateInterpolationTarget();\r\n\r\n // Register callback for scene after render\r\n this._lastTick = Date.now();\r\n this._onBeforeRender = this.getScene().onBeforeRenderObservable.add(() => {\r\n const tick = Date.now();\r\n const delta = tick - this._lastTick;\r\n\r\n const scaleDiff = this._targetScale - this._scale;\r\n const colorDiff = TmpColors.Color3[0].copyFrom(this._targetColor).subtractToRef(this._color, TmpColors.Color3[0]);\r\n\r\n this._scale = this._scale + (scaleDiff * delta) / this.animationLength;\r\n colorDiff.scaleToRef(delta / this.animationLength, colorDiff);\r\n this._color.addToRef(colorDiff, this._color);\r\n\r\n this.setColor3(\"color\", this._color);\r\n this.setFloat(\"scale\", this._scale);\r\n this.setVector3(\"positionOffset\", this._positionOffset);\r\n\r\n this._lastTick = tick;\r\n });\r\n }\r\n\r\n private _updateInterpolationTarget() {\r\n if (this.drag) {\r\n this._targetColor = this.hoverColor;\r\n this._targetScale = this.dragScale;\r\n } else if (this.hover) {\r\n this._targetColor = this.hoverColor;\r\n this._targetScale = this.hoverScale;\r\n } else {\r\n this._targetColor = this.baseColor;\r\n this._targetScale = this.baseScale;\r\n }\r\n }\r\n\r\n /**\r\n * Disposes the handle material\r\n */\r\n public dispose() {\r\n super.dispose();\r\n this.getScene().onBeforeRenderObservable.remove(this._onBeforeRender);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"handleMaterial.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/3D/materials/handle/handleMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["import { ShaderMaterial } from \"core/Materials/shaderMaterial\";\r\nimport type { Scene } from \"core/scene\";\r\nimport type { Nullable } from \"core/types\";\r\nimport type { Observer } from \"core/Misc/observable\";\r\nimport { Color3, TmpColors } from \"core/Maths/math.color\";\r\nimport { Vector3 } from \"core/Maths/math.vector\";\r\n\r\nimport \"./shaders/handle.vertex\";\r\nimport \"./shaders/handle.fragment\";\r\n\r\n/**\r\n * Class used to render gizmo handles with fluent design\r\n */\r\nexport class HandleMaterial extends ShaderMaterial {\r\n private _hover: boolean = false;\r\n private _drag: boolean = false;\r\n private _onBeforeRender: Nullable<Observer<Scene>>;\r\n private _color: Color3 = new Color3();\r\n private _scale: number = 1;\r\n private _targetColor: Color3;\r\n private _targetScale: number;\r\n private _lastTick = -1;\r\n\r\n /**\r\n * Is the material indicating hovering state\r\n */\r\n public get hover(): boolean {\r\n return this._hover;\r\n }\r\n\r\n public set hover(b: boolean) {\r\n this._hover = b;\r\n\r\n this._updateInterpolationTarget();\r\n }\r\n\r\n /**\r\n * Is the material indicating drag state\r\n */\r\n public get drag(): boolean {\r\n return this._drag;\r\n }\r\n\r\n public set drag(b: boolean) {\r\n this._drag = b;\r\n\r\n this._updateInterpolationTarget();\r\n }\r\n\r\n /**\r\n * Length of animation\r\n */\r\n public animationLength: number = 100;\r\n\r\n /**\r\n * Color of the handle when hovered\r\n */\r\n public hoverColor: Color3 = new Color3(0, 0.467, 0.84);\r\n\r\n /**\r\n * Color of the handle when idle\r\n */\r\n public baseColor: Color3 = new Color3(1, 1, 1);\r\n\r\n /**\r\n * Scale of the handle when hovered\r\n */\r\n public hoverScale: number = 0.75;\r\n\r\n /**\r\n * Scale of the handle when idle\r\n */\r\n public baseScale: number = 0.35;\r\n\r\n /**\r\n * Scale of the handle when dragged\r\n */\r\n public dragScale: number = 0.55;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _positionOffset: Vector3 = Vector3.Zero();\r\n\r\n /**\r\n * Creates a handle material\r\n * @param name Name of the material\r\n * @param scene Scene\r\n */\r\n constructor(name: string, scene: Scene) {\r\n super(name, scene, \"handle\", {\r\n attributes: [\"position\"],\r\n uniforms: [\"worldViewProjection\", \"color\", \"scale\", \"positionOffset\"],\r\n needAlphaBlending: false,\r\n needAlphaTesting: false,\r\n });\r\n\r\n this._updateInterpolationTarget();\r\n\r\n // Register callback for scene after render\r\n this._lastTick = Date.now();\r\n this._onBeforeRender = this.getScene().onBeforeRenderObservable.add(() => {\r\n const tick = Date.now();\r\n const delta = tick - this._lastTick;\r\n\r\n const scaleDiff = this._targetScale - this._scale;\r\n const colorDiff = TmpColors.Color3[0].copyFrom(this._targetColor).subtractToRef(this._color, TmpColors.Color3[0]);\r\n\r\n this._scale = this._scale + (scaleDiff * delta) / this.animationLength;\r\n colorDiff.scaleToRef(delta / this.animationLength, colorDiff);\r\n this._color.addToRef(colorDiff, this._color);\r\n\r\n this.setColor3(\"color\", this._color);\r\n this.setFloat(\"scale\", this._scale);\r\n this.setVector3(\"positionOffset\", this._positionOffset);\r\n\r\n this._lastTick = tick;\r\n });\r\n }\r\n\r\n private _updateInterpolationTarget() {\r\n if (this.drag) {\r\n this._targetColor = this.hoverColor;\r\n this._targetScale = this.dragScale;\r\n } else if (this.hover) {\r\n this._targetColor = this.hoverColor;\r\n this._targetScale = this.hoverScale;\r\n } else {\r\n this._targetColor = this.baseColor;\r\n this._targetScale = this.baseScale;\r\n }\r\n }\r\n\r\n /**\r\n * Disposes the handle material\r\n */\r\n public dispose() {\r\n super.dispose();\r\n this.getScene().onBeforeRenderObservable.remove(this._onBeforeRender);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./handleMaterial";
|
|
1
|
+
export * from "./handleMaterial";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./handleMaterial.js";
|
|
1
|
+
export * from "./handleMaterial.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** @hidden */
|
|
2
|
-
export declare const handlePixelShader: {
|
|
3
|
-
name: string;
|
|
4
|
-
shader: string;
|
|
5
|
-
};
|
|
1
|
+
/** @hidden */
|
|
2
|
+
export declare const handlePixelShader: {
|
|
3
|
+
name: string;
|
|
4
|
+
shader: string;
|
|
5
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
// Do not edit.
|
|
2
|
-
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
3
|
-
var name = "handlePixelShader";
|
|
4
|
-
var shader = "uniform vec3 color;\nvoid main(void) {\ngl_FragColor=vec4(color,1.0);\n}";
|
|
5
|
-
// Sideeffect
|
|
6
|
-
ShaderStore.ShadersStore[name] = shader;
|
|
7
|
-
/** @hidden */
|
|
8
|
-
export var handlePixelShader = { name: name, shader: shader };
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
3
|
+
var name = "handlePixelShader";
|
|
4
|
+
var shader = "uniform vec3 color;\nvoid main(void) {\ngl_FragColor=vec4(color,1.0);\n}";
|
|
5
|
+
// Sideeffect
|
|
6
|
+
ShaderStore.ShadersStore[name] = shader;
|
|
7
|
+
/** @hidden */
|
|
8
|
+
export var handlePixelShader = { name: name, shader: shader };
|
|
9
9
|
//# sourceMappingURL=handle.fragment.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** @hidden */
|
|
2
|
-
export declare const handleVertexShader: {
|
|
3
|
-
name: string;
|
|
4
|
-
shader: string;
|
|
5
|
-
};
|
|
1
|
+
/** @hidden */
|
|
2
|
+
export declare const handleVertexShader: {
|
|
3
|
+
name: string;
|
|
4
|
+
shader: string;
|
|
5
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
// Do not edit.
|
|
2
|
-
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
3
|
-
var name = "handleVertexShader";
|
|
4
|
-
var shader = "precision highp float;\nattribute vec3 position;\nuniform vec3 positionOffset;\nuniform mat4 worldViewProjection;\nuniform float scale;\nvoid main(void) {\nvec4 vPos=vec4((vec3(position)+positionOffset)*scale,1.0);\ngl_Position=worldViewProjection*vPos;\n}";
|
|
5
|
-
// Sideeffect
|
|
6
|
-
ShaderStore.ShadersStore[name] = shader;
|
|
7
|
-
/** @hidden */
|
|
8
|
-
export var handleVertexShader = { name: name, shader: shader };
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
3
|
+
var name = "handleVertexShader";
|
|
4
|
+
var shader = "precision highp float;\nattribute vec3 position;\nuniform vec3 positionOffset;\nuniform mat4 worldViewProjection;\nuniform float scale;\nvoid main(void) {\nvec4 vPos=vec4((vec3(position)+positionOffset)*scale,1.0);\ngl_Position=worldViewProjection*vPos;\n}";
|
|
5
|
+
// Sideeffect
|
|
6
|
+
ShaderStore.ShadersStore[name] = shader;
|
|
7
|
+
/** @hidden */
|
|
8
|
+
export var handleVertexShader = { name: name, shader: shader };
|
|
9
9
|
//# sourceMappingURL=handle.vertex.js.map
|
package/3D/materials/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from "./fluent/index";
|
|
2
|
-
export * from "./fluentButton/index";
|
|
3
|
-
export * from "./fluentBackplate/index";
|
|
4
|
-
export * from "./handle/index";
|
|
5
|
-
export * from "./mrdl/index";
|
|
1
|
+
export * from "./fluent/index";
|
|
2
|
+
export * from "./fluentButton/index";
|
|
3
|
+
export * from "./fluentBackplate/index";
|
|
4
|
+
export * from "./handle/index";
|
|
5
|
+
export * from "./mrdl/index";
|
package/3D/materials/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
1
|
+
/* eslint-disable import/no-internal-modules */
|
|
2
|
+
export * from "./fluent/index.js";
|
|
3
|
+
export * from "./fluentButton/index.js";
|
|
4
|
+
export * from "./fluentBackplate/index.js";
|
|
5
|
+
export * from "./handle/index.js";
|
|
6
|
+
export * from "./mrdl/index.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/materials/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/materials/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nexport * from \"./fluent/index\";\r\nexport * from \"./fluentButton/index\";\r\nexport * from \"./fluentBackplate/index\";\r\nexport * from \"./handle/index\";\r\nexport * from \"./mrdl/index\";\r\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from "./mrdlSliderBarMaterial";
|
|
2
|
-
export * from "./mrdlSliderThumbMaterial";
|
|
3
|
-
export * from "./mrdlBackplateMaterial";
|
|
1
|
+
export * from "./mrdlSliderBarMaterial";
|
|
2
|
+
export * from "./mrdlSliderThumbMaterial";
|
|
3
|
+
export * from "./mrdlBackplateMaterial";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./mrdlSliderBarMaterial.js";
|
|
2
|
-
export * from "./mrdlSliderThumbMaterial.js";
|
|
3
|
-
export * from "./mrdlBackplateMaterial.js";
|
|
1
|
+
export * from "./mrdlSliderBarMaterial.js";
|
|
2
|
+
export * from "./mrdlSliderThumbMaterial.js";
|
|
3
|
+
export * from "./mrdlBackplateMaterial.js";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|