Skip to content

Commit cbf9715

Browse files
committed
refactor: remove redundant GeometryType from RoadGeometry, can use dynamic_cast to identify type
1 parent 806ccbc commit cbf9715

File tree

6 files changed

+11
-33
lines changed

6 files changed

+11
-33
lines changed

include/Geometries/RoadGeometry.h

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,9 @@
77
namespace odr
88
{
99

10-
enum class GeometryType
11-
{
12-
Line,
13-
Spiral,
14-
Arc,
15-
ParamPoly3
16-
};
17-
1810
struct RoadGeometry
1911
{
20-
RoadGeometry(double s0, double x0, double y0, double hdg0, double length, GeometryType type);
12+
RoadGeometry(double s0, double x0, double y0, double hdg0, double length);
2113
virtual ~RoadGeometry() = default;
2214

2315
virtual std::unique_ptr<RoadGeometry> clone() const = 0;
@@ -27,12 +19,11 @@ struct RoadGeometry
2719

2820
virtual std::set<double> approximate_linear(double eps) const = 0;
2921

30-
double s0 = 0;
31-
double x0 = 0;
32-
double y0 = 0;
33-
double hdg0 = 0;
34-
double length = 0;
35-
GeometryType type;
22+
double s0 = 0;
23+
double x0 = 0;
24+
double y0 = 0;
25+
double hdg0 = 0;
26+
double length = 0;
3627
};
3728

3829
} // namespace odr

src/Geometries/Arc.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
namespace odr
77
{
8-
Arc::Arc(double s0, double x0, double y0, double hdg0, double length, double curvature) :
9-
RoadGeometry(s0, x0, y0, hdg0, length, GeometryType::Arc), curvature(curvature)
8+
Arc::Arc(double s0, double x0, double y0, double hdg0, double length, double curvature) : RoadGeometry(s0, x0, y0, hdg0, length), curvature(curvature)
109
{
1110
}
1211

src/Geometries/Line.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
namespace odr
88
{
99

10-
Line::Line(double s0, double x0, double y0, double hdg0, double length) : RoadGeometry(s0, x0, y0, hdg0, length, GeometryType::Line) {}
10+
Line::Line(double s0, double x0, double y0, double hdg0, double length) : RoadGeometry(s0, x0, y0, hdg0, length) {}
1111

1212
std::unique_ptr<RoadGeometry> Line::clone() const
1313
{

src/Geometries/ParamPoly3.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,7 @@ ParamPoly3::ParamPoly3(double s0,
2323
double cV,
2424
double dV,
2525
bool pRange_normalized) :
26-
RoadGeometry(s0, x0, y0, hdg0, length, GeometryType::ParamPoly3),
27-
aU(aU),
28-
bU(bU),
29-
cU(cU),
30-
dU(dU),
31-
aV(aV),
32-
bV(bV),
33-
cV(cV),
34-
dV(dV),
35-
pRange_normalized(pRange_normalized)
26+
RoadGeometry(s0, x0, y0, hdg0, length), aU(aU), bU(bU), cU(cU), dU(dU), aV(aV), bV(bV), cV(cV), dV(dV), pRange_normalized(pRange_normalized)
3627
{
3728
if (!pRange_normalized)
3829
{

src/Geometries/RoadGeometry.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
namespace odr
44
{
55

6-
RoadGeometry::RoadGeometry(double s0, double x0, double y0, double hdg0, double length, GeometryType type) :
7-
s0(s0), x0(x0), y0(y0), hdg0(hdg0), length(length), type(type)
8-
{
9-
}
6+
RoadGeometry::RoadGeometry(double s0, double x0, double y0, double hdg0, double length) : s0(s0), x0(x0), y0(y0), hdg0(hdg0), length(length) {}
107

118
} // namespace odr

src/Geometries/Spiral.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace odr
99
{
1010

1111
Spiral::Spiral(double s0, double x0, double y0, double hdg0, double length, double curv_start, double curv_end) :
12-
RoadGeometry(s0, x0, y0, hdg0, length, GeometryType::Spiral), curv_start(curv_start), curv_end(curv_end)
12+
RoadGeometry(s0, x0, y0, hdg0, length), curv_start(curv_start), curv_end(curv_end)
1313
{
1414
this->c_dot = (curv_end - curv_start) / length;
1515
this->s_start = curv_start / c_dot;

0 commit comments

Comments
 (0)