52 lines
1.9 KiB
C++

#include "gate.h"
namespace germanairlinesva_simdata
{
Gate::Gate(std::string designator,
double latitude,
double longitude,
std::uint8_t radius)
{
this->designator = designator;
this->center = {latitude, longitude};
this->radius = radius;
file = std::vector<std::uint8_t>(1 + this->designator.length() + 1 +
sizeof(center) + sizeof(radius),
0);
std::uint8_t *bufPtr = file.data();
std::memset(bufPtr,
static_cast<std::uint8_t>(this->designator.length()),
sizeof(std::uint8_t));
bufPtr++;
std::memcpy(bufPtr, this->designator.c_str(), this->designator.length());
bufPtr += this->designator.length() + 1;
std::memcpy(bufPtr, &this->center, sizeof(this->center));
bufPtr += sizeof(this->center);
std::memcpy(bufPtr, &this->radius, sizeof(this->radius));
}
// From database
Gate::Gate(std::string designator,
struct germanairlinesva_geodata::point center,
std::uint8_t radius)
{
this->designator = designator;
this->center = center;
this->radius = radius;
file = std::vector<std::uint8_t>(1 + this->designator.length() + 1 +
sizeof(center) + sizeof(radius),
0);
std::uint8_t *bufPtr = file.data();
std::memset(bufPtr,
static_cast<std::uint8_t>(this->designator.length()),
sizeof(std::uint8_t));
bufPtr++;
std::memcpy(bufPtr, this->designator.c_str(), this->designator.length());
bufPtr += this->designator.length() + 1;
std::memcpy(bufPtr, &this->center, sizeof(this->center));
bufPtr += sizeof(this->center);
std::memcpy(bufPtr, &this->radius, sizeof(this->radius));
}
} // namespace germanairlinesva_simdata