Example #1
0
        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);
        }
Example #2
0
 /// <summary>
 /// Disposes of all resources associated with this object.
 /// </summary>
 public void Dispose()
 {
     _range = null;
 }
Example #3
0
 /// <summary>
 /// Creates a new range center first enumerable.
 /// </summary>
 /// <param name="tileRange"></param>
 public TileRangeCenterFirst(TileRange tileRange)
 {
     _tileRange = tileRange;
 }
Example #4
0
 /// <summary>
 /// Creates the enumerator.
 /// </summary>
 /// <param name="range"></param>
 public TileRangeCenteredEnumerator(TileRange range)
 {
     _range = range;
 }
Example #5
0
 public TileRangeEnumerator(TileRange range)
 {
     _range = range;
 }
Example #6
0
 /// <summary>
 /// Creates a new tile range index.
 /// </summary>
 /// <param name="tileRange"></param>
 public TileRangeIndex(TileRange tileRange)
 {
     _range = tileRange;
 }
Example #7
0
 public void Dispose()
 {
     this._range = (TileRange)null;
 }
Example #8
0
 public TileRangeIndex(TileRange tileRange)
 {
     this._range = tileRange;
 }