@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
package/2D/controls/multiLine.js
CHANGED
|
@@ -1,263 +1,263 @@
|
|
|
1
|
-
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
3
|
-
import { Control } from "./control
|
|
4
|
-
import { MultiLinePoint } from "../multiLinePoint
|
|
5
|
-
import { RegisterClass } from
|
|
6
|
-
import { serialize } from
|
|
7
|
-
/**
|
|
8
|
-
* Class used to create multi line control
|
|
9
|
-
*/
|
|
10
|
-
var MultiLine = /** @class */ (function (_super) {
|
|
11
|
-
__extends(MultiLine, _super);
|
|
12
|
-
/**
|
|
13
|
-
* Creates a new MultiLine
|
|
14
|
-
* @param name defines the control name
|
|
15
|
-
*/
|
|
16
|
-
function MultiLine(name) {
|
|
17
|
-
var _this = _super.call(this, name) || this;
|
|
18
|
-
_this.name = name;
|
|
19
|
-
_this._lineWidth = 1;
|
|
20
|
-
/** Function called when a point is updated */
|
|
21
|
-
_this.onPointUpdate = function () {
|
|
22
|
-
_this._markAsDirty();
|
|
23
|
-
};
|
|
24
|
-
_this._automaticSize = true;
|
|
25
|
-
_this.isHitTestVisible = false;
|
|
26
|
-
_this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
27
|
-
_this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
|
|
28
|
-
_this._dash = [];
|
|
29
|
-
_this._points = [];
|
|
30
|
-
return _this;
|
|
31
|
-
}
|
|
32
|
-
Object.defineProperty(MultiLine.prototype, "dash", {
|
|
33
|
-
/** Gets or sets dash pattern */
|
|
34
|
-
get: function () {
|
|
35
|
-
return this._dash;
|
|
36
|
-
},
|
|
37
|
-
set: function (value) {
|
|
38
|
-
if (this._dash === value) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
this._dash = value;
|
|
42
|
-
this._markAsDirty();
|
|
43
|
-
},
|
|
44
|
-
enumerable: false,
|
|
45
|
-
configurable: true
|
|
46
|
-
});
|
|
47
|
-
/**
|
|
48
|
-
* Gets point stored at specified index
|
|
49
|
-
* @param index defines the index to look for
|
|
50
|
-
* @returns the requested point if found
|
|
51
|
-
*/
|
|
52
|
-
MultiLine.prototype.getAt = function (index) {
|
|
53
|
-
if (!this._points[index]) {
|
|
54
|
-
this._points[index] = new MultiLinePoint(this);
|
|
55
|
-
}
|
|
56
|
-
return this._points[index];
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Adds new points to the point collection
|
|
60
|
-
* @param items defines the list of items (mesh, control or 2d
|
|
61
|
-
* @returns the list of created MultiLinePoint
|
|
62
|
-
*/
|
|
63
|
-
MultiLine.prototype.add = function () {
|
|
64
|
-
var _this = this;
|
|
65
|
-
var items = [];
|
|
66
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
67
|
-
items[_i] = arguments[_i];
|
|
68
|
-
}
|
|
69
|
-
return items.map(function (item) { return _this.push(item); });
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Adds a new point to the point collection
|
|
73
|
-
* @param item defines the item (mesh, control or 2d
|
|
74
|
-
* @returns the created MultiLinePoint
|
|
75
|
-
*/
|
|
76
|
-
MultiLine.prototype.push = function (item) {
|
|
77
|
-
var point = this.getAt(this._points.length);
|
|
78
|
-
if (item == null) {
|
|
79
|
-
return point;
|
|
80
|
-
}
|
|
81
|
-
if (item instanceof AbstractMesh) {
|
|
82
|
-
point.mesh = item;
|
|
83
|
-
}
|
|
84
|
-
else if (item instanceof Control) {
|
|
85
|
-
point.control = item;
|
|
86
|
-
}
|
|
87
|
-
else if (item.x != null && item.y != null) {
|
|
88
|
-
point.x = item.x;
|
|
89
|
-
point.y = item.y;
|
|
90
|
-
}
|
|
91
|
-
return point;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Remove a specific value or point from the active point collection
|
|
95
|
-
* @param value defines the value or point to remove
|
|
96
|
-
*/
|
|
97
|
-
MultiLine.prototype.remove = function (value) {
|
|
98
|
-
var index;
|
|
99
|
-
if (value instanceof MultiLinePoint) {
|
|
100
|
-
index = this._points.indexOf(value);
|
|
101
|
-
if (index === -1) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
index = value;
|
|
107
|
-
}
|
|
108
|
-
var point = this._points[index];
|
|
109
|
-
if (!point) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
point.dispose();
|
|
113
|
-
this._points.splice(index, 1);
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Resets this object to initial state (no point)
|
|
117
|
-
*/
|
|
118
|
-
MultiLine.prototype.reset = function () {
|
|
119
|
-
while (this._points.length > 0) {
|
|
120
|
-
this.remove(this._points.length - 1);
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
/**
|
|
124
|
-
* Resets all links
|
|
125
|
-
*/
|
|
126
|
-
MultiLine.prototype.resetLinks = function () {
|
|
127
|
-
this._points.forEach(function (point) {
|
|
128
|
-
if (point != null) {
|
|
129
|
-
point.resetLinks();
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
};
|
|
133
|
-
Object.defineProperty(MultiLine.prototype, "lineWidth", {
|
|
134
|
-
/** Gets or sets line width */
|
|
135
|
-
get: function () {
|
|
136
|
-
return this._lineWidth;
|
|
137
|
-
},
|
|
138
|
-
set: function (value) {
|
|
139
|
-
if (this._lineWidth === value) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
this._lineWidth = value;
|
|
143
|
-
this._markAsDirty();
|
|
144
|
-
},
|
|
145
|
-
enumerable: false,
|
|
146
|
-
configurable: true
|
|
147
|
-
});
|
|
148
|
-
Object.defineProperty(MultiLine.prototype, "horizontalAlignment", {
|
|
149
|
-
set: function (value) {
|
|
150
|
-
return;
|
|
151
|
-
},
|
|
152
|
-
enumerable: false,
|
|
153
|
-
configurable: true
|
|
154
|
-
});
|
|
155
|
-
Object.defineProperty(MultiLine.prototype, "verticalAlignment", {
|
|
156
|
-
set: function (value) {
|
|
157
|
-
return;
|
|
158
|
-
},
|
|
159
|
-
enumerable: false,
|
|
160
|
-
configurable: true
|
|
161
|
-
});
|
|
162
|
-
MultiLine.prototype._getTypeName = function () {
|
|
163
|
-
return "MultiLine";
|
|
164
|
-
};
|
|
165
|
-
MultiLine.prototype._draw = function (context
|
|
166
|
-
context.save();
|
|
167
|
-
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
168
|
-
context.shadowColor = this.shadowColor;
|
|
169
|
-
context.shadowBlur = this.shadowBlur;
|
|
170
|
-
context.shadowOffsetX = this.shadowOffsetX;
|
|
171
|
-
context.shadowOffsetY = this.shadowOffsetY;
|
|
172
|
-
}
|
|
173
|
-
this._applyStates(context);
|
|
174
|
-
context.strokeStyle = this.color;
|
|
175
|
-
context.lineWidth = this._lineWidth;
|
|
176
|
-
context.setLineDash(this._dash);
|
|
177
|
-
context.beginPath();
|
|
178
|
-
var first = true; //first index is not necessarily 0
|
|
179
|
-
var previousPoint;
|
|
180
|
-
this._points.forEach(function (point) {
|
|
181
|
-
if (!point) {
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
if (first) {
|
|
185
|
-
context.moveTo(point._point.x, point._point.y);
|
|
186
|
-
first = false;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
if (point._point.z < 1 && previousPoint.z < 1) {
|
|
190
|
-
context.lineTo(point._point.x, point._point.y);
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
context.moveTo(point._point.x, point._point.y);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
previousPoint = point._point;
|
|
197
|
-
});
|
|
198
|
-
context.stroke();
|
|
199
|
-
context.restore();
|
|
200
|
-
};
|
|
201
|
-
MultiLine.prototype._additionalProcessing = function (
|
|
202
|
-
var _this = this;
|
|
203
|
-
this._minX = null;
|
|
204
|
-
this._minY = null;
|
|
205
|
-
this._maxX = null;
|
|
206
|
-
this._maxY = null;
|
|
207
|
-
this._points.forEach(function (point
|
|
208
|
-
if (!point) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
point.translate();
|
|
212
|
-
if (_this._minX == null || point._point.x < _this._minX) {
|
|
213
|
-
_this._minX = point._point.x;
|
|
214
|
-
}
|
|
215
|
-
if (_this._minY == null || point._point.y < _this._minY) {
|
|
216
|
-
_this._minY = point._point.y;
|
|
217
|
-
}
|
|
218
|
-
if (_this._maxX == null || point._point.x > _this._maxX) {
|
|
219
|
-
_this._maxX = point._point.x;
|
|
220
|
-
}
|
|
221
|
-
if (_this._maxY == null || point._point.y > _this._maxY) {
|
|
222
|
-
_this._maxY = point._point.y;
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
if (this._minX == null) {
|
|
226
|
-
this._minX = 0;
|
|
227
|
-
}
|
|
228
|
-
if (this._minY == null) {
|
|
229
|
-
this._minY = 0;
|
|
230
|
-
}
|
|
231
|
-
if (this._maxX == null) {
|
|
232
|
-
this._maxX = 0;
|
|
233
|
-
}
|
|
234
|
-
if (this._maxY == null) {
|
|
235
|
-
this._maxY = 0;
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
MultiLine.prototype._measure = function () {
|
|
239
|
-
if (this._minX == null || this._maxX == null || this._minY == null || this._maxY == null) {
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
this._currentMeasure.width = Math.abs(this._maxX - this._minX) + this._lineWidth;
|
|
243
|
-
this._currentMeasure.height = Math.abs(this._maxY - this._minY) + this._lineWidth;
|
|
244
|
-
};
|
|
245
|
-
MultiLine.prototype._computeAlignment = function (
|
|
246
|
-
if (this._minX == null || this._minY == null) {
|
|
247
|
-
return;
|
|
248
|
-
}
|
|
249
|
-
this._currentMeasure.left = this._minX - this._lineWidth / 2;
|
|
250
|
-
this._currentMeasure.top = this._minY - this._lineWidth / 2;
|
|
251
|
-
};
|
|
252
|
-
MultiLine.prototype.dispose = function () {
|
|
253
|
-
this.reset();
|
|
254
|
-
_super.prototype.dispose.call(this);
|
|
255
|
-
};
|
|
256
|
-
__decorate([
|
|
257
|
-
serialize()
|
|
258
|
-
], MultiLine.prototype, "dash", null);
|
|
259
|
-
return MultiLine;
|
|
260
|
-
}(Control));
|
|
261
|
-
export { MultiLine };
|
|
262
|
-
RegisterClass("BABYLON.GUI.MultiLine", MultiLine);
|
|
1
|
+
import { __decorate, __extends } from "tslib";
|
|
2
|
+
import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
3
|
+
import { Control } from "./control";
|
|
4
|
+
import { MultiLinePoint } from "../multiLinePoint";
|
|
5
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
6
|
+
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
7
|
+
/**
|
|
8
|
+
* Class used to create multi line control
|
|
9
|
+
*/
|
|
10
|
+
var MultiLine = /** @class */ (function (_super) {
|
|
11
|
+
__extends(MultiLine, _super);
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new MultiLine
|
|
14
|
+
* @param name defines the control name
|
|
15
|
+
*/
|
|
16
|
+
function MultiLine(name) {
|
|
17
|
+
var _this = _super.call(this, name) || this;
|
|
18
|
+
_this.name = name;
|
|
19
|
+
_this._lineWidth = 1;
|
|
20
|
+
/** Function called when a point is updated */
|
|
21
|
+
_this.onPointUpdate = function () {
|
|
22
|
+
_this._markAsDirty();
|
|
23
|
+
};
|
|
24
|
+
_this._automaticSize = true;
|
|
25
|
+
_this.isHitTestVisible = false;
|
|
26
|
+
_this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
27
|
+
_this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
|
|
28
|
+
_this._dash = [];
|
|
29
|
+
_this._points = [];
|
|
30
|
+
return _this;
|
|
31
|
+
}
|
|
32
|
+
Object.defineProperty(MultiLine.prototype, "dash", {
|
|
33
|
+
/** Gets or sets dash pattern */
|
|
34
|
+
get: function () {
|
|
35
|
+
return this._dash;
|
|
36
|
+
},
|
|
37
|
+
set: function (value) {
|
|
38
|
+
if (this._dash === value) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this._dash = value;
|
|
42
|
+
this._markAsDirty();
|
|
43
|
+
},
|
|
44
|
+
enumerable: false,
|
|
45
|
+
configurable: true
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* Gets point stored at specified index
|
|
49
|
+
* @param index defines the index to look for
|
|
50
|
+
* @returns the requested point if found
|
|
51
|
+
*/
|
|
52
|
+
MultiLine.prototype.getAt = function (index) {
|
|
53
|
+
if (!this._points[index]) {
|
|
54
|
+
this._points[index] = new MultiLinePoint(this);
|
|
55
|
+
}
|
|
56
|
+
return this._points[index];
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Adds new points to the point collection
|
|
60
|
+
* @param items defines the list of items (mesh, control or 2d coordinates) to add
|
|
61
|
+
* @returns the list of created MultiLinePoint
|
|
62
|
+
*/
|
|
63
|
+
MultiLine.prototype.add = function () {
|
|
64
|
+
var _this = this;
|
|
65
|
+
var items = [];
|
|
66
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
67
|
+
items[_i] = arguments[_i];
|
|
68
|
+
}
|
|
69
|
+
return items.map(function (item) { return _this.push(item); });
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Adds a new point to the point collection
|
|
73
|
+
* @param item defines the item (mesh, control or 2d coordinates) to add
|
|
74
|
+
* @returns the created MultiLinePoint
|
|
75
|
+
*/
|
|
76
|
+
MultiLine.prototype.push = function (item) {
|
|
77
|
+
var point = this.getAt(this._points.length);
|
|
78
|
+
if (item == null) {
|
|
79
|
+
return point;
|
|
80
|
+
}
|
|
81
|
+
if (item instanceof AbstractMesh) {
|
|
82
|
+
point.mesh = item;
|
|
83
|
+
}
|
|
84
|
+
else if (item instanceof Control) {
|
|
85
|
+
point.control = item;
|
|
86
|
+
}
|
|
87
|
+
else if (item.x != null && item.y != null) {
|
|
88
|
+
point.x = item.x;
|
|
89
|
+
point.y = item.y;
|
|
90
|
+
}
|
|
91
|
+
return point;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Remove a specific value or point from the active point collection
|
|
95
|
+
* @param value defines the value or point to remove
|
|
96
|
+
*/
|
|
97
|
+
MultiLine.prototype.remove = function (value) {
|
|
98
|
+
var index;
|
|
99
|
+
if (value instanceof MultiLinePoint) {
|
|
100
|
+
index = this._points.indexOf(value);
|
|
101
|
+
if (index === -1) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
index = value;
|
|
107
|
+
}
|
|
108
|
+
var point = this._points[index];
|
|
109
|
+
if (!point) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
point.dispose();
|
|
113
|
+
this._points.splice(index, 1);
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Resets this object to initial state (no point)
|
|
117
|
+
*/
|
|
118
|
+
MultiLine.prototype.reset = function () {
|
|
119
|
+
while (this._points.length > 0) {
|
|
120
|
+
this.remove(this._points.length - 1);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Resets all links
|
|
125
|
+
*/
|
|
126
|
+
MultiLine.prototype.resetLinks = function () {
|
|
127
|
+
this._points.forEach(function (point) {
|
|
128
|
+
if (point != null) {
|
|
129
|
+
point.resetLinks();
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
Object.defineProperty(MultiLine.prototype, "lineWidth", {
|
|
134
|
+
/** Gets or sets line width */
|
|
135
|
+
get: function () {
|
|
136
|
+
return this._lineWidth;
|
|
137
|
+
},
|
|
138
|
+
set: function (value) {
|
|
139
|
+
if (this._lineWidth === value) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
this._lineWidth = value;
|
|
143
|
+
this._markAsDirty();
|
|
144
|
+
},
|
|
145
|
+
enumerable: false,
|
|
146
|
+
configurable: true
|
|
147
|
+
});
|
|
148
|
+
Object.defineProperty(MultiLine.prototype, "horizontalAlignment", {
|
|
149
|
+
set: function (value) {
|
|
150
|
+
return;
|
|
151
|
+
},
|
|
152
|
+
enumerable: false,
|
|
153
|
+
configurable: true
|
|
154
|
+
});
|
|
155
|
+
Object.defineProperty(MultiLine.prototype, "verticalAlignment", {
|
|
156
|
+
set: function (value) {
|
|
157
|
+
return;
|
|
158
|
+
},
|
|
159
|
+
enumerable: false,
|
|
160
|
+
configurable: true
|
|
161
|
+
});
|
|
162
|
+
MultiLine.prototype._getTypeName = function () {
|
|
163
|
+
return "MultiLine";
|
|
164
|
+
};
|
|
165
|
+
MultiLine.prototype._draw = function (context) {
|
|
166
|
+
context.save();
|
|
167
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
168
|
+
context.shadowColor = this.shadowColor;
|
|
169
|
+
context.shadowBlur = this.shadowBlur;
|
|
170
|
+
context.shadowOffsetX = this.shadowOffsetX;
|
|
171
|
+
context.shadowOffsetY = this.shadowOffsetY;
|
|
172
|
+
}
|
|
173
|
+
this._applyStates(context);
|
|
174
|
+
context.strokeStyle = this.color;
|
|
175
|
+
context.lineWidth = this._lineWidth;
|
|
176
|
+
context.setLineDash(this._dash);
|
|
177
|
+
context.beginPath();
|
|
178
|
+
var first = true; //first index is not necessarily 0
|
|
179
|
+
var previousPoint;
|
|
180
|
+
this._points.forEach(function (point) {
|
|
181
|
+
if (!point) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (first) {
|
|
185
|
+
context.moveTo(point._point.x, point._point.y);
|
|
186
|
+
first = false;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
if (point._point.z < 1 && previousPoint.z < 1) {
|
|
190
|
+
context.lineTo(point._point.x, point._point.y);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
context.moveTo(point._point.x, point._point.y);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
previousPoint = point._point;
|
|
197
|
+
});
|
|
198
|
+
context.stroke();
|
|
199
|
+
context.restore();
|
|
200
|
+
};
|
|
201
|
+
MultiLine.prototype._additionalProcessing = function () {
|
|
202
|
+
var _this = this;
|
|
203
|
+
this._minX = null;
|
|
204
|
+
this._minY = null;
|
|
205
|
+
this._maxX = null;
|
|
206
|
+
this._maxY = null;
|
|
207
|
+
this._points.forEach(function (point) {
|
|
208
|
+
if (!point) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
point.translate();
|
|
212
|
+
if (_this._minX == null || point._point.x < _this._minX) {
|
|
213
|
+
_this._minX = point._point.x;
|
|
214
|
+
}
|
|
215
|
+
if (_this._minY == null || point._point.y < _this._minY) {
|
|
216
|
+
_this._minY = point._point.y;
|
|
217
|
+
}
|
|
218
|
+
if (_this._maxX == null || point._point.x > _this._maxX) {
|
|
219
|
+
_this._maxX = point._point.x;
|
|
220
|
+
}
|
|
221
|
+
if (_this._maxY == null || point._point.y > _this._maxY) {
|
|
222
|
+
_this._maxY = point._point.y;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
if (this._minX == null) {
|
|
226
|
+
this._minX = 0;
|
|
227
|
+
}
|
|
228
|
+
if (this._minY == null) {
|
|
229
|
+
this._minY = 0;
|
|
230
|
+
}
|
|
231
|
+
if (this._maxX == null) {
|
|
232
|
+
this._maxX = 0;
|
|
233
|
+
}
|
|
234
|
+
if (this._maxY == null) {
|
|
235
|
+
this._maxY = 0;
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
MultiLine.prototype._measure = function () {
|
|
239
|
+
if (this._minX == null || this._maxX == null || this._minY == null || this._maxY == null) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
this._currentMeasure.width = Math.abs(this._maxX - this._minX) + this._lineWidth;
|
|
243
|
+
this._currentMeasure.height = Math.abs(this._maxY - this._minY) + this._lineWidth;
|
|
244
|
+
};
|
|
245
|
+
MultiLine.prototype._computeAlignment = function () {
|
|
246
|
+
if (this._minX == null || this._minY == null) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
this._currentMeasure.left = this._minX - this._lineWidth / 2;
|
|
250
|
+
this._currentMeasure.top = this._minY - this._lineWidth / 2;
|
|
251
|
+
};
|
|
252
|
+
MultiLine.prototype.dispose = function () {
|
|
253
|
+
this.reset();
|
|
254
|
+
_super.prototype.dispose.call(this);
|
|
255
|
+
};
|
|
256
|
+
__decorate([
|
|
257
|
+
serialize()
|
|
258
|
+
], MultiLine.prototype, "dash", null);
|
|
259
|
+
return MultiLine;
|
|
260
|
+
}(Control));
|
|
261
|
+
export { MultiLine };
|
|
262
|
+
RegisterClass("BABYLON.GUI.MultiLine", MultiLine);
|
|
263
263
|
//# sourceMappingURL=multiLine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiLine.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/multiLine.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { AbstractMesh } from \"@babylonjs/core/Meshes/abstractMesh\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { MultiLinePoint } from \"../multiLinePoint\";\r\nimport { Measure } from \"../measure\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { Vector3 } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to create multi line control\r\n */\r\nexport class MultiLine extends Control {\r\n\r\n private _lineWidth: number = 1;\r\n private _dash: number[];\r\n private _points: Nullable<MultiLinePoint>[];\r\n\r\n private _minX: Nullable<number>;\r\n private _minY: Nullable<number>;\r\n private _maxX: Nullable<number>;\r\n private _maxY: Nullable<number>;\r\n\r\n /**\r\n * Creates a new MultiLine\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this._automaticSize = true;\r\n this.isHitTestVisible = false;\r\n this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._dash = [];\r\n this._points = [];\r\n }\r\n\r\n /** Gets or sets dash pattern */\r\n @serialize()\r\n public get dash(): Array<number> {\r\n return this._dash;\r\n }\r\n\r\n public set dash(value: Array<number>) {\r\n if (this._dash === value) {\r\n return;\r\n }\r\n\r\n this._dash = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets point stored at specified index\r\n * @param index defines the index to look for\r\n * @returns the requested point if found\r\n */\r\n public getAt(index: number): MultiLinePoint {\r\n if (!this._points[index]) {\r\n this._points[index] = new MultiLinePoint(this);\r\n }\r\n\r\n return this._points[index] as MultiLinePoint;\r\n }\r\n\r\n /** Function called when a point is updated */\r\n public onPointUpdate = (): void => {\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Adds new points to the point collection\r\n * @param items defines the list of items (mesh, control or 2d coordiantes) to add\r\n * @returns the list of created MultiLinePoint\r\n */\r\n public add(...items: (AbstractMesh | Control | { x: string | number, y: string | number })[]): MultiLinePoint[] {\r\n return items.map((item) => this.push(item));\r\n }\r\n\r\n /**\r\n * Adds a new point to the point collection\r\n * @param item defines the item (mesh, control or 2d coordiantes) to add\r\n * @returns the created MultiLinePoint\r\n */\r\n public push(item?: (AbstractMesh | Control | { x: string | number, y: string | number })): MultiLinePoint {\r\n var point: MultiLinePoint = this.getAt(this._points.length);\r\n\r\n if (item == null) { return point; }\r\n\r\n if (item instanceof AbstractMesh) {\r\n point.mesh = item;\r\n }\r\n else if (item instanceof Control) {\r\n point.control = item;\r\n }\r\n else if (item.x != null && item.y != null) {\r\n point.x = item.x;\r\n point.y = item.y;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n /**\r\n * Remove a specific value or point from the active point collection\r\n * @param value defines the value or point to remove\r\n */\r\n public remove(value: number | MultiLinePoint): void {\r\n var index: number;\r\n\r\n if (value instanceof MultiLinePoint) {\r\n index = this._points.indexOf(value);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n }\r\n else {\r\n index = value;\r\n }\r\n\r\n var point: Nullable<MultiLinePoint> = this._points[index];\r\n\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.dispose();\r\n\r\n this._points.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Resets this object to initial state (no point)\r\n */\r\n public reset(): void {\r\n while (this._points.length > 0) {\r\n this.remove(this._points.length - 1);\r\n }\r\n }\r\n\r\n /**\r\n * Resets all links\r\n */\r\n public resetLinks(): void {\r\n this._points.forEach((point) => {\r\n if (point != null) { point.resetLinks(); }\r\n });\r\n }\r\n\r\n /** Gets or sets line width */\r\n public get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n\r\n public set lineWidth(value: number) {\r\n if (this._lineWidth === value) {\r\n return;\r\n }\r\n\r\n this._lineWidth = value;\r\n this._markAsDirty();\r\n }\r\n\r\n public set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n public set verticalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"MultiLine\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Nullable<Measure>): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n this._applyStates(context);\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._lineWidth;\r\n context.setLineDash(this._dash);\r\n\r\n context.beginPath();\r\n\r\n var first: boolean = true; //first index is not necessarily 0\r\n var previousPoint: Vector3;\r\n\r\n this._points.forEach((point) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n if (first) {\r\n context.moveTo(point._point.x, point._point.y);\r\n\r\n first = false;\r\n }\r\n else {\r\n if (point._point.z < 1 && previousPoint.z < 1) {\r\n context.lineTo(point._point.x, point._point.y);\r\n } else {\r\n context.moveTo(point._point.x, point._point.y);\r\n }\r\n }\r\n previousPoint = point._point;\r\n });\r\n\r\n context.stroke();\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n this._minX = null;\r\n this._minY = null;\r\n this._maxX = null;\r\n this._maxY = null;\r\n\r\n this._points.forEach((point, index) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.translate();\r\n\r\n if (this._minX == null || point._point.x < this._minX) { this._minX = point._point.x; }\r\n if (this._minY == null || point._point.y < this._minY) { this._minY = point._point.y; }\r\n if (this._maxX == null || point._point.x > this._maxX) { this._maxX = point._point.x; }\r\n if (this._maxY == null || point._point.y > this._maxY) { this._maxY = point._point.y; }\r\n });\r\n\r\n if (this._minX == null) { this._minX = 0; }\r\n if (this._minY == null) { this._minY = 0; }\r\n if (this._maxX == null) { this._maxX = 0; }\r\n if (this._maxY == null) { this._maxY = 0; }\r\n }\r\n\r\n public _measure(): void {\r\n if (this._minX == null || this._maxX == null || this._minY == null || this._maxY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.width = Math.abs(this._maxX - this._minX) + this._lineWidth;\r\n this._currentMeasure.height = Math.abs(this._maxY - this._minY) + this._lineWidth;\r\n }\r\n\r\n protected _computeAlignment(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n if (this._minX == null || this._minY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.left = this._minX - this._lineWidth / 2;\r\n this._currentMeasure.top = this._minY - this._lineWidth / 2;\r\n }\r\n\r\n public dispose(): void {\r\n this.reset();\r\n\r\n super.dispose();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.MultiLine\", MultiLine);\r\n"]}
|
|
1
|
+
{"version":3,"file":"multiLine.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/multiLine.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { MultiLinePoint } from \"../multiLinePoint\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { Vector3 } from \"core/Maths/math.vector\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to create multi line control\r\n */\r\nexport class MultiLine extends Control {\r\n private _lineWidth: number = 1;\r\n private _dash: number[];\r\n private _points: Nullable<MultiLinePoint>[];\r\n\r\n private _minX: Nullable<number>;\r\n private _minY: Nullable<number>;\r\n private _maxX: Nullable<number>;\r\n private _maxY: Nullable<number>;\r\n\r\n /**\r\n * Creates a new MultiLine\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this._automaticSize = true;\r\n this.isHitTestVisible = false;\r\n this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._dash = [];\r\n this._points = [];\r\n }\r\n\r\n /** Gets or sets dash pattern */\r\n @serialize()\r\n public get dash(): Array<number> {\r\n return this._dash;\r\n }\r\n\r\n public set dash(value: Array<number>) {\r\n if (this._dash === value) {\r\n return;\r\n }\r\n\r\n this._dash = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets point stored at specified index\r\n * @param index defines the index to look for\r\n * @returns the requested point if found\r\n */\r\n public getAt(index: number): MultiLinePoint {\r\n if (!this._points[index]) {\r\n this._points[index] = new MultiLinePoint(this);\r\n }\r\n\r\n return this._points[index] as MultiLinePoint;\r\n }\r\n\r\n /** Function called when a point is updated */\r\n public onPointUpdate = (): void => {\r\n this._markAsDirty();\r\n };\r\n\r\n /**\r\n * Adds new points to the point collection\r\n * @param items defines the list of items (mesh, control or 2d coordinates) to add\r\n * @returns the list of created MultiLinePoint\r\n */\r\n public add(...items: (AbstractMesh | Control | { x: string | number; y: string | number })[]): MultiLinePoint[] {\r\n return items.map((item) => this.push(item));\r\n }\r\n\r\n /**\r\n * Adds a new point to the point collection\r\n * @param item defines the item (mesh, control or 2d coordinates) to add\r\n * @returns the created MultiLinePoint\r\n */\r\n public push(item?: AbstractMesh | Control | { x: string | number; y: string | number }): MultiLinePoint {\r\n const point: MultiLinePoint = this.getAt(this._points.length);\r\n\r\n if (item == null) {\r\n return point;\r\n }\r\n\r\n if (item instanceof AbstractMesh) {\r\n point.mesh = item;\r\n } else if (item instanceof Control) {\r\n point.control = item;\r\n } else if (item.x != null && item.y != null) {\r\n point.x = item.x;\r\n point.y = item.y;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n /**\r\n * Remove a specific value or point from the active point collection\r\n * @param value defines the value or point to remove\r\n */\r\n public remove(value: number | MultiLinePoint): void {\r\n let index: number;\r\n\r\n if (value instanceof MultiLinePoint) {\r\n index = this._points.indexOf(value);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n } else {\r\n index = value;\r\n }\r\n\r\n const point: Nullable<MultiLinePoint> = this._points[index];\r\n\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.dispose();\r\n\r\n this._points.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Resets this object to initial state (no point)\r\n */\r\n public reset(): void {\r\n while (this._points.length > 0) {\r\n this.remove(this._points.length - 1);\r\n }\r\n }\r\n\r\n /**\r\n * Resets all links\r\n */\r\n public resetLinks(): void {\r\n this._points.forEach((point) => {\r\n if (point != null) {\r\n point.resetLinks();\r\n }\r\n });\r\n }\r\n\r\n /** Gets or sets line width */\r\n public get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n\r\n public set lineWidth(value: number) {\r\n if (this._lineWidth === value) {\r\n return;\r\n }\r\n\r\n this._lineWidth = value;\r\n this._markAsDirty();\r\n }\r\n\r\n public set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n public set verticalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"MultiLine\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n this._applyStates(context);\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._lineWidth;\r\n context.setLineDash(this._dash);\r\n\r\n context.beginPath();\r\n\r\n let first: boolean = true; //first index is not necessarily 0\r\n let previousPoint: Vector3;\r\n\r\n this._points.forEach((point) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n if (first) {\r\n context.moveTo(point._point.x, point._point.y);\r\n\r\n first = false;\r\n } else {\r\n if (point._point.z < 1 && previousPoint.z < 1) {\r\n context.lineTo(point._point.x, point._point.y);\r\n } else {\r\n context.moveTo(point._point.x, point._point.y);\r\n }\r\n }\r\n previousPoint = point._point;\r\n });\r\n\r\n context.stroke();\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(): void {\r\n this._minX = null;\r\n this._minY = null;\r\n this._maxX = null;\r\n this._maxY = null;\r\n\r\n this._points.forEach((point) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.translate();\r\n\r\n if (this._minX == null || point._point.x < this._minX) {\r\n this._minX = point._point.x;\r\n }\r\n if (this._minY == null || point._point.y < this._minY) {\r\n this._minY = point._point.y;\r\n }\r\n if (this._maxX == null || point._point.x > this._maxX) {\r\n this._maxX = point._point.x;\r\n }\r\n if (this._maxY == null || point._point.y > this._maxY) {\r\n this._maxY = point._point.y;\r\n }\r\n });\r\n\r\n if (this._minX == null) {\r\n this._minX = 0;\r\n }\r\n if (this._minY == null) {\r\n this._minY = 0;\r\n }\r\n if (this._maxX == null) {\r\n this._maxX = 0;\r\n }\r\n if (this._maxY == null) {\r\n this._maxY = 0;\r\n }\r\n }\r\n\r\n public _measure(): void {\r\n if (this._minX == null || this._maxX == null || this._minY == null || this._maxY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.width = Math.abs(this._maxX - this._minX) + this._lineWidth;\r\n this._currentMeasure.height = Math.abs(this._maxY - this._minY) + this._lineWidth;\r\n }\r\n\r\n protected _computeAlignment(): void {\r\n if (this._minX == null || this._minY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.left = this._minX - this._lineWidth / 2;\r\n this._currentMeasure.top = this._minY - this._lineWidth / 2;\r\n }\r\n\r\n public dispose(): void {\r\n this.reset();\r\n\r\n super.dispose();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.MultiLine\", MultiLine);\r\n"]}
|