@babylonjs/gui 5.0.0-alpha.6 → 5.0.0-alpha.63

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 (275) hide show
  1. package/2D/adtInstrumentation.js +1 -1
  2. package/2D/advancedDynamicTexture.d.ts +165 -125
  3. package/2D/advancedDynamicTexture.js +342 -181
  4. package/2D/advancedDynamicTexture.js.map +1 -1
  5. package/2D/controls/button.js +10 -10
  6. package/2D/controls/button.js.map +1 -1
  7. package/2D/controls/checkbox.d.ts +2 -1
  8. package/2D/controls/checkbox.js +10 -8
  9. package/2D/controls/checkbox.js.map +1 -1
  10. package/2D/controls/colorpicker.d.ts +4 -3
  11. package/2D/controls/colorpicker.js +40 -23
  12. package/2D/controls/colorpicker.js.map +1 -1
  13. package/2D/controls/container.d.ts +16 -5
  14. package/2D/controls/container.js +93 -15
  15. package/2D/controls/container.js.map +1 -1
  16. package/2D/controls/control.d.ts +99 -44
  17. package/2D/controls/control.js +267 -129
  18. package/2D/controls/control.js.map +1 -1
  19. package/2D/controls/displayGrid.d.ts +2 -1
  20. package/2D/controls/displayGrid.js +6 -6
  21. package/2D/controls/displayGrid.js.map +1 -1
  22. package/2D/controls/ellipse.d.ts +5 -3
  23. package/2D/controls/ellipse.js +9 -5
  24. package/2D/controls/ellipse.js.map +1 -1
  25. package/2D/controls/focusableButton.d.ts +4 -2
  26. package/2D/controls/focusableButton.js +9 -6
  27. package/2D/controls/focusableButton.js.map +1 -1
  28. package/2D/controls/focusableControl.d.ts +2 -1
  29. package/2D/controls/focusableControl.js.map +1 -1
  30. package/2D/controls/grid.d.ts +13 -2
  31. package/2D/controls/grid.js +108 -24
  32. package/2D/controls/grid.js.map +1 -1
  33. package/2D/controls/image.d.ts +20 -12
  34. package/2D/controls/image.js +154 -111
  35. package/2D/controls/image.js.map +1 -1
  36. package/2D/controls/index.js +29 -29
  37. package/2D/controls/inputPassword.js +4 -4
  38. package/2D/controls/inputPassword.js.map +1 -1
  39. package/2D/controls/inputText.d.ts +6 -4
  40. package/2D/controls/inputText.js +40 -14
  41. package/2D/controls/inputText.js.map +1 -1
  42. package/2D/controls/line.d.ts +3 -2
  43. package/2D/controls/line.js +8 -8
  44. package/2D/controls/line.js.map +1 -1
  45. package/2D/controls/multiLine.d.ts +4 -3
  46. package/2D/controls/multiLine.js +6 -6
  47. package/2D/controls/multiLine.js.map +1 -1
  48. package/2D/controls/radioButton.d.ts +2 -1
  49. package/2D/controls/radioButton.js +10 -7
  50. package/2D/controls/radioButton.js.map +1 -1
  51. package/2D/controls/rectangle.d.ts +8 -3
  52. package/2D/controls/rectangle.js +21 -5
  53. package/2D/controls/rectangle.js.map +1 -1
  54. package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -2
  55. package/2D/controls/scrollViewers/scrollViewer.js +9 -9
  56. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  57. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +4 -3
  58. package/2D/controls/scrollViewers/scrollViewerWindow.js +4 -4
  59. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  60. package/2D/controls/selector.js +8 -8
  61. package/2D/controls/selector.js.map +1 -1
  62. package/2D/controls/sliders/baseSlider.d.ts +1 -1
  63. package/2D/controls/sliders/baseSlider.js +12 -10
  64. package/2D/controls/sliders/baseSlider.js.map +1 -1
  65. package/2D/controls/sliders/imageBasedSlider.d.ts +10 -1
  66. package/2D/controls/sliders/imageBasedSlider.js +29 -5
  67. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  68. package/2D/controls/sliders/imageScrollBar.d.ts +2 -1
  69. package/2D/controls/sliders/imageScrollBar.js +3 -3
  70. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  71. package/2D/controls/sliders/scrollBar.d.ts +2 -1
  72. package/2D/controls/sliders/scrollBar.js +3 -3
  73. package/2D/controls/sliders/scrollBar.js.map +1 -1
  74. package/2D/controls/sliders/slider.d.ts +2 -1
  75. package/2D/controls/sliders/slider.js +4 -4
  76. package/2D/controls/sliders/slider.js.map +1 -1
  77. package/2D/controls/stackPanel.d.ts +10 -3
  78. package/2D/controls/stackPanel.js +35 -13
  79. package/2D/controls/stackPanel.js.map +1 -1
  80. package/2D/controls/statics.js +3 -3
  81. package/2D/controls/statics.js.map +1 -1
  82. package/2D/controls/textBlock.d.ts +9 -8
  83. package/2D/controls/textBlock.js +30 -20
  84. package/2D/controls/textBlock.js.map +1 -1
  85. package/2D/controls/textWrapper.js +2 -2
  86. package/2D/controls/textWrapper.js.map +1 -1
  87. package/2D/controls/toggleButton.d.ts +1 -13
  88. package/2D/controls/toggleButton.js +29 -38
  89. package/2D/controls/toggleButton.js.map +1 -1
  90. package/2D/controls/virtualKeyboard.js +5 -5
  91. package/2D/controls/virtualKeyboard.js.map +1 -1
  92. package/2D/index.d.ts +1 -1
  93. package/2D/index.js +9 -9
  94. package/2D/index.js.map +1 -1
  95. package/2D/math2D.js +2 -2
  96. package/2D/measure.js +1 -1
  97. package/2D/measure.js.map +1 -1
  98. package/2D/multiLinePoint.js +3 -3
  99. package/2D/style.js +2 -2
  100. package/2D/valueAndUnit.d.ts +21 -6
  101. package/2D/valueAndUnit.js +57 -13
  102. package/2D/valueAndUnit.js.map +1 -1
  103. package/2D/xmlLoader.d.ts +17 -3
  104. package/2D/xmlLoader.js +54 -15
  105. package/2D/xmlLoader.js.map +1 -1
  106. package/3D/behaviors/defaultBehavior.d.ts +73 -0
  107. package/3D/behaviors/defaultBehavior.js +122 -0
  108. package/3D/behaviors/defaultBehavior.js.map +1 -0
  109. package/3D/controls/abstractButton3D.d.ts +2 -2
  110. package/3D/controls/abstractButton3D.js +3 -3
  111. package/3D/controls/abstractButton3D.js.map +1 -1
  112. package/3D/controls/button3D.d.ts +0 -24
  113. package/3D/controls/button3D.js +7 -83
  114. package/3D/controls/button3D.js.map +1 -1
  115. package/3D/controls/container3D.js +2 -2
  116. package/3D/controls/contentDisplay3D.d.ts +30 -0
  117. package/3D/controls/contentDisplay3D.js +79 -0
  118. package/3D/controls/contentDisplay3D.js.map +1 -0
  119. package/3D/controls/control3D.d.ts +10 -7
  120. package/3D/controls/control3D.js +42 -28
  121. package/3D/controls/control3D.js.map +1 -1
  122. package/3D/controls/cylinderPanel.js +5 -5
  123. package/3D/controls/handMenu.d.ts +28 -0
  124. package/3D/controls/handMenu.js +48 -0
  125. package/3D/controls/handMenu.js.map +1 -0
  126. package/3D/controls/holographicBackplate.d.ts +48 -0
  127. package/3D/controls/holographicBackplate.js +121 -0
  128. package/3D/controls/holographicBackplate.js.map +1 -0
  129. package/3D/controls/holographicButton.d.ts +1 -1
  130. package/3D/controls/holographicButton.js +27 -24
  131. package/3D/controls/holographicButton.js.map +1 -1
  132. package/3D/controls/holographicSlate.d.ts +118 -0
  133. package/3D/controls/holographicSlate.js +360 -0
  134. package/3D/controls/holographicSlate.js.map +1 -0
  135. package/3D/controls/index.d.ts +10 -0
  136. package/3D/controls/index.js +22 -12
  137. package/3D/controls/index.js.map +1 -1
  138. package/3D/controls/meshButton3D.js +2 -2
  139. package/3D/controls/meshButton3D.js.map +1 -1
  140. package/3D/controls/nearMenu.d.ts +45 -0
  141. package/3D/controls/nearMenu.js +111 -0
  142. package/3D/controls/nearMenu.js.map +1 -0
  143. package/3D/controls/planePanel.js +3 -3
  144. package/3D/controls/scatterPanel.js +4 -4
  145. package/3D/controls/slider3D.d.ts +80 -0
  146. package/3D/controls/slider3D.js +268 -0
  147. package/3D/controls/slider3D.js.map +1 -0
  148. package/3D/controls/spherePanel.js +5 -5
  149. package/3D/controls/stackPanel3D.js +3 -3
  150. package/3D/controls/touchButton3D.d.ts +43 -0
  151. package/3D/controls/touchButton3D.js +133 -0
  152. package/3D/controls/touchButton3D.js.map +1 -0
  153. package/3D/controls/touchHolographicButton.d.ts +100 -0
  154. package/3D/controls/touchHolographicButton.js +408 -0
  155. package/3D/controls/touchHolographicButton.js.map +1 -0
  156. package/3D/controls/touchHolographicMenu.d.ts +61 -0
  157. package/3D/controls/touchHolographicMenu.js +149 -0
  158. package/3D/controls/touchHolographicMenu.js.map +1 -0
  159. package/3D/controls/touchMeshButton3D.d.ts +22 -0
  160. package/3D/controls/touchMeshButton3D.js +63 -0
  161. package/3D/controls/touchMeshButton3D.js.map +1 -0
  162. package/3D/controls/touchToggleButton3D.d.ts +35 -0
  163. package/3D/controls/touchToggleButton3D.js +60 -0
  164. package/3D/controls/touchToggleButton3D.js.map +1 -0
  165. package/3D/controls/volumeBasedPanel.d.ts +1 -1
  166. package/3D/controls/volumeBasedPanel.js +5 -5
  167. package/3D/controls/volumeBasedPanel.js.map +1 -1
  168. package/3D/gizmos/gizmoHandle.d.ts +108 -0
  169. package/3D/gizmos/gizmoHandle.js +210 -0
  170. package/3D/gizmos/gizmoHandle.js.map +1 -0
  171. package/3D/gizmos/index.d.ts +2 -0
  172. package/3D/gizmos/index.js +3 -0
  173. package/3D/gizmos/index.js.map +1 -0
  174. package/3D/gizmos/slateGizmo.d.ts +59 -0
  175. package/3D/gizmos/slateGizmo.js +364 -0
  176. package/3D/gizmos/slateGizmo.js.map +1 -0
  177. package/3D/gui3DManager.d.ts +19 -0
  178. package/3D/gui3DManager.js +73 -13
  179. package/3D/gui3DManager.js.map +1 -1
  180. package/3D/index.d.ts +3 -2
  181. package/3D/index.js +5 -4
  182. package/3D/index.js.map +1 -1
  183. package/3D/materials/fluent/fluentMaterial.d.ts +90 -0
  184. package/3D/materials/fluent/fluentMaterial.js +282 -0
  185. package/3D/materials/fluent/fluentMaterial.js.map +1 -0
  186. package/3D/materials/fluent/index.d.ts +1 -0
  187. package/3D/materials/fluent/index.js +2 -0
  188. package/3D/materials/fluent/index.js.map +1 -0
  189. package/3D/materials/{shaders → fluent/shaders}/fluent.fragment.d.ts +0 -0
  190. package/3D/materials/fluent/shaders/fluent.fragment.js +7 -0
  191. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
  192. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.d.ts +0 -0
  193. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.js +2 -2
  194. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
  195. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -0
  196. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +435 -0
  197. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
  198. package/3D/materials/fluentBackplate/index.d.ts +1 -0
  199. package/3D/materials/fluentBackplate/index.js +2 -0
  200. package/3D/materials/fluentBackplate/index.js.map +1 -0
  201. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
  202. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +7 -0
  203. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
  204. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
  205. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +7 -0
  206. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
  207. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -0
  208. package/3D/materials/fluentButton/fluentButtonMaterial.js +538 -0
  209. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
  210. package/3D/materials/fluentButton/index.d.ts +1 -0
  211. package/3D/materials/fluentButton/index.js +2 -0
  212. package/3D/materials/fluentButton/index.js.map +1 -0
  213. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
  214. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +7 -0
  215. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
  216. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
  217. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +7 -0
  218. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
  219. package/3D/materials/fluentMaterial.d.ts +2 -88
  220. package/3D/materials/fluentMaterial.js +2 -277
  221. package/3D/materials/fluentMaterial.js.map +1 -1
  222. package/3D/materials/handle/handleMaterial.d.ts +68 -0
  223. package/3D/materials/handle/handleMaterial.js +127 -0
  224. package/3D/materials/handle/handleMaterial.js.map +1 -0
  225. package/3D/materials/handle/index.d.ts +1 -0
  226. package/3D/materials/handle/index.js +2 -0
  227. package/3D/materials/handle/index.js.map +1 -0
  228. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
  229. package/3D/materials/handle/shaders/handle.fragment.js +7 -0
  230. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
  231. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
  232. package/3D/materials/handle/shaders/handle.vertex.js +7 -0
  233. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
  234. package/3D/materials/index.d.ts +5 -1
  235. package/3D/materials/index.js +5 -1
  236. package/3D/materials/index.js.map +1 -1
  237. package/3D/materials/mrdl/index.d.ts +3 -0
  238. package/3D/materials/mrdl/index.js +4 -0
  239. package/3D/materials/mrdl/index.js.map +1 -0
  240. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -0
  241. package/3D/materials/mrdl/mrdlBackplateMaterial.js +410 -0
  242. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
  243. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -0
  244. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +787 -0
  245. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
  246. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -0
  247. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +787 -0
  248. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
  249. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
  250. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +7 -0
  251. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
  252. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
  253. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +7 -0
  254. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
  255. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
  256. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +7 -0
  257. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
  258. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
  259. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +7 -0
  260. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
  261. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
  262. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +7 -0
  263. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
  264. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
  265. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +7 -0
  266. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
  267. package/3D/vector3WithInfo.js +1 -1
  268. package/index.d.ts +2 -2
  269. package/index.js +2 -2
  270. package/index.js.map +1 -1
  271. package/legacy/legacy.js +2 -2
  272. package/package.json +126 -9
  273. package/3D/materials/shaders/fluent.fragment.js +0 -7
  274. package/3D/materials/shaders/fluent.fragment.js.map +0 -1
  275. package/3D/materials/shaders/fluent.vertex.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluentMaterial.js","sourceRoot":"","sources":["../../../../../sourceES6/gui/src/3D/materials/fluent/fluentMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { serializeAsColor4, serializeAsVector3, serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from \"@babylonjs/core/Misc/decorators\";\r\nimport { Vector3, Matrix, TmpVectors } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { BaseTexture } from \"@babylonjs/core/Materials/Textures/baseTexture\";\r\nimport { MaterialDefines } from \"@babylonjs/core/Materials/materialDefines\";\r\nimport { IEffectCreationOptions } from \"@babylonjs/core/Materials/effect\";\r\nimport { MaterialHelper } from \"@babylonjs/core/Materials/materialHelper\";\r\nimport { PushMaterial } from \"@babylonjs/core/Materials/pushMaterial\";\r\nimport { VertexBuffer } from \"@babylonjs/core/Buffers/buffer\";\r\nimport { AbstractMesh } from \"@babylonjs/core/Meshes/abstractMesh\";\r\nimport { SubMesh } from \"@babylonjs/core/Meshes/subMesh\";\r\nimport { Mesh } from \"@babylonjs/core/Meshes/mesh\";\r\nimport { Scene } from \"@babylonjs/core/scene\";\r\nimport { RegisterClass } from \"@babylonjs/core/Misc/typeStore\";\r\nimport { Color3, Color4 } from \"@babylonjs/core/Maths/math.color\";\r\n\r\nimport \"./shaders/fluent.vertex\";\r\nimport \"./shaders/fluent.fragment\";\r\n\r\n/** @hidden */\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 desgin\r\n */\r\nexport class FluentMaterial extends PushMaterial {\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 1.0)\r\n */\r\n @serialize()\r\n public hoverRadius = 1.0;\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 needAlphaBlending(): boolean {\r\n return this.alpha !== 1.0;\r\n }\r\n\r\n public needAlphaTesting(): boolean {\r\n return false;\r\n }\r\n\r\n public getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\r\n if (this.isFrozen) {\r\n if (subMesh.effect && subMesh.effect._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 var scene = this.getScene();\r\n var 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 var 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 var attribs = [VertexBuffer.PositionKind];\r\n attribs.push(VertexBuffer.NormalKind);\r\n attribs.push(VertexBuffer.UVKind);\r\n\r\n var shaderName = \"fluent\";\r\n\r\n var uniforms = [\"world\", \"viewProjection\", \"innerGlowColor\", \"albedoColor\", \"borderWidth\", \"edgeSmoothingValue\", \"scaleFactor\", \"borderMinValue\",\r\n \"hoverColor\", \"hoverPosition\", \"hoverRadius\", \"textureMatrix\"\r\n ];\r\n\r\n var samplers = [\"albedoSampler\"];\r\n var uniformBuffers = new Array<string>();\r\n\r\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: 4\r\n });\r\n\r\n var join = defines.toString();\r\n subMesh.setEffect(scene.getEngine().createEffect(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 }, engine), defines, 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 subMesh.effect._wasPreviouslyReady = true;\r\n\r\n return true;\r\n }\r\n\r\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n var scene = this.getScene();\r\n\r\n var defines = <FluentMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n var 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)) {\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);\r\n }\r\n\r\n public getActiveTextures(): BaseTexture[] {\r\n var activeTextures = super.getActiveTextures();\r\n\r\n return activeTextures;\r\n }\r\n\r\n public 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 public dispose(forceDisposeEffect?: boolean): void {\r\n super.dispose(forceDisposeEffect);\r\n }\r\n\r\n public clone(name: string): FluentMaterial {\r\n return SerializationHelper.Clone(() => new FluentMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public serialize(): any {\r\n var serializationObject = SerializationHelper.Serialize(this);\r\n serializationObject.customType = \"BABYLON.GUI.FluentMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public getClassName(): string {\r\n return \"FluentMaterial\";\r\n }\r\n\r\n // Statics\r\n public static 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);"]}
@@ -0,0 +1 @@
1
+ export * from "./fluentMaterial";
@@ -0,0 +1,2 @@
1
+ export * from "./fluentMaterial.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../sourceES6/gui/src/3D/materials/fluent/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC","sourcesContent":["export * from \"./fluentMaterial\";"]}
@@ -0,0 +1,7 @@
1
+ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
2
+ var name = 'fluentPixelShader';
3
+ 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\n\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}";
4
+ ShaderStore.ShadersStore[name] = shader;
5
+ /** @hidden */
6
+ export var fluentPixelShader = { name: name, shader: shader };
7
+ //# sourceMappingURL=fluent.fragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent.fragment.js","sourceRoot":"","sources":["../../../../../../sourceES6/gui/src/3D/materials/fluent/shaders/fluent.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,IAAI,IAAI,GAAG,mBAAmB,CAAC;AAC/B,IAAI,MAAM,GAAG,8qDAwDX,CAAC;AAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,iBAAiB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\n\nlet name = 'fluentPixelShader';\nlet 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\n\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}`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var fluentPixelShader = { name, shader };\n"]}
@@ -1,7 +1,7 @@
1
- import { Effect } from "@babylonjs/core/Materials/effect";
1
+ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
2
2
  var name = 'fluentVertexShader';
3
3
  var shader = "precision highp float;\n\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\n\nuniform mat4 world;\nuniform mat4 viewProjection;\nvarying vec2 vUV;\n#ifdef BORDER\nvarying vec2 scaleInfo;\nuniform float borderWidth;\nuniform vec3 scaleFactor;\n#endif\n#ifdef HOVERLIGHT\nvarying vec3 worldPosition;\n#endif\nvoid main(void) {\nvUV=uv;\n#ifdef BORDER\nvec3 scale=scaleFactor;\nfloat minScale=min(min(scale.x,scale.y),scale.z);\nfloat maxScale=max(max(scale.x,scale.y),scale.z);\nfloat minOverMiddleScale=minScale/(scale.x+scale.y+scale.z-minScale-maxScale);\nfloat areaYZ=scale.y*scale.z;\nfloat areaXZ=scale.x*scale.z;\nfloat areaXY=scale.x*scale.y;\nfloat scaledBorderWidth=borderWidth;\nif (abs(normal.x) == 1.0)\n{\nscale.x=scale.y;\nscale.y=scale.z;\nif (areaYZ>areaXZ && areaYZ>areaXY)\n{\nscaledBorderWidth*=minOverMiddleScale;\n}\n}\nelse if (abs(normal.y) == 1.0)\n{\nscale.x=scale.z;\nif (areaXZ>areaXY && areaXZ>areaYZ)\n{\nscaledBorderWidth*=minOverMiddleScale;\n}\n}\nelse\n{\nif (areaXY>areaYZ && areaXY>areaXZ)\n{\nscaledBorderWidth*=minOverMiddleScale;\n}\n}\nfloat scaleRatio=min(scale.x,scale.y)/max(scale.x,scale.y);\nif (scale.x>scale.y)\n{\nscaleInfo.x=1.0-(scaledBorderWidth*scaleRatio);\nscaleInfo.y=1.0-scaledBorderWidth;\n}\nelse\n{\nscaleInfo.x=1.0-scaledBorderWidth;\nscaleInfo.y=1.0-(scaledBorderWidth*scaleRatio);\n}\n#endif\nvec4 worldPos=world*vec4(position,1.0);\n#ifdef HOVERLIGHT\nworldPosition=worldPos.xyz;\n#endif\ngl_Position=viewProjection*worldPos;\n}\n";
4
- Effect.ShadersStore[name] = shader;
4
+ ShaderStore.ShadersStore[name] = shader;
5
5
  /** @hidden */
6
6
  export var fluentVertexShader = { name: name, shader: shader };
7
7
  //# sourceMappingURL=fluent.vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent.vertex.js","sourceRoot":"","sources":["../../../../../../sourceES6/gui/src/3D/materials/fluent/shaders/fluent.vertex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,IAAI,IAAI,GAAG,oBAAoB,CAAC;AAChC,IAAI,MAAM,GAAG,y+CAsEZ,CAAC;AAEF,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,kBAAkB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\n\nlet name = 'fluentVertexShader';\nlet shader = `precision highp float;\n\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\n\nuniform mat4 world;\nuniform mat4 viewProjection;\nvarying vec2 vUV;\n#ifdef BORDER\nvarying vec2 scaleInfo;\nuniform float borderWidth;\nuniform vec3 scaleFactor;\n#endif\n#ifdef HOVERLIGHT\nvarying vec3 worldPosition;\n#endif\nvoid main(void) {\nvUV=uv;\n#ifdef BORDER\nvec3 scale=scaleFactor;\nfloat minScale=min(min(scale.x,scale.y),scale.z);\nfloat maxScale=max(max(scale.x,scale.y),scale.z);\nfloat minOverMiddleScale=minScale/(scale.x+scale.y+scale.z-minScale-maxScale);\nfloat areaYZ=scale.y*scale.z;\nfloat areaXZ=scale.x*scale.z;\nfloat areaXY=scale.x*scale.y;\nfloat scaledBorderWidth=borderWidth;\nif (abs(normal.x) == 1.0)\n{\nscale.x=scale.y;\nscale.y=scale.z;\nif (areaYZ>areaXZ && areaYZ>areaXY)\n{\nscaledBorderWidth*=minOverMiddleScale;\n}\n}\nelse if (abs(normal.y) == 1.0)\n{\nscale.x=scale.z;\nif (areaXZ>areaXY && areaXZ>areaYZ)\n{\nscaledBorderWidth*=minOverMiddleScale;\n}\n}\nelse\n{\nif (areaXY>areaYZ && areaXY>areaXZ)\n{\nscaledBorderWidth*=minOverMiddleScale;\n}\n}\nfloat scaleRatio=min(scale.x,scale.y)/max(scale.x,scale.y);\nif (scale.x>scale.y)\n{\nscaleInfo.x=1.0-(scaledBorderWidth*scaleRatio);\nscaleInfo.y=1.0-scaledBorderWidth;\n}\nelse\n{\nscaleInfo.x=1.0-scaledBorderWidth;\nscaleInfo.y=1.0-(scaledBorderWidth*scaleRatio);\n}\n#endif\nvec4 worldPos=world*vec4(position,1.0);\n#ifdef HOVERLIGHT\nworldPosition=worldPos.xyz;\n#endif\ngl_Position=viewProjection*worldPos;\n}\n`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var fluentVertexShader = { name, shader };\n"]}
@@ -0,0 +1,154 @@
1
+ import { Nullable } from "@babylonjs/core/types";
2
+ import { Matrix, Vector3, Vector4 } from "@babylonjs/core/Maths/math.vector";
3
+ import { IAnimatable } from "@babylonjs/core/Animations/animatable.interface";
4
+ import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
5
+ import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial";
6
+ import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh";
7
+ import { SubMesh } from "@babylonjs/core/Meshes/subMesh";
8
+ import { Mesh } from "@babylonjs/core/Meshes/mesh";
9
+ import { Scene } from "@babylonjs/core/scene";
10
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
11
+ import "./shaders/fluentBackplate.fragment";
12
+ import "./shaders/fluentBackplate.vertex";
13
+ /**
14
+ * Class used to render square buttons with fluent desgin
15
+ */
16
+ export declare class FluentBackplateMaterial extends PushMaterial {
17
+ /**
18
+ * URL pointing to the texture used to define the coloring for the fluent blob effect.
19
+ */
20
+ static BLOB_TEXTURE_URL: string;
21
+ /**
22
+ * URL pointing to the texture used to define iridescent map.
23
+ */
24
+ static IM_TEXTURE_URL: string;
25
+ private _blobTexture;
26
+ private _iridescentMap;
27
+ /**
28
+ * Gets or sets the corner radius on the backplate. Best to keep this value between 0.01 and 0.5. Default is 0.03.
29
+ */
30
+ radius: number;
31
+ /**
32
+ * Gets or sets the line width of the backplate.
33
+ */
34
+ lineWidth: number;
35
+ /**
36
+ * Gets or sets whether to use absolute sizes when calculating effects on the backplate.
37
+ * Since desktop and VR/AR have different relative sizes, it's usually best to keep this false.
38
+ */
39
+ absoluteSizes: boolean;
40
+ /** @hidden */
41
+ _filterWidth: number;
42
+ /**
43
+ * Gets or sets the base color of the backplate.
44
+ */
45
+ baseColor: Color4;
46
+ /**
47
+ * Gets or sets the line color of the backplate.
48
+ */
49
+ lineColor: Color4;
50
+ /**
51
+ * Gets or sets the intensity of the fluent hover glow effect.
52
+ */
53
+ blobIntensity: number;
54
+ /**
55
+ * Gets or sets the far size of the fluent hover glow effect.
56
+ */
57
+ blobFarSize: number;
58
+ /**
59
+ * Gets or sets the distance considered "near" to the backplate, which controls the size of the fluent hover glow effect (see blobNearSize).
60
+ */
61
+ blobNearDistance: number;
62
+ /**
63
+ * Gets or sets the distance considered "far" from the backplate, which controls the size of the fluent hover glow effect (see blobFarSize).
64
+ */
65
+ blobFarDistance: number;
66
+ /**
67
+ * Gets or sets the length of the fluent hover glow effect fade.
68
+ */
69
+ blobFadeLength: number;
70
+ /**
71
+ * Gets or sets the size of the fluent hover glow effect when the left pointer is considered "near" to the backplate (see blobNearDistance).
72
+ */
73
+ blobNearSize: number;
74
+ /**
75
+ * Gets or sets the progress of the fluent hover glow effect selection animation corresponding to the left pointer (0.0 - 1.0).
76
+ */
77
+ blobPulse: number;
78
+ /**
79
+ * Gets or sets the opacity of the fluent hover glow effect corresponding to the left pointer (0.0 - 1.0). Default is 0.
80
+ */
81
+ blobFade: number;
82
+ /**
83
+ * Gets or sets the size of the fluent hover glow effect when the right pointer is considered "near" to the backplate (see blobNearDistance).
84
+ */
85
+ blobNearSize2: number;
86
+ /**
87
+ * Gets or sets the progress of the fluent hover glow effect selection animation corresponding to the right pointer (0.0 - 1.0).
88
+ */
89
+ blobPulse2: number;
90
+ /**
91
+ * Gets or sets the opacity of the fluent hover glow effect corresponding to the right pointer (0.0 - 1.0). Default is 0.
92
+ */
93
+ blobFade2: number;
94
+ /** @hidden */
95
+ _rate: number;
96
+ /**
97
+ * Gets or sets the color of the highlights on the backplate line.
98
+ */
99
+ highlightColor: Color4;
100
+ /**
101
+ * Gets or sets the width of the highlights on the backplate line.
102
+ */
103
+ highlightWidth: number;
104
+ /** @hidden */
105
+ _highlightTransform: Vector4;
106
+ /** @hidden */
107
+ _highlight: number;
108
+ /**
109
+ * Gets or sets the intensity of the iridescence effect.
110
+ */
111
+ iridescenceIntensity: number;
112
+ /**
113
+ * Gets or sets the intensity of the iridescence effect on the backplate edges.
114
+ */
115
+ iridescenceEdgeIntensity: number;
116
+ /** @hidden */
117
+ _angle: number;
118
+ /**
119
+ * Gets or sets the opacity of the backplate (0.0 - 1.0).
120
+ */
121
+ fadeOut: number;
122
+ /** @hidden */
123
+ _reflected: boolean;
124
+ /** @hidden */
125
+ _frequency: number;
126
+ /** @hidden */
127
+ _verticalOffset: number;
128
+ /**
129
+ * Gets or sets the world-space position of the tip of the left index finger.
130
+ */
131
+ globalLeftIndexTipPosition: Vector3;
132
+ private _globalLeftIndexTipPosition4;
133
+ /**
134
+ * Gets or sets the world-space position of the tip of the right index finger.
135
+ */
136
+ globalRightIndexTipPosition: Vector3;
137
+ private _globalRightIndexTipPosition4;
138
+ constructor(name: string, scene: Scene);
139
+ needAlphaBlending(): boolean;
140
+ needAlphaTesting(): boolean;
141
+ getAlphaTestTexture(): Nullable<BaseTexture>;
142
+ isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
143
+ bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
144
+ /**
145
+ * Get the list of animatables in the material.
146
+ * @returns the list of animatables object used in the material
147
+ */
148
+ getAnimatables(): IAnimatable[];
149
+ dispose(forceDisposeEffect?: boolean): void;
150
+ clone(name: string): FluentBackplateMaterial;
151
+ serialize(): any;
152
+ getClassName(): string;
153
+ static Parse(source: any, scene: Scene, rootUrl: string): FluentBackplateMaterial;
154
+ }