pillar recolor

This commit is contained in:
Kseninia Mikhaylova 2024-09-26 08:48:09 +03:00
parent ff2c9c34d1
commit ec4db1497b
2 changed files with 23 additions and 18 deletions

View File

@ -1,5 +1,5 @@
<script setup lang="ts">
import { BufferGeometry, Matrix4, Vector2, Vector3 } from 'three';
import { BufferGeometry, Matrix4, Object3D, Vector2, Vector3 } from 'three';
const props = defineProps(['index', 'models', 'last_element', 'first_element'])
@ -83,21 +83,26 @@ watch([section_count, fence_section, extra_section], () => {
}
})
// дуе { fence_top, fence, fence_inner, fence_bottom } = props.models
const fence_top = props.models.fence_top.clone()
const fence = props.models.fence.clone()
const fence_inner = props.models.fence_inner.clone()
const fence_bottom = props.models.fence_bottom.clone()
const fastening = props.models.fastening.clone()
const top = props.models.top.clone()
fence_inner.name = 'fence_inner'
const pillar: any[] = [fence_top.children[0], fence.children[0], fence_inner.children[0], fence_bottom.children[0]]
pillar[0].position.setComponent(1, lSize * -0.5)
pillar[1].scale.setComponent(1, lamelles_count.value)
pillar[2].scale.setComponent(1, lamelles_count.value)
pillar[3].position.setComponent(1, lSize * lamelles_count.value)
const pillar: Ref<Object3D[]> = ref([])
const setPillar = () => {
pillar.value = [
props.models.fence_top.children[0],
props.models.fence.children[0],
props.models.fence_inner.children[0],
props.models.fence_bottom.children[0],
]
pillar.value[0].position.setComponent(1, lSize * -0.5)
pillar.value[1].scale.setComponent(1, lamelles_count.value)
pillar.value[2].scale.setComponent(1, lamelles_count.value)
pillar.value[3].position.setComponent(1, lSize * lamelles_count.value)
}
setPillar()
watch([props.models.fence_top, props.models.fence, props.models.fence_inner, props.models.fence_bottom], () => {
setPillar()
})
</script>
<template>
<TresGroup :scale="scale_koef" :position-x="translate_to_section" :name="`fence ${index}`" :position-y="0">

View File

@ -30,11 +30,11 @@ const recolorLamelles = () => {
const recolorPillar = () => {
[
top, fastening, fence, fence_bottom, fence_top,
...seekAll(scene.value, 'name', "pillar_one"),
...seekAll(scene.value, 'name', "pillar_two"),
...seekAll(scene.value, 'name', "lam_fastening_one"),
...seekAll(scene.value, 'name', "lam_fastening_two"),
...seekAll(scene.value, 'name', "top_section"),
// ...seekAll(scene.value, 'name', "pillar_one"),
// ...seekAll(scene.value, 'name', "pillar_two"),
// ...seekAll(scene.value, 'name', "lam_fastening_one"),
// ...seekAll(scene.value, 'name', "lam_fastening_two"),
// ...seekAll(scene.value, 'name', "top_section"),
].map((el: Object3D) => { set_material(el, getColorHexFromRal(pillar_color.value)) });
}