Building / S3DB layers: simplify building element
This commit is contained in:
parent
25aa1329fc
commit
3a59a31ab3
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user