From 75b88efe87b4734e76ee0e8e5c951773f43e2cd1 Mon Sep 17 00:00:00 2001 From: Poovizhi99 Date: Fri, 4 Apr 2025 16:53:57 +0530 Subject: [PATCH] added buffer in agv --- app/src/modules/builder/agv/agv.tsx | 5 ++- .../modules/builder/agv/navMeshDetails.tsx | 6 ++-- app/src/modules/builder/agv/pathNavigator.tsx | 34 ++++++++++++------- .../assest/assets/getCategoryAsset.ts | 4 +-- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/app/src/modules/builder/agv/agv.tsx b/app/src/modules/builder/agv/agv.tsx index 6218662..6d81cf8 100644 --- a/app/src/modules/builder/agv/agv.tsx +++ b/app/src/modules/builder/agv/agv.tsx @@ -23,6 +23,7 @@ const Agv = ({ modelSpeed: number; bufferTime: number; points: { x: number; y: number; z: number }[]; + hitCount: number; }[] >([]); const { simulationPaths } = useSimulationPaths(); @@ -34,7 +35,7 @@ const Agv = ({ (val: any) => val.modelName === "agv" ); - console.log("agvModels: ", agvModels); + let findMesh = agvModels.filter( (val: any) => val.modeluuid === selectedActionSphere?.path?.modeluuid && @@ -55,6 +56,7 @@ const Agv = ({ modelUuid: findMesh[0].modeluuid, // Ensure it's a number modelSpeed: findMesh[0].point.speed, bufferTime: findMesh[0].point.actions.buffer, + hitCount: findMesh[0].point.actions.hitCount, points: [ { x: findMesh[0].position[0], @@ -122,6 +124,7 @@ const Agv = ({ key={i} speed={pair.modelSpeed} bufferTime={pair.bufferTime} + hitCount={pair.hitCount} /> {/* {pair.points.length > 2 && ( <> diff --git a/app/src/modules/builder/agv/navMeshDetails.tsx b/app/src/modules/builder/agv/navMeshDetails.tsx index ecb539b..51f751e 100644 --- a/app/src/modules/builder/agv/navMeshDetails.tsx +++ b/app/src/modules/builder/agv/navMeshDetails.tsx @@ -33,11 +33,9 @@ export default function NavMeshDetails({ const meshes = groupRef?.current?.children as THREE.Mesh[]; const [positions, indices] = getPositionsAndIndices(meshes); - - const cs = 0.25; - const ch = 0.69; + const cs = 0.35; + const ch = 0.7; const walkableRadius = 0.5; - const { success, navMesh } = generateSoloNavMesh(positions, indices, { cs, ch, diff --git a/app/src/modules/builder/agv/pathNavigator.tsx b/app/src/modules/builder/agv/pathNavigator.tsx index a83b690..65a299b 100644 --- a/app/src/modules/builder/agv/pathNavigator.tsx +++ b/app/src/modules/builder/agv/pathNavigator.tsx @@ -12,6 +12,7 @@ interface PathNavigatorProps { id: string; speed: number; bufferTime: number; + hitCount: number; } export default function PathNavigator({ @@ -20,6 +21,7 @@ export default function PathNavigator({ id, speed, bufferTime, + hitCount, }: PathNavigatorProps) { const [path, setPath] = useState<[number, number, number][]>([]); const progressRef = useRef(0); @@ -32,7 +34,7 @@ export default function PathNavigator({ const [startPoint, setStartPoint] = useState(new THREE.Vector3()); const isWaiting = useRef(false); // Flag to track waiting state const delayTime = bufferTime; - + const movingForward = useRef(true); // Tracks whether the object is moving forward // Compute distances and total distance when the path changes useEffect(() => { @@ -52,6 +54,7 @@ export default function PathNavigator({ progressRef.current = 0; }, [path]); + // Compute the path using NavMeshQuery useEffect(() => { if (!navMesh || selectedPoints.length === 0) return; @@ -119,17 +122,22 @@ export default function PathNavigator({ if (!isWaiting.current) { isWaiting.current = true; // Set waiting flag - setTimeout(() => { - progressRef.current = 0; // Reset progress - movingForward.current = !movingForward.current; // Toggle direction - - // Reverse the path and distances arrays - path.reverse(); - distancesRef.current.reverse(); - - // Reset the waiting flag - isWaiting.current = false; - }, delayTime * 1000); // Convert seconds to milliseconds + if (movingForward.current) { + // Moving forward: reached the end, wait for `delay` + // console.log( + // "Reached end position. Waiting for delay:", + // delayTime, + // "seconds" + // ); + setTimeout(() => { + // After delay, reverse direction + movingForward.current = false; + progressRef.current = 0; // Reset progress + path.reverse(); // Reverse the path + distancesRef.current.reverse(); + isWaiting.current = false; // Reset waiting flag + }, delayTime * 1000); // Wait for `delay` seconds + } } return; } @@ -154,7 +162,7 @@ export default function PathNavigator({ findObject.position.copy(startPoint); } }); - + return ( <> {path.length > 0 && ( diff --git a/app/src/services/factoryBuilder/assest/assets/getCategoryAsset.ts b/app/src/services/factoryBuilder/assest/assets/getCategoryAsset.ts index a1ac727..2685ca4 100644 --- a/app/src/services/factoryBuilder/assest/assets/getCategoryAsset.ts +++ b/app/src/services/factoryBuilder/assest/assets/getCategoryAsset.ts @@ -1,8 +1,8 @@ -let BackEnd_url = `http://${process.env.REACT_APP_SERVER_ASSET_LIBRARY_URL}`; +let BackEnd_url = `http://${process.env.REACT_APP_SERVER_MARKETPLACE_URL}`; export const getCategoryAsset = async (categoryName: any) => { try { const response = await fetch( - `${BackEnd_url}/api/v2/getCatagoryAssets/${categoryName}`, + `${BackEnd_url}/api/v2/getCategoryAssets/${categoryName}`, { method: "GET", headers: {