From 345bb237a7f682670a6107ae75afd948cc1f6ab6 Mon Sep 17 00:00:00 2001 From: Aki Date: Sun, 15 May 2022 15:37:59 +0200 Subject: Separated Wreck from Killmail --- DumpSource.cpp | 62 ++++++---------------------------------------------------- 1 file changed, 6 insertions(+), 56 deletions(-) (limited to 'DumpSource.cpp') 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 #include #include #include @@ -8,23 +7,14 @@ #include #include -#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& 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(), info["victim"]["position"]["y"].get(), info["victim"]["position"]["z"].get(), @@ -42,54 +32,14 @@ DumpSource::DumpSource(const char* filename) : km.location.system = location["name"].get().data(); km.location.constellation = location["constellation"].get().data(); km.location.region = location["region"].get().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((km.original.x - average.x) * SCALE), - static_cast((km.original.y - average.y) * SCALE), - static_cast((km.original.z - average.z) * SCALE), - }; - } - grid.origin = average; - } } -std::vector -DumpSource::grids() const +std::vector +DumpSource::killmails() const { - return m_grids; -} - - -Grid& -find_grid_for(std::vector& 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; } -- cgit v1.1