示例#1
0
        //=========================================================================
        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);
        }
示例#2
0
        //=========================================================================
        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);
        }
示例#3
0
        //=========================================================================
        /// <summary>
        /// Loads the header from an ascii source file into a temporary tile
        /// </summary>
        /// <param name="a_filename">the name of the source file (.asc)</param>
        /// <returns>a tile with only the header filled out</returns>
        private static iTileMaker LoadSourceHeader(string a_filename)
        {
            iTileMaker returnTile = null;

            var elevTile = new iTileMaker();

            try
            {
                using (var streamReader = elevTile.ReadSourceHeader(a_filename))
                {
                    if (streamReader != null)
                    {
                        returnTile = elevTile;
                    }
                }
            }
            catch (Exception)
            {
            }

            return(returnTile);
        }