|
@@ -34,6 +34,7 @@ class LaneOffset;
|
|
//objects, signals
|
|
//objects, signals
|
|
class Object;
|
|
class Object;
|
|
class Signal;
|
|
class Signal;
|
|
|
|
+class Shape;
|
|
|
|
|
|
//--------------
|
|
//--------------
|
|
|
|
|
|
@@ -75,6 +76,8 @@ private:
|
|
vector<Elevation> mElevationVector;
|
|
vector<Elevation> mElevationVector;
|
|
// Superelevation vector
|
|
// Superelevation vector
|
|
vector<SuperElevation> mSuperElevationVector;
|
|
vector<SuperElevation> mSuperElevationVector;
|
|
|
|
+ // Shape vector
|
|
|
|
+ vector<Shape> mShapeVector;
|
|
// Crossfall vector
|
|
// Crossfall vector
|
|
vector<Crossfall> mCrossfallVector;
|
|
vector<Crossfall> mCrossfallVector;
|
|
// Lane Section vector
|
|
// Lane Section vector
|
|
@@ -127,6 +130,7 @@ private:
|
|
unsigned int mLastAddedRoadNoavoid;
|
|
unsigned int mLastAddedRoadNoavoid;
|
|
unsigned int mLastAddedSurfaceCRG;
|
|
unsigned int mLastAddedSurfaceCRG;
|
|
unsigned int mLastAddedRailroadSwitch;
|
|
unsigned int mLastAddedRailroadSwitch;
|
|
|
|
+ unsigned int mLastAddedShape;
|
|
|
|
|
|
public:
|
|
public:
|
|
/**
|
|
/**
|
|
@@ -187,6 +191,10 @@ public:
|
|
vector<Elevation> *GetElevationVector();
|
|
vector<Elevation> *GetElevationVector();
|
|
Elevation* GetElevation(unsigned int i);
|
|
Elevation* GetElevation(unsigned int i);
|
|
unsigned int GetElevationCount();
|
|
unsigned int GetElevationCount();
|
|
|
|
+ // Road Shape records
|
|
|
|
+ vector<Shape> *GetShapeVector();
|
|
|
|
+ Shape* GetShape(unsigned int i);
|
|
|
|
+ unsigned int GetShapeCount();
|
|
// Road superelevation records
|
|
// Road superelevation records
|
|
vector<SuperElevation> *GetSuperElevationVector();
|
|
vector<SuperElevation> *GetSuperElevationVector();
|
|
SuperElevation* GetSuperElevation(unsigned int i);
|
|
SuperElevation* GetSuperElevation(unsigned int i);
|
|
@@ -255,6 +263,7 @@ public:
|
|
RoadType* GetLastRoadType();
|
|
RoadType* GetLastRoadType();
|
|
GeometryBlock* GetLastGeometryBlock();
|
|
GeometryBlock* GetLastGeometryBlock();
|
|
Elevation* GetLastElevation();
|
|
Elevation* GetLastElevation();
|
|
|
|
+ Shape* GetLastShape();
|
|
SuperElevation* GetLastSuperElevation();
|
|
SuperElevation* GetLastSuperElevation();
|
|
Crossfall* GetLastCrossfall();
|
|
Crossfall* GetLastCrossfall();
|
|
LaneSection* GetLastLaneSection();
|
|
LaneSection* GetLastLaneSection();
|
|
@@ -275,6 +284,7 @@ public:
|
|
RoadType* GetLastAddedRoadType();
|
|
RoadType* GetLastAddedRoadType();
|
|
GeometryBlock* GetLastAddedGeometryBlock();
|
|
GeometryBlock* GetLastAddedGeometryBlock();
|
|
Elevation* GetLastAddedElevation();
|
|
Elevation* GetLastAddedElevation();
|
|
|
|
+ Shape* GetLastAddedShape();
|
|
SuperElevation* GetLastAddedSuperElevation();
|
|
SuperElevation* GetLastAddedSuperElevation();
|
|
Crossfall* GetLastAddedCrossfall();
|
|
Crossfall* GetLastAddedCrossfall();
|
|
LaneSection* GetLastAddedLaneSection();
|
|
LaneSection* GetLastAddedLaneSection();
|
|
@@ -325,6 +335,7 @@ public:
|
|
unsigned int AddRoadType(double s, string type,string country = "");
|
|
unsigned int AddRoadType(double s, string type,string country = "");
|
|
unsigned int AddGeometryBlock();
|
|
unsigned int AddGeometryBlock();
|
|
unsigned int AddElevation(double s, double a, double b, double c, double d);
|
|
unsigned int AddElevation(double s, double a, double b, double c, double d);
|
|
|
|
+ unsigned int AddShape(double s, double t, double a, double b, double c, double d);
|
|
unsigned int AddSuperElevation(double s, double a, double b, double c, double d);
|
|
unsigned int AddSuperElevation(double s, double a, double b, double c, double d);
|
|
unsigned int AddCrossfall (string side, double s, double a, double b, double c, double d);
|
|
unsigned int AddCrossfall (string side, double s, double a, double b, double c, double d);
|
|
unsigned int AddLaneSection(double s);
|
|
unsigned int AddLaneSection(double s);
|
|
@@ -346,6 +357,7 @@ public:
|
|
*/
|
|
*/
|
|
unsigned int CloneRoadType(unsigned int index);
|
|
unsigned int CloneRoadType(unsigned int index);
|
|
unsigned int CloneElevation(unsigned int index);
|
|
unsigned int CloneElevation(unsigned int index);
|
|
|
|
+ unsigned int CloneShape(unsigned int index);
|
|
unsigned int CloneSuperElevation(unsigned int index);
|
|
unsigned int CloneSuperElevation(unsigned int index);
|
|
unsigned int CloneCrossfall(unsigned int index);
|
|
unsigned int CloneCrossfall(unsigned int index);
|
|
unsigned int CloneLaneSection(unsigned int index);
|
|
unsigned int CloneLaneSection(unsigned int index);
|
|
@@ -367,6 +379,7 @@ public:
|
|
void DeleteRoadType(unsigned int index);
|
|
void DeleteRoadType(unsigned int index);
|
|
void DeleteGeometryBlock(unsigned int index);
|
|
void DeleteGeometryBlock(unsigned int index);
|
|
void DeleteElevation(unsigned int index);
|
|
void DeleteElevation(unsigned int index);
|
|
|
|
+ void DeleteShape(unsigned int index);
|
|
void DeleteSuperElevation(unsigned int index);
|
|
void DeleteSuperElevation(unsigned int index);
|
|
void DeleteCrossfall(unsigned int index);
|
|
void DeleteCrossfall(unsigned int index);
|
|
void DeleteLaneSection(unsigned int index);
|
|
void DeleteLaneSection(unsigned int index);
|
|
@@ -418,6 +431,9 @@ public:
|
|
int CheckElevationInterval(double s_check);
|
|
int CheckElevationInterval(double s_check);
|
|
double GetElevationValue (double s_check);
|
|
double GetElevationValue (double s_check);
|
|
|
|
|
|
|
|
+ int CheckShapeInterval(double s_check,double t_check);
|
|
|
|
+ double GetShapeValue(double s_check,double t_check);
|
|
|
|
+
|
|
int CheckSuperElevationInterval(double s_check);
|
|
int CheckSuperElevationInterval(double s_check);
|
|
double GetSuperElevationValue (double s_check);
|
|
double GetSuperElevationValue (double s_check);
|
|
|
|
|
|
@@ -469,6 +485,8 @@ public:
|
|
|
|
|
|
double GetDis(const double x,const double y, const double hdg, double & fRefDis, double & fHdgDiff, int & nlane,double & s,double & refx,double & refy,double & refhdg); //fRefDis distance to reference line, nlane if dis is 0, nlane which lane is distance is 0
|
|
double GetDis(const double x,const double y, const double hdg, double & fRefDis, double & fHdgDiff, int & nlane,double & s,double & refx,double & refy,double & refhdg); //fRefDis distance to reference line, nlane if dis is 0, nlane which lane is distance is 0
|
|
|
|
|
|
|
|
+ short int GetLaneCoords(double s_check, double t_check,double &retX, double &retY, double &retZ,double &retHDG);
|
|
|
|
+
|
|
|
|
|
|
//-------------------------------------------------
|
|
//-------------------------------------------------
|
|
|
|
|
|
@@ -690,6 +708,20 @@ public:
|
|
};
|
|
};
|
|
//----------------------------------------------------------------------------------
|
|
//----------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * Shape Class is used to store information about a road shape record
|
|
|
|
+ * It inherits the Polynom class and has no additional properties
|
|
|
|
+ *
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+class Shape : public Third2DOrderPolynom
|
|
|
|
+{
|
|
|
|
+public:
|
|
|
|
+ Shape(double s,double t,double a,double b,double c,double d);
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+//----------------------------------------------------------------------------------
|
|
/**
|
|
/**
|
|
* Crossfall class is used to store information about a road superelevation record
|
|
* Crossfall class is used to store information about a road superelevation record
|
|
* It inherits the Polynom class and has one additional properties
|
|
* It inherits the Polynom class and has one additional properties
|