diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-07 02:25:21 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-07 02:25:21 +0200 |
commit | f08eedf7fd7a40c5681316a332b1d6386f2f14c7 (patch) | |
tree | c5006dc582f23d6085d7b30a8c26b35432fa2071 /src/earth.proto | |
download | weareearth-f08eedf7fd7a40c5681316a332b1d6386f2f14c7.tar weareearth-f08eedf7fd7a40c5681316a332b1d6386f2f14c7.tar.bz2 weareearth-f08eedf7fd7a40c5681316a332b1d6386f2f14c7.tar.zst |
a
Diffstat (limited to 'src/earth.proto')
-rw-r--r-- | src/earth.proto | 157 |
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; +} |