@babylonjs/gui 5.43.1 → 5.43.2
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/button.d.ts +2 -0
- package/2D/controls/button.js +8 -0
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/container.d.ts +8 -1
- package/2D/controls/container.js +33 -2
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +7 -1
- package/2D/controls/control.js +31 -2
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/ellipse.js +2 -2
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/gradient/BaseGradient.d.ts +57 -0
- package/2D/controls/gradient/BaseGradient.js +72 -0
- package/2D/controls/gradient/BaseGradient.js.map +1 -0
- package/2D/controls/gradient/LinearGradient.d.ts +45 -0
- package/2D/controls/gradient/LinearGradient.js +73 -0
- package/2D/controls/gradient/LinearGradient.js.map +1 -0
- package/2D/controls/gradient/RadialGradient.d.ts +53 -0
- package/2D/controls/gradient/RadialGradient.js +89 -0
- package/2D/controls/gradient/RadialGradient.js.map +1 -0
- package/2D/controls/index.d.ts +3 -0
- package/2D/controls/index.js +3 -0
- package/2D/controls/index.js.map +1 -1
- package/2D/controls/line.js +1 -1
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/rectangle.d.ts +2 -1
- package/2D/controls/rectangle.js +7 -4
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +10 -0
- package/2D/controls/sliders/scrollBar.js +35 -2
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.d.ts +11 -0
- package/2D/controls/sliders/slider.js +35 -3
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/textBlock.d.ts +8 -0
- package/2D/controls/textBlock.js +22 -3
- package/2D/controls/textBlock.js.map +1 -1
- package/package.json +2 -2
package/2D/controls/ellipse.js
CHANGED
@@ -37,8 +37,8 @@ export class Ellipse extends Container {
|
|
37
37
|
context.shadowOffsetY = this.shadowOffsetY;
|
38
38
|
}
|
39
39
|
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, context);
|
40
|
-
if (this._background) {
|
41
|
-
context.fillStyle = this.
|
40
|
+
if (this._backgroundGradient || this._background) {
|
41
|
+
context.fillStyle = this._getBackgroundColor(context);
|
42
42
|
context.fill();
|
43
43
|
}
|
44
44
|
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/controls/ellipse.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,0CAA4B;AACpD,OAAO,EAAE,SAAS,EAAE,2CAA6B;AAGjD,iDAAiD;AACjD,MAAM,OAAO,OAAQ,SAAQ,SAAS;IAkBlC;;;OAGG;IACH,YAAmB,IAAa;QAC5B,KAAK,CAAC,IAAI,CAAC,CAAC;QADG,SAAI,GAAJ,IAAI,CAAS;QArBxB,eAAU,GAAG,CAAC,CAAC;IAuBvB,CAAC;IArBD,oCAAoC;IAEpC,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC3B,OAAO;SACV;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAUS,YAAY;QAClB,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,UAAU,CAAC,OAAgC;QACjD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7D,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACvC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC3C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9C;QAED,OAAO,CAAC,WAAW,CACf,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAC1D,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAC1D,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,EACpD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,EACrD,OAAO,CACV,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,EAAE;
|
1
|
+
{"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/controls/ellipse.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { Control } from \"./control\";\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 /**\r\n * Creates a new Ellipse\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"Ellipse\";\r\n }\r\n\r\n protected _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;\r\n context.shadowOffsetY = this.shadowOffsetY;\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 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 _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 _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 context\r\n );\r\n\r\n context.clip();\r\n }\r\n\r\n public _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 context\r\n );\r\n context.stroke();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Ellipse\", Ellipse);\r\n"]}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import type { ICanvasGradient, ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
2
|
+
/**
|
3
|
+
* Type that represents a single stop on the gradient.
|
4
|
+
*/
|
5
|
+
export declare type GradientColorStop = {
|
6
|
+
/**
|
7
|
+
* Offset from the start where the color will be applied.
|
8
|
+
*/
|
9
|
+
offset: number;
|
10
|
+
/**
|
11
|
+
* Color to be applied.
|
12
|
+
*/
|
13
|
+
color: string;
|
14
|
+
};
|
15
|
+
/**
|
16
|
+
* Class that serves as a base for all the gradients created from context.
|
17
|
+
*/
|
18
|
+
export declare abstract class BaseGradient {
|
19
|
+
private _colorStops;
|
20
|
+
private _canvasGradient;
|
21
|
+
private _context;
|
22
|
+
private _gradientDirty;
|
23
|
+
/**
|
24
|
+
* Overwritten by child classes to create the canvas gradient.
|
25
|
+
* @param context
|
26
|
+
*/
|
27
|
+
protected abstract _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;
|
28
|
+
private _addColorStopsToCanvasGradient;
|
29
|
+
/**
|
30
|
+
* If there are any changes or the context changed, regenerate the canvas gradient object. Else,
|
31
|
+
* reuse the existing gradient.
|
32
|
+
**/
|
33
|
+
getCanvasGradient(context: ICanvasRenderingContext): CanvasGradient;
|
34
|
+
/**
|
35
|
+
* Adds a new color stop to the gradient.
|
36
|
+
* @param offset the offset of the stop on the gradient. Should be between 0 and 1
|
37
|
+
* @param color the color of the stop
|
38
|
+
*/
|
39
|
+
addColorStop(offset: number, color: string): void;
|
40
|
+
/**
|
41
|
+
* Removes an existing color stop with the specified offset from the gradient
|
42
|
+
* @param offset the offset of the stop to be removed
|
43
|
+
*/
|
44
|
+
removeColorStop(offset: number): void;
|
45
|
+
/**
|
46
|
+
* Removes all color stops from the gradient
|
47
|
+
*/
|
48
|
+
clearColorStops(): void;
|
49
|
+
/** Color stops of the gradient */
|
50
|
+
get colorStops(): GradientColorStop[];
|
51
|
+
/** Type of the gradient */
|
52
|
+
getClassName(): string;
|
53
|
+
/** Serialize into a json object */
|
54
|
+
serialize(serializationObject: any): void;
|
55
|
+
/** Parse from json object */
|
56
|
+
parse(serializationObject: any): void;
|
57
|
+
}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/*
|
2
|
+
* Base Gradient class. Should not be used directly.
|
3
|
+
*/
|
4
|
+
/**
|
5
|
+
* Class that serves as a base for all the gradients created from context.
|
6
|
+
*/
|
7
|
+
export class BaseGradient {
|
8
|
+
constructor() {
|
9
|
+
this._colorStops = [];
|
10
|
+
this._gradientDirty = true;
|
11
|
+
}
|
12
|
+
_addColorStopsToCanvasGradient() {
|
13
|
+
for (const stop of this._colorStops) {
|
14
|
+
this._canvasGradient.addColorStop(stop.offset, stop.color);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
/**
|
18
|
+
* If there are any changes or the context changed, regenerate the canvas gradient object. Else,
|
19
|
+
* reuse the existing gradient.
|
20
|
+
**/
|
21
|
+
getCanvasGradient(context) {
|
22
|
+
if (this._gradientDirty || this._context !== context) {
|
23
|
+
this._context = context;
|
24
|
+
this._canvasGradient = this._createCanvasGradient(context);
|
25
|
+
this._addColorStopsToCanvasGradient();
|
26
|
+
this._gradientDirty = false;
|
27
|
+
}
|
28
|
+
return this._canvasGradient;
|
29
|
+
}
|
30
|
+
/**
|
31
|
+
* Adds a new color stop to the gradient.
|
32
|
+
* @param offset the offset of the stop on the gradient. Should be between 0 and 1
|
33
|
+
* @param color the color of the stop
|
34
|
+
*/
|
35
|
+
addColorStop(offset, color) {
|
36
|
+
this._colorStops.push({ offset, color });
|
37
|
+
this._gradientDirty = true;
|
38
|
+
}
|
39
|
+
/**
|
40
|
+
* Removes an existing color stop with the specified offset from the gradient
|
41
|
+
* @param offset the offset of the stop to be removed
|
42
|
+
*/
|
43
|
+
removeColorStop(offset) {
|
44
|
+
this._colorStops = this._colorStops.filter((colorStop) => colorStop.offset !== offset);
|
45
|
+
this._gradientDirty = true;
|
46
|
+
}
|
47
|
+
/**
|
48
|
+
* Removes all color stops from the gradient
|
49
|
+
*/
|
50
|
+
clearColorStops() {
|
51
|
+
this._colorStops = [];
|
52
|
+
this._gradientDirty = true;
|
53
|
+
}
|
54
|
+
/** Color stops of the gradient */
|
55
|
+
get colorStops() {
|
56
|
+
return this._colorStops;
|
57
|
+
}
|
58
|
+
/** Type of the gradient */
|
59
|
+
getClassName() {
|
60
|
+
return "BaseGradient";
|
61
|
+
}
|
62
|
+
/** Serialize into a json object */
|
63
|
+
serialize(serializationObject) {
|
64
|
+
serializationObject.colorStops = this._colorStops;
|
65
|
+
serializationObject.className = this.getClassName();
|
66
|
+
}
|
67
|
+
/** Parse from json object */
|
68
|
+
parse(serializationObject) {
|
69
|
+
this._colorStops = serializationObject.colorStops;
|
70
|
+
}
|
71
|
+
}
|
72
|
+
//# sourceMappingURL=BaseGradient.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"BaseGradient.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/gradient/BaseGradient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,OAAgB,YAAY;IAAlC;QACY,gBAAW,GAAwB,EAAE,CAAC;QAItC,mBAAc,GAAY,IAAI,CAAC;IA2E3C,CAAC;IAnEW,8BAA8B;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;YACjC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9D;IACL,CAAC;IAED;;;QAGI;IACG,iBAAiB,CAAC,OAAgC;QACrD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAc,EAAE,KAAa;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,MAAc;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,kCAAkC;IAClC,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,2BAA2B;IACpB,YAAY;QACf,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,mCAAmC;IAC5B,SAAS,CAAC,mBAAwB;QACrC,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClD,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACxD,CAAC;IAED,6BAA6B;IACtB,KAAK,CAAC,mBAAwB;QACjC,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACtD,CAAC;CACJ","sourcesContent":["/*\r\n * Base Gradient class. Should not be used directly.\r\n */\r\n\r\nimport type { ICanvasGradient, ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Type that represents a single stop on the gradient.\r\n */\r\nexport type GradientColorStop = {\r\n /**\r\n * Offset from the start where the color will be applied.\r\n */\r\n offset: number;\r\n /**\r\n * Color to be applied.\r\n */\r\n color: string;\r\n};\r\n\r\n/**\r\n * Class that serves as a base for all the gradients created from context.\r\n */\r\nexport abstract class BaseGradient {\r\n private _colorStops: GradientColorStop[] = [];\r\n\r\n private _canvasGradient: CanvasGradient;\r\n private _context: ICanvasRenderingContext;\r\n private _gradientDirty: boolean = true;\r\n\r\n /**\r\n * Overwritten by child classes to create the canvas gradient.\r\n * @param context\r\n */\r\n protected abstract _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;\r\n\r\n private _addColorStopsToCanvasGradient() {\r\n for (const stop of this._colorStops) {\r\n this._canvasGradient.addColorStop(stop.offset, stop.color);\r\n }\r\n }\r\n\r\n /**\r\n * If there are any changes or the context changed, regenerate the canvas gradient object. Else,\r\n * reuse the existing gradient.\r\n **/\r\n public getCanvasGradient(context: ICanvasRenderingContext) {\r\n if (this._gradientDirty || this._context !== context) {\r\n this._context = context;\r\n this._canvasGradient = this._createCanvasGradient(context);\r\n this._addColorStopsToCanvasGradient();\r\n this._gradientDirty = false;\r\n }\r\n return this._canvasGradient;\r\n }\r\n\r\n /**\r\n * Adds a new color stop to the gradient.\r\n * @param offset the offset of the stop on the gradient. Should be between 0 and 1\r\n * @param color the color of the stop\r\n */\r\n public addColorStop(offset: number, color: string) {\r\n this._colorStops.push({ offset, color });\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Removes an existing color stop with the specified offset from the gradient\r\n * @param offset the offset of the stop to be removed\r\n */\r\n public removeColorStop(offset: number) {\r\n this._colorStops = this._colorStops.filter((colorStop) => colorStop.offset !== offset);\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Removes all color stops from the gradient\r\n */\r\n public clearColorStops() {\r\n this._colorStops = [];\r\n this._gradientDirty = true;\r\n }\r\n\r\n /** Color stops of the gradient */\r\n public get colorStops() {\r\n return this._colorStops;\r\n }\r\n\r\n /** Type of the gradient */\r\n public getClassName() {\r\n return \"BaseGradient\";\r\n }\r\n\r\n /** Serialize into a json object */\r\n public serialize(serializationObject: any) {\r\n serializationObject.colorStops = this._colorStops;\r\n serializationObject.className = this.getClassName();\r\n }\r\n\r\n /** Parse from json object */\r\n public parse(serializationObject: any) {\r\n this._colorStops = serializationObject.colorStops;\r\n }\r\n}\r\n"]}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import type { ICanvasGradient, ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
2
|
+
import { BaseGradient } from "./BaseGradient";
|
3
|
+
/**
|
4
|
+
* Gradient along a line that connects two coordinates.
|
5
|
+
* These coordinates are relative to the canvas' space, not to any control's space.
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient
|
7
|
+
*/
|
8
|
+
export declare class LinearGradient extends BaseGradient {
|
9
|
+
private _x0;
|
10
|
+
private _y0;
|
11
|
+
private _x1;
|
12
|
+
private _y1;
|
13
|
+
/**
|
14
|
+
* Creates a new linear gradient
|
15
|
+
* @param x0
|
16
|
+
* @param y0
|
17
|
+
* @param x1
|
18
|
+
* @param y1
|
19
|
+
*/
|
20
|
+
constructor(x0?: number, y0?: number, x1?: number, y1?: number);
|
21
|
+
protected _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;
|
22
|
+
/** X axis coordinate of the starting point in the line */
|
23
|
+
get x0(): number;
|
24
|
+
/** X axis coordinate of the ending point in the line */
|
25
|
+
get x1(): number;
|
26
|
+
/** Y axis coordinate of the starting point in the line */
|
27
|
+
get y0(): number;
|
28
|
+
/** Y axis coordinate of the ending point in the line */
|
29
|
+
get y1(): number;
|
30
|
+
/**
|
31
|
+
* Class name of the gradient
|
32
|
+
* @returns the class name of the gradient
|
33
|
+
*/
|
34
|
+
getClassName(): string;
|
35
|
+
/**
|
36
|
+
* Serializes this gradient
|
37
|
+
* @param serializationObject the object to serialize to
|
38
|
+
*/
|
39
|
+
serialize(serializationObject: any): void;
|
40
|
+
/**
|
41
|
+
* Parses a gradient from a serialization object
|
42
|
+
* @param serializationObject the object to parse from
|
43
|
+
*/
|
44
|
+
parse(serializationObject: any): void;
|
45
|
+
}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
import { BaseGradient } from "./BaseGradient.js";
|
2
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
3
|
+
/**
|
4
|
+
* Gradient along a line that connects two coordinates.
|
5
|
+
* These coordinates are relative to the canvas' space, not to any control's space.
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient
|
7
|
+
*/
|
8
|
+
export class LinearGradient extends BaseGradient {
|
9
|
+
/**
|
10
|
+
* Creates a new linear gradient
|
11
|
+
* @param x0
|
12
|
+
* @param y0
|
13
|
+
* @param x1
|
14
|
+
* @param y1
|
15
|
+
*/
|
16
|
+
constructor(x0, y0, x1, y1) {
|
17
|
+
super();
|
18
|
+
this._x0 = x0 !== null && x0 !== void 0 ? x0 : 0;
|
19
|
+
this._y0 = y0 !== null && y0 !== void 0 ? y0 : 0;
|
20
|
+
this._x1 = x1 !== null && x1 !== void 0 ? x1 : 0;
|
21
|
+
this._y1 = y1 !== null && y1 !== void 0 ? y1 : 0;
|
22
|
+
}
|
23
|
+
_createCanvasGradient(context) {
|
24
|
+
return context.createLinearGradient(this._x0, this._y0, this._x1, this._y1);
|
25
|
+
}
|
26
|
+
/** X axis coordinate of the starting point in the line */
|
27
|
+
get x0() {
|
28
|
+
return this._x0;
|
29
|
+
}
|
30
|
+
/** X axis coordinate of the ending point in the line */
|
31
|
+
get x1() {
|
32
|
+
return this._x1;
|
33
|
+
}
|
34
|
+
/** Y axis coordinate of the starting point in the line */
|
35
|
+
get y0() {
|
36
|
+
return this._y0;
|
37
|
+
}
|
38
|
+
/** Y axis coordinate of the ending point in the line */
|
39
|
+
get y1() {
|
40
|
+
return this._y1;
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Class name of the gradient
|
44
|
+
* @returns the class name of the gradient
|
45
|
+
*/
|
46
|
+
getClassName() {
|
47
|
+
return "LinearGradient";
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* Serializes this gradient
|
51
|
+
* @param serializationObject the object to serialize to
|
52
|
+
*/
|
53
|
+
serialize(serializationObject) {
|
54
|
+
super.serialize(serializationObject);
|
55
|
+
serializationObject.x0 = this._x0;
|
56
|
+
serializationObject.y0 = this._y0;
|
57
|
+
serializationObject.x1 = this._x1;
|
58
|
+
serializationObject.y1 = this._y1;
|
59
|
+
}
|
60
|
+
/**
|
61
|
+
* Parses a gradient from a serialization object
|
62
|
+
* @param serializationObject the object to parse from
|
63
|
+
*/
|
64
|
+
parse(serializationObject) {
|
65
|
+
super.parse(serializationObject);
|
66
|
+
this._x0 = serializationObject.x0;
|
67
|
+
this._y0 = serializationObject.y0;
|
68
|
+
this._x1 = serializationObject.x1;
|
69
|
+
this._y1 = serializationObject.y1;
|
70
|
+
}
|
71
|
+
}
|
72
|
+
RegisterClass("BABYLON.GUI.LinearGradient", LinearGradient);
|
73
|
+
//# sourceMappingURL=LinearGradient.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/gradient/LinearGradient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,0CAA4B;AAEpD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAM5C;;;;;;OAMG;IACH,YAAY,EAAW,EAAE,EAAW,EAAE,EAAW,EAAE,EAAW;QAC1D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC,CAAC;IACvB,CAAC;IAES,qBAAqB,CAAC,OAAgC;QAC5D,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,0DAA0D;IAC1D,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,wDAAwD;IACxD,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,0DAA0D;IAC1D,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,wDAAwD;IACxD,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,mBAAwB;QACrC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACrC,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClC,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClC,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClC,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAwB;QACjC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC;IACtC,CAAC;CACJ;AACD,aAAa,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC","sourcesContent":["import type { ICanvasGradient, ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\nimport { BaseGradient } from \"./BaseGradient\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\n/**\r\n * Gradient along a line that connects two coordinates.\r\n * These coordinates are relative to the canvas' space, not to any control's space.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient\r\n */\r\nexport class LinearGradient extends BaseGradient {\r\n private _x0: number;\r\n private _y0: number;\r\n private _x1: number;\r\n private _y1: number;\r\n\r\n /**\r\n * Creates a new linear gradient\r\n * @param x0\r\n * @param y0\r\n * @param x1\r\n * @param y1\r\n */\r\n constructor(x0?: number, y0?: number, x1?: number, y1?: number) {\r\n super();\r\n this._x0 = x0 ?? 0;\r\n this._y0 = y0 ?? 0;\r\n this._x1 = x1 ?? 0;\r\n this._y1 = y1 ?? 0;\r\n }\r\n\r\n protected _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient {\r\n return context.createLinearGradient(this._x0, this._y0, this._x1, this._y1);\r\n }\r\n\r\n /** X axis coordinate of the starting point in the line */\r\n public get x0() {\r\n return this._x0;\r\n }\r\n\r\n /** X axis coordinate of the ending point in the line */\r\n public get x1() {\r\n return this._x1;\r\n }\r\n\r\n /** Y axis coordinate of the starting point in the line */\r\n public get y0() {\r\n return this._y0;\r\n }\r\n\r\n /** Y axis coordinate of the ending point in the line */\r\n public get y1() {\r\n return this._y1;\r\n }\r\n\r\n /**\r\n * Class name of the gradient\r\n * @returns the class name of the gradient\r\n */\r\n public getClassName(): string {\r\n return \"LinearGradient\";\r\n }\r\n\r\n /**\r\n * Serializes this gradient\r\n * @param serializationObject the object to serialize to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.x0 = this._x0;\r\n serializationObject.y0 = this._y0;\r\n serializationObject.x1 = this._x1;\r\n serializationObject.y1 = this._y1;\r\n }\r\n\r\n /**\r\n * Parses a gradient from a serialization object\r\n * @param serializationObject the object to parse from\r\n */\r\n public parse(serializationObject: any): void {\r\n super.parse(serializationObject);\r\n this._x0 = serializationObject.x0;\r\n this._y0 = serializationObject.y0;\r\n this._x1 = serializationObject.x1;\r\n this._y1 = serializationObject.y1;\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.LinearGradient\", LinearGradient);\r\n"]}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import type { ICanvasGradient, ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
2
|
+
import { BaseGradient } from "./BaseGradient";
|
3
|
+
/**
|
4
|
+
* Gradient formed from two circles with their own centers and radius.
|
5
|
+
* The coordinates of the circles centers are relative to the canvas' space, not to any control's space.
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createRadialGradient
|
7
|
+
*/
|
8
|
+
export declare class RadialGradient extends BaseGradient {
|
9
|
+
private _x0;
|
10
|
+
private _y0;
|
11
|
+
private _r0;
|
12
|
+
private _x1;
|
13
|
+
private _y1;
|
14
|
+
private _r1;
|
15
|
+
/**
|
16
|
+
* Creates a new radial gradient
|
17
|
+
* @param x0 x coordinate of the first circle's center
|
18
|
+
* @param y0 y coordinate of the first circle's center
|
19
|
+
* @param r0 radius of the first circle
|
20
|
+
* @param x1 x coordinate of the second circle's center
|
21
|
+
* @param y1 y coordinate of the second circle's center
|
22
|
+
* @param r1 radius of the second circle
|
23
|
+
*/
|
24
|
+
constructor(x0?: number, y0?: number, r0?: number, x1?: number, y1?: number, r1?: number);
|
25
|
+
protected _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;
|
26
|
+
/** x coordinate of the first circle's center */
|
27
|
+
get x0(): number;
|
28
|
+
/** x coordinate of the second circle's center */
|
29
|
+
get x1(): number;
|
30
|
+
/** y coordinate of the first circle's center */
|
31
|
+
get y0(): number;
|
32
|
+
/** y coordinate of the second circle's center */
|
33
|
+
get y1(): number;
|
34
|
+
/** radius of the first circle */
|
35
|
+
get r0(): number;
|
36
|
+
/** radius of the second circle */
|
37
|
+
get r1(): number;
|
38
|
+
/**
|
39
|
+
* Class name of the gradient
|
40
|
+
* @returns the class name of the gradient
|
41
|
+
*/
|
42
|
+
getClassName(): string;
|
43
|
+
/**
|
44
|
+
* Serializes this gradient
|
45
|
+
* @param serializationObject the object to serialize to
|
46
|
+
*/
|
47
|
+
serialize(serializationObject: any): void;
|
48
|
+
/**
|
49
|
+
* Parses a gradient from a serialization object
|
50
|
+
* @param serializationObject the object to parse from
|
51
|
+
*/
|
52
|
+
parse(serializationObject: any): void;
|
53
|
+
}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import { BaseGradient } from "./BaseGradient.js";
|
2
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
3
|
+
/**
|
4
|
+
* Gradient formed from two circles with their own centers and radius.
|
5
|
+
* The coordinates of the circles centers are relative to the canvas' space, not to any control's space.
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createRadialGradient
|
7
|
+
*/
|
8
|
+
export class RadialGradient extends BaseGradient {
|
9
|
+
/**
|
10
|
+
* Creates a new radial gradient
|
11
|
+
* @param x0 x coordinate of the first circle's center
|
12
|
+
* @param y0 y coordinate of the first circle's center
|
13
|
+
* @param r0 radius of the first circle
|
14
|
+
* @param x1 x coordinate of the second circle's center
|
15
|
+
* @param y1 y coordinate of the second circle's center
|
16
|
+
* @param r1 radius of the second circle
|
17
|
+
*/
|
18
|
+
constructor(x0, y0, r0, x1, y1, r1) {
|
19
|
+
super();
|
20
|
+
this._x0 = x0 !== null && x0 !== void 0 ? x0 : 0;
|
21
|
+
this._y0 = y0 !== null && y0 !== void 0 ? y0 : 0;
|
22
|
+
this._r0 = r0 !== null && r0 !== void 0 ? r0 : 0;
|
23
|
+
this._x1 = x1 !== null && x1 !== void 0 ? x1 : 0;
|
24
|
+
this._y1 = y1 !== null && y1 !== void 0 ? y1 : 0;
|
25
|
+
this._r1 = r1 !== null && r1 !== void 0 ? r1 : 0;
|
26
|
+
}
|
27
|
+
_createCanvasGradient(context) {
|
28
|
+
return context.createRadialGradient(this._x0, this._y0, this._r0, this._x1, this._y1, this._r1);
|
29
|
+
}
|
30
|
+
/** x coordinate of the first circle's center */
|
31
|
+
get x0() {
|
32
|
+
return this._x0;
|
33
|
+
}
|
34
|
+
/** x coordinate of the second circle's center */
|
35
|
+
get x1() {
|
36
|
+
return this._x1;
|
37
|
+
}
|
38
|
+
/** y coordinate of the first circle's center */
|
39
|
+
get y0() {
|
40
|
+
return this._y0;
|
41
|
+
}
|
42
|
+
/** y coordinate of the second circle's center */
|
43
|
+
get y1() {
|
44
|
+
return this._y1;
|
45
|
+
}
|
46
|
+
/** radius of the first circle */
|
47
|
+
get r0() {
|
48
|
+
return this._r0;
|
49
|
+
}
|
50
|
+
/** radius of the second circle */
|
51
|
+
get r1() {
|
52
|
+
return this._r1;
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Class name of the gradient
|
56
|
+
* @returns the class name of the gradient
|
57
|
+
*/
|
58
|
+
getClassName() {
|
59
|
+
return "RadialGradient";
|
60
|
+
}
|
61
|
+
/**
|
62
|
+
* Serializes this gradient
|
63
|
+
* @param serializationObject the object to serialize to
|
64
|
+
*/
|
65
|
+
serialize(serializationObject) {
|
66
|
+
super.serialize(serializationObject);
|
67
|
+
serializationObject.x0 = this._x0;
|
68
|
+
serializationObject.y0 = this._y0;
|
69
|
+
serializationObject.r0 = this._r0;
|
70
|
+
serializationObject.x1 = this._x1;
|
71
|
+
serializationObject.y1 = this._y1;
|
72
|
+
serializationObject.r1 = this._r1;
|
73
|
+
}
|
74
|
+
/**
|
75
|
+
* Parses a gradient from a serialization object
|
76
|
+
* @param serializationObject the object to parse from
|
77
|
+
*/
|
78
|
+
parse(serializationObject) {
|
79
|
+
super.parse(serializationObject);
|
80
|
+
this._x0 = serializationObject.x0;
|
81
|
+
this._y0 = serializationObject.y0;
|
82
|
+
this._r0 = serializationObject.r0;
|
83
|
+
this._x1 = serializationObject.x1;
|
84
|
+
this._y1 = serializationObject.y1;
|
85
|
+
this._r1 = serializationObject.r1;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
RegisterClass("BABYLON.GUI.RadialGradient", RadialGradient);
|
89
|
+
//# sourceMappingURL=RadialGradient.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RadialGradient.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/gradient/RadialGradient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ICanvasGradient, ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\nimport { BaseGradient } from \"./BaseGradient\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\n/**\r\n * Gradient formed from two circles with their own centers and radius.\r\n * The coordinates of the circles centers are relative to the canvas' space, not to any control's space.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createRadialGradient\r\n */\r\nexport class RadialGradient extends BaseGradient {\r\n private _x0: number;\r\n private _y0: number;\r\n private _r0: number;\r\n private _x1: number;\r\n private _y1: number;\r\n private _r1: number;\r\n\r\n /**\r\n * Creates a new radial gradient\r\n * @param x0 x coordinate of the first circle's center\r\n * @param y0 y coordinate of the first circle's center\r\n * @param r0 radius of the first circle\r\n * @param x1 x coordinate of the second circle's center\r\n * @param y1 y coordinate of the second circle's center\r\n * @param r1 radius of the second circle\r\n */\r\n constructor(x0?: number, y0?: number, r0?: number, x1?: number, y1?: number, r1?: number) {\r\n super();\r\n this._x0 = x0 ?? 0;\r\n this._y0 = y0 ?? 0;\r\n this._r0 = r0 ?? 0;\r\n this._x1 = x1 ?? 0;\r\n this._y1 = y1 ?? 0;\r\n this._r1 = r1 ?? 0;\r\n }\r\n\r\n protected _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient {\r\n return context.createRadialGradient(this._x0, this._y0, this._r0, this._x1, this._y1, this._r1);\r\n }\r\n\r\n /** x coordinate of the first circle's center */\r\n public get x0() {\r\n return this._x0;\r\n }\r\n\r\n /** x coordinate of the second circle's center */\r\n public get x1() {\r\n return this._x1;\r\n }\r\n\r\n /** y coordinate of the first circle's center */\r\n public get y0() {\r\n return this._y0;\r\n }\r\n\r\n /** y coordinate of the second circle's center */\r\n public get y1() {\r\n return this._y1;\r\n }\r\n\r\n /** radius of the first circle */\r\n public get r0() {\r\n return this._r0;\r\n }\r\n\r\n /** radius of the second circle */\r\n public get r1() {\r\n return this._r1;\r\n }\r\n\r\n /**\r\n * Class name of the gradient\r\n * @returns the class name of the gradient\r\n */\r\n public getClassName() {\r\n return \"RadialGradient\";\r\n }\r\n\r\n /**\r\n * Serializes this gradient\r\n * @param serializationObject the object to serialize to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.x0 = this._x0;\r\n serializationObject.y0 = this._y0;\r\n serializationObject.r0 = this._r0;\r\n serializationObject.x1 = this._x1;\r\n serializationObject.y1 = this._y1;\r\n serializationObject.r1 = this._r1;\r\n }\r\n\r\n /**\r\n * Parses a gradient from a serialization object\r\n * @param serializationObject the object to parse from\r\n */\r\n public parse(serializationObject: any): void {\r\n super.parse(serializationObject);\r\n this._x0 = serializationObject.x0;\r\n this._y0 = serializationObject.y0;\r\n this._r0 = serializationObject.r0;\r\n this._x1 = serializationObject.x1;\r\n this._y1 = serializationObject.y1;\r\n this._r1 = serializationObject.r1;\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.RadialGradient\", RadialGradient);\r\n"]}
|
package/2D/controls/index.d.ts
CHANGED
@@ -29,3 +29,6 @@ export * from "./sliders/imageBasedSlider";
|
|
29
29
|
export * from "./sliders/scrollBar";
|
30
30
|
export * from "./sliders/imageScrollBar";
|
31
31
|
export * from "./statics";
|
32
|
+
export * from "./gradient/BaseGradient";
|
33
|
+
export * from "./gradient/LinearGradient";
|
34
|
+
export * from "./gradient/RadialGradient";
|
package/2D/controls/index.js
CHANGED
@@ -29,4 +29,7 @@ export * from "./sliders/imageBasedSlider.js";
|
|
29
29
|
export * from "./sliders/scrollBar.js";
|
30
30
|
export * from "./sliders/imageScrollBar.js";
|
31
31
|
export * from "./statics.js";
|
32
|
+
export * from "./gradient/BaseGradient.js";
|
33
|
+
export * from "./gradient/LinearGradient.js";
|
34
|
+
export * from "./gradient/RadialGradient.js";
|
32
35
|
//# sourceMappingURL=index.js.map
|
package/2D/controls/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/controls/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC","sourcesContent":["export * from \"./button\";\r\nexport * from \"./checkbox\";\r\nexport * from \"./colorpicker\";\r\nexport * from \"./container\";\r\nexport * from \"./control\";\r\nexport * from \"./ellipse\";\r\nexport * from \"./focusableButton\";\r\nexport * from \"./focusableControl\";\r\nexport * from \"./grid\";\r\nexport * from \"./image\";\r\nexport * from \"./inputText\";\r\nexport * from \"./inputTextArea\";\r\nexport * from \"./inputPassword\";\r\nexport * from \"./line\";\r\nexport * from \"./multiLine\";\r\nexport * from \"./radioButton\";\r\nexport * from \"./stackPanel\";\r\nexport * from \"./selector\";\r\nexport * from \"./scrollViewers/scrollViewer\";\r\nexport * from \"./textBlock\";\r\nexport * from \"./textWrapper\";\r\nexport * from \"./toggleButton\";\r\nexport * from \"./virtualKeyboard\";\r\nexport * from \"./rectangle\";\r\nexport * from \"./displayGrid\";\r\nexport * from \"./sliders/baseSlider\";\r\nexport * from \"./sliders/slider\";\r\nexport * from \"./sliders/imageBasedSlider\";\r\nexport * from \"./sliders/scrollBar\";\r\nexport * from \"./sliders/imageScrollBar\";\r\nexport * from \"./statics\";\r\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/controls/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC","sourcesContent":["export * from \"./button\";\r\nexport * from \"./checkbox\";\r\nexport * from \"./colorpicker\";\r\nexport * from \"./container\";\r\nexport * from \"./control\";\r\nexport * from \"./ellipse\";\r\nexport * from \"./focusableButton\";\r\nexport * from \"./focusableControl\";\r\nexport * from \"./grid\";\r\nexport * from \"./image\";\r\nexport * from \"./inputText\";\r\nexport * from \"./inputTextArea\";\r\nexport * from \"./inputPassword\";\r\nexport * from \"./line\";\r\nexport * from \"./multiLine\";\r\nexport * from \"./radioButton\";\r\nexport * from \"./stackPanel\";\r\nexport * from \"./selector\";\r\nexport * from \"./scrollViewers/scrollViewer\";\r\nexport * from \"./textBlock\";\r\nexport * from \"./textWrapper\";\r\nexport * from \"./toggleButton\";\r\nexport * from \"./virtualKeyboard\";\r\nexport * from \"./rectangle\";\r\nexport * from \"./displayGrid\";\r\nexport * from \"./sliders/baseSlider\";\r\nexport * from \"./sliders/slider\";\r\nexport * from \"./sliders/imageBasedSlider\";\r\nexport * from \"./sliders/scrollBar\";\r\nexport * from \"./sliders/imageScrollBar\";\r\nexport * from \"./statics\";\r\nexport * from \"./gradient/BaseGradient\";\r\nexport * from \"./gradient/LinearGradient\";\r\nexport * from \"./gradient/RadialGradient\";\r\n"]}
|
package/2D/controls/line.js
CHANGED
@@ -145,7 +145,7 @@ export class Line extends Control {
|
|
145
145
|
context.shadowOffsetY = this.shadowOffsetY;
|
146
146
|
}
|
147
147
|
this._applyStates(context);
|
148
|
-
context.strokeStyle = this.
|
148
|
+
context.strokeStyle = this._getColor(context);
|
149
149
|
context.lineWidth = this._lineWidth;
|
150
150
|
context.setLineDash(this._dash);
|
151
151
|
context.beginPath();
|
package/2D/controls/line.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/controls/line.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\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport type { Scene } from \"core/scene\";\r\n\r\nimport { Control } from \"./control\";\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 if (this._connectedControl === value) {\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 set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n /** Gets or sets vertical alignment */\r\n public 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 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 _getTypeName(): string {\r\n return \"Line\";\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 context.strokeStyle = this.color;\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 _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 protected _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 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.Identity(), 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 _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\nRegisterClass(\"BABYLON.GUI.Line\", Line);\r\n"]}
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/controls/line.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\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport type { Scene } from \"core/scene\";\r\n\r\nimport { Control } from \"./control\";\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 if (this._connectedControl === value) {\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 set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n /** Gets or sets vertical alignment */\r\n public 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 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 _getTypeName(): string {\r\n return \"Line\";\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 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 _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 protected _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 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.Identity(), 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 _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\nRegisterClass(\"BABYLON.GUI.Line\", Line);\r\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Container } from "./container";
|
2
2
|
import type { Measure } from "../measure";
|
3
|
-
import type { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
3
|
+
import type { ICanvasGradient, ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
4
4
|
/** Class used to create rectangle container */
|
5
5
|
export declare class Rectangle extends Container {
|
6
6
|
name?: string | undefined;
|
@@ -22,6 +22,7 @@ export declare class Rectangle extends Container {
|
|
22
22
|
protected _computeAdditionnalOffsetX(): 1 | 0;
|
23
23
|
/** @internal */
|
24
24
|
protected _computeAdditionnalOffsetY(): 1 | 0;
|
25
|
+
protected _getRectangleFill(context: ICanvasRenderingContext): string | ICanvasGradient;
|
25
26
|
protected _localDraw(context: ICanvasRenderingContext): void;
|
26
27
|
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
27
28
|
private _drawRoundedRect;
|