This commit is contained in:
2026-07-28 11:11:30 +08:00
parent 9d615e15b4
commit 259b7b54a4
3 changed files with 13 additions and 4 deletions
+6
View File
@@ -336,6 +336,7 @@ void Map_View_Config::from_base_json(const Psc::JSON* that_json) {
map2d.from_base_json(that_json->get("map2d"));
map3d.from_base_json(that_json->get("map3d"));
camera.from_base_json(that_json->get("camera"));
base_station_fly_to_height_offset_meters = std::max(100.0, read_optional_double_field(that_json, "baseStationFlyToHeightOffsetMeters", base_station_fly_to_height_offset_meters));
}
Psc::JSON Map_View_Config::to_base_json() const {
auto ret = Psc::JSON::object();
@@ -343,6 +344,7 @@ Psc::JSON Map_View_Config::to_base_json() const {
ret.append({"map2d", map2d.to_base_json()});
ret.append({"map3d", map3d.to_base_json()});
ret.append({"camera", camera.to_base_json()});
ret.append({"baseStationFlyToHeightOffsetMeters", base_station_fly_to_height_offset_meters});
return ret;
}
void Cesium_Graphics_Config::from_base_json(const Psc::JSON* that_json) {
@@ -369,6 +371,8 @@ void Cesium_Graphics_Config::from_base_json(const Psc::JSON* that_json) {
terrain_maximum_level = std::clamp(read_optional_uint32_field(that_json, "terrain_maximum_level", terrain_maximum_level), 0u, 24u);
terrain_cache_tiles = std::clamp(read_optional_uint32_field(that_json, "terrain_cache_tiles", terrain_cache_tiles), 16u, 2048u);
terrain_occlusion_enabled = read_optional_bool_field(that_json, "terrain_occlusion_enabled", terrain_occlusion_enabled);
surface_navigation_reference_visible = read_optional_bool_field(that_json, "surface_navigation_reference_visible", surface_navigation_reference_visible);
view_axes_visible = read_optional_bool_field(that_json, "view_axes_visible", view_axes_visible);
occlusion_sample_spacing_meters = std::clamp(read_optional_double_field(that_json, "occlusion_sample_spacing_meters", occlusion_sample_spacing_meters), 10.0, 5000.0);
occlusion_clearance_margin_meters = read_optional_double_field(that_json, "occlusion_clearance_margin_meters", occlusion_clearance_margin_meters);
}
@@ -391,6 +395,8 @@ Psc::JSON Cesium_Graphics_Config::to_base_json() const {
ret.append({"terrain_maximum_level", terrain_maximum_level});
ret.append({"terrain_cache_tiles", terrain_cache_tiles});
ret.append({"terrain_occlusion_enabled", terrain_occlusion_enabled});
ret.append({"surface_navigation_reference_visible", surface_navigation_reference_visible});
ret.append({"view_axes_visible", view_axes_visible});
ret.append({"occlusion_sample_spacing_meters", occlusion_sample_spacing_meters});
ret.append({"occlusion_clearance_margin_meters", occlusion_clearance_margin_meters});
return ret;
+3
View File
@@ -166,6 +166,7 @@ struct Map_View_Config {
Map_Tile_View_Config map2d;
Map_Tile_View_Config map3d;
Map_Camera_Config camera;
double base_station_fly_to_height_offset_meters = 8000.0;
void from_base_json(const Psc::JSON* that_json);
[[nodiscard]] Psc::JSON to_base_json() const;
[[nodiscard]] static bool is_scene_mode(std::string_view mode);
@@ -188,6 +189,8 @@ struct Cesium_Graphics_Config {
std::uint32_t terrain_maximum_level = 15;
std::uint32_t terrain_cache_tiles = 128;
bool terrain_occlusion_enabled = false;
bool surface_navigation_reference_visible = false;
bool view_axes_visible = false;
double occlusion_sample_spacing_meters = 250.0;
double occlusion_clearance_margin_meters = 10.0;
void from_base_json(const Psc::JSON* that_json);