From e8334c3603bc9fd88b9f5e21e221323cd807a76d Mon Sep 17 00:00:00 2001 From: Marcos Date: Tue, 28 Jul 2026 11:57:50 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20Auto-deploy:=20BrainWind=20atual?= =?UTF-8?q?izado=20em=2028/07/2026=2011:57:50?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/components/Warehouse3D.tsx | 8 ++++---- app/src/components/three/AirflowSystem.tsx | 10 +++++----- app/src/pages/GalpaoModule.tsx | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/components/Warehouse3D.tsx b/app/src/components/Warehouse3D.tsx index d7f6002..3cc3632 100644 --- a/app/src/components/Warehouse3D.tsx +++ b/app/src/components/Warehouse3D.tsx @@ -80,13 +80,13 @@ function WindDirectionIndicator({ angle, width, length, height }: { angle: numbe const isDark = useCanvasTheme() === 'dark'; const color = isDark ? "#38bdf8" : "#0284c7"; // Light blue / dark blue - // Angle 0: Wind blows along Z axis (Perpendicular à largura X) - // Angle 90: Wind blows along X axis (Paralelo à largura X) + // Angle 0: Vento bate na Parede C (Eixo X) - Perpendicular ao comprimento + // Angle 90: Vento bate na Parede A (Eixo Z) - Perpendicular à largura - const dir = angle === 0 ? new THREE.Vector3(0, 0, 1) : new THREE.Vector3(1, 0, 0); + const dir = angle === 90 ? new THREE.Vector3(0, 0, 1) : new THREE.Vector3(1, 0, 0); const distance = Math.max(width, length) * 0.6 + 5; - const startPos = angle === 0 ? new THREE.Vector3(0, height / 2, -distance) : new THREE.Vector3(-distance, height / 2, 0); + const startPos = angle === 90 ? new THREE.Vector3(0, height / 2, -distance) : new THREE.Vector3(-distance, height / 2, 0); const quat = new THREE.Quaternion(); quat.setFromUnitVectors(new THREE.Vector3(0, 1, 0), dir); diff --git a/app/src/components/three/AirflowSystem.tsx b/app/src/components/three/AirflowSystem.tsx index e723473..4cee957 100644 --- a/app/src/components/three/AirflowSystem.tsx +++ b/app/src/components/three/AirflowSystem.tsx @@ -61,9 +61,9 @@ export function AirflowSystem({ windAngle, width, length, height, permeabilityCa if (!meshRef.current) return; const time = state.clock.elapsedTime; - // Agora 0° é paralelo à Parede A (ao longo do eixo Z) - // E 90° é paralelo à Parede C (ao longo do eixo X) - const isZAxis = windAngle === 0; + // Agora 0° é paralelo à Parede A e bate na Parede C (Eixo X) + // E 90° é paralelo à Parede C e bate na Parede A (Eixo Z) + const isZAxis = windAngle === 90; const windDir = isZAxis ? new THREE.Vector3(0, 0, 1) : new THREE.Vector3(1, 0, 0); const halfW = width / 2; @@ -98,11 +98,11 @@ export function AirflowSystem({ windAngle, width, length, height, permeabilityCa // Colisão: Expulsar as partículas do interior com força (Desvio realístico) const isAirtight = permeabilityCase !== 'four-equally-permeable'; if (isAirtight) { - if (windAngle === 0 && pz < -halfL + margin) { + if (windAngle === 90 && pz < -halfL + margin) { deflectY = p.baseSpeed * 2.0; // Levanta pro telhado deflectX = px > 0 ? p.baseSpeed * 2.0 : -p.baseSpeed * 2.0; // Contorna laterais p.position.z -= p.baseSpeed * 1.5; // Impede de avançar - } else if (windAngle === 90 && px < -halfW + margin) { + } else if (windAngle === 0 && px < -halfW + margin) { deflectY = p.baseSpeed * 2.0; // Levanta pro telhado deflectZ = pz > 0 ? p.baseSpeed * 2.0 : -p.baseSpeed * 2.0; // Contorna laterais p.position.x -= p.baseSpeed * 1.5; // Impede de avançar diff --git a/app/src/pages/GalpaoModule.tsx b/app/src/pages/GalpaoModule.tsx index 7cdee01..7e79cb0 100644 --- a/app/src/pages/GalpaoModule.tsx +++ b/app/src/pages/GalpaoModule.tsx @@ -236,8 +236,8 @@ const GalpaoModule: React.FC = () => { - 0° (Perpendicular à largura) - 90° (Paralelo à largura) + 0° (Perpendicular ao comprimento) + 90° (Perpendicular à largura)