diff --git a/assets/licenses.txt b/assets/licenses.txt index f869012..4888780 100644 --- a/assets/licenses.txt +++ b/assets/licenses.txt @@ -1129,6 +1129,35 @@ BSD-3-Clause ----------- +The following npm package may be included in this product: + + - ws@8.18.3 + +This package contains the following license: + +Copyright (c) 2011 Einar Otto Stangvik +Copyright (c) 2013 Arnout Kazemier and contributors +Copyright (c) 2016 Luigi Pinca and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + The following npm package may be included in this product: - color-string@1.9.1 @@ -1537,6 +1566,126 @@ SOFTWARE. ----------- +The following npm package may be included in this product: + + - state-local@1.0.7 + +This package contains the following license: + +MIT License + +Copyright (c) 2020 Suren Atoyan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - vue-demi@0.14.10 + +This package contains the following license: + +MIT License + +Copyright (c) 2020-present, Anthony Fu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @monaco-editor/loader@1.5.0 + +This package contains the following license: + +MIT License + +Copyright (c) 2021 Suren Atoyan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @guolao/vue-monaco-editor@1.5.5 + +This package contains the following license: + +MIT License + +Copyright (c) 2022 guolao + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + The following npm package may be included in this product: - @monogrid/gainmap-js@3.1.0 @@ -1597,6 +1746,16 @@ SOFTWARE. ----------- +The following npm package may be included in this product: + + - pyodide@0.28.0 + +This package contains the following license: + +MPL-2.0 + +----------- + The following npm packages may be included in this product: - @mdi/js@7.4.47 @@ -1771,6 +1930,36 @@ THE SOFTWARE. ----------- +The following npm package may be included in this product: + + - monaco-editor@0.52.2 + +This package contains the following license: + +The MIT License (MIT) + +Copyright (c) 2016 - present Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + The following npm package may be included in this product: - vuetify@3.9.0 diff --git a/frontend/misc/settings.ts b/frontend/misc/settings.ts index 1829bdd..1041c32 100644 --- a/frontend/misc/settings.ts +++ b/frontend/misc/settings.ts @@ -38,6 +38,9 @@ export async function settings() { "12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEW6urpaLVq8AAAACklEQVQI" + "12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=="), + + // Playground settings + code: "", // Automatically loaded and executed code for the playground }; // Auto-override any settings from the URL diff --git a/frontend/tools/PlaygroundDialogContent.vue b/frontend/tools/PlaygroundDialogContent.vue new file mode 100644 index 0000000..741359b --- /dev/null +++ b/frontend/tools/PlaygroundDialogContent.vue @@ -0,0 +1,195 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/tools/Tools.vue b/frontend/tools/Tools.vue index 40c49a6..ed3422d 100644 --- a/frontend/tools/Tools.vue +++ b/frontend/tools/Tools.vue @@ -13,13 +13,14 @@ import { import OrientationGizmo from "./OrientationGizmo.vue"; import type {PerspectiveCamera} from "three/src/cameras/PerspectiveCamera.js"; import {OrthographicCamera} from "three/src/cameras/OrthographicCamera.js"; -import {mdiClose, mdiCrosshairsGps, mdiDownload, mdiGithub, mdiLicense, mdiProjector} from '@mdi/js' +import {mdiClose, mdiCrosshairsGps, mdiDownload, mdiGithub, mdiLicense, mdiProjector, mdiScriptTextPlay} from '@mdi/js' import SvgIcon from '@jamescoyle/vue-icon'; import type {ModelViewerElement} from '@google/model-viewer'; import Loading from "../misc/Loading.vue"; import type ModelViewerWrapper from "../viewer/ModelViewerWrapper.vue"; import {defineAsyncComponent, ref, type Ref} from "vue"; import type {SelectionInfo} from "./selection"; +import {settings} from "../misc/settings.ts"; const SelectionComponent = defineAsyncComponent({ loader: () => import("./Selection.vue"), @@ -34,10 +35,23 @@ const LicensesDialogContent = defineAsyncComponent({ delay: 0, }); +const PlaygroundDialogContent = defineAsyncComponent({ + loader: () => import("./PlaygroundDialogContent.vue"), + loadingComponent: Loading, + delay: 0, +}); + let props = defineProps<{ viewer: InstanceType | null }>(); const emit = defineEmits<{ findModel: [string] }>() +const sett = ref(null); +const showPlaygroundDialog = ref(false); +(async () => { + sett.value = await settings(); + return showPlaygroundDialog.value = sett.value.code != ""; +})(); + let selection: Ref> = ref([]); let selectionFaceCount = () => selection.value.filter((s) => s.kind == 'face').length let selectionEdgeCount = () => selection.value.filter((s) => s.kind == 'edge').length @@ -146,11 +160,23 @@ window.addEventListener('keydown', (event) => {
Extras
+ + + + (D)ownload Scene - +