Reduce marker coordinates precision (#5)

This commit is contained in:
Takase 2024-02-03 19:08:46 +08:00 committed by GitHub
parent 5c3624832f
commit 9ed7fdb1cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -235,8 +235,8 @@ public void write(JsonWriter out, Vector2d value) throws IOException {
}
out.beginObject();
out.name("x"); out.value(value.getX());
out.name(useZ ? "z" : "y"); out.value(value.getY());
out.name("x"); writeRounded(out, value.getX());
out.name(useZ ? "z" : "y"); writeRounded(out, value.getY());
out.endObject();
}
@ -262,6 +262,13 @@ public Vector2d read(JsonReader in) throws IOException {
return new Vector2d(x, y);
}
private void writeRounded(JsonWriter json, double value) throws IOException {
// rounding and remove ".0" to save string space
double d = Math.round(value * 10000d) / 10000d;
if (d == (long) d) json.value((long) d);
else json.value(d);
}
}
static class Vector3dAdapter extends TypeAdapter<Vector3d> {
@ -274,9 +281,9 @@ public void write(JsonWriter out, Vector3d value) throws IOException {
}
out.beginObject();
out.name("x"); out.value(value.getX());
out.name("y"); out.value(value.getY());
out.name("z"); out.value(value.getZ());
out.name("x"); writeRounded(out, value.getX());
out.name("y"); writeRounded(out, value.getY());
out.name("z"); writeRounded(out, value.getZ());
out.endObject();
}
@ -302,6 +309,13 @@ public Vector3d read(JsonReader in) throws IOException {
return new Vector3d(x, y, z);
}
private void writeRounded(JsonWriter json, double value) throws IOException {
// rounding and remove ".0" to save string space
double d = Math.round(value * 10000d) / 10000d;
if (d == (long) d) json.value((long) d);
else json.value(d);
}
}
static class Vector2iAdapter extends TypeAdapter<Vector2i> {