3 #include <XmlAssetsLoader.h>
4 #include <SpectralLibrary.h>
7 #include <ScanningStrip.h>
10 #include <unordered_set>
11 #include <unordered_map>
29 std::unordered_map<std::string, std::shared_ptr<ScanningStrip>>
strips;
60 tinyxml2::XMLElement* legNode,
61 std::unordered_set<std::string> *scannerFields,
62 std::unordered_set<std::string> *platformFields
79 tinyxml2::XMLElement* surveyNode,
80 bool legNoiseDisabled=
false,
81 bool rebuildScene=
false
91 std::shared_ptr<Survey>
load(
92 bool legNoiseDisabled=
false,
93 bool rebuildScene=
false
117 std::string sceneString,
118 bool rebuildScene=
false
128 tinyxml2::XMLElement *surveyNode,
129 std::shared_ptr<Survey> survey
138 tinyxml2::XMLElement *surveyNode,
139 std::shared_ptr<Survey> survey
149 tinyxml2::XMLElement *legNodes,
150 std::shared_ptr<ScannerSettings> scannerSettings,
151 std::shared_ptr<Platform> platform,
152 std::vector<std::shared_ptr<Leg>> &legs
161 tinyxml2::XMLElement *surveyNode,
162 bool const legNoiseDisabled,
163 std::shared_ptr<Survey> survey
172 tinyxml2::XMLElement *surveyNode
181 tinyxml2::XMLElement *surveyNode,
182 std::shared_ptr<Platform> platform
Class for asset loading from XML file.
Definition: XmlAssetsLoader.h:28
std::string assetsDir
Assets directory.
Definition: XmlAssetsLoader.h:48
Survey loader from XML.
Definition: XmlSurveyLoader.h:21
void loadLegs(tinyxml2::XMLElement *legNodes, std::shared_ptr< ScannerSettings > scannerSettings, std::shared_ptr< Platform > platform, std::vector< std::shared_ptr< Leg >> &legs)
Load all legs defining the survey.
Definition: XmlSurveyLoader.cpp:326
int lastLegSerialId
Serial identifier for last created leg. It is initialized as -1, so the first leg has 0 as serial id.
Definition: XmlSurveyLoader.h:34
static void integrateSurveyAndLegs(std::shared_ptr< Survey > survey)
Integrating survey and legs means fitting survey attributes from legs and leg attributes from survey ...
Definition: XmlSurveyLoader.cpp:574
XmlSurveyLoader(std::string &filePath, std::string &assetsDir)
XML survey loader constructor.
Definition: XmlSurveyLoader.h:44
void applySceneShift(tinyxml2::XMLElement *surveyNode, bool const legNoiseDisabled, std::shared_ptr< Survey > survey)
Apply scene geometry shift to platform waypoints.
Definition: XmlSurveyLoader.cpp:458
void loadSurveyCore(tinyxml2::XMLElement *surveyNode, std::shared_ptr< Survey > survey)
Load the core components of the survey. It is, its name, the source file path, the scanner and the pl...
Definition: XmlSurveyLoader.cpp:242
std::shared_ptr< Survey > load(bool legNoiseDisabled=false, bool rebuildScene=false)
Load a full survey from XML.
Definition: XmlSurveyLoader.cpp:29
std::shared_ptr< Scene > loadScene(std::string sceneString, bool rebuildScene=false)
Load scene from XML.
Definition: XmlSurveyLoader.cpp:180
static void validateSurvey(std::shared_ptr< Survey > survey)
Validate given survey is free from inconsistencies. Otherwise, proper logging and forced exit (if nee...
Definition: XmlSurveyLoader.cpp:608
void handleCoreOverloading(tinyxml2::XMLElement *surveyNode, std::shared_ptr< Survey > survey)
Handle overloading of survey's core components.
Definition: XmlSurveyLoader.cpp:289
std::shared_ptr< Leg > createLegFromXML(tinyxml2::XMLElement *legNode, std::unordered_set< std::string > *scannerFields, std::unordered_set< std::string > *platformFields)
Create a leg from a XML element/node.
Definition: XmlSurveyLoader.cpp:111
void reinitLoader() override
Call the reinitLoader from XmlAssetsLoader and then also assure that the map of scanning strips is em...
Definition: XmlSurveyLoader.cpp:175
static void configureDefaultRandomnessGenerator(tinyxml2::XMLElement *surveyNode)
Configure the default randomness generador. If a seed was specified through XML survey node,...
Definition: XmlSurveyLoader.cpp:524
std::shared_ptr< Survey > createSurveyFromXml(tinyxml2::XMLElement *surveyNode, bool legNoiseDisabled=false, bool rebuildScene=false)
Create a survey form a XML element/node.
Definition: XmlSurveyLoader.cpp:52
std::unordered_map< std::string, std::shared_ptr< ScanningStrip > > strips
Map of scanning strips.
Definition: XmlSurveyLoader.h:29
void loadPlatformNoise(tinyxml2::XMLElement *surveyNode, std::shared_ptr< Platform > platform)
Load plataform noise, overriding what is specified in platform.xml if necessary.
Definition: XmlSurveyLoader.cpp:541