#pragma once #ifdef _WIN32 #ifdef WIREROUTINGDLL_EXPORTS // VisualStudio DLL 项目模板会将 _EXPORTS 添加到定义预处理器宏。 #define PATH_API __declspec(dllexport) // _WIN32 #else #define PATH_API __declspec(dllimport) #endif #else #define PATH_API #endif #include "BranchPoint.h" #include #include #include #include #include #include #include #include #include using namespace std; extern ClipSet PATH_API clipSet; extern BranchPointSet PATH_API branchPointSet; extern P PATH_API dirP(P &A); // 简单的路径信息,路径规划的直接结果 struct PATH_API Path { vector wirelist; // 路径中的线缆名 vector

points; // 路径上的点,包括卡箍和分支点 vector inOut; // 卡箍方向是正向为0,反向为1,分支点为-1 double dia; // 路径直径 Path(); // 返回path中点的数量 int size(); // 把路径中经过的卡箍和分支点都标记成使用过的状态 void markPoint(); // 固定所有经过的分支点 void fixBranchPoint(); // 检查路径合法性 void illegalCheck(); // 将路径中的点翻转成正常反向,并生成inOut数组 void processDir(); // 在路径确定后,处理一些能在pass层面处理的信息 void postProcess(); // 翻转整条路径 void reverse(); };