@babylonjs/gui 9.12.1 → 9.14.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/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/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/pure.d.ts +13 -0
- package/2D/pure.js +15 -0
- package/2D/pure.js.map +1 -0
- 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/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 +317 -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 +500 -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 +575 -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/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 +119 -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 +311 -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 +452 -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 +544 -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 +239 -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 +874 -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 +874 -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
|
@@ -1,102 +1,7 @@
|
|
|
1
|
-
import { type Nullable } from "@babylonjs/core/types.js";
|
|
2
|
-
import { type Matrix, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
|
-
import { type BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
|
|
4
|
-
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
|
5
|
-
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
6
|
-
import { type AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
7
|
-
import { type SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
|
|
8
|
-
import { type Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
|
9
|
-
import { type Scene } from "@babylonjs/core/scene.js";
|
|
10
|
-
import { Color3, Color4 } from "@babylonjs/core/Maths/math.color.js";
|
|
11
|
-
import "./shaders/fluent.vertex.js";
|
|
12
|
-
import "./shaders/fluent.fragment.js";
|
|
13
|
-
/** @internal */
|
|
14
|
-
export declare class FluentMaterialDefines extends MaterialDefines {
|
|
15
|
-
INNERGLOW: boolean;
|
|
16
|
-
BORDER: boolean;
|
|
17
|
-
HOVERLIGHT: boolean;
|
|
18
|
-
TEXTURE: boolean;
|
|
19
|
-
constructor();
|
|
20
|
-
}
|
|
21
1
|
/**
|
|
22
|
-
*
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./fluentMaterial.pure" for tree-shakeable, side-effect-free usage.
|
|
23
4
|
*/
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* Gets or sets inner glow intensity. A value of 0 means no glow (default is 0.5)
|
|
28
|
-
*/
|
|
29
|
-
innerGlowColorIntensity: number;
|
|
30
|
-
/**
|
|
31
|
-
* Gets or sets the inner glow color (white by default)
|
|
32
|
-
*/
|
|
33
|
-
innerGlowColor: Color3;
|
|
34
|
-
/**
|
|
35
|
-
* Gets or sets the albedo color (Default is Color3(0.3, 0.35, 0.4))
|
|
36
|
-
*/
|
|
37
|
-
albedoColor: Color3;
|
|
38
|
-
/**
|
|
39
|
-
* Gets or sets a boolean indicating if borders must be rendered (default is false)
|
|
40
|
-
*/
|
|
41
|
-
renderBorders: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Gets or sets border width (default is 0.5)
|
|
44
|
-
*/
|
|
45
|
-
borderWidth: number;
|
|
46
|
-
/**
|
|
47
|
-
* Gets or sets a value indicating the smoothing value applied to border edges (0.02 by default)
|
|
48
|
-
*/
|
|
49
|
-
edgeSmoothingValue: number;
|
|
50
|
-
/**
|
|
51
|
-
* Gets or sets the minimum value that can be applied to border width (default is 0.1)
|
|
52
|
-
*/
|
|
53
|
-
borderMinValue: number;
|
|
54
|
-
/**
|
|
55
|
-
* Gets or sets a boolean indicating if hover light must be rendered (default is false)
|
|
56
|
-
*/
|
|
57
|
-
renderHoverLight: boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Gets or sets the radius used to render the hover light (default is 0.01)
|
|
60
|
-
*/
|
|
61
|
-
hoverRadius: number;
|
|
62
|
-
/**
|
|
63
|
-
* Gets or sets the color used to render the hover light (default is Color4(0.3, 0.3, 0.3, 1.0))
|
|
64
|
-
*/
|
|
65
|
-
hoverColor: Color4;
|
|
66
|
-
/**
|
|
67
|
-
* Gets or sets the hover light position in world space (default is Vector3.Zero())
|
|
68
|
-
*/
|
|
69
|
-
hoverPosition: Vector3;
|
|
70
|
-
private _albedoTexture;
|
|
71
|
-
/** Gets or sets the texture to use for albedo color */
|
|
72
|
-
albedoTexture: Nullable<BaseTexture>;
|
|
73
|
-
/**
|
|
74
|
-
* Creates a new Fluent material
|
|
75
|
-
* @param name defines the name of the material
|
|
76
|
-
* @param scene defines the hosting scene
|
|
77
|
-
*/
|
|
78
|
-
constructor(name: string, scene?: Scene);
|
|
79
|
-
needAlphaBlending(): boolean;
|
|
80
|
-
needAlphaTesting(): boolean;
|
|
81
|
-
getAlphaTestTexture(): Nullable<BaseTexture>;
|
|
82
|
-
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh): boolean;
|
|
83
|
-
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
|
|
84
|
-
getActiveTextures(): BaseTexture[];
|
|
85
|
-
hasTexture(texture: BaseTexture): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Disposes the material.
|
|
88
|
-
* @param forceDisposeEffect specifies if effects should be forcefully disposed
|
|
89
|
-
*/
|
|
90
|
-
dispose(forceDisposeEffect?: boolean): void;
|
|
91
|
-
clone(name: string): FluentMaterial;
|
|
92
|
-
serialize(): any;
|
|
93
|
-
getClassName(): string;
|
|
94
|
-
/**
|
|
95
|
-
* Creates a fluent material from parsed material data.
|
|
96
|
-
* @param source defines the JSON representation of the material
|
|
97
|
-
* @param scene defines the hosting scene
|
|
98
|
-
* @param rootUrl defines the root URL to use to load textures and relative dependencies
|
|
99
|
-
* @returns a new fluent material
|
|
100
|
-
*/
|
|
101
|
-
static Parse(source: any, scene: Scene, rootUrl: string): FluentMaterial;
|
|
102
|
-
}
|
|
5
|
+
export * from "./fluentMaterial.pure.js";
|
|
6
|
+
import "./shaders/fluent.vertex.js";
|
|
7
|
+
import "./shaders/fluent.fragment.js";
|
|
@@ -1,308 +1,10 @@
|
|
|
1
|
-
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
-
import { serializeAsColor4, serializeAsVector3, serializeAsTexture, serialize, expandToProperty, serializeAsColor3 } from "@babylonjs/core/Misc/decorators.js";
|
|
3
|
-
import { SerializationHelper } from "@babylonjs/core/Misc/decorators.serialization.js";
|
|
4
|
-
import { Vector3, TmpVectors } from "@babylonjs/core/Maths/math.vector.js";
|
|
5
|
-
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
|
6
|
-
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
7
|
-
import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
|
|
8
|
-
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
9
|
-
import { Color3, Color4 } from "@babylonjs/core/Maths/math.color.js";
|
|
10
|
-
import "./shaders/fluent.vertex.js";
|
|
11
|
-
import "./shaders/fluent.fragment.js";
|
|
12
|
-
import { PrepareUniformsAndSamplersList } from "@babylonjs/core/Materials/materialHelper.functions.js";
|
|
13
|
-
/** @internal */
|
|
14
|
-
export class FluentMaterialDefines extends MaterialDefines {
|
|
15
|
-
constructor() {
|
|
16
|
-
super();
|
|
17
|
-
this.INNERGLOW = false;
|
|
18
|
-
this.BORDER = false;
|
|
19
|
-
this.HOVERLIGHT = false;
|
|
20
|
-
this.TEXTURE = false;
|
|
21
|
-
this.rebuild();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
1
|
/**
|
|
25
|
-
*
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./fluentMaterial.pure" for tree-shakeable, side-effect-free usage.
|
|
26
4
|
*/
|
|
27
|
-
export
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*/
|
|
33
|
-
constructor(name, scene) {
|
|
34
|
-
super(name, scene);
|
|
35
|
-
this._shadersLoaded = false;
|
|
36
|
-
/**
|
|
37
|
-
* Gets or sets inner glow intensity. A value of 0 means no glow (default is 0.5)
|
|
38
|
-
*/
|
|
39
|
-
this.innerGlowColorIntensity = 0.5;
|
|
40
|
-
/**
|
|
41
|
-
* Gets or sets the inner glow color (white by default)
|
|
42
|
-
*/
|
|
43
|
-
this.innerGlowColor = new Color3(1.0, 1.0, 1.0);
|
|
44
|
-
/**
|
|
45
|
-
* Gets or sets the albedo color (Default is Color3(0.3, 0.35, 0.4))
|
|
46
|
-
*/
|
|
47
|
-
this.albedoColor = new Color3(0.3, 0.35, 0.4);
|
|
48
|
-
/**
|
|
49
|
-
* Gets or sets a boolean indicating if borders must be rendered (default is false)
|
|
50
|
-
*/
|
|
51
|
-
this.renderBorders = false;
|
|
52
|
-
/**
|
|
53
|
-
* Gets or sets border width (default is 0.5)
|
|
54
|
-
*/
|
|
55
|
-
this.borderWidth = 0.5;
|
|
56
|
-
/**
|
|
57
|
-
* Gets or sets a value indicating the smoothing value applied to border edges (0.02 by default)
|
|
58
|
-
*/
|
|
59
|
-
this.edgeSmoothingValue = 0.02;
|
|
60
|
-
/**
|
|
61
|
-
* Gets or sets the minimum value that can be applied to border width (default is 0.1)
|
|
62
|
-
*/
|
|
63
|
-
this.borderMinValue = 0.1;
|
|
64
|
-
/**
|
|
65
|
-
* Gets or sets a boolean indicating if hover light must be rendered (default is false)
|
|
66
|
-
*/
|
|
67
|
-
this.renderHoverLight = false;
|
|
68
|
-
/**
|
|
69
|
-
* Gets or sets the radius used to render the hover light (default is 0.01)
|
|
70
|
-
*/
|
|
71
|
-
this.hoverRadius = 0.01;
|
|
72
|
-
/**
|
|
73
|
-
* Gets or sets the color used to render the hover light (default is Color4(0.3, 0.3, 0.3, 1.0))
|
|
74
|
-
*/
|
|
75
|
-
this.hoverColor = new Color4(0.3, 0.3, 0.3, 1.0);
|
|
76
|
-
/**
|
|
77
|
-
* Gets or sets the hover light position in world space (default is Vector3.Zero())
|
|
78
|
-
*/
|
|
79
|
-
this.hoverPosition = Vector3.Zero();
|
|
80
|
-
}
|
|
81
|
-
needAlphaBlending() {
|
|
82
|
-
return this.alpha !== 1.0;
|
|
83
|
-
}
|
|
84
|
-
needAlphaTesting() {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
getAlphaTestTexture() {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
isReadyForSubMesh(mesh, subMesh) {
|
|
91
|
-
const drawWrapper = subMesh._drawWrapper;
|
|
92
|
-
if (this.isFrozen) {
|
|
93
|
-
if (drawWrapper.effect && drawWrapper._wasPreviouslyReady) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (!subMesh.materialDefines) {
|
|
98
|
-
subMesh.materialDefines = new FluentMaterialDefines();
|
|
99
|
-
}
|
|
100
|
-
const scene = this.getScene();
|
|
101
|
-
const defines = subMesh.materialDefines;
|
|
102
|
-
if (!this.checkReadyOnEveryCall && subMesh.effect) {
|
|
103
|
-
if (defines._renderId === scene.getRenderId()) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
if (defines._areTexturesDirty) {
|
|
108
|
-
defines.INNERGLOW = this.innerGlowColorIntensity > 0;
|
|
109
|
-
defines.BORDER = this.renderBorders;
|
|
110
|
-
defines.HOVERLIGHT = this.renderHoverLight;
|
|
111
|
-
if (this._albedoTexture) {
|
|
112
|
-
if (!this._albedoTexture.isReadyOrNotBlocking()) {
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
defines.TEXTURE = true;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
defines.TEXTURE = false;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
const engine = scene.getEngine();
|
|
124
|
-
// Get correct effect
|
|
125
|
-
if (defines.isDirty) {
|
|
126
|
-
defines.markAsProcessed();
|
|
127
|
-
scene.resetCachedMaterial();
|
|
128
|
-
//Attributes
|
|
129
|
-
const attribs = [VertexBuffer.PositionKind];
|
|
130
|
-
attribs.push(VertexBuffer.NormalKind);
|
|
131
|
-
attribs.push(VertexBuffer.UVKind);
|
|
132
|
-
const shaderName = "fluent";
|
|
133
|
-
const uniforms = [
|
|
134
|
-
"world",
|
|
135
|
-
"viewProjection",
|
|
136
|
-
"innerGlowColor",
|
|
137
|
-
"albedoColor",
|
|
138
|
-
"borderWidth",
|
|
139
|
-
"edgeSmoothingValue",
|
|
140
|
-
"scaleFactor",
|
|
141
|
-
"borderMinValue",
|
|
142
|
-
"hoverColor",
|
|
143
|
-
"hoverPosition",
|
|
144
|
-
"hoverRadius",
|
|
145
|
-
"textureMatrix",
|
|
146
|
-
];
|
|
147
|
-
const samplers = ["albedoSampler"];
|
|
148
|
-
const uniformBuffers = [];
|
|
149
|
-
PrepareUniformsAndSamplersList({
|
|
150
|
-
uniformsNames: uniforms,
|
|
151
|
-
uniformBuffersNames: uniformBuffers,
|
|
152
|
-
samplers: samplers,
|
|
153
|
-
defines: defines,
|
|
154
|
-
maxSimultaneousLights: 4,
|
|
155
|
-
shaderLanguage: this._shaderLanguage,
|
|
156
|
-
});
|
|
157
|
-
const join = defines.toString();
|
|
158
|
-
subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
|
|
159
|
-
attributes: attribs,
|
|
160
|
-
uniformsNames: uniforms,
|
|
161
|
-
uniformBuffersNames: uniformBuffers,
|
|
162
|
-
samplers: samplers,
|
|
163
|
-
defines: join,
|
|
164
|
-
fallbacks: null,
|
|
165
|
-
onCompiled: this.onCompiled,
|
|
166
|
-
onError: this.onError,
|
|
167
|
-
indexParameters: { maxSimultaneousLights: 4 },
|
|
168
|
-
shaderLanguage: this._shaderLanguage,
|
|
169
|
-
extraInitializationsAsync: this._shadersLoaded
|
|
170
|
-
? undefined
|
|
171
|
-
: async () => {
|
|
172
|
-
if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
|
|
173
|
-
await Promise.all([import("./wgsl/fluent.vertex.js"), import("./wgsl/fluent.fragment.js")]);
|
|
174
|
-
}
|
|
175
|
-
this._shadersLoaded = true;
|
|
176
|
-
},
|
|
177
|
-
}, engine), defines, this._materialContext);
|
|
178
|
-
}
|
|
179
|
-
if (!subMesh.effect || !subMesh.effect.isReady()) {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
defines._renderId = scene.getRenderId();
|
|
183
|
-
drawWrapper._wasPreviouslyReady = true;
|
|
184
|
-
return true;
|
|
185
|
-
}
|
|
186
|
-
bindForSubMesh(world, mesh, subMesh) {
|
|
187
|
-
const scene = this.getScene();
|
|
188
|
-
const defines = subMesh.materialDefines;
|
|
189
|
-
if (!defines) {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
const effect = subMesh.effect;
|
|
193
|
-
if (!effect) {
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
this._activeEffect = effect;
|
|
197
|
-
// Matrices
|
|
198
|
-
this.bindOnlyWorldMatrix(world);
|
|
199
|
-
this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
|
|
200
|
-
if (this._mustRebind(scene, effect, subMesh)) {
|
|
201
|
-
this._activeEffect.setColor4("albedoColor", this.albedoColor, this.alpha);
|
|
202
|
-
if (defines.INNERGLOW) {
|
|
203
|
-
this._activeEffect.setColor4("innerGlowColor", this.innerGlowColor, this.innerGlowColorIntensity);
|
|
204
|
-
}
|
|
205
|
-
if (defines.BORDER) {
|
|
206
|
-
this._activeEffect.setFloat("borderWidth", this.borderWidth);
|
|
207
|
-
this._activeEffect.setFloat("edgeSmoothingValue", this.edgeSmoothingValue);
|
|
208
|
-
this._activeEffect.setFloat("borderMinValue", this.borderMinValue);
|
|
209
|
-
mesh.getBoundingInfo().boundingBox.extendSize.multiplyToRef(mesh.scaling, TmpVectors.Vector3[0]);
|
|
210
|
-
this._activeEffect.setVector3("scaleFactor", TmpVectors.Vector3[0]);
|
|
211
|
-
}
|
|
212
|
-
if (defines.HOVERLIGHT) {
|
|
213
|
-
this._activeEffect.setDirectColor4("hoverColor", this.hoverColor);
|
|
214
|
-
this._activeEffect.setFloat("hoverRadius", this.hoverRadius);
|
|
215
|
-
this._activeEffect.setVector3("hoverPosition", this.hoverPosition);
|
|
216
|
-
}
|
|
217
|
-
if (defines.TEXTURE && this._albedoTexture) {
|
|
218
|
-
this._activeEffect.setTexture("albedoSampler", this._albedoTexture);
|
|
219
|
-
const matrix = this._albedoTexture.getTextureMatrix();
|
|
220
|
-
this._activeEffect.setMatrix("textureMatrix", matrix);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
this._afterBind(mesh, this._activeEffect, subMesh);
|
|
224
|
-
}
|
|
225
|
-
getActiveTextures() {
|
|
226
|
-
const activeTextures = super.getActiveTextures();
|
|
227
|
-
return activeTextures;
|
|
228
|
-
}
|
|
229
|
-
hasTexture(texture) {
|
|
230
|
-
if (super.hasTexture(texture)) {
|
|
231
|
-
return true;
|
|
232
|
-
}
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Disposes the material.
|
|
237
|
-
* @param forceDisposeEffect specifies if effects should be forcefully disposed
|
|
238
|
-
*/
|
|
239
|
-
dispose(forceDisposeEffect) {
|
|
240
|
-
super.dispose(forceDisposeEffect);
|
|
241
|
-
}
|
|
242
|
-
clone(name) {
|
|
243
|
-
return SerializationHelper.Clone(() => new FluentMaterial(name, this.getScene()), this);
|
|
244
|
-
}
|
|
245
|
-
serialize() {
|
|
246
|
-
const serializationObject = super.serialize();
|
|
247
|
-
serializationObject.customType = "BABYLON.GUI.FluentMaterial";
|
|
248
|
-
return serializationObject;
|
|
249
|
-
}
|
|
250
|
-
getClassName() {
|
|
251
|
-
return "FluentMaterial";
|
|
252
|
-
}
|
|
253
|
-
// Statics
|
|
254
|
-
/**
|
|
255
|
-
* Creates a fluent material from parsed material data.
|
|
256
|
-
* @param source defines the JSON representation of the material
|
|
257
|
-
* @param scene defines the hosting scene
|
|
258
|
-
* @param rootUrl defines the root URL to use to load textures and relative dependencies
|
|
259
|
-
* @returns a new fluent material
|
|
260
|
-
*/
|
|
261
|
-
static Parse(source, scene, rootUrl) {
|
|
262
|
-
return SerializationHelper.Parse(() => new FluentMaterial(source.name, scene), source, scene, rootUrl);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
__decorate([
|
|
266
|
-
serialize(),
|
|
267
|
-
expandToProperty("_markAllSubMeshesAsTexturesDirty")
|
|
268
|
-
], FluentMaterial.prototype, "innerGlowColorIntensity", void 0);
|
|
269
|
-
__decorate([
|
|
270
|
-
serializeAsColor3()
|
|
271
|
-
], FluentMaterial.prototype, "innerGlowColor", void 0);
|
|
272
|
-
__decorate([
|
|
273
|
-
serializeAsColor3()
|
|
274
|
-
], FluentMaterial.prototype, "albedoColor", void 0);
|
|
275
|
-
__decorate([
|
|
276
|
-
serialize(),
|
|
277
|
-
expandToProperty("_markAllSubMeshesAsTexturesDirty")
|
|
278
|
-
], FluentMaterial.prototype, "renderBorders", void 0);
|
|
279
|
-
__decorate([
|
|
280
|
-
serialize()
|
|
281
|
-
], FluentMaterial.prototype, "borderWidth", void 0);
|
|
282
|
-
__decorate([
|
|
283
|
-
serialize()
|
|
284
|
-
], FluentMaterial.prototype, "edgeSmoothingValue", void 0);
|
|
285
|
-
__decorate([
|
|
286
|
-
serialize()
|
|
287
|
-
], FluentMaterial.prototype, "borderMinValue", void 0);
|
|
288
|
-
__decorate([
|
|
289
|
-
serialize(),
|
|
290
|
-
expandToProperty("_markAllSubMeshesAsTexturesDirty")
|
|
291
|
-
], FluentMaterial.prototype, "renderHoverLight", void 0);
|
|
292
|
-
__decorate([
|
|
293
|
-
serialize()
|
|
294
|
-
], FluentMaterial.prototype, "hoverRadius", void 0);
|
|
295
|
-
__decorate([
|
|
296
|
-
serializeAsColor4()
|
|
297
|
-
], FluentMaterial.prototype, "hoverColor", void 0);
|
|
298
|
-
__decorate([
|
|
299
|
-
serializeAsVector3()
|
|
300
|
-
], FluentMaterial.prototype, "hoverPosition", void 0);
|
|
301
|
-
__decorate([
|
|
302
|
-
serializeAsTexture("albedoTexture")
|
|
303
|
-
], FluentMaterial.prototype, "_albedoTexture", void 0);
|
|
304
|
-
__decorate([
|
|
305
|
-
expandToProperty("_markAllSubMeshesAsTexturesAndMiscDirty")
|
|
306
|
-
], FluentMaterial.prototype, "albedoTexture", void 0);
|
|
307
|
-
RegisterClass("BABYLON.GUI.FluentMaterial", FluentMaterial);
|
|
5
|
+
export * from "./fluentMaterial.pure.js";
|
|
6
|
+
import "./shaders/fluent.vertex.js";
|
|
7
|
+
import "./shaders/fluent.fragment.js";
|
|
8
|
+
import { RegisterFluentMaterial } from "./fluentMaterial.pure.js";
|
|
9
|
+
RegisterFluentMaterial();
|
|
308
10
|
//# sourceMappingURL=fluentMaterial.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluentMaterial.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/3D/materials/fluent/fluentMaterial.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACjJ,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAe,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,yBAAyB,CAAC;AACjC,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,gBAAgB;AAChB,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAMtD;QACI,KAAK,EAAE,CAAC;QANL,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;QACf,eAAU,GAAG,KAAK,CAAC;QACnB,YAAO,GAAG,KAAK,CAAC;QAInB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IA+E5C;;;;OAIG;IACH,YAAY,IAAY,EAAE,KAAa;QACnC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QApFf,mBAAc,GAAG,KAAK,CAAC;QAE/B;;WAEG;QAGI,4BAAuB,GAAG,GAAG,CAAC;QAErC;;WAEG;QAEI,mBAAc,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAElD;;WAEG;QAEI,gBAAW,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhD;;WAEG;QAGI,kBAAa,GAAG,KAAK,CAAC;QAE7B;;WAEG;QAEI,gBAAW,GAAG,GAAG,CAAC;QAEzB;;WAEG;QAEI,uBAAkB,GAAG,IAAI,CAAC;QAEjC;;WAEG;QAEI,mBAAc,GAAG,GAAG,CAAC;QAE5B;;WAEG;QAGI,qBAAgB,GAAG,KAAK,CAAC;QAEhC;;WAEG;QAEI,gBAAW,GAAG,IAAI,CAAC;QAE1B;;WAEG;QAEI,eAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEnD;;WAEG;QAEI,kBAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAgBtC,CAAC;IAEe,iBAAiB;QAC7B,OAAO,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;IAC9B,CAAC;IAEe,gBAAgB;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAEe,mBAAmB;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEe,iBAAiB,CAAC,IAAkB,EAAE,OAAgB;QAClE,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;QAEzC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC3B,OAAO,CAAC,eAAe,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAA0B,OAAO,CAAC,eAAe,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACrD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAE3C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,EAAE,CAAC;oBAC9C,OAAO,KAAK,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,qBAAqB;QACrB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,eAAe,EAAE,CAAC;YAC1B,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAE5B,YAAY;YACZ,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,UAAU,GAAG,QAAQ,CAAC;YAE5B,MAAM,QAAQ,GAAG;gBACb,OAAO;gBACP,gBAAgB;gBAChB,gBAAgB;gBAChB,aAAa;gBACb,aAAa;gBACb,oBAAoB;gBACpB,aAAa;gBACb,gBAAgB;gBAChB,YAAY;gBACZ,eAAe;gBACf,aAAa;gBACb,eAAe;aAClB,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAC,eAAe,CAAC,CAAC;YACnC,MAAM,cAAc,GAAa,EAAE,CAAC;YAEpC,8BAA8B,CAAyB;gBACnD,aAAa,EAAE,QAAQ;gBACvB,mBAAmB,EAAE,cAAc;gBACnC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,OAAO;gBAChB,qBAAqB,EAAE,CAAC;gBACxB,cAAc,EAAE,IAAI,CAAC,eAAe;aACvC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,SAAS,CACb,KAAK,CAAC,SAAS,EAAE,CAAC,YAAY,CAC1B,UAAU,EACc;gBACpB,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,QAAQ;gBACvB,mBAAmB,EAAE,cAAc;gBACnC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,eAAe,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE;gBAC7C,cAAc,EAAE,IAAI,CAAC,eAAe;gBACpC,yBAAyB,EAAE,IAAI,CAAC,cAAc;oBAC1C,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,KAAK,IAAI,EAAE;wBACP,IAAI,IAAI,CAAC,cAAc,gCAAwB,EAAE,CAAC;4BAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;wBAC1F,CAAC;wBAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC/B,CAAC;aACV,EACD,MAAM,CACT,EACD,OAAO,EACP,IAAI,CAAC,gBAAgB,CACxB,CAAC;QACN,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEe,cAAc,CAAC,KAAa,EAAE,IAAU,EAAE,OAAgB;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,MAAM,OAAO,GAA0B,OAAO,CAAC,eAAe,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAE5B,WAAW;QACX,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAE1E,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtG,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC3E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAEnE,IAAI,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACtD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEe,iBAAiB;QAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAEjD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEe,UAAU,CAAC,OAAoB;QAC3C,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACa,OAAO,CAAC,kBAA4B;QAChD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAEe,KAAK,CAAC,IAAY;QAC9B,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5F,CAAC;IAEe,SAAS;QACrB,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9C,mBAAmB,CAAC,UAAU,GAAG,4BAA4B,CAAC;QAC9D,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEe,YAAY;QACxB,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,UAAU;IACV;;;;;;OAMG;IACI,MAAM,CAAU,KAAK,CAAC,MAAW,EAAE,KAAY,EAAE,OAAe;QACnE,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3G,CAAC;CACJ;AApTU;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,CAAC;+DAChB;AAM9B;IADN,iBAAiB,EAAE;sDAC8B;AAM3C;IADN,iBAAiB,EAAE;mDAC4B;AAOzC;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,CAAC;qDACxB;AAMtB;IADN,SAAS,EAAE;mDACa;AAMlB;IADN,SAAS,EAAE;0DACqB;AAM1B;IADN,SAAS,EAAE;sDACgB;AAOrB;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,CAAC;wDACrB;AAMzB;IADN,SAAS,EAAE;mDACc;AAMnB;IADN,iBAAiB,EAAE;kDAC+B;AAM5C;IADN,kBAAkB,EAAE;qDACiB;AAG9B;IADP,kBAAkB,CAAC,eAAe,CAAC;sDACU;AAIvC;IADN,gBAAgB,CAAC,yCAAyC,CAAC;qDAChB;AAiPhD,aAAa,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { type Nullable } from \"core/types\";\r\nimport { serializeAsColor4, serializeAsVector3, serializeAsTexture, serialize, expandToProperty, serializeAsColor3 } from \"core/Misc/decorators\";\r\nimport { SerializationHelper } from \"core/Misc/decorators.serialization\";\r\nimport { type Matrix, Vector3, TmpVectors } from \"core/Maths/math.vector\";\r\nimport { type BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { type IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport { type AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport { type SubMesh } from \"core/Meshes/subMesh\";\r\nimport { type Mesh } from \"core/Meshes/mesh\";\r\nimport { type Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { Color3, Color4 } from \"core/Maths/math.color\";\r\nimport { ShaderLanguage } from \"core/Materials/shaderLanguage\";\r\n\r\nimport \"./shaders/fluent.vertex\";\r\nimport \"./shaders/fluent.fragment\";\r\nimport { PrepareUniformsAndSamplersList } from \"core/Materials/materialHelper.functions\";\r\n\r\n/** @internal */\r\nexport class FluentMaterialDefines extends MaterialDefines {\r\n public INNERGLOW = false;\r\n public BORDER = false;\r\n public HOVERLIGHT = false;\r\n public TEXTURE = false;\r\n\r\n constructor() {\r\n super();\r\n this.rebuild();\r\n }\r\n}\r\n\r\n/**\r\n * Class used to render controls with fluent design\r\n */\r\nexport class FluentMaterial extends PushMaterial {\r\n private _shadersLoaded = false;\r\n\r\n /**\r\n * Gets or sets inner glow intensity. A value of 0 means no glow (default is 0.5)\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public innerGlowColorIntensity = 0.5;\r\n\r\n /**\r\n * Gets or sets the inner glow color (white by default)\r\n */\r\n @serializeAsColor3()\r\n public innerGlowColor = new Color3(1.0, 1.0, 1.0);\r\n\r\n /**\r\n * Gets or sets the albedo color (Default is Color3(0.3, 0.35, 0.4))\r\n */\r\n @serializeAsColor3()\r\n public albedoColor = new Color3(0.3, 0.35, 0.4);\r\n\r\n /**\r\n * Gets or sets a boolean indicating if borders must be rendered (default is false)\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public renderBorders = false;\r\n\r\n /**\r\n * Gets or sets border width (default is 0.5)\r\n */\r\n @serialize()\r\n public borderWidth = 0.5;\r\n\r\n /**\r\n * Gets or sets a value indicating the smoothing value applied to border edges (0.02 by default)\r\n */\r\n @serialize()\r\n public edgeSmoothingValue = 0.02;\r\n\r\n /**\r\n * Gets or sets the minimum value that can be applied to border width (default is 0.1)\r\n */\r\n @serialize()\r\n public borderMinValue = 0.1;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if hover light must be rendered (default is false)\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public renderHoverLight = false;\r\n\r\n /**\r\n * Gets or sets the radius used to render the hover light (default is 0.01)\r\n */\r\n @serialize()\r\n public hoverRadius = 0.01;\r\n\r\n /**\r\n * Gets or sets the color used to render the hover light (default is Color4(0.3, 0.3, 0.3, 1.0))\r\n */\r\n @serializeAsColor4()\r\n public hoverColor = new Color4(0.3, 0.3, 0.3, 1.0);\r\n\r\n /**\r\n * Gets or sets the hover light position in world space (default is Vector3.Zero())\r\n */\r\n @serializeAsVector3()\r\n public hoverPosition = Vector3.Zero();\r\n\r\n @serializeAsTexture(\"albedoTexture\")\r\n private _albedoTexture: Nullable<BaseTexture>;\r\n\r\n /** Gets or sets the texture to use for albedo color */\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\r\n public albedoTexture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Creates a new Fluent material\r\n * @param name defines the name of the material\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n }\r\n\r\n public override needAlphaBlending(): boolean {\r\n return this.alpha !== 1.0;\r\n }\r\n\r\n public override needAlphaTesting(): boolean {\r\n return false;\r\n }\r\n\r\n public override getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n public override isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh): boolean {\r\n const drawWrapper = subMesh._drawWrapper;\r\n\r\n if (this.isFrozen) {\r\n if (drawWrapper.effect && drawWrapper._wasPreviouslyReady) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new FluentMaterialDefines();\r\n }\r\n\r\n const scene = this.getScene();\r\n const defines = <FluentMaterialDefines>subMesh.materialDefines;\r\n if (!this.checkReadyOnEveryCall && subMesh.effect) {\r\n if (defines._renderId === scene.getRenderId()) {\r\n return true;\r\n }\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n defines.INNERGLOW = this.innerGlowColorIntensity > 0;\r\n defines.BORDER = this.renderBorders;\r\n defines.HOVERLIGHT = this.renderHoverLight;\r\n\r\n if (this._albedoTexture) {\r\n if (!this._albedoTexture.isReadyOrNotBlocking()) {\r\n return false;\r\n } else {\r\n defines.TEXTURE = true;\r\n }\r\n } else {\r\n defines.TEXTURE = false;\r\n }\r\n }\r\n\r\n const engine = scene.getEngine();\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n scene.resetCachedMaterial();\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n attribs.push(VertexBuffer.NormalKind);\r\n attribs.push(VertexBuffer.UVKind);\r\n\r\n const shaderName = \"fluent\";\r\n\r\n const uniforms = [\r\n \"world\",\r\n \"viewProjection\",\r\n \"innerGlowColor\",\r\n \"albedoColor\",\r\n \"borderWidth\",\r\n \"edgeSmoothingValue\",\r\n \"scaleFactor\",\r\n \"borderMinValue\",\r\n \"hoverColor\",\r\n \"hoverPosition\",\r\n \"hoverRadius\",\r\n \"textureMatrix\",\r\n ];\r\n\r\n const samplers = [\"albedoSampler\"];\r\n const uniformBuffers: string[] = [];\r\n\r\n PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: 4,\r\n shaderLanguage: this._shaderLanguage,\r\n });\r\n\r\n const join = defines.toString();\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n <IEffectCreationOptions>{\r\n attributes: attribs,\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: join,\r\n fallbacks: null,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: 4 },\r\n shaderLanguage: this._shaderLanguage,\r\n extraInitializationsAsync: this._shadersLoaded\r\n ? undefined\r\n : async () => {\r\n if (this.shaderLanguage === ShaderLanguage.WGSL) {\r\n await Promise.all([import(\"./wgsl/fluent.vertex\"), import(\"./wgsl/fluent.fragment\")]);\r\n }\r\n\r\n this._shadersLoaded = true;\r\n },\r\n },\r\n engine\r\n ),\r\n defines,\r\n this._materialContext\r\n );\r\n }\r\n\r\n if (!subMesh.effect || !subMesh.effect.isReady()) {\r\n return false;\r\n }\r\n\r\n defines._renderId = scene.getRenderId();\r\n drawWrapper._wasPreviouslyReady = true;\r\n\r\n return true;\r\n }\r\n\r\n public override bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const scene = this.getScene();\r\n\r\n const defines = <FluentMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n const effect = subMesh.effect;\r\n if (!effect) {\r\n return;\r\n }\r\n this._activeEffect = effect;\r\n\r\n // Matrices\r\n this.bindOnlyWorldMatrix(world);\r\n this._activeEffect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\r\n\r\n if (this._mustRebind(scene, effect, subMesh)) {\r\n this._activeEffect.setColor4(\"albedoColor\", this.albedoColor, this.alpha);\r\n\r\n if (defines.INNERGLOW) {\r\n this._activeEffect.setColor4(\"innerGlowColor\", this.innerGlowColor, this.innerGlowColorIntensity);\r\n }\r\n\r\n if (defines.BORDER) {\r\n this._activeEffect.setFloat(\"borderWidth\", this.borderWidth);\r\n this._activeEffect.setFloat(\"edgeSmoothingValue\", this.edgeSmoothingValue);\r\n this._activeEffect.setFloat(\"borderMinValue\", this.borderMinValue);\r\n\r\n mesh.getBoundingInfo().boundingBox.extendSize.multiplyToRef(mesh.scaling, TmpVectors.Vector3[0]);\r\n this._activeEffect.setVector3(\"scaleFactor\", TmpVectors.Vector3[0]);\r\n }\r\n\r\n if (defines.HOVERLIGHT) {\r\n this._activeEffect.setDirectColor4(\"hoverColor\", this.hoverColor);\r\n this._activeEffect.setFloat(\"hoverRadius\", this.hoverRadius);\r\n this._activeEffect.setVector3(\"hoverPosition\", this.hoverPosition);\r\n }\r\n\r\n if (defines.TEXTURE && this._albedoTexture) {\r\n this._activeEffect.setTexture(\"albedoSampler\", this._albedoTexture);\r\n const matrix = this._albedoTexture.getTextureMatrix();\r\n this._activeEffect.setMatrix(\"textureMatrix\", matrix);\r\n }\r\n }\r\n\r\n this._afterBind(mesh, this._activeEffect, subMesh);\r\n }\r\n\r\n public override getActiveTextures(): BaseTexture[] {\r\n const activeTextures = super.getActiveTextures();\r\n\r\n return activeTextures;\r\n }\r\n\r\n public override hasTexture(texture: BaseTexture): boolean {\r\n if (super.hasTexture(texture)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Disposes the material.\r\n * @param forceDisposeEffect specifies if effects should be forcefully disposed\r\n */\r\n public override dispose(forceDisposeEffect?: boolean): void {\r\n super.dispose(forceDisposeEffect);\r\n }\r\n\r\n public override clone(name: string): FluentMaterial {\r\n return SerializationHelper.Clone(() => new FluentMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.GUI.FluentMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"FluentMaterial\";\r\n }\r\n\r\n // Statics\r\n /**\r\n * Creates a fluent material from parsed material data.\r\n * @param source defines the JSON representation of the material\r\n * @param scene defines the hosting scene\r\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\r\n * @returns a new fluent material\r\n */\r\n public static override Parse(source: any, scene: Scene, rootUrl: string): FluentMaterial {\r\n return SerializationHelper.Parse(() => new FluentMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GUI.FluentMaterial\", FluentMaterial);\r\n"]}
|
|
1
|
+
{"version":3,"file":"fluentMaterial.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/3D/materials/fluent/fluentMaterial.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,uBAAuB,CAAC;AAEtC,OAAO,yBAAyB,CAAC;AACjC,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,sBAAsB,EAAE,CAAC","sourcesContent":["/**\r\n * Re-exports the pure implementation and applies the runtime registration side effect.\r\n * Import \"./fluentMaterial.pure\" for tree-shakeable, side-effect-free usage.\r\n */\r\nexport * from \"./fluentMaterial.pure\";\r\n\r\nimport \"./shaders/fluent.vertex\";\r\nimport \"./shaders/fluent.fragment\";\r\n\r\nimport { RegisterFluentMaterial } from \"./fluentMaterial.pure\";\r\nRegisterFluentMaterial();\r\n"]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { type Nullable } from "@babylonjs/core/types.js";
|
|
2
|
+
import { type Matrix, Vector3 } from "@babylonjs/core/Maths/math.vector.pure.js";
|
|
3
|
+
import { type BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
|
|
4
|
+
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
|
5
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
6
|
+
import { type AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.pure.js";
|
|
7
|
+
import { type SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
|
|
8
|
+
import { type Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
|
9
|
+
import { type Scene } from "@babylonjs/core/scene.js";
|
|
10
|
+
import { Color3, Color4 } from "@babylonjs/core/Maths/math.color.pure.js";
|
|
11
|
+
/** @internal */
|
|
12
|
+
export declare class FluentMaterialDefines extends MaterialDefines {
|
|
13
|
+
INNERGLOW: boolean;
|
|
14
|
+
BORDER: boolean;
|
|
15
|
+
HOVERLIGHT: boolean;
|
|
16
|
+
TEXTURE: boolean;
|
|
17
|
+
constructor();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Class used to render controls with fluent design
|
|
21
|
+
*/
|
|
22
|
+
export declare class FluentMaterial extends PushMaterial {
|
|
23
|
+
private _shadersLoaded;
|
|
24
|
+
/**
|
|
25
|
+
* Gets or sets inner glow intensity. A value of 0 means no glow (default is 0.5)
|
|
26
|
+
*/
|
|
27
|
+
innerGlowColorIntensity: number;
|
|
28
|
+
/**
|
|
29
|
+
* Gets or sets the inner glow color (white by default)
|
|
30
|
+
*/
|
|
31
|
+
innerGlowColor: Color3;
|
|
32
|
+
/**
|
|
33
|
+
* Gets or sets the albedo color (Default is Color3(0.3, 0.35, 0.4))
|
|
34
|
+
*/
|
|
35
|
+
albedoColor: Color3;
|
|
36
|
+
/**
|
|
37
|
+
* Gets or sets a boolean indicating if borders must be rendered (default is false)
|
|
38
|
+
*/
|
|
39
|
+
renderBorders: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Gets or sets border width (default is 0.5)
|
|
42
|
+
*/
|
|
43
|
+
borderWidth: number;
|
|
44
|
+
/**
|
|
45
|
+
* Gets or sets a value indicating the smoothing value applied to border edges (0.02 by default)
|
|
46
|
+
*/
|
|
47
|
+
edgeSmoothingValue: number;
|
|
48
|
+
/**
|
|
49
|
+
* Gets or sets the minimum value that can be applied to border width (default is 0.1)
|
|
50
|
+
*/
|
|
51
|
+
borderMinValue: number;
|
|
52
|
+
/**
|
|
53
|
+
* Gets or sets a boolean indicating if hover light must be rendered (default is false)
|
|
54
|
+
*/
|
|
55
|
+
renderHoverLight: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Gets or sets the radius used to render the hover light (default is 0.01)
|
|
58
|
+
*/
|
|
59
|
+
hoverRadius: number;
|
|
60
|
+
/**
|
|
61
|
+
* Gets or sets the color used to render the hover light (default is Color4(0.3, 0.3, 0.3, 1.0))
|
|
62
|
+
*/
|
|
63
|
+
hoverColor: Color4;
|
|
64
|
+
/**
|
|
65
|
+
* Gets or sets the hover light position in world space (default is Vector3.Zero())
|
|
66
|
+
*/
|
|
67
|
+
hoverPosition: Vector3;
|
|
68
|
+
private _albedoTexture;
|
|
69
|
+
/** Gets or sets the texture to use for albedo color */
|
|
70
|
+
albedoTexture: Nullable<BaseTexture>;
|
|
71
|
+
/**
|
|
72
|
+
* Creates a new Fluent material
|
|
73
|
+
* @param name defines the name of the material
|
|
74
|
+
* @param scene defines the hosting scene
|
|
75
|
+
*/
|
|
76
|
+
constructor(name: string, scene?: Scene);
|
|
77
|
+
needAlphaBlending(): boolean;
|
|
78
|
+
needAlphaTesting(): boolean;
|
|
79
|
+
getAlphaTestTexture(): Nullable<BaseTexture>;
|
|
80
|
+
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh): boolean;
|
|
81
|
+
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
|
|
82
|
+
getActiveTextures(): BaseTexture[];
|
|
83
|
+
hasTexture(texture: BaseTexture): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Disposes the material.
|
|
86
|
+
* @param forceDisposeEffect specifies if effects should be forcefully disposed
|
|
87
|
+
*/
|
|
88
|
+
dispose(forceDisposeEffect?: boolean): void;
|
|
89
|
+
clone(name: string): FluentMaterial;
|
|
90
|
+
serialize(): any;
|
|
91
|
+
getClassName(): string;
|
|
92
|
+
/**
|
|
93
|
+
* Creates a fluent material from parsed material data.
|
|
94
|
+
* @param source defines the JSON representation of the material
|
|
95
|
+
* @param scene defines the hosting scene
|
|
96
|
+
* @param rootUrl defines the root URL to use to load textures and relative dependencies
|
|
97
|
+
* @returns a new fluent material
|
|
98
|
+
*/
|
|
99
|
+
static Parse(source: any, scene: Scene, rootUrl: string): FluentMaterial;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Registers the FluentMaterial class with the type store for serialization support.
|
|
103
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
104
|
+
*/
|
|
105
|
+
export declare function RegisterFluentMaterial(): void;
|