Доработка. Размер изображение карты для режима РТО и РЛС

This commit is contained in:
sasha80
2023-12-27 11:26:57 +03:00
parent 394881165d
commit a749ada6d2
7 changed files with 28 additions and 16 deletions

View File

@@ -21,12 +21,12 @@ boot_splash/use_filter=false
config/icon="res://data/icon.png"
config/map_bcs=Vector3(0.5, 1.5, 0.3)
config/map_tile_size=256
config/map_image_hight=512
config/map_image_width=512
config/map_minimum_zoom=3
config/map_maximum_zoom=19
config/map_server_addr="https://b.tile.openstreetmap.org"
interfer/resend_timeout=1000.0
config/map_image_size_rto=Vector2i(512, 512)
config/map_image_size_rls=Vector2i(1024, 1024)
[autoload]

View File

@@ -16,7 +16,8 @@ func get_strob_width() -> float: return $строб.material.get('shader_par
func get_strob_band() -> float: return $строб.material.get('shader_parameter/band') * 125.0
func get_strob_radius() -> float: return $строб.material.get('shader_parameter/radius') * 125.0
func get_radius_outter() -> float: return material.get('shader_parameter/radius_outter')
func get_radius_inner() -> float: return material.get('shader_parameter/radius_inner')
func get_radius_outter() -> float: return material.get('shader_parameter/radius_outter')
func get_radius_inner_0() -> float: return material.get('shader_parameter/radius_inner_0')
func get_radius_inner_1() -> float: return material.get('shader_parameter/radius_inner_1')
func set_view_mode(val: int): material.set('shader_parameter/mode', val);

View File

@@ -46,15 +46,20 @@ func _ready():
map_request = HTTPRequest.new()
add_child(map_request)
map_request.request_completed.connect(self._map_request_completed)
var map_image_width = ProjectSettings.get_setting('application/config/map_image_width', 512)
var map_image_hight = ProjectSettings.get_setting('application/config/map_image_hight', 512)
map_image = Image.create(map_image_width, map_image_hight, true, Image.FORMAT_RGB8)
map_bcs = ProjectSettings.get_setting('application/config/map_bcs', Vector3(1.0, 1.0, 1.0))
map_server_addr = ProjectSettings.get_setting('application/config/map_server_addr')
var map_image_size = ProjectSettings.get_setting('application/config/map_image_size_rto', Vector2i(512, 512))
var map_tile_size = ProjectSettings.get_setting('application/config/map_tile_size', 256)
map_image = Image.create(map_image_size.x, map_image_size.y, true, Image.FORMAT_RGB8)
map_tile = Rect2i(0, 0, map_tile_size, map_tile_size)
signaller.connect('zoom_changed', Callable(self, '_on_zoom_changed'))
signaller.connect('map_image_size_changed', Callable(self, '_on_map_image_size_changed'))
log.info('Модуль географической карты готов')
log.info('Адрес сервера поставщика карт: \"%s\"' % map_server_addr)
func _on_map_mode_changed(mode: bool) -> void:
print_debug(mode)
func mark_image_center(image: Image, color: Color = Color.RED):
@@ -109,7 +114,6 @@ func _process(_delta: float):
else:
if map_tile_stack.size() == 0:
signaller.emit_signal('zoom_complete', map_zoom)
print_debug('zoom_complete: %s' % [map_rects])
map_tile_state = TASK_STATE.DONE

View File

@@ -45,7 +45,9 @@ enum DragFSM {
}
func on_button_view_toggled(toggled: bool): $canvas.set_view_mode(int(toggled))
func on_button_view_toggled(toggled: bool):
$canvas.set_view_mode(int(toggled))
signaller.emit_signal('map_mode_changed', toggled)
## Обработчик сигнала изменения списка целей

View File

@@ -80,4 +80,4 @@ signal map_coords_changed(lan: float, lat: float)
## Вызывается при изменении размера изображения для отображения карты.
## [param w], [param h] - Вновь установленный размер.
signal map_image_size_changed(w: int, h: int)
signal map_mode_changed(w: int, h: int)

View File

@@ -5,13 +5,17 @@ code = "shader_type canvas_item;
#include \"tools.gdshaderinc\"
#define RADIUS_INNER_0 200.0 /* Радиус внутренний для режима приоритет РТО */
#define RADIUS_INNER_1 480.0 /* Радиус внутренний для режима приоритет РЛС */
uniform vec2 pc0 = vec2(560, 560); /* Центр сетки антенн */
uniform float rotation: hint_range(0.0, 360.0) = 0.0; /* */
uniform vec4 color0: source_color = vec4(0.38, 0.47, 0.51, 0.4);
uniform vec4 color1: source_color = vec4(0.39, 0.44, 0.50, 0.4);
uniform float radius_inner = 200.0; /* Радиус внутренний. Должно быть равно ant_band_r0_0 */
uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */
uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */
uniform float radius_inner_0 = RADIUS_INNER_0;
uniform float radius_inner_1 = RADIUS_INNER_1;
uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */
uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */
const int ant_band_count_0 = 2;
const int ant_band_count_1 = 2;
@@ -21,7 +25,7 @@ const int ant_band_count_4 = 2;
const int ant_band_count_5 = 2;
const int ant_band_count_6 = 2;
const float ant_band_r0_0[] = {200.0, 480.0};
const float ant_band_r0_0[] = {RADIUS_INNER_0, RADIUS_INNER_1};
const float ant_band_r0_1[] = {250.0, 490.0};
const float ant_band_r0_2[] = {300.0, 500.0};
const float ant_band_r0_3[] = {350.0, 510.0};
@@ -100,6 +104,7 @@ shader_parameter/pc0 = Vector2(560, 560)
shader_parameter/rotation = 0.0
shader_parameter/color0 = Color(0.380392, 0.470588, 0.509804, 0.537255)
shader_parameter/color1 = Color(0.3315, 0.45645, 0.51, 0.537255)
shader_parameter/radius_inner = 200.0
shader_parameter/radius_inner_0 = 200.0
shader_parameter/radius_inner_1 = 480.0
shader_parameter/radius_outter = 550.0
shader_parameter/mode = 0

View File

@@ -4,7 +4,7 @@ shader_type canvas_item;
/* Рисует текстуру по маске в форме окружности */
uniform float radius: hint_range(0.0, 1.0) = 0.8; /* Радиус */
uniform float radius: hint_range(0.0, 1.0) = 0.39; /* Радиус */
const vec2 center = vec2(0.5, 0.5);
void fragment()