diff --git a/components/calcModels.vue b/components/calcModels.vue index 80c9b16..030883a 100644 --- a/components/calcModels.vue +++ b/components/calcModels.vue @@ -12,10 +12,10 @@ const max_size = use_max_size() const controlsState = reactive({ distance: section_count.value, - minDistance: 20, - maxDistance: 20, + minDistance: 10, + maxDistance: 10, position: { x: 0, y: 0, z: 0 }, - enablePan: false, + // enablePan: false, minPolarAngle: degToRad(30), maxPolarAngle: degToRad(80), }) diff --git a/components/model/fence.vue b/components/model/fence.vue index 2729f5e..2e380e4 100644 --- a/components/model/fence.vue +++ b/components/model/fence.vue @@ -18,7 +18,7 @@ const pillar_size = 104 * 0.001 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 scale_koef = 2.5 +const scale_koef = 1 const show_pillar_one = ref(props.index == 1) const show_pillar_two = ref(true) @@ -71,8 +71,8 @@ watch([instanced_lamelle, fence_section, extra_section, lamelles_count, extra], if (i >= lamelles_count.value) { 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 } }); diff --git a/components/model/line.vue b/components/model/line.vue index da63898..3d430f9 100644 --- a/components/model/line.vue +++ b/components/model/line.vue @@ -22,14 +22,19 @@ const section_count = use_section_count() const extra_section = use_extra_section() const size = ref(new Vector3()) +const position = ref(new Vector3()) const total = ref((section_count.value + ~~(!!extra_section.value))) const count_pos = () => { - console.log('line count pos') total.value = (section_count.value + ~~(!!extra_section.value)) const line = seekByName(scene.value, `line_${props.number}`) + const ssize = new Vector3() if (line && line.children.length) { + line.updateMatrixWorld() + const bbox = new Box3() + bbox.expandByObject(line) + bbox.getSize(ssize) const fence = line.children[0]; if (fence) { const box = new Box3(); @@ -38,20 +43,40 @@ const count_pos = () => { }); 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(() => { count_pos() }) -watch(() => [props.count, section_count.value, extra_section.value], - count_pos -) +watch(() => [props.count, section_count.value, extra_section.value], count_pos)