From 12b17487ac415f262215b5beb529802fddf8a34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sat, 26 Nov 2022 13:05:08 +0100 Subject: [PATCH] Some more ENC render style enhancements --- gpxsee.qrc | 4 ++ icons/map/marine/monument.png | Bin 0 -> 6429 bytes icons/map/marine/radar-transponder.png | Bin 0 -> 334 bytes icons/map/marine/radar.png | Bin 0 -> 437 bytes icons/map/marine/radio.png | Bin 0 -> 395 bytes src/map/ENC/mapdata.cpp | 77 +++++++++++++------------ src/map/ENC/objects.h | 5 ++ src/map/ENC/style.cpp | 29 ++++++---- 8 files changed, 68 insertions(+), 47 deletions(-) create mode 100644 icons/map/marine/monument.png create mode 100644 icons/map/marine/radar-transponder.png create mode 100644 icons/map/marine/radar.png create mode 100644 icons/map/marine/radio.png diff --git a/gpxsee.qrc b/gpxsee.qrc index 1dd6164d..e5fec13b 100644 --- a/gpxsee.qrc +++ b/gpxsee.qrc @@ -179,6 +179,10 @@ icons/map/marine/conveyor-line.png icons/map/marine/pipeline-overhead.png icons/map/marine/coast-guard.png + icons/map/marine/monument.png + icons/map/marine/radio.png + icons/map/marine/radar.png + icons/map/marine/radar-transponder.png diff --git a/icons/map/marine/monument.png b/icons/map/marine/monument.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a8a2dc1d89c9168eb4a46dc0f132726b145dac GIT binary patch literal 6429 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 literal 0 HcmV?d00001 diff --git a/icons/map/marine/radar.png b/icons/map/marine/radar.png new file mode 100644 index 0000000000000000000000000000000000000000..ff36820539c58e06ca2a2264eb69dd3341d4e2f4 GIT binary patch literal 437 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7a$D;Kb?2i11Zh|kH})6 zj_V-I=%g{bf`NfC)YHW=B;xSd@PiwVC~&Z*MQ@N_U*;OV^H#s>5B*7sen~C9e@^@G z?G~=&pCImF5aFrHo{(hBW52;|!=;s@=y(02=j78hFQe~&+wMDgfu8Hf z-WUE}d(xXi{vVoLD$hCfn9BO5%C(7aEKD@l=SS$QbP0NJ?M3$Y9j6@5eF_v+-Iua2ganI^wZojUd0)>&UwT6RW7eM-2I@bz8pl^?ww cHXG;tXLNhZT(L1FsRtDLp00i_>zopr0KycvQ2+n{ literal 0 HcmV?d00001 diff --git a/icons/map/marine/radio.png b/icons/map/marine/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..6cbc794b50b3aeded1a4c94169389b08ac7bdc38 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7a$D;Kb?2i11Zh|kH})6 zj_V-I=%g{bf`Nfi+tbA{B;xSd@Myjx3LG*!oZmmr&wsl1*XvrFmfst5!%wdA*rM5) zd70g~iO)k~!wz@$1EqG{w>Pq`^_ODVyUvv1=RWT?kq2?Fw>Vwf?h$Z&;;GI_f8rmd z{4Fdv8=~&STaeHC&S%w!(^Fkdcx4#;;^Pvguxu)5o%x{2h2eqU8u`XkS@DU}^Xn%* zn7Z)#lBTs>W{RTsMKqq4w(i{Few?dvZKTlQO=2?AhvzdWENz(*^fAYTH;3acZ=Jot zgcY0<`wnt?xF{%jCfPR5OjDY0-m3ptFpCFM+V>RIfES-RIJqm<+0J?I>8$d}P{rx` zw{*>3{-_&$x*Mh(ySgIi*Um6C@h0)q`PH(g-!Q41w)<{1jddaa+Ia<@T2Zpsci;LH mF5?qdXi|Ol;g` orderMapInit() map.insert(SUBTYPE(BUAARE, 2), 5); map.insert(SUBTYPE(BUAARE, 6), 6); map.insert(SUBTYPE(BUAARE, 0), 7); - map.insert(TYPE(BCNISD), 8); - map.insert(TYPE(BCNLAT), 9); - map.insert(TYPE(I_BCNLAT), 9); - map.insert(TYPE(BCNSAW), 10); - map.insert(TYPE(BCNSPP), 11); - map.insert(TYPE(BOYCAR), 12); - map.insert(TYPE(BOYINB), 13); - map.insert(TYPE(BOYISD), 14); - map.insert(TYPE(BOYLAT), 15); - map.insert(TYPE(I_BOYLAT), 15); - map.insert(TYPE(BOYSAW), 16); - map.insert(TYPE(BOYSPP), 17); - map.insert(TYPE(MORFAC), 18); - map.insert(TYPE(OFSPLF), 19); - map.insert(TYPE(LIGHTS), 20); - map.insert(TYPE(OBSTRN), 21); - map.insert(TYPE(WRECKS), 22); - map.insert(TYPE(UWTROC), 23); - map.insert(TYPE(HRBFAC), 24); - map.insert(TYPE(PILPNT), 25); - map.insert(TYPE(ACHBRT), 26); - map.insert(TYPE(I_ACHBRT), 26); - map.insert(TYPE(CRANES), 27); - map.insert(TYPE(I_CRANES), 27); - map.insert(TYPE(LNDMRK), 28); - map.insert(TYPE(LNDELV), 29); - map.insert(TYPE(I_DISMAR), 30); + map.insert(TYPE(RDOSTA), 8); + map.insert(TYPE(RADSTA), 9); + map.insert(TYPE(RTPBCN), 10); + map.insert(TYPE(BCNISD), 11); + map.insert(TYPE(BCNLAT), 12); + map.insert(TYPE(I_BCNLAT), 12); + map.insert(TYPE(BCNSAW), 13); + map.insert(TYPE(BCNSPP), 14); + map.insert(TYPE(BOYCAR), 15); + map.insert(TYPE(BOYINB), 16); + map.insert(TYPE(BOYISD), 17); + map.insert(TYPE(BOYLAT), 18); + map.insert(TYPE(I_BOYLAT), 18); + map.insert(TYPE(BOYSAW), 19); + map.insert(TYPE(BOYSPP), 20); + map.insert(TYPE(MORFAC), 21); + map.insert(TYPE(OFSPLF), 22); + map.insert(TYPE(LIGHTS), 23); + map.insert(TYPE(OBSTRN), 24); + map.insert(TYPE(WRECKS), 25); + map.insert(TYPE(UWTROC), 26); + map.insert(TYPE(HRBFAC), 27); + map.insert(TYPE(PILPNT), 28); + map.insert(TYPE(ACHBRT), 29); + map.insert(TYPE(I_ACHBRT), 29); + map.insert(TYPE(CRANES), 30); + map.insert(TYPE(I_CRANES), 30); + map.insert(TYPE(LNDMRK), 31); + map.insert(TYPE(LNDELV), 32); + map.insert(TYPE(I_DISMAR), 0xFFFFFFFE); map.insert(TYPE(SOUNDG), 0xFFFFFFFF); return map; @@ -870,25 +873,25 @@ Range MapData::zooms() const double size = qMin(_bounds.width(), _bounds.height()); if (size > 180) - return Range(0, 20); + return Range(0, 10); else if (size > 90) - return Range(1, 20); + return Range(1, 11); else if (size > 45) - return Range(2, 20); + return Range(2, 12); else if (size > 22.5) - return Range(3, 20); + return Range(3, 13); else if (size > 11.25) - return Range(4, 20); + return Range(4, 14); else if (size > 5.625) - return Range(5, 20); + return Range(5, 15); else if (size > 2.813) - return Range(6, 20); + return Range(6, 16); else if (size > 1.406) - return Range(7, 20); + return Range(7, 17); else if (size > 0.703) - return Range(8, 20); + return Range(8, 18); else if (size > 0.352) - return Range(9, 20); + return Range(9, 19); else if (size > 0.176) return Range(10, 20); else if (size > 0.088) diff --git a/src/map/ENC/objects.h b/src/map/ENC/objects.h index f73bb4a3..6adc6e79 100644 --- a/src/map/ENC/objects.h +++ b/src/map/ENC/objects.h @@ -46,6 +46,7 @@ #define LNDELV 72 #define LNDMRK 74 #define LIGHTS 75 +#define LOKBSN 79 #define MORFAC 84 #define NAVLNE 85 #define OBSTRN 86 @@ -56,6 +57,9 @@ #define PONTON 95 #define PRCARE 96 #define PYLONS 98 +#define RADSTA 102 +#define RTPBCN 103 +#define RDOSTA 105 #define RAILWY 106 #define RCRTCL 108 #define RECTRC 109 @@ -83,6 +87,7 @@ #define I_BRIDGE 17011 #define I_CBLOHD 17012 #define I_FERYRT 17013 +#define I_LOKBSN 17016 #define I_HULKES 17020 #define I_PONTON 17021 #define I_PIPOHD 17024 diff --git a/src/map/ENC/style.cpp b/src/map/ENC/style.cpp index 571f9396..be4aa859 100644 --- a/src/map/ENC/style.cpp +++ b/src/map/ENC/style.cpp @@ -86,22 +86,26 @@ void Style::defaultPolygonStyle() QPen(QColor("#966118"))); _polygons[TYPE(SILTNK)] = Polygon(QBrush("#d98b21"), QPen(QColor("#966118"), 2)); + _polygons[TYPE(LOKBSN)] = Polygon(QBrush(QColor("#333333"), + Qt::Dense7Pattern)); + _polygons[TYPE(I_LOKBSN)] = Polygon(QBrush(QColor("#333333"), + Qt::Dense7Pattern)); _drawOrder << TYPE(M_COVR) << TYPE(LNDARE) << SUBTYPE(DEPARE, 0) << SUBTYPE(DEPARE, 1) << SUBTYPE(DEPARE, 2) << SUBTYPE(DEPARE, 3) << TYPE(UNSARE) << SUBTYPE(DEPARE, 4) << SUBTYPE(DEPARE, 5) << SUBTYPE(DEPARE, 6) << TYPE(LAKARE) << TYPE(CANALS) << TYPE(DYKCON) - << TYPE(RIVERS) << TYPE(DRGARE) << TYPE(FAIRWY) << TYPE(BUAARE) - << TYPE(BUISGL) << TYPE(SILTNK) << TYPE(AIRARE) << TYPE(BRIDGE) - << TYPE(I_BRIDGE) << TYPE(I_TERMNL) << TYPE(SLCONS) << TYPE(I_SLCONS) - << TYPE(PONTON) << TYPE(I_PONTON) << TYPE(HULKES) << TYPE(I_HULKES) - << TYPE(FLODOC) << TYPE(I_FLODOC) << TYPE(DRYDOC) << TYPE(DAMCON) - << TYPE(PYLONS) << TYPE(MORFAC) << TYPE(GATCON) << TYPE(I_GATCON) - << TYPE(DMPGRD) << TYPE(TSEZNE) << TYPE(OBSTRN) << TYPE(UWTROC) - << TYPE(DWRTPT) << SUBTYPE(ACHARE, 1) << SUBTYPE(I_ACHARE, 1) - << SUBTYPE(RESARE, 9) << SUBTYPE(RESARE, 2) << SUBTYPE(I_RESARE, 2) - << TYPE(PRCARE); + << TYPE(RIVERS) << TYPE(DRGARE) << TYPE(FAIRWY) << TYPE(LOKBSN) + << TYPE(I_LOKBSN) << TYPE(BUAARE) << TYPE(BUISGL) << TYPE(SILTNK) + << TYPE(AIRARE) << TYPE(BRIDGE) << TYPE(I_BRIDGE) << TYPE(I_TERMNL) + << TYPE(SLCONS) << TYPE(I_SLCONS) << TYPE(PONTON) << TYPE(I_PONTON) + << TYPE(HULKES) << TYPE(I_HULKES) << TYPE(FLODOC) << TYPE(I_FLODOC) + << TYPE(DRYDOC) << TYPE(DAMCON) << TYPE(PYLONS) << TYPE(MORFAC) + << TYPE(GATCON) << TYPE(I_GATCON) << TYPE(DMPGRD) << TYPE(TSEZNE) + << TYPE(OBSTRN) << TYPE(UWTROC) << TYPE(DWRTPT) << SUBTYPE(ACHARE, 1) + << SUBTYPE(I_ACHARE, 1) << SUBTYPE(RESARE, 9) << SUBTYPE(RESARE, 2) + << SUBTYPE(I_RESARE, 2) << TYPE(PRCARE); } void Style::defaultLineStyle() @@ -149,6 +153,7 @@ void Style::defaultLineStyle() _lines[TYPE(CONVYR)] = Line(QImage(":/marine/conveyor-line.png")); _lines[TYPE(PIPOHD)] = Line(QImage(":/marine/pipeline-overhead.png")); _lines[TYPE(I_PIPOHD)] = Line(QImage(":/marine/pipeline-overhead.png")); + _lines[TYPE(CANALS)] = Line(QPen(QColor("#9fc4e1"), 2)); } void Style::defaultPointStyle() @@ -173,6 +178,7 @@ void Style::defaultPointStyle() _points[TYPE(BCNSAW)] = Point(QImage(":/marine/beacon.png"), Small); _points[TYPE(BCNSPP)] = Point(QImage(":/marine/beacon.png"), Small); _points[SUBTYPE(LNDMRK, 3)] = Point(QImage(":/marine/chimney.png")); + _points[SUBTYPE(LNDMRK, 9)] = Point(QImage(":/marine/monument.png")); _points[SUBTYPE(LNDMRK, 20)] = Point(QImage(":/marine/church.png")); _points[SUBTYPE(LNDMRK, 17)] = Point(QImage(":/marine/tower.png")); _points[TYPE(LNDELV)] = Point(QImage(":/marine/triangulation-point.png")); @@ -209,6 +215,9 @@ void Style::defaultPointStyle() _points[SUBTYPE(I_DISMAR, 1)].setTextColor(QColor("#ffffff")); _points[SUBTYPE(I_DISMAR, 1)].setTextFontSize(Small); _points[TYPE(CGUSTA)] = Point(QImage(":/marine/coast-guard.png")); + _points[TYPE(RDOSTA)] = Point(QImage(":/marine/radio.png")); + _points[TYPE(RADSTA)] = Point(QImage(":/marine/radar.png")); + _points[TYPE(RTPBCN)] = Point(QImage(":/marine/radar-transponder.png")); } Style::Style()