Ignore:
Timestamp:
2013-01-06T19:35:09+01:00 (13 years ago)
Author:
malcolmh
Message:

save

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed2/src/seamap/Rules.java

    r29175 r29176  
    1616import s57.S57obj.*;
    1717
    18 import seamap.SeaMap.AttItem;
    19 import seamap.SeaMap.Feature;
     18import seamap.SeaMap.*;
    2019import symbols.Beacons;
    2120import symbols.Buoys;
     21import symbols.Harbours;
     22import symbols.Landmarks;
     23import symbols.Symbols.Instr;
    2224
    2325public class Rules {
     
    114116        private static void distances(ArrayList<Feature> features) {}
    115117        private static void ports(ArrayList<Feature> features) {}
    116         private static void landmarks(ArrayList<Feature> features) {}
    117         private static void moorings(ArrayList<Feature> features) {}
     118        private static void landmarks(ArrayList<Feature> features) {
     119                for (Feature feature : features) {
     120                        ArrayList<CatLMK> cats = (ArrayList<CatLMK>) Renderer.getAttVal(feature, feature.type, 0, Att.CATLMK);
     121                        ArrayList<Instr> catSym = Landmarks.Shapes.get(cats.get(0));
     122                        ArrayList<FncFNC> fncs = (ArrayList<FncFNC>) Renderer.getAttVal(feature, feature.type, 0, Att.FUNCTN);
     123                        ArrayList<Instr> fncSym = Landmarks.Funcs.get(fncs.get(0));
     124                        if ((fncs.get(0) == FncFNC.FNC_CHCH) && (cats.get(0) == CatLMK.LMK_TOWR)) catSym = Landmarks.ChurchTower;
     125                        Renderer.symbol(feature, catSym, feature.type);
     126                        Renderer.symbol(feature, fncSym, feature.type);
     127                }
     128        }
     129        private static void moorings(ArrayList<Feature> features) {
     130                for (Feature feature : features) {
     131                        CatMOR cat = (CatMOR) Renderer.getAttVal(feature, feature.type, 0, Att.CATMOR);
     132                        switch (cat) {
     133                        case MOR_DLPN:
     134                                Renderer.symbol(feature, Harbours.Dolphin, feature.type);
     135                                break;
     136                        case MOR_DDPN:
     137                                Renderer.symbol(feature, Harbours.DeviationDolphin, feature.type);
     138                                break;
     139                        case MOR_BLRD:
     140                        case MOR_POST:
     141                                Renderer.symbol(feature, Harbours.Bollard, feature.type);
     142                                break;
     143                        case MOR_BUOY:
     144                                BoySHP shape = (BoySHP) Renderer.getAttVal(feature, feature.type, 0, Att.BOYSHP);
     145                                if (shape == BoySHP.BOY_UNKN) shape = BoySHP.BOY_SPHR;
     146                                Renderer.symbol(feature, Buoys.Shapes.get(shape), feature.type);
     147                                break;
     148                        }
     149                }
     150        }
    118151        private static void notices(ArrayList<Feature> features) {}
    119152        private static void marinas(ArrayList<Feature> features) {}
    120153        private static void bridges(ArrayList<Feature> features) {}
    121         private static void lights(ArrayList<Feature> features) {}
    122         private static void floats(ArrayList<Feature> features) {}
    123         private static void signals(ArrayList<Feature> features) {}
    124154        private static void wrecks(ArrayList<Feature> features) {}
    125155        private static void gauges(ArrayList<Feature> features) {}
    126         private static void platforms(ArrayList<Feature> features) {}
     156        private static void lights(ArrayList<Feature> features) {
     157                for (Feature feature : features) {
     158                        switch (feature.type) {
     159                        case LITMAJ:
     160                                Renderer.symbol(feature, Beacons.LightMajor, feature.type);
     161                                break;
     162                        case LITMIN:
     163                        case LIGHTS:
     164                                Renderer.symbol(feature, Beacons.LightMinor, feature.type);
     165                                break;
     166                        }
     167                }
     168        }
     169        private static void signals(ArrayList<Feature> features) {
     170                for (Feature feature : features) {
     171                        switch (feature.type) {
     172                        case SISTAT:
     173                        case SISTAW:
     174                                Renderer.symbol(feature, Harbours.SignalStation, feature.type);
     175                                break;
     176                        case RDOSTA:
     177                                Renderer.symbol(feature, Harbours.SignalStation, feature.type);
     178                                break;
     179                        case RADSTA:
     180                                Renderer.symbol(feature, Harbours.SignalStation, feature.type);
     181                                break;
     182                        case PILBOP:
     183                                Renderer.symbol(feature, Harbours.SignalStation, feature.type);
     184                                break;
     185                        case CGUSTA:
     186//                      Renderer.symbol(feature, Harbours.CGuardStation, feature.type);
     187                        break;
     188                        case RSCSTA:
     189//                              Renderer.symbol(feature, Harbours.RescueStation, feature.type);
     190                                break;
     191                        }
     192                }
     193        }
     194        private static void floats(ArrayList<Feature> features) {
     195                for (Feature feature : features) {
     196                        switch (feature.type) {
     197                        case LITVES:
     198                                Renderer.symbol(feature, Buoys.Super, feature.type);
     199                                break;
     200                        case LITFLT:
     201                                Renderer.symbol(feature, Buoys.Float, feature.type);
     202                                break;
     203                        case BOYINB:
     204                                Renderer.symbol(feature, Buoys.Storage, feature.type);
     205                                break;
     206                        }
     207                }
     208        }
     209        private static void platforms(ArrayList<Feature> features) {
     210                for (Feature feature : features) {
     211                        Renderer.symbol(feature, Landmarks.Platform, feature.type);
     212                }
     213        }
    127214        private static void buoys(ArrayList<Feature> features) {
    128215                for (Feature feature : features) {
Note: See TracChangeset for help on using the changeset viewer.