From e2ed4cec4c922b86940a58678ed117baf14235a6 Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Wed, 3 Jun 2020 17:18:08 +0200 Subject: [PATCH] Solved a bug when reading more than one object or signal: Only the first one was read because the root signal or object XML element was always used to find the next child, instead of the previous child. --- OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp b/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp index f76d2e0..d725165 100644 --- a/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp +++ b/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp @@ -934,6 +934,7 @@ bool OpenDriveXmlParser::ReadObjects (Road* road, TiXmlElement *node) object_node=node->FirstChildElement("object"); while(object_node!=0) { + std::cout << "new object" << std::endl; checker=TIXML_SUCCESS; checker+=object_node->QueryDoubleAttribute("s",&s); checker+=object_node->QueryDoubleAttribute("t",&t); @@ -1007,7 +1008,7 @@ bool OpenDriveXmlParser::ReadObjects (Road* road, TiXmlElement *node) object->SetBoundingCylinder(radius,height); } - object_node=node->NextSiblingElement("object"); + object_node=object_node->NextSiblingElement("object"); } return true; } @@ -1024,6 +1025,7 @@ bool OpenDriveXmlParser::ReadSignals (Road* road, TiXmlElement *node) signal_node=node->FirstChildElement("signal"); while(signal_node!=0) { + std::cout << "new signal" << std::endl; checker=TIXML_SUCCESS; checker+=signal_node->QueryDoubleAttribute("s",&s); checker+=signal_node->QueryDoubleAttribute("t",&t); @@ -1088,7 +1090,7 @@ bool OpenDriveXmlParser::ReadSignals (Road* road, TiXmlElement *node) signal->SetPitch(pitch); signal->SetRoll(roll); - signal_node=node->NextSiblingElement("signal"); + signal_node=signal_node->NextSiblingElement("signal"); } return true; } -- GitLab