public bool IsOverlappedBy(IEnumerable <Tile> tiles) { Dictionary <int, HashSet <Tile> > dictionary = new Dictionary <int, HashSet <Tile> >(); foreach (Tile tile in tiles) { if (tile.Zoom <= this.Zoom) { if (tile.Overlaps(this)) { return(true); } } else { HashSet <Tile> tileSet; if (!dictionary.TryGetValue(tile.Zoom, out tileSet)) { tileSet = new HashSet <Tile>(); dictionary.Add(tile.Zoom, tileSet); } tileSet.Add(tile); } } foreach (KeyValuePair <int, HashSet <Tile> > keyValuePair in dictionary) { TileRange subTiles = this.GetSubTiles(keyValuePair.Key); int num = 0; foreach (Tile tile in keyValuePair.Value) { if (subTiles.Contains(tile)) { ++num; } } if (subTiles.Count == keyValuePair.Value.Count) { return(true); } } return(false); }
/// <summary> /// Disposes of all resources associated with this object. /// </summary> public void Dispose() { _range = null; }
/// <summary> /// Creates a new range center first enumerable. /// </summary> /// <param name="tileRange"></param> public TileRangeCenterFirst(TileRange tileRange) { _tileRange = tileRange; }
/// <summary> /// Creates the enumerator. /// </summary> /// <param name="range"></param> public TileRangeCenteredEnumerator(TileRange range) { _range = range; }
public TileRangeEnumerator(TileRange range) { _range = range; }
/// <summary> /// Creates a new tile range index. /// </summary> /// <param name="tileRange"></param> public TileRangeIndex(TileRange tileRange) { _range = tileRange; }
public void Dispose() { this._range = (TileRange)null; }
public TileRangeIndex(TileRange tileRange) { this._range = tileRange; }