Ignore:
Timestamp:
2014-02-15T13:01:07+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

    r30280 r30282  
    316316                                feature.geom.refs.add(comp);
    317317                                ListIterator<S57map.Prim> ite = feature.geom.elems.listIterator();
     318                                long first = 0;
    318319                                while (ite.hasNext()) {
    319320                                        Prim prim = ite.next();
    320                                         if (prim.outer) {
    321                                                 comp.size++;
    322                                                
     321                                        Edge edge = edges.get(prim.id);
     322                                        if (!prim.outer) {
     323                                                if (first == 0) {
     324                                                        feature.geom.inners++;
     325                                                        comp = new Comp(ref++, 0);
     326                                                        feature.geom.refs.add(comp);
     327                                                        first = edge.first;
     328                                                } else {
     329                                                        if (edge.last == first) {
     330                                                                first = 0;
     331                                                        }
     332                                                }
    323333                                        }
     334                                        comp.size++;
    324335                                }
    325336                        }
     
    609620                }
    610621               
    611                 public long nextRef() {
     622                public long nextRef(boolean all) {
    612623                        long ref = eit.nextRef();
    613                         if (ref == lastref) {
     624                        if (!all && (ref == lastref)) {
    614625                                ref = eit.nextRef();
    615626                        }
    616627                        lastref = ref;
    617628                        return ref;
     629                }
     630               
     631                public long nextRef() {
     632                        return nextRef(false);
    618633                }
    619634               
Note: See TracChangeset for help on using the changeset viewer.