From 9cc01d06433601bad030feb4041f777153926ba8 Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Mon, 1 Jul 2024 09:43:37 +0300 Subject: [PATCH 1/5] new files --- .vscode/PythonImportHelper-v2-Completion.json | 25 +++++++++++++++++++ back/object/models.py | 7 +++--- front/src/stores/promo_scene.ts | 12 +++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 front/src/stores/promo_scene.ts diff --git a/.vscode/PythonImportHelper-v2-Completion.json b/.vscode/PythonImportHelper-v2-Completion.json index 11fd02a..5e11184 100644 --- a/.vscode/PythonImportHelper-v2-Completion.json +++ b/.vscode/PythonImportHelper-v2-Completion.json @@ -120,6 +120,22 @@ "detail": "django.db", "documentation": {} }, + { + "label": "migrations", + "importPath": "django.db", + "description": "django.db", + "isExtraImport": true, + "detail": "django.db", + "documentation": {} + }, + { + "label": "models", + "importPath": "django.db", + "description": "django.db", + "isExtraImport": true, + "detail": "django.db", + "documentation": {} + }, { "label": "models", "importPath": "django.db", @@ -1077,6 +1093,15 @@ "detail": "back.object.migrations.0004_alter_clickablearea_target_name", "documentation": {} }, + { + "label": "Migration", + "kind": 6, + "importPath": "back.object.migrations.0005_scene3d_hdr_gainmap_scene3d_hdr_json_and_more", + "description": "back.object.migrations.0005_scene3d_hdr_gainmap_scene3d_hdr_json_and_more", + "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0004_alter_clickablearea_target_name'),\n ]\n operations = [\n migrations.AddField(\n model_name='scene3d',\n name='hdr_gainmap',\n field=models.FileField(blank=True, null=True, upload_to=''),\n ),", + "detail": "back.object.migrations.0005_scene3d_hdr_gainmap_scene3d_hdr_json_and_more", + "documentation": {} + }, { "label": "Scene3DAdmin", "kind": 6, diff --git a/back/object/models.py b/back/object/models.py index eb2a24d..836febb 100644 --- a/back/object/models.py +++ b/back/object/models.py @@ -35,9 +35,10 @@ class Scene3D(models.Model): max_distance = models.IntegerField( validators=[MinValueValidator(2), MaxValueValidator(1000)], blank=True, null=True ) - gainmap = models.FileField() - json = models.FileField() - webp = models.FileField() + + hdr_gainmap = models.FileField(blank=True, null=True) + hdr_json = models.FileField(blank=True, null=True) + hdr_webp = models.FileField(blank=True, null=True) def __str__(self): diff --git a/front/src/stores/promo_scene.ts b/front/src/stores/promo_scene.ts new file mode 100644 index 0000000..d6c5777 --- /dev/null +++ b/front/src/stores/promo_scene.ts @@ -0,0 +1,12 @@ +import { defineStore } from 'pinia' + +export const usePromoScene = defineStore('promo_scene', { + state: () => { + return [] as PromoScene[] + }, + actions: { + setData(data: PromoScene[]) { + this.$state = data + } + } +}) From 27fea6f0ed73a1eb8e18350443e7cff1d171412b Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Mon, 1 Jul 2024 10:06:52 +0300 Subject: [PATCH 2/5] sidebar with elements --- front/src/components/Promo/load_models.vue | 6 +++ front/src/components/Promo/sidebar.vue | 57 ++++++++++++++++------ front/src/index.d.ts | 12 ++++- front/src/stores/promo_scene.ts | 4 +- front/src/stores/promo_sidebar.ts | 6 +-- 5 files changed, 62 insertions(+), 23 deletions(-) diff --git a/front/src/components/Promo/load_models.vue b/front/src/components/Promo/load_models.vue index 7ecd0d3..07ce951 100644 --- a/front/src/components/Promo/load_models.vue +++ b/front/src/components/Promo/load_models.vue @@ -6,6 +6,7 @@ import { useGLTF } from '@tresjs/cientos' import { IMAGE_URL, SERVER_URL, } from '../../constants' import { usePromoSidebar } from '../../stores/promo_sidebar'; +import { usePromoScene } from '../../stores/promo_scene'; const props = defineProps(['source', 'loaded', 'loaded_pan']) @@ -22,6 +23,7 @@ const clickable = ref([]) const clickable_objects = ref([]) const clickable_items = ref([]) const sidebar = usePromoSidebar(); +const sidebar_scene = usePromoScene() const { controls, camera, scene } = useTresContext() const { seekByName } = useSeek() @@ -39,8 +41,10 @@ const loadModels = async () => { camera.value?.position.set(1, 1, 1); camera.value?.lookAt(new Vector3(1, 1, 1)); + const sidebar_items = [] for (let index = 0; index < data.length; index++) { const element = data[index]; + sidebar_items.push({ ...element, is_enabled: true }) const item = {} as model3DType item.modelUrl = `${IMAGE_URL}/${element.model_file}` @@ -55,6 +59,8 @@ const loadModels = async () => { const clickable_areas = await res.json() clickable.value.push(...clickable_areas) } + sidebar_scene.setData(sidebar_items) + sidebar.open() for (let index = 0; index < clickable.value.length; index++) { const element = clickable.value[index]; diff --git a/front/src/components/Promo/sidebar.vue b/front/src/components/Promo/sidebar.vue index 827fc71..3ee5b05 100644 --- a/front/src/components/Promo/sidebar.vue +++ b/front/src/components/Promo/sidebar.vue @@ -3,10 +3,12 @@ import { ref } from 'vue'; import { RouterLink } from 'vue-router'; import { onClickOutside } from '@vueuse/core' import { usePromoSidebar } from '../../stores/promo_sidebar'; +import { usePromoScene } from '../../stores/promo_scene'; const sidebar = usePromoSidebar() +const scene = usePromoScene() const sidebar_obj = ref() - +console.log(scene.list) // onClickOutside(sidebar_obj, () => sidebar.close())