public TileSelection(TileSelection selection)
        {
            if (selection != null) {
                _offset = selection._offset;

                _tileAnnot = new MultiTileSelectionAnnot(selection._tileAnnot);

                _active = selection._active;
                _floating = selection._floating;

                _tiles = new Dictionary<TileCoord, TileStack>();
                foreach (KeyValuePair<TileCoord, TileStack> kvp in selection._tiles)
                    _tiles.Add(kvp.Key, new TileStack(kvp.Value));
            }
        }
        public MultiTileSelectionAnnot(MultiTileSelectionAnnot annot)
        {
            if (annot != null) {
                TileMinExtant = annot.TileMinExtant;
                TileMaxExtant = annot.TileMaxExtant;
                TileWidth = annot.TileWidth;
                TileHeight = annot.TileHeight;

                Fill = annot.Fill;
                Outline = annot.Outline;

                Offset = annot.Offset;

                _selectedLocations = new HashSet<TileCoord>();
                foreach (TileCoord coord in annot._selectedLocations)
                    _selectedLocations.Add(coord);
            }
        }
        public MultiTileSelectionAnnot(MultiTileSelectionAnnot annot)
        {
            if (annot != null)
            {
                TileMinExtant = annot.TileMinExtant;
                TileMaxExtant = annot.TileMaxExtant;
                TileWidth     = annot.TileWidth;
                TileHeight    = annot.TileHeight;

                Fill    = annot.Fill;
                Outline = annot.Outline;

                Offset = annot.Offset;

                _selectedLocations = new HashSet <TileCoord>();
                foreach (TileCoord coord in annot._selectedLocations)
                {
                    _selectedLocations.Add(coord);
                }
            }
        }
 private TileSelection()
 {
     _tiles = new Dictionary<TileCoord, TileStack>();
     _offset = new TileCoord(0, 0);
     _tileAnnot = new MultiTileSelectionAnnot();
 }
 public MultiTileSelectionAnnotRenderer(MultiTileSelectionAnnot data)
     : base(data)
 {
     _data = data;
 }