17 std::invalid_argument(
"invalid SystemPath format") {}
40 SystemPath(Sint32 x, Sint32 y, Sint32 z, Uint32 si, Uint32 bi) :
89 return sqrt(x * x + y * y + z * z);
97 return (x * x + y * y + z * z);
181 static_assert(
sizeof(Sint32) ==
sizeof(Uint32),
"something crazy is going on!");
187 memcpy(blob + 0 *
sizeof(Uint32), &
sectorX,
sizeof(Uint32));
188 memcpy(blob + 1 *
sizeof(Uint32), &
sectorY,
sizeof(Uint32));
189 memcpy(blob + 2 *
sizeof(Uint32), &
sectorZ,
sizeof(Uint32));
190 memcpy(blob + 3 *
sizeof(Uint32), &
systemIndex,
sizeof(Uint32));
191 memcpy(blob + 4 *
sizeof(Uint32), &
bodyIndex,
sizeof(Uint32));
nlohmann::json Json
Definition Json.h:8
std::string to_string(const SystemPath &path)
Definition SystemPath.cpp:97
Definition LuaWrappable.h:13
Definition SystemPath.h:100
bool operator()(const SystemPath &a, const SystemPath &b) const
Definition SystemPath.h:102
Definition SystemPath.h:110
bool operator()(const SystemPath &a, const SystemPath &b) const
Definition SystemPath.h:112
Definition SystemPath.h:13
SystemPath(Sint32 x, Sint32 y, Sint32 z)
Definition SystemPath.h:28
static SystemPath Parse(const char *const str)
Definition SystemPath.cpp:36
static double SectorDistanceSqr(const SystemPath &a, const SystemPath &b)
Definition SystemPath.h:92
SystemPath SystemOnly() const
Definition SystemPath.h:169
SystemPath()
Definition SystemPath.h:21
static double SectorDistance(const SystemPath &a, const SystemPath &b)
Definition SystemPath.h:84
SystemPath(Sint32 x, Sint32 y, Sint32 z, Uint32 si)
Definition SystemPath.h:34
bool IsSameSector(const SystemPath &b) const
Definition SystemPath.h:145
Sint32 sectorZ
Definition SystemPath.h:56
friend bool operator==(const SystemPath &a, const SystemPath &b)
Definition SystemPath.h:60
Uint32 systemIndex
Definition SystemPath.h:57
bool HasValidSystem() const
Definition SystemPath.h:130
Sint32 sectorX
Definition SystemPath.h:54
friend bool operator!=(const SystemPath &a, const SystemPath &b)
Definition SystemPath.h:70
static SystemPath FromJson(const Json &jsonObj)
Definition SystemPath.cpp:80
SystemPath(const SystemPath *path)
Definition SystemPath.h:47
bool IsSystemPath() const
Definition SystemPath.h:126
Uint32 bodyIndex
Definition SystemPath.h:58
bool IsBodyPath() const
Definition SystemPath.h:135
bool IsSameSystem(const SystemPath &b) const
Definition SystemPath.h:153
SystemPath SectorOnly() const
Definition SystemPath.h:164
void SerializeToBlob(char *blob) const
Definition SystemPath.h:183
friend bool operator<(const SystemPath &a, const SystemPath &b)
Definition SystemPath.h:75
SystemPath(Sint32 x, Sint32 y, Sint32 z, Uint32 si, Uint32 bi)
Definition SystemPath.h:40
static const size_t SizeAsBlob
Definition SystemPath.h:182
Sint32 sectorY
Definition SystemPath.h:55
bool HasValidBody() const
Definition SystemPath.h:139
void ToJson(Json &jsonObj) const
Definition SystemPath.cpp:69
bool IsSectorPath() const
Definition SystemPath.h:121
Definition SystemPath.h:15
ParseFailure()
Definition SystemPath.h:16