Ignore:
Timestamp:
2014-01-06T16:26:41+01:00 (12 years ago)
Author:
malcolmh
Message:

save

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed2/src/s57/S57map.java

    r30183 r30186  
    174174        public class Feature {
    175175                public Fflag flag;
    176                 public long id;
     176                public long refs;
    177177                public Obj type;
    178178                public AttMap atts;
     
    184184                Feature() {
    185185                        flag = Fflag.UNKN;
    186                         id = 0;
     186                        refs = 0;
    187187                        type = Obj.UNKOBJ;
    188188                        atts = new AttMap();
     
    304304                nodes.put(id, new Snode(Math.toRadians(lat), Math.toRadians(lon)));
    305305                feature = new Feature();
    306                 feature.id = id;
     306                feature.refs = id;
    307307                feature.flag = Fflag.POINT;
    308308                edge = null;
    309309        }
    310310
    311         public void addNode(long id, double lat, double lon, double depth) {
     311        public void newNode(long id, double lat, double lon, Nflag flag) {
     312                nodes.put(id, new Snode(Math.toRadians(lat), Math.toRadians(lon), flag));
     313                if (flag == Nflag.ANON) {
     314                        edge.nodes.add(id);
     315                }
     316        }
     317
     318        public void newNode(long id, double lat, double lon, double depth) {
    312319                nodes.put(id, new Dnode(Math.toRadians(lat), Math.toRadians(lon), depth));
    313                 feature = new Feature();
    314                 feature.id = id;
    315                 feature.flag = Fflag.POINT;
    316                 edge = null;
     320        }
     321
     322        public void newEdge(long id) {
     323                edge = new Edge();
     324                edges.put(id, edge);
     325        }
     326
     327        public void addConn(long id, int topi) {
     328                if (topi == 1) {
     329                        edge.first = id;
     330                } else {
     331                        edge.last = id;
     332                }
    317333        }
    318334
    319335        public void addEdge(long id) {
    320336                feature = new Feature();
    321                 feature.id = id;
     337                feature.refs = id;
    322338                feature.flag = Fflag.LINE;
    323339                edge = new Edge();
     
    337353        public void addArea(long id) {
    338354                feature = new Feature();
    339                 feature.id = id;
     355                feature.refs = id;
    340356                feature.flag = Fflag.AREA;
    341357                outers = new ArrayList<Long>();
     
    530546                switch (feature.flag) {
    531547                case POINT:
    532                         return nodes.get(feature.id);
     548                        return nodes.get(feature.refs);
    533549                case LINE:
    534                         Edge edge = edges.get(feature.id);
     550                        Edge edge = edges.get(feature.refs);
    535551                        EdgeIterator eit = new EdgeIterator(edge, true);
    536552                        while (eit.hasNext()) {
     
    567583                        return new Snode(llat + ((lat - llat) * harc / sarc), llon + ((lon - llon) * harc / sarc));
    568584                case AREA:
    569                         Bound bound = areas.get(feature.id).get(0);
     585                        Bound bound = areas.get(feature.refs).get(0);
    570586                        BoundIterator bit = new BoundIterator(bound);
    571587                        while (bit.hasNext()) {
Note: See TracChangeset for help on using the changeset viewer.