@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,202 @@
|
|
|
1
|
+
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
+
import { Control } from "./control.js";
|
|
3
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
4
|
+
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
5
|
+
/** Class used to render a grid */
|
|
6
|
+
export class DisplayGrid extends Control {
|
|
7
|
+
/** Gets or sets a boolean indicating if minor lines must be rendered (true by default)) */
|
|
8
|
+
get displayMinorLines() {
|
|
9
|
+
return this._displayMinorLines;
|
|
10
|
+
}
|
|
11
|
+
set displayMinorLines(value) {
|
|
12
|
+
if (this._displayMinorLines === value) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
this._displayMinorLines = value;
|
|
16
|
+
this._markAsDirty();
|
|
17
|
+
}
|
|
18
|
+
/** Gets or sets a boolean indicating if major lines must be rendered (true by default)) */
|
|
19
|
+
get displayMajorLines() {
|
|
20
|
+
return this._displayMajorLines;
|
|
21
|
+
}
|
|
22
|
+
set displayMajorLines(value) {
|
|
23
|
+
if (this._displayMajorLines === value) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
this._displayMajorLines = value;
|
|
27
|
+
this._markAsDirty();
|
|
28
|
+
}
|
|
29
|
+
/** Gets or sets background color (Black by default) */
|
|
30
|
+
get background() {
|
|
31
|
+
return this._background;
|
|
32
|
+
}
|
|
33
|
+
set background(value) {
|
|
34
|
+
if (this._background === value) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this._background = value;
|
|
38
|
+
this._markAsDirty();
|
|
39
|
+
}
|
|
40
|
+
/** Gets or sets the width of each cell (20 by default) */
|
|
41
|
+
get cellWidth() {
|
|
42
|
+
return this._cellWidth;
|
|
43
|
+
}
|
|
44
|
+
set cellWidth(value) {
|
|
45
|
+
this._cellWidth = value;
|
|
46
|
+
this._markAsDirty();
|
|
47
|
+
}
|
|
48
|
+
/** Gets or sets the height of each cell (20 by default) */
|
|
49
|
+
get cellHeight() {
|
|
50
|
+
return this._cellHeight;
|
|
51
|
+
}
|
|
52
|
+
set cellHeight(value) {
|
|
53
|
+
this._cellHeight = value;
|
|
54
|
+
this._markAsDirty();
|
|
55
|
+
}
|
|
56
|
+
/** Gets or sets the tickness of minor lines (1 by default) */
|
|
57
|
+
get minorLineTickness() {
|
|
58
|
+
return this._minorLineTickness;
|
|
59
|
+
}
|
|
60
|
+
set minorLineTickness(value) {
|
|
61
|
+
this._minorLineTickness = value;
|
|
62
|
+
this._markAsDirty();
|
|
63
|
+
}
|
|
64
|
+
/** Gets or sets the color of minor lines (DarkGray by default) */
|
|
65
|
+
get minorLineColor() {
|
|
66
|
+
return this._minorLineColor;
|
|
67
|
+
}
|
|
68
|
+
set minorLineColor(value) {
|
|
69
|
+
this._minorLineColor = value;
|
|
70
|
+
this._markAsDirty();
|
|
71
|
+
}
|
|
72
|
+
/** Gets or sets the tickness of major lines (2 by default) */
|
|
73
|
+
get majorLineTickness() {
|
|
74
|
+
return this._majorLineTickness;
|
|
75
|
+
}
|
|
76
|
+
set majorLineTickness(value) {
|
|
77
|
+
this._majorLineTickness = value;
|
|
78
|
+
this._markAsDirty();
|
|
79
|
+
}
|
|
80
|
+
/** Gets or sets the color of major lines (White by default) */
|
|
81
|
+
get majorLineColor() {
|
|
82
|
+
return this._majorLineColor;
|
|
83
|
+
}
|
|
84
|
+
set majorLineColor(value) {
|
|
85
|
+
this._majorLineColor = value;
|
|
86
|
+
this._markAsDirty();
|
|
87
|
+
}
|
|
88
|
+
/** Gets or sets the frequency of major lines (default is 1 every 5 minor lines)*/
|
|
89
|
+
get majorLineFrequency() {
|
|
90
|
+
return this._majorLineFrequency;
|
|
91
|
+
}
|
|
92
|
+
set majorLineFrequency(value) {
|
|
93
|
+
this._majorLineFrequency = value;
|
|
94
|
+
this._markAsDirty();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Creates a new GridDisplayRectangle
|
|
98
|
+
* @param name defines the control name
|
|
99
|
+
*/
|
|
100
|
+
constructor(name) {
|
|
101
|
+
super(name);
|
|
102
|
+
this.name = name;
|
|
103
|
+
this._cellWidth = 20;
|
|
104
|
+
this._cellHeight = 20;
|
|
105
|
+
this._minorLineTickness = 1;
|
|
106
|
+
this._minorLineColor = "DarkGray";
|
|
107
|
+
this._majorLineTickness = 2;
|
|
108
|
+
this._majorLineColor = "White";
|
|
109
|
+
this._majorLineFrequency = 5;
|
|
110
|
+
this._background = "Black";
|
|
111
|
+
this._displayMajorLines = true;
|
|
112
|
+
this._displayMinorLines = true;
|
|
113
|
+
}
|
|
114
|
+
_draw(context) {
|
|
115
|
+
context.save();
|
|
116
|
+
this._applyStates(context);
|
|
117
|
+
if (this._isEnabled) {
|
|
118
|
+
if (this._background) {
|
|
119
|
+
context.fillStyle = this._background;
|
|
120
|
+
context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
|
|
121
|
+
}
|
|
122
|
+
const cellCountX = this._currentMeasure.width / this._cellWidth;
|
|
123
|
+
const cellCountY = this._currentMeasure.height / this._cellHeight;
|
|
124
|
+
// Minor lines
|
|
125
|
+
const left = this._currentMeasure.left + this._currentMeasure.width / 2;
|
|
126
|
+
const top = this._currentMeasure.top + this._currentMeasure.height / 2;
|
|
127
|
+
if (this._displayMinorLines) {
|
|
128
|
+
context.strokeStyle = this._minorLineColor;
|
|
129
|
+
context.lineWidth = this._minorLineTickness;
|
|
130
|
+
for (let x = -cellCountX / 2 + 1; x < cellCountX / 2; x++) {
|
|
131
|
+
const cellX = left + x * this.cellWidth;
|
|
132
|
+
context.beginPath();
|
|
133
|
+
context.moveTo(cellX, this._currentMeasure.top);
|
|
134
|
+
context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);
|
|
135
|
+
context.stroke();
|
|
136
|
+
}
|
|
137
|
+
for (let y = -cellCountY / 2 + 1; y < cellCountY / 2; y++) {
|
|
138
|
+
const cellY = top + y * this.cellHeight;
|
|
139
|
+
context.beginPath();
|
|
140
|
+
context.moveTo(this._currentMeasure.left, cellY);
|
|
141
|
+
context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);
|
|
142
|
+
context.stroke();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Major lines
|
|
146
|
+
if (this._displayMajorLines) {
|
|
147
|
+
context.strokeStyle = this._majorLineColor;
|
|
148
|
+
context.lineWidth = this._majorLineTickness;
|
|
149
|
+
for (let x = -cellCountX / 2 + this._majorLineFrequency; x < cellCountX / 2; x += this._majorLineFrequency) {
|
|
150
|
+
const cellX = left + x * this.cellWidth;
|
|
151
|
+
context.beginPath();
|
|
152
|
+
context.moveTo(cellX, this._currentMeasure.top);
|
|
153
|
+
context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);
|
|
154
|
+
context.stroke();
|
|
155
|
+
}
|
|
156
|
+
for (let y = -cellCountY / 2 + this._majorLineFrequency; y < cellCountY / 2; y += this._majorLineFrequency) {
|
|
157
|
+
const cellY = top + y * this.cellHeight;
|
|
158
|
+
context.moveTo(this._currentMeasure.left, cellY);
|
|
159
|
+
context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);
|
|
160
|
+
context.closePath();
|
|
161
|
+
context.stroke();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
context.restore();
|
|
166
|
+
}
|
|
167
|
+
_getTypeName() {
|
|
168
|
+
return "DisplayGrid";
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
__decorate([
|
|
172
|
+
serialize()
|
|
173
|
+
], DisplayGrid.prototype, "displayMinorLines", null);
|
|
174
|
+
__decorate([
|
|
175
|
+
serialize()
|
|
176
|
+
], DisplayGrid.prototype, "displayMajorLines", null);
|
|
177
|
+
__decorate([
|
|
178
|
+
serialize()
|
|
179
|
+
], DisplayGrid.prototype, "background", null);
|
|
180
|
+
__decorate([
|
|
181
|
+
serialize()
|
|
182
|
+
], DisplayGrid.prototype, "cellWidth", null);
|
|
183
|
+
__decorate([
|
|
184
|
+
serialize()
|
|
185
|
+
], DisplayGrid.prototype, "cellHeight", null);
|
|
186
|
+
__decorate([
|
|
187
|
+
serialize()
|
|
188
|
+
], DisplayGrid.prototype, "minorLineTickness", null);
|
|
189
|
+
__decorate([
|
|
190
|
+
serialize()
|
|
191
|
+
], DisplayGrid.prototype, "minorLineColor", null);
|
|
192
|
+
__decorate([
|
|
193
|
+
serialize()
|
|
194
|
+
], DisplayGrid.prototype, "majorLineTickness", null);
|
|
195
|
+
__decorate([
|
|
196
|
+
serialize()
|
|
197
|
+
], DisplayGrid.prototype, "majorLineColor", null);
|
|
198
|
+
__decorate([
|
|
199
|
+
serialize()
|
|
200
|
+
], DisplayGrid.prototype, "majorLineFrequency", null);
|
|
201
|
+
RegisterClass("BABYLON.GUI.DisplayGrid", DisplayGrid);
|
|
202
|
+
//# sourceMappingURL=displayGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"displayGrid.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/displayGrid.ts"],"names":[],"mappings":"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","sourcesContent":["import { Control } from \"./control\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/** Class used to render a grid */\r\nexport class DisplayGrid extends Control {\r\n private _cellWidth = 20;\r\n private _cellHeight = 20;\r\n\r\n private _minorLineTickness = 1;\r\n private _minorLineColor = \"DarkGray\";\r\n\r\n private _majorLineTickness = 2;\r\n private _majorLineColor = \"White\";\r\n\r\n private _majorLineFrequency = 5;\r\n\r\n private _background = \"Black\";\r\n\r\n private _displayMajorLines = true;\r\n private _displayMinorLines = true;\r\n\r\n /** Gets or sets a boolean indicating if minor lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMinorLines(): boolean {\r\n return this._displayMinorLines;\r\n }\r\n\r\n public set displayMinorLines(value: boolean) {\r\n if (this._displayMinorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMinorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if major lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMajorLines(): boolean {\r\n return this._displayMajorLines;\r\n }\r\n\r\n public set displayMajorLines(value: boolean) {\r\n if (this._displayMajorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMajorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color (Black by default) */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the width of each cell (20 by default) */\r\n @serialize()\r\n public get cellWidth(): number {\r\n return this._cellWidth;\r\n }\r\n\r\n public set cellWidth(value: number) {\r\n this._cellWidth = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of each cell (20 by default) */\r\n @serialize()\r\n public get cellHeight(): number {\r\n return this._cellHeight;\r\n }\r\n\r\n public set cellHeight(value: number) {\r\n this._cellHeight = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of minor lines (1 by default) */\r\n @serialize()\r\n public get minorLineTickness(): number {\r\n return this._minorLineTickness;\r\n }\r\n\r\n public set minorLineTickness(value: number) {\r\n this._minorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of minor lines (DarkGray by default) */\r\n @serialize()\r\n public get minorLineColor(): string {\r\n return this._minorLineColor;\r\n }\r\n\r\n public set minorLineColor(value: string) {\r\n this._minorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of major lines (2 by default) */\r\n @serialize()\r\n public get majorLineTickness(): number {\r\n return this._majorLineTickness;\r\n }\r\n\r\n public set majorLineTickness(value: number) {\r\n this._majorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of major lines (White by default) */\r\n @serialize()\r\n public get majorLineColor(): string {\r\n return this._majorLineColor;\r\n }\r\n\r\n public set majorLineColor(value: string) {\r\n this._majorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the frequency of major lines (default is 1 every 5 minor lines)*/\r\n @serialize()\r\n public get majorLineFrequency(): number {\r\n return this._majorLineFrequency;\r\n }\r\n\r\n public set majorLineFrequency(value: number) {\r\n this._majorLineFrequency = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new GridDisplayRectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n public override _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n\r\n if (this._isEnabled) {\r\n if (this._background) {\r\n context.fillStyle = this._background;\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n\r\n const cellCountX = this._currentMeasure.width / this._cellWidth;\r\n const cellCountY = this._currentMeasure.height / this._cellHeight;\r\n\r\n // Minor lines\r\n const left = this._currentMeasure.left + this._currentMeasure.width / 2;\r\n const top = this._currentMeasure.top + this._currentMeasure.height / 2;\r\n\r\n if (this._displayMinorLines) {\r\n context.strokeStyle = this._minorLineColor;\r\n context.lineWidth = this._minorLineTickness;\r\n\r\n for (let x = -cellCountX / 2 + 1; x < cellCountX / 2; x++) {\r\n const cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n\r\n context.stroke();\r\n }\r\n\r\n for (let y = -cellCountY / 2 + 1; y < cellCountY / 2; y++) {\r\n const cellY = top + y * this.cellHeight;\r\n\r\n context.beginPath();\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.stroke();\r\n }\r\n }\r\n\r\n // Major lines\r\n if (this._displayMajorLines) {\r\n context.strokeStyle = this._majorLineColor;\r\n context.lineWidth = this._majorLineTickness;\r\n\r\n for (let x = -cellCountX / 2 + this._majorLineFrequency; x < cellCountX / 2; x += this._majorLineFrequency) {\r\n const cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n context.stroke();\r\n }\r\n\r\n for (let y = -cellCountY / 2 + this._majorLineFrequency; y < cellCountY / 2; y += this._majorLineFrequency) {\r\n const cellY = top + y * this.cellHeight;\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"DisplayGrid\";\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.DisplayGrid\", DisplayGrid);\r\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Container } from "./container.js";
|
|
2
|
+
import type { Measure } from "../measure.js";
|
|
3
|
+
import type { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
4
|
+
/** Class used to create 2D ellipse containers */
|
|
5
|
+
export declare class Ellipse extends Container {
|
|
6
|
+
name?: string | undefined;
|
|
7
|
+
private _thickness;
|
|
8
|
+
/** Gets or sets border thickness */
|
|
9
|
+
get thickness(): number;
|
|
10
|
+
set thickness(value: number);
|
|
11
|
+
private _arc;
|
|
12
|
+
/** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */
|
|
13
|
+
get arc(): number;
|
|
14
|
+
set arc(value: number);
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new Ellipse
|
|
17
|
+
* @param name defines the control name
|
|
18
|
+
*/
|
|
19
|
+
constructor(name?: string | undefined);
|
|
20
|
+
protected _getTypeName(): string;
|
|
21
|
+
protected _localDraw(context: ICanvasRenderingContext): void;
|
|
22
|
+
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
|
23
|
+
protected _clipForChildren(context: ICanvasRenderingContext): void;
|
|
24
|
+
_renderHighlightSpecific(context: ICanvasRenderingContext): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
+
import { Container } from "./container.js";
|
|
3
|
+
import { Control } from "./control.js";
|
|
4
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
5
|
+
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
6
|
+
/** Class used to create 2D ellipse containers */
|
|
7
|
+
export class Ellipse extends Container {
|
|
8
|
+
/** Gets or sets border thickness */
|
|
9
|
+
get thickness() {
|
|
10
|
+
return this._thickness;
|
|
11
|
+
}
|
|
12
|
+
set thickness(value) {
|
|
13
|
+
if (this._thickness === value) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
this._thickness = value;
|
|
17
|
+
this._markAsDirty();
|
|
18
|
+
}
|
|
19
|
+
/** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */
|
|
20
|
+
get arc() {
|
|
21
|
+
return this._arc;
|
|
22
|
+
}
|
|
23
|
+
set arc(value) {
|
|
24
|
+
if (this._arc === value) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this._arc = value;
|
|
28
|
+
this._markAsDirty();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new Ellipse
|
|
32
|
+
* @param name defines the control name
|
|
33
|
+
*/
|
|
34
|
+
constructor(name) {
|
|
35
|
+
super(name);
|
|
36
|
+
this.name = name;
|
|
37
|
+
this._thickness = 1;
|
|
38
|
+
this._arc = 1;
|
|
39
|
+
}
|
|
40
|
+
_getTypeName() {
|
|
41
|
+
return "Ellipse";
|
|
42
|
+
}
|
|
43
|
+
_localDraw(context) {
|
|
44
|
+
context.save();
|
|
45
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
46
|
+
context.shadowColor = this.shadowColor;
|
|
47
|
+
context.shadowBlur = this.shadowBlur;
|
|
48
|
+
context.shadowOffsetX = this.shadowOffsetX;
|
|
49
|
+
context.shadowOffsetY = this.shadowOffsetY;
|
|
50
|
+
}
|
|
51
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, this._arc, context);
|
|
52
|
+
if (this._backgroundGradient || this._background) {
|
|
53
|
+
context.fillStyle = this._getBackgroundColor(context);
|
|
54
|
+
context.fill();
|
|
55
|
+
}
|
|
56
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
57
|
+
context.shadowBlur = 0;
|
|
58
|
+
context.shadowOffsetX = 0;
|
|
59
|
+
context.shadowOffsetY = 0;
|
|
60
|
+
}
|
|
61
|
+
if (this._thickness) {
|
|
62
|
+
if (this.color) {
|
|
63
|
+
context.strokeStyle = this.color;
|
|
64
|
+
}
|
|
65
|
+
context.lineWidth = this._thickness;
|
|
66
|
+
context.stroke();
|
|
67
|
+
}
|
|
68
|
+
context.restore();
|
|
69
|
+
}
|
|
70
|
+
_additionalProcessing(parentMeasure, context) {
|
|
71
|
+
super._additionalProcessing(parentMeasure, context);
|
|
72
|
+
this._measureForChildren.width -= 2 * this._thickness;
|
|
73
|
+
this._measureForChildren.height -= 2 * this._thickness;
|
|
74
|
+
this._measureForChildren.left += this._thickness;
|
|
75
|
+
this._measureForChildren.top += this._thickness;
|
|
76
|
+
}
|
|
77
|
+
_clipForChildren(context) {
|
|
78
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2, this._currentMeasure.height / 2, this._arc, context);
|
|
79
|
+
context.clip();
|
|
80
|
+
}
|
|
81
|
+
_renderHighlightSpecific(context) {
|
|
82
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._highlightLineWidth / 2, this._currentMeasure.height / 2 - this._highlightLineWidth / 2, this._arc, context);
|
|
83
|
+
context.stroke();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
__decorate([
|
|
87
|
+
serialize()
|
|
88
|
+
], Ellipse.prototype, "thickness", null);
|
|
89
|
+
__decorate([
|
|
90
|
+
serialize()
|
|
91
|
+
], Ellipse.prototype, "arc", null);
|
|
92
|
+
RegisterClass("BABYLON.GUI.Ellipse", Ellipse);
|
|
93
|
+
//# sourceMappingURL=ellipse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/ellipse.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { Control } from \"./control\";\r\nimport type { Measure } from \"../measure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/** Class used to create 2D ellipse containers */\r\nexport class Ellipse extends Container {\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n private _arc = 1;\r\n\r\n /** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */\r\n @serialize()\r\n public get arc(): number {\r\n return this._arc;\r\n }\r\n\r\n public set arc(value: number) {\r\n if (this._arc === value) {\r\n return;\r\n }\r\n\r\n this._arc = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new Ellipse\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"Ellipse\";\r\n }\r\n\r\n protected override _localDraw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2,\r\n this._currentMeasure.height / 2 - this._thickness / 2,\r\n this._arc,\r\n context\r\n );\r\n\r\n if (this._backgroundGradient || this._background) {\r\n context.fillStyle = this._getBackgroundColor(context);\r\n\r\n context.fill();\r\n }\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n if (this._thickness) {\r\n if (this.color) {\r\n context.strokeStyle = this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected override _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.width -= 2 * this._thickness;\r\n this._measureForChildren.height -= 2 * this._thickness;\r\n this._measureForChildren.left += this._thickness;\r\n this._measureForChildren.top += this._thickness;\r\n }\r\n\r\n protected override _clipForChildren(context: ICanvasRenderingContext) {\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2,\r\n this._currentMeasure.height / 2,\r\n this._arc,\r\n context\r\n );\r\n\r\n context.clip();\r\n }\r\n\r\n public override _renderHighlightSpecific(context: ICanvasRenderingContext): void {\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._highlightLineWidth / 2,\r\n this._currentMeasure.height / 2 - this._highlightLineWidth / 2,\r\n this._arc,\r\n context\r\n );\r\n context.stroke();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Ellipse\", Ellipse);\r\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
|
|
2
|
+
import { Button } from "./button.js";
|
|
3
|
+
import type { Control } from "./control.js";
|
|
4
|
+
import type { PointerInfoBase } from "@babylonjs/core/Events/pointerEvents.js";
|
|
5
|
+
import type { IFocusableControl } from "./focusableControl.js";
|
|
6
|
+
/**
|
|
7
|
+
* Class used to create a focusable button that can easily handle keyboard events
|
|
8
|
+
* @since 5.0.0
|
|
9
|
+
*/
|
|
10
|
+
export declare class FocusableButton extends Button implements IFocusableControl {
|
|
11
|
+
name?: string | undefined;
|
|
12
|
+
constructor(name?: string | undefined);
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
_onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean;
|
|
17
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Button } from "./button.js";
|
|
2
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
3
|
+
/**
|
|
4
|
+
* Class used to create a focusable button that can easily handle keyboard events
|
|
5
|
+
* @since 5.0.0
|
|
6
|
+
*/
|
|
7
|
+
export class FocusableButton extends Button {
|
|
8
|
+
constructor(name) {
|
|
9
|
+
super(name);
|
|
10
|
+
this.name = name;
|
|
11
|
+
this._unfocusedColor = this.color;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
_onPointerDown(target, coordinates, pointerId, buttonIndex, pi) {
|
|
17
|
+
if (!this.isReadOnly) {
|
|
18
|
+
// Clicking on button should focus
|
|
19
|
+
this.focus();
|
|
20
|
+
}
|
|
21
|
+
return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
RegisterClass("BABYLON.GUI.FocusableButton", FocusableButton);
|
|
25
|
+
//# sourceMappingURL=focusableButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focusableButton.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/focusableButton.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,0CAA4B;AAIpD;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM;IACvC,YAA4B,IAAa;QACrC,KAAK,CAAC,IAAI,CAAC,CAAC;QADY,SAAI,GAAJ,IAAI,CAAS;QAGrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;IACtC,CAAC;IAED;;OAEG;IACa,cAAc,CAAC,MAAe,EAAE,WAAoB,EAAE,SAAiB,EAAE,WAAmB,EAAE,EAAmB;QAC7H,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,kCAAkC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QAED,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACJ;AACD,aAAa,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC","sourcesContent":["import type { Vector2 } from \"core/Maths/math.vector\";\r\n\r\nimport { Button } from \"./button\";\r\nimport type { Control } from \"./control\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { PointerInfoBase } from \"core/Events/pointerEvents\";\r\nimport type { IFocusableControl } from \"./focusableControl\";\r\n\r\n/**\r\n * Class used to create a focusable button that can easily handle keyboard events\r\n * @since 5.0.0\r\n */\r\nexport class FocusableButton extends Button implements IFocusableControl {\r\n constructor(public override name?: string) {\r\n super(name);\r\n\r\n this._unfocusedColor = this.color;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!this.isReadOnly) {\r\n // Clicking on button should focus\r\n this.focus();\r\n }\r\n\r\n return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.FocusableButton\", FocusableButton);\r\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { IKeyboardEvent } from "@babylonjs/core/Events/deviceInputEvents.js";
|
|
2
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
|
3
|
+
import type { Control } from "./control.js";
|
|
4
|
+
/**
|
|
5
|
+
* Interface used to define a control that can receive focus
|
|
6
|
+
*/
|
|
7
|
+
export interface IFocusableControl {
|
|
8
|
+
/**
|
|
9
|
+
* Function called when the control receives the focus
|
|
10
|
+
*/
|
|
11
|
+
onFocus(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Function called when the control loses the focus
|
|
14
|
+
*/
|
|
15
|
+
onBlur(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Function called to let the control handle keyboard events
|
|
18
|
+
* @param evt defines the current keyboard event
|
|
19
|
+
*/
|
|
20
|
+
processKeyboard(evt: IKeyboardEvent): void;
|
|
21
|
+
/**
|
|
22
|
+
* Function called to get the list of controls that should not steal the focus from this control
|
|
23
|
+
* @returns an array of controls
|
|
24
|
+
*/
|
|
25
|
+
keepsFocusWith(): Nullable<Control[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Function to focus the control programmatically
|
|
28
|
+
*/
|
|
29
|
+
focus(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Function to unfocus the control programmatically
|
|
32
|
+
*/
|
|
33
|
+
blur(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Gets or sets the tabIndex of the control
|
|
36
|
+
*/
|
|
37
|
+
tabIndex?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Gets or sets the color used to draw the focus border
|
|
40
|
+
* Defaults to "white"
|
|
41
|
+
*/
|
|
42
|
+
focusBorderColor?: string;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focusableControl.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/focusableControl.ts"],"names":[],"mappings":"","sourcesContent":["import type { IKeyboardEvent } from \"core/Events/deviceInputEvents\";\r\nimport type { Nullable } from \"core/types\";\r\nimport type { Control } from \"./control\";\r\n\r\n/**\r\n * Interface used to define a control that can receive focus\r\n */\r\nexport interface IFocusableControl {\r\n /**\r\n * Function called when the control receives the focus\r\n */\r\n onFocus(): void;\r\n /**\r\n * Function called when the control loses the focus\r\n */\r\n onBlur(): void;\r\n /**\r\n * Function called to let the control handle keyboard events\r\n * @param evt defines the current keyboard event\r\n */\r\n processKeyboard(evt: IKeyboardEvent): void;\r\n /**\r\n * Function called to get the list of controls that should not steal the focus from this control\r\n * @returns an array of controls\r\n */\r\n keepsFocusWith(): Nullable<Control[]>;\r\n /**\r\n * Function to focus the control programmatically\r\n */\r\n focus(): void;\r\n /**\r\n * Function to unfocus the control programmatically\r\n */\r\n blur(): void;\r\n\r\n /**\r\n * Gets or sets the tabIndex of the control\r\n */\r\n tabIndex?: number;\r\n\r\n /**\r\n * Gets or sets the color used to draw the focus border\r\n * Defaults to \"white\"\r\n */\r\n focusBorderColor?: string;\r\n}\r\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { ICanvasGradient, ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
2
|
+
/**
|
|
3
|
+
* Type that represents a single stop on the gradient.
|
|
4
|
+
*/
|
|
5
|
+
export type GradientColorStop = {
|
|
6
|
+
/**
|
|
7
|
+
* Offset from the start where the color will be applied.
|
|
8
|
+
*/
|
|
9
|
+
offset: number;
|
|
10
|
+
/**
|
|
11
|
+
* Color to be applied.
|
|
12
|
+
*/
|
|
13
|
+
color: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Class that serves as a base for all the gradients created from context.
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class BaseGradient {
|
|
19
|
+
private _colorStops;
|
|
20
|
+
private _canvasGradient;
|
|
21
|
+
private _context;
|
|
22
|
+
private _gradientDirty;
|
|
23
|
+
/**
|
|
24
|
+
* Overwritten by child classes to create the canvas gradient.
|
|
25
|
+
* @param context
|
|
26
|
+
*/
|
|
27
|
+
protected abstract _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;
|
|
28
|
+
private _addColorStopsToCanvasGradient;
|
|
29
|
+
/**
|
|
30
|
+
* If there are any changes or the context changed, regenerate the canvas gradient object. Else,
|
|
31
|
+
* reuse the existing gradient.
|
|
32
|
+
* @param context the context to create the gradient from
|
|
33
|
+
* @returns the canvas gradient
|
|
34
|
+
*/
|
|
35
|
+
getCanvasGradient(context: ICanvasRenderingContext): CanvasGradient;
|
|
36
|
+
/**
|
|
37
|
+
* Adds a new color stop to the gradient.
|
|
38
|
+
* @param offset the offset of the stop on the gradient. Should be between 0 and 1
|
|
39
|
+
* @param color the color of the stop
|
|
40
|
+
*/
|
|
41
|
+
addColorStop(offset: number, color: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Removes an existing color stop with the specified offset from the gradient
|
|
44
|
+
* @param offset the offset of the stop to be removed
|
|
45
|
+
*/
|
|
46
|
+
removeColorStop(offset: number): void;
|
|
47
|
+
/**
|
|
48
|
+
* Removes all color stops from the gradient
|
|
49
|
+
*/
|
|
50
|
+
clearColorStops(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Color stops of the gradient
|
|
53
|
+
*/
|
|
54
|
+
get colorStops(): GradientColorStop[];
|
|
55
|
+
/**
|
|
56
|
+
* @returns Type of the gradient
|
|
57
|
+
*/
|
|
58
|
+
getClassName(): string;
|
|
59
|
+
/**
|
|
60
|
+
* Serialize into a json object
|
|
61
|
+
* @param serializationObject object to serialize into
|
|
62
|
+
*/
|
|
63
|
+
serialize(serializationObject: any): void;
|
|
64
|
+
/**
|
|
65
|
+
* Parse from json object
|
|
66
|
+
* @param serializationObject object to parse from
|
|
67
|
+
*/
|
|
68
|
+
parse(serializationObject: any): void;
|
|
69
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Base Gradient class. Should not be used directly.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Class that serves as a base for all the gradients created from context.
|
|
6
|
+
*/
|
|
7
|
+
export class BaseGradient {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._colorStops = [];
|
|
10
|
+
this._gradientDirty = true;
|
|
11
|
+
}
|
|
12
|
+
_addColorStopsToCanvasGradient() {
|
|
13
|
+
for (const stop of this._colorStops) {
|
|
14
|
+
this._canvasGradient.addColorStop(stop.offset, stop.color);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* If there are any changes or the context changed, regenerate the canvas gradient object. Else,
|
|
19
|
+
* reuse the existing gradient.
|
|
20
|
+
* @param context the context to create the gradient from
|
|
21
|
+
* @returns the canvas gradient
|
|
22
|
+
*/
|
|
23
|
+
getCanvasGradient(context) {
|
|
24
|
+
if (this._gradientDirty || this._context !== context) {
|
|
25
|
+
this._context = context;
|
|
26
|
+
this._canvasGradient = this._createCanvasGradient(context);
|
|
27
|
+
this._addColorStopsToCanvasGradient();
|
|
28
|
+
this._gradientDirty = false;
|
|
29
|
+
}
|
|
30
|
+
return this._canvasGradient;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Adds a new color stop to the gradient.
|
|
34
|
+
* @param offset the offset of the stop on the gradient. Should be between 0 and 1
|
|
35
|
+
* @param color the color of the stop
|
|
36
|
+
*/
|
|
37
|
+
addColorStop(offset, color) {
|
|
38
|
+
this._colorStops.push({ offset, color });
|
|
39
|
+
this._gradientDirty = true;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Removes an existing color stop with the specified offset from the gradient
|
|
43
|
+
* @param offset the offset of the stop to be removed
|
|
44
|
+
*/
|
|
45
|
+
removeColorStop(offset) {
|
|
46
|
+
this._colorStops = this._colorStops.filter((colorStop) => colorStop.offset !== offset);
|
|
47
|
+
this._gradientDirty = true;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Removes all color stops from the gradient
|
|
51
|
+
*/
|
|
52
|
+
clearColorStops() {
|
|
53
|
+
this._colorStops = [];
|
|
54
|
+
this._gradientDirty = true;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Color stops of the gradient
|
|
58
|
+
*/
|
|
59
|
+
get colorStops() {
|
|
60
|
+
return this._colorStops;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @returns Type of the gradient
|
|
64
|
+
*/
|
|
65
|
+
getClassName() {
|
|
66
|
+
return "BaseGradient";
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Serialize into a json object
|
|
70
|
+
* @param serializationObject object to serialize into
|
|
71
|
+
*/
|
|
72
|
+
serialize(serializationObject) {
|
|
73
|
+
serializationObject.colorStops = this._colorStops;
|
|
74
|
+
serializationObject.className = this.getClassName();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Parse from json object
|
|
78
|
+
* @param serializationObject object to parse from
|
|
79
|
+
*/
|
|
80
|
+
parse(serializationObject) {
|
|
81
|
+
this._colorStops = serializationObject.colorStops;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=BaseGradient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseGradient.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/2D/controls/gradient/BaseGradient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,OAAgB,YAAY;IAAlC;QACY,gBAAW,GAAwB,EAAE,CAAC;QAItC,mBAAc,GAAY,IAAI,CAAC;IAuF3C,CAAC;IA/EW,8BAA8B;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,OAAgC;QACrD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAc,EAAE,KAAa;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,MAAc;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,mBAAwB;QACrC,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClD,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACxD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAwB;QACjC,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACtD,CAAC;CACJ","sourcesContent":["/*\r\n * Base Gradient class. Should not be used directly.\r\n */\r\n\r\nimport type { ICanvasGradient, ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Type that represents a single stop on the gradient.\r\n */\r\nexport type GradientColorStop = {\r\n /**\r\n * Offset from the start where the color will be applied.\r\n */\r\n offset: number;\r\n /**\r\n * Color to be applied.\r\n */\r\n color: string;\r\n};\r\n\r\n/**\r\n * Class that serves as a base for all the gradients created from context.\r\n */\r\nexport abstract class BaseGradient {\r\n private _colorStops: GradientColorStop[] = [];\r\n\r\n private _canvasGradient: CanvasGradient;\r\n private _context: ICanvasRenderingContext;\r\n private _gradientDirty: boolean = true;\r\n\r\n /**\r\n * Overwritten by child classes to create the canvas gradient.\r\n * @param context\r\n */\r\n protected abstract _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;\r\n\r\n private _addColorStopsToCanvasGradient() {\r\n for (const stop of this._colorStops) {\r\n this._canvasGradient.addColorStop(stop.offset, stop.color);\r\n }\r\n }\r\n\r\n /**\r\n * If there are any changes or the context changed, regenerate the canvas gradient object. Else,\r\n * reuse the existing gradient.\r\n * @param context the context to create the gradient from\r\n * @returns the canvas gradient\r\n */\r\n public getCanvasGradient(context: ICanvasRenderingContext) {\r\n if (this._gradientDirty || this._context !== context) {\r\n this._context = context;\r\n this._canvasGradient = this._createCanvasGradient(context);\r\n this._addColorStopsToCanvasGradient();\r\n this._gradientDirty = false;\r\n }\r\n return this._canvasGradient;\r\n }\r\n\r\n /**\r\n * Adds a new color stop to the gradient.\r\n * @param offset the offset of the stop on the gradient. Should be between 0 and 1\r\n * @param color the color of the stop\r\n */\r\n public addColorStop(offset: number, color: string) {\r\n this._colorStops.push({ offset, color });\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Removes an existing color stop with the specified offset from the gradient\r\n * @param offset the offset of the stop to be removed\r\n */\r\n public removeColorStop(offset: number) {\r\n this._colorStops = this._colorStops.filter((colorStop) => colorStop.offset !== offset);\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Removes all color stops from the gradient\r\n */\r\n public clearColorStops() {\r\n this._colorStops = [];\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Color stops of the gradient\r\n */\r\n public get colorStops() {\r\n return this._colorStops;\r\n }\r\n\r\n /**\r\n * @returns Type of the gradient\r\n */\r\n public getClassName() {\r\n return \"BaseGradient\";\r\n }\r\n\r\n /**\r\n * Serialize into a json object\r\n * @param serializationObject object to serialize into\r\n */\r\n public serialize(serializationObject: any) {\r\n serializationObject.colorStops = this._colorStops;\r\n serializationObject.className = this.getClassName();\r\n }\r\n\r\n /**\r\n * Parse from json object\r\n * @param serializationObject object to parse from\r\n */\r\n public parse(serializationObject: any) {\r\n this._colorStops = serializationObject.colorStops;\r\n }\r\n}\r\n"]}
|