// License: GPL. For details, see LICENSE file. package indoor_sweepline; import java.util.Vector; import org.openstreetmap.josm.data.osm.DataSet; public class Strip { public Strip(DataSet dataSet) { width = 10.; parts = new Vector<>(); partsGeography = new Vector<>(); lhs = new Vector<>(); rhs = new Vector<>(); this.dataSet = dataSet; } public void setCorridorPartType(int partIndex, CorridorPart.Type type) { while (parts.size() <= partIndex) { parts.add(new CorridorPart(0., CorridorPart.Type.WALL, parts.size() % 2 == 0 ? CorridorPart.ReachableSide.FRONT : CorridorPart.ReachableSide.BACK)); partsGeography.add(new CorridorGeography(dataSet)); } parts.elementAt(partIndex).setType(type, CorridorPart.ReachableSide.ALL); } public CorridorPart partAt(int i) { while (parts.size() <= i) { parts.add(new CorridorPart(0., CorridorPart.Type.WALL, parts.size() % 2 == 0 ? CorridorPart.ReachableSide.FRONT : CorridorPart.ReachableSide.BACK)); partsGeography.add(new CorridorGeography(dataSet)); } return parts.elementAt(i); } public CorridorGeography geographyAt(int i) { while (parts.size() <= i) { parts.add(new CorridorPart(0., CorridorPart.Type.WALL, parts.size() % 2 == 0 ? CorridorPart.ReachableSide.FRONT : CorridorPart.ReachableSide.BACK)); partsGeography.add(new CorridorGeography(dataSet)); } return partsGeography.elementAt(i); } public double width; public Vector<CorridorPart> parts; public Vector<CorridorGeography> partsGeography; public Vector<Double> lhs; public Vector<Double> rhs; private DataSet dataSet; }