@onerjs/gui 8.23.1
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/guiTask.d.ts +34 -0
- package/2D/FrameGraph/guiTask.js +62 -0
- package/2D/FrameGraph/guiTask.js.map +1 -0
- package/2D/FrameGraph/renderGraphGUIBlock.d.ts +43 -0
- package/2D/FrameGraph/renderGraphGUIBlock.js +66 -0
- package/2D/FrameGraph/renderGraphGUIBlock.js.map +1 -0
- package/2D/adtInstrumentation.d.ts +52 -0
- package/2D/adtInstrumentation.js +107 -0
- package/2D/adtInstrumentation.js.map +1 -0
- package/2D/advancedDynamicTexture.d.ts +548 -0
- package/2D/advancedDynamicTexture.js +1522 -0
- package/2D/advancedDynamicTexture.js.map +1 -0
- package/2D/controls/button.d.ts +109 -0
- package/2D/controls/button.js +246 -0
- package/2D/controls/button.js.map +1 -0
- package/2D/controls/checkbox.d.ts +53 -0
- package/2D/controls/checkbox.js +164 -0
- package/2D/controls/checkbox.js.map +1 -0
- package/2D/controls/colorpicker.d.ts +101 -0
- package/2D/controls/colorpicker.js +1396 -0
- package/2D/controls/colorpicker.js.map +1 -0
- package/2D/controls/container.d.ts +179 -0
- package/2D/controls/container.js +616 -0
- package/2D/controls/container.js.map +1 -0
- package/2D/controls/control.d.ts +943 -0
- package/2D/controls/control.js +2460 -0
- package/2D/controls/control.js.map +1 -0
- package/2D/controls/displayGrid.d.ts +53 -0
- package/2D/controls/displayGrid.js +202 -0
- package/2D/controls/displayGrid.js.map +1 -0
- package/2D/controls/ellipse.d.ts +25 -0
- package/2D/controls/ellipse.js +93 -0
- package/2D/controls/ellipse.js.map +1 -0
- package/2D/controls/focusableButton.d.ts +17 -0
- package/2D/controls/focusableButton.js +25 -0
- package/2D/controls/focusableButton.js.map +1 -0
- package/2D/controls/focusableControl.d.ts +43 -0
- package/2D/controls/focusableControl.js +2 -0
- package/2D/controls/focusableControl.js.map +1 -0
- package/2D/controls/gradient/BaseGradient.d.ts +69 -0
- package/2D/controls/gradient/BaseGradient.js +84 -0
- package/2D/controls/gradient/BaseGradient.js.map +1 -0
- package/2D/controls/gradient/LinearGradient.d.ts +45 -0
- package/2D/controls/gradient/LinearGradient.js +73 -0
- package/2D/controls/gradient/LinearGradient.js.map +1 -0
- package/2D/controls/gradient/RadialGradient.d.ts +53 -0
- package/2D/controls/gradient/RadialGradient.js +89 -0
- package/2D/controls/gradient/RadialGradient.js.map +1 -0
- package/2D/controls/grid.d.ts +151 -0
- package/2D/controls/grid.js +528 -0
- package/2D/controls/grid.js.map +1 -0
- package/2D/controls/image.d.ts +228 -0
- package/2D/controls/image.js +915 -0
- package/2D/controls/image.js.map +1 -0
- package/2D/controls/index.d.ts +34 -0
- package/2D/controls/index.js +35 -0
- package/2D/controls/index.js.map +1 -0
- package/2D/controls/inputPassword.d.ts +9 -0
- package/2D/controls/inputPassword.js +22 -0
- package/2D/controls/inputPassword.js.map +1 -0
- package/2D/controls/inputText.d.ts +197 -0
- package/2D/controls/inputText.js +1035 -0
- package/2D/controls/inputText.js.map +1 -0
- package/2D/controls/inputTextArea.d.ts +142 -0
- package/2D/controls/inputTextArea.js +1025 -0
- package/2D/controls/inputTextArea.js.map +1 -0
- package/2D/controls/line.d.ts +73 -0
- package/2D/controls/line.js +227 -0
- package/2D/controls/line.js.map +1 -0
- package/2D/controls/multiLine.d.ts +75 -0
- package/2D/controls/multiLine.js +237 -0
- package/2D/controls/multiLine.js.map +1 -0
- package/2D/controls/radioButton.d.ts +49 -0
- package/2D/controls/radioButton.js +185 -0
- package/2D/controls/radioButton.js.map +1 -0
- package/2D/controls/rectangle.d.ts +43 -0
- package/2D/controls/rectangle.js +204 -0
- package/2D/controls/rectangle.js.map +1 -0
- package/2D/controls/scrollViewers/scrollViewer.d.ts +178 -0
- package/2D/controls/scrollViewers/scrollViewer.js +587 -0
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -0
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +51 -0
- package/2D/controls/scrollViewers/scrollViewerWindow.js +254 -0
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -0
- package/2D/controls/selector.d.ts +237 -0
- package/2D/controls/selector.js +579 -0
- package/2D/controls/selector.js.map +1 -0
- package/2D/controls/sliders/baseSlider.d.ts +80 -0
- package/2D/controls/sliders/baseSlider.js +299 -0
- package/2D/controls/sliders/baseSlider.js.map +1 -0
- package/2D/controls/sliders/imageBasedSlider.d.ts +47 -0
- package/2D/controls/sliders/imageBasedSlider.js +168 -0
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -0
- package/2D/controls/sliders/imageScrollBar.d.ts +67 -0
- package/2D/controls/sliders/imageScrollBar.js +248 -0
- package/2D/controls/sliders/imageScrollBar.js.map +1 -0
- package/2D/controls/sliders/scrollBar.d.ts +50 -0
- package/2D/controls/sliders/scrollBar.js +175 -0
- package/2D/controls/sliders/scrollBar.js.map +1 -0
- package/2D/controls/sliders/slider.d.ts +46 -0
- package/2D/controls/sliders/slider.js +281 -0
- package/2D/controls/sliders/slider.js.map +1 -0
- package/2D/controls/stackPanel.d.ts +64 -0
- package/2D/controls/stackPanel.js +244 -0
- package/2D/controls/stackPanel.js.map +1 -0
- package/2D/controls/statics.d.ts +6 -0
- package/2D/controls/statics.js +50 -0
- package/2D/controls/statics.js.map +1 -0
- package/2D/controls/textBlock.d.ts +219 -0
- package/2D/controls/textBlock.js +670 -0
- package/2D/controls/textBlock.js.map +1 -0
- package/2D/controls/textWrapper.d.ts +13 -0
- package/2D/controls/textWrapper.js +88 -0
- package/2D/controls/textWrapper.js.map +1 -0
- package/2D/controls/toggleButton.d.ts +93 -0
- package/2D/controls/toggleButton.js +229 -0
- package/2D/controls/toggleButton.js.map +1 -0
- package/2D/controls/virtualKeyboard.d.ts +102 -0
- package/2D/controls/virtualKeyboard.js +275 -0
- package/2D/controls/virtualKeyboard.js.map +1 -0
- package/2D/index.d.ts +11 -0
- package/2D/index.js +13 -0
- package/2D/index.js.map +1 -0
- package/2D/math2D.d.ts +136 -0
- package/2D/math2D.js +235 -0
- package/2D/math2D.js.map +1 -0
- package/2D/measure.d.ts +77 -0
- package/2D/measure.js +138 -0
- package/2D/measure.js.map +1 -0
- package/2D/multiLinePoint.d.ts +47 -0
- package/2D/multiLinePoint.js +110 -0
- package/2D/multiLinePoint.js.map +1 -0
- package/2D/style.d.ts +46 -0
- package/2D/style.js +80 -0
- package/2D/style.js.map +1 -0
- package/2D/valueAndUnit.d.ts +89 -0
- package/2D/valueAndUnit.js +194 -0
- package/2D/valueAndUnit.js.map +1 -0
- package/2D/xmlLoader.d.ts +60 -0
- package/2D/xmlLoader.js +348 -0
- package/2D/xmlLoader.js.map +1 -0
- package/3D/behaviors/defaultBehavior.d.ts +73 -0
- package/3D/behaviors/defaultBehavior.js +103 -0
- package/3D/behaviors/defaultBehavior.js.map +1 -0
- package/3D/controls/MRTK3/touchHolographicButton.d.ts +220 -0
- package/3D/controls/MRTK3/touchHolographicButton.js +868 -0
- package/3D/controls/MRTK3/touchHolographicButton.js.map +1 -0
- package/3D/controls/abstractButton3D.d.ts +15 -0
- package/3D/controls/abstractButton3D.js +22 -0
- package/3D/controls/abstractButton3D.js.map +1 -0
- package/3D/controls/button3D.d.ts +51 -0
- package/3D/controls/button3D.js +98 -0
- package/3D/controls/button3D.js.map +1 -0
- package/3D/controls/container3D.d.ts +72 -0
- package/3D/controls/container3D.js +126 -0
- package/3D/controls/container3D.js.map +1 -0
- package/3D/controls/contentDisplay3D.d.ts +42 -0
- package/3D/controls/contentDisplay3D.js +81 -0
- package/3D/controls/contentDisplay3D.js.map +1 -0
- package/3D/controls/control3D.d.ts +183 -0
- package/3D/controls/control3D.js +401 -0
- package/3D/controls/control3D.js.map +1 -0
- package/3D/controls/cylinderPanel.d.ts +17 -0
- package/3D/controls/cylinderPanel.js +57 -0
- package/3D/controls/cylinderPanel.js.map +1 -0
- package/3D/controls/handMenu.d.ts +28 -0
- package/3D/controls/handMenu.js +39 -0
- package/3D/controls/handMenu.js.map +1 -0
- package/3D/controls/holographicBackplate.d.ts +49 -0
- package/3D/controls/holographicBackplate.js +104 -0
- package/3D/controls/holographicBackplate.js.map +1 -0
- package/3D/controls/holographicButton.d.ts +84 -0
- package/3D/controls/holographicButton.js +300 -0
- package/3D/controls/holographicButton.js.map +1 -0
- package/3D/controls/holographicSlate.d.ts +134 -0
- package/3D/controls/holographicSlate.js +413 -0
- package/3D/controls/holographicSlate.js.map +1 -0
- package/3D/controls/index.d.ts +22 -0
- package/3D/controls/index.js +24 -0
- package/3D/controls/index.js.map +1 -0
- package/3D/controls/meshButton3D.d.ts +21 -0
- package/3D/controls/meshButton3D.js +58 -0
- package/3D/controls/meshButton3D.js.map +1 -0
- package/3D/controls/nearMenu.d.ts +44 -0
- package/3D/controls/nearMenu.js +103 -0
- package/3D/controls/nearMenu.js.map +1 -0
- package/3D/controls/planePanel.d.ts +9 -0
- package/3D/controls/planePanel.js +30 -0
- package/3D/controls/planePanel.js.map +1 -0
- package/3D/controls/scatterPanel.d.ts +18 -0
- package/3D/controls/scatterPanel.js +98 -0
- package/3D/controls/scatterPanel.js.map +1 -0
- package/3D/controls/slider3D.d.ts +95 -0
- package/3D/controls/slider3D.js +256 -0
- package/3D/controls/slider3D.js.map +1 -0
- package/3D/controls/spherePanel.d.ts +17 -0
- package/3D/controls/spherePanel.js +58 -0
- package/3D/controls/spherePanel.js.map +1 -0
- package/3D/controls/stackPanel3D.d.ts +22 -0
- package/3D/controls/stackPanel3D.js +95 -0
- package/3D/controls/stackPanel3D.js.map +1 -0
- package/3D/controls/touchButton3D.d.ts +77 -0
- package/3D/controls/touchButton3D.js +205 -0
- package/3D/controls/touchButton3D.js.map +1 -0
- package/3D/controls/touchHolographicButton.d.ts +110 -0
- package/3D/controls/touchHolographicButton.js +400 -0
- package/3D/controls/touchHolographicButton.js.map +1 -0
- package/3D/controls/touchHolographicMenu.d.ts +61 -0
- package/3D/controls/touchHolographicMenu.js +139 -0
- package/3D/controls/touchHolographicMenu.js.map +1 -0
- package/3D/controls/touchMeshButton3D.d.ts +21 -0
- package/3D/controls/touchMeshButton3D.js +58 -0
- package/3D/controls/touchMeshButton3D.js.map +1 -0
- package/3D/controls/volumeBasedPanel.d.ts +53 -0
- package/3D/controls/volumeBasedPanel.js +158 -0
- package/3D/controls/volumeBasedPanel.js.map +1 -0
- package/3D/gizmos/gizmoHandle.d.ts +108 -0
- package/3D/gizmos/gizmoHandle.js +175 -0
- package/3D/gizmos/gizmoHandle.js.map +1 -0
- package/3D/gizmos/index.d.ts +2 -0
- package/3D/gizmos/index.js +3 -0
- package/3D/gizmos/index.js.map +1 -0
- package/3D/gizmos/slateGizmo.d.ts +57 -0
- package/3D/gizmos/slateGizmo.js +353 -0
- package/3D/gizmos/slateGizmo.js.map +1 -0
- package/3D/gui3DManager.d.ts +94 -0
- package/3D/gui3DManager.js +233 -0
- package/3D/gui3DManager.js.map +1 -0
- package/3D/index.d.ts +5 -0
- package/3D/index.js +7 -0
- package/3D/index.js.map +1 -0
- package/3D/materials/fluent/fluentMaterial.d.ts +91 -0
- package/3D/materials/fluent/fluentMaterial.js +286 -0
- package/3D/materials/fluent/fluentMaterial.js.map +1 -0
- package/3D/materials/fluent/index.d.ts +1 -0
- package/3D/materials/fluent/index.js +2 -0
- package/3D/materials/fluent/index.js.map +1 -0
- package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -0
- package/3D/materials/fluent/shaders/fluent.fragment.js +41 -0
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
- package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -0
- package/3D/materials/fluent/shaders/fluent.vertex.js +40 -0
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +466 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
- package/3D/materials/fluentBackplate/index.d.ts +1 -0
- package/3D/materials/fluentBackplate/index.js +2 -0
- package/3D/materials/fluentBackplate/index.js.map +1 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +60 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +127 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.js +536 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
- package/3D/materials/fluentButton/index.d.ts +1 -0
- package/3D/materials/fluentButton/index.js +2 -0
- package/3D/materials/fluentButton/index.js.map +1 -0
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +57 -0
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +162 -0
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
- package/3D/materials/fluentMaterial.d.ts +4 -0
- package/3D/materials/fluentMaterial.js +5 -0
- package/3D/materials/fluentMaterial.js.map +1 -0
- package/3D/materials/handle/handleMaterial.d.ts +68 -0
- package/3D/materials/handle/handleMaterial.js +114 -0
- package/3D/materials/handle/handleMaterial.js.map +1 -0
- package/3D/materials/handle/index.d.ts +1 -0
- package/3D/materials/handle/index.js +2 -0
- package/3D/materials/handle/index.js.map +1 -0
- package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
- package/3D/materials/handle/shaders/handle.fragment.js +11 -0
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
- package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
- package/3D/materials/handle/shaders/handle.vertex.js +11 -0
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
- package/3D/materials/index.d.ts +5 -0
- package/3D/materials/index.js +7 -0
- package/3D/materials/index.js.map +1 -0
- package/3D/materials/mrdl/index.d.ts +3 -0
- package/3D/materials/mrdl/index.js +4 -0
- package/3D/materials/mrdl/index.js.map +1 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.d.ts +87 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.js +302 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.js.map +1 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +433 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.d.ts +186 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.js +532 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.js.map +1 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.d.ts +56 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.js +230 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +337 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +855 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +337 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +855 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.js +25 -0
- package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.js +12 -0
- package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +88 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +96 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.js +48 -0
- package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.js +158 -0
- package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.js +27 -0
- package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.js +13 -0
- package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +236 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +137 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +236 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +137 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
- package/3D/vector3WithInfo.d.ts +16 -0
- package/3D/vector3WithInfo.js +18 -0
- package/3D/vector3WithInfo.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +4 -0
- package/index.js.map +1 -0
- package/legacy/legacy.d.ts +1 -0
- package/legacy/legacy.js +17 -0
- package/legacy/legacy.js.map +1 -0
- package/license.md +71 -0
- package/package.json +47 -0
- package/readme.md +31 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
2
|
+
import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
|
|
3
|
+
import type { IAnimatable } from "@babylonjs/core/Animations/animatable.interface.js";
|
|
4
|
+
import type { Matrix } from "@babylonjs/core/Maths/math.vector.js";
|
|
5
|
+
import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
|
6
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
|
7
|
+
import type { Scene } from "@babylonjs/core/scene.js";
|
|
8
|
+
import type { SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
|
|
9
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color.js";
|
|
10
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
11
|
+
import "./shaders/mrdlBackglow.fragment.js";
|
|
12
|
+
import "./shaders/mrdlBackglow.vertex.js";
|
|
13
|
+
export declare class MRDLBackglowMaterial extends PushMaterial {
|
|
14
|
+
/**
|
|
15
|
+
* Gets or sets the bevel radius on the backglow. If this value is changed, update the lineWidth to match.
|
|
16
|
+
*/
|
|
17
|
+
bevelRadius: number;
|
|
18
|
+
/**
|
|
19
|
+
* Gets or sets the line width of the backglow.
|
|
20
|
+
*/
|
|
21
|
+
lineWidth: number;
|
|
22
|
+
/**
|
|
23
|
+
* Gets or sets whether to use absolute sizes when calculating effects on the backglow.
|
|
24
|
+
* Since desktop and VR/AR have different relative sizes, it's usually best to keep this false.
|
|
25
|
+
*/
|
|
26
|
+
absoluteSizes: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Gets or sets the tuning motion of the backglow.
|
|
29
|
+
*/
|
|
30
|
+
tuningMotion: number;
|
|
31
|
+
/**
|
|
32
|
+
* Gets or sets the motion of the backglow.
|
|
33
|
+
*/
|
|
34
|
+
motion: number;
|
|
35
|
+
/**
|
|
36
|
+
* Gets or sets the maximum intensity of the backglow.
|
|
37
|
+
*/
|
|
38
|
+
maxIntensity: number;
|
|
39
|
+
/**
|
|
40
|
+
* Gets or sets the fade-in exponent of the intensity of the backglow.
|
|
41
|
+
*/
|
|
42
|
+
intensityFadeInExponent: number;
|
|
43
|
+
/**
|
|
44
|
+
* Gets or sets the start of the outer fuzz effect on the backglow.
|
|
45
|
+
*/
|
|
46
|
+
outerFuzzStart: number;
|
|
47
|
+
/**
|
|
48
|
+
* Gets or sets the end of the outer fuzz effect on the backglow.
|
|
49
|
+
*/
|
|
50
|
+
outerFuzzEnd: number;
|
|
51
|
+
/**
|
|
52
|
+
* Gets or sets the color of the backglow.
|
|
53
|
+
*/
|
|
54
|
+
color: Color4;
|
|
55
|
+
/**
|
|
56
|
+
* Gets or sets the inner color of the backglow.
|
|
57
|
+
*/
|
|
58
|
+
innerColor: Color4;
|
|
59
|
+
/**
|
|
60
|
+
* Gets or sets the blend exponent of the backglow.
|
|
61
|
+
*/
|
|
62
|
+
blendExponent: number;
|
|
63
|
+
/**
|
|
64
|
+
* Gets or sets the falloff of the backglow.
|
|
65
|
+
*/
|
|
66
|
+
falloff: number;
|
|
67
|
+
/**
|
|
68
|
+
* Gets or sets the bias of the backglow.
|
|
69
|
+
*/
|
|
70
|
+
bias: number;
|
|
71
|
+
constructor(name: string, scene: Scene);
|
|
72
|
+
needAlphaBlending(): boolean;
|
|
73
|
+
needAlphaTesting(): boolean;
|
|
74
|
+
getAlphaTestTexture(): Nullable<BaseTexture>;
|
|
75
|
+
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh): boolean;
|
|
76
|
+
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
|
|
77
|
+
/**
|
|
78
|
+
* Get the list of animatables in the material.
|
|
79
|
+
* @returns the list of animatables object used in the material
|
|
80
|
+
*/
|
|
81
|
+
getAnimatables(): IAnimatable[];
|
|
82
|
+
dispose(forceDisposeEffect?: boolean): void;
|
|
83
|
+
clone(name: string): MRDLBackglowMaterial;
|
|
84
|
+
serialize(): unknown;
|
|
85
|
+
getClassName(): string;
|
|
86
|
+
static Parse(source: any, scene: Scene, rootUrl: string): MRDLBackglowMaterial;
|
|
87
|
+
}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color.js";
|
|
3
|
+
import { Constants } from "@babylonjs/core/Engines/constants.js";
|
|
4
|
+
import { EffectFallbacks } from "@babylonjs/core/Materials/effectFallbacks.js";
|
|
5
|
+
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
|
6
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
7
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
8
|
+
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
9
|
+
import { SerializationHelper } from "@babylonjs/core/Misc/decorators.serialization.js";
|
|
10
|
+
import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
|
|
11
|
+
import "./shaders/mrdlBackglow.fragment.js";
|
|
12
|
+
import "./shaders/mrdlBackglow.vertex.js";
|
|
13
|
+
import { HandleFallbacksForShadows, PrepareAttributesForInstances, PrepareDefinesForAttributes, PrepareUniformsAndSamplersList } from "@babylonjs/core/Materials/materialHelper.functions.js";
|
|
14
|
+
/** @hidden */
|
|
15
|
+
class MRDLBackglowMaterialDefines extends MaterialDefines {
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this._needNormals = true;
|
|
19
|
+
this._needUVs = true;
|
|
20
|
+
this.rebuild();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class MRDLBackglowMaterial extends PushMaterial {
|
|
24
|
+
constructor(name, scene) {
|
|
25
|
+
super(name, scene);
|
|
26
|
+
/**
|
|
27
|
+
* Gets or sets the bevel radius on the backglow. If this value is changed, update the lineWidth to match.
|
|
28
|
+
*/
|
|
29
|
+
this.bevelRadius = 0.16;
|
|
30
|
+
/**
|
|
31
|
+
* Gets or sets the line width of the backglow.
|
|
32
|
+
*/
|
|
33
|
+
this.lineWidth = 0.16;
|
|
34
|
+
/**
|
|
35
|
+
* Gets or sets whether to use absolute sizes when calculating effects on the backglow.
|
|
36
|
+
* Since desktop and VR/AR have different relative sizes, it's usually best to keep this false.
|
|
37
|
+
*/
|
|
38
|
+
this.absoluteSizes = false;
|
|
39
|
+
/**
|
|
40
|
+
* Gets or sets the tuning motion of the backglow.
|
|
41
|
+
*/
|
|
42
|
+
this.tuningMotion = 0.0;
|
|
43
|
+
/**
|
|
44
|
+
* Gets or sets the motion of the backglow.
|
|
45
|
+
*/
|
|
46
|
+
this.motion = 1.0;
|
|
47
|
+
/**
|
|
48
|
+
* Gets or sets the maximum intensity of the backglow.
|
|
49
|
+
*/
|
|
50
|
+
this.maxIntensity = 0.7;
|
|
51
|
+
/**
|
|
52
|
+
* Gets or sets the fade-in exponent of the intensity of the backglow.
|
|
53
|
+
*/
|
|
54
|
+
this.intensityFadeInExponent = 2.0;
|
|
55
|
+
/**
|
|
56
|
+
* Gets or sets the start of the outer fuzz effect on the backglow.
|
|
57
|
+
*/
|
|
58
|
+
this.outerFuzzStart = 0.04;
|
|
59
|
+
/**
|
|
60
|
+
* Gets or sets the end of the outer fuzz effect on the backglow.
|
|
61
|
+
*/
|
|
62
|
+
this.outerFuzzEnd = 0.04;
|
|
63
|
+
/**
|
|
64
|
+
* Gets or sets the color of the backglow.
|
|
65
|
+
*/
|
|
66
|
+
this.color = new Color4(0.682353, 0.698039, 1, 1);
|
|
67
|
+
/**
|
|
68
|
+
* Gets or sets the inner color of the backglow.
|
|
69
|
+
*/
|
|
70
|
+
this.innerColor = new Color4(0.356863, 0.392157, 0.796078, 1);
|
|
71
|
+
/**
|
|
72
|
+
* Gets or sets the blend exponent of the backglow.
|
|
73
|
+
*/
|
|
74
|
+
this.blendExponent = 1.5;
|
|
75
|
+
/**
|
|
76
|
+
* Gets or sets the falloff of the backglow.
|
|
77
|
+
*/
|
|
78
|
+
this.falloff = 2.0;
|
|
79
|
+
/**
|
|
80
|
+
* Gets or sets the bias of the backglow.
|
|
81
|
+
*/
|
|
82
|
+
this.bias = 0.5;
|
|
83
|
+
this.alphaMode = Constants.ALPHA_ADD;
|
|
84
|
+
this.disableDepthWrite = true;
|
|
85
|
+
this.backFaceCulling = false;
|
|
86
|
+
}
|
|
87
|
+
needAlphaBlending() {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
needAlphaTesting() {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
getAlphaTestTexture() {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
// Methods
|
|
97
|
+
isReadyForSubMesh(mesh, subMesh) {
|
|
98
|
+
const drawWrapper = subMesh._drawWrapper;
|
|
99
|
+
if (this.isFrozen) {
|
|
100
|
+
if (drawWrapper.effect && drawWrapper._wasPreviouslyReady) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!subMesh.materialDefines) {
|
|
105
|
+
subMesh.materialDefines = new MRDLBackglowMaterialDefines();
|
|
106
|
+
}
|
|
107
|
+
const defines = subMesh.materialDefines;
|
|
108
|
+
const scene = this.getScene();
|
|
109
|
+
if (this._isReadyForSubMesh(subMesh)) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
const engine = scene.getEngine();
|
|
113
|
+
// Attribs
|
|
114
|
+
PrepareDefinesForAttributes(mesh, defines, false, false);
|
|
115
|
+
// Get correct effect
|
|
116
|
+
if (defines.isDirty) {
|
|
117
|
+
defines.markAsProcessed();
|
|
118
|
+
scene.resetCachedMaterial();
|
|
119
|
+
// Fallbacks
|
|
120
|
+
const fallbacks = new EffectFallbacks();
|
|
121
|
+
if (defines.FOG) {
|
|
122
|
+
fallbacks.addFallback(1, "FOG");
|
|
123
|
+
}
|
|
124
|
+
HandleFallbacksForShadows(defines, fallbacks);
|
|
125
|
+
defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
|
|
126
|
+
//Attributes
|
|
127
|
+
const attribs = [VertexBuffer.PositionKind];
|
|
128
|
+
if (defines.NORMAL) {
|
|
129
|
+
attribs.push(VertexBuffer.NormalKind);
|
|
130
|
+
}
|
|
131
|
+
if (defines.UV1) {
|
|
132
|
+
attribs.push(VertexBuffer.UVKind);
|
|
133
|
+
}
|
|
134
|
+
if (defines.UV2) {
|
|
135
|
+
attribs.push(VertexBuffer.UV2Kind);
|
|
136
|
+
}
|
|
137
|
+
if (defines.VERTEXCOLOR) {
|
|
138
|
+
attribs.push(VertexBuffer.ColorKind);
|
|
139
|
+
}
|
|
140
|
+
if (defines.TANGENT) {
|
|
141
|
+
attribs.push(VertexBuffer.TangentKind);
|
|
142
|
+
}
|
|
143
|
+
PrepareAttributesForInstances(attribs, defines);
|
|
144
|
+
// Legacy browser patch
|
|
145
|
+
const shaderName = "mrdlBackglow";
|
|
146
|
+
const join = defines.toString();
|
|
147
|
+
const uniforms = [
|
|
148
|
+
"world",
|
|
149
|
+
"worldView",
|
|
150
|
+
"worldViewProjection",
|
|
151
|
+
"view",
|
|
152
|
+
"projection",
|
|
153
|
+
"viewProjection",
|
|
154
|
+
"cameraPosition",
|
|
155
|
+
"_Bevel_Radius_",
|
|
156
|
+
"_Line_Width_",
|
|
157
|
+
"_Absolute_Sizes_",
|
|
158
|
+
"_Tuning_Motion_",
|
|
159
|
+
"_Motion_",
|
|
160
|
+
"_Max_Intensity_",
|
|
161
|
+
"_Intensity_Fade_In_Exponent_",
|
|
162
|
+
"_Outer_Fuzz_Start_",
|
|
163
|
+
"_Outer_Fuzz_End_",
|
|
164
|
+
"_Color_",
|
|
165
|
+
"_Inner_Color_",
|
|
166
|
+
"_Blend_Exponent_",
|
|
167
|
+
"_Falloff_",
|
|
168
|
+
"_Bias_",
|
|
169
|
+
];
|
|
170
|
+
const samplers = [];
|
|
171
|
+
const uniformBuffers = [];
|
|
172
|
+
PrepareUniformsAndSamplersList({
|
|
173
|
+
uniformsNames: uniforms,
|
|
174
|
+
uniformBuffersNames: uniformBuffers,
|
|
175
|
+
samplers: samplers,
|
|
176
|
+
defines: defines,
|
|
177
|
+
maxSimultaneousLights: 4,
|
|
178
|
+
});
|
|
179
|
+
subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
|
|
180
|
+
attributes: attribs,
|
|
181
|
+
uniformsNames: uniforms,
|
|
182
|
+
uniformBuffersNames: uniformBuffers,
|
|
183
|
+
samplers: samplers,
|
|
184
|
+
defines: join,
|
|
185
|
+
fallbacks: fallbacks,
|
|
186
|
+
onCompiled: this.onCompiled,
|
|
187
|
+
onError: this.onError,
|
|
188
|
+
indexParameters: { maxSimultaneousLights: 4 },
|
|
189
|
+
}, engine), defines);
|
|
190
|
+
}
|
|
191
|
+
if (!subMesh.effect || !subMesh.effect.isReady()) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
defines._renderId = scene.getRenderId();
|
|
195
|
+
drawWrapper._wasPreviouslyReady = true;
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
bindForSubMesh(world, mesh, subMesh) {
|
|
199
|
+
const scene = this.getScene();
|
|
200
|
+
const defines = subMesh.materialDefines;
|
|
201
|
+
if (!defines) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const effect = subMesh.effect;
|
|
205
|
+
if (!effect) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
this._activeEffect = effect;
|
|
209
|
+
// Matrices
|
|
210
|
+
this.bindOnlyWorldMatrix(world);
|
|
211
|
+
this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
|
|
212
|
+
this._activeEffect.setVector3("cameraPosition", scene.activeCamera.position);
|
|
213
|
+
// "Rounded Rectangle"
|
|
214
|
+
this._activeEffect.setFloat("_Bevel_Radius_", this.bevelRadius);
|
|
215
|
+
this._activeEffect.setFloat("_Line_Width_", this.lineWidth);
|
|
216
|
+
this._activeEffect.setFloat("_Absolute_Sizes_", this.absoluteSizes ? 1.0 : 0.0);
|
|
217
|
+
// "Animation"
|
|
218
|
+
this._activeEffect.setFloat("_Tuning_Motion_", this.tuningMotion);
|
|
219
|
+
this._activeEffect.setFloat("_Motion_", this.motion);
|
|
220
|
+
this._activeEffect.setFloat("_Max_Intensity_", this.maxIntensity);
|
|
221
|
+
this._activeEffect.setFloat("_Intensity_Fade_In_Exponent_", this.intensityFadeInExponent);
|
|
222
|
+
this._activeEffect.setFloat("_Outer_Fuzz_Start_", this.outerFuzzStart);
|
|
223
|
+
this._activeEffect.setFloat("_Outer_Fuzz_End_", this.outerFuzzEnd);
|
|
224
|
+
// "Color"
|
|
225
|
+
this._activeEffect.setDirectColor4("_Color_", this.color);
|
|
226
|
+
this._activeEffect.setDirectColor4("_Inner_Color_", this.innerColor);
|
|
227
|
+
this._activeEffect.setFloat("_Blend_Exponent_", this.blendExponent);
|
|
228
|
+
// "Inner Transition"
|
|
229
|
+
this._activeEffect.setFloat("_Falloff_", this.falloff);
|
|
230
|
+
this._activeEffect.setFloat("_Bias_", this.bias);
|
|
231
|
+
this._afterBind(mesh, this._activeEffect, subMesh);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get the list of animatables in the material.
|
|
235
|
+
* @returns the list of animatables object used in the material
|
|
236
|
+
*/
|
|
237
|
+
getAnimatables() {
|
|
238
|
+
return [];
|
|
239
|
+
}
|
|
240
|
+
dispose(forceDisposeEffect) {
|
|
241
|
+
super.dispose(forceDisposeEffect);
|
|
242
|
+
}
|
|
243
|
+
clone(name) {
|
|
244
|
+
return SerializationHelper.Clone(() => new MRDLBackglowMaterial(name, this.getScene()), this);
|
|
245
|
+
}
|
|
246
|
+
serialize() {
|
|
247
|
+
const serializationObject = SerializationHelper.Serialize(this);
|
|
248
|
+
serializationObject.customType = "BABYLON.MRDLBackglowMaterial";
|
|
249
|
+
return serializationObject;
|
|
250
|
+
}
|
|
251
|
+
getClassName() {
|
|
252
|
+
return "MRDLBackglowMaterial";
|
|
253
|
+
}
|
|
254
|
+
// Statics
|
|
255
|
+
static Parse(source, scene, rootUrl) {
|
|
256
|
+
return SerializationHelper.Parse(() => new MRDLBackglowMaterial(source.name, scene), source, scene, rootUrl);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
__decorate([
|
|
260
|
+
serialize()
|
|
261
|
+
], MRDLBackglowMaterial.prototype, "bevelRadius", void 0);
|
|
262
|
+
__decorate([
|
|
263
|
+
serialize()
|
|
264
|
+
], MRDLBackglowMaterial.prototype, "lineWidth", void 0);
|
|
265
|
+
__decorate([
|
|
266
|
+
serialize()
|
|
267
|
+
], MRDLBackglowMaterial.prototype, "absoluteSizes", void 0);
|
|
268
|
+
__decorate([
|
|
269
|
+
serialize()
|
|
270
|
+
], MRDLBackglowMaterial.prototype, "tuningMotion", void 0);
|
|
271
|
+
__decorate([
|
|
272
|
+
serialize()
|
|
273
|
+
], MRDLBackglowMaterial.prototype, "motion", void 0);
|
|
274
|
+
__decorate([
|
|
275
|
+
serialize()
|
|
276
|
+
], MRDLBackglowMaterial.prototype, "maxIntensity", void 0);
|
|
277
|
+
__decorate([
|
|
278
|
+
serialize()
|
|
279
|
+
], MRDLBackglowMaterial.prototype, "intensityFadeInExponent", void 0);
|
|
280
|
+
__decorate([
|
|
281
|
+
serialize()
|
|
282
|
+
], MRDLBackglowMaterial.prototype, "outerFuzzStart", void 0);
|
|
283
|
+
__decorate([
|
|
284
|
+
serialize()
|
|
285
|
+
], MRDLBackglowMaterial.prototype, "outerFuzzEnd", void 0);
|
|
286
|
+
__decorate([
|
|
287
|
+
serialize()
|
|
288
|
+
], MRDLBackglowMaterial.prototype, "color", void 0);
|
|
289
|
+
__decorate([
|
|
290
|
+
serialize()
|
|
291
|
+
], MRDLBackglowMaterial.prototype, "innerColor", void 0);
|
|
292
|
+
__decorate([
|
|
293
|
+
serialize()
|
|
294
|
+
], MRDLBackglowMaterial.prototype, "blendExponent", void 0);
|
|
295
|
+
__decorate([
|
|
296
|
+
serialize()
|
|
297
|
+
], MRDLBackglowMaterial.prototype, "falloff", void 0);
|
|
298
|
+
__decorate([
|
|
299
|
+
serialize()
|
|
300
|
+
], MRDLBackglowMaterial.prototype, "bias", void 0);
|
|
301
|
+
RegisterClass("BABYLON.GUI.MRDLBackglowMaterial", MRDLBackglowMaterial);
|
|
302
|
+
//# sourceMappingURL=mrdlBackglowMaterial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mrdlBackglowMaterial.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/3D/materials/mrdl/mrdlBackglowMaterial.ts"],"names":[],"mappings":";AAUA,OAAO,EAAE,MAAM,EAAE,4CAA8B;AAC/C,OAAO,EAAE,SAAS,EAAE,6CAA+B;AACnD,OAAO,EAAE,eAAe,EAAE,qDAAuC;AACjE,OAAO,EAAE,eAAe,EAAE,qDAAuC;AACjE,OAAO,EAAE,YAAY,EAAE,kDAAoC;AAC3D,OAAO,EAAE,aAAa,EAAE,0CAA4B;AACpD,OAAO,EAAE,SAAS,EAAE,2CAA6B;AACjD,OAAO,EAAE,mBAAmB,EAAE,yDAA2C;AACzE,OAAO,EAAE,YAAY,EAAE,0CAA4B;AAEnD,OAAO,iCAAiC,CAAC;AACzC,OAAO,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,8DAAgD;AAEhL,cAAc;AACd,MAAM,2BAA4B,SAAQ,eAAe;IACrD;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAsFlD,YAAY,IAAY,EAAE,KAAY;QAClC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAtFvB;;WAEG;QAEI,gBAAW,GAAG,IAAI,CAAC;QAE1B;;WAEG;QAEI,cAAS,GAAG,IAAI,CAAC;QAExB;;;WAGG;QAEI,kBAAa,GAAG,KAAK,CAAC;QAE7B;;WAEG;QAEI,iBAAY,GAAG,GAAG,CAAC;QAE1B;;WAEG;QAEI,WAAM,GAAG,GAAG,CAAC;QAEpB;;WAEG;QAEI,iBAAY,GAAG,GAAG,CAAC;QAE1B;;WAEG;QAEI,4BAAuB,GAAG,GAAG,CAAC;QAErC;;WAEG;QAEI,mBAAc,GAAG,IAAI,CAAC;QAE7B;;WAEG;QAEI,iBAAY,GAAG,IAAI,CAAC;QAE3B;;WAEG;QAEI,UAAK,GAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5D;;WAEG;QAEI,eAAU,GAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAExE;;WAEG;QAEI,kBAAa,GAAG,GAAG,CAAC;QAE3B;;WAEG;QAEI,YAAO,GAAG,GAAG,CAAC;QAErB;;WAEG;QAEI,SAAI,GAAG,GAAG,CAAC;QAId,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,CAAC;IAEe,iBAAiB;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEe,gBAAgB;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAEe,mBAAmB;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU;IACM,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,2BAA2B,EAAE,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAgC,OAAO,CAAC,eAAe,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAEjC,UAAU;QACV,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAEzD,qBAAqB;QACrB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,eAAe,EAAE,CAAC;YAE1B,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAE5B,YAAY;YACZ,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;YAED,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAE9C,OAAO,CAAC,0BAA0B,GAAG,KAAK,CAAC,4BAA4B,CAAC,kBAAkB,CAAC;YAE3F,YAAY;YACZ,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAE5C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;YAED,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEhD,uBAAuB;YACvB,MAAM,UAAU,GAAG,cAAc,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAAG;gBACb,OAAO;gBACP,WAAW;gBACX,qBAAqB;gBACrB,MAAM;gBACN,YAAY;gBACZ,gBAAgB;gBAChB,gBAAgB;gBAChB,gBAAgB;gBAChB,cAAc;gBACd,kBAAkB;gBAClB,iBAAiB;gBACjB,UAAU;gBACV,iBAAiB;gBACjB,8BAA8B;gBAC9B,oBAAoB;gBACpB,kBAAkB;gBAClB,SAAS;gBACT,eAAe;gBACf,kBAAkB;gBAClB,WAAW;gBACX,QAAQ;aACX,CAAC;YACF,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,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;aAC3B,CAAC,CAAC;YAEH,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,SAAS;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,eAAe,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE;aAChD,EACD,MAAM,CACT,EACD,OAAO,CACV,CAAC;QACN,CAAC;QACD,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,GAAgC,OAAO,CAAC,eAAe,CAAC;QACrE,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;QAED,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;QAC3E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,YAAa,CAAC,QAAQ,CAAC,CAAC;QAE9E,sBAAsB;QACtB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEhF,cAAc;QACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnE,UAAU;QACV,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpE,qBAAqB;QACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACa,cAAc;QAC1B,OAAO,EAAE,CAAC;IACd,CAAC;IAEe,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,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAClG,CAAC;IAEe,SAAS;QACrB,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChE,mBAAmB,CAAC,UAAU,GAAG,8BAA8B,CAAC;QAChE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEe,YAAY;QACxB,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAED,UAAU;IACH,MAAM,CAAU,KAAK,CAAC,MAAW,EAAE,KAAY,EAAE,OAAe;QACnE,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACjH,CAAC;CACJ;AArTU;IADN,SAAS,EAAE;yDACc;AAMnB;IADN,SAAS,EAAE;uDACY;AAOjB;IADN,SAAS,EAAE;2DACiB;AAMtB;IADN,SAAS,EAAE;0DACc;AAMnB;IADN,SAAS,EAAE;oDACQ;AAMb;IADN,SAAS,EAAE;0DACc;AAMnB;IADN,SAAS,EAAE;qEACyB;AAM9B;IADN,SAAS,EAAE;4DACiB;AAMtB;IADN,SAAS,EAAE;0DACe;AAMpB;IADN,SAAS,EAAE;mDACgD;AAMrD;IADN,SAAS,EAAE;wDAC4D;AAMjE;IADN,SAAS,EAAE;2DACe;AAMpB;IADN,SAAS,EAAE;qDACS;AAMd;IADN,SAAS,EAAE;kDACM;AAwOtB,aAAa,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,CAAC","sourcesContent":["import type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport type { Matrix } from \"core/Maths/math.vector\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Nullable } from \"core/types\";\r\nimport type { Scene } from \"core/scene\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\n\r\nimport { Color4 } from \"core/Maths/math.color\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { SerializationHelper } from \"core/Misc/decorators.serialization\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\n\r\nimport \"./shaders/mrdlBackglow.fragment\";\r\nimport \"./shaders/mrdlBackglow.vertex\";\r\nimport { HandleFallbacksForShadows, PrepareAttributesForInstances, PrepareDefinesForAttributes, PrepareUniformsAndSamplersList } from \"core/Materials/materialHelper.functions\";\r\n\r\n/** @hidden */\r\nclass MRDLBackglowMaterialDefines extends MaterialDefines {\r\n constructor() {\r\n super();\r\n this._needNormals = true;\r\n this._needUVs = true;\r\n this.rebuild();\r\n }\r\n}\r\n\r\nexport class MRDLBackglowMaterial extends PushMaterial {\r\n /**\r\n * Gets or sets the bevel radius on the backglow. If this value is changed, update the lineWidth to match.\r\n */\r\n @serialize()\r\n public bevelRadius = 0.16;\r\n\r\n /**\r\n * Gets or sets the line width of the backglow.\r\n */\r\n @serialize()\r\n public lineWidth = 0.16;\r\n\r\n /**\r\n * Gets or sets whether to use absolute sizes when calculating effects on the backglow.\r\n * Since desktop and VR/AR have different relative sizes, it's usually best to keep this false.\r\n */\r\n @serialize()\r\n public absoluteSizes = false;\r\n\r\n /**\r\n * Gets or sets the tuning motion of the backglow.\r\n */\r\n @serialize()\r\n public tuningMotion = 0.0;\r\n\r\n /**\r\n * Gets or sets the motion of the backglow.\r\n */\r\n @serialize()\r\n public motion = 1.0;\r\n\r\n /**\r\n * Gets or sets the maximum intensity of the backglow.\r\n */\r\n @serialize()\r\n public maxIntensity = 0.7;\r\n\r\n /**\r\n * Gets or sets the fade-in exponent of the intensity of the backglow.\r\n */\r\n @serialize()\r\n public intensityFadeInExponent = 2.0;\r\n\r\n /**\r\n * Gets or sets the start of the outer fuzz effect on the backglow.\r\n */\r\n @serialize()\r\n public outerFuzzStart = 0.04;\r\n\r\n /**\r\n * Gets or sets the end of the outer fuzz effect on the backglow.\r\n */\r\n @serialize()\r\n public outerFuzzEnd = 0.04;\r\n\r\n /**\r\n * Gets or sets the color of the backglow.\r\n */\r\n @serialize()\r\n public color: Color4 = new Color4(0.682353, 0.698039, 1, 1);\r\n\r\n /**\r\n * Gets or sets the inner color of the backglow.\r\n */\r\n @serialize()\r\n public innerColor: Color4 = new Color4(0.356863, 0.392157, 0.796078, 1);\r\n\r\n /**\r\n * Gets or sets the blend exponent of the backglow.\r\n */\r\n @serialize()\r\n public blendExponent = 1.5;\r\n\r\n /**\r\n * Gets or sets the falloff of the backglow.\r\n */\r\n @serialize()\r\n public falloff = 2.0;\r\n\r\n /**\r\n * Gets or sets the bias of the backglow.\r\n */\r\n @serialize()\r\n public bias = 0.5;\r\n\r\n constructor(name: string, scene: Scene) {\r\n super(name, scene);\r\n this.alphaMode = Constants.ALPHA_ADD;\r\n this.disableDepthWrite = true;\r\n this.backFaceCulling = false;\r\n }\r\n\r\n public override needAlphaBlending(): boolean {\r\n return true;\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 // Methods\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 MRDLBackglowMaterialDefines();\r\n }\r\n\r\n const defines = <MRDLBackglowMaterialDefines>subMesh.materialDefines;\r\n const scene = this.getScene();\r\n\r\n if (this._isReadyForSubMesh(subMesh)) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n // Attribs\r\n PrepareDefinesForAttributes(mesh, defines, false, false);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n\r\n scene.resetCachedMaterial();\r\n\r\n // Fallbacks\r\n const fallbacks = new EffectFallbacks();\r\n if (defines.FOG) {\r\n fallbacks.addFallback(1, \"FOG\");\r\n }\r\n\r\n HandleFallbacksForShadows(defines, fallbacks);\r\n\r\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n\r\n if (defines.NORMAL) {\r\n attribs.push(VertexBuffer.NormalKind);\r\n }\r\n\r\n if (defines.UV1) {\r\n attribs.push(VertexBuffer.UVKind);\r\n }\r\n\r\n if (defines.UV2) {\r\n attribs.push(VertexBuffer.UV2Kind);\r\n }\r\n\r\n if (defines.VERTEXCOLOR) {\r\n attribs.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n if (defines.TANGENT) {\r\n attribs.push(VertexBuffer.TangentKind);\r\n }\r\n\r\n PrepareAttributesForInstances(attribs, defines);\r\n\r\n // Legacy browser patch\r\n const shaderName = \"mrdlBackglow\";\r\n const join = defines.toString();\r\n\r\n const uniforms = [\r\n \"world\",\r\n \"worldView\",\r\n \"worldViewProjection\",\r\n \"view\",\r\n \"projection\",\r\n \"viewProjection\",\r\n \"cameraPosition\",\r\n \"_Bevel_Radius_\",\r\n \"_Line_Width_\",\r\n \"_Absolute_Sizes_\",\r\n \"_Tuning_Motion_\",\r\n \"_Motion_\",\r\n \"_Max_Intensity_\",\r\n \"_Intensity_Fade_In_Exponent_\",\r\n \"_Outer_Fuzz_Start_\",\r\n \"_Outer_Fuzz_End_\",\r\n \"_Color_\",\r\n \"_Inner_Color_\",\r\n \"_Blend_Exponent_\",\r\n \"_Falloff_\",\r\n \"_Bias_\",\r\n ];\r\n const samplers: string[] = [];\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 });\r\n\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: fallbacks,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: 4 },\r\n },\r\n engine\r\n ),\r\n defines\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 = <MRDLBackglowMaterialDefines>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\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 this._activeEffect.setVector3(\"cameraPosition\", scene.activeCamera!.position);\r\n\r\n // \"Rounded Rectangle\"\r\n this._activeEffect.setFloat(\"_Bevel_Radius_\", this.bevelRadius);\r\n this._activeEffect.setFloat(\"_Line_Width_\", this.lineWidth);\r\n this._activeEffect.setFloat(\"_Absolute_Sizes_\", this.absoluteSizes ? 1.0 : 0.0);\r\n\r\n // \"Animation\"\r\n this._activeEffect.setFloat(\"_Tuning_Motion_\", this.tuningMotion);\r\n this._activeEffect.setFloat(\"_Motion_\", this.motion);\r\n this._activeEffect.setFloat(\"_Max_Intensity_\", this.maxIntensity);\r\n this._activeEffect.setFloat(\"_Intensity_Fade_In_Exponent_\", this.intensityFadeInExponent);\r\n this._activeEffect.setFloat(\"_Outer_Fuzz_Start_\", this.outerFuzzStart);\r\n this._activeEffect.setFloat(\"_Outer_Fuzz_End_\", this.outerFuzzEnd);\r\n\r\n // \"Color\"\r\n this._activeEffect.setDirectColor4(\"_Color_\", this.color);\r\n this._activeEffect.setDirectColor4(\"_Inner_Color_\", this.innerColor);\r\n this._activeEffect.setFloat(\"_Blend_Exponent_\", this.blendExponent);\r\n\r\n // \"Inner Transition\"\r\n this._activeEffect.setFloat(\"_Falloff_\", this.falloff);\r\n this._activeEffect.setFloat(\"_Bias_\", this.bias);\r\n\r\n this._afterBind(mesh, this._activeEffect, subMesh);\r\n }\r\n\r\n /**\r\n * Get the list of animatables in the material.\r\n * @returns the list of animatables object used in the material\r\n */\r\n public override getAnimatables(): IAnimatable[] {\r\n return [];\r\n }\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): MRDLBackglowMaterial {\r\n return SerializationHelper.Clone(() => new MRDLBackglowMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public override serialize(): unknown {\r\n const serializationObject = SerializationHelper.Serialize(this);\r\n serializationObject.customType = \"BABYLON.MRDLBackglowMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"MRDLBackglowMaterial\";\r\n }\r\n\r\n // Statics\r\n public static override Parse(source: any, scene: Scene, rootUrl: string): MRDLBackglowMaterial {\r\n return SerializationHelper.Parse(() => new MRDLBackglowMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GUI.MRDLBackglowMaterial\", MRDLBackglowMaterial);\r\n"]}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
|
2
|
+
import type { Matrix } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
|
+
import { Vector4 } from "@babylonjs/core/Maths/math.vector.js";
|
|
4
|
+
import type { IAnimatable } from "@babylonjs/core/Animations/animatable.interface.js";
|
|
5
|
+
import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
|
|
6
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
7
|
+
import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
8
|
+
import type { SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
|
|
9
|
+
import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
|
10
|
+
import type { Scene } from "@babylonjs/core/scene.js";
|
|
11
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color.js";
|
|
12
|
+
import "./shaders/mrdlBackplate.fragment.js";
|
|
13
|
+
import "./shaders/mrdlBackplate.vertex.js";
|
|
14
|
+
/**
|
|
15
|
+
* Class used to render backplate material with MRDL
|
|
16
|
+
*/
|
|
17
|
+
export declare class MRDLBackplateMaterial extends PushMaterial {
|
|
18
|
+
/**
|
|
19
|
+
* URL pointing to the texture used to define the coloring for the Iridescent Map effect.
|
|
20
|
+
*/
|
|
21
|
+
static IRIDESCENT_MAP_TEXTURE_URL: string;
|
|
22
|
+
private _iridescentMapTexture;
|
|
23
|
+
/**
|
|
24
|
+
* Gets or sets the corner radius on the backplate. If this value is changed, update the lineWidth to match.
|
|
25
|
+
*/
|
|
26
|
+
radius: number;
|
|
27
|
+
/**
|
|
28
|
+
* Gets or sets the line width of the backplate.
|
|
29
|
+
*/
|
|
30
|
+
lineWidth: number;
|
|
31
|
+
/**
|
|
32
|
+
* Gets or sets whether to use absolute sizes when calculating effects on the backplate.
|
|
33
|
+
* Since desktop and VR/AR have different relative sizes, it's usually best to keep this false.
|
|
34
|
+
*/
|
|
35
|
+
absoluteSizes: boolean;
|
|
36
|
+
/** @internal */
|
|
37
|
+
_filterWidth: number;
|
|
38
|
+
/**
|
|
39
|
+
* Gets or sets the base color of the backplate.
|
|
40
|
+
*/
|
|
41
|
+
baseColor: Color4;
|
|
42
|
+
/**
|
|
43
|
+
* Gets or sets the line color of the backplate.
|
|
44
|
+
*/
|
|
45
|
+
lineColor: Color4;
|
|
46
|
+
/**
|
|
47
|
+
* Gets or sets the top left Radii Multiplier.
|
|
48
|
+
*/
|
|
49
|
+
radiusTopLeft: number;
|
|
50
|
+
/**
|
|
51
|
+
* Gets or sets the top left Radii Multiplier.
|
|
52
|
+
*/
|
|
53
|
+
radiusTopRight: number;
|
|
54
|
+
/**
|
|
55
|
+
* Gets or sets the top left Radii Multiplier.
|
|
56
|
+
*/
|
|
57
|
+
radiusBottomLeft: number;
|
|
58
|
+
/**
|
|
59
|
+
* Gets or sets the top left Radii Multiplier.
|
|
60
|
+
*/
|
|
61
|
+
radiusBottomRight: number;
|
|
62
|
+
/** @internal */
|
|
63
|
+
_rate: number;
|
|
64
|
+
/**
|
|
65
|
+
* Gets or sets the color of the highlights on the backplate line.
|
|
66
|
+
*/
|
|
67
|
+
highlightColor: Color4;
|
|
68
|
+
/**
|
|
69
|
+
* Gets or sets the width of the highlights on the backplate line.
|
|
70
|
+
*/
|
|
71
|
+
highlightWidth: number;
|
|
72
|
+
/** @internal */
|
|
73
|
+
_highlightTransform: Vector4;
|
|
74
|
+
/** @internal */
|
|
75
|
+
_highlight: number;
|
|
76
|
+
/**
|
|
77
|
+
* Gets or sets the intensity of the iridescence effect.
|
|
78
|
+
*/
|
|
79
|
+
iridescenceIntensity: number;
|
|
80
|
+
/**
|
|
81
|
+
* Gets or sets the intensity of the iridescence effect on the backplate edges.
|
|
82
|
+
*/
|
|
83
|
+
iridescenceEdgeIntensity: number;
|
|
84
|
+
/**
|
|
85
|
+
* Gets or sets the Tint of the iridescence effect on the backplate.
|
|
86
|
+
*/
|
|
87
|
+
iridescenceTint: Color4;
|
|
88
|
+
/** @internal */
|
|
89
|
+
_angle: number;
|
|
90
|
+
/**
|
|
91
|
+
* Gets or sets the opacity of the backplate (0.0 - 1.0).
|
|
92
|
+
*/
|
|
93
|
+
fadeOut: number;
|
|
94
|
+
/** @internal */
|
|
95
|
+
_reflected: boolean;
|
|
96
|
+
/** @internal */
|
|
97
|
+
_frequency: number;
|
|
98
|
+
/** @internal */
|
|
99
|
+
_verticalOffset: number;
|
|
100
|
+
/**
|
|
101
|
+
* Gets or sets the gradient color effect on the backplate.
|
|
102
|
+
*/
|
|
103
|
+
gradientColor: Color4;
|
|
104
|
+
/**
|
|
105
|
+
* Gets or sets the top left gradient color effect on the backplate.
|
|
106
|
+
*/
|
|
107
|
+
topLeftGradientColor: Color4;
|
|
108
|
+
/**
|
|
109
|
+
* Gets or sets the top right gradient color effect on the backplate.
|
|
110
|
+
*/
|
|
111
|
+
topRightGradientColor: Color4;
|
|
112
|
+
/**
|
|
113
|
+
* Gets or sets the bottom left gradient color effect on the backplate.
|
|
114
|
+
*/
|
|
115
|
+
bottomLeftGradientColor: Color4;
|
|
116
|
+
/**
|
|
117
|
+
* Gets or sets the bottom right gradient color effect on the backplate.
|
|
118
|
+
*/
|
|
119
|
+
bottomRightGradientColor: Color4;
|
|
120
|
+
/**
|
|
121
|
+
* Gets or sets the edge width of the backplate.
|
|
122
|
+
*/
|
|
123
|
+
edgeWidth: number;
|
|
124
|
+
/**
|
|
125
|
+
* Gets or sets the edge width of the backplate.
|
|
126
|
+
*/
|
|
127
|
+
edgePower: number;
|
|
128
|
+
/**
|
|
129
|
+
* Gets or sets the edge width of the backplate.
|
|
130
|
+
*/
|
|
131
|
+
edgeLineGradientBlend: number;
|
|
132
|
+
constructor(name: string, scene?: Scene);
|
|
133
|
+
needAlphaBlending(): boolean;
|
|
134
|
+
needAlphaTesting(): boolean;
|
|
135
|
+
getAlphaTestTexture(): Nullable<BaseTexture>;
|
|
136
|
+
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh): boolean;
|
|
137
|
+
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
|
|
138
|
+
/**
|
|
139
|
+
* Get the list of animatables in the material.
|
|
140
|
+
* @returns the list of animatables object used in the material
|
|
141
|
+
*/
|
|
142
|
+
getAnimatables(): IAnimatable[];
|
|
143
|
+
dispose(forceDisposeEffect?: boolean): void;
|
|
144
|
+
clone(name: string): MRDLBackplateMaterial;
|
|
145
|
+
serialize(): any;
|
|
146
|
+
getClassName(): string;
|
|
147
|
+
static Parse(source: any, scene: Scene, rootUrl: string): MRDLBackplateMaterial;
|
|
148
|
+
}
|