@babylonjs/gui 9.13.0 → 9.15.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/FrameGraph/pure.d.ts +2 -0
- package/2D/FrameGraph/pure.js +3 -0
- package/2D/FrameGraph/pure.js.map +1 -0
- package/2D/FrameGraph/renderGraphGUIBlock.d.ts +3 -41
- package/2D/FrameGraph/renderGraphGUIBlock.js +5 -64
- package/2D/FrameGraph/renderGraphGUIBlock.js.map +1 -1
- package/2D/FrameGraph/renderGraphGUIBlock.pure.d.ts +48 -0
- package/2D/FrameGraph/renderGraphGUIBlock.pure.js +78 -0
- package/2D/FrameGraph/renderGraphGUIBlock.pure.js.map +1 -0
- package/2D/advancedDynamicTexture.d.ts +2 -2
- package/2D/advancedDynamicTexture.js +2 -2
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +3 -107
- package/2D/controls/button.js +5 -243
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/button.pure.d.ts +114 -0
- package/2D/controls/button.pure.js +257 -0
- package/2D/controls/button.pure.js.map +1 -0
- package/2D/controls/checkbox.d.ts +3 -51
- package/2D/controls/checkbox.js +5 -161
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/checkbox.pure.d.ts +58 -0
- package/2D/controls/checkbox.pure.js +175 -0
- package/2D/controls/checkbox.pure.js.map +1 -0
- package/2D/controls/colorpicker.d.ts +5 -101
- package/2D/controls/colorpicker.js +7 -1394
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/colorpicker.pure.d.ts +106 -0
- package/2D/controls/colorpicker.pure.js +1406 -0
- package/2D/controls/colorpicker.pure.js.map +1 -0
- package/2D/controls/container.d.ts +3 -177
- package/2D/controls/container.js +5 -615
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/container.pure.d.ts +184 -0
- package/2D/controls/container.pure.js +629 -0
- package/2D/controls/container.pure.js.map +1 -0
- package/2D/controls/control.d.ts +3 -944
- package/2D/controls/control.js +5 -2457
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/control.pure.d.ts +951 -0
- package/2D/controls/control.pure.js +2471 -0
- package/2D/controls/control.pure.js.map +1 -0
- package/2D/controls/displayGrid.d.ts +5 -53
- package/2D/controls/displayGrid.js +7 -201
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/displayGrid.pure.d.ts +58 -0
- package/2D/controls/displayGrid.pure.js +213 -0
- package/2D/controls/displayGrid.pure.js.map +1 -0
- package/2D/controls/ellipse.d.ts +5 -25
- package/2D/controls/ellipse.js +7 -92
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/ellipse.pure.d.ts +30 -0
- package/2D/controls/ellipse.pure.js +104 -0
- package/2D/controls/ellipse.pure.js.map +1 -0
- package/2D/controls/focusableButton.d.ts +3 -15
- package/2D/controls/focusableButton.js +5 -22
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/focusableButton.pure.d.ts +22 -0
- package/2D/controls/focusableButton.pure.js +36 -0
- package/2D/controls/focusableButton.pure.js.map +1 -0
- package/2D/controls/gradient/LinearGradient.d.ts +3 -43
- package/2D/controls/gradient/LinearGradient.js +5 -70
- package/2D/controls/gradient/LinearGradient.js.map +1 -1
- package/2D/controls/gradient/LinearGradient.pure.d.ts +50 -0
- package/2D/controls/gradient/LinearGradient.pure.js +84 -0
- package/2D/controls/gradient/LinearGradient.pure.js.map +1 -0
- package/2D/controls/gradient/RadialGradient.d.ts +3 -51
- package/2D/controls/gradient/RadialGradient.js +5 -86
- package/2D/controls/gradient/RadialGradient.js.map +1 -1
- package/2D/controls/gradient/RadialGradient.pure.d.ts +58 -0
- package/2D/controls/gradient/RadialGradient.pure.js +100 -0
- package/2D/controls/gradient/RadialGradient.pure.js.map +1 -0
- package/2D/controls/gradient/pure.d.ts +3 -0
- package/2D/controls/gradient/pure.js +4 -0
- package/2D/controls/gradient/pure.js.map +1 -0
- package/2D/controls/grid.d.ts +3 -149
- package/2D/controls/grid.js +5 -525
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/grid.pure.d.ts +156 -0
- package/2D/controls/grid.pure.js +539 -0
- package/2D/controls/grid.pure.js.map +1 -0
- package/2D/controls/image.d.ts +3 -226
- package/2D/controls/image.js +5 -913
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/image.pure.d.ts +233 -0
- package/2D/controls/image.pure.js +927 -0
- package/2D/controls/image.pure.js.map +1 -0
- package/2D/controls/inputPassword.d.ts +3 -7
- package/2D/controls/inputPassword.js +5 -19
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputPassword.pure.d.ts +14 -0
- package/2D/controls/inputPassword.pure.js +33 -0
- package/2D/controls/inputPassword.pure.js.map +1 -0
- package/2D/controls/inputText.d.ts +3 -202
- package/2D/controls/inputText.js +5 -1050
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/inputText.pure.d.ts +209 -0
- package/2D/controls/inputText.pure.js +1064 -0
- package/2D/controls/inputText.pure.js.map +1 -0
- package/2D/controls/inputTextArea.d.ts +3 -140
- package/2D/controls/inputTextArea.js +5 -1023
- package/2D/controls/inputTextArea.js.map +1 -1
- package/2D/controls/inputTextArea.pure.d.ts +147 -0
- package/2D/controls/inputTextArea.pure.js +1037 -0
- package/2D/controls/inputTextArea.pure.js.map +1 -0
- package/2D/controls/line.d.ts +5 -74
- package/2D/controls/line.js +7 -234
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/line.pure.d.ts +79 -0
- package/2D/controls/line.pure.js +246 -0
- package/2D/controls/line.pure.js.map +1 -0
- package/2D/controls/multiLine.d.ts +3 -73
- package/2D/controls/multiLine.js +5 -234
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/multiLine.pure.d.ts +80 -0
- package/2D/controls/multiLine.pure.js +248 -0
- package/2D/controls/multiLine.pure.js.map +1 -0
- package/2D/controls/pure.d.ts +38 -0
- package/2D/controls/pure.js +39 -0
- package/2D/controls/pure.js.map +1 -0
- package/2D/controls/radioButton.d.ts +3 -47
- package/2D/controls/radioButton.js +5 -182
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/radioButton.pure.d.ts +54 -0
- package/2D/controls/radioButton.pure.js +196 -0
- package/2D/controls/radioButton.pure.js.map +1 -0
- package/2D/controls/rectangle.d.ts +5 -43
- package/2D/controls/rectangle.js +7 -205
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/rectangle.pure.d.ts +48 -0
- package/2D/controls/rectangle.pure.js +217 -0
- package/2D/controls/rectangle.pure.js.map +1 -0
- package/2D/controls/scrollViewers/pure.d.ts +2 -0
- package/2D/controls/scrollViewers/pure.js +3 -0
- package/2D/controls/scrollViewers/pure.js.map +1 -0
- package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -176
- package/2D/controls/scrollViewers/scrollViewer.js +5 -584
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.pure.d.ts +183 -0
- package/2D/controls/scrollViewers/scrollViewer.pure.js +598 -0
- package/2D/controls/scrollViewers/scrollViewer.pure.js.map +1 -0
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.js +2 -2
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +2 -2
- package/2D/controls/selector.js +8 -8
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +1 -1
- package/2D/controls/sliders/baseSlider.js +1 -1
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +3 -45
- package/2D/controls/sliders/imageBasedSlider.js +5 -165
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.pure.d.ts +52 -0
- package/2D/controls/sliders/imageBasedSlider.pure.js +179 -0
- package/2D/controls/sliders/imageBasedSlider.pure.js.map +1 -0
- package/2D/controls/sliders/pure.d.ts +4 -0
- package/2D/controls/sliders/pure.js +5 -0
- package/2D/controls/sliders/pure.js.map +1 -0
- package/2D/controls/sliders/scrollBar.d.ts +3 -48
- package/2D/controls/sliders/scrollBar.js +5 -170
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.pure.d.ts +55 -0
- package/2D/controls/sliders/scrollBar.pure.js +184 -0
- package/2D/controls/sliders/scrollBar.pure.js.map +1 -0
- package/2D/controls/sliders/slider.d.ts +3 -44
- package/2D/controls/sliders/slider.js +5 -278
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/sliders/slider.pure.d.ts +51 -0
- package/2D/controls/sliders/slider.pure.js +292 -0
- package/2D/controls/sliders/slider.pure.js.map +1 -0
- package/2D/controls/stackPanel.d.ts +3 -62
- package/2D/controls/stackPanel.js +5 -243
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/stackPanel.pure.d.ts +69 -0
- package/2D/controls/stackPanel.pure.js +257 -0
- package/2D/controls/stackPanel.pure.js.map +1 -0
- package/2D/controls/statics.d.ts +3 -4
- package/2D/controls/statics.js +5 -47
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/statics.pure.d.ts +11 -0
- package/2D/controls/statics.pure.js +61 -0
- package/2D/controls/statics.pure.js.map +1 -0
- package/2D/controls/textBlock.d.ts +3 -217
- package/2D/controls/textBlock.js +5 -676
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textBlock.pure.d.ts +224 -0
- package/2D/controls/textBlock.pure.js +690 -0
- package/2D/controls/textBlock.pure.js.map +1 -0
- package/2D/controls/toggleButton.d.ts +3 -91
- package/2D/controls/toggleButton.js +5 -226
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/toggleButton.pure.d.ts +98 -0
- package/2D/controls/toggleButton.pure.js +240 -0
- package/2D/controls/toggleButton.pure.js.map +1 -0
- package/2D/controls/virtualKeyboard.d.ts +3 -100
- package/2D/controls/virtualKeyboard.js +5 -272
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/controls/virtualKeyboard.pure.d.ts +107 -0
- package/2D/controls/virtualKeyboard.pure.js +286 -0
- package/2D/controls/virtualKeyboard.pure.js.map +1 -0
- package/2D/math2D.d.ts +1 -1
- package/2D/math2D.js +1 -1
- package/2D/math2D.js.map +1 -1
- package/2D/measure.js +1 -1
- package/2D/measure.js.map +1 -1
- package/2D/pure.d.ts +13 -0
- package/2D/pure.js +15 -0
- package/2D/pure.js.map +1 -0
- package/3D/controls/MRTK3/touchHolographicButton.d.ts +4 -4
- package/3D/controls/MRTK3/touchHolographicButton.js +10 -10
- package/3D/controls/MRTK3/touchHolographicButton.js.map +1 -1
- package/3D/controls/holographicBackplate.d.ts +1 -1
- package/3D/controls/holographicBackplate.js +1 -1
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.d.ts +1 -1
- package/3D/controls/holographicButton.js +4 -4
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.js +4 -4
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/pure.d.ts +23 -0
- package/3D/controls/pure.js +24 -0
- package/3D/controls/pure.js.map +1 -0
- package/3D/controls/slider3D.d.ts +3 -3
- package/3D/controls/slider3D.js +3 -3
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +2 -2
- package/3D/controls/touchHolographicButton.js +5 -5
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.js +1 -1
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +1 -1
- package/3D/gizmos/gizmoHandle.js +1 -1
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/pure.d.ts +3 -0
- package/3D/gizmos/pure.js +4 -0
- package/3D/gizmos/pure.js.map +1 -0
- package/3D/materials/fluent/fluentMaterial.d.ts +5 -100
- package/3D/materials/fluent/fluentMaterial.js +7 -305
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.pure.d.ts +105 -0
- package/3D/materials/fluent/fluentMaterial.pure.js +320 -0
- package/3D/materials/fluent/fluentMaterial.pure.js.map +1 -0
- package/3D/materials/fluent/pure.d.ts +2 -0
- package/3D/materials/fluent/pure.js +3 -0
- package/3D/materials/fluent/pure.js.map +1 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +5 -164
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +7 -488
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.d.ts +169 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js +503 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js.map +1 -0
- package/3D/materials/fluentBackplate/pure.d.ts +2 -0
- package/3D/materials/fluentBackplate/pure.js +3 -0
- package/3D/materials/fluentBackplate/pure.js.map +1 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +5 -200
- package/3D/materials/fluentButton/fluentButtonMaterial.js +7 -563
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.d.ts +205 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.js +578 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.js.map +1 -0
- package/3D/materials/fluentButton/pure.d.ts +2 -0
- package/3D/materials/fluentButton/pure.js +3 -0
- package/3D/materials/fluentButton/pure.js.map +1 -0
- package/3D/materials/fluentMaterial.d.ts +1 -1
- package/3D/materials/fluentMaterial.js +1 -1
- package/3D/materials/fluentMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +5 -66
- package/3D/materials/handle/handleMaterial.js +5 -118
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.pure.d.ts +66 -0
- package/3D/materials/handle/handleMaterial.pure.js +121 -0
- package/3D/materials/handle/handleMaterial.pure.js.map +1 -0
- package/3D/materials/handle/pure.d.ts +2 -0
- package/3D/materials/handle/pure.js +3 -0
- package/3D/materials/handle/pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.d.ts +5 -85
- package/3D/materials/mrdl/mrdlBackglowMaterial.js +7 -299
- package/3D/materials/mrdl/mrdlBackglowMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.d.ts +90 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js +314 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +5 -145
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +7 -433
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.d.ts +157 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js +455 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.d.ts +5 -183
- package/3D/materials/mrdl/mrdlFrontplateMaterial.js +7 -532
- package/3D/materials/mrdl/mrdlFrontplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.d.ts +188 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js +547 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.d.ts +5 -54
- package/3D/materials/mrdl/mrdlInnerquadMaterial.js +7 -227
- package/3D/materials/mrdl/mrdlInnerquadMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.d.ts +59 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js +242 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +5 -334
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +7 -855
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.d.ts +346 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js +877 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +5 -334
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +7 -855
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.d.ts +346 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js +877 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/pure.d.ts +7 -0
- package/3D/materials/mrdl/pure.js +8 -0
- package/3D/materials/mrdl/pure.js.map +1 -0
- package/3D/materials/pure.d.ts +6 -0
- package/3D/materials/pure.js +8 -0
- package/3D/materials/pure.js.map +1 -0
- package/3D/pure.d.ts +6 -0
- package/3D/pure.js +8 -0
- package/3D/pure.js.map +1 -0
- package/package.json +50 -3
- package/pure.d.ts +3 -0
- package/pure.js +5 -0
- package/pure.js.map +1 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector.pure.js";
|
|
2
|
+
import { type Scene } from "@babylonjs/core/scene.js";
|
|
3
|
+
import { Control } from "./control.pure.js";
|
|
4
|
+
import { ValueAndUnit } from "../valueAndUnit.js";
|
|
5
|
+
import { type Measure } from "../measure.js";
|
|
6
|
+
import { type ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
7
|
+
/** Class used to render 2D lines */
|
|
8
|
+
export declare class Line extends Control {
|
|
9
|
+
name?: string | undefined;
|
|
10
|
+
private _lineWidth;
|
|
11
|
+
/** @internal */
|
|
12
|
+
_x1: ValueAndUnit;
|
|
13
|
+
/** @internal */
|
|
14
|
+
_y1: ValueAndUnit;
|
|
15
|
+
/** @internal */
|
|
16
|
+
_x2: ValueAndUnit;
|
|
17
|
+
/** @internal */
|
|
18
|
+
_y2: ValueAndUnit;
|
|
19
|
+
private _dash;
|
|
20
|
+
private _connectedControl;
|
|
21
|
+
private _connectedControlDirtyObserver;
|
|
22
|
+
/** Gets or sets the dash pattern */
|
|
23
|
+
get dash(): Array<number>;
|
|
24
|
+
set dash(value: Array<number>);
|
|
25
|
+
/** Gets or sets the control connected with the line end */
|
|
26
|
+
get connectedControl(): Control;
|
|
27
|
+
set connectedControl(value: Control);
|
|
28
|
+
/** Gets or sets start coordinates on X axis */
|
|
29
|
+
get x1(): string | number;
|
|
30
|
+
set x1(value: string | number);
|
|
31
|
+
/** Gets or sets start coordinates on Y axis */
|
|
32
|
+
get y1(): string | number;
|
|
33
|
+
set y1(value: string | number);
|
|
34
|
+
/** Gets or sets end coordinates on X axis */
|
|
35
|
+
get x2(): string | number;
|
|
36
|
+
set x2(value: string | number);
|
|
37
|
+
/** Gets or sets end coordinates on Y axis */
|
|
38
|
+
get y2(): string | number;
|
|
39
|
+
set y2(value: string | number);
|
|
40
|
+
/** Gets or sets line width */
|
|
41
|
+
get lineWidth(): number;
|
|
42
|
+
set lineWidth(value: number);
|
|
43
|
+
/** Gets or sets horizontal alignment */
|
|
44
|
+
set horizontalAlignment(value: number);
|
|
45
|
+
/** Gets or sets vertical alignment */
|
|
46
|
+
set verticalAlignment(value: number);
|
|
47
|
+
/** @internal */
|
|
48
|
+
get _effectiveX2(): number;
|
|
49
|
+
/** @internal */
|
|
50
|
+
get _effectiveY2(): number;
|
|
51
|
+
/**
|
|
52
|
+
* Creates a new Line
|
|
53
|
+
* @param name defines the control name
|
|
54
|
+
*/
|
|
55
|
+
constructor(name?: string | undefined);
|
|
56
|
+
protected _getTypeName(): string;
|
|
57
|
+
_draw(context: ICanvasRenderingContext): void;
|
|
58
|
+
_measure(): void;
|
|
59
|
+
_layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean;
|
|
60
|
+
protected _computeAlignment(parentMeasure: Measure): void;
|
|
61
|
+
/**
|
|
62
|
+
* Move one end of the line given 3D cartesian coordinates.
|
|
63
|
+
* @param position Targeted world position
|
|
64
|
+
* @param scene Scene
|
|
65
|
+
* @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
|
|
66
|
+
*/
|
|
67
|
+
moveToVector3(position: Vector3, scene: Scene, end?: boolean): void;
|
|
68
|
+
/**
|
|
69
|
+
* Move one end of the line to a position in screen absolute space.
|
|
70
|
+
* @param projectedPosition Position in screen absolute space (X, Y)
|
|
71
|
+
* @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
|
|
72
|
+
*/
|
|
73
|
+
_moveToProjectedPosition(projectedPosition: Vector3, end?: boolean): void;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Registers the Line class with the type store for serialization support.
|
|
77
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
78
|
+
*/
|
|
79
|
+
export declare function RegisterLine(): void;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
+
import { Vector3, Matrix } from "@babylonjs/core/Maths/math.vector.pure.js";
|
|
3
|
+
import { Tools } from "@babylonjs/core/Misc/tools.pure.js";
|
|
4
|
+
import { Control } from "./control.pure.js";
|
|
5
|
+
import { ValueAndUnit } from "../valueAndUnit.js";
|
|
6
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
7
|
+
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
8
|
+
/** Class used to render 2D lines */
|
|
9
|
+
export class Line extends Control {
|
|
10
|
+
/** Gets or sets the dash pattern */
|
|
11
|
+
get dash() {
|
|
12
|
+
return this._dash;
|
|
13
|
+
}
|
|
14
|
+
set dash(value) {
|
|
15
|
+
if (this._dash === value) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this._dash = value;
|
|
19
|
+
this._markAsDirty();
|
|
20
|
+
}
|
|
21
|
+
/** Gets or sets the control connected with the line end */
|
|
22
|
+
get connectedControl() {
|
|
23
|
+
return this._connectedControl;
|
|
24
|
+
}
|
|
25
|
+
set connectedControl(value) {
|
|
26
|
+
// Don't allow circular references, and no-op if the same control is assigned
|
|
27
|
+
if (this._connectedControl === value || (value instanceof Line && value._connectedControl === this)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (this._connectedControlDirtyObserver && this._connectedControl) {
|
|
31
|
+
this._connectedControl.onDirtyObservable.remove(this._connectedControlDirtyObserver);
|
|
32
|
+
this._connectedControlDirtyObserver = null;
|
|
33
|
+
}
|
|
34
|
+
if (value) {
|
|
35
|
+
this._connectedControlDirtyObserver = value.onDirtyObservable.add(() => this._markAsDirty());
|
|
36
|
+
}
|
|
37
|
+
this._connectedControl = value;
|
|
38
|
+
this._markAsDirty();
|
|
39
|
+
}
|
|
40
|
+
/** Gets or sets start coordinates on X axis */
|
|
41
|
+
get x1() {
|
|
42
|
+
return this._x1.toString(this._host);
|
|
43
|
+
}
|
|
44
|
+
set x1(value) {
|
|
45
|
+
if (this._x1.toString(this._host) === value) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (this._x1.fromString(value)) {
|
|
49
|
+
this._markAsDirty();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Gets or sets start coordinates on Y axis */
|
|
53
|
+
get y1() {
|
|
54
|
+
return this._y1.toString(this._host);
|
|
55
|
+
}
|
|
56
|
+
set y1(value) {
|
|
57
|
+
if (this._y1.toString(this._host) === value) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (this._y1.fromString(value)) {
|
|
61
|
+
this._markAsDirty();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** Gets or sets end coordinates on X axis */
|
|
65
|
+
get x2() {
|
|
66
|
+
return this._x2.toString(this._host);
|
|
67
|
+
}
|
|
68
|
+
set x2(value) {
|
|
69
|
+
if (this._x2.toString(this._host) === value) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (this._x2.fromString(value)) {
|
|
73
|
+
this._markAsDirty();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Gets or sets end coordinates on Y axis */
|
|
77
|
+
get y2() {
|
|
78
|
+
return this._y2.toString(this._host);
|
|
79
|
+
}
|
|
80
|
+
set y2(value) {
|
|
81
|
+
if (this._y2.toString(this._host) === value) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (this._y2.fromString(value)) {
|
|
85
|
+
this._markAsDirty();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** Gets or sets line width */
|
|
89
|
+
get lineWidth() {
|
|
90
|
+
return this._lineWidth;
|
|
91
|
+
}
|
|
92
|
+
set lineWidth(value) {
|
|
93
|
+
if (this._lineWidth === value) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this._lineWidth = value;
|
|
97
|
+
this._markAsDirty();
|
|
98
|
+
}
|
|
99
|
+
/** Gets or sets horizontal alignment */
|
|
100
|
+
set horizontalAlignment(value) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
/** Gets or sets vertical alignment */
|
|
104
|
+
set verticalAlignment(value) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
/** @internal */
|
|
108
|
+
get _effectiveX2() {
|
|
109
|
+
return (this._connectedControl ? this._connectedControl.centerX : 0) + this._x2.getValue(this._host);
|
|
110
|
+
}
|
|
111
|
+
/** @internal */
|
|
112
|
+
get _effectiveY2() {
|
|
113
|
+
return (this._connectedControl ? this._connectedControl.centerY : 0) + this._y2.getValue(this._host);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Creates a new Line
|
|
117
|
+
* @param name defines the control name
|
|
118
|
+
*/
|
|
119
|
+
constructor(name) {
|
|
120
|
+
super(name);
|
|
121
|
+
this.name = name;
|
|
122
|
+
this._lineWidth = 1;
|
|
123
|
+
/** @internal */
|
|
124
|
+
this._x1 = new ValueAndUnit(0);
|
|
125
|
+
/** @internal */
|
|
126
|
+
this._y1 = new ValueAndUnit(0);
|
|
127
|
+
/** @internal */
|
|
128
|
+
this._x2 = new ValueAndUnit(0);
|
|
129
|
+
/** @internal */
|
|
130
|
+
this._y2 = new ValueAndUnit(0);
|
|
131
|
+
this._dash = new Array();
|
|
132
|
+
this._automaticSize = true;
|
|
133
|
+
this.isHitTestVisible = false;
|
|
134
|
+
this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
135
|
+
this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
|
|
136
|
+
}
|
|
137
|
+
_getTypeName() {
|
|
138
|
+
return "Line";
|
|
139
|
+
}
|
|
140
|
+
_draw(context) {
|
|
141
|
+
context.save();
|
|
142
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
143
|
+
context.shadowColor = this.shadowColor;
|
|
144
|
+
context.shadowBlur = this.shadowBlur;
|
|
145
|
+
context.shadowOffsetX = this.shadowOffsetX * this._host.idealRatio;
|
|
146
|
+
context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;
|
|
147
|
+
}
|
|
148
|
+
this._applyStates(context);
|
|
149
|
+
context.strokeStyle = this._getColor(context);
|
|
150
|
+
context.lineWidth = this._lineWidth;
|
|
151
|
+
context.setLineDash(this._dash);
|
|
152
|
+
context.beginPath();
|
|
153
|
+
context.moveTo(this._cachedParentMeasure.left + this._x1.getValue(this._host), this._cachedParentMeasure.top + this._y1.getValue(this._host));
|
|
154
|
+
context.lineTo(this._cachedParentMeasure.left + this._effectiveX2, this._cachedParentMeasure.top + this._effectiveY2);
|
|
155
|
+
context.stroke();
|
|
156
|
+
context.restore();
|
|
157
|
+
}
|
|
158
|
+
_measure() {
|
|
159
|
+
// Width / Height
|
|
160
|
+
this._currentMeasure.width = Math.abs(this._x1.getValue(this._host) - this._effectiveX2) + this._lineWidth;
|
|
161
|
+
this._currentMeasure.height = Math.abs(this._y1.getValue(this._host) - this._effectiveY2) + this._lineWidth;
|
|
162
|
+
}
|
|
163
|
+
_layout(parentMeasure, context) {
|
|
164
|
+
if (this._connectedControl) {
|
|
165
|
+
// If we have a connected control, we need to let it layout first so we can ensure our layout math uses its latest position
|
|
166
|
+
this._connectedControl._layout(parentMeasure, context);
|
|
167
|
+
}
|
|
168
|
+
return super._layout(parentMeasure, context);
|
|
169
|
+
}
|
|
170
|
+
_computeAlignment(parentMeasure) {
|
|
171
|
+
this._currentMeasure.left = parentMeasure.left + Math.min(this._x1.getValue(this._host), this._effectiveX2) - this._lineWidth / 2;
|
|
172
|
+
this._currentMeasure.top = parentMeasure.top + Math.min(this._y1.getValue(this._host), this._effectiveY2) - this._lineWidth / 2;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Move one end of the line given 3D cartesian coordinates.
|
|
176
|
+
* @param position Targeted world position
|
|
177
|
+
* @param scene Scene
|
|
178
|
+
* @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
|
|
179
|
+
*/
|
|
180
|
+
moveToVector3(position, scene, end = false) {
|
|
181
|
+
if (!this._host || this.parent !== this._host._rootContainer) {
|
|
182
|
+
Tools.Error("Cannot move a control to a vector3 if the control is not at root level");
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const globalViewport = this._host._getGlobalViewport();
|
|
186
|
+
const projectedPosition = Vector3.Project(position, Matrix.IdentityReadOnly, scene.getTransformMatrix(), globalViewport);
|
|
187
|
+
this._moveToProjectedPosition(projectedPosition, end);
|
|
188
|
+
if (projectedPosition.z < 0 || projectedPosition.z > 1) {
|
|
189
|
+
this.notRenderable = true;
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
this.notRenderable = false;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Move one end of the line to a position in screen absolute space.
|
|
196
|
+
* @param projectedPosition Position in screen absolute space (X, Y)
|
|
197
|
+
* @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
|
|
198
|
+
*/
|
|
199
|
+
_moveToProjectedPosition(projectedPosition, end = false) {
|
|
200
|
+
const x = projectedPosition.x + this._linkOffsetX.getValue(this._host) + "px";
|
|
201
|
+
const y = projectedPosition.y + this._linkOffsetY.getValue(this._host) + "px";
|
|
202
|
+
if (end) {
|
|
203
|
+
this.x2 = x;
|
|
204
|
+
this.y2 = y;
|
|
205
|
+
this._x2.ignoreAdaptiveScaling = true;
|
|
206
|
+
this._y2.ignoreAdaptiveScaling = true;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
this.x1 = x;
|
|
210
|
+
this.y1 = y;
|
|
211
|
+
this._x1.ignoreAdaptiveScaling = true;
|
|
212
|
+
this._y1.ignoreAdaptiveScaling = true;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
__decorate([
|
|
217
|
+
serialize()
|
|
218
|
+
], Line.prototype, "dash", null);
|
|
219
|
+
__decorate([
|
|
220
|
+
serialize()
|
|
221
|
+
], Line.prototype, "x1", null);
|
|
222
|
+
__decorate([
|
|
223
|
+
serialize()
|
|
224
|
+
], Line.prototype, "y1", null);
|
|
225
|
+
__decorate([
|
|
226
|
+
serialize()
|
|
227
|
+
], Line.prototype, "x2", null);
|
|
228
|
+
__decorate([
|
|
229
|
+
serialize()
|
|
230
|
+
], Line.prototype, "y2", null);
|
|
231
|
+
__decorate([
|
|
232
|
+
serialize()
|
|
233
|
+
], Line.prototype, "lineWidth", null);
|
|
234
|
+
let _Registered = false;
|
|
235
|
+
/**
|
|
236
|
+
* Registers the Line class with the type store for serialization support.
|
|
237
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
238
|
+
*/
|
|
239
|
+
export function RegisterLine() {
|
|
240
|
+
if (_Registered) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
_Registered = true;
|
|
244
|
+
RegisterClass("BABYLON.GUI.Line", Line);
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=line.pure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line.pure.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/line.pure.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"core/types\";\r\nimport { type Observer } from \"core/Misc/observable\";\r\nimport { Vector3, Matrix } from \"core/Maths/math.vector.pure\";\r\nimport { Tools } from \"core/Misc/tools.pure\";\r\nimport { type Scene } from \"core/scene\";\r\n\r\nimport { Control } from \"./control.pure\";\r\nimport { ValueAndUnit } from \"../valueAndUnit\";\r\nimport { type Measure } from \"../measure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { type ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/** Class used to render 2D lines */\r\nexport class Line extends Control {\r\n private _lineWidth = 1;\r\n /** @internal */\r\n public _x1 = new ValueAndUnit(0);\r\n /** @internal */\r\n public _y1 = new ValueAndUnit(0);\r\n /** @internal */\r\n public _x2 = new ValueAndUnit(0);\r\n /** @internal */\r\n public _y2 = new ValueAndUnit(0);\r\n private _dash = new Array<number>();\r\n private _connectedControl: Control;\r\n private _connectedControlDirtyObserver: Nullable<Observer<Control>>;\r\n\r\n /** Gets or sets the 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 /** Gets or sets the control connected with the line end */\r\n public get connectedControl(): Control {\r\n return this._connectedControl;\r\n }\r\n\r\n public set connectedControl(value: Control) {\r\n // Don't allow circular references, and no-op if the same control is assigned\r\n if (this._connectedControl === value || (value instanceof Line && value._connectedControl === (this as Control))) {\r\n return;\r\n }\r\n\r\n if (this._connectedControlDirtyObserver && this._connectedControl) {\r\n this._connectedControl.onDirtyObservable.remove(this._connectedControlDirtyObserver);\r\n this._connectedControlDirtyObserver = null;\r\n }\r\n\r\n if (value) {\r\n this._connectedControlDirtyObserver = value.onDirtyObservable.add(() => this._markAsDirty());\r\n }\r\n\r\n this._connectedControl = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets start coordinates on X axis */\r\n @serialize()\r\n public get x1(): string | number {\r\n return this._x1.toString(this._host);\r\n }\r\n\r\n public set x1(value: string | number) {\r\n if (this._x1.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._x1.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets start coordinates on Y axis */\r\n @serialize()\r\n public get y1(): string | number {\r\n return this._y1.toString(this._host);\r\n }\r\n\r\n public set y1(value: string | number) {\r\n if (this._y1.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._y1.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets end coordinates on X axis */\r\n @serialize()\r\n public get x2(): string | number {\r\n return this._x2.toString(this._host);\r\n }\r\n\r\n public set x2(value: string | number) {\r\n if (this._x2.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._x2.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets end coordinates on Y axis */\r\n @serialize()\r\n public get y2(): string | number {\r\n return this._y2.toString(this._host);\r\n }\r\n\r\n public set y2(value: string | number) {\r\n if (this._y2.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._y2.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets line width */\r\n @serialize()\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 /** Gets or sets horizontal alignment */\r\n public override set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n /** Gets or sets vertical alignment */\r\n public override set verticalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n /** @internal */\r\n public get _effectiveX2(): number {\r\n return (this._connectedControl ? this._connectedControl.centerX : 0) + this._x2.getValue(this._host);\r\n }\r\n\r\n /** @internal */\r\n public get _effectiveY2(): number {\r\n return (this._connectedControl ? this._connectedControl.centerY : 0) + this._y2.getValue(this._host);\r\n }\r\n\r\n /**\r\n * Creates a new Line\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n\r\n this._automaticSize = true;\r\n\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\r\n protected override _getTypeName(): string {\r\n return \"Line\";\r\n }\r\n\r\n public override _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 * this._host.idealRatio;\r\n context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;\r\n }\r\n\r\n this._applyStates(context);\r\n context.strokeStyle = this._getColor(context);\r\n context.lineWidth = this._lineWidth;\r\n context.setLineDash(this._dash);\r\n\r\n context.beginPath();\r\n context.moveTo(this._cachedParentMeasure.left + this._x1.getValue(this._host), this._cachedParentMeasure.top + this._y1.getValue(this._host));\r\n\r\n context.lineTo(this._cachedParentMeasure.left + this._effectiveX2, this._cachedParentMeasure.top + this._effectiveY2);\r\n context.stroke();\r\n\r\n context.restore();\r\n }\r\n\r\n public override _measure(): void {\r\n // Width / Height\r\n this._currentMeasure.width = Math.abs(this._x1.getValue(this._host) - this._effectiveX2) + this._lineWidth;\r\n this._currentMeasure.height = Math.abs(this._y1.getValue(this._host) - this._effectiveY2) + this._lineWidth;\r\n }\r\n\r\n public override _layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean {\r\n if (this._connectedControl) {\r\n // If we have a connected control, we need to let it layout first so we can ensure our layout math uses its latest position\r\n this._connectedControl._layout(parentMeasure, context);\r\n }\r\n return super._layout(parentMeasure, context);\r\n }\r\n\r\n protected override _computeAlignment(parentMeasure: Measure): void {\r\n this._currentMeasure.left = parentMeasure.left + Math.min(this._x1.getValue(this._host), this._effectiveX2) - this._lineWidth / 2;\r\n this._currentMeasure.top = parentMeasure.top + Math.min(this._y1.getValue(this._host), this._effectiveY2) - this._lineWidth / 2;\r\n }\r\n\r\n /**\r\n * Move one end of the line given 3D cartesian coordinates.\r\n * @param position Targeted world position\r\n * @param scene Scene\r\n * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.\r\n */\r\n public override moveToVector3(position: Vector3, scene: Scene, end: boolean = false): void {\r\n if (!this._host || this.parent !== this._host._rootContainer) {\r\n Tools.Error(\"Cannot move a control to a vector3 if the control is not at root level\");\r\n return;\r\n }\r\n\r\n const globalViewport = this._host._getGlobalViewport();\r\n const projectedPosition = Vector3.Project(position, Matrix.IdentityReadOnly, scene.getTransformMatrix(), globalViewport);\r\n\r\n this._moveToProjectedPosition(projectedPosition, end);\r\n\r\n if (projectedPosition.z < 0 || projectedPosition.z > 1) {\r\n this.notRenderable = true;\r\n return;\r\n }\r\n this.notRenderable = false;\r\n }\r\n\r\n /**\r\n * Move one end of the line to a position in screen absolute space.\r\n * @param projectedPosition Position in screen absolute space (X, Y)\r\n * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.\r\n */\r\n public override _moveToProjectedPosition(projectedPosition: Vector3, end: boolean = false): void {\r\n const x: string = projectedPosition.x + this._linkOffsetX.getValue(this._host) + \"px\";\r\n const y: string = projectedPosition.y + this._linkOffsetY.getValue(this._host) + \"px\";\r\n\r\n if (end) {\r\n this.x2 = x;\r\n this.y2 = y;\r\n this._x2.ignoreAdaptiveScaling = true;\r\n this._y2.ignoreAdaptiveScaling = true;\r\n } else {\r\n this.x1 = x;\r\n this.y1 = y;\r\n this._x1.ignoreAdaptiveScaling = true;\r\n this._y1.ignoreAdaptiveScaling = true;\r\n }\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the Line class with the type store for serialization support.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterLine(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.GUI.Line\", Line);\r\n}\r\n"]}
|
|
@@ -1,75 +1,5 @@
|
|
|
1
|
-
import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
2
|
-
import { Control } from "./control.js";
|
|
3
|
-
import { MultiLinePoint } from "../multiLinePoint.js";
|
|
4
|
-
import { type ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
5
1
|
/**
|
|
6
|
-
*
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./multiLine.pure" for tree-shakeable, side-effect-free usage.
|
|
7
4
|
*/
|
|
8
|
-
export
|
|
9
|
-
name?: string | undefined;
|
|
10
|
-
private _lineWidth;
|
|
11
|
-
private _dash;
|
|
12
|
-
private _points;
|
|
13
|
-
private _minX;
|
|
14
|
-
private _minY;
|
|
15
|
-
private _maxX;
|
|
16
|
-
private _maxY;
|
|
17
|
-
/**
|
|
18
|
-
* Creates a new MultiLine
|
|
19
|
-
* @param name defines the control name
|
|
20
|
-
*/
|
|
21
|
-
constructor(name?: string | undefined);
|
|
22
|
-
/** Gets or sets dash pattern */
|
|
23
|
-
get dash(): Array<number>;
|
|
24
|
-
set dash(value: Array<number>);
|
|
25
|
-
/**
|
|
26
|
-
* Gets point stored at specified index
|
|
27
|
-
* @param index defines the index to look for
|
|
28
|
-
* @returns the requested point if found
|
|
29
|
-
*/
|
|
30
|
-
getAt(index: number): MultiLinePoint;
|
|
31
|
-
/** Function called when a point is updated */
|
|
32
|
-
onPointUpdate: () => void;
|
|
33
|
-
/**
|
|
34
|
-
* Adds new points to the point collection
|
|
35
|
-
* @param items defines the list of items (mesh, control or 2d coordinates) to add
|
|
36
|
-
* @returns the list of created MultiLinePoint
|
|
37
|
-
*/
|
|
38
|
-
add(...items: (AbstractMesh | Control | {
|
|
39
|
-
x: string | number;
|
|
40
|
-
y: string | number;
|
|
41
|
-
})[]): MultiLinePoint[];
|
|
42
|
-
/**
|
|
43
|
-
* Adds a new point to the point collection
|
|
44
|
-
* @param item defines the item (mesh, control or 2d coordinates) to add
|
|
45
|
-
* @returns the created MultiLinePoint
|
|
46
|
-
*/
|
|
47
|
-
push(item?: AbstractMesh | Control | {
|
|
48
|
-
x: string | number;
|
|
49
|
-
y: string | number;
|
|
50
|
-
}): MultiLinePoint;
|
|
51
|
-
/**
|
|
52
|
-
* Remove a specific value or point from the active point collection
|
|
53
|
-
* @param value defines the value or point to remove
|
|
54
|
-
*/
|
|
55
|
-
remove(value: number | MultiLinePoint): void;
|
|
56
|
-
/**
|
|
57
|
-
* Resets this object to initial state (no point)
|
|
58
|
-
*/
|
|
59
|
-
reset(): void;
|
|
60
|
-
/**
|
|
61
|
-
* Resets all links
|
|
62
|
-
*/
|
|
63
|
-
resetLinks(): void;
|
|
64
|
-
/** Gets or sets line width */
|
|
65
|
-
get lineWidth(): number;
|
|
66
|
-
set lineWidth(value: number);
|
|
67
|
-
set horizontalAlignment(value: number);
|
|
68
|
-
set verticalAlignment(value: number);
|
|
69
|
-
protected _getTypeName(): string;
|
|
70
|
-
_draw(context: ICanvasRenderingContext): void;
|
|
71
|
-
protected _additionalProcessing(): void;
|
|
72
|
-
_measure(): void;
|
|
73
|
-
protected _computeAlignment(): void;
|
|
74
|
-
dispose(): void;
|
|
75
|
-
}
|
|
5
|
+
export * from "./multiLine.pure.js";
|
package/2D/controls/multiLine.js
CHANGED
|
@@ -1,237 +1,8 @@
|
|
|
1
|
-
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
-
import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
3
|
-
import { Control } from "./control.js";
|
|
4
|
-
import { MultiLinePoint } from "../multiLinePoint.js";
|
|
5
|
-
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
6
|
-
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
7
1
|
/**
|
|
8
|
-
*
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./multiLine.pure" for tree-shakeable, side-effect-free usage.
|
|
9
4
|
*/
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @param name defines the control name
|
|
14
|
-
*/
|
|
15
|
-
constructor(name) {
|
|
16
|
-
super(name);
|
|
17
|
-
this.name = name;
|
|
18
|
-
this._lineWidth = 1;
|
|
19
|
-
/** Function called when a point is updated */
|
|
20
|
-
this.onPointUpdate = () => {
|
|
21
|
-
this._markAsDirty();
|
|
22
|
-
};
|
|
23
|
-
this._automaticSize = true;
|
|
24
|
-
this.isHitTestVisible = false;
|
|
25
|
-
this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
26
|
-
this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
|
|
27
|
-
this._dash = [];
|
|
28
|
-
this._points = [];
|
|
29
|
-
}
|
|
30
|
-
/** Gets or sets dash pattern */
|
|
31
|
-
get dash() {
|
|
32
|
-
return this._dash;
|
|
33
|
-
}
|
|
34
|
-
set dash(value) {
|
|
35
|
-
if (this._dash === value) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
this._dash = value;
|
|
39
|
-
this._markAsDirty();
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Gets point stored at specified index
|
|
43
|
-
* @param index defines the index to look for
|
|
44
|
-
* @returns the requested point if found
|
|
45
|
-
*/
|
|
46
|
-
getAt(index) {
|
|
47
|
-
if (!this._points[index]) {
|
|
48
|
-
this._points[index] = new MultiLinePoint(this);
|
|
49
|
-
}
|
|
50
|
-
return this._points[index];
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Adds new points to the point collection
|
|
54
|
-
* @param items defines the list of items (mesh, control or 2d coordinates) to add
|
|
55
|
-
* @returns the list of created MultiLinePoint
|
|
56
|
-
*/
|
|
57
|
-
add(...items) {
|
|
58
|
-
return items.map((item) => this.push(item));
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Adds a new point to the point collection
|
|
62
|
-
* @param item defines the item (mesh, control or 2d coordinates) to add
|
|
63
|
-
* @returns the created MultiLinePoint
|
|
64
|
-
*/
|
|
65
|
-
push(item) {
|
|
66
|
-
const point = this.getAt(this._points.length);
|
|
67
|
-
if (item == null) {
|
|
68
|
-
return point;
|
|
69
|
-
}
|
|
70
|
-
if (item instanceof AbstractMesh) {
|
|
71
|
-
point.mesh = item;
|
|
72
|
-
}
|
|
73
|
-
else if (item instanceof Control) {
|
|
74
|
-
point.control = item;
|
|
75
|
-
}
|
|
76
|
-
else if (item.x != null && item.y != null) {
|
|
77
|
-
point.x = item.x;
|
|
78
|
-
point.y = item.y;
|
|
79
|
-
}
|
|
80
|
-
return point;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Remove a specific value or point from the active point collection
|
|
84
|
-
* @param value defines the value or point to remove
|
|
85
|
-
*/
|
|
86
|
-
remove(value) {
|
|
87
|
-
let index;
|
|
88
|
-
if (value instanceof MultiLinePoint) {
|
|
89
|
-
index = this._points.indexOf(value);
|
|
90
|
-
if (index === -1) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
index = value;
|
|
96
|
-
}
|
|
97
|
-
const point = this._points[index];
|
|
98
|
-
if (!point) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
point.dispose();
|
|
102
|
-
this._points.splice(index, 1);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Resets this object to initial state (no point)
|
|
106
|
-
*/
|
|
107
|
-
reset() {
|
|
108
|
-
while (this._points.length > 0) {
|
|
109
|
-
this.remove(this._points.length - 1);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Resets all links
|
|
114
|
-
*/
|
|
115
|
-
resetLinks() {
|
|
116
|
-
for (const point of this._points) {
|
|
117
|
-
if (point != null) {
|
|
118
|
-
point.resetLinks();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/** Gets or sets line width */
|
|
123
|
-
get lineWidth() {
|
|
124
|
-
return this._lineWidth;
|
|
125
|
-
}
|
|
126
|
-
set lineWidth(value) {
|
|
127
|
-
if (this._lineWidth === value) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
this._lineWidth = value;
|
|
131
|
-
this._markAsDirty();
|
|
132
|
-
}
|
|
133
|
-
set horizontalAlignment(value) {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
set verticalAlignment(value) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
_getTypeName() {
|
|
140
|
-
return "MultiLine";
|
|
141
|
-
}
|
|
142
|
-
_draw(context) {
|
|
143
|
-
context.save();
|
|
144
|
-
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
145
|
-
context.shadowColor = this.shadowColor;
|
|
146
|
-
context.shadowBlur = this.shadowBlur;
|
|
147
|
-
context.shadowOffsetX = this.shadowOffsetX * this._host.idealRatio;
|
|
148
|
-
context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;
|
|
149
|
-
}
|
|
150
|
-
this._applyStates(context);
|
|
151
|
-
context.strokeStyle = this.color;
|
|
152
|
-
context.lineWidth = this._lineWidth;
|
|
153
|
-
context.setLineDash(this._dash);
|
|
154
|
-
context.beginPath();
|
|
155
|
-
let first = true; //first index is not necessarily 0
|
|
156
|
-
let previousPoint;
|
|
157
|
-
for (const point of this._points) {
|
|
158
|
-
if (!point) {
|
|
159
|
-
continue;
|
|
160
|
-
}
|
|
161
|
-
if (first) {
|
|
162
|
-
context.moveTo(point._point.x, point._point.y);
|
|
163
|
-
first = false;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
if (point._point.z < 1 && previousPoint.z < 1) {
|
|
167
|
-
context.lineTo(point._point.x, point._point.y);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
context.moveTo(point._point.x, point._point.y);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
previousPoint = point._point;
|
|
174
|
-
}
|
|
175
|
-
context.stroke();
|
|
176
|
-
context.restore();
|
|
177
|
-
}
|
|
178
|
-
_additionalProcessing() {
|
|
179
|
-
this._minX = null;
|
|
180
|
-
this._minY = null;
|
|
181
|
-
this._maxX = null;
|
|
182
|
-
this._maxY = null;
|
|
183
|
-
for (const point of this._points) {
|
|
184
|
-
if (!point) {
|
|
185
|
-
continue;
|
|
186
|
-
}
|
|
187
|
-
point.translate();
|
|
188
|
-
if (this._minX == null || point._point.x < this._minX) {
|
|
189
|
-
this._minX = point._point.x;
|
|
190
|
-
}
|
|
191
|
-
if (this._minY == null || point._point.y < this._minY) {
|
|
192
|
-
this._minY = point._point.y;
|
|
193
|
-
}
|
|
194
|
-
if (this._maxX == null || point._point.x > this._maxX) {
|
|
195
|
-
this._maxX = point._point.x;
|
|
196
|
-
}
|
|
197
|
-
if (this._maxY == null || point._point.y > this._maxY) {
|
|
198
|
-
this._maxY = point._point.y;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (this._minX == null) {
|
|
202
|
-
this._minX = 0;
|
|
203
|
-
}
|
|
204
|
-
if (this._minY == null) {
|
|
205
|
-
this._minY = 0;
|
|
206
|
-
}
|
|
207
|
-
if (this._maxX == null) {
|
|
208
|
-
this._maxX = 0;
|
|
209
|
-
}
|
|
210
|
-
if (this._maxY == null) {
|
|
211
|
-
this._maxY = 0;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
_measure() {
|
|
215
|
-
if (this._minX == null || this._maxX == null || this._minY == null || this._maxY == null) {
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
this._currentMeasure.width = Math.abs(this._maxX - this._minX) + this._lineWidth;
|
|
219
|
-
this._currentMeasure.height = Math.abs(this._maxY - this._minY) + this._lineWidth;
|
|
220
|
-
}
|
|
221
|
-
_computeAlignment() {
|
|
222
|
-
if (this._minX == null || this._minY == null) {
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
this._currentMeasure.left = this._minX - this._lineWidth / 2;
|
|
226
|
-
this._currentMeasure.top = this._minY - this._lineWidth / 2;
|
|
227
|
-
}
|
|
228
|
-
dispose() {
|
|
229
|
-
this.reset();
|
|
230
|
-
super.dispose();
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
__decorate([
|
|
234
|
-
serialize()
|
|
235
|
-
], MultiLine.prototype, "dash", null);
|
|
236
|
-
RegisterClass("BABYLON.GUI.MultiLine", MultiLine);
|
|
5
|
+
export * from "./multiLine.pure.js";
|
|
6
|
+
import { RegisterMultiLine } from "./multiLine.pure.js";
|
|
7
|
+
RegisterMultiLine();
|
|
237
8
|
//# sourceMappingURL=multiLine.js.map
|