IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
diff --git a/src/org/openstreetmap/josm/data/osm/PrimitiveId.java b/src/org/openstreetmap/josm/data/osm/PrimitiveId.java
|
a
|
b
|
|
| 16 | 16 | long getUniqueId(); |
| 17 | 17 | |
| 18 | 18 | /** |
| 19 | | * Gets the type of object represented by this object. |
| | 19 | * Gets the type of object represented by this object. Note that this should |
| | 20 | * return the base primitive type ({@link OsmPrimitiveType#NODE}, |
| | 21 | * {@link OsmPrimitiveType#WAY}, and {@link OsmPrimitiveType#RELATION}). |
| 20 | 22 | * |
| 21 | 23 | * @return the object type |
| 22 | 24 | * @see Node |
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
diff --git a/src/org/openstreetmap/josm/data/vector/VectorDataStore.java b/src/org/openstreetmap/josm/data/vector/VectorDataStore.java
|
a
|
b
|
|
| 267 | 267 | private <T extends Tile & VectorTile> VectorRelation areaToRelation(T tile, Layer layer, |
| 268 | 268 | Collection<VectorPrimitive> featureObjects, Area area) { |
| 269 | 269 | VectorRelation vectorRelation = new VectorRelation(layer.getName()); |
| 270 | | for (VectorPrimitive member : pathIteratorToObjects(tile, layer, featureObjects, area.getPathIterator(null))) { |
| | 270 | PathIterator pathIterator = area.getPathIterator(null); |
| | 271 | int windingRule = pathIterator.getWindingRule(); |
| | 272 | for (VectorPrimitive member : pathIteratorToObjects(tile, layer, featureObjects, pathIterator)) { |
| 271 | 273 | final String role; |
| 272 | 274 | if (member instanceof VectorWay && ((VectorWay) member).isClosed()) { |
| | 275 | // Area messes up the winding. See #22404. |
| | 276 | if (windingRule == PathIterator.WIND_NON_ZERO) { |
| | 277 | VectorWay vectorWay = (VectorWay) member; |
| | 278 | List<VectorNode> nodes = new ArrayList<>(vectorWay.getNodes()); |
| | 279 | Collections.reverse(nodes); |
| | 280 | vectorWay.setNodes(nodes); |
| | 281 | } |
| 273 | 282 | role = Geometry.isClockwise(((VectorWay) member).getNodes()) ? "outer" : "inner"; |
| 274 | 283 | } else { |
| 275 | 284 | role = ""; |
| … |
… |
|
| 374 | 383 | } else if (shape instanceof Path2D) { |
| 375 | 384 | primitive = pathToWay(tile, layer, featureObjects, (Path2D) shape).stream().findFirst().orElse(null); |
| 376 | 385 | } else if (shape instanceof Area) { |
| 377 | | primitive = areaToRelation(tile, layer, featureObjects, (Area) shape); |
| 378 | | primitive.put(RELATION_TYPE, MULTIPOLYGON_TYPE); |
| | 386 | VectorRelation vectorRelation = areaToRelation(tile, layer, featureObjects, (Area) shape); |
| | 387 | if (vectorRelation.getMembersCount() != 1) { |
| | 388 | primitive = vectorRelation; |
| | 389 | primitive.put(RELATION_TYPE, MULTIPOLYGON_TYPE); |
| | 390 | } else { |
| | 391 | primitive = vectorRelation.getMember(0).getMember(); |
| | 392 | } |
| 379 | 393 | } else { |
| 380 | 394 | // We shouldn't hit this, but just in case |
| 381 | 395 | throw new UnsupportedOperationException(Objects.toString(shape)); |
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
diff --git a/src/org/openstreetmap/josm/data/vector/VectorWay.java b/src/org/openstreetmap/josm/data/vector/VectorWay.java
|
a
|
b
|
|
| 130 | 130 | |
| 131 | 131 | @Override |
| 132 | 132 | public OsmPrimitiveType getType() { |
| | 133 | return OsmPrimitiveType.WAY; |
| | 134 | } |
| | 135 | |
| | 136 | @Override |
| | 137 | public OsmPrimitiveType getDisplayType() { |
| 133 | 138 | return this.isClosed() ? OsmPrimitiveType.CLOSEDWAY : OsmPrimitiveType.WAY; |
| 134 | 139 | } |
| 135 | 140 | } |