1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #ifndef CDAPROC_H
- #define CDAPROC_H
- #include <string>
- #include <vector>
- #include "excelapi.h"
- #include <OpenDrive/OpenDrive.h>
- #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<cdageo> mvectorgeo;
- // std::vector<cdalane> 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
|