//========================================================================= public static iTile LoadOrCreate(string a_filename, int a_stripStartPercent, int a_stripWidthPercent, int a_bandStartPercent, int a_bandWidthPercent) { // read the source file header into a temp tile var elevTile = LoadSourceHeader(a_filename); if (elevTile != null) { // we found the source file, so set params for the subtile we are interested in elevTile.MakeSubTile(a_stripStartPercent, a_stripWidthPercent, a_bandStartPercent, a_bandWidthPercent); Console.WriteLine("Loading {0}...", elevTile.TileFile); // now load the subtile, if it exists elevTile = Deserialize(elevTile.TileFile); if (elevTile == null) { // desrialisation failed so start from scratch elevTile = new iTileMaker(); // read the header using (var reader = elevTile.ReadSourceHeader(a_filename)) { // remake the subtile params again elevTile.MakeSubTile(a_stripStartPercent, a_stripWidthPercent, a_bandStartPercent, a_bandWidthPercent); Console.WriteLine("Creating {0}...", elevTile.TileFile); // read the data from the source elevTile.LoadSourceData(reader); } // write the data out elevTile.Serialize(); } Console.WriteLine("Done!"); elevTile.TraceTile(); } return(elevTile); }
//========================================================================= public static iTile Create(string a_filename, int a_stripStartPercent, int a_stripWidthPercent, int a_bandStartPercent, int a_bandWidthPercent) { // create a tilemaker and load the data var tileMaker = new iTileMaker(); using (var reader = tileMaker.ReadSourceHeader(a_filename)) { tileMaker.MakeSubTile(a_stripStartPercent, a_stripWidthPercent, a_bandStartPercent, a_bandWidthPercent); tileMaker.LoadSourceData(reader); } // create a fresh tile from the maker base and serialize it var createdTile = new iTile(tileMaker); createdTile.Serialize(); return(createdTile); }