package org.osm2world.core.map_data.creation.index; import java.util.Collection; import org.osm2world.core.map_data.data.MapElement; import org.osm2world.core.math.AxisAlignedBoundingBoxXZ; import org.osm2world.core.math.datastructures.IntersectionGrid; public class MapIntersectionGrid implements MapDataIndex { private final IntersectionGrid<MapElement> intersectionGrid; public MapIntersectionGrid(AxisAlignedBoundingBoxXZ dataBoundary) { AxisAlignedBoundingBoxXZ gridBounds = dataBoundary.pad(10); intersectionGrid = new IntersectionGrid<MapElement>( gridBounds, gridBounds.sizeX() / 50, gridBounds.sizeZ() / 50); } @Override public void insert(MapElement e) { intersectionGrid.insert(e); } @Override public Collection<? extends Iterable<MapElement>> insertAndProbe(MapElement e) { insert(e); return intersectionGrid.cellsFor(e); } @Override public Iterable<? extends Iterable<MapElement>> getLeaves() { return intersectionGrid.getCells(); } }