dev #84
|
@ -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()
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue