diff --git a/components/calc/values.vue b/components/calc/values.vue
index e7910f3..cd65ad7 100644
--- a/components/calc/values.vue
+++ b/components/calc/values.vue
@@ -19,6 +19,7 @@ const section_count = use_section_count()
const extra_section = use_extra_section()
const total_length = use_total_length()
const min_length = use_min_length()
+const globalFenceType = useGlobalFenceType()
if (!pillar_color.value) {
const r = Math.floor(Math.random() * predefPillarColors.length)
@@ -205,7 +206,8 @@ const calc_table = computed(() => {
:goto_cam="new Vector3(1, 2, -1)" />
diff --git a/components/dropdown/list.vue b/components/dropdown/list.vue
index 2aa0af9..d553083 100644
--- a/components/dropdown/list.vue
+++ b/components/dropdown/list.vue
@@ -1,24 +1,39 @@
diff --git a/components/model/parametric.vue b/components/model/parametric.vue
index 4f65c82..ce23ab6 100644
--- a/components/model/parametric.vue
+++ b/components/model/parametric.vue
@@ -3,7 +3,7 @@ import { Object3D, Vector3 } from 'three';
//@ts-ignore
import { useGLTF, } from '@tresjs/cientos'
import type { OrbitControlsProps } from '@tresjs/cientos/dist/core/controls/OrbitControls.vue.js';
-import { getModel, toppers, type toppersIds } from '../topper';
+import { getModel, allToppers, baseToppers, aristoToppers, type toppersIds } from '../topper';
const section_count = use_section_count()
const extra_section = use_extra_section()
@@ -22,10 +22,16 @@ const { seek, seekAll } = useSeek()
const globalFenceType = useGlobalFenceType()
-const topper_models = {} as { [key: toppersIds]: Object3D }
-for await (const element of toppers) {
- const { scene } = await useGLTF(getModel(element.id))
- topper_models[element.id] = scene
+const topper_models = {
+ baseToppers: {} as { [key: toppersIds]: Object3D },
+ aristoToppers: {} as { [key: toppersIds]: Object3D },
+}
+for (const key of Object.keys(allToppers)) {
+ let toppers = allToppers[key]
+ for await (const element of toppers) {
+ const { scene } = await useGLTF(getModel(element.id, key))
+ topper_models[key][element.id] = scene
+ }
}
const { scene: model_pillar_center } = await useGLTF('/models_one/pillar/center.glb')
@@ -44,7 +50,7 @@ const { scene: lamelle_model_standart } = await useGLTF('/models_one/lamel_100.g
const { scene: lamelle_model_aristo } = await useGLTF('/models_one/lamel_100_aristo.glb', { draco: true });
const top = ref(top_model)
-const pillar_top = ref(topper_models[pillar_topper.value])
+const pillar_top = ref()
const pillar_center = ref(model_pillar_center)
const pillar_bottom = ref(model_pillar_bottom)
const pillar_inner = ref(model_pillar_inner)
@@ -54,9 +60,15 @@ const fastening_side = ref(model_fastening_side)
const fixing = ref(model_fixing)
const lamelle = ref(lamelle_model_standart)
-watch(pillar_topper, async () => {
- pillar_top.value = topper_models[pillar_topper.value]
-})
+const setPillarTopper = () => {
+ let key = 'baseToppers'
+ if (globalFenceType.value?.type == 'aristo') {
+ key = 'aristoToppers'
+ }
+ pillar_top.value = topper_models[key][pillar_topper.value]
+}
+setPillarTopper()
+watch(pillar_topper, setPillarTopper)
const total = ref((section_count.value + ~~(!!extra_section.value)))
const size = ref(Math.ceil(total.value / 4))
@@ -120,13 +132,17 @@ const min_for_square = 12;
setTarget()
const setLamelleType = () => {
- if (globalFenceType.value?.id == 5) {
+ if (globalFenceType.value?.type == 'standart') {
lamelle.value = lamelle_model_standart
lamelle_height.value = 0.115
+ pillar_topper.value = 0
+ setPillarTopper()
}
- if (globalFenceType.value?.id == 6) {
+ if (globalFenceType.value?.type == 'aristo') {
lamelle.value = lamelle_model_aristo
lamelle_height.value = 0.196
+ pillar_topper.value = 0
+ setPillarTopper()
}
}
setLamelleType()
@@ -134,7 +150,8 @@ watch(() => globalFenceType.value?.id, setLamelleType)
-
+
el.id == openTab.value) as ApiCalcType,
-
}
globalFenceType.value = v
})
diff --git a/public/models_one/shapka.glb b/public/models_one/pillar/topper/aristo1.glb
similarity index 100%
rename from public/models_one/shapka.glb
rename to public/models_one/pillar/topper/aristo1.glb