Skip to content
Snippets Groups Projects
Commit ce92e0af authored by Alejandro Lopez Gestoso's avatar Alejandro Lopez Gestoso
Browse files

Adapted to road pointers

parent 3becee28
No related branches found
No related tags found
No related merge requests found
......@@ -18,7 +18,7 @@
class CAdcCircuit
{
private:
std::vector<CAdcRoad> roads;///< Variable to store an access each road data.
std::vector<CAdcRoad*> roads;///< Variable to store an access each road data.
public:
/**
......@@ -47,7 +47,7 @@ class CAdcCircuit
* \param road The road to add.
*
*/
void add_road(CAdcRoad &road);
void add_road(CAdcRoad* &road);
/**
* \brief Function to print each road info.
......
......@@ -16,10 +16,12 @@ CAdcCircuit::~CAdcCircuit()
void CAdcCircuit::clear_roads(void)
{
std::vector<CAdcRoad>().swap(this->roads);
for (unsigned int i = 0; i < this->roads.size(); i++)
delete this->roads[i];
std::vector<CAdcRoad*>().swap(this->roads);
}
void CAdcCircuit::add_road(CAdcRoad &road)
void CAdcCircuit::add_road(CAdcRoad* &road)
{
this->roads.push_back(road);
}
......@@ -27,20 +29,20 @@ void CAdcCircuit::add_road(CAdcRoad &road)
void CAdcCircuit::debug(void)
{
for (unsigned int i = 0; i < this->roads.size(); i++)
this->roads[i].debug();
this->roads[i]->debug();
}
void CAdcCircuit::calculate_signals_pose(bool debug)
{
for (unsigned int i = 0; i < this->roads.size(); i++)
this->roads[i].calculate_signals_pose(debug);
this->roads[i]->calculate_signals_pose(debug);
}
void CAdcCircuit::get_signals(std::vector<CAdcSignals*> &signals)
{
std::vector<CAdcSignals*>().swap(signals);
for (unsigned int i = 0; i < this->roads.size(); i++)
this->roads[i].get_signals(signals);
this->roads[i]->get_signals(signals);
}
void CAdcCircuit::generate_spwan_launch_file(std::string &filename)
......@@ -62,7 +64,7 @@ void CAdcCircuit::generate_spwan_launch_file(std::string &filename)
//sign info
for (unsigned int i = 0; i < this->roads.size(); i++)
this->roads[i].append_signs_spawn(filename);
this->roads[i]->append_signs_spawn(filename);
//End
oss.str("");
......
......@@ -39,7 +39,7 @@ void COpenDriveFormat::load(std::string &filename, bool debug)
ss >> road_id;
double road_length = road_it->length().get();
std::string name = road_it->name().get();
CAdcRoad road(road_id, road_length, name);
CAdcRoad *road = new CAdcRoad(road_id, road_length, name);
///////////////////// link atributes
......@@ -54,20 +54,20 @@ void COpenDriveFormat::load(std::string &filename, bool debug)
if (geo_it->line().present())
{
CAdcGeoLine *line = new CAdcGeoLine(min_s, max_s, x, y, heading);
road.add_geometry(line);
road->add_geometry(line);
}
else if (geo_it->spiral().present())
{
double curv_start = (geo_it->spiral().get().curvStart().present() ? geo_it->spiral().get().curvStart().get() : 0.0);
double curv_end = (geo_it->spiral().get().curvEnd().present() ? geo_it->spiral().get().curvEnd().get() : 0.0);
CAdcGeoSpiral *spi = new CAdcGeoSpiral(min_s, max_s, x, y, heading, curv_start, curv_end);
road.add_geometry(spi);
road->add_geometry(spi);
}
else if (geo_it->arc().present())
{
double curvature = (geo_it->arc().get().curvature().present() ? geo_it->arc().get().curvature().get() : 0.0);
CAdcGeoArc *arc = new CAdcGeoArc(min_s, max_s, x, y, heading, curvature);
road.add_geometry(arc);
road->add_geometry(arc);
}
else if (geo_it->poly3().present())
{
......@@ -77,7 +77,7 @@ void COpenDriveFormat::load(std::string &filename, bool debug)
param.c = (geo_it->poly3().get().c().present() ? geo_it->poly3().get().c().get() : 0.0);
param.d = (geo_it->poly3().get().d().present() ? geo_it->poly3().get().d().get() : 0.0);
CAdcGeoPoly3 *poly3 = new CAdcGeoPoly3(min_s, max_s, x, y, heading, param);
road.add_geometry(poly3);
road->add_geometry(poly3);
}
else if (geo_it->paramPoly3().present())
{
......@@ -95,7 +95,7 @@ void COpenDriveFormat::load(std::string &filename, bool debug)
if (geo_it->paramPoly3().get().pRange().present() && geo_it->paramPoly3().get().pRange().get() == pRange::arcLength)
normalized = false;
CAdcGeoParamPoly3 *parampoly3 = new CAdcGeoParamPoly3(min_s, max_s, x, y, heading, u_param, v_param, normalized);
road.add_geometry(parampoly3);
road->add_geometry(parampoly3);
}
}
......@@ -118,7 +118,7 @@ void COpenDriveFormat::load(std::string &filename, bool debug)
if (signal_it->orientation().present() && signal_it->orientation().get() == orientation::cxx_1)
reverse = true;
CAdcSignals *sign = new CAdcSignals(id, s, t, heading, type, sub_type, value, text, reverse);
road.add_signal(sign);
road->add_signal(sign);
}
}
this->adc_circuit.add_road(road);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment