dev #84
|
@ -12,10 +12,10 @@ const max_size = use_max_size()
|
||||||
|
|
||||||
const controlsState = reactive({
|
const controlsState = reactive({
|
||||||
distance: section_count.value,
|
distance: section_count.value,
|
||||||
minDistance: 20,
|
minDistance: 10,
|
||||||
maxDistance: 20,
|
maxDistance: 10,
|
||||||
position: { x: 0, y: 0, z: 0 },
|
position: { x: 0, y: 0, z: 0 },
|
||||||
enablePan: false,
|
// enablePan: false,
|
||||||
minPolarAngle: degToRad(30),
|
minPolarAngle: degToRad(30),
|
||||||
maxPolarAngle: degToRad(80),
|
maxPolarAngle: degToRad(80),
|
||||||
})
|
})
|
||||||
|
|
|
@ -18,7 +18,7 @@ const pillar_size = 104 * 0.001
|
||||||
const pillar_one_pos = ref(fence_section.value * -0.5 - 0.015)
|
const pillar_one_pos = ref(fence_section.value * -0.5 - 0.015)
|
||||||
const pillar_two_pos = ref(fence_section.value * 0.5 + pillar_size + bSize - 0.01)
|
const pillar_two_pos = ref(fence_section.value * 0.5 + pillar_size + bSize - 0.01)
|
||||||
|
|
||||||
const scale_koef = 2.5
|
const scale_koef = 1
|
||||||
const show_pillar_one = ref(props.index == 1)
|
const show_pillar_one = ref(props.index == 1)
|
||||||
const show_pillar_two = ref(true)
|
const show_pillar_two = ref(true)
|
||||||
|
|
||||||
|
@ -71,9 +71,9 @@ watch([instanced_lamelle, fence_section, extra_section, lamelles_count, extra],
|
||||||
if (i >= lamelles_count.value) {
|
if (i >= lamelles_count.value) {
|
||||||
instanced_lamelle.value.setMatrixAt(i, new Matrix4().makeTranslation(new Vector3(0, 20, 20)));
|
instanced_lamelle.value.setMatrixAt(i, new Matrix4().makeTranslation(new Vector3(0, 20, 20)));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
instanced_lamelle.value.instanceMatrix.needsUpdate = true
|
instanced_lamelle.value.instanceMatrix.needsUpdate = true
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
watch([section_count, fence_section, extra_section], () => {
|
watch([section_count, fence_section, extra_section], () => {
|
||||||
|
|
|
@ -22,14 +22,19 @@ const section_count = use_section_count()
|
||||||
const extra_section = use_extra_section()
|
const extra_section = use_extra_section()
|
||||||
|
|
||||||
const size = ref(new Vector3())
|
const size = ref(new Vector3())
|
||||||
|
const position = ref(new Vector3())
|
||||||
const total = ref((section_count.value + ~~(!!extra_section.value)))
|
const total = ref((section_count.value + ~~(!!extra_section.value)))
|
||||||
|
|
||||||
const count_pos = () => {
|
const count_pos = () => {
|
||||||
console.log('line count pos')
|
|
||||||
total.value = (section_count.value + ~~(!!extra_section.value))
|
total.value = (section_count.value + ~~(!!extra_section.value))
|
||||||
|
|
||||||
const line = seekByName(scene.value, `line_${props.number}`)
|
const line = seekByName(scene.value, `line_${props.number}`)
|
||||||
|
const ssize = new Vector3()
|
||||||
if (line && line.children.length) {
|
if (line && line.children.length) {
|
||||||
|
line.updateMatrixWorld()
|
||||||
|
const bbox = new Box3()
|
||||||
|
bbox.expandByObject(line)
|
||||||
|
bbox.getSize(ssize)
|
||||||
const fence = line.children[0];
|
const fence = line.children[0];
|
||||||
if (fence) {
|
if (fence) {
|
||||||
const box = new Box3();
|
const box = new Box3();
|
||||||
|
@ -38,20 +43,40 @@ const count_pos = () => {
|
||||||
});
|
});
|
||||||
box.getSize(size.value)
|
box.getSize(size.value)
|
||||||
}
|
}
|
||||||
line.updateMatrixWorld()
|
}
|
||||||
|
console.log(`${props.number} ${JSON.stringify(size.value)} ${JSON.stringify(ssize)}`)
|
||||||
|
switch (props.number) {
|
||||||
|
case 1: break;
|
||||||
|
case 2:
|
||||||
|
// position.value.x = size.value.z * props.count
|
||||||
|
// position.value.z = size.value.z * props.count
|
||||||
|
position.value.x = ssize.z * -1
|
||||||
|
position.value.z = ssize.z
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// position.value.x = size.value.x * props.count * 3
|
||||||
|
// position.value.z = size.value.x * props.count * 1 * -1
|
||||||
|
position.value.x = ssize.x
|
||||||
|
position.value.z = ssize.x * -1
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
// position.value.x = size.value.y * props.count * 0.25 * -1
|
||||||
|
// position.value.z = size.value.y * props.count * 3 * -1
|
||||||
|
position.value.x = ssize.y
|
||||||
|
position.value.z = ssize.y * -1
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
count_pos()
|
count_pos()
|
||||||
})
|
})
|
||||||
watch(() => [props.count, section_count.value, extra_section.value],
|
watch(() => [props.count, section_count.value, extra_section.value], count_pos)
|
||||||
count_pos
|
|
||||||
)
|
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<TresGroup :name="`line_${props.number}`">
|
<TresGroup :name="`line_${props.number}`" :rotate-y="rotate()" :position-z="position.z" :position-x="position.x">
|
||||||
<template v-for="i in props.count">
|
<template v-for="i in props.count">
|
||||||
<template v-if="(i + (props.number - 1) * props.count) <= total" :key="(i + (props.number - 1) * props.count)">
|
<template v-if="(i + (props.number - 1) * props.count) <= total"
|
||||||
|
:key="(i + (props.number - 1) * props.count)">
|
||||||
<ModelFence :index="i + (props.number - 1) * props.count" :models="props.models" />
|
<ModelFence :index="i + (props.number - 1) * props.count" :models="props.models" />
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -135,9 +135,9 @@ watch(lamelle_count, () => {
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<TresGroup name="base">
|
<TresGroup name="base">
|
||||||
<template v-for="line in (total >= 4) ? 4 : 1" :key="count">
|
<template v-for="line in (total >= 4) ? 4 : 1" :key="`${line}_${count}`">
|
||||||
<ModelLine :models="{ top, fence, fence_top, fence_bottom, fence_inner, fastening, lamelle }" :number="line"
|
<ModelLine :models="{ top, fence, fence_top, fence_bottom, fence_inner, fastening, lamelle }" :number="line"
|
||||||
:count="count" :position-z="line * 2" />
|
:count="count" />
|
||||||
</template>
|
</template>
|
||||||
</TresGroup>
|
</TresGroup>
|
||||||
</template>
|
</template>
|
Loading…
Reference in New Issue