package com.algo.service; import com.algo.model.PlannedPath; import java.util.List; import java.util.Map; /** * 路径规划器接口 * 定义AGV路径规划方法 */ public interface PathPlanner { /** * 规划单个AGV的路径 * * @param startCode 起始路径点ID * @param endCode 目标路径点ID * @param constraints 约束条件列表 [x, y, radius] * @return 规划的路径,失败返回null */ PlannedPath planPath(String startCode, String endCode, List constraints); /** * 规划单个AGV的路径(无约束条件) * * @param startCode 起始路径点ID * @param endCode 目标路径点ID * @return 规划的路径,失败返回null */ PlannedPath planPath(String startCode, String endCode); /** * 验证路径点是否有效 * * @param pathCode 路径点ID * @return true如果路径点有效 */ boolean isValidPathPoint(String pathCode); /** * 计算两个路径点之间的距离 * * @param startCode 起始路径点ID * @param endCode 目标路径点ID * @return 距离值,无效路径点返回-1 */ double calculateDistance(String startCode, String endCode); /** * 获取路径映射信息 * * @return 路径映射表 */ Map> getPathMapping(); /** * 获取邻接点列表 * * @param pathCode 路径点ID * @return 邻接点列表及其方向 */ List> getNeighbors(String pathCode); }