@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 @@
|
|
|
1
|
+
{"version":3,"file":"multiLinePoint.js","sourceRoot":"","sources":["../../../../dev/gui/src/2D/multiLinePoint.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport type { Observer } from \"core/Misc/observable\";\r\nimport { Vector3 } from \"core/Maths/math.vector\";\r\nimport { Epsilon } from \"core/Maths/math.constants\";\r\nimport type { Camera } from \"core/Cameras/camera\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\n\r\nimport type { MultiLine } from \"./controls/multiLine\";\r\nimport { ValueAndUnit } from \"./valueAndUnit\";\r\nimport type { Control } from \"./controls/control\";\r\n\r\n/**\r\n * Class used to store a point for a MultiLine object.\r\n * The point can be pure 2D coordinates, a mesh or a control\r\n */\r\nexport class MultiLinePoint {\r\n private _multiLine: MultiLine;\r\n\r\n private _x: ValueAndUnit;\r\n private _y: ValueAndUnit;\r\n private _control: Nullable<Control>;\r\n private _mesh: Nullable<AbstractMesh>;\r\n\r\n private _controlObserver: Nullable<Observer<Control>>;\r\n private _meshObserver: Nullable<Observer<Camera>>;\r\n\r\n /** @internal */\r\n public _point: Vector3;\r\n\r\n /**\r\n * Creates a new MultiLinePoint\r\n * @param multiLine defines the source MultiLine object\r\n */\r\n constructor(multiLine: MultiLine) {\r\n this._multiLine = multiLine;\r\n\r\n this._x = new ValueAndUnit(0);\r\n this._y = new ValueAndUnit(0);\r\n\r\n this._point = new Vector3(0, 0, 0);\r\n }\r\n\r\n /** Gets or sets x coordinate */\r\n public get x(): string | number {\r\n return this._x.toString(this._multiLine._host);\r\n }\r\n\r\n public set x(value: string | number) {\r\n if (this._x.toString(this._multiLine._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._x.fromString(value)) {\r\n this._multiLine._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets y coordinate */\r\n public get y(): string | number {\r\n return this._y.toString(this._multiLine._host);\r\n }\r\n\r\n public set y(value: string | number) {\r\n if (this._y.toString(this._multiLine._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._y.fromString(value)) {\r\n this._multiLine._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets the control associated with this point */\r\n public get control(): Nullable<Control> {\r\n return this._control;\r\n }\r\n\r\n public set control(value: Nullable<Control>) {\r\n if (this._control === value) {\r\n return;\r\n }\r\n\r\n if (this._control && this._controlObserver) {\r\n this._control.onDirtyObservable.remove(this._controlObserver);\r\n\r\n this._controlObserver = null;\r\n }\r\n\r\n this._control = value;\r\n\r\n if (this._control) {\r\n this._controlObserver = this._control.onDirtyObservable.add(this._multiLine.onPointUpdate);\r\n }\r\n\r\n this._multiLine._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the mesh associated with this point */\r\n public get mesh(): Nullable<AbstractMesh> {\r\n return this._mesh;\r\n }\r\n\r\n public set mesh(value: Nullable<AbstractMesh>) {\r\n if (this._mesh === value) {\r\n return;\r\n }\r\n\r\n if (this._mesh && this._meshObserver) {\r\n this._mesh.getScene().onAfterCameraRenderObservable.remove(this._meshObserver);\r\n }\r\n\r\n this._mesh = value;\r\n\r\n if (this._mesh) {\r\n this._meshObserver = this._mesh.getScene().onAfterCameraRenderObservable.add(this._multiLine.onPointUpdate);\r\n }\r\n\r\n this._multiLine._markAsDirty();\r\n }\r\n\r\n /** Resets links */\r\n public resetLinks(): void {\r\n this.control = null;\r\n this.mesh = null;\r\n }\r\n\r\n /**\r\n * Gets a translation vector with Z component\r\n * @returns the translation vector\r\n */\r\n public translate(): Vector3 {\r\n this._point = this._translatePoint();\r\n\r\n return this._point;\r\n }\r\n\r\n private _translatePoint(): Vector3 {\r\n if (this._mesh != null) {\r\n return this._multiLine._host.getProjectedPositionWithZ(this._mesh.getBoundingInfo().boundingSphere.center, this._mesh.getWorldMatrix());\r\n } else if (this._control != null) {\r\n return new Vector3(this._control.centerX, this._control.centerY, 1 - Epsilon);\r\n } else {\r\n const host: any = this._multiLine._host as any;\r\n\r\n const xValue: number = this._x.getValueInPixel(host, Number(host._canvas.width));\r\n const yValue: number = this._y.getValueInPixel(host, Number(host._canvas.height));\r\n\r\n return new Vector3(xValue, yValue, 1 - Epsilon);\r\n }\r\n }\r\n\r\n /** Release associated resources */\r\n public dispose(): void {\r\n this.resetLinks();\r\n }\r\n}\r\n"]}
|
package/2D/style.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
import type { IDisposable } from "@babylonjs/core/scene.js";
|
|
3
|
+
import type { AdvancedDynamicTexture } from "./advancedDynamicTexture.js";
|
|
4
|
+
import { ValueAndUnit } from "./valueAndUnit.js";
|
|
5
|
+
/**
|
|
6
|
+
* Define a style used by control to automatically setup properties based on a template.
|
|
7
|
+
* Only support font related properties so far
|
|
8
|
+
*/
|
|
9
|
+
export declare class Style implements IDisposable {
|
|
10
|
+
private _fontFamily;
|
|
11
|
+
private _fontStyle;
|
|
12
|
+
private _fontWeight;
|
|
13
|
+
/** @internal */
|
|
14
|
+
_host: AdvancedDynamicTexture;
|
|
15
|
+
/** @internal */
|
|
16
|
+
_fontSize: ValueAndUnit;
|
|
17
|
+
/**
|
|
18
|
+
* Observable raised when the style values are changed
|
|
19
|
+
*/
|
|
20
|
+
onChangedObservable: Observable<Style>;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new style object
|
|
23
|
+
* @param host defines the AdvancedDynamicTexture which hosts this style
|
|
24
|
+
*/
|
|
25
|
+
constructor(host: AdvancedDynamicTexture);
|
|
26
|
+
/**
|
|
27
|
+
* Gets or sets the font size
|
|
28
|
+
*/
|
|
29
|
+
get fontSize(): string | number;
|
|
30
|
+
set fontSize(value: string | number);
|
|
31
|
+
/**
|
|
32
|
+
* Gets or sets the font family
|
|
33
|
+
*/
|
|
34
|
+
get fontFamily(): string;
|
|
35
|
+
set fontFamily(value: string);
|
|
36
|
+
/**
|
|
37
|
+
* Gets or sets the font style
|
|
38
|
+
*/
|
|
39
|
+
get fontStyle(): string;
|
|
40
|
+
set fontStyle(value: string);
|
|
41
|
+
/** Gets or sets font weight */
|
|
42
|
+
get fontWeight(): string;
|
|
43
|
+
set fontWeight(value: string);
|
|
44
|
+
/** Dispose all associated resources */
|
|
45
|
+
dispose(): void;
|
|
46
|
+
}
|
package/2D/style.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
import { ValueAndUnit } from "./valueAndUnit.js";
|
|
3
|
+
/**
|
|
4
|
+
* Define a style used by control to automatically setup properties based on a template.
|
|
5
|
+
* Only support font related properties so far
|
|
6
|
+
*/
|
|
7
|
+
export class Style {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new style object
|
|
10
|
+
* @param host defines the AdvancedDynamicTexture which hosts this style
|
|
11
|
+
*/
|
|
12
|
+
constructor(host) {
|
|
13
|
+
this._fontFamily = "Arial";
|
|
14
|
+
this._fontStyle = "";
|
|
15
|
+
this._fontWeight = "";
|
|
16
|
+
/** @internal */
|
|
17
|
+
this._fontSize = new ValueAndUnit(18, ValueAndUnit.UNITMODE_PIXEL, false);
|
|
18
|
+
/**
|
|
19
|
+
* Observable raised when the style values are changed
|
|
20
|
+
*/
|
|
21
|
+
this.onChangedObservable = new Observable();
|
|
22
|
+
this._host = host;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Gets or sets the font size
|
|
26
|
+
*/
|
|
27
|
+
get fontSize() {
|
|
28
|
+
return this._fontSize.toString(this._host);
|
|
29
|
+
}
|
|
30
|
+
set fontSize(value) {
|
|
31
|
+
if (this._fontSize.toString(this._host) === value) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (this._fontSize.fromString(value)) {
|
|
35
|
+
this.onChangedObservable.notifyObservers(this);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Gets or sets the font family
|
|
40
|
+
*/
|
|
41
|
+
get fontFamily() {
|
|
42
|
+
return this._fontFamily;
|
|
43
|
+
}
|
|
44
|
+
set fontFamily(value) {
|
|
45
|
+
if (this._fontFamily === value) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this._fontFamily = value;
|
|
49
|
+
this.onChangedObservable.notifyObservers(this);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Gets or sets the font style
|
|
53
|
+
*/
|
|
54
|
+
get fontStyle() {
|
|
55
|
+
return this._fontStyle;
|
|
56
|
+
}
|
|
57
|
+
set fontStyle(value) {
|
|
58
|
+
if (this._fontStyle === value) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this._fontStyle = value;
|
|
62
|
+
this.onChangedObservable.notifyObservers(this);
|
|
63
|
+
}
|
|
64
|
+
/** Gets or sets font weight */
|
|
65
|
+
get fontWeight() {
|
|
66
|
+
return this._fontWeight;
|
|
67
|
+
}
|
|
68
|
+
set fontWeight(value) {
|
|
69
|
+
if (this._fontWeight === value) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this._fontWeight = value;
|
|
73
|
+
this.onChangedObservable.notifyObservers(this);
|
|
74
|
+
}
|
|
75
|
+
/** Dispose all associated resources */
|
|
76
|
+
dispose() {
|
|
77
|
+
this.onChangedObservable.clear();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=style.js.map
|
package/2D/style.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../../dev/gui/src/2D/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,2CAA6B;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,KAAK;IAcd;;;OAGG;IACH,YAAmB,IAA4B;QAjBvC,gBAAW,GAAG,OAAO,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAChB,gBAAW,GAAG,EAAE,CAAC;QAGzB,gBAAgB;QACT,cAAS,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAE5E;;WAEG;QACI,wBAAmB,GAAG,IAAI,UAAU,EAAS,CAAC;QAOjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,IAAW,QAAQ,CAAC,KAAsB;QACtC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAChD,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QAC/B,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,+BAA+B;IAC/B,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QAC/B,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,uCAAuC;IAChC,OAAO;QACV,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;CACJ","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport type { IDisposable } from \"core/scene\";\r\nimport type { AdvancedDynamicTexture } from \"./advancedDynamicTexture\";\r\nimport { ValueAndUnit } from \"./valueAndUnit\";\r\n\r\n/**\r\n * Define a style used by control to automatically setup properties based on a template.\r\n * Only support font related properties so far\r\n */\r\nexport class Style implements IDisposable {\r\n private _fontFamily = \"Arial\";\r\n private _fontStyle = \"\";\r\n private _fontWeight = \"\";\r\n /** @internal */\r\n public _host: AdvancedDynamicTexture;\r\n /** @internal */\r\n public _fontSize = new ValueAndUnit(18, ValueAndUnit.UNITMODE_PIXEL, false);\r\n\r\n /**\r\n * Observable raised when the style values are changed\r\n */\r\n public onChangedObservable = new Observable<Style>();\r\n\r\n /**\r\n * Creates a new style object\r\n * @param host defines the AdvancedDynamicTexture which hosts this style\r\n */\r\n public constructor(host: AdvancedDynamicTexture) {\r\n this._host = host;\r\n }\r\n\r\n /**\r\n * Gets or sets the font size\r\n */\r\n public get fontSize(): string | number {\r\n return this._fontSize.toString(this._host);\r\n }\r\n\r\n public set fontSize(value: string | number) {\r\n if (this._fontSize.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._fontSize.fromString(value)) {\r\n this.onChangedObservable.notifyObservers(this);\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the font family\r\n */\r\n public get fontFamily(): string {\r\n return this._fontFamily;\r\n }\r\n\r\n public set fontFamily(value: string) {\r\n if (this._fontFamily === value) {\r\n return;\r\n }\r\n\r\n this._fontFamily = value;\r\n this.onChangedObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Gets or sets the font style\r\n */\r\n public get fontStyle(): string {\r\n return this._fontStyle;\r\n }\r\n\r\n public set fontStyle(value: string) {\r\n if (this._fontStyle === value) {\r\n return;\r\n }\r\n\r\n this._fontStyle = value;\r\n this.onChangedObservable.notifyObservers(this);\r\n }\r\n\r\n /** Gets or sets font weight */\r\n public get fontWeight(): string {\r\n return this._fontWeight;\r\n }\r\n\r\n public set fontWeight(value: string) {\r\n if (this._fontWeight === value) {\r\n return;\r\n }\r\n\r\n this._fontWeight = value;\r\n this.onChangedObservable.notifyObservers(this);\r\n }\r\n\r\n /** Dispose all associated resources */\r\n public dispose() {\r\n this.onChangedObservable.clear();\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
import type { AdvancedDynamicTexture } from "./advancedDynamicTexture.js";
|
|
3
|
+
/**
|
|
4
|
+
* Class used to specific a value and its associated unit
|
|
5
|
+
*/
|
|
6
|
+
export declare class ValueAndUnit {
|
|
7
|
+
/** defines a boolean indicating if the value can be negative */
|
|
8
|
+
negativeValueAllowed: boolean;
|
|
9
|
+
private _value;
|
|
10
|
+
private _unit;
|
|
11
|
+
private _originalUnit;
|
|
12
|
+
/**
|
|
13
|
+
* Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property
|
|
14
|
+
* @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling
|
|
15
|
+
*/
|
|
16
|
+
ignoreAdaptiveScaling: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Observable event triggered each time the value or unit changes
|
|
19
|
+
*/
|
|
20
|
+
onChangedObservable: Observable<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new ValueAndUnit
|
|
23
|
+
* @param value defines the value to store
|
|
24
|
+
* @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL
|
|
25
|
+
* @param negativeValueAllowed defines a boolean indicating if the value can be negative
|
|
26
|
+
*/
|
|
27
|
+
constructor(value: number,
|
|
28
|
+
/** defines the unit to store */
|
|
29
|
+
unit?: number,
|
|
30
|
+
/** defines a boolean indicating if the value can be negative */
|
|
31
|
+
negativeValueAllowed?: boolean);
|
|
32
|
+
/** Gets a boolean indicating if the value is a percentage */
|
|
33
|
+
get isPercentage(): boolean;
|
|
34
|
+
/** Gets a boolean indicating if the value is store as pixel */
|
|
35
|
+
get isPixel(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Gets value (without units)
|
|
38
|
+
* @deprecated use value property instead
|
|
39
|
+
*/
|
|
40
|
+
get internalValue(): number;
|
|
41
|
+
/** Gets value (without units) */
|
|
42
|
+
get value(): number;
|
|
43
|
+
/** Sets value (without units) */
|
|
44
|
+
set value(value: number);
|
|
45
|
+
/** Gets units (without value) */
|
|
46
|
+
get unit(): number;
|
|
47
|
+
/** Sets units (without value) */
|
|
48
|
+
set unit(value: number);
|
|
49
|
+
/**
|
|
50
|
+
* Gets value as pixel
|
|
51
|
+
* @param host defines the root host
|
|
52
|
+
* @param refValue defines the reference value for percentages
|
|
53
|
+
* @returns the value as pixel
|
|
54
|
+
*/
|
|
55
|
+
getValueInPixel(host: AdvancedDynamicTexture, refValue: number): number;
|
|
56
|
+
/**
|
|
57
|
+
* Update the current value and unit.
|
|
58
|
+
* @param value defines the value to store
|
|
59
|
+
* @param unit defines the unit to store
|
|
60
|
+
* @returns the current ValueAndUnit
|
|
61
|
+
*/
|
|
62
|
+
updateInPlace(value: number, unit?: number): ValueAndUnit;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the value accordingly to its unit
|
|
65
|
+
* @param host defines the root host
|
|
66
|
+
* @returns the value
|
|
67
|
+
*/
|
|
68
|
+
getValue(host: AdvancedDynamicTexture): number;
|
|
69
|
+
/**
|
|
70
|
+
* Gets a string representation of the value
|
|
71
|
+
* @param host defines the root host
|
|
72
|
+
* @param decimals defines an optional number of decimals to display
|
|
73
|
+
* @returns a string
|
|
74
|
+
*/
|
|
75
|
+
toString(host: AdvancedDynamicTexture, decimals?: number): string;
|
|
76
|
+
/**
|
|
77
|
+
* Store a value parsed from a string
|
|
78
|
+
* @param source defines the source string
|
|
79
|
+
* @returns true if the value was successfully parsed and updated
|
|
80
|
+
*/
|
|
81
|
+
fromString(source: string | number): boolean;
|
|
82
|
+
private static _Regex;
|
|
83
|
+
private static _UNITMODE_PERCENTAGE;
|
|
84
|
+
private static _UNITMODE_PIXEL;
|
|
85
|
+
/** UNITMODE_PERCENTAGE */
|
|
86
|
+
static get UNITMODE_PERCENTAGE(): number;
|
|
87
|
+
/** UNITMODE_PIXEL */
|
|
88
|
+
static get UNITMODE_PIXEL(): number;
|
|
89
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
/**
|
|
3
|
+
* Class used to specific a value and its associated unit
|
|
4
|
+
*/
|
|
5
|
+
export class ValueAndUnit {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new ValueAndUnit
|
|
8
|
+
* @param value defines the value to store
|
|
9
|
+
* @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL
|
|
10
|
+
* @param negativeValueAllowed defines a boolean indicating if the value can be negative
|
|
11
|
+
*/
|
|
12
|
+
constructor(value,
|
|
13
|
+
/** defines the unit to store */
|
|
14
|
+
unit = ValueAndUnit.UNITMODE_PIXEL,
|
|
15
|
+
/** defines a boolean indicating if the value can be negative */
|
|
16
|
+
negativeValueAllowed = true) {
|
|
17
|
+
this.negativeValueAllowed = negativeValueAllowed;
|
|
18
|
+
this._value = 1;
|
|
19
|
+
this._unit = ValueAndUnit.UNITMODE_PIXEL;
|
|
20
|
+
/**
|
|
21
|
+
* Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property
|
|
22
|
+
* @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling
|
|
23
|
+
*/
|
|
24
|
+
this.ignoreAdaptiveScaling = false;
|
|
25
|
+
/**
|
|
26
|
+
* Observable event triggered each time the value or unit changes
|
|
27
|
+
*/
|
|
28
|
+
this.onChangedObservable = new Observable();
|
|
29
|
+
this._value = value;
|
|
30
|
+
this._unit = unit;
|
|
31
|
+
this._originalUnit = unit;
|
|
32
|
+
}
|
|
33
|
+
/** Gets a boolean indicating if the value is a percentage */
|
|
34
|
+
get isPercentage() {
|
|
35
|
+
return this._unit === ValueAndUnit.UNITMODE_PERCENTAGE;
|
|
36
|
+
}
|
|
37
|
+
/** Gets a boolean indicating if the value is store as pixel */
|
|
38
|
+
get isPixel() {
|
|
39
|
+
return this._unit === ValueAndUnit.UNITMODE_PIXEL;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Gets value (without units)
|
|
43
|
+
* @deprecated use value property instead
|
|
44
|
+
*/
|
|
45
|
+
get internalValue() {
|
|
46
|
+
return this._value;
|
|
47
|
+
}
|
|
48
|
+
/** Gets value (without units) */
|
|
49
|
+
get value() {
|
|
50
|
+
return this._value;
|
|
51
|
+
}
|
|
52
|
+
/** Sets value (without units) */
|
|
53
|
+
set value(value) {
|
|
54
|
+
if (value !== this._value) {
|
|
55
|
+
this._value = value;
|
|
56
|
+
this.onChangedObservable.notifyObservers();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Gets units (without value) */
|
|
60
|
+
get unit() {
|
|
61
|
+
return this._unit;
|
|
62
|
+
}
|
|
63
|
+
/** Sets units (without value) */
|
|
64
|
+
set unit(value) {
|
|
65
|
+
if (value !== this._unit) {
|
|
66
|
+
this._unit = value;
|
|
67
|
+
this.onChangedObservable.notifyObservers();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Gets value as pixel
|
|
72
|
+
* @param host defines the root host
|
|
73
|
+
* @param refValue defines the reference value for percentages
|
|
74
|
+
* @returns the value as pixel
|
|
75
|
+
*/
|
|
76
|
+
getValueInPixel(host, refValue) {
|
|
77
|
+
if (this.isPixel) {
|
|
78
|
+
return this.getValue(host);
|
|
79
|
+
}
|
|
80
|
+
return this.getValue(host) * refValue;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Update the current value and unit.
|
|
84
|
+
* @param value defines the value to store
|
|
85
|
+
* @param unit defines the unit to store
|
|
86
|
+
* @returns the current ValueAndUnit
|
|
87
|
+
*/
|
|
88
|
+
updateInPlace(value, unit = ValueAndUnit.UNITMODE_PIXEL) {
|
|
89
|
+
if (this.value !== value || this.unit !== unit) {
|
|
90
|
+
// set member variables to notify only once
|
|
91
|
+
this._value = value;
|
|
92
|
+
this._unit = unit;
|
|
93
|
+
this.onChangedObservable.notifyObservers();
|
|
94
|
+
}
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Gets the value accordingly to its unit
|
|
99
|
+
* @param host defines the root host
|
|
100
|
+
* @returns the value
|
|
101
|
+
*/
|
|
102
|
+
getValue(host) {
|
|
103
|
+
if (host && !this.ignoreAdaptiveScaling && this.unit !== ValueAndUnit.UNITMODE_PERCENTAGE) {
|
|
104
|
+
let width = 0;
|
|
105
|
+
let height = 0;
|
|
106
|
+
if (host.idealWidth) {
|
|
107
|
+
width = Math.ceil((this._value * host.getSize().width) / host.idealWidth);
|
|
108
|
+
}
|
|
109
|
+
if (host.idealHeight) {
|
|
110
|
+
height = Math.ceil((this._value * host.getSize().height) / host.idealHeight);
|
|
111
|
+
}
|
|
112
|
+
if (host.useSmallestIdeal && host.idealWidth && host.idealHeight) {
|
|
113
|
+
return window.innerWidth < window.innerHeight ? width : height;
|
|
114
|
+
}
|
|
115
|
+
if (host.idealWidth) {
|
|
116
|
+
// horizontal
|
|
117
|
+
return width;
|
|
118
|
+
}
|
|
119
|
+
if (host.idealHeight) {
|
|
120
|
+
// vertical
|
|
121
|
+
return height;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return this._value;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Gets a string representation of the value
|
|
128
|
+
* @param host defines the root host
|
|
129
|
+
* @param decimals defines an optional number of decimals to display
|
|
130
|
+
* @returns a string
|
|
131
|
+
*/
|
|
132
|
+
toString(host, decimals) {
|
|
133
|
+
switch (this._unit) {
|
|
134
|
+
case ValueAndUnit.UNITMODE_PERCENTAGE: {
|
|
135
|
+
const percentage = this.getValue(host) * 100;
|
|
136
|
+
return (decimals ? percentage.toFixed(decimals) : percentage) + "%";
|
|
137
|
+
}
|
|
138
|
+
case ValueAndUnit.UNITMODE_PIXEL: {
|
|
139
|
+
const pixels = this.getValue(host);
|
|
140
|
+
return (decimals ? pixels.toFixed(decimals) : pixels) + "px";
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return this._unit.toString();
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Store a value parsed from a string
|
|
147
|
+
* @param source defines the source string
|
|
148
|
+
* @returns true if the value was successfully parsed and updated
|
|
149
|
+
*/
|
|
150
|
+
fromString(source) {
|
|
151
|
+
const match = ValueAndUnit._Regex.exec(source.toString());
|
|
152
|
+
if (!match || match.length === 0) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
let sourceValue = parseFloat(match[1]);
|
|
156
|
+
let sourceUnit = this._originalUnit;
|
|
157
|
+
if (!this.negativeValueAllowed) {
|
|
158
|
+
if (sourceValue < 0) {
|
|
159
|
+
sourceValue = 0;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (match.length === 4) {
|
|
163
|
+
switch (match[3]) {
|
|
164
|
+
case "px":
|
|
165
|
+
sourceUnit = ValueAndUnit.UNITMODE_PIXEL;
|
|
166
|
+
break;
|
|
167
|
+
case "%":
|
|
168
|
+
sourceUnit = ValueAndUnit.UNITMODE_PERCENTAGE;
|
|
169
|
+
sourceValue /= 100.0;
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (sourceValue === this._value && sourceUnit === this._unit) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
this._value = sourceValue;
|
|
177
|
+
this._unit = sourceUnit;
|
|
178
|
+
this.onChangedObservable.notifyObservers();
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
/** UNITMODE_PERCENTAGE */
|
|
182
|
+
static get UNITMODE_PERCENTAGE() {
|
|
183
|
+
return ValueAndUnit._UNITMODE_PERCENTAGE;
|
|
184
|
+
}
|
|
185
|
+
/** UNITMODE_PIXEL */
|
|
186
|
+
static get UNITMODE_PIXEL() {
|
|
187
|
+
return ValueAndUnit._UNITMODE_PIXEL;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Static
|
|
191
|
+
ValueAndUnit._Regex = /(^-?\d*(\.\d+)?)(%|px)?/;
|
|
192
|
+
ValueAndUnit._UNITMODE_PERCENTAGE = 0;
|
|
193
|
+
ValueAndUnit._UNITMODE_PIXEL = 1;
|
|
194
|
+
//# sourceMappingURL=valueAndUnit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueAndUnit.js","sourceRoot":"","sources":["../../../../dev/gui/src/2D/valueAndUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport type { AdvancedDynamicTexture } from \"./advancedDynamicTexture\";\r\n\r\n/**\r\n * Class used to specific a value and its associated unit\r\n */\r\nexport class ValueAndUnit {\r\n private _value = 1;\r\n private _unit = ValueAndUnit.UNITMODE_PIXEL;\r\n private _originalUnit: number;\r\n\r\n /**\r\n * Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling\r\n */\r\n public ignoreAdaptiveScaling = false;\r\n\r\n /**\r\n * Observable event triggered each time the value or unit changes\r\n */\r\n public onChangedObservable = new Observable<void>();\r\n\r\n /**\r\n * Creates a new ValueAndUnit\r\n * @param value defines the value to store\r\n * @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL\r\n * @param negativeValueAllowed defines a boolean indicating if the value can be negative\r\n */\r\n public constructor(\r\n value: number,\r\n /** defines the unit to store */\r\n unit = ValueAndUnit.UNITMODE_PIXEL,\r\n /** defines a boolean indicating if the value can be negative */\r\n public negativeValueAllowed = true\r\n ) {\r\n this._value = value;\r\n this._unit = unit;\r\n this._originalUnit = unit;\r\n }\r\n\r\n /** Gets a boolean indicating if the value is a percentage */\r\n public get isPercentage(): boolean {\r\n return this._unit === ValueAndUnit.UNITMODE_PERCENTAGE;\r\n }\r\n\r\n /** Gets a boolean indicating if the value is store as pixel */\r\n public get isPixel(): boolean {\r\n return this._unit === ValueAndUnit.UNITMODE_PIXEL;\r\n }\r\n\r\n /**\r\n * Gets value (without units)\r\n * @deprecated use value property instead\r\n */\r\n public get internalValue(): number {\r\n return this._value;\r\n }\r\n\r\n /** Gets value (without units) */\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n /** Sets value (without units) */\r\n public set value(value: number) {\r\n if (value !== this._value) {\r\n this._value = value;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n }\r\n\r\n /** Gets units (without value) */\r\n public get unit(): number {\r\n return this._unit;\r\n }\r\n\r\n /** Sets units (without value) */\r\n public set unit(value: number) {\r\n if (value !== this._unit) {\r\n this._unit = value;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n }\r\n\r\n /**\r\n * Gets value as pixel\r\n * @param host defines the root host\r\n * @param refValue defines the reference value for percentages\r\n * @returns the value as pixel\r\n */\r\n public getValueInPixel(host: AdvancedDynamicTexture, refValue: number): number {\r\n if (this.isPixel) {\r\n return this.getValue(host);\r\n }\r\n\r\n return this.getValue(host) * refValue;\r\n }\r\n\r\n /**\r\n * Update the current value and unit.\r\n * @param value defines the value to store\r\n * @param unit defines the unit to store\r\n * @returns the current ValueAndUnit\r\n */\r\n public updateInPlace(value: number, unit = ValueAndUnit.UNITMODE_PIXEL): ValueAndUnit {\r\n if (this.value !== value || this.unit !== unit) {\r\n // set member variables to notify only once\r\n this._value = value;\r\n this._unit = unit;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the value accordingly to its unit\r\n * @param host defines the root host\r\n * @returns the value\r\n */\r\n public getValue(host: AdvancedDynamicTexture): number {\r\n if (host && !this.ignoreAdaptiveScaling && this.unit !== ValueAndUnit.UNITMODE_PERCENTAGE) {\r\n let width: number = 0;\r\n let height: number = 0;\r\n\r\n if (host.idealWidth) {\r\n width = Math.ceil((this._value * host.getSize().width) / host.idealWidth);\r\n }\r\n\r\n if (host.idealHeight) {\r\n height = Math.ceil((this._value * host.getSize().height) / host.idealHeight);\r\n }\r\n\r\n if (host.useSmallestIdeal && host.idealWidth && host.idealHeight) {\r\n return window.innerWidth < window.innerHeight ? width : height;\r\n }\r\n\r\n if (host.idealWidth) {\r\n // horizontal\r\n return width;\r\n }\r\n\r\n if (host.idealHeight) {\r\n // vertical\r\n return height;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Gets a string representation of the value\r\n * @param host defines the root host\r\n * @param decimals defines an optional number of decimals to display\r\n * @returns a string\r\n */\r\n public toString(host: AdvancedDynamicTexture, decimals?: number): string {\r\n switch (this._unit) {\r\n case ValueAndUnit.UNITMODE_PERCENTAGE: {\r\n const percentage = this.getValue(host) * 100;\r\n return (decimals ? percentage.toFixed(decimals) : percentage) + \"%\";\r\n }\r\n case ValueAndUnit.UNITMODE_PIXEL: {\r\n const pixels = this.getValue(host);\r\n return (decimals ? pixels.toFixed(decimals) : pixels) + \"px\";\r\n }\r\n }\r\n\r\n return this._unit.toString();\r\n }\r\n\r\n /**\r\n * Store a value parsed from a string\r\n * @param source defines the source string\r\n * @returns true if the value was successfully parsed and updated\r\n */\r\n public fromString(source: string | number): boolean {\r\n const match = ValueAndUnit._Regex.exec(source.toString());\r\n\r\n if (!match || match.length === 0) {\r\n return false;\r\n }\r\n\r\n let sourceValue = parseFloat(match[1]);\r\n let sourceUnit = this._originalUnit;\r\n\r\n if (!this.negativeValueAllowed) {\r\n if (sourceValue < 0) {\r\n sourceValue = 0;\r\n }\r\n }\r\n\r\n if (match.length === 4) {\r\n switch (match[3]) {\r\n case \"px\":\r\n sourceUnit = ValueAndUnit.UNITMODE_PIXEL;\r\n break;\r\n case \"%\":\r\n sourceUnit = ValueAndUnit.UNITMODE_PERCENTAGE;\r\n sourceValue /= 100.0;\r\n break;\r\n }\r\n }\r\n\r\n if (sourceValue === this._value && sourceUnit === this._unit) {\r\n return false;\r\n }\r\n\r\n this._value = sourceValue;\r\n this._unit = sourceUnit;\r\n this.onChangedObservable.notifyObservers();\r\n\r\n return true;\r\n }\r\n\r\n // Static\r\n private static _Regex = /(^-?\\d*(\\.\\d+)?)(%|px)?/;\r\n private static _UNITMODE_PERCENTAGE = 0;\r\n private static _UNITMODE_PIXEL = 1;\r\n\r\n /** UNITMODE_PERCENTAGE */\r\n public static get UNITMODE_PERCENTAGE(): number {\r\n return ValueAndUnit._UNITMODE_PERCENTAGE;\r\n }\r\n\r\n /** UNITMODE_PIXEL */\r\n public static get UNITMODE_PIXEL(): number {\r\n return ValueAndUnit._UNITMODE_PIXEL;\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Class used to load GUI via XML.
|
|
4
|
+
*/
|
|
5
|
+
export declare class XmlLoader {
|
|
6
|
+
private _nodes;
|
|
7
|
+
private _nodeTypes;
|
|
8
|
+
private _isLoaded;
|
|
9
|
+
private _objectAttributes;
|
|
10
|
+
private _rootNode;
|
|
11
|
+
private _parentClass;
|
|
12
|
+
/**
|
|
13
|
+
* Create a new xml loader
|
|
14
|
+
* @param parentClass Sets the class context. Used when the loader is instanced inside a class and not in a global context
|
|
15
|
+
*/
|
|
16
|
+
constructor(parentClass?: any);
|
|
17
|
+
private _getChainElement;
|
|
18
|
+
private _getClassAttribute;
|
|
19
|
+
private _createGuiElement;
|
|
20
|
+
private _parseGrid;
|
|
21
|
+
private _parseElement;
|
|
22
|
+
private _prepareSourceElement;
|
|
23
|
+
private _parseElementsFromSource;
|
|
24
|
+
private _parseXml;
|
|
25
|
+
/**
|
|
26
|
+
* Gets if the loading has finished.
|
|
27
|
+
* @returns whether the loading has finished or not
|
|
28
|
+
*/
|
|
29
|
+
isLoaded(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Gets a loaded node / control by id.
|
|
32
|
+
* @param id the Controls id set in the xml
|
|
33
|
+
* @returns element of type Control
|
|
34
|
+
*/
|
|
35
|
+
getNodeById(id: string): any;
|
|
36
|
+
/**
|
|
37
|
+
* Gets all loaded nodes / controls
|
|
38
|
+
* @returns Array of controls
|
|
39
|
+
*/
|
|
40
|
+
getNodes(): any;
|
|
41
|
+
/**
|
|
42
|
+
* Disposes the loaded layout
|
|
43
|
+
*/
|
|
44
|
+
dispose(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Initiates the xml layout loading
|
|
47
|
+
* @param xmlFile defines the xml layout to load
|
|
48
|
+
* @param rootNode defines the node / control to use as a parent for the loaded layout controls.
|
|
49
|
+
* @param onSuccess defines the callback called on layout load successfully.
|
|
50
|
+
* @param onError defines the callback called on layout load failure.
|
|
51
|
+
*/
|
|
52
|
+
loadLayout(xmlFile: any, rootNode: any, onSuccess?: Nullable<() => void>, onError?: Nullable<(error: string) => void>): void;
|
|
53
|
+
/**
|
|
54
|
+
* Initiates the xml layout loading asynchronously
|
|
55
|
+
* @param xmlFile defines the xml layout to load
|
|
56
|
+
* @param rootNode defines the node / control to use as a parent for the loaded layout controls.
|
|
57
|
+
* @returns Promise
|
|
58
|
+
*/
|
|
59
|
+
loadLayoutAsync(xmlFile: any, rootNode: any): Promise<any>;
|
|
60
|
+
}
|