|
FERS 1.0.0
The Flexible Extensible Radar Simulator
|
Utility definitions and functions for generating KML files from simulation scenarios. More...
#include <functional>#include <optional>#include <ostream>#include <string>#include <vector>#include "core/parameters.h"#include "math/geometry_ops.h"
Include dependency graph for kml_generator_utils.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | serial::kml_generator_utils::KmlContext |
| Context data required during KML generation. More... | |
Namespaces | |
| namespace | core |
| namespace | radar |
| namespace | antenna |
| namespace | serial |
| namespace | serial::kml_generator_utils |
Typedefs | |
| using | serial::kml_generator_utils::ConverterFunc = std::function< void(const math::Vec3 &, double &, double &, double &)> |
| Callback signature used for converting math coordinates to lat/lon/altitude. | |
Functions | |
| double | serial::kml_generator_utils::sincAntennaGain (double theta, double alpha, double beta, double gamma) |
| Calculates a normalized sinc-based antenna gain mapping. | |
| double | serial::kml_generator_utils::find3DbDropAngle (double alpha, double beta, double gamma) |
| Numerically determines the 3dB drop angle for a parameterized generic antenna. | |
| double | serial::kml_generator_utils::findGaussian3DbDropAngle (const antenna::Gaussian *gaussianAnt) |
| Calculates the 3dB drop angle for a Gaussian antenna. | |
| double | serial::kml_generator_utils::findParabolic3DbDropAngle (const antenna::Parabolic *parabolicAnt, double wavelength) |
| Calculates the 3dB drop angle for a Parabolic antenna. | |
| double | serial::kml_generator_utils::findSquareHorn3DbDropAngle (const antenna::SquareHorn *squarehornAnt, double wavelength) |
| Calculates the 3dB drop angle for a Square Horn antenna. | |
| std::string | serial::kml_generator_utils::formatCoordinates (double lon, double lat, double alt) |
Formats coordinates into a comma-separated string suitable for KML <coordinates>. | |
| void | serial::kml_generator_utils::calculateDestinationCoordinate (double startLatitude, double startLongitude, double angle, double distance, double &destLatitude, double &destLongitude) |
| Calculates a destination coordinate given a starting position, bearing, and distance. | |
| std::vector< std::pair< double, double > > | serial::kml_generator_utils::generateCircleCoordinates (double lat, double lon, double radius_km) |
| Generates a collection of points tracing a circle around a center coordinate. | |
| void | serial::kml_generator_utils::writeKmlHeaderAndStyles (std::ostream &out, const KmlContext &ctx) |
| Writes the standard KML preamble and style definitions to the output stream. | |
| void | serial::kml_generator_utils::writePoint (std::ostream &out, const std::string &indent, const std::string &name, const std::string &styleUrl, const std::string &coordinates, double objectAltitude, double referenceAltitude) |
Writes a KML <Point> placemark to the output stream. | |
| void | serial::kml_generator_utils::writeAntennaBeamLine (std::ostream &out, const std::string &indent, const std::string &name, const std::string &style, const std::string &startCoords, const std::string &endCoords) |
| Writes a visual cone/beam line representing the antenna look direction. | |
| std::string | serial::kml_generator_utils::getPlacemarkStyleForPlatform (const std::vector< const radar::Object * > &objects) |
| Determines the proper KML style definition ID to use based on the platform's attached objects. | |
| const radar::Radar * | serial::kml_generator_utils::getPrimaryRadar (const std::vector< const radar::Object * > &objects) |
| Identifies the primary radar object within a platform for styling and direction tracking. | |
| void | serial::kml_generator_utils::generateIsotropicAntennaKml (std::ostream &out, const math::Vec3 &position, const KmlContext &ctx, const std::string &indent) |
| Renders the visual representation for an isotropic antenna into the output stream. | |
| void | serial::kml_generator_utils::generateDirectionalAntennaKml (std::ostream &out, const radar::Platform *platform, const KmlContext &ctx, const std::optional< double > &angle3DbDropDeg, const std::string &indent) |
| Renders the visual pointing representation for a directional (beam) antenna. | |
| void | serial::kml_generator_utils::generateAntennaKml (std::ostream &out, const radar::Platform *platform, const radar::Radar *radar, const KmlContext &ctx, const std::string &indent) |
| Dispatch function that selects and generates the appropriate KML for a given radar's antenna. | |
| void | serial::kml_generator_utils::generateDynamicPathKml (std::ostream &out, const radar::Platform *platform, const std::string &styleUrl, double refAlt, const KmlContext &ctx, const std::string &indent) |
| Generates KML for a continuously moving dynamic platform path. | |
| void | serial::kml_generator_utils::generateTrackEndpointsKml (std::ostream &out, const radar::Platform *platform, double refAlt, const KmlContext &ctx, const std::string &indent) |
| Generates KML rendering start and end pushpins for a moving platform's track. | |
| void | serial::kml_generator_utils::generateStaticPlacemarkKml (std::ostream &out, const radar::Platform *platform, const std::string &styleUrl, double refAlt, const KmlContext &ctx, const std::string &indent) |
| Generates a simple static placemark KML for a non-moving platform. | |
| void | serial::kml_generator_utils::generatePlatformPathKml (std::ostream &out, const radar::Platform *platform, const std::string &style, double refAlt, const KmlContext &ctx, const std::string &indent) |
| Dispatches the generation of a platform's path representation (static vs dynamic). | |
| void | serial::kml_generator_utils::processPlatform (std::ostream &out, const radar::Platform *platform, const std::vector< const radar::Object * > &objects, const KmlContext &ctx, double referenceAltitude, const std::string &indent) |
| Orchestrates full processing and rendering of an individual platform into the KML stream. | |
| void | serial::kml_generator_utils::generateKmlToStream (std::ostream &out, const core::World &world, const KmlContext &ctx) |
| Master entry point designed to convert the comprehensive simulation world state into a valid KML document. | |
Utility definitions and functions for generating KML files from simulation scenarios.
This file provides the internal mechanisms required to export FERS scenarios to KML format for visualization in Google Earth or similar tools. It defines functions for formatting coordinates, rendering styling, creating models, and assembling the top-level document structure.
Definition in file kml_generator_utils.h.