50 std::vector<ElevationProfile> elevation_profile;
51 std::vector<LateralProfile> lateral_profile;
57 uint64_t number_profiles = 0;
68 elev.
s = node_elevation.attribute(
"s").as_double();
69 elev.
a = node_elevation.attribute(
"a").as_double();
70 elev.
b = node_elevation.attribute(
"b").as_double();
71 elev.
c = node_elevation.attribute(
"c").as_double();
72 elev.
d = node_elevation.attribute(
"d").as_double();
75 elevation_profile.emplace_back(elev);
80 if(number_profiles == 0){
93 elevation_profile.emplace_back(elev);
97 node_profile = node_road.
child(
"lateralProfile");
107 lateral.
s =
node.attribute(
"s").as_double();
108 lateral.
a =
node.attribute(
"a").as_double();
109 lateral.
b =
node.attribute(
"b").as_double();
110 lateral.
c =
node.attribute(
"c").as_double();
111 lateral.
d =
node.attribute(
"d").as_double();
115 if (lateral.
type ==
"crossfall") {
117 }
else if (lateral.
type ==
"shape") {
118 lateral.
shape.
t =
node.attribute(
"t").as_double();
122 lateral_profile.emplace_back(lateral);
128 for (
auto const pro : elevation_profile) {
132 for (
auto const pro : lateral_profile) {
133 if (pro.type ==
"shape") {
void AddRoadLateralShape(Road *road, const double s, const double a, const double b, const double c, const double d, const double t)