From 27fea6f0ed73a1eb8e18350443e7cff1d171412b Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Mon, 1 Jul 2024 10:06:52 +0300 Subject: [PATCH] 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())