79 std::vector<ElevationProfile> elevation_profile;
81 std::vector<LateralProfile> lateral_profile;
93 uint64_t number_profiles = 0;
108 road::RoadId road_id = node_road.attribute(
"id").as_uint();
115 elev.
s = node_elevation.attribute(
"s").as_double();
117 elev.
a = node_elevation.attribute(
"a").as_double();
119 elev.
b = node_elevation.attribute(
"b").as_double();
121 elev.
c = node_elevation.attribute(
"c").as_double();
123 elev.
d = node_elevation.attribute(
"d").as_double();
128 elevation_profile.emplace_back(elev);
135 if (number_profiles == 0) {
137 road::RoadId road_id = node_road.attribute(
"id").as_uint();
155 elevation_profile.emplace_back(elev);
161 node_profile = node_road.
child(
"lateralProfile");
172 road::RoadId road_id = node_road.attribute(
"id").as_uint();
179 lateral.
s = node.attribute(
"s").as_double();
181 lateral.
a = node.attribute(
"a").as_double();
183 lateral.
b = node.attribute(
"b").as_double();
185 lateral.
c = node.attribute(
"c").as_double();
187 lateral.
d = node.attribute(
"d").as_double();
192 lateral.
type = node.name();
194 if (lateral.
type ==
"crossfall") {
195 lateral.
cross.
side = node.attribute(
"side").value();
197 }
else if (lateral.
type ==
"shape") {
198 lateral.
shape.
t = node.attribute(
"t").as_double();
204 lateral_profile.emplace_back(lateral);
212 for (
auto const pro : elevation_profile) {