public span_image_filter_gray_bilinear_clip(source_type src, color_type back_color, interpolator_type inter) : base(src, inter, 0) { m_back_color = (back_color); }
//-------------------------------------------------------------------- public void generate(color_type* span, int x, int y, unsigned len) { base_type::interpolator().begin(x + base_type::filter_dx_dbl(), y + base_type::filter_dy_dbl(), len); do { base_type::interpolator().coordinates(&x, &y); span->v = *(value_type*) base_type::source().span(x >> image_subpixel_shift, y >> image_subpixel_shift, 1); span->a = base_mask; ++span; ++base_type::interpolator(); } while(--len); }
/*------------------------------------------------------------------------- * * ---------------------------------------------------------------------------*/ public sea_area(gvt_lib lib, string fname) { m_lib = lib; m_angle = 0; m_angle2 = 0; m_color_type = color_type.type1; m_groups = new List <sea_area_once>(); m_progress_max = 0; m_progress_current = 0; m_progress_info_str = ""; m_is_loaded_mask = false; sea_area_once once; // 카리브해 once = new sea_area_once("카리브해"); once.Add("산후안 앞바다", new Vector2(3970, 1049), new Vector2(73, 149), true); once.Add("안틸 제도 앞바다", new Vector2(3819, 1049), new Vector2(150, 149), true); once.Add("중앙대서양", new Vector2(4044, 1199), new Vector2(373, 148), false); once.Add("서 카리브 해", new Vector2(3670, 1049), new Vector2(148, 136), true); once.Add("", new Vector2(3753, 1185), new Vector2(65, 124), true); once.Add("코드 곶 앞바다", new Vector2(3819, 750), new Vector2(224, 148), true); once.Add("버뮤다제도 앞바다", new Vector2(3717, 899), new Vector2(326, 149), true); once.Add("테라 노바 앞바다", new Vector2(3790 - 1, 600), new Vector2(254, 149), true); m_groups.Add(once); // 아프리카 서해안 once = new sea_area_once("아프리카 서해안"); once.Add("곡물해안 앞바다", new Vector2(4418, 1199), new Vector2(224, 299), true); once.Add("황금해안 앞바다", new Vector2(4643, 1325), new Vector2(149, 173), true); once.Add("기니 만", new Vector2(1, 1322), new Vector2(164, 176), true); m_groups.Add(once); // 남대서양 once = new sea_area_once("남대서양"); once.Add("나미비아 앞바다", new Vector2(1, 1499), new Vector2(180, 149), true); once.Add("희망봉 앞바다", new Vector2(1, 1649), new Vector2(297, 223), true); once.Add("케이프 해저분지", new Vector2(1, 1873), new Vector2(297, 224), false); once.Add("남대서양", new Vector2(4494, 1499), new Vector2(298, 599), false); m_groups.Add(once); // 아프리카 동해안 once = new sea_area_once("아프리카 동해안"); once.Add("아굴라스 곶", new Vector2(299, 1683), new Vector2(149, 189), true); once.Add("아굴라스 해저분지", new Vector2(299, 1873), new Vector2(299, 225), false); once.Add("모잠비크 해협", new Vector2(449, 1649), new Vector2(149, 223), true); once.Add("마다가스카르 앞바다", new Vector2(458, 1500), new Vector2(440, 149), true); once.Add("남서 인도양", new Vector2(599, 1649), new Vector2(299, 449), true); m_groups.Add(once); // 홍해 once = new sea_area_once("홍해"); once.Add("잔지바르 앞바다", new Vector2(513, 1348), new Vector2(385, 151), true); once.Add("아라비아 해", new Vector2(600, 1199), new Vector2(298, 149), true); once.Add("홍해", new Vector2(457, 1076), new Vector2(142, 202), true); once.Add("페르시아 만", new Vector2(638, 1086), new Vector2(260, 112), true); m_groups.Add(once); // 인도양 once = new sea_area_once("인도양"); once.Add("인도 서쪽 해안 앞바다", new Vector2(899, 1125), new Vector2(109, 149), true); once.Add("인도 남쪽 해안 앞바다", new Vector2(899, 1274), new Vector2(224, 149), true); once.Add("벵갈만", new Vector2(1067, 1134), new Vector2(272, 139), true); once.Add("중부 인도양", new Vector2(899, 1424), new Vector2(449, 224), true); once.Add("남 인도양", new Vector2(899, 1649), new Vector2(301, 449), false); once.Add("남동 인도양", new Vector2(1201, 1649), new Vector2(296, 449), false); m_groups.Add(once); // 중남미 동해안 once = new sea_area_once("중남미 동해안"); once.Add("남 카리브 해", new Vector2(3819, 1199), new Vector2(224, 148), true); once.Add("멕시코만", new Vector2(3497, 1055), new Vector2(173, 132), true); once.Add("산로케곶 앞바다", new Vector2(4194, 1348), new Vector2(223, 150), true); once.Add("아마존강 유역", new Vector2(3900, 1348), new Vector2(293, 117), true); once.Add("남서 대서양", new Vector2(4194, 1499), new Vector2(299, 373), true); once.Add("부에노스아이레스 앞바다", new Vector2(3946, 1678), new Vector2(248, 195), true); once.Add("아르헨티나 해저분지", new Vector2(3894, 1873), new Vector2(374, 225), true); once.Add("조지아 해저분지", new Vector2(4269, 1873), new Vector2(224, 225), false); m_groups.Add(once); // 동남아시아 once = new sea_area_once("동남아시아"); once.Add("안다만 해", new Vector2(1124, 1274), new Vector2(224, 149), true); once.Add("자바 해", new Vector2(1349, 1348), new Vector2(224, 150), true); once.Add("자바섬 남쪽 앞바다", new Vector2(1349, 1500), new Vector2(224, 73), false); once.Add("", new Vector2(1349, 1572), new Vector2(148, 76), false); once.Add("시암만", new Vector2(1349, 1199), new Vector2(149, 148), true); once.Add("반다 해", new Vector2(1574, 1423), new Vector2(298, 150), true); once.Add("셀레베스 해", new Vector2(1499, 1199), new Vector2(223, 148), true); once.Add("", new Vector2(1574, 1347), new Vector2(148, 76), true); once.Add("서캐롤린 해저분지", new Vector2(1723, 1199), new Vector2(149, 223), true); m_groups.Add(once); // 남태평양 once = new sea_area_once("남태평양"); once.Add("칠레 해저분지", new Vector2(3595, 1797), new Vector2(299, 301), true); once.Add("오스트레일리아 서부 해저분지", new Vector2(1498, 1573), new Vector2(224, 224), true); once.Add("퍼스 해저분지", new Vector2(1498, 1798), new Vector2(224, 300), true); once.Add("오스트레일리아 남부 해저분지", new Vector2(1723, 1893), new Vector2(299, 205), true); once.Add("아라푸라 해", new Vector2(1723, 1573), new Vector2(373, 211), true); once.Add("", new Vector2(1873, 1497), new Vector2(223, 76), true); once.Add("동 캐롤라인 해저분지", new Vector2(1873, 1199), new Vector2(223, 297), true); once.Add("멜라네시아 해저분지", new Vector2(2097, 1199), new Vector2(223, 298), false); once.Add("산호해", new Vector2(2097, 1498), new Vector2(299, 299), true); once.Add("태즈먼 해", new Vector2(2023, 1798), new Vector2(448, 300), true); once.Add("중앙 태평양 해저분지 서쪽", new Vector2(2321, 1199), new Vector2(373, 298), false); once.Add("사모아 해저분지", new Vector2(2397, 1498), new Vector2(224, 299), true); once.Add("남태평양 해저분지 서쪽", new Vector2(2472, 1798), new Vector2(298, 300), false); once.Add("중앙 태평양 해저분지", new Vector2(2695, 1199), new Vector2(449, 298), false); once.Add("남태평양 해저분지 북쪽", new Vector2(2622, 1498), new Vector2(523, 299), false); once.Add("남태평양 해저분지", new Vector2(2771, 1798), new Vector2(374, 300), false); once.Add("남태평양 해저분지 동쪽", new Vector2(3146, 1498), new Vector2(448, 600), false); once.Add("하와이 앞바다", new Vector2(2321, 751), new Vector2(449, 447), true); m_groups.Add(once); // 중남미 서해안 once = new sea_area_once("중남미 서해안"); once.Add("페루 해저분지", new Vector2(3595, 1498), new Vector2(260, 298), true); once.Add("과야킬 만", new Vector2(3595, 1350), new Vector2(126, 147), true); once.Add("파나마 만", new Vector2(3595, 1234), new Vector2(136, 114), true); once.Add("중앙 태평양 해저분지 동쪽", new Vector2(3145, 1199), new Vector2(299, 298), true); once.Add("갈라파고스제도 앞바다", new Vector2(3445, 1350), new Vector2(149, 147), true); once.Add("테우안테펙 만", new Vector2(3445, 1234), new Vector2(149, 114), true); m_groups.Add(once); // 동아시아 once = new sea_area_once("동아시아"); once.Add("동아시아 서부", new Vector2(1393, 912), new Vector2(254, 286), true); once.Add("동아시아 동부", new Vector2(1649, 751), new Vector2(373, 447), true); once.Add("북서 태평양 해저분지", new Vector2(2024, 751), new Vector2(297, 447), true); m_groups.Add(once); // 극북대서양 once = new sea_area_once("극북대서양"); once.Add("프람 해협", new Vector2(4344, 0), new Vector2(224, 294), true); once.Add("덴마크 해저분지", new Vector2(4344, 295), new Vector2(224, 155), false); once.Add("로포텐 해저분지", new Vector2(4569, 0), new Vector2(223, 294), true); once.Add("노르웨이 해저분지", new Vector2(4569, 295), new Vector2(224, 155), false); once.Add("노르웨이 해저분지2", new Vector2(0, 295), new Vector2(74, 155), false); m_groups.Add(once); // 유럽 극북 once = new sea_area_once("유럽 극북"); once.Add("서 바렌츠해", new Vector2(1, 0), new Vector2(447, 294), true); once.Add("북 노르웨이해", new Vector2(75, 295), new Vector2(300, 155), true); once.Add("동 바렌츠해", new Vector2(449, 0), new Vector2(304, 294), true); once.Add("동 바렌츠해2", new Vector2(601, 294), new Vector2(152, 156), true); once.Add("백해", new Vector2(376, 295), new Vector2(223, 225), true); m_groups.Add(once); // 유라시아 북쪽 once = new sea_area_once("유라시아 북쪽"); once.Add("서 카라해", new Vector2(754, 0), new Vector2(369, 450), true); once.Add("동 카라해", new Vector2(1124, 0), new Vector2(294, 450), true); once.Add("라프테프 해", new Vector2(1419, 0), new Vector2(298, 450), true); m_groups.Add(once); // 유라시아 극동 once = new sea_area_once("유라시아 극동"); once.Add("코텔니 섬 앞바다", new Vector2(1718, 0), new Vector2(304, 450), true); once.Add("동 시베리아 해", new Vector2(2023, 0), new Vector2(373, 450), true); once.Add("추크치 해", new Vector2(2397, 0), new Vector2(297, 450), true); m_groups.Add(once); // 베링 해 once = new sea_area_once("베링 해"); once.Add("동 베링해", new Vector2(2472, 451), new Vector2(222, 298), true); once.Add("서 베링해", new Vector2(2246, 451), new Vector2(225, 298), true); once.Add("캄차카 반도 앞바다", new Vector2(2023, 451), new Vector2(222, 298), true); once.Add("오호츠크 해", new Vector2(1648, 451), new Vector2(374, 298), true); m_groups.Add(once); // 북미 서해안 once = new sea_area_once("북미 서해안"); once.Add("알렉산더 제도 앞바다", new Vector2(2994, 451), new Vector2(223, 447), true); once.Add("북동태평양", new Vector2(2770, 750), new Vector2(223, 448), false); once.Add("알래스카 만", new Vector2(2695, 451), new Vector2(298, 298), true); once.Add("캘리포니아 만", new Vector2(3218, 899), new Vector2(254, 299), true); once.Add("샌프란시스코 앞바다", new Vector2(2994, 899), new Vector2(223, 299), true); m_groups.Add(once); // 동 캐나다 once = new sea_area_once("동 캐나다"); once.Add("허드슨 해협", new Vector2(3746, 451), new Vector2(148, 148), true); once.Add("허드슨 만", new Vector2(3595, 451), new Vector2(150, 298), true); once.Add("배핀 만", new Vector2(3895, 295), new Vector2(147, 155), false); once.Add("배핀 앞바다", new Vector2(3595, 295), new Vector2(299, 155), true); once.Add("엘즈미어 앞바다", new Vector2(3595, 0), new Vector2(447, 294), true); m_groups.Add(once); // 서 캐나다 once = new sea_area_once("서 캐나다"); once.Add("북극제도 앞바다", new Vector2(3218, 0), new Vector2(376, 450), true); once.Add("보퍼트 해", new Vector2(2994, 0), new Vector2(223, 450), true); once.Add("배로우 곶 앞바다", new Vector2(2695, 0), new Vector2(298, 450), true); m_groups.Add(once); // 그린란드 앞바다 2개가 빠진 상태 // 읽기 load(fname); }
/*------------------------------------------------------------------------- * 그리기 * ---------------------------------------------------------------------------*/ public void Draw(Vector2 offset, LoopXImage image, int alpha, int alpha2, color_type type) { if (m_type == sea_type.normal) { return; // 통상상태 } int color; // 지도の종류によって색を若干変える if (m_type == sea_type.safty) { // 안전 if (type == color_type.type1) { color = Color.FromArgb(alpha, 0, 128, 220).ToArgb(); } else { color = Color.FromArgb(alpha, 0, 64, 200).ToArgb(); } } else { // 무법 if (type == color_type.type1) { color = Color.FromArgb(alpha2, 200, 0, 0).ToArgb(); } else { color = Color.FromArgb(alpha2, 200, 0, 0).ToArgb(); } } foreach (data d in m_list) { d.Draw(offset, image, color); } }
//-------------------------------------------------------------------- public void generate(color_type* span, int x, int y, unsigned len) { base_type::interpolator().begin(x + base_type::filter_dx_dbl(), y + base_type::filter_dy_dbl(), len); long_type fg; int diameter = base_type::filter().diameter(); int filter_scale = diameter << image_subpixel_shift; int16* weight_array = base_type::filter().weight_array(); do { int rx; int ry; int rx_inv = image_subpixel_scale; int ry_inv = image_subpixel_scale; base_type::interpolator().coordinates(&x, &y); base_type::interpolator().local_scale(&rx, &ry); base_type::adjust_scale(&rx, &ry); rx_inv = image_subpixel_scale * image_subpixel_scale / rx; ry_inv = image_subpixel_scale * image_subpixel_scale / ry; int radius_x = (diameter * rx) >> 1; int radius_y = (diameter * ry) >> 1; int len_x_lr = (diameter * rx + image_subpixel_mask) >> image_subpixel_shift; x += base_type::filter_dx_int() - radius_x; y += base_type::filter_dy_int() - radius_y; fg = image_filter_scale / 2; int y_lr = y >> image_subpixel_shift; int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * ry_inv) >> image_subpixel_shift; int total_weight = 0; int x_lr = x >> image_subpixel_shift; int x_hr = ((image_subpixel_mask - (x & image_subpixel_mask)) * rx_inv) >> image_subpixel_shift; int x_hr2 = x_hr; value_type* fg_ptr = (value_type*)base_type::source().span(x_lr, y_lr, len_x_lr); for(;;) { int weight_y = weight_array[y_hr]; x_hr = x_hr2; for(;;) { int weight = (weight_y * weight_array[x_hr] + image_filter_scale / 2) >> downscale_shift; fg += *fg_ptr * weight; total_weight += weight; x_hr += rx_inv; if(x_hr >= filter_scale) break; fg_ptr = (value_type*)base_type::source().next_x(); } y_hr += ry_inv; if(y_hr >= filter_scale) break; fg_ptr = (value_type*)base_type::source().next_y(); } fg /= total_weight; if(fg < 0) fg = 0; if(fg > base_mask) fg = base_mask; span->v = (value_type)fg; span->a = base_mask; ++span; ++base_type::interpolator(); } while(--len); }
//-------------------------------------------------------------------- public void generate(color_type* span, int x, int y, unsigned len) { base_type::interpolator().begin(x + base_type::filter_dx_dbl(), y + base_type::filter_dy_dbl(), len); int fg; value_type *fg_ptr; unsigned diameter = base_type::filter().diameter(); int start = base_type::filter().start(); int16* weight_array = base_type::filter().weight_array(); int x_count; int weight_y; do { base_type::interpolator().coordinates(&x, &y); x -= base_type::filter_dx_int(); y -= base_type::filter_dy_int(); int x_hr = x; int y_hr = y; int x_lr = x_hr >> image_subpixel_shift; int y_lr = y_hr >> image_subpixel_shift; fg = image_filter_scale / 2; int x_fract = x_hr & image_subpixel_mask; unsigned y_count = diameter; y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask); fg_ptr = (value_type*)base_type::source().span(x_lr + start, y_lr + start, diameter); for(;;) { x_count = diameter; weight_y = weight_array[y_hr]; x_hr = image_subpixel_mask - x_fract; for(;;) { fg += *fg_ptr * ((weight_y * weight_array[x_hr] + image_filter_scale / 2) >> image_filter_shift); if(--x_count == 0) break; x_hr += image_subpixel_scale; fg_ptr = (value_type*)base_type::source().next_x(); } if(--y_count == 0) break; y_hr += image_subpixel_scale; fg_ptr = (value_type*)base_type::source().next_y(); } fg >>= image_filter_shift; if(fg < 0) fg = 0; if(fg > base_mask) fg = base_mask; span->v = (value_type)fg; span->a = base_mask; ++span; ++base_type::interpolator(); } while(--len); }
//-------------------------------------------------------------------- public void generate(color_type* span, int x, int y, unsigned len) { base_type::interpolator().begin(x + base_type::filter_dx_dbl(), y + base_type::filter_dy_dbl(), len); calc_type fg; value_type *fg_ptr; int16* weight_array = base_type::filter().weight_array() + ((base_type::filter().diameter()/2 - 1) << image_subpixel_shift); do { int x_hr; int y_hr; base_type::interpolator().coordinates(&x_hr, &y_hr); x_hr -= base_type::filter_dx_int(); y_hr -= base_type::filter_dy_int(); int x_lr = x_hr >> image_subpixel_shift; int y_lr = y_hr >> image_subpixel_shift; unsigned weight; fg = image_filter_scale / 2; x_hr &= image_subpixel_mask; y_hr &= image_subpixel_mask; fg_ptr = (value_type*)base_type::source().span(x_lr, y_lr, 2); weight = (weight_array[x_hr + image_subpixel_scale] * weight_array[y_hr + image_subpixel_scale] + image_filter_scale / 2) >> image_filter_shift; fg += weight * *fg_ptr; fg_ptr = (value_type*)base_type::source().next_x(); weight = (weight_array[x_hr] * weight_array[y_hr + image_subpixel_scale] + image_filter_scale / 2) >> image_filter_shift; fg += weight * *fg_ptr; fg_ptr = (value_type*)base_type::source().next_y(); weight = (weight_array[x_hr + image_subpixel_scale] * weight_array[y_hr] + image_filter_scale / 2) >> image_filter_shift; fg += weight * *fg_ptr; fg_ptr = (value_type*)base_type::source().next_x(); weight = (weight_array[x_hr] * weight_array[y_hr] + image_filter_scale / 2) >> image_filter_shift; fg += weight * *fg_ptr; fg >>= image_filter_shift; if(fg > base_mask) fg = base_mask; span->v = (value_type)fg; span->a = base_mask; ++span; ++base_type::interpolator(); } while(--len); }
//-------------------------------------------------------------------- public void generate(color_type* span, int x, int y, unsigned len) { base_type::interpolator().begin(x + base_type::filter_dx_dbl(), y + base_type::filter_dy_dbl(), len); calc_type fg; calc_type src_alpha; value_type back_v = m_back_color.v; value_type back_a = m_back_color.a; value_type *fg_ptr; int maxx = base_type::source().width() - 1; int maxy = base_type::source().height() - 1; do { int x_hr; int y_hr; base_type::interpolator().coordinates(&x_hr, &y_hr); x_hr -= base_type::filter_dx_int(); y_hr -= base_type::filter_dy_int(); int x_lr = x_hr >> image_subpixel_shift; int y_lr = y_hr >> image_subpixel_shift; if(x_lr >= 0 && y_lr >= 0 && x_lr < maxx && y_lr < maxy) { fg = image_subpixel_scale * image_subpixel_scale / 2; x_hr &= image_subpixel_mask; y_hr &= image_subpixel_mask; fg_ptr = (value_type*)base_type::source().row_ptr(y_lr) + x_lr; fg += *fg_ptr++ * (image_subpixel_scale - x_hr) * (image_subpixel_scale - y_hr); fg += *fg_ptr++ * (image_subpixel_scale - y_hr) * x_hr; ++y_lr; fg_ptr = (value_type*)base_type::source().row_ptr(y_lr) + x_lr; fg += *fg_ptr++ * (image_subpixel_scale - x_hr) * y_hr; fg += *fg_ptr++ * x_hr * y_hr; fg >>= image_subpixel_shift * 2; src_alpha = base_mask; } else { unsigned weight; if(x_lr < -1 || y_lr < -1 || x_lr > maxx || y_lr > maxy) { fg = back_v; src_alpha = back_a; } else { fg = src_alpha = image_subpixel_scale * image_subpixel_scale / 2; x_hr &= image_subpixel_mask; y_hr &= image_subpixel_mask; weight = (image_subpixel_scale - x_hr) * (image_subpixel_scale - y_hr); if(x_lr >= 0 && y_lr >= 0 && x_lr <= maxx && y_lr <= maxy) { fg += weight * *((value_type*)base_type::source().row_ptr(y_lr) + x_lr); src_alpha += weight * base_mask; } else { fg += back_v * weight; src_alpha += back_a * weight; } x_lr++; weight = x_hr * (image_subpixel_scale - y_hr); if(x_lr >= 0 && y_lr >= 0 && x_lr <= maxx && y_lr <= maxy) { fg += weight * *((value_type*)base_type::source().row_ptr(y_lr) + x_lr); src_alpha += weight * base_mask; } else { fg += back_v * weight; src_alpha += back_a * weight; } x_lr--; y_lr++; weight = (image_subpixel_scale - x_hr) * y_hr; if(x_lr >= 0 && y_lr >= 0 && x_lr <= maxx && y_lr <= maxy) { fg += weight * *((value_type*)base_type::source().row_ptr(y_lr) + x_lr); src_alpha += weight * base_mask; } else { fg += back_v * weight; src_alpha += back_a * weight; } x_lr++; weight = x_hr * y_hr; if(x_lr >= 0 && y_lr >= 0 && x_lr <= maxx && y_lr <= maxy) { fg += weight * *((value_type*)base_type::source().row_ptr(y_lr) + x_lr); src_alpha += weight * base_mask; } else { fg += back_v * weight; src_alpha += back_a * weight; } fg >>= image_subpixel_shift * 2; src_alpha >>= image_subpixel_shift * 2; } } span->v = (value_type)fg; span->a = (value_type)src_alpha; ++span; ++base_type::interpolator(); } while(--len); }
public void background_color(color_type v) { m_back_color = v; }
//-------------------------------------------------------------------- public void generate(color_type* span, int x, int y, unsigned len) { base_type::interpolator().begin(x + base_type::filter_dx_dbl(), y + base_type::filter_dy_dbl(), len); calc_type fg; value_type *fg_ptr; do { int x_hr; int y_hr; base_type::interpolator().coordinates(&x_hr, &y_hr); x_hr -= base_type::filter_dx_int(); y_hr -= base_type::filter_dy_int(); int x_lr = x_hr >> image_subpixel_shift; int y_lr = y_hr >> image_subpixel_shift; fg = image_subpixel_scale * image_subpixel_scale / 2; x_hr &= image_subpixel_mask; y_hr &= image_subpixel_mask; fg_ptr = (value_type*)base_type::source().span(x_lr, y_lr, 2); fg += *fg_ptr * (image_subpixel_scale - x_hr) * (image_subpixel_scale - y_hr); fg_ptr = (value_type*)base_type::source().next_x(); fg += *fg_ptr * x_hr * (image_subpixel_scale - y_hr); fg_ptr = (value_type*)base_type::source().next_y(); fg += *fg_ptr * (image_subpixel_scale - x_hr) * y_hr; fg_ptr = (value_type*)base_type::source().next_x(); fg += *fg_ptr * x_hr * y_hr; span->v = value_type(fg >> (image_subpixel_shift * 2)); span->a = base_mask; ++span; ++base_type::interpolator(); } while(--len); }
/*------------------------------------------------------------------------- * * ---------------------------------------------------------------------------*/ public sea_area(gvt_lib lib, string fname) { m_lib = lib; m_angle = 0; m_angle2 = 0; m_color_type = color_type.type1; m_groups = new List <sea_area_once>(); m_progress_max = 0; m_progress_current = 0; m_progress_info_str = ""; m_is_loaded_mask = false; sea_area_once once; // カリブ海 once = new sea_area_once("カリブ海"); once.Add("サンフアン沖", new Vector2(3970, 1049), new Vector2(73, 149), true); once.Add("アンティル諸島沖", new Vector2(3819, 1049), new Vector2(150, 149), true); once.Add("中央大西洋", new Vector2(4044, 1199), new Vector2(373, 148), false); once.Add("西カリブ海", new Vector2(3670, 1049), new Vector2(148, 136), true); once.Add("", new Vector2(3753, 1185), new Vector2(65, 124), true); once.Add("コッド岬沖", new Vector2(3819, 750), new Vector2(224, 148), true); once.Add("バミューダ諸島沖", new Vector2(3717, 899), new Vector2(326, 149), true); once.Add("テラ・ノヴァ海", new Vector2(3790 - 1, 600), new Vector2(254, 149), true); m_groups.Add(once); // アフリカ西岸 once = new sea_area_once("アフリカ西岸"); once.Add("穀物海岸沖", new Vector2(4418, 1199), new Vector2(224, 299), true); once.Add("黄金海岸沖", new Vector2(4643, 1325), new Vector2(149, 173), true); once.Add("ギニア湾", new Vector2(1, 1322), new Vector2(164, 176), true); m_groups.Add(once); // 南大西洋 once = new sea_area_once("南大西洋"); once.Add("ナミビア沖", new Vector2(1, 1499), new Vector2(180, 149), true); once.Add("喜望峰沖", new Vector2(1, 1649), new Vector2(297, 223), true); once.Add("ケープ海盆", new Vector2(1, 1873), new Vector2(297, 224), false); once.Add("南大西洋", new Vector2(4494, 1499), new Vector2(298, 599), false); m_groups.Add(once); // アフリカ東岸 once = new sea_area_once("アフリカ東岸"); once.Add("アガラス岬沖", new Vector2(299, 1683), new Vector2(149, 189), true); once.Add("アガラス海盆", new Vector2(299, 1873), new Vector2(299, 225), false); once.Add("モザンビーク海峡", new Vector2(449, 1649), new Vector2(149, 223), true); once.Add("マダガスカル沖", new Vector2(458, 1500), new Vector2(440, 149), true); once.Add("南西インド洋", new Vector2(599, 1649), new Vector2(299, 449), true); m_groups.Add(once); // 紅海 once = new sea_area_once("紅海"); once.Add("ザンジバル沖", new Vector2(513, 1348), new Vector2(385, 151), true); once.Add("アラビア海", new Vector2(600, 1199), new Vector2(298, 149), true); once.Add("紅海", new Vector2(457, 1076), new Vector2(142, 202), true); once.Add("ペルシャ湾", new Vector2(638, 1086), new Vector2(260, 112), true); m_groups.Add(once); // インド洋 once = new sea_area_once("インド洋"); once.Add("インド西岸沖", new Vector2(899, 1125), new Vector2(109, 149), true); once.Add("インド南岸沖", new Vector2(899, 1274), new Vector2(224, 149), true); once.Add("ベンガル湾", new Vector2(1067, 1134), new Vector2(272, 139), true); once.Add("中部インド洋", new Vector2(899, 1424), new Vector2(449, 224), true); once.Add("南インド洋", new Vector2(899, 1649), new Vector2(301, 449), false); once.Add("南東インド洋", new Vector2(1201, 1649), new Vector2(296, 449), false); m_groups.Add(once); // 中南米東岸 once = new sea_area_once("中南米東岸"); once.Add("南カリブ海", new Vector2(3819, 1199), new Vector2(224, 148), true); once.Add("メキシコ湾", new Vector2(3497, 1055), new Vector2(173, 132), true); once.Add("サンロケ岬沖", new Vector2(4194, 1348), new Vector2(223, 150), true); once.Add("アマゾン川流域", new Vector2(3900, 1348), new Vector2(293, 117), true); once.Add("南西大西洋", new Vector2(4194, 1499), new Vector2(299, 373), true); once.Add("ブエノスアイレス沖", new Vector2(3946, 1678), new Vector2(248, 195), true); once.Add("アルゼンチン海盆", new Vector2(3894, 1873), new Vector2(374, 225), true); once.Add("ジョージア海盆", new Vector2(4269, 1873), new Vector2(224, 225), false); m_groups.Add(once); // 東南アジア once = new sea_area_once("東南アジア"); once.Add("アンダマン海", new Vector2(1124, 1274), new Vector2(224, 149), true); once.Add("ジャワ海", new Vector2(1349, 1348), new Vector2(224, 150), true); once.Add("ジャワ島南方沖", new Vector2(1349, 1500), new Vector2(224, 73), false); once.Add("", new Vector2(1349, 1572), new Vector2(148, 76), false); once.Add("シャム湾", new Vector2(1349, 1199), new Vector2(149, 148), true); once.Add("バンダ海", new Vector2(1574, 1423), new Vector2(298, 150), true); once.Add("セレベス海", new Vector2(1499, 1199), new Vector2(223, 148), true); once.Add("", new Vector2(1574, 1347), new Vector2(148, 76), true); once.Add("西カロリン海盆", new Vector2(1723, 1199), new Vector2(149, 223), true); m_groups.Add(once); // 南太平洋 once = new sea_area_once("南太平洋"); once.Add("チリ海盆", new Vector2(3595, 1797), new Vector2(299, 301), true); once.Add("西オーストラリア海盆", new Vector2(1498, 1573), new Vector2(224, 224), true); once.Add("パース海盆", new Vector2(1498, 1798), new Vector2(224, 300), true); once.Add("南オーストラリア海盆", new Vector2(1723, 1893), new Vector2(299, 205), true); once.Add("アラフラ海", new Vector2(1723, 1573), new Vector2(373, 211), true); once.Add("", new Vector2(1873, 1497), new Vector2(223, 76), true); once.Add("東カロリン海盆", new Vector2(1873, 1199), new Vector2(223, 297), true); once.Add("メラネシア海盆", new Vector2(2097, 1199), new Vector2(223, 298), false); once.Add("コーラル海", new Vector2(2097, 1498), new Vector2(299, 299), true); once.Add("タスマン海", new Vector2(2023, 1798), new Vector2(448, 300), true); once.Add("中央太平洋海盆西", new Vector2(2321, 1199), new Vector2(373, 298), false); once.Add("サモア海盆", new Vector2(2397, 1498), new Vector2(224, 299), true); once.Add("南太平洋海盆西", new Vector2(2472, 1798), new Vector2(298, 300), false); once.Add("中央太平洋海盆", new Vector2(2695, 1199), new Vector2(449, 298), false); once.Add("南太平洋海盆北", new Vector2(2622, 1498), new Vector2(523, 299), false); once.Add("南太平洋海盆", new Vector2(2771, 1798), new Vector2(374, 300), false); once.Add("南太平洋海盆東", new Vector2(3146, 1498), new Vector2(448, 600), false); once.Add("ハワイ沖", new Vector2(2321, 751), new Vector2(449, 447), true); m_groups.Add(once); // 中南米西岸 once = new sea_area_once("中南米西岸"); once.Add("ペルー海盆", new Vector2(3595, 1498), new Vector2(260, 298), true); once.Add("グアヤキル湾", new Vector2(3595, 1350), new Vector2(126, 147), true); once.Add("パナマ湾", new Vector2(3595, 1234), new Vector2(136, 114), true); once.Add("中央太平洋海盆東", new Vector2(3145, 1199), new Vector2(299, 298), true); once.Add("ガラパゴス諸島沖", new Vector2(3445, 1350), new Vector2(149, 147), true); once.Add("テワンテペク湾", new Vector2(3445, 1234), new Vector2(149, 114), true); m_groups.Add(once); // 東アジア once = new sea_area_once("東アジア"); once.Add("東アジア西部", new Vector2(1393, 912), new Vector2(254, 286), true); once.Add("東アジア東部", new Vector2(1649, 751), new Vector2(373, 447), true); once.Add("北西太平洋海盆", new Vector2(2024, 751), new Vector2(297, 447), true); m_groups.Add(once); // 極北大西洋 once = new sea_area_once("極北大西洋"); once.Add("フラム海峡", new Vector2(4344, 0), new Vector2(224, 294), true); once.Add("デンマーク海盆", new Vector2(4344, 295), new Vector2(224, 155), false); once.Add("ロフォーテン海盆", new Vector2(4569, 0), new Vector2(223, 294), true); once.Add("ノルウェー海盆", new Vector2(4569, 295), new Vector2(224, 155), false); once.Add("ノルウェー海盆2", new Vector2(0, 295), new Vector2(74, 155), false); m_groups.Add(once); // ヨーロッパ極北 once = new sea_area_once("ヨーロッパ極北"); once.Add("西バレンツ海", new Vector2(1, 0), new Vector2(447, 294), true); once.Add("北ノルウェー海", new Vector2(75, 295), new Vector2(300, 155), true); once.Add("東バレンツ海", new Vector2(449, 0), new Vector2(304, 294), true); once.Add("東バレンツ海2", new Vector2(601, 294), new Vector2(152, 156), true); once.Add("白海", new Vector2(376, 295), new Vector2(223, 225), true); m_groups.Add(once); // ユーラシア北 once = new sea_area_once("ユーラシア北"); once.Add("西カラ海", new Vector2(754, 0), new Vector2(369, 450), true); once.Add("東カラ海", new Vector2(1124, 0), new Vector2(294, 450), true); once.Add("ラプテフ海", new Vector2(1419, 0), new Vector2(298, 450), true); m_groups.Add(once); // ユーラシア極東 once = new sea_area_once("ユーラシア極東"); once.Add("コテリヌイ島沖", new Vector2(1718, 0), new Vector2(304, 450), true); once.Add("東シベリア海", new Vector2(2023, 0), new Vector2(373, 450), true); once.Add("チュクチ海", new Vector2(2397, 0), new Vector2(297, 450), true); m_groups.Add(once); // ベーリング海 once = new sea_area_once("ベーリング海"); once.Add("東ベーリング海", new Vector2(2472, 451), new Vector2(222, 298), true); once.Add("西ベーリング海", new Vector2(2246, 451), new Vector2(225, 298), true); once.Add("カムチャツカ半島沖", new Vector2(2023, 451), new Vector2(222, 298), true); once.Add("オホーツク海", new Vector2(1648, 451), new Vector2(374, 298), true); m_groups.Add(once); // 北米西岸 once = new sea_area_once("北米西岸"); once.Add("アレキサンダー諸島沖", new Vector2(2994, 451), new Vector2(223, 447), true); once.Add("北東太平洋", new Vector2(2770, 750), new Vector2(223, 448), false); once.Add("アラスカ湾", new Vector2(2695, 451), new Vector2(298, 298), true); once.Add("カリフォルニア湾", new Vector2(3218, 899), new Vector2(254, 299), true); once.Add("サンフランシスコ沖", new Vector2(2994, 899), new Vector2(223, 299), true); m_groups.Add(once); // 東カナダ once = new sea_area_once("東カナダ"); once.Add("ハドソン海峡", new Vector2(3746, 451), new Vector2(148, 148), true); once.Add("ハドソン湾", new Vector2(3595, 451), new Vector2(150, 298), true); once.Add("バフィン湾", new Vector2(3895, 295), new Vector2(147, 155), false); once.Add("バフィン島沖", new Vector2(3595, 295), new Vector2(299, 155), true); once.Add("エルズミーア島沖", new Vector2(3595, 0), new Vector2(447, 294), true); m_groups.Add(once); // 西カナダ once = new sea_area_once("西カナダ"); once.Add("北極諸島沖", new Vector2(3218, 0), new Vector2(376, 450), true); once.Add("ボーフォート海", new Vector2(2994, 0), new Vector2(223, 450), true); once.Add("バロー岬沖", new Vector2(2695, 0), new Vector2(298, 450), true); m_groups.Add(once); // 読み込み load(fname); }