#ifndef CDAPROC_H #define CDAPROC_H #include #include #include "excelapi.h" #include #include "cdadraw.pb.h" //namespace iv //{ //struct cdalane //{ // int mnlanetype; //"shoulder","border","driving","stop","none","parking","biking","sidewalk","median" // double mflanewidth; // int mnlanemarkcolor; //0 白色 1 黄色 // int mnlanemarktype; //0 虚线 1 实线 2 双虚线 3 双实线 4 虚实线 5 实虚线 6 无 //}; //struct cdageo //{ // int mngeotype; //直路 弯路 路口 // double mfradius; //半径 // double mflen; //长度 //}; //class cdaroad //{ //public: // int mnclass; //0 高速公路 1 城市 2 乡村 // int mnEle; //0 平路 1 缓上坡 2 上坡 3 缓下坡 4 下坡 // std::vector mvectorgeo; // std::vector mvectorlane; //public: // cdaroad() // { // mnclass = 0; // mnEle = 0; // cdageo xgeo; // xgeo.mflen = 100.0; // xgeo.mfradius = 100; // xgeo.mngeotype = 0; // mvectorgeo.push_back(xgeo); // cdalane xlane; // xlane.mnlanetype = 2; // xlane.mflanewidth = 3.75; // xlane.mnlanemarkcolor = 0; // xlane.mnlanemarktype = 0; // mvectorlane.push_back(xlane); // } //}; //} class CDAProc { public: CDAProc(); static int Proc(std::string strxlsxpath,OpenDrive * pxodr); static int ProcRoads(std::string strxlsxpath,std::string stroutpath); static int ProcRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth, std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype); static int ProcLineRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth, std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype); static int ProcArcRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth, std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype); static int ProcIntersectionRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth, std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype); static int ProcIntersectionRoad(OpenDrive * pxodr, iv::map::cdadraw * pcdadraw,int ngeo,int & nroadid,double & nowx,double & nowy, double & nowhdg); static int ProcCDA(iv::map::cdadraw & xcdadraw,OpenDrive * pxodr); }; #endif // CDAPROC_H