From 566fd8752659068cd620b9169322164849d32c13 Mon Sep 17 00:00:00 2001 From: Poovizhi99 Date: Thu, 5 Jun 2025 18:07:05 +0530 Subject: [PATCH] streamline aisle filtering logic in PolygonGenerator and enhance navigation error handling --- .../vehicle/navMesh/navMeshDetails.tsx | 2 +- .../vehicle/navMesh/polygonGenerator.tsx | 29 +++++++++---------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/app/src/modules/simulation/vehicle/navMesh/navMeshDetails.tsx b/app/src/modules/simulation/vehicle/navMesh/navMeshDetails.tsx index 002df3f..274b7ba 100644 --- a/app/src/modules/simulation/vehicle/navMesh/navMeshDetails.tsx +++ b/app/src/modules/simulation/vehicle/navMesh/navMeshDetails.tsx @@ -56,7 +56,7 @@ export default function NavMeshDetails({ // scene.add(debugDrawer); } catch (error) { echo.error("Failed to initialize navigation") - } + } }; initializeNavigation(); diff --git a/app/src/modules/simulation/vehicle/navMesh/polygonGenerator.tsx b/app/src/modules/simulation/vehicle/navMesh/polygonGenerator.tsx index 941b8be..7f3f6dd 100644 --- a/app/src/modules/simulation/vehicle/navMesh/polygonGenerator.tsx +++ b/app/src/modules/simulation/vehicle/navMesh/polygonGenerator.tsx @@ -19,25 +19,24 @@ export default function PolygonGenerator({ let allLines = arrayLinesToObject(lines.current); const wallLines = allLines?.filter((line) => line?.type === "WallLine"); const aisleLines = allLines?.filter((line) => line?.type === "AisleLine") - // const aisleLines = allLines?.filter((line) => line?.type === "AisleLine") - console.log('aisles: ', aisles.map((aisle) => aisle.points.map((point) => point.position))); - const result = aisles.map((aisle) => - aisle.points.map((point) => ({ - position: [point.position[0], point.position[2]], - uuid: point.pointUuid, - })) - ); + const result = aisles + .filter( + (aisle) => + aisle.type.aisleType === "dotted-aisle" || + aisle.type.aisleType === "solid-aisle" || + aisle.type.aisleType === "dashed-aisle" || + aisle.type.aisleType === "arc-aisle" + ) + .map((aisle) => + aisle.points.map((point) => ({ + position: [point.position[0], point.position[2]], + uuid: point.pointUuid, + })) + ); const wallPoints = wallLines .map((pair) => pair?.line.map((vals) => vals.position)) .filter((wall): wall is THREE.Vector3[] => !!wall); - // const result = aisleLines.map((pair) => - // pair?.line.map((point) => ({ - // position: [point.position.x, point.position.z], - // uuid: point.uuid, - // })) - // ); - if (!result || result.some((line) => !line)) { return;