summaryrefslogtreecommitdiffhomepage
path: root/DumpSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'DumpSource.cpp')
-rw-r--r--DumpSource.cpp62
1 files changed, 6 insertions, 56 deletions
diff --git a/DumpSource.cpp b/DumpSource.cpp
index 56b3336..1fdf7a8 100644
--- a/DumpSource.cpp
+++ b/DumpSource.cpp
@@ -1,6 +1,5 @@
#include "DumpSource.h"
-#include <cmath>
#include <string>
#include <utility>
#include <vector>
@@ -8,23 +7,14 @@
#include <nlohmann/json.hpp>
#include <raylib.h>
-#include "Grid.h"
#include "Killmail.h"
-#include "LongVector3.h"
using json = nlohmann::json;
-static constexpr long double SCALE {.0001};
-static constexpr long double EXTENT {1000 * 50000};
-
-
-static Grid& find_grid_for(std::vector<Grid>& grids, const LongVector3& original);
-
-
DumpSource::DumpSource(const char* filename) :
- m_grids {}
+ m_killmails {}
{
if (!FileExists(filename))
throw "File does not exist";
@@ -32,7 +22,7 @@ DumpSource::DumpSource(const char* filename) :
auto dump = json::parse(text);
for (const auto& info : dump["killmails"]) {
Killmail km;
- km.original = {
+ km.position = {
info["victim"]["position"]["x"].get<long double>(),
info["victim"]["position"]["y"].get<long double>(),
info["victim"]["position"]["z"].get<long double>(),
@@ -42,54 +32,14 @@ DumpSource::DumpSource(const char* filename) :
km.location.system = location["name"].get<std::string>().data();
km.location.constellation = location["constellation"].get<std::string>().data();
km.location.region = location["region"].get<std::string>().data();
- auto& grid = find_grid_for(m_grids, km.original);
- grid.killmails.push_back(std::move(km));
+ m_killmails.push_back(std::move(km));
}
UnloadFileText(text);
- for (auto& grid : m_grids) {
- LongVector3 average {0, 0, 0};
- for (const auto& km : grid.killmails) {
- average.x += km.original.x;
- average.y += km.original.y;
- average.z += km.original.z;
- }
- const auto killmails = grid.killmails.size();
- average.x /= killmails;
- average.y /= killmails;
- average.z /= killmails;
- for (auto& km : grid.killmails) {
- km.position = {
- static_cast<float>((km.original.x - average.x) * SCALE),
- static_cast<float>((km.original.y - average.y) * SCALE),
- static_cast<float>((km.original.z - average.z) * SCALE),
- };
- }
- grid.origin = average;
- }
}
-std::vector<Grid>
-DumpSource::grids() const
+std::vector<Killmail>
+DumpSource::killmails() const
{
- return m_grids;
-}
-
-
-Grid&
-find_grid_for(std::vector<Grid>& grids, const LongVector3& original)
-{
- for (auto& grid : grids) {
- for (auto& km : grid.killmails) {
- const long double dist =
- std::sqrt(
- std::pow(original.x - km.original.x, 2) +
- std::pow(original.y - km.original.y, 2) +
- std::pow(original.z - km.original.z, 2));
- if (dist < EXTENT)
- return grid;
- }
- }
- grids.push_back(Grid{});
- return grids.back();
+ return m_killmails;
}