dev #84

Merged
ksenia_mikhailova merged 141 commits from dev into main 2024-10-03 15:30:24 +03:00
3 changed files with 16 additions and 13 deletions
Showing only changes of commit 280a2cc09a - Show all commits

View File

@ -13,7 +13,7 @@ const max_size = use_max_size()
const controlsState = reactive({ const controlsState = reactive({
distance: section_count.value, distance: section_count.value,
minDistance: 10, minDistance: 10,
maxDistance: 10, maxDistance: 20,
position: { x: 0, y: 0, z: 0 }, position: { x: 0, y: 0, z: 0 },
// enablePan: false, // enablePan: false,
minPolarAngle: degToRad(30), minPolarAngle: degToRad(30),
@ -22,7 +22,7 @@ const controlsState = reactive({
const cameraStat = reactive({ const cameraStat = reactive({
position: [-4, 2, 8], position: [-4, 2, 8],
aspect: 1920 / 600, aspect: 1920 / 600,
fov: 40, // fov: 40,
}) })
const pointLight = ref() const pointLight = ref()

View File

@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { BufferGeometry, Matrix4, Vector2, Vector3 } from 'three'; import { BufferGeometry, Matrix4, Vector2, Vector3 } from 'three';
const props = defineProps(['index', 'models', 'last_element']) const props = defineProps(['index', 'models', 'last_element', 'first_element'])
const lamelle_height = use_lamelle_height() const lamelle_height = use_lamelle_height()
const lamelles_count = use_lamelles_count() const lamelles_count = use_lamelles_count()
@ -19,7 +19,7 @@ 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 = 1 const scale_koef = 1
const show_pillar_one = ref(props.index == 1) const show_pillar_one = ref(props.first_element)
const show_pillar_two = ref(true) const show_pillar_two = ref(true)
const getExtraValue = () => (extra_section.value && props.last_element) ? extra_section.value * 0.001 : false const getExtraValue = () => (extra_section.value && props.last_element) ? extra_section.value * 0.001 : false

View File

@ -8,11 +8,11 @@ const rotate = () => {
case 1: case 1:
return degToRad(0) return degToRad(0)
case 2: case 2:
return degToRad(90) return degToRad(180)
case 3: case 3:
return degToRad(270) return degToRad(270)
case 4: case 4:
return degToRad(180) return degToRad(90)
} }
} }
const { seekByName } = useSeek() const { seekByName } = useSeek()
@ -29,6 +29,7 @@ const count_pos = () => {
const line = seekByName(scene.value, `line_${props.number}`) const line = seekByName(scene.value, `line_${props.number}`)
const line_size = new Vector3() const line_size = new Vector3()
const line_pos = new Vector3() const line_pos = new Vector3()
const line_lpos = new Vector3()
if (line && line.children.length) { if (line && line.children.length) {
line.updateMatrixWorld() line.updateMatrixWorld()
new Box3().expandByObject(line).getSize(line_size) new Box3().expandByObject(line).getSize(line_size)
@ -43,19 +44,20 @@ const count_pos = () => {
line1.getWorldPosition(line1_pos) line1.getWorldPosition(line1_pos)
console.log('first', line1, line1_size, line1_pos) console.log('first', line1, line1_size, line1_pos)
} }
const k = ((line1_size.x / props.count) - line1_size.z) * 0.5
switch (props.number) { switch (props.number) {
case 1: break; case 1: break;
case 2: case 2:
// position.value.x = line_size.y position.value.z = line1_size.x * -1
position.value.z = line1_size.z * -1 position.value.x = line1_size.x - k * 2
break; break;
case 3: case 3:
position.value.z = line1_size.x * -1 position.value.z = line1_size.x * -1 + k
position.value.x = line1_size.x position.value.x = -1 * k
break; break;
case 4: case 4:
position.value.z = line1_size.x * -1 position.value.z = -1 * k
position.value.x = line1_size.x position.value.x = line1_size.x - k
break; break;
} }
} }
@ -71,7 +73,8 @@ watch(() => [props.count, section_count.value, extra_section.value], count_pos)
<template v-if="(i + (props.number - 1) * props.count) <= total" <template v-if="(i + (props.number - 1) * props.count) <= total"
:key="(i + (props.number - 1) * props.count)"> :key="(i + (props.number - 1) * props.count)">
<ModelFence :index="i" :models="props.models" <ModelFence :index="i" :models="props.models"
:last_element="(i + (props.number - 1) * props.count) == total" /> :last_element="(i + (props.number - 1) * props.count) == total"
:first_element="i == 1 && props.count == 1" />
</template> </template>
</template> </template>
</TresGroup> </TresGroup>