FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
kml_generator_utils.h File Reference

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::Radarserial::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.
 

Detailed Description

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.