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();
// 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 {
MapElement element;
ExtrusionStyle style;
boolean isPart;
BuildingElement(MapElement element, ExtrusionStyle style, boolean isPart) {
BuildingElement(MapElement element, ExtrusionStyle style) {
this.element = element;
this.style = style;
this.isPart = isPart;
}
}
@ -110,7 +108,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook {
mBuildings.put(tile.hashCode(), buildingElements);
}
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;
}
@ -168,7 +166,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook {
List<BuildingElement> tileBuildings = mBuildings.get(tile.hashCode());
Set<BuildingElement> rootBuildings = new HashSet<>();
for (BuildingElement partBuilding : tileBuildings) {
if (!partBuilding.isPart)
if (!partBuilding.element.isBuildingPart())
continue;
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
for (BuildingElement rootBuilding : tileBuildings) {
if (rootBuilding.isPart
if (rootBuilding.element.isBuildingPart()
|| !(refId.equals(rootBuilding.element.tags.getValue(Tag.KEY_ID))))
continue;

View File

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