cdaproc.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef CDAPROC_H
  2. #define CDAPROC_H
  3. #include <string>
  4. #include <vector>
  5. #include "excelapi.h"
  6. #include <OpenDrive/OpenDrive.h>
  7. namespace iv
  8. {
  9. struct cdalane
  10. {
  11. int mnlanetype; // 0 driving 1 ...
  12. double mflanewidth;
  13. int mnlanemarkcolor; //0 白色 1 黄色
  14. int mnlanemarktype; //0 虚线 1 实线 2 双虚线 3 双实线 4 虚实线 5 实虚线 6 无
  15. };
  16. struct cdageo
  17. {
  18. int mngeotype; //直路 弯路 路口
  19. double mfradius; //半径
  20. double mflen; //长度
  21. };
  22. class cdaroad
  23. {
  24. public:
  25. int mnclass; //0 高速公路 1 城市 2 乡村
  26. int mnEle; //0 平路 1 缓上坡 2 上坡 3 缓下坡 4 下坡
  27. std::vector<cdageo> mvectorgeo;
  28. std::vector<cdalane> mvectorlane;
  29. public:
  30. cdaroad()
  31. {
  32. mnclass = 0;
  33. mnEle = 0;
  34. cdageo xgeo;
  35. xgeo.mflen = 100.0;
  36. xgeo.mfradius = 100;
  37. xgeo.mngeotype = 0;
  38. mvectorgeo.push_back(xgeo);
  39. cdalane xlane;
  40. xlane.mnlanetype = 2;
  41. xlane.mflanewidth = 3.75;
  42. xlane.mnlanemarkcolor = 0;
  43. xlane.mnlanemarktype = 0;
  44. mvectorlane.push_back(xlane);
  45. }
  46. };
  47. }
  48. class CDAProc
  49. {
  50. public:
  51. CDAProc();
  52. static int Proc(std::string strxlsxpath,OpenDrive * pxodr);
  53. static int ProcRoads(std::string strxlsxpath,std::string stroutpath);
  54. static int ProcRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth,
  55. std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype);
  56. static int ProcLineRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth,
  57. std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype);
  58. static int ProcArcRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth,
  59. std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype);
  60. static int ProcIntersectionRoad(OpenDrive * pxodr, std::string strtype,std::string strradius,std::string strroadlen,std::string strlanewidth,
  61. std::string strlannecount,std::string strlanetype,std::string strlanemarkcolor,std::string strlanemarktype);
  62. };
  63. #endif // CDAPROC_H