@babylonjs/gui 9.15.0 → 9.16.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/controls/checkbox.pure.js +164 -153
- package/2D/controls/checkbox.pure.js.map +1 -1
- package/2D/controls/colorpicker.pure.js +1300 -1289
- package/2D/controls/colorpicker.pure.js.map +1 -1
- package/2D/controls/container.pure.js +597 -582
- package/2D/controls/container.pure.js.map +1 -1
- package/2D/controls/control.pure.js +2474 -2434
- package/2D/controls/control.pure.js.map +1 -1
- package/2D/controls/displayGrid.pure.js +201 -190
- package/2D/controls/displayGrid.pure.js.map +1 -1
- package/2D/controls/ellipse.pure.js +96 -85
- package/2D/controls/ellipse.pure.js.map +1 -1
- package/2D/controls/grid.pure.js +511 -500
- package/2D/controls/grid.pure.js.map +1 -1
- package/2D/controls/image.pure.js +888 -877
- package/2D/controls/image.pure.js.map +1 -1
- package/2D/controls/inputText.pure.js +988 -973
- package/2D/controls/inputText.pure.js.map +1 -1
- package/2D/controls/inputTextArea.pure.js +955 -944
- package/2D/controls/inputTextArea.pure.js.map +1 -1
- package/2D/controls/line.pure.js +237 -226
- package/2D/controls/line.pure.js.map +1 -1
- package/2D/controls/multiLine.pure.js +233 -222
- package/2D/controls/multiLine.pure.js.map +1 -1
- package/2D/controls/radioButton.pure.js +182 -169
- package/2D/controls/radioButton.pure.js.map +1 -1
- package/2D/controls/rectangle.pure.js +211 -200
- package/2D/controls/rectangle.pure.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.pure.js +579 -567
- package/2D/controls/scrollViewers/scrollViewer.pure.js.map +1 -1
- package/2D/controls/sliders/baseSlider.js +291 -280
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.pure.js +158 -147
- package/2D/controls/sliders/imageBasedSlider.pure.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.js +237 -223
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.pure.js +169 -158
- package/2D/controls/sliders/scrollBar.pure.js.map +1 -1
- package/2D/controls/sliders/slider.pure.js +251 -240
- package/2D/controls/sliders/slider.pure.js.map +1 -1
- package/2D/controls/stackPanel.pure.js +236 -221
- package/2D/controls/stackPanel.pure.js.map +1 -1
- package/2D/controls/textBlock.pure.js +637 -626
- package/2D/controls/textBlock.pure.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.pure.d.ts +4 -4
- package/3D/materials/fluent/fluentMaterial.pure.js +322 -273
- package/3D/materials/fluent/fluentMaterial.pure.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js +510 -454
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.js +612 -529
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js +313 -274
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js +462 -405
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js.map +1 -1
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js +583 -501
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js.map +1 -1
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js +226 -203
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js +961 -825
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js +961 -825
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,94 +1,105 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __esDecorate, __runInitializers } from "@babylonjs/core/tslib.es6.js";
|
|
2
2
|
import { Container } from "./container.pure.js";
|
|
3
3
|
import { Control } from "./control.pure.js";
|
|
4
4
|
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
5
5
|
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
6
6
|
/** Class used to create 2D ellipse containers */
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this._markAsDirty();
|
|
18
|
-
}
|
|
19
|
-
/** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */
|
|
20
|
-
get arc() {
|
|
21
|
-
return this._arc;
|
|
22
|
-
}
|
|
23
|
-
set arc(value) {
|
|
24
|
-
if (this._arc === value) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
this._arc = value;
|
|
28
|
-
this._markAsDirty();
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Creates a new Ellipse
|
|
32
|
-
* @param name defines the control name
|
|
33
|
-
*/
|
|
34
|
-
constructor(name) {
|
|
35
|
-
super(name);
|
|
36
|
-
this.name = name;
|
|
37
|
-
this._thickness = 1;
|
|
38
|
-
this._arc = 1;
|
|
39
|
-
}
|
|
40
|
-
_getTypeName() {
|
|
41
|
-
return "Ellipse";
|
|
42
|
-
}
|
|
43
|
-
_localDraw(context) {
|
|
44
|
-
context.save();
|
|
45
|
-
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
46
|
-
context.shadowColor = this.shadowColor;
|
|
47
|
-
context.shadowBlur = this.shadowBlur;
|
|
48
|
-
context.shadowOffsetX = this.shadowOffsetX * this._host.idealRatio;
|
|
49
|
-
context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;
|
|
50
|
-
}
|
|
51
|
-
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, this._arc, context);
|
|
52
|
-
if (this._backgroundGradient || this._background) {
|
|
53
|
-
context.fillStyle = this._getBackgroundColor(context);
|
|
54
|
-
context.fill();
|
|
55
|
-
}
|
|
56
|
-
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
57
|
-
context.shadowBlur = 0;
|
|
58
|
-
context.shadowOffsetX = 0;
|
|
59
|
-
context.shadowOffsetY = 0;
|
|
60
|
-
}
|
|
61
|
-
if (this._thickness) {
|
|
62
|
-
if (this.color) {
|
|
63
|
-
context.strokeStyle = this.color;
|
|
7
|
+
let Ellipse = (() => {
|
|
8
|
+
var _a;
|
|
9
|
+
let _classSuper = Container;
|
|
10
|
+
let _instanceExtraInitializers = [];
|
|
11
|
+
let _get_thickness_decorators;
|
|
12
|
+
let _get_arc_decorators;
|
|
13
|
+
return _a = class Ellipse extends _classSuper {
|
|
14
|
+
/** Gets or sets border thickness */
|
|
15
|
+
get thickness() {
|
|
16
|
+
return this._thickness;
|
|
64
17
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
18
|
+
set thickness(value) {
|
|
19
|
+
if (this._thickness === value) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this._thickness = value;
|
|
23
|
+
this._markAsDirty();
|
|
24
|
+
}
|
|
25
|
+
/** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */
|
|
26
|
+
get arc() {
|
|
27
|
+
return this._arc;
|
|
28
|
+
}
|
|
29
|
+
set arc(value) {
|
|
30
|
+
if (this._arc === value) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this._arc = value;
|
|
34
|
+
this._markAsDirty();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new Ellipse
|
|
38
|
+
* @param name defines the control name
|
|
39
|
+
*/
|
|
40
|
+
constructor(name) {
|
|
41
|
+
super(name);
|
|
42
|
+
this.name = (__runInitializers(this, _instanceExtraInitializers), name);
|
|
43
|
+
this._thickness = 1;
|
|
44
|
+
this._arc = 1;
|
|
45
|
+
}
|
|
46
|
+
_getTypeName() {
|
|
47
|
+
return "Ellipse";
|
|
48
|
+
}
|
|
49
|
+
_localDraw(context) {
|
|
50
|
+
context.save();
|
|
51
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
52
|
+
context.shadowColor = this.shadowColor;
|
|
53
|
+
context.shadowBlur = this.shadowBlur;
|
|
54
|
+
context.shadowOffsetX = this.shadowOffsetX * this._host.idealRatio;
|
|
55
|
+
context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;
|
|
56
|
+
}
|
|
57
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, this._arc, context);
|
|
58
|
+
if (this._backgroundGradient || this._background) {
|
|
59
|
+
context.fillStyle = this._getBackgroundColor(context);
|
|
60
|
+
context.fill();
|
|
61
|
+
}
|
|
62
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
63
|
+
context.shadowBlur = 0;
|
|
64
|
+
context.shadowOffsetX = 0;
|
|
65
|
+
context.shadowOffsetY = 0;
|
|
66
|
+
}
|
|
67
|
+
if (this._thickness) {
|
|
68
|
+
if (this.color) {
|
|
69
|
+
context.strokeStyle = this.color;
|
|
70
|
+
}
|
|
71
|
+
context.lineWidth = this._thickness;
|
|
72
|
+
context.stroke();
|
|
73
|
+
}
|
|
74
|
+
context.restore();
|
|
75
|
+
}
|
|
76
|
+
_additionalProcessing(parentMeasure, context) {
|
|
77
|
+
super._additionalProcessing(parentMeasure, context);
|
|
78
|
+
this._measureForChildren.width -= 2 * this._thickness;
|
|
79
|
+
this._measureForChildren.height -= 2 * this._thickness;
|
|
80
|
+
this._measureForChildren.left += this._thickness;
|
|
81
|
+
this._measureForChildren.top += this._thickness;
|
|
82
|
+
}
|
|
83
|
+
_clipForChildren(context) {
|
|
84
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2, this._currentMeasure.height / 2, this._arc, context);
|
|
85
|
+
context.clip();
|
|
86
|
+
}
|
|
87
|
+
_renderHighlightSpecific(context) {
|
|
88
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._highlightLineWidth / 2, this._currentMeasure.height / 2 - this._highlightLineWidth / 2, this._arc, context);
|
|
89
|
+
context.stroke();
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
(() => {
|
|
93
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
94
|
+
_get_thickness_decorators = [serialize()];
|
|
95
|
+
_get_arc_decorators = [serialize()];
|
|
96
|
+
__esDecorate(_a, null, _get_thickness_decorators, { kind: "getter", name: "thickness", static: false, private: false, access: { has: obj => "thickness" in obj, get: obj => obj.thickness }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
97
|
+
__esDecorate(_a, null, _get_arc_decorators, { kind: "getter", name: "arc", static: false, private: false, access: { has: obj => "arc" in obj, get: obj => obj.arc }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
98
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
99
|
+
})(),
|
|
100
|
+
_a;
|
|
101
|
+
})();
|
|
102
|
+
export { Ellipse };
|
|
92
103
|
let _Registered = false;
|
|
93
104
|
/**
|
|
94
105
|
* Registers the Ellipse class with the type store for serialization support.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipse.pure.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/ellipse.pure.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,iDAAiD;
|
|
1
|
+
{"version":3,"file":"ellipse.pure.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/ellipse.pure.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container.pure\";\r\nimport { Control } from \"./control.pure\";\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 create 2D ellipse containers */\r\nexport class Ellipse extends Container {\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n private _arc = 1;\r\n\r\n /** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */\r\n @serialize()\r\n public get arc(): number {\r\n return this._arc;\r\n }\r\n\r\n public set arc(value: number) {\r\n if (this._arc === value) {\r\n return;\r\n }\r\n\r\n this._arc = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new Ellipse\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\r\n protected override _getTypeName(): string {\r\n return \"Ellipse\";\r\n }\r\n\r\n protected override _localDraw(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 Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2,\r\n this._currentMeasure.height / 2 - this._thickness / 2,\r\n this._arc,\r\n context\r\n );\r\n\r\n if (this._backgroundGradient || this._background) {\r\n context.fillStyle = this._getBackgroundColor(context);\r\n\r\n context.fill();\r\n }\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n if (this._thickness) {\r\n if (this.color) {\r\n context.strokeStyle = this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected override _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.width -= 2 * this._thickness;\r\n this._measureForChildren.height -= 2 * this._thickness;\r\n this._measureForChildren.left += this._thickness;\r\n this._measureForChildren.top += this._thickness;\r\n }\r\n\r\n protected override _clipForChildren(context: ICanvasRenderingContext) {\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2,\r\n this._currentMeasure.height / 2,\r\n this._arc,\r\n context\r\n );\r\n\r\n context.clip();\r\n }\r\n\r\n public override _renderHighlightSpecific(context: ICanvasRenderingContext): void {\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._highlightLineWidth / 2,\r\n this._currentMeasure.height / 2 - this._highlightLineWidth / 2,\r\n this._arc,\r\n context\r\n );\r\n context.stroke();\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the Ellipse 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 RegisterEllipse(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.GUI.Ellipse\", Ellipse);\r\n}\r\n"]}
|