@babylonjs/gui 5.0.0-rc.7 → 5.0.0-rc.9

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.
Files changed (203) hide show
  1. package/2D/adtInstrumentation.d.ts +52 -52
  2. package/2D/adtInstrumentation.js +126 -126
  3. package/2D/advancedDynamicTexture.d.ts +448 -448
  4. package/2D/advancedDynamicTexture.js +1318 -1318
  5. package/2D/controls/button.d.ts +135 -135
  6. package/2D/controls/button.js +276 -276
  7. package/2D/controls/checkbox.d.ts +59 -59
  8. package/2D/controls/checkbox.js +188 -188
  9. package/2D/controls/colorpicker.d.ts +103 -103
  10. package/2D/controls/colorpicker.js +1417 -1417
  11. package/2D/controls/container.d.ts +175 -175
  12. package/2D/controls/container.js +570 -570
  13. package/2D/controls/control.d.ts +866 -866
  14. package/2D/controls/control.js +2433 -2433
  15. package/2D/controls/displayGrid.d.ts +53 -53
  16. package/2D/controls/displayGrid.js +245 -245
  17. package/2D/controls/ellipse.d.ts +21 -21
  18. package/2D/controls/ellipse.js +85 -85
  19. package/2D/controls/focusableButton.d.ts +59 -59
  20. package/2D/controls/focusableButton.js +99 -99
  21. package/2D/controls/focusableControl.d.ts +34 -34
  22. package/2D/controls/focusableControl.js +1 -1
  23. package/2D/controls/grid.d.ts +139 -139
  24. package/2D/controls/grid.js +529 -529
  25. package/2D/controls/image.d.ts +204 -204
  26. package/2D/controls/image.js +887 -887
  27. package/2D/controls/index.d.ts +29 -29
  28. package/2D/controls/index.js +29 -29
  29. package/2D/controls/inputPassword.d.ts +8 -8
  30. package/2D/controls/inputPassword.js +25 -25
  31. package/2D/controls/inputText.d.ts +201 -201
  32. package/2D/controls/inputText.js +1119 -1119
  33. package/2D/controls/line.d.ts +66 -66
  34. package/2D/controls/line.js +271 -271
  35. package/2D/controls/multiLine.d.ts +75 -75
  36. package/2D/controls/multiLine.js +262 -262
  37. package/2D/controls/radioButton.d.ts +49 -49
  38. package/2D/controls/radioButton.js +205 -205
  39. package/2D/controls/rectangle.d.ts +29 -29
  40. package/2D/controls/rectangle.js +150 -150
  41. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -182
  42. package/2D/controls/scrollViewers/scrollViewer.js +677 -677
  43. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -57
  44. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -278
  45. package/2D/controls/selector.d.ts +263 -263
  46. package/2D/controls/selector.js +692 -692
  47. package/2D/controls/sliders/baseSlider.d.ts +82 -82
  48. package/2D/controls/sliders/baseSlider.js +347 -347
  49. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -49
  50. package/2D/controls/sliders/imageBasedSlider.js +192 -192
  51. package/2D/controls/sliders/imageScrollBar.d.ts +65 -65
  52. package/2D/controls/sliders/imageScrollBar.js +263 -263
  53. package/2D/controls/sliders/scrollBar.d.ts +38 -38
  54. package/2D/controls/sliders/scrollBar.js +143 -143
  55. package/2D/controls/sliders/slider.d.ts +35 -35
  56. package/2D/controls/sliders/slider.js +271 -271
  57. package/2D/controls/stackPanel.d.ts +64 -64
  58. package/2D/controls/stackPanel.js +246 -246
  59. package/2D/controls/statics.d.ts +6 -6
  60. package/2D/controls/statics.js +49 -49
  61. package/2D/controls/textBlock.d.ts +175 -175
  62. package/2D/controls/textBlock.js +603 -603
  63. package/2D/controls/textWrapper.d.ts +13 -13
  64. package/2D/controls/textWrapper.js +101 -101
  65. package/2D/controls/toggleButton.d.ts +117 -117
  66. package/2D/controls/toggleButton.js +268 -268
  67. package/2D/controls/virtualKeyboard.d.ts +96 -96
  68. package/2D/controls/virtualKeyboard.js +256 -256
  69. package/2D/index.d.ts +9 -9
  70. package/2D/index.js +9 -9
  71. package/2D/math2D.d.ts +117 -117
  72. package/2D/math2D.js +221 -221
  73. package/2D/measure.d.ts +77 -77
  74. package/2D/measure.js +139 -139
  75. package/2D/multiLinePoint.d.ts +47 -47
  76. package/2D/multiLinePoint.js +127 -127
  77. package/2D/style.d.ts +46 -46
  78. package/2D/style.js +97 -97
  79. package/2D/valueAndUnit.d.ts +89 -89
  80. package/2D/valueAndUnit.js +226 -226
  81. package/2D/xmlLoader.d.ts +60 -60
  82. package/2D/xmlLoader.js +348 -348
  83. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  84. package/3D/behaviors/defaultBehavior.js +121 -121
  85. package/3D/controls/abstractButton3D.d.ts +15 -15
  86. package/3D/controls/abstractButton3D.js +25 -25
  87. package/3D/controls/button3D.d.ts +30 -30
  88. package/3D/controls/button3D.js +93 -93
  89. package/3D/controls/container3D.d.ts +72 -72
  90. package/3D/controls/container3D.js +139 -139
  91. package/3D/controls/contentDisplay3D.d.ts +30 -30
  92. package/3D/controls/contentDisplay3D.js +79 -79
  93. package/3D/controls/control3D.d.ts +201 -201
  94. package/3D/controls/control3D.js +445 -445
  95. package/3D/controls/cylinderPanel.d.ts +17 -17
  96. package/3D/controls/cylinderPanel.js +66 -66
  97. package/3D/controls/handMenu.d.ts +28 -28
  98. package/3D/controls/handMenu.js +47 -47
  99. package/3D/controls/holographicBackplate.d.ts +49 -49
  100. package/3D/controls/holographicBackplate.js +120 -120
  101. package/3D/controls/holographicButton.d.ts +84 -84
  102. package/3D/controls/holographicButton.js +339 -339
  103. package/3D/controls/holographicSlate.d.ts +131 -131
  104. package/3D/controls/holographicSlate.js +431 -431
  105. package/3D/controls/index.d.ts +21 -21
  106. package/3D/controls/index.js +21 -21
  107. package/3D/controls/meshButton3D.d.ts +21 -21
  108. package/3D/controls/meshButton3D.js +62 -62
  109. package/3D/controls/nearMenu.d.ts +44 -44
  110. package/3D/controls/nearMenu.js +114 -114
  111. package/3D/controls/planePanel.d.ts +9 -9
  112. package/3D/controls/planePanel.js +36 -36
  113. package/3D/controls/scatterPanel.d.ts +18 -18
  114. package/3D/controls/scatterPanel.js +108 -108
  115. package/3D/controls/slider3D.d.ts +81 -81
  116. package/3D/controls/slider3D.js +268 -268
  117. package/3D/controls/spherePanel.d.ts +17 -17
  118. package/3D/controls/spherePanel.js +67 -67
  119. package/3D/controls/stackPanel3D.d.ts +22 -22
  120. package/3D/controls/stackPanel3D.js +107 -107
  121. package/3D/controls/touchButton3D.d.ts +80 -80
  122. package/3D/controls/touchButton3D.js +233 -233
  123. package/3D/controls/touchHolographicButton.d.ts +110 -110
  124. package/3D/controls/touchHolographicButton.js +445 -445
  125. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  126. package/3D/controls/touchHolographicMenu.js +149 -149
  127. package/3D/controls/touchMeshButton3D.d.ts +21 -21
  128. package/3D/controls/touchMeshButton3D.js +62 -62
  129. package/3D/controls/volumeBasedPanel.d.ts +53 -53
  130. package/3D/controls/volumeBasedPanel.js +174 -174
  131. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  132. package/3D/gizmos/gizmoHandle.js +209 -209
  133. package/3D/gizmos/index.d.ts +2 -2
  134. package/3D/gizmos/index.js +2 -2
  135. package/3D/gizmos/slateGizmo.d.ts +57 -57
  136. package/3D/gizmos/slateGizmo.js +369 -369
  137. package/3D/gui3DManager.d.ts +94 -94
  138. package/3D/gui3DManager.js +257 -257
  139. package/3D/index.d.ts +5 -5
  140. package/3D/index.js +5 -5
  141. package/3D/materials/fluent/fluentMaterial.d.ts +90 -90
  142. package/3D/materials/fluent/fluentMaterial.js +292 -292
  143. package/3D/materials/fluent/index.d.ts +1 -1
  144. package/3D/materials/fluent/index.js +1 -1
  145. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  146. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -8
  147. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  148. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -8
  149. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -154
  150. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -469
  151. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  152. package/3D/materials/fluentBackplate/index.js +1 -1
  153. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  154. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -8
  155. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  156. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -8
  157. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -189
  158. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -539
  159. package/3D/materials/fluentButton/index.d.ts +1 -1
  160. package/3D/materials/fluentButton/index.js +1 -1
  161. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  162. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -8
  163. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  164. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -8
  165. package/3D/materials/fluentMaterial.d.ts +4 -4
  166. package/3D/materials/fluentMaterial.js +4 -4
  167. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  168. package/3D/materials/handle/handleMaterial.js +126 -126
  169. package/3D/materials/handle/index.d.ts +1 -1
  170. package/3D/materials/handle/index.js +1 -1
  171. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  172. package/3D/materials/handle/shaders/handle.fragment.js +8 -8
  173. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  174. package/3D/materials/handle/shaders/handle.vertex.js +8 -8
  175. package/3D/materials/index.d.ts +5 -5
  176. package/3D/materials/index.js +5 -5
  177. package/3D/materials/mrdl/index.d.ts +3 -3
  178. package/3D/materials/mrdl/index.js +3 -3
  179. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -147
  180. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -436
  181. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -333
  182. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -851
  183. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -333
  184. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -851
  185. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  186. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -8
  187. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  188. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -8
  189. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  190. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -8
  191. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  192. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -8
  193. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  194. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -8
  195. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  196. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -8
  197. package/3D/vector3WithInfo.d.ts +16 -16
  198. package/3D/vector3WithInfo.js +23 -23
  199. package/index.d.ts +2 -2
  200. package/index.js +2 -2
  201. package/legacy/legacy.d.ts +1 -1
  202. package/legacy/legacy.js +13 -13
  203. package/package.json +2 -2
@@ -1,293 +1,293 @@
1
- import { __decorate, __extends } from "tslib";
2
- import { serializeAsColor4, serializeAsVector3, serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
3
- import { Vector3, TmpVectors } from "@babylonjs/core/Maths/math.vector.js";
4
- import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
5
- import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper.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
- /** @hidden */
13
- var FluentMaterialDefines = /** @class */ (function (_super) {
14
- __extends(FluentMaterialDefines, _super);
15
- function FluentMaterialDefines() {
16
- var _this = _super.call(this) || this;
17
- _this.INNERGLOW = false;
18
- _this.BORDER = false;
19
- _this.HOVERLIGHT = false;
20
- _this.TEXTURE = false;
21
- _this.rebuild();
22
- return _this;
23
- }
24
- return FluentMaterialDefines;
25
- }(MaterialDefines));
26
- export { FluentMaterialDefines };
27
- /**
28
- * Class used to render controls with fluent design
29
- */
30
- var FluentMaterial = /** @class */ (function (_super) {
31
- __extends(FluentMaterial, _super);
32
- /**
33
- * Creates a new Fluent material
34
- * @param name defines the name of the material
35
- * @param scene defines the hosting scene
36
- */
37
- function FluentMaterial(name, scene) {
38
- var _this = _super.call(this, name, scene) || this;
39
- /**
40
- * Gets or sets inner glow intensity. A value of 0 means no glow (default is 0.5)
41
- */
42
- _this.innerGlowColorIntensity = 0.5;
43
- /**
44
- * Gets or sets the inner glow color (white by default)
45
- */
46
- _this.innerGlowColor = new Color3(1.0, 1.0, 1.0);
47
- /**
48
- * Gets or sets the albedo color (Default is Color3(0.3, 0.35, 0.4))
49
- */
50
- _this.albedoColor = new Color3(0.3, 0.35, 0.4);
51
- /**
52
- * Gets or sets a boolean indicating if borders must be rendered (default is false)
53
- */
54
- _this.renderBorders = false;
55
- /**
56
- * Gets or sets border width (default is 0.5)
57
- */
58
- _this.borderWidth = 0.5;
59
- /**
60
- * Gets or sets a value indicating the smoothing value applied to border edges (0.02 by default)
61
- */
62
- _this.edgeSmoothingValue = 0.02;
63
- /**
64
- * Gets or sets the minimum value that can be applied to border width (default is 0.1)
65
- */
66
- _this.borderMinValue = 0.1;
67
- /**
68
- * Gets or sets a boolean indicating if hover light must be rendered (default is false)
69
- */
70
- _this.renderHoverLight = false;
71
- /**
72
- * Gets or sets the radius used to render the hover light (default is 1.0)
73
- */
74
- _this.hoverRadius = 0.01;
75
- /**
76
- * Gets or sets the color used to render the hover light (default is Color4(0.3, 0.3, 0.3, 1.0))
77
- */
78
- _this.hoverColor = new Color4(0.3, 0.3, 0.3, 1.0);
79
- /**
80
- * Gets or sets the hover light position in world space (default is Vector3.Zero())
81
- */
82
- _this.hoverPosition = Vector3.Zero();
83
- return _this;
84
- }
85
- FluentMaterial.prototype.needAlphaBlending = function () {
86
- return this.alpha !== 1.0;
87
- };
88
- FluentMaterial.prototype.needAlphaTesting = function () {
89
- return false;
90
- };
91
- FluentMaterial.prototype.getAlphaTestTexture = function () {
92
- return null;
93
- };
94
- FluentMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh) {
95
- if (this.isFrozen) {
96
- if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {
97
- return true;
98
- }
99
- }
100
- if (!subMesh.materialDefines) {
101
- subMesh.materialDefines = new FluentMaterialDefines();
102
- }
103
- var scene = this.getScene();
104
- var defines = subMesh.materialDefines;
105
- if (!this.checkReadyOnEveryCall && subMesh.effect) {
106
- if (defines._renderId === scene.getRenderId()) {
107
- return true;
108
- }
109
- }
110
- if (defines._areTexturesDirty) {
111
- defines.INNERGLOW = this.innerGlowColorIntensity > 0;
112
- defines.BORDER = this.renderBorders;
113
- defines.HOVERLIGHT = this.renderHoverLight;
114
- if (this._albedoTexture) {
115
- if (!this._albedoTexture.isReadyOrNotBlocking()) {
116
- return false;
117
- }
118
- else {
119
- defines.TEXTURE = true;
120
- }
121
- }
122
- else {
123
- defines.TEXTURE = false;
124
- }
125
- }
126
- var engine = scene.getEngine();
127
- // Get correct effect
128
- if (defines.isDirty) {
129
- defines.markAsProcessed();
130
- scene.resetCachedMaterial();
131
- //Attributes
132
- var attribs = [VertexBuffer.PositionKind];
133
- attribs.push(VertexBuffer.NormalKind);
134
- attribs.push(VertexBuffer.UVKind);
135
- var shaderName = "fluent";
136
- var uniforms = [
137
- "world",
138
- "viewProjection",
139
- "innerGlowColor",
140
- "albedoColor",
141
- "borderWidth",
142
- "edgeSmoothingValue",
143
- "scaleFactor",
144
- "borderMinValue",
145
- "hoverColor",
146
- "hoverPosition",
147
- "hoverRadius",
148
- "textureMatrix",
149
- ];
150
- var samplers = ["albedoSampler"];
151
- var uniformBuffers = new Array();
152
- MaterialHelper.PrepareUniformsAndSamplersList({
153
- uniformsNames: uniforms,
154
- uniformBuffersNames: uniformBuffers,
155
- samplers: samplers,
156
- defines: defines,
157
- maxSimultaneousLights: 4,
158
- });
159
- var join = defines.toString();
160
- subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
161
- attributes: attribs,
162
- uniformsNames: uniforms,
163
- uniformBuffersNames: uniformBuffers,
164
- samplers: samplers,
165
- defines: join,
166
- fallbacks: null,
167
- onCompiled: this.onCompiled,
168
- onError: this.onError,
169
- indexParameters: { maxSimultaneousLights: 4 },
170
- }, engine), defines, this._materialContext);
171
- }
172
- if (!subMesh.effect || !subMesh.effect.isReady()) {
173
- return false;
174
- }
175
- defines._renderId = scene.getRenderId();
176
- subMesh.effect._wasPreviouslyReady = true;
177
- return true;
178
- };
179
- FluentMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
180
- var scene = this.getScene();
181
- var defines = subMesh.materialDefines;
182
- if (!defines) {
183
- return;
184
- }
185
- var effect = subMesh.effect;
186
- if (!effect) {
187
- return;
188
- }
189
- this._activeEffect = effect;
190
- // Matrices
191
- this.bindOnlyWorldMatrix(world);
192
- this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
193
- if (this._mustRebind(scene, effect)) {
194
- this._activeEffect.setColor4("albedoColor", this.albedoColor, this.alpha);
195
- if (defines.INNERGLOW) {
196
- this._activeEffect.setColor4("innerGlowColor", this.innerGlowColor, this.innerGlowColorIntensity);
197
- }
198
- if (defines.BORDER) {
199
- this._activeEffect.setFloat("borderWidth", this.borderWidth);
200
- this._activeEffect.setFloat("edgeSmoothingValue", this.edgeSmoothingValue);
201
- this._activeEffect.setFloat("borderMinValue", this.borderMinValue);
202
- mesh.getBoundingInfo().boundingBox.extendSize.multiplyToRef(mesh.scaling, TmpVectors.Vector3[0]);
203
- this._activeEffect.setVector3("scaleFactor", TmpVectors.Vector3[0]);
204
- }
205
- if (defines.HOVERLIGHT) {
206
- this._activeEffect.setDirectColor4("hoverColor", this.hoverColor);
207
- this._activeEffect.setFloat("hoverRadius", this.hoverRadius);
208
- this._activeEffect.setVector3("hoverPosition", this.hoverPosition);
209
- }
210
- if (defines.TEXTURE && this._albedoTexture) {
211
- this._activeEffect.setTexture("albedoSampler", this._albedoTexture);
212
- var matrix = this._albedoTexture.getTextureMatrix();
213
- this._activeEffect.setMatrix("textureMatrix", matrix);
214
- }
215
- }
216
- this._afterBind(mesh, this._activeEffect);
217
- };
218
- FluentMaterial.prototype.getActiveTextures = function () {
219
- var activeTextures = _super.prototype.getActiveTextures.call(this);
220
- return activeTextures;
221
- };
222
- FluentMaterial.prototype.hasTexture = function (texture) {
223
- if (_super.prototype.hasTexture.call(this, texture)) {
224
- return true;
225
- }
226
- return false;
227
- };
228
- FluentMaterial.prototype.dispose = function (forceDisposeEffect) {
229
- _super.prototype.dispose.call(this, forceDisposeEffect);
230
- };
231
- FluentMaterial.prototype.clone = function (name) {
232
- var _this = this;
233
- return SerializationHelper.Clone(function () { return new FluentMaterial(name, _this.getScene()); }, this);
234
- };
235
- FluentMaterial.prototype.serialize = function () {
236
- var serializationObject = _super.prototype.serialize.call(this);
237
- serializationObject.customType = "BABYLON.GUI.FluentMaterial";
238
- return serializationObject;
239
- };
240
- FluentMaterial.prototype.getClassName = function () {
241
- return "FluentMaterial";
242
- };
243
- // Statics
244
- FluentMaterial.Parse = function (source, scene, rootUrl) {
245
- return SerializationHelper.Parse(function () { return new FluentMaterial(source.name, scene); }, source, scene, rootUrl);
246
- };
247
- __decorate([
248
- serialize(),
249
- expandToProperty("_markAllSubMeshesAsTexturesDirty")
250
- ], FluentMaterial.prototype, "innerGlowColorIntensity", void 0);
251
- __decorate([
252
- serializeAsColor3()
253
- ], FluentMaterial.prototype, "innerGlowColor", void 0);
254
- __decorate([
255
- serializeAsColor3()
256
- ], FluentMaterial.prototype, "albedoColor", void 0);
257
- __decorate([
258
- serialize(),
259
- expandToProperty("_markAllSubMeshesAsTexturesDirty")
260
- ], FluentMaterial.prototype, "renderBorders", void 0);
261
- __decorate([
262
- serialize()
263
- ], FluentMaterial.prototype, "borderWidth", void 0);
264
- __decorate([
265
- serialize()
266
- ], FluentMaterial.prototype, "edgeSmoothingValue", void 0);
267
- __decorate([
268
- serialize()
269
- ], FluentMaterial.prototype, "borderMinValue", void 0);
270
- __decorate([
271
- serialize(),
272
- expandToProperty("_markAllSubMeshesAsTexturesDirty")
273
- ], FluentMaterial.prototype, "renderHoverLight", void 0);
274
- __decorate([
275
- serialize()
276
- ], FluentMaterial.prototype, "hoverRadius", void 0);
277
- __decorate([
278
- serializeAsColor4()
279
- ], FluentMaterial.prototype, "hoverColor", void 0);
280
- __decorate([
281
- serializeAsVector3()
282
- ], FluentMaterial.prototype, "hoverPosition", void 0);
283
- __decorate([
284
- serializeAsTexture("albedoTexture")
285
- ], FluentMaterial.prototype, "_albedoTexture", void 0);
286
- __decorate([
287
- expandToProperty("_markAllSubMeshesAsTexturesAndMiscDirty")
288
- ], FluentMaterial.prototype, "albedoTexture", void 0);
289
- return FluentMaterial;
290
- }(PushMaterial));
291
- export { FluentMaterial };
292
- RegisterClass("BABYLON.GUI.FluentMaterial", FluentMaterial);
1
+ import { __decorate, __extends } from "tslib";
2
+ import { serializeAsColor4, serializeAsVector3, serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
3
+ import { Vector3, TmpVectors } from "@babylonjs/core/Maths/math.vector.js";
4
+ import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
5
+ import { MaterialHelper } from "@babylonjs/core/Materials/materialHelper.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";
11
+ import "./shaders/fluent.fragment";
12
+ /** @hidden */
13
+ var FluentMaterialDefines = /** @class */ (function (_super) {
14
+ __extends(FluentMaterialDefines, _super);
15
+ function FluentMaterialDefines() {
16
+ var _this = _super.call(this) || this;
17
+ _this.INNERGLOW = false;
18
+ _this.BORDER = false;
19
+ _this.HOVERLIGHT = false;
20
+ _this.TEXTURE = false;
21
+ _this.rebuild();
22
+ return _this;
23
+ }
24
+ return FluentMaterialDefines;
25
+ }(MaterialDefines));
26
+ export { FluentMaterialDefines };
27
+ /**
28
+ * Class used to render controls with fluent design
29
+ */
30
+ var FluentMaterial = /** @class */ (function (_super) {
31
+ __extends(FluentMaterial, _super);
32
+ /**
33
+ * Creates a new Fluent material
34
+ * @param name defines the name of the material
35
+ * @param scene defines the hosting scene
36
+ */
37
+ function FluentMaterial(name, scene) {
38
+ var _this = _super.call(this, name, scene) || this;
39
+ /**
40
+ * Gets or sets inner glow intensity. A value of 0 means no glow (default is 0.5)
41
+ */
42
+ _this.innerGlowColorIntensity = 0.5;
43
+ /**
44
+ * Gets or sets the inner glow color (white by default)
45
+ */
46
+ _this.innerGlowColor = new Color3(1.0, 1.0, 1.0);
47
+ /**
48
+ * Gets or sets the albedo color (Default is Color3(0.3, 0.35, 0.4))
49
+ */
50
+ _this.albedoColor = new Color3(0.3, 0.35, 0.4);
51
+ /**
52
+ * Gets or sets a boolean indicating if borders must be rendered (default is false)
53
+ */
54
+ _this.renderBorders = false;
55
+ /**
56
+ * Gets or sets border width (default is 0.5)
57
+ */
58
+ _this.borderWidth = 0.5;
59
+ /**
60
+ * Gets or sets a value indicating the smoothing value applied to border edges (0.02 by default)
61
+ */
62
+ _this.edgeSmoothingValue = 0.02;
63
+ /**
64
+ * Gets or sets the minimum value that can be applied to border width (default is 0.1)
65
+ */
66
+ _this.borderMinValue = 0.1;
67
+ /**
68
+ * Gets or sets a boolean indicating if hover light must be rendered (default is false)
69
+ */
70
+ _this.renderHoverLight = false;
71
+ /**
72
+ * Gets or sets the radius used to render the hover light (default is 1.0)
73
+ */
74
+ _this.hoverRadius = 0.01;
75
+ /**
76
+ * Gets or sets the color used to render the hover light (default is Color4(0.3, 0.3, 0.3, 1.0))
77
+ */
78
+ _this.hoverColor = new Color4(0.3, 0.3, 0.3, 1.0);
79
+ /**
80
+ * Gets or sets the hover light position in world space (default is Vector3.Zero())
81
+ */
82
+ _this.hoverPosition = Vector3.Zero();
83
+ return _this;
84
+ }
85
+ FluentMaterial.prototype.needAlphaBlending = function () {
86
+ return this.alpha !== 1.0;
87
+ };
88
+ FluentMaterial.prototype.needAlphaTesting = function () {
89
+ return false;
90
+ };
91
+ FluentMaterial.prototype.getAlphaTestTexture = function () {
92
+ return null;
93
+ };
94
+ FluentMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh) {
95
+ if (this.isFrozen) {
96
+ if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {
97
+ return true;
98
+ }
99
+ }
100
+ if (!subMesh.materialDefines) {
101
+ subMesh.materialDefines = new FluentMaterialDefines();
102
+ }
103
+ var scene = this.getScene();
104
+ var defines = subMesh.materialDefines;
105
+ if (!this.checkReadyOnEveryCall && subMesh.effect) {
106
+ if (defines._renderId === scene.getRenderId()) {
107
+ return true;
108
+ }
109
+ }
110
+ if (defines._areTexturesDirty) {
111
+ defines.INNERGLOW = this.innerGlowColorIntensity > 0;
112
+ defines.BORDER = this.renderBorders;
113
+ defines.HOVERLIGHT = this.renderHoverLight;
114
+ if (this._albedoTexture) {
115
+ if (!this._albedoTexture.isReadyOrNotBlocking()) {
116
+ return false;
117
+ }
118
+ else {
119
+ defines.TEXTURE = true;
120
+ }
121
+ }
122
+ else {
123
+ defines.TEXTURE = false;
124
+ }
125
+ }
126
+ var engine = scene.getEngine();
127
+ // Get correct effect
128
+ if (defines.isDirty) {
129
+ defines.markAsProcessed();
130
+ scene.resetCachedMaterial();
131
+ //Attributes
132
+ var attribs = [VertexBuffer.PositionKind];
133
+ attribs.push(VertexBuffer.NormalKind);
134
+ attribs.push(VertexBuffer.UVKind);
135
+ var shaderName = "fluent";
136
+ var uniforms = [
137
+ "world",
138
+ "viewProjection",
139
+ "innerGlowColor",
140
+ "albedoColor",
141
+ "borderWidth",
142
+ "edgeSmoothingValue",
143
+ "scaleFactor",
144
+ "borderMinValue",
145
+ "hoverColor",
146
+ "hoverPosition",
147
+ "hoverRadius",
148
+ "textureMatrix",
149
+ ];
150
+ var samplers = ["albedoSampler"];
151
+ var uniformBuffers = new Array();
152
+ MaterialHelper.PrepareUniformsAndSamplersList({
153
+ uniformsNames: uniforms,
154
+ uniformBuffersNames: uniformBuffers,
155
+ samplers: samplers,
156
+ defines: defines,
157
+ maxSimultaneousLights: 4,
158
+ });
159
+ var join = defines.toString();
160
+ subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
161
+ attributes: attribs,
162
+ uniformsNames: uniforms,
163
+ uniformBuffersNames: uniformBuffers,
164
+ samplers: samplers,
165
+ defines: join,
166
+ fallbacks: null,
167
+ onCompiled: this.onCompiled,
168
+ onError: this.onError,
169
+ indexParameters: { maxSimultaneousLights: 4 },
170
+ }, engine), defines, this._materialContext);
171
+ }
172
+ if (!subMesh.effect || !subMesh.effect.isReady()) {
173
+ return false;
174
+ }
175
+ defines._renderId = scene.getRenderId();
176
+ subMesh.effect._wasPreviouslyReady = true;
177
+ return true;
178
+ };
179
+ FluentMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
180
+ var scene = this.getScene();
181
+ var defines = subMesh.materialDefines;
182
+ if (!defines) {
183
+ return;
184
+ }
185
+ var effect = subMesh.effect;
186
+ if (!effect) {
187
+ return;
188
+ }
189
+ this._activeEffect = effect;
190
+ // Matrices
191
+ this.bindOnlyWorldMatrix(world);
192
+ this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
193
+ if (this._mustRebind(scene, effect)) {
194
+ this._activeEffect.setColor4("albedoColor", this.albedoColor, this.alpha);
195
+ if (defines.INNERGLOW) {
196
+ this._activeEffect.setColor4("innerGlowColor", this.innerGlowColor, this.innerGlowColorIntensity);
197
+ }
198
+ if (defines.BORDER) {
199
+ this._activeEffect.setFloat("borderWidth", this.borderWidth);
200
+ this._activeEffect.setFloat("edgeSmoothingValue", this.edgeSmoothingValue);
201
+ this._activeEffect.setFloat("borderMinValue", this.borderMinValue);
202
+ mesh.getBoundingInfo().boundingBox.extendSize.multiplyToRef(mesh.scaling, TmpVectors.Vector3[0]);
203
+ this._activeEffect.setVector3("scaleFactor", TmpVectors.Vector3[0]);
204
+ }
205
+ if (defines.HOVERLIGHT) {
206
+ this._activeEffect.setDirectColor4("hoverColor", this.hoverColor);
207
+ this._activeEffect.setFloat("hoverRadius", this.hoverRadius);
208
+ this._activeEffect.setVector3("hoverPosition", this.hoverPosition);
209
+ }
210
+ if (defines.TEXTURE && this._albedoTexture) {
211
+ this._activeEffect.setTexture("albedoSampler", this._albedoTexture);
212
+ var matrix = this._albedoTexture.getTextureMatrix();
213
+ this._activeEffect.setMatrix("textureMatrix", matrix);
214
+ }
215
+ }
216
+ this._afterBind(mesh, this._activeEffect);
217
+ };
218
+ FluentMaterial.prototype.getActiveTextures = function () {
219
+ var activeTextures = _super.prototype.getActiveTextures.call(this);
220
+ return activeTextures;
221
+ };
222
+ FluentMaterial.prototype.hasTexture = function (texture) {
223
+ if (_super.prototype.hasTexture.call(this, texture)) {
224
+ return true;
225
+ }
226
+ return false;
227
+ };
228
+ FluentMaterial.prototype.dispose = function (forceDisposeEffect) {
229
+ _super.prototype.dispose.call(this, forceDisposeEffect);
230
+ };
231
+ FluentMaterial.prototype.clone = function (name) {
232
+ var _this = this;
233
+ return SerializationHelper.Clone(function () { return new FluentMaterial(name, _this.getScene()); }, this);
234
+ };
235
+ FluentMaterial.prototype.serialize = function () {
236
+ var serializationObject = _super.prototype.serialize.call(this);
237
+ serializationObject.customType = "BABYLON.GUI.FluentMaterial";
238
+ return serializationObject;
239
+ };
240
+ FluentMaterial.prototype.getClassName = function () {
241
+ return "FluentMaterial";
242
+ };
243
+ // Statics
244
+ FluentMaterial.Parse = function (source, scene, rootUrl) {
245
+ return SerializationHelper.Parse(function () { return new FluentMaterial(source.name, scene); }, source, scene, rootUrl);
246
+ };
247
+ __decorate([
248
+ serialize(),
249
+ expandToProperty("_markAllSubMeshesAsTexturesDirty")
250
+ ], FluentMaterial.prototype, "innerGlowColorIntensity", void 0);
251
+ __decorate([
252
+ serializeAsColor3()
253
+ ], FluentMaterial.prototype, "innerGlowColor", void 0);
254
+ __decorate([
255
+ serializeAsColor3()
256
+ ], FluentMaterial.prototype, "albedoColor", void 0);
257
+ __decorate([
258
+ serialize(),
259
+ expandToProperty("_markAllSubMeshesAsTexturesDirty")
260
+ ], FluentMaterial.prototype, "renderBorders", void 0);
261
+ __decorate([
262
+ serialize()
263
+ ], FluentMaterial.prototype, "borderWidth", void 0);
264
+ __decorate([
265
+ serialize()
266
+ ], FluentMaterial.prototype, "edgeSmoothingValue", void 0);
267
+ __decorate([
268
+ serialize()
269
+ ], FluentMaterial.prototype, "borderMinValue", void 0);
270
+ __decorate([
271
+ serialize(),
272
+ expandToProperty("_markAllSubMeshesAsTexturesDirty")
273
+ ], FluentMaterial.prototype, "renderHoverLight", void 0);
274
+ __decorate([
275
+ serialize()
276
+ ], FluentMaterial.prototype, "hoverRadius", void 0);
277
+ __decorate([
278
+ serializeAsColor4()
279
+ ], FluentMaterial.prototype, "hoverColor", void 0);
280
+ __decorate([
281
+ serializeAsVector3()
282
+ ], FluentMaterial.prototype, "hoverPosition", void 0);
283
+ __decorate([
284
+ serializeAsTexture("albedoTexture")
285
+ ], FluentMaterial.prototype, "_albedoTexture", void 0);
286
+ __decorate([
287
+ expandToProperty("_markAllSubMeshesAsTexturesAndMiscDirty")
288
+ ], FluentMaterial.prototype, "albedoTexture", void 0);
289
+ return FluentMaterial;
290
+ }(PushMaterial));
291
+ export { FluentMaterial };
292
+ RegisterClass("BABYLON.GUI.FluentMaterial", FluentMaterial);
293
293
  //# sourceMappingURL=fluentMaterial.js.map
@@ -1 +1 @@
1
- export * from "./fluentMaterial";
1
+ export * from "./fluentMaterial";
@@ -1,2 +1,2 @@
1
- export * from "./fluentMaterial.js";
1
+ export * from "./fluentMaterial";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- /** @hidden */
2
- export declare const fluentPixelShader: {
3
- name: string;
4
- shader: string;
5
- };
1
+ /** @hidden */
2
+ export declare const fluentPixelShader: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -1,9 +1,9 @@
1
- // Do not edit.
2
- import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
3
- var name = "fluentPixelShader";
4
- var shader = "precision highp float;\nvarying vec2 vUV;\nuniform vec4 albedoColor;\n#ifdef INNERGLOW\nuniform vec4 innerGlowColor;\n#endif\n#ifdef BORDER\nvarying vec2 scaleInfo;\nuniform float edgeSmoothingValue;\nuniform float borderMinValue;\n#endif\n#ifdef HOVERLIGHT\nvarying vec3 worldPosition;\nuniform vec3 hoverPosition;\nuniform vec4 hoverColor;\nuniform float hoverRadius;\n#endif\n#ifdef TEXTURE\nuniform sampler2D albedoSampler;\nuniform mat4 textureMatrix;\nvec2 finalUV;\n#endif\nvoid main(void) {\nvec3 albedo=albedoColor.rgb;\nfloat alpha=albedoColor.a;\n#ifdef TEXTURE\nfinalUV=vec2(textureMatrix*vec4(vUV,1.0,0.0));\nalbedo=texture2D(albedoSampler,finalUV).rgb;\n#endif\n#ifdef HOVERLIGHT\nfloat pointToHover=(1.0-clamp(length(hoverPosition-worldPosition)/hoverRadius,0.,1.))*hoverColor.a;\nalbedo=clamp(albedo+hoverColor.rgb*pointToHover,0.,1.);\n#else\nfloat pointToHover=1.0;\n#endif\n#ifdef BORDER \nfloat borderPower=10.0;\nfloat inverseBorderPower=1.0/borderPower;\nvec3 borderColor=albedo*borderPower;\nvec2 distanceToEdge;\ndistanceToEdge.x=abs(vUV.x-0.5)*2.0;\ndistanceToEdge.y=abs(vUV.y-0.5)*2.0;\nfloat borderValue=max(smoothstep(scaleInfo.x-edgeSmoothingValue,scaleInfo.x+edgeSmoothingValue,distanceToEdge.x),\nsmoothstep(scaleInfo.y-edgeSmoothingValue,scaleInfo.y+edgeSmoothingValue,distanceToEdge.y));\nborderColor=borderColor*borderValue*max(borderMinValue*inverseBorderPower,pointToHover); \nalbedo+=borderColor;\nalpha=max(alpha,borderValue);\n#endif\n#ifdef INNERGLOW\nvec2 uvGlow=(vUV-vec2(0.5,0.5))*(innerGlowColor.a*2.0);\nuvGlow=uvGlow*uvGlow;\nuvGlow=uvGlow*uvGlow;\nalbedo+=mix(vec3(0.0,0.0,0.0),innerGlowColor.rgb,uvGlow.x+uvGlow.y); \n#endif\ngl_FragColor=vec4(albedo,alpha);\n}";
5
- // Sideeffect
6
- ShaderStore.ShadersStore[name] = shader;
7
- /** @hidden */
8
- export var fluentPixelShader = { name: name, shader: shader };
1
+ // Do not edit.
2
+ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
3
+ var name = "fluentPixelShader";
4
+ var shader = "precision highp float;\nvarying vec2 vUV;\nuniform vec4 albedoColor;\n#ifdef INNERGLOW\nuniform vec4 innerGlowColor;\n#endif\n#ifdef BORDER\nvarying vec2 scaleInfo;\nuniform float edgeSmoothingValue;\nuniform float borderMinValue;\n#endif\n#ifdef HOVERLIGHT\nvarying vec3 worldPosition;\nuniform vec3 hoverPosition;\nuniform vec4 hoverColor;\nuniform float hoverRadius;\n#endif\n#ifdef TEXTURE\nuniform sampler2D albedoSampler;\nuniform mat4 textureMatrix;\nvec2 finalUV;\n#endif\nvoid main(void) {\nvec3 albedo=albedoColor.rgb;\nfloat alpha=albedoColor.a;\n#ifdef TEXTURE\nfinalUV=vec2(textureMatrix*vec4(vUV,1.0,0.0));\nalbedo=texture2D(albedoSampler,finalUV).rgb;\n#endif\n#ifdef HOVERLIGHT\nfloat pointToHover=(1.0-clamp(length(hoverPosition-worldPosition)/hoverRadius,0.,1.))*hoverColor.a;\nalbedo=clamp(albedo+hoverColor.rgb*pointToHover,0.,1.);\n#else\nfloat pointToHover=1.0;\n#endif\n#ifdef BORDER \nfloat borderPower=10.0;\nfloat inverseBorderPower=1.0/borderPower;\nvec3 borderColor=albedo*borderPower;\nvec2 distanceToEdge;\ndistanceToEdge.x=abs(vUV.x-0.5)*2.0;\ndistanceToEdge.y=abs(vUV.y-0.5)*2.0;\nfloat borderValue=max(smoothstep(scaleInfo.x-edgeSmoothingValue,scaleInfo.x+edgeSmoothingValue,distanceToEdge.x),\nsmoothstep(scaleInfo.y-edgeSmoothingValue,scaleInfo.y+edgeSmoothingValue,distanceToEdge.y));\nborderColor=borderColor*borderValue*max(borderMinValue*inverseBorderPower,pointToHover); \nalbedo+=borderColor;\nalpha=max(alpha,borderValue);\n#endif\n#ifdef INNERGLOW\nvec2 uvGlow=(vUV-vec2(0.5,0.5))*(innerGlowColor.a*2.0);\nuvGlow=uvGlow*uvGlow;\nuvGlow=uvGlow*uvGlow;\nalbedo+=mix(vec3(0.0,0.0,0.0),innerGlowColor.rgb,uvGlow.x+uvGlow.y); \n#endif\ngl_FragColor=vec4(albedo,alpha);\n}";
5
+ // Sideeffect
6
+ ShaderStore.ShadersStore[name] = shader;
7
+ /** @hidden */
8
+ export var fluentPixelShader = { name: name, shader: shader };
9
9
  //# sourceMappingURL=fluent.fragment.js.map
@@ -1,5 +1,5 @@
1
- /** @hidden */
2
- export declare const fluentVertexShader: {
3
- name: string;
4
- shader: string;
5
- };
1
+ /** @hidden */
2
+ export declare const fluentVertexShader: {
3
+ name: string;
4
+ shader: string;
5
+ };