Changeset 17459 in josm
- Timestamp:
- 2021-01-14T19:18:03+01:00 (3 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/ImageData.java
r17081 r17459 12 12 import org.openstreetmap.josm.data.coor.LatLon; 13 13 import org.openstreetmap.josm.data.gpx.GpxImageEntry; 14 import org.openstreetmap.josm.data.osm.QuadBuckets; 14 15 import org.openstreetmap.josm.gui.layer.geoimage.ImageEntry; 15 16 import org.openstreetmap.josm.tools.ListenerList; … … 42 43 43 44 private final ListenerList<ImageDataUpdateListener> listeners = ListenerList.create(); 45 private final QuadBuckets<ImageEntry> geoImages = new QuadBuckets<>(); 44 46 45 47 /** … … 61 63 this.data = new ArrayList<>(); 62 64 } 65 this.geoImages.addAll(data); 63 66 selectedImagesIndex.add(-1); 64 67 } … … 86 89 public void mergeFrom(ImageData otherData) { 87 90 data.addAll(otherData.getImages()); 91 this.geoImages.addAll(otherData.getImages()); 88 92 Collections.sort(data); 89 93 … … 154 158 155 159 /** 160 * Search for images in a bounds 161 * @param bounds The bounds to search 162 * @return images in the bounds 163 * @since 17459 164 */ 165 public Collection<ImageEntry> searchImages(Bounds bounds) { 166 return this.geoImages.search(bounds.toBBox()); 167 } 168 169 /** 156 170 * Select the next image of the sequence 157 171 */ … … 266 280 for (ImageEntry img: getSelectedImages()) { 267 281 data.remove(img); 282 this.geoImages.remove(img); 268 283 } 269 284 if (selectedImagesIndex.get(0) >= data.size()) { … … 291 306 public void removeImage(ImageEntry img) { 292 307 data.remove(img); 308 this.geoImages.remove(img); 293 309 notifyImageUpdate(); 294 310 } … … 301 317 public void updateImagePosition(ImageEntry img, LatLon newPos) { 302 318 img.setPos(newPos); 319 this.geoImages.remove(img); 320 this.geoImages.add(img); 303 321 afterImageUpdated(img); 304 322 } -
trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java
r15225 r17459 9 9 import java.util.function.Consumer; 10 10 11 import org.openstreetmap.josm.data.IQuadBucketType; 11 12 import org.openstreetmap.josm.data.coor.CachedLatLon; 12 13 import org.openstreetmap.josm.data.coor.LatLon; 14 import org.openstreetmap.josm.data.osm.BBox; 13 15 import org.openstreetmap.josm.tools.ExifReader; 14 16 import org.openstreetmap.josm.tools.JosmRuntimeException; … … 29 31 * @since 14205 (extracted from gui.layer.geoimage.ImageEntry) 30 32 */ 31 public class GpxImageEntry implements Comparable<GpxImageEntry> {33 public class GpxImageEntry implements Comparable<GpxImageEntry>, IQuadBucketType { 32 34 private File file; 33 35 private Integer exifOrientation; … … 540 542 } 541 543 544 @Override 545 public BBox getBBox() { 546 // new BBox(LatLon) is null safe. 547 return new BBox(this.getExifCoor()); 548 } 549 542 550 /** 543 551 * Remove the flag that indicates new GPS data. -
trunk/src/org/openstreetmap/josm/data/osm/IPrimitive.java
r17333 r17459 6 6 import java.util.Map; 7 7 8 import org.openstreetmap.josm.data.IQuadBucketType; 8 9 import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor; 9 10 import org.openstreetmap.josm.tools.LanguageInfo; … … 13 14 * @since 4098 14 15 */ 15 public interface IPrimitive extends Tagged, PrimitiveId, Stylable, Comparable<IPrimitive> {16 public interface IPrimitive extends IQuadBucketType, Tagged, PrimitiveId, Stylable, Comparable<IPrimitive> { 16 17 17 18 /** … … 446 447 * @since 13764 447 448 */ 449 @Override 448 450 BBox getBBox(); 449 451 -
trunk/src/org/openstreetmap/josm/data/osm/QuadBuckets.java
r17093 r17459 11 11 import java.util.stream.IntStream; 12 12 13 import org.openstreetmap.josm.data.IQuadBucketType; 13 14 import org.openstreetmap.josm.data.coor.LatLon; 14 15 import org.openstreetmap.josm.data.coor.QuadTiling; … … 20 21 * 21 22 * This class is (no longer) thread safe. 22 * @param <T> type of primitives23 * @since 2165 23 * @param <T> type of object extending {@link IQuadBucketType}. 24 * @since 2165 ({@link IPrimitive} only), xxx for {@link IQuadBucketType} 24 25 */ 25 public class QuadBuckets<T extends I Primitive> implements Collection<T> {26 public class QuadBuckets<T extends IQuadBucketType> implements Collection<T> { 26 27 private static final boolean CONSISTENCY_TESTING = false; 27 28 private static final byte NW_INDEX = 1; … … 36 37 private static final int MAX_OBJECTS_PER_NODE = 48; 37 38 38 static class QBLevel<T extends I Primitive> extends BBox {39 static class QBLevel<T extends IQuadBucketType> extends BBox { 39 40 private final byte level; 40 41 private final byte index; -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
r16970 r17459 38 38 import org.openstreetmap.josm.actions.AutoScaleAction; 39 39 import org.openstreetmap.josm.actions.RenameLayerAction; 40 import org.openstreetmap.josm.actions.mapmode.SelectLassoAction;41 40 import org.openstreetmap.josm.actions.mapmode.MapMode; 42 41 import org.openstreetmap.josm.actions.mapmode.SelectAction; 42 import org.openstreetmap.josm.actions.mapmode.SelectLassoAction; 43 43 import org.openstreetmap.josm.data.Bounds; 44 44 import org.openstreetmap.josm.data.Data; … … 562 562 tempG.setComposite(saveComp); 563 563 564 for (ImageEntry e : data. getImages()) {564 for (ImageEntry e : data.searchImages(bounds)) { 565 565 paintImage(e, mv, clip, tempG); 566 566 } … … 573 573 g.drawImage(offscreenBuffer, 0, 0, null); 574 574 } else { 575 for (ImageEntry e : data. getImages()) {575 for (ImageEntry e : data.searchImages(bounds)) { 576 576 if (e.getPos() == null) { 577 577 continue;
Note:
See TracChangeset
for help on using the changeset viewer.