123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #ifndef ROADDIGIT_H
- #define ROADDIGIT_H
- #include "OpenDrive/OpenDrive.h"
- #include <vector>
- #include "xodrfunc.h"
- namespace iv {
- struct lanexy
- {
- int nLane;
- double mX;
- double mY;
- double mCenterX;
- double mCenterY;
- int mType = 0;
- int mnMarkColor;
- int mMarkType = -1; //if -1 no mark
- int mnChange = 0;
- std::vector<int> mvectorsignal;
- };
- struct RoadDigitUnit
- {
- double mS;
- double mX;
- double mY;
- double mfHdg;
- std::vector<iv::LanePoint> mvectorLanePoint;
- };
- struct ParkingXY
- {
- double mX;
- double mY;
- };
- struct ParkingPoint
- {
- vector<ParkingXY> mParkingXY;
- vector<vector<ParkingXY>> mParkingMark;
- string strtext;
- ParkingXY mParkingCenterXY;
- double mfHdg;
- };
- }
- class RoadDigit
- {
- public:
- RoadDigit(Road * pRoad,double fspace);
- private:
- std::vector<iv::RoadDigitUnit> mvectorRDU;
- Road * mpRoad = 0;
- std::vector<iv::ParkingPoint> mvectorParkingPoint;
- private:
- void CalcLine(double fspace);
- void CalcLane();
- void CalcParkingPoint();
- public:
- std::vector<iv::RoadDigitUnit> * GetRDU();
- void UpdateSpace(double fspace);
- std::vector<iv::ParkingPoint> * GetParkingPoint();
- private:
- int GetSectionIndex(Road * pRoad,double s);
- };
- #endif // ROADDIGIT_H
|