bx-1480-calc #81

Merged
ksenia_mikhailova merged 6 commits from bx-1480-calc into dev 2024-10-02 11:16:15 +03:00
11 changed files with 17 additions and 15 deletions

View File

@ -56,15 +56,10 @@ onMounted(() => {
<TresCanvas height="600"> <TresCanvas height="600">
<TresPerspectiveCamera :position="[-7, 2, 4]" ref="camera" /> <TresPerspectiveCamera :position="[-7, 2, 4]" ref="camera" />
<OrbitControls v-bind="controlsState" ref="controls" make-default /> <OrbitControls v-bind="controlsState" ref="controls" make-default />
<ModelEnv />
<Suspense> <Suspense>
<ModelDiagram /> <ModelDiagram />
</Suspense> </Suspense>
<TresPointLight v-bind="back_light" v-if="back_light"
:position="[back_light.position.x, back_light.position.y, back_light.position.z]" />
<TresPointLight v-bind="secondary_light" v-if="secondary_light"
:position="[secondary_light.position.x, secondary_light.position.y, secondary_light.position.z]" />
<!-- <TresAmbientLight :intensity="2" /> -->
</TresCanvas> </TresCanvas>
</ClientOnly> </ClientOnly>
<div class="canvas-icons"> <div class="canvas-icons">

View File

@ -189,7 +189,7 @@ const total_txt = computed(() => {
if (isTopper) decor.topper = { txt: 'Колпак', value: getTopperName(pillar_topper.value) } if (isTopper) decor.topper = { txt: 'Колпак', value: getTopperName(pillar_topper.value) }
} }
const total = [extra, regular, decor].map(item => Object.values(item).map(el => el ? el.value : 0)).flat().reduce((a, b) => a + b, 0) const total = [extra, regular].map(item => Object.values(item).map(el => el ? el.value : 0)).flat().reduce((a, b) => a + b, 0)
const res_regular = Object.values(regular).map(item => const res_regular = Object.values(regular).map(item =>
Object.entries(item).map(el => el[0] == 'value' ? roubleSign.format(el[1] as number) : el[1]).join(': ') Object.entries(item).map(el => el[0] == 'value' ? roubleSign.format(el[1] as number) : el[1]).join(': ')

View File

@ -25,8 +25,8 @@ const { scene: verh } = await useGLTF('/models_exp/verh.glb')
const lamelle_color = use_lamelle_color() const lamelle_color = use_lamelle_color()
const pillar_color = use_pillar_color() const pillar_color = use_pillar_color()
set_material(planki, getColorHexFromRal(lamelle_color.value)); set_material(planki, getColorHexFromRal(lamelle_color.value), undefined, false);
[stolb, verh, krepleniye_planok].map(el => set_material(el, getColorHexFromRal(pillar_color.value))) [stolb, verh, krepleniye_planok].map(el => set_material(el, getColorHexFromRal(pillar_color.value), undefined, false))
</script> </script>
<template> <template>

View File

@ -142,7 +142,7 @@ const setPillar = () => {
pillar_inner.scale.setComponent(1, lamelles_count.value); pillar_inner.scale.setComponent(1, lamelles_count.value);
const bottom = props.models.pillar_bottom.children[0]; const bottom = props.models.pillar_bottom.children[0];
bottom.position.setComponent(1, lSize * -1); bottom.position.setComponent(1, lSize * -0.5);
let arr = [top, pillar_outer, pillar_inner, bottom] let arr = [top, pillar_outer, pillar_inner, bottom]
arr.map(el => { arr.map(el => {

View File

@ -1,7 +1,7 @@
export const toppers = [ export const toppers = [
{ name: 'Ровный', filename: 'icon_stolb_verh_3.svg', model: 'top' }, { name: 'Ровный', filename: 'icon_stolb_verh_3.svg', model: 'top' },
{ name: 'Вершина 1', filename: 'icon_stolb_verh_2.svg', model: 'decor1' }, { name: 'Вершина 1', filename: 'icon_stolb_verh_2.svg', model: 'decor1' },
{ name: 'Вершина 2', filename: 'icon_stolb_verh_1.svg', model: 'decor3' }, { name: 'Вершина 2', filename: 'icon_stolb_verh_1.svg', model: 'decor2' },
].map((el, i) => Object.assign(el, { id: i })) ].map((el, i) => Object.assign(el, { id: i }))
export const getFilename = (id: toppersIds) => { export const getFilename = (id: toppersIds) => {

Binary file not shown.

Binary file not shown.

View File

@ -75,12 +75,18 @@ const m_onBeforeCompile = (shader: WebGLProgramParameters) => {
` `
); );
}; };
export const set_material = (scene: any, color: any, pattern: { pattern: patternIds, count: number } | undefined = undefined) => { export const set_material = (
scene: any,
color: any,
pattern: { pattern: patternIds, count: number } | undefined = undefined,
noise_material: boolean = true,
) => {
let c = color let c = color
const material = noiseMaterial.clone() const material = noiseMaterial.clone()
material.color = new Color(c || '#9c9c00') material.color = new Color(c || '#9c9c00')
material.onBeforeCompile = m_onBeforeCompile if (noise_material) {
material.onBeforeCompile = m_onBeforeCompile
}
const promises = [] const promises = []
if (pattern && pattern.pattern !== undefined) { if (pattern && pattern.pattern !== undefined) {
@ -93,6 +99,7 @@ export const set_material = (scene: any, color: any, pattern: { pattern: pattern
res.repeat.set(1, pattern.count); res.repeat.set(1, pattern.count);
res.needsUpdate = true res.needsUpdate = true
material.alphaMap = res material.alphaMap = res
scene.renderOrder = 0
return res return res
}) })
} }