@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,44 @@
|
|
|
1
|
+
import type { Scene } from "@babylonjs/core/scene.js";
|
|
2
|
+
import type { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
|
|
3
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
|
4
|
+
import { DefaultBehavior } from "../behaviors/defaultBehavior.js";
|
|
5
|
+
import { TouchHolographicMenu } from "./touchHolographicMenu.js";
|
|
6
|
+
/**
|
|
7
|
+
* NearMenu that displays buttons and follows the camera
|
|
8
|
+
* @since 5.0.0
|
|
9
|
+
*/
|
|
10
|
+
export declare class NearMenu extends TouchHolographicMenu {
|
|
11
|
+
/**
|
|
12
|
+
* Base Url for the assets.
|
|
13
|
+
*/
|
|
14
|
+
private static _ASSETS_BASE_URL;
|
|
15
|
+
/**
|
|
16
|
+
* File name for the close icon.
|
|
17
|
+
*/
|
|
18
|
+
private static _PIN_ICON_FILENAME;
|
|
19
|
+
private _pinButton;
|
|
20
|
+
private _dragObserver;
|
|
21
|
+
private _defaultBehavior;
|
|
22
|
+
/**
|
|
23
|
+
* Regroups all mesh behaviors for the near menu
|
|
24
|
+
*/
|
|
25
|
+
get defaultBehavior(): DefaultBehavior;
|
|
26
|
+
private _isPinned;
|
|
27
|
+
/**
|
|
28
|
+
* Indicates if the near menu is world-pinned
|
|
29
|
+
*/
|
|
30
|
+
get isPinned(): boolean;
|
|
31
|
+
set isPinned(value: boolean);
|
|
32
|
+
private _createPinButton;
|
|
33
|
+
protected _createNode(scene: Scene): Nullable<TransformNode>;
|
|
34
|
+
protected _finalProcessing(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a near menu GUI 3D control
|
|
37
|
+
* @param name name of the near menu
|
|
38
|
+
*/
|
|
39
|
+
constructor(name?: string);
|
|
40
|
+
/**
|
|
41
|
+
* Disposes the near menu
|
|
42
|
+
*/
|
|
43
|
+
dispose(): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { TouchHolographicButton } from "./touchHolographicButton.js";
|
|
2
|
+
import { DefaultBehavior } from "../behaviors/defaultBehavior.js";
|
|
3
|
+
import { TouchHolographicMenu } from "./touchHolographicMenu.js";
|
|
4
|
+
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
5
|
+
/**
|
|
6
|
+
* NearMenu that displays buttons and follows the camera
|
|
7
|
+
* @since 5.0.0
|
|
8
|
+
*/
|
|
9
|
+
export class NearMenu extends TouchHolographicMenu {
|
|
10
|
+
/**
|
|
11
|
+
* Regroups all mesh behaviors for the near menu
|
|
12
|
+
*/
|
|
13
|
+
get defaultBehavior() {
|
|
14
|
+
return this._defaultBehavior;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Indicates if the near menu is world-pinned
|
|
18
|
+
*/
|
|
19
|
+
get isPinned() {
|
|
20
|
+
return this._isPinned;
|
|
21
|
+
}
|
|
22
|
+
set isPinned(value) {
|
|
23
|
+
// Tell the pin button to toggle if this was called manually, for clean state control
|
|
24
|
+
if (this._pinButton.isToggled !== value) {
|
|
25
|
+
this._pinButton.isToggled = value;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this._isPinned = value;
|
|
29
|
+
if (value) {
|
|
30
|
+
this._defaultBehavior.followBehaviorEnabled = false;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this._defaultBehavior.followBehaviorEnabled = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
_createPinButton(parent) {
|
|
37
|
+
const control = new TouchHolographicButton("pin" + this.name, false);
|
|
38
|
+
const baseUrl = Tools.GetAssetUrl(NearMenu._ASSETS_BASE_URL);
|
|
39
|
+
control.imageUrl = baseUrl + NearMenu._PIN_ICON_FILENAME;
|
|
40
|
+
control.parent = this;
|
|
41
|
+
control._host = this._host;
|
|
42
|
+
control.isToggleButton = true;
|
|
43
|
+
control.onToggleObservable.add((newState) => {
|
|
44
|
+
this.isPinned = newState;
|
|
45
|
+
});
|
|
46
|
+
if (this._host.utilityLayer) {
|
|
47
|
+
control._prepareNode(this._host.utilityLayer.utilityLayerScene);
|
|
48
|
+
control.scaling.scaleInPlace(TouchHolographicMenu.MENU_BUTTON_SCALE);
|
|
49
|
+
if (control.node) {
|
|
50
|
+
control.node.parent = parent;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return control;
|
|
54
|
+
}
|
|
55
|
+
_createNode(scene) {
|
|
56
|
+
const node = super._createNode(scene);
|
|
57
|
+
this._pinButton = this._createPinButton(node);
|
|
58
|
+
this.isPinned = false;
|
|
59
|
+
this._defaultBehavior.attach(node, [this._backPlate]);
|
|
60
|
+
this._defaultBehavior.followBehavior.ignoreCameraPitchAndRoll = true;
|
|
61
|
+
this._defaultBehavior.followBehavior.pitchOffset = -15;
|
|
62
|
+
this._defaultBehavior.followBehavior.minimumDistance = 0.3;
|
|
63
|
+
this._defaultBehavior.followBehavior.defaultDistance = 0.4;
|
|
64
|
+
this._defaultBehavior.followBehavior.maximumDistance = 0.6;
|
|
65
|
+
this._backPlate.isNearGrabbable = true;
|
|
66
|
+
node.isVisible = false;
|
|
67
|
+
return node;
|
|
68
|
+
}
|
|
69
|
+
_finalProcessing() {
|
|
70
|
+
super._finalProcessing();
|
|
71
|
+
this._pinButton.position.copyFromFloats((this._backPlate.scaling.x + TouchHolographicMenu.MENU_BUTTON_SCALE) / 2, this._backPlate.scaling.y / 2, 0);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a near menu GUI 3D control
|
|
75
|
+
* @param name name of the near menu
|
|
76
|
+
*/
|
|
77
|
+
constructor(name) {
|
|
78
|
+
super(name);
|
|
79
|
+
this._isPinned = false;
|
|
80
|
+
this._defaultBehavior = new DefaultBehavior();
|
|
81
|
+
this._dragObserver = this._defaultBehavior.sixDofDragBehavior.onDragObservable.add(() => {
|
|
82
|
+
this.isPinned = true;
|
|
83
|
+
});
|
|
84
|
+
this.backPlateMargin = 1;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Disposes the near menu
|
|
88
|
+
*/
|
|
89
|
+
dispose() {
|
|
90
|
+
super.dispose();
|
|
91
|
+
this._defaultBehavior.sixDofDragBehavior.onDragObservable.remove(this._dragObserver);
|
|
92
|
+
this._defaultBehavior.detach();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Base Url for the assets.
|
|
97
|
+
*/
|
|
98
|
+
NearMenu._ASSETS_BASE_URL = "https://assets.babylonjs.com/core/MRTK/";
|
|
99
|
+
/**
|
|
100
|
+
* File name for the close icon.
|
|
101
|
+
*/
|
|
102
|
+
NearMenu._PIN_ICON_FILENAME = "IconPin.png";
|
|
103
|
+
//# sourceMappingURL=nearMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nearMenu.js","sourceRoot":"","sources":["../../../../../dev/gui/src/3D/controls/nearMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scene } from \"core/scene\";\r\nimport type { TransformNode } from \"core/Meshes/transformNode\";\r\nimport type { Nullable } from \"core/types\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { TouchHolographicButton } from \"./touchHolographicButton\";\r\nimport { DefaultBehavior } from \"../behaviors/defaultBehavior\";\r\nimport { TouchHolographicMenu } from \"./touchHolographicMenu\";\r\nimport type { Observer } from \"core/Misc/observable\";\r\nimport type { Vector3 } from \"core/Maths/math.vector\";\r\nimport type { PickingInfo } from \"core/Collisions/pickingInfo\";\r\nimport { Tools } from \"core/Misc/tools\";\r\n\r\n/**\r\n * NearMenu that displays buttons and follows the camera\r\n * @since 5.0.0\r\n */\r\nexport class NearMenu extends TouchHolographicMenu {\r\n /**\r\n * Base Url for the assets.\r\n */\r\n private static _ASSETS_BASE_URL: string = \"https://assets.babylonjs.com/core/MRTK/\";\r\n /**\r\n * File name for the close icon.\r\n */\r\n private static _PIN_ICON_FILENAME: string = \"IconPin.png\";\r\n\r\n private _pinButton: TouchHolographicButton;\r\n private _dragObserver: Nullable<\r\n Observer<{\r\n delta: Vector3;\r\n position: Vector3;\r\n pickInfo: PickingInfo;\r\n }>\r\n >;\r\n\r\n private _defaultBehavior: DefaultBehavior;\r\n /**\r\n * Regroups all mesh behaviors for the near menu\r\n */\r\n public get defaultBehavior(): DefaultBehavior {\r\n return this._defaultBehavior;\r\n }\r\n\r\n private _isPinned: boolean = false;\r\n /**\r\n * Indicates if the near menu is world-pinned\r\n */\r\n public get isPinned(): boolean {\r\n return this._isPinned;\r\n }\r\n\r\n public set isPinned(value: boolean) {\r\n // Tell the pin button to toggle if this was called manually, for clean state control\r\n if (this._pinButton.isToggled !== value) {\r\n this._pinButton.isToggled = value;\r\n return;\r\n }\r\n\r\n this._isPinned = value;\r\n\r\n if (value) {\r\n this._defaultBehavior.followBehaviorEnabled = false;\r\n } else {\r\n this._defaultBehavior.followBehaviorEnabled = true;\r\n }\r\n }\r\n\r\n private _createPinButton(parent: TransformNode) {\r\n const control = new TouchHolographicButton(\"pin\" + this.name, false);\r\n const baseUrl = Tools.GetAssetUrl(NearMenu._ASSETS_BASE_URL);\r\n control.imageUrl = baseUrl + NearMenu._PIN_ICON_FILENAME;\r\n control.parent = this;\r\n control._host = this._host;\r\n control.isToggleButton = true;\r\n control.onToggleObservable.add((newState) => {\r\n this.isPinned = newState;\r\n });\r\n\r\n if (this._host.utilityLayer) {\r\n control._prepareNode(this._host.utilityLayer.utilityLayerScene);\r\n control.scaling.scaleInPlace(TouchHolographicMenu.MENU_BUTTON_SCALE);\r\n\r\n if (control.node) {\r\n control.node.parent = parent;\r\n }\r\n }\r\n\r\n return control;\r\n }\r\n\r\n protected override _createNode(scene: Scene): Nullable<TransformNode> {\r\n const node = super._createNode(scene)! as Mesh;\r\n\r\n this._pinButton = this._createPinButton(node);\r\n this.isPinned = false;\r\n\r\n this._defaultBehavior.attach(node, [this._backPlate]);\r\n this._defaultBehavior.followBehavior.ignoreCameraPitchAndRoll = true;\r\n this._defaultBehavior.followBehavior.pitchOffset = -15;\r\n this._defaultBehavior.followBehavior.minimumDistance = 0.3;\r\n this._defaultBehavior.followBehavior.defaultDistance = 0.4;\r\n this._defaultBehavior.followBehavior.maximumDistance = 0.6;\r\n\r\n this._backPlate.isNearGrabbable = true;\r\n node.isVisible = false;\r\n\r\n return node;\r\n }\r\n\r\n protected override _finalProcessing() {\r\n super._finalProcessing();\r\n\r\n this._pinButton.position.copyFromFloats((this._backPlate.scaling.x + TouchHolographicMenu.MENU_BUTTON_SCALE) / 2, this._backPlate.scaling.y / 2, 0);\r\n }\r\n\r\n /**\r\n * Creates a near menu GUI 3D control\r\n * @param name name of the near menu\r\n */\r\n constructor(name?: string) {\r\n super(name);\r\n\r\n this._defaultBehavior = new DefaultBehavior();\r\n this._dragObserver = this._defaultBehavior.sixDofDragBehavior.onDragObservable.add(() => {\r\n this.isPinned = true;\r\n });\r\n\r\n this.backPlateMargin = 1;\r\n }\r\n\r\n /**\r\n * Disposes the near menu\r\n */\r\n public override dispose() {\r\n super.dispose();\r\n\r\n this._defaultBehavior.sixDofDragBehavior.onDragObservable.remove(this._dragObserver);\r\n this._defaultBehavior.detach();\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
2
|
+
import type { Control3D } from "./control3D.js";
|
|
3
|
+
import { VolumeBasedPanel } from "./volumeBasedPanel.js";
|
|
4
|
+
/**
|
|
5
|
+
* Class used to create a container panel deployed on the surface of a plane
|
|
6
|
+
*/
|
|
7
|
+
export declare class PlanePanel extends VolumeBasedPanel {
|
|
8
|
+
protected _mapGridNode(control: Control3D, nodePosition: Vector3): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
2
|
+
import { Container3D } from "./container3D.js";
|
|
3
|
+
import { VolumeBasedPanel } from "./volumeBasedPanel.js";
|
|
4
|
+
/**
|
|
5
|
+
* Class used to create a container panel deployed on the surface of a plane
|
|
6
|
+
*/
|
|
7
|
+
export class PlanePanel extends VolumeBasedPanel {
|
|
8
|
+
_mapGridNode(control, nodePosition) {
|
|
9
|
+
const mesh = control.mesh;
|
|
10
|
+
if (!mesh) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
control.position = nodePosition.clone();
|
|
14
|
+
const target = TmpVectors.Vector3[0];
|
|
15
|
+
target.copyFrom(nodePosition);
|
|
16
|
+
switch (this.orientation) {
|
|
17
|
+
case Container3D.FACEORIGIN_ORIENTATION:
|
|
18
|
+
case Container3D.FACEFORWARD_ORIENTATION:
|
|
19
|
+
target.addInPlace(new Vector3(0, 0, 1));
|
|
20
|
+
mesh.lookAt(target);
|
|
21
|
+
break;
|
|
22
|
+
case Container3D.FACEFORWARDREVERSED_ORIENTATION:
|
|
23
|
+
case Container3D.FACEORIGINREVERSED_ORIENTATION:
|
|
24
|
+
target.addInPlace(new Vector3(0, 0, -1));
|
|
25
|
+
mesh.lookAt(target);
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=planePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planePanel.js","sourceRoot":"","sources":["../../../../../dev/gui/src/3D/controls/planePanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA+B;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,gBAAgB;IAClC,YAAY,CAAC,OAAkB,EAAE,YAAqB;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QAED,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE9B,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,WAAW,CAAC,sBAAsB,CAAC;YACxC,KAAK,WAAW,CAAC,uBAAuB;gBACpC,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM;YACV,KAAK,WAAW,CAAC,+BAA+B,CAAC;YACjD,KAAK,WAAW,CAAC,8BAA8B;gBAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM;QACd,CAAC;IACL,CAAC;CACJ","sourcesContent":["import { TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\n\r\nimport { Container3D } from \"./container3D\";\r\nimport type { Control3D } from \"./control3D\";\r\nimport { VolumeBasedPanel } from \"./volumeBasedPanel\";\r\n\r\n/**\r\n * Class used to create a container panel deployed on the surface of a plane\r\n */\r\nexport class PlanePanel extends VolumeBasedPanel {\r\n protected _mapGridNode(control: Control3D, nodePosition: Vector3) {\r\n const mesh = control.mesh;\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n control.position = nodePosition.clone();\r\n const target = TmpVectors.Vector3[0];\r\n\r\n target.copyFrom(nodePosition);\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n target.addInPlace(new Vector3(0, 0, 1));\r\n mesh.lookAt(target);\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n target.addInPlace(new Vector3(0, 0, -1));\r\n mesh.lookAt(target);\r\n break;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
2
|
+
import type { float } from "@babylonjs/core/types.js";
|
|
3
|
+
import { VolumeBasedPanel } from "./volumeBasedPanel.js";
|
|
4
|
+
import type { Control3D } from "./control3D.js";
|
|
5
|
+
/**
|
|
6
|
+
* Class used to create a container panel where items get randomized planar mapping
|
|
7
|
+
*/
|
|
8
|
+
export declare class ScatterPanel extends VolumeBasedPanel {
|
|
9
|
+
private _iteration;
|
|
10
|
+
/**
|
|
11
|
+
* Gets or sets the number of iteration to use to scatter the controls (100 by default)
|
|
12
|
+
*/
|
|
13
|
+
get iteration(): float;
|
|
14
|
+
set iteration(value: float);
|
|
15
|
+
protected _mapGridNode(control: Control3D, nodePosition: Vector3): void;
|
|
16
|
+
private _scatterMapping;
|
|
17
|
+
protected _finalProcessing(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
2
|
+
import { TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
|
+
import { VolumeBasedPanel } from "./volumeBasedPanel.js";
|
|
4
|
+
import { Container3D } from "./container3D.js";
|
|
5
|
+
/**
|
|
6
|
+
* Class used to create a container panel where items get randomized planar mapping
|
|
7
|
+
*/
|
|
8
|
+
export class ScatterPanel extends VolumeBasedPanel {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this._iteration = 100.0;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Gets or sets the number of iteration to use to scatter the controls (100 by default)
|
|
15
|
+
*/
|
|
16
|
+
get iteration() {
|
|
17
|
+
return this._iteration;
|
|
18
|
+
}
|
|
19
|
+
set iteration(value) {
|
|
20
|
+
if (this._iteration === value) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this._iteration = value;
|
|
24
|
+
Tools.SetImmediate(() => {
|
|
25
|
+
this._arrangeChildren();
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
_mapGridNode(control, nodePosition) {
|
|
29
|
+
const mesh = control.mesh;
|
|
30
|
+
const newPos = this._scatterMapping(nodePosition);
|
|
31
|
+
if (!mesh) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
switch (this.orientation) {
|
|
35
|
+
case Container3D.FACEORIGIN_ORIENTATION:
|
|
36
|
+
case Container3D.FACEFORWARD_ORIENTATION:
|
|
37
|
+
mesh.lookAt(new Vector3(0, 0, 1));
|
|
38
|
+
break;
|
|
39
|
+
case Container3D.FACEFORWARDREVERSED_ORIENTATION:
|
|
40
|
+
case Container3D.FACEORIGINREVERSED_ORIENTATION:
|
|
41
|
+
mesh.lookAt(new Vector3(0, 0, -1));
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
control.position = newPos;
|
|
45
|
+
}
|
|
46
|
+
_scatterMapping(source) {
|
|
47
|
+
source.x = (1.0 - Math.random() * 2.0) * this._cellWidth;
|
|
48
|
+
source.y = (1.0 - Math.random() * 2.0) * this._cellHeight;
|
|
49
|
+
return source;
|
|
50
|
+
}
|
|
51
|
+
_finalProcessing() {
|
|
52
|
+
const meshes = [];
|
|
53
|
+
for (const child of this._children) {
|
|
54
|
+
if (!child.mesh) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
meshes.push(child.mesh);
|
|
58
|
+
}
|
|
59
|
+
for (let count = 0; count < this._iteration; count++) {
|
|
60
|
+
meshes.sort((a, b) => {
|
|
61
|
+
const distance1 = a.position.lengthSquared();
|
|
62
|
+
const distance2 = b.position.lengthSquared();
|
|
63
|
+
if (distance1 < distance2) {
|
|
64
|
+
return 1;
|
|
65
|
+
}
|
|
66
|
+
else if (distance1 > distance2) {
|
|
67
|
+
return -1;
|
|
68
|
+
}
|
|
69
|
+
return 0;
|
|
70
|
+
});
|
|
71
|
+
const radiusPaddingSquared = Math.pow(this.margin, 2.0);
|
|
72
|
+
const cellSize = Math.max(this._cellWidth, this._cellHeight);
|
|
73
|
+
const difference2D = TmpVectors.Vector2[0];
|
|
74
|
+
const difference = TmpVectors.Vector3[0];
|
|
75
|
+
for (let i = 0; i < meshes.length - 1; i++) {
|
|
76
|
+
for (let j = i + 1; j < meshes.length; j++) {
|
|
77
|
+
if (i != j) {
|
|
78
|
+
meshes[j].position.subtractToRef(meshes[i].position, difference);
|
|
79
|
+
// Ignore Z axis
|
|
80
|
+
difference2D.x = difference.x;
|
|
81
|
+
difference2D.y = difference.y;
|
|
82
|
+
const combinedRadius = cellSize;
|
|
83
|
+
let distance = difference2D.lengthSquared() - radiusPaddingSquared;
|
|
84
|
+
const minSeparation = Math.min(distance, radiusPaddingSquared);
|
|
85
|
+
distance -= minSeparation;
|
|
86
|
+
if (distance < Math.pow(combinedRadius, 2.0)) {
|
|
87
|
+
difference2D.normalize();
|
|
88
|
+
difference.scaleInPlace((combinedRadius - Math.sqrt(distance)) * 0.5);
|
|
89
|
+
meshes[j].position.addInPlace(difference);
|
|
90
|
+
meshes[i].position.subtractInPlace(difference);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=scatterPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scatterPanel.js","sourceRoot":"","sources":["../../../../../dev/gui/src/3D/controls/scatterPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,sCAAwB;AACxC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA+B;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAAlD;;QACY,eAAU,GAAG,KAAK,CAAC;IAuG/B,CAAC;IArGG;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS,CAAC,KAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAES,YAAY,CAAC,OAAkB,EAAE,YAAqB;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QAED,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,WAAW,CAAC,sBAAsB,CAAC;YACxC,KAAK,WAAW,CAAC,uBAAuB;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM;YACV,KAAK,WAAW,CAAC,+BAA+B,CAAC;YACjD,KAAK,WAAW,CAAC,8BAA8B;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM;QACd,CAAC;QAED,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;IAC9B,CAAC;IAEO,eAAe,CAAC,MAAe;QACnC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACzD,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAE1D,OAAO,MAAM,CAAC;IAClB,CAAC;IAEkB,gBAAgB;QAC/B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS;YACb,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjB,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC7C,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAE7C,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;oBACxB,OAAO,CAAC,CAAC;gBACb,CAAC;qBAAM,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;oBAC/B,OAAO,CAAC,CAAC,CAAC;gBACd,CAAC;gBAED,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACT,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAEjE,gBAAgB;wBAChB,YAAY,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;wBAC9B,YAAY,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;wBAC9B,MAAM,cAAc,GAAG,QAAQ,CAAC;wBAChC,IAAI,QAAQ,GAAG,YAAY,CAAC,aAAa,EAAE,GAAG,oBAAoB,CAAC;wBACnE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;wBAC/D,QAAQ,IAAI,aAAa,CAAC;wBAE1B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;4BAC3C,YAAY,CAAC,SAAS,EAAE,CAAC;4BACzB,UAAU,CAAC,YAAY,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;4BACtE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;4BAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;wBACnD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\nimport type { float } from \"core/types\";\r\n\r\nimport { VolumeBasedPanel } from \"./volumeBasedPanel\";\r\nimport type { Control3D } from \"./control3D\";\r\nimport { Container3D } from \"./container3D\";\r\n\r\n/**\r\n * Class used to create a container panel where items get randomized planar mapping\r\n */\r\nexport class ScatterPanel extends VolumeBasedPanel {\r\n private _iteration = 100.0;\r\n\r\n /**\r\n * Gets or sets the number of iteration to use to scatter the controls (100 by default)\r\n */\r\n public get iteration(): float {\r\n return this._iteration;\r\n }\r\n\r\n public set iteration(value: float) {\r\n if (this._iteration === value) {\r\n return;\r\n }\r\n\r\n this._iteration = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n protected _mapGridNode(control: Control3D, nodePosition: Vector3) {\r\n const mesh = control.mesh;\r\n const newPos = this._scatterMapping(nodePosition);\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n mesh.lookAt(new Vector3(0, 0, 1));\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(0, 0, -1));\r\n break;\r\n }\r\n\r\n control.position = newPos;\r\n }\r\n\r\n private _scatterMapping(source: Vector3): Vector3 {\r\n source.x = (1.0 - Math.random() * 2.0) * this._cellWidth;\r\n source.y = (1.0 - Math.random() * 2.0) * this._cellHeight;\r\n\r\n return source;\r\n }\r\n\r\n protected override _finalProcessing() {\r\n const meshes = [];\r\n for (const child of this._children) {\r\n if (!child.mesh) {\r\n continue;\r\n }\r\n\r\n meshes.push(child.mesh);\r\n }\r\n\r\n for (let count = 0; count < this._iteration; count++) {\r\n meshes.sort((a, b) => {\r\n const distance1 = a.position.lengthSquared();\r\n const distance2 = b.position.lengthSquared();\r\n\r\n if (distance1 < distance2) {\r\n return 1;\r\n } else if (distance1 > distance2) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n const radiusPaddingSquared = Math.pow(this.margin, 2.0);\r\n const cellSize = Math.max(this._cellWidth, this._cellHeight);\r\n const difference2D = TmpVectors.Vector2[0];\r\n const difference = TmpVectors.Vector3[0];\r\n\r\n for (let i = 0; i < meshes.length - 1; i++) {\r\n for (let j = i + 1; j < meshes.length; j++) {\r\n if (i != j) {\r\n meshes[j].position.subtractToRef(meshes[i].position, difference);\r\n\r\n // Ignore Z axis\r\n difference2D.x = difference.x;\r\n difference2D.y = difference.y;\r\n const combinedRadius = cellSize;\r\n let distance = difference2D.lengthSquared() - radiusPaddingSquared;\r\n const minSeparation = Math.min(distance, radiusPaddingSquared);\r\n distance -= minSeparation;\r\n\r\n if (distance < Math.pow(combinedRadius, 2.0)) {\r\n difference2D.normalize();\r\n difference.scaleInPlace((combinedRadius - Math.sqrt(distance)) * 0.5);\r\n meshes[j].position.addInPlace(difference);\r\n meshes[i].position.subtractInPlace(difference);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
|
2
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
3
|
+
import type { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
|
|
4
|
+
import type { Scene } from "@babylonjs/core/scene.js";
|
|
5
|
+
import { Control3D } from "./control3D.js";
|
|
6
|
+
import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
7
|
+
import { MRDLSliderBarMaterial } from "../materials/mrdl/mrdlSliderBarMaterial.js";
|
|
8
|
+
import { MRDLSliderThumbMaterial } from "../materials/mrdl/mrdlSliderThumbMaterial.js";
|
|
9
|
+
import { MRDLBackplateMaterial } from "../materials/mrdl/mrdlBackplateMaterial.js";
|
|
10
|
+
/**
|
|
11
|
+
* Class used to create a slider in 3D
|
|
12
|
+
*/
|
|
13
|
+
export declare class Slider3D extends Control3D {
|
|
14
|
+
/**
|
|
15
|
+
* Base Url for the models.
|
|
16
|
+
*/
|
|
17
|
+
static MODEL_BASE_URL: string;
|
|
18
|
+
/**
|
|
19
|
+
* File name for the 8x4 model.
|
|
20
|
+
*/
|
|
21
|
+
static MODEL_FILENAME: string;
|
|
22
|
+
private _sliderBackplate;
|
|
23
|
+
private _sliderBackplateMaterial;
|
|
24
|
+
private _sliderBarMaterial;
|
|
25
|
+
private _sliderThumbMaterial;
|
|
26
|
+
private _sliderThumb;
|
|
27
|
+
private _sliderBar;
|
|
28
|
+
private _sliderBackplateVisible;
|
|
29
|
+
private _minimum;
|
|
30
|
+
private _maximum;
|
|
31
|
+
private _value;
|
|
32
|
+
private _step;
|
|
33
|
+
private _draggedPosition;
|
|
34
|
+
/** Observable raised when the sldier value changes */
|
|
35
|
+
onValueChangedObservable: Observable<number>;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new slider
|
|
38
|
+
* @param name defines the control name
|
|
39
|
+
* @param sliderBackplateVisible defines if the control has a backplate, default is false
|
|
40
|
+
*/
|
|
41
|
+
constructor(name?: string, sliderBackplateVisible?: boolean);
|
|
42
|
+
/**
|
|
43
|
+
* Gets the mesh used to render this control
|
|
44
|
+
*/
|
|
45
|
+
get mesh(): Nullable<AbstractMesh>;
|
|
46
|
+
/** Gets or sets minimum value */
|
|
47
|
+
get minimum(): number;
|
|
48
|
+
set minimum(value: number);
|
|
49
|
+
/** Gets or sets maximum value */
|
|
50
|
+
get maximum(): number;
|
|
51
|
+
set maximum(value: number);
|
|
52
|
+
/** Gets or sets step value */
|
|
53
|
+
get step(): number;
|
|
54
|
+
set step(value: number);
|
|
55
|
+
/** Gets or sets current value */
|
|
56
|
+
get value(): number;
|
|
57
|
+
set value(value: number);
|
|
58
|
+
protected get start(): number;
|
|
59
|
+
protected get end(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Gets the slider bar material used by this control
|
|
62
|
+
*/
|
|
63
|
+
get sliderBarMaterial(): MRDLSliderBarMaterial;
|
|
64
|
+
/**
|
|
65
|
+
* Gets the slider thumb material used by this control
|
|
66
|
+
*/
|
|
67
|
+
get sliderThumbMaterial(): MRDLSliderThumbMaterial;
|
|
68
|
+
/**
|
|
69
|
+
* Gets the slider backplate material used by this control
|
|
70
|
+
*/
|
|
71
|
+
get sliderBackplateMaterial(): MRDLBackplateMaterial;
|
|
72
|
+
/**
|
|
73
|
+
* Gets the slider bar mesh used by this control
|
|
74
|
+
*/
|
|
75
|
+
get sliderBar(): AbstractMesh;
|
|
76
|
+
/**
|
|
77
|
+
* Gets the slider thumb mesh used by this control
|
|
78
|
+
*/
|
|
79
|
+
get sliderThumb(): AbstractMesh;
|
|
80
|
+
/**
|
|
81
|
+
* Gets the slider backplate mesh used by this control
|
|
82
|
+
*/
|
|
83
|
+
get sliderBackplate(): AbstractMesh;
|
|
84
|
+
/** Sets a boolean indicating if the control is visible */
|
|
85
|
+
set isVisible(value: boolean);
|
|
86
|
+
protected _createNode(scene: Scene): TransformNode;
|
|
87
|
+
protected _affectMaterial(mesh: AbstractMesh): void;
|
|
88
|
+
private _createBehavior;
|
|
89
|
+
private _convertToPosition;
|
|
90
|
+
private _convertToValue;
|
|
91
|
+
/**
|
|
92
|
+
* Releases all associated resources
|
|
93
|
+
*/
|
|
94
|
+
dispose(): void;
|
|
95
|
+
}
|