Building / S3DB layers: simplify building element

This commit is contained in:
Emux 2018-02-06 19:24:48 +02:00
parent 25aa1329fc
commit 3a59a31ab3
No known key found for this signature in database
GPG Key ID: 89C6921D7AF2BDD0
2 changed files with 7 additions and 9 deletions

View File

@ -52,17 +52,15 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook {
private static final Object BUILDING_DATA = BuildingLayer.class.getName(); private static final Object BUILDING_DATA = BuildingLayer.class.getName();
// Can be replaced with Multimap in Java 8 // Can be replaced with Multimap in Java 8
protected HashMap<Integer, List<BuildingElement>> mBuildings = new HashMap<>(); protected java.util.Map<Integer, List<BuildingElement>> mBuildings = new HashMap<>();
class BuildingElement { class BuildingElement {
MapElement element; MapElement element;
ExtrusionStyle style; ExtrusionStyle style;
boolean isPart;
BuildingElement(MapElement element, ExtrusionStyle style, boolean isPart) { BuildingElement(MapElement element, ExtrusionStyle style) {
this.element = element; this.element = element;
this.style = style; this.style = style;
this.isPart = isPart;
} }
} }
@ -110,7 +108,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook {
mBuildings.put(tile.hashCode(), buildingElements); mBuildings.put(tile.hashCode(), buildingElements);
} }
element = new MapElement(element); // Deep copy, because element will be cleared element = new MapElement(element); // Deep copy, because element will be cleared
buildingElements.add(new BuildingElement(element, extrusion, element.isBuildingPart())); buildingElements.add(new BuildingElement(element, extrusion));
return true; return true;
} }
@ -168,7 +166,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook {
List<BuildingElement> tileBuildings = mBuildings.get(tile.hashCode()); List<BuildingElement> tileBuildings = mBuildings.get(tile.hashCode());
Set<BuildingElement> rootBuildings = new HashSet<>(); Set<BuildingElement> rootBuildings = new HashSet<>();
for (BuildingElement partBuilding : tileBuildings) { for (BuildingElement partBuilding : tileBuildings) {
if (!partBuilding.isPart) if (!partBuilding.element.isBuildingPart())
continue; continue;
String refId = partBuilding.element.tags.getValue(Tag.KEY_REF); // #TagFromTheme String refId = partBuilding.element.tags.getValue(Tag.KEY_REF); // #TagFromTheme
@ -178,7 +176,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook {
// Search buildings which inherit parts // Search buildings which inherit parts
for (BuildingElement rootBuilding : tileBuildings) { for (BuildingElement rootBuilding : tileBuildings) {
if (rootBuilding.isPart if (rootBuilding.element.isBuildingPart()
|| !(refId.equals(rootBuilding.element.tags.getValue(Tag.KEY_ID)))) || !(refId.equals(rootBuilding.element.tags.getValue(Tag.KEY_ID))))
continue; continue;

View File

@ -159,7 +159,7 @@ public class S3DBLayer extends BuildingLayer {
List<BuildingElement> tileBuildings = mBuildings.get(tile.hashCode()); List<BuildingElement> tileBuildings = mBuildings.get(tile.hashCode());
Set<BuildingElement> rootBuildings = new HashSet<>(); Set<BuildingElement> rootBuildings = new HashSet<>();
for (BuildingElement partBuilding : tileBuildings) { for (BuildingElement partBuilding : tileBuildings) {
if (!partBuilding.isPart) if (!partBuilding.element.isBuildingPart())
continue; continue;
TagSet partTags = partBuilding.element.tags; TagSet partTags = partBuilding.element.tags;
@ -170,7 +170,7 @@ public class S3DBLayer extends BuildingLayer {
// Search buildings which inherit parts // Search buildings which inherit parts
for (BuildingElement rootBuilding : tileBuildings) { for (BuildingElement rootBuilding : tileBuildings) {
if (rootBuilding.isPart if (rootBuilding.element.isBuildingPart()
|| !(refId.equals(rootBuilding.element.tags.getValue(Tag.KEY_ID)))) || !(refId.equals(rootBuilding.element.tags.getValue(Tag.KEY_ID))))
continue; continue;