aboutsummaryrefslogtreecommitdiff
path: root/src/earth.proto
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-04-07 02:25:21 +0200
committermetamuffin <metamuffin@disroot.org>2025-04-07 02:25:21 +0200
commitf08eedf7fd7a40c5681316a332b1d6386f2f14c7 (patch)
treec5006dc582f23d6085d7b30a8c26b35432fa2071 /src/earth.proto
downloadweareearth-f08eedf7fd7a40c5681316a332b1d6386f2f14c7.tar
weareearth-f08eedf7fd7a40c5681316a332b1d6386f2f14c7.tar.bz2
weareearth-f08eedf7fd7a40c5681316a332b1d6386f2f14c7.tar.zst
a
Diffstat (limited to 'src/earth.proto')
-rw-r--r--src/earth.proto157
1 files changed, 157 insertions, 0 deletions
diff --git a/src/earth.proto b/src/earth.proto
new file mode 100644
index 0000000..0f0b3d0
--- /dev/null
+++ b/src/earth.proto
@@ -0,0 +1,157 @@
+syntax = "proto2";
+
+package earth.proto;
+
+message BulkMetadataRequest {
+ optional NodeKey node_key = 1;
+}
+
+message NodeDataRequest {
+ optional NodeKey node_key = 1;
+ optional Texture.Format texture_format = 2;
+ optional uint32 imagery_epoch = 3;
+}
+
+message NodeKey {
+ optional string path = 1;
+ optional uint32 epoch = 2;
+}
+
+message CopyrightRequest {
+ optional uint32 epoch = 1;
+}
+
+message TextureDataRequest {
+ optional NodeKey node_key = 1;
+ optional Texture.Format texture_format = 2;
+ optional Texture.ViewDirection view_direction = 3;
+}
+
+message BulkMetadata {
+ repeated NodeMetadata node_metadata = 1;
+ optional NodeKey head_node_key = 2;
+ repeated double head_node_center = 3 [packed = true];
+ repeated float meters_per_texel = 4 [packed = true];
+ optional uint32 default_imagery_epoch = 5;
+ optional uint32 default_available_texture_formats = 6;
+ optional uint32 default_available_view_dependent_textures = 7;
+ optional uint32 default_available_view_dependent_texture_formats = 8;
+}
+
+message NodeMetadata {
+ optional uint32 path_and_flags = 1;
+ optional uint32 epoch = 2;
+ optional uint32 bulk_metadata_epoch = 5;
+ optional bytes oriented_bounding_box = 3;
+ optional float meters_per_texel = 4;
+ repeated double processing_oriented_bounding_box = 6 [packed = true];
+ optional uint32 imagery_epoch = 7;
+ optional uint32 available_texture_formats = 8;
+ optional uint32 available_view_dependent_textures = 9;
+ optional uint32 available_view_dependent_texture_formats = 10;
+
+ enum Flags {
+ RICH3D_LEAF = 1;
+ RICH3D_NODATA = 2;
+ LEAF = 4;
+ NODATA = 8;
+ USE_IMAGERY_EPOCH = 16;
+ }
+}
+
+message NodeData {
+ repeated double matrix_globe_from_mesh = 1 [packed = true];
+ repeated Mesh meshes = 2;
+ repeated uint32 copyright_ids = 3;
+ optional NodeKey node_key = 4;
+ repeated double kml_bounding_box = 5 [packed = true];
+ optional Mesh water_mesh = 6;
+ repeated Mesh overlay_surface_meshes = 7;
+ optional bytes for_normals = 8;
+}
+
+message Mesh {
+ optional bytes vertices = 1;
+ optional bytes vertex_alphas = 9;
+ optional bytes texture_coords = 2;
+ repeated int32 indices = 3 [packed = true];
+ optional bytes octant_ranges = 4;
+ optional bytes layer_counts = 5;
+ repeated Texture texture = 6;
+ optional bytes texture_coordinates = 7;
+ repeated float uv_offset_and_scale = 10 [packed = true];
+ optional bytes layer_and_octant_counts = 8;
+ optional bytes normals = 11;
+ optional bytes normals_dev = 16;
+ optional uint32 mesh_id = 12;
+ optional bytes skirt_flags = 13;
+
+ enum Layer {
+ OVERGROUND = 0;
+ TERRAIN_BELOW_WATER = 1;
+ TERRAIN_ABOVE_WATER = 2;
+ TERRAIN_HIDDEN = 3;
+ WATER = 4;
+ WATER_SKIRTS = 5;
+ WATER_SKIRTS_INVERTED = 6;
+ OVERLAY_SURFACE = 7;
+ OVERLAY_SURFACE_SKIRTS = 8;
+ NUM_LAYERS = 9;
+ }
+
+ enum LayerMask {
+ TERRAIN_WITH_OVERGROUND = 7;
+ TERRAIN_WITH_WATER = 28;
+ TERRAIN_WITHOUT_WATER = 14;
+ }
+}
+
+message Texture {
+ repeated bytes data = 1;
+
+ optional Format format = 2;
+ enum Format {
+ JPG = 1;
+ DXT1 = 2;
+ ETC1 = 3;
+ PVRTC2 = 4;
+ PVRTC4 = 5;
+ CRN_DXT1 = 6;
+ }
+
+ optional uint32 width = 3 [default = 256];
+ optional uint32 height = 4 [default = 256];
+
+ optional ViewDirection view_direction = 5;
+ enum ViewDirection {
+ NADIR = 0;
+ NORTH_45 = 1;
+ EAST_45 = 2;
+ SOUTH_45 = 3;
+ WEST_45 = 4;
+ }
+
+ optional uint32 mesh_id = 6;
+}
+
+message TextureData {
+ optional NodeKey node_key = 1;
+ repeated Texture textures = 2;
+}
+
+message Copyrights {
+ repeated Copyright copyrights = 1;
+}
+
+message Copyright {
+ optional uint32 id = 1;
+ optional string text = 2;
+ optional string text_clean = 3;
+}
+
+message PlanetoidMetadata {
+ optional NodeMetadata root_node_metadata = 1;
+ optional float radius = 2;
+ optional float min_terrain_altitude = 3;
+ optional float max_terrain_altitude = 4;
+}