FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
xml_parser_utils.cpp File Reference
#include "xml_parser_utils.h"
#include <GeographicLib/UTMUPS.hpp>
#include <cmath>
#include <filesystem>
#include <format>
#include <limits>
#include <string_view>
#include "antenna/antenna_factory.h"
#include "core/config.h"
#include "core/logging.h"
#include "core/world.h"
#include "fers_xml_dtd.h"
#include "fers_xml_xsd.h"
#include "math/coord.h"
#include "math/geometry_ops.h"
#include "math/path.h"
#include "math/rotation_path.h"
#include "radar/platform.h"
#include "radar/radar_obj.h"
#include "radar/receiver.h"
#include "radar/target.h"
#include "radar/transmitter.h"
#include "serial/rotation_angle_utils.h"
#include "serial/rotation_warning_utils.h"
#include "serial/waveform_factory.h"
#include "signal/radar_signal.h"
#include "timing/prototype_timing.h"
#include "timing/timing.h"
+ Include dependency graph for xml_parser_utils.cpp:

Go to the source code of this file.

Namespaces

namespace  serial
 
namespace  serial::xml_parser_utils
 

Functions

RealType serial::xml_parser_utils::get_child_real_type (const XmlElement &element, const std::string &elementName)
 Extracts a floating-point (RealType) value from a named child element.
 
bool serial::xml_parser_utils::get_attribute_bool (const XmlElement &element, const std::string &attributeName, bool defaultVal)
 Extracts a boolean value from a named attribute.
 
SimId serial::xml_parser_utils::assign_id_from_attribute (const std::string &owner, ObjectType type)
 Generates a unique SimId based on the requested object type.
 
SimId serial::xml_parser_utils::resolve_reference_id (const XmlElement &element, const std::string &attributeName, const std::string &owner, const std::unordered_map< std::string, SimId > &name_map)
 Resolves an XML string reference into an internal SimId.
 
std::vector< radar::SchedulePeriodserial::xml_parser_utils::parseSchedule (const XmlElement &parent, const std::string &parentName, bool isPulsed, RealType pri=0.0)
 Parses a schedule (active periods) for a transmitter or receiver.
 
void serial::xml_parser_utils::parseParameters (const XmlElement &parameters, params::Parameters &params_out)
 Parses the <parameters> block into the isolated context parameters.
 
void serial::xml_parser_utils::parseWaveform (const XmlElement &waveform, ParserContext &ctx)
 Parses a <waveform> block and adds it to the World.
 
void serial::xml_parser_utils::parseTiming (const XmlElement &timing, ParserContext &ctx)
 Parses a <timing> block and adds the prototype timing to the World.
 
void serial::xml_parser_utils::parseAntenna (const XmlElement &antenna, ParserContext &ctx)
 Parses an <antenna> block and adds it to the World.
 
void serial::xml_parser_utils::parseMotionPath (const XmlElement &motionPath, radar::Platform *platform)
 Parses a <motionpath> block and attaches it to a Platform.
 
void serial::xml_parser_utils::parseRotationPath (const XmlElement &rotation, radar::Platform *platform, params::RotationAngleUnit unit)
 Parses a <rotationpath> block and attaches it to a Platform.
 
void serial::xml_parser_utils::parseFixedRotation (const XmlElement &rotation, radar::Platform *platform, params::RotationAngleUnit unit)
 Parses a <fixedrotation> block and attaches it to a Platform.
 
radar::Transmitterserial::xml_parser_utils::parseTransmitter (const XmlElement &transmitter, radar::Platform *platform, ParserContext &ctx, const ReferenceLookup &refs)
 Parses a <transmitter> block, resolves its dependencies, and adds it to the World.
 
radar::Receiverserial::xml_parser_utils::parseReceiver (const XmlElement &receiver, radar::Platform *platform, ParserContext &ctx, const ReferenceLookup &refs)
 Parses a <receiver> block, resolves its dependencies, and adds it to the World.
 
void serial::xml_parser_utils::parseMonostatic (const XmlElement &monostatic, radar::Platform *platform, ParserContext &ctx, const ReferenceLookup &refs)
 Parses a <monostatic> block, creating a linked transmitter and receiver pair.
 
void serial::xml_parser_utils::parseTarget (const XmlElement &target, radar::Platform *platform, ParserContext &ctx)
 Parses a <target> block and adds it to the World.
 
void serial::xml_parser_utils::parsePlatformElements (const XmlElement &platform, ParserContext &ctx, radar::Platform *plat, const std::function< void(const XmlElement &, std::string_view)> &register_name, const ReferenceLookup &refs)
 Iterates and parses all children elements (radars, targets) of a platform.
 
void serial::xml_parser_utils::parsePlatform (const XmlElement &platform, ParserContext &ctx, const std::function< void(const XmlElement &, std::string_view)> &register_name, const ReferenceLookup &refs)
 Parses a complete <platform> block, including its motion paths and sub-elements.
 
void serial::xml_parser_utils::collectIncludeElements (const XmlDocument &doc, const fs::path &currentDir, std::vector< fs::path > &includePaths)
 
bool serial::xml_parser_utils::addIncludeFilesToMainDocument (const XmlDocument &mainDoc, const fs::path &currentDir)
 
void serial::xml_parser_utils::validateXml (bool didCombine, const XmlDocument &mainDoc)
 Validates an XML document against the embedded DTD and XSD schemas.
 
void serial::xml_parser_utils::processParsedDocument (const XmlDocument &doc, ParserContext &ctx)
 Coordinates the full parsing of a validated XML document tree.
 
AssetLoaders serial::xml_parser_utils::createDefaultAssetLoaders ()
 Creates an AssetLoaders struct populated with standard file-I/O implementations.