public void Load(string filename) { //Bitmap bitmap = Bitmap.FromFile(filename) as Bitmap; //Bitmap bitmap = DevIL.DevIL.LoadBitmap(filename); Image image = new Image(filename); int width = image.Width; int height = image.Height; Terrain.GetInstance().HeightMapWidth = width; Terrain.GetInstance().HeightMapHeight = height; Terrain.GetInstance().Map = new double[width, height]; LogFile.GetInstance().WriteLine("loaded bitmap " + width + " x " + height); double minheight = Config.GetInstance().minheight; double maxheight = Config.GetInstance().maxheight; double heightmultiplier = ( maxheight - minheight ) / 255; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Terrain.GetInstance().Map[i, j] = (float)( minheight + heightmultiplier * image.GetBlue(i, j) ); } } Terrain.GetInstance().HeightmapFilename = filename; Terrain.GetInstance().OnTerrainModified(); MainUI.GetInstance().uiwindow.InfoMessage("Heightmap loaded"); }
void LoadHeightMap( string sm3directory, TdfParser.Section terrainsection) { string filename = Path.Combine( sm3directory, terrainsection.GetStringValue("heightmap") ); double heightoffset = terrainsection.GetDoubleValue("heightoffset"); double heightscale = terrainsection.GetDoubleValue("heightscale"); LogFile.GetInstance().WriteLine("heightoffset: " + heightoffset + " heightscale " + heightscale); Terrain.GetInstance().MinHeight = heightoffset; Terrain.GetInstance().MaxHeight = heightoffset + heightscale; // I guess??? Image image = new Image(filename); //Bitmap bitmap = DevIL.DevIL.LoadBitmap(filename); int width = image.Width; int height = image.Height; Terrain.GetInstance().HeightMapWidth = width; Terrain.GetInstance().HeightMapHeight = height; Terrain.GetInstance().Map = new double[width, height]; LogFile.GetInstance().WriteLine("loaded bitmap " + width + " x " + height); double minheight = Terrain.GetInstance().MinHeight; double maxheight = Terrain.GetInstance().MaxHeight; double heightmultiplier = (maxheight - minheight) / 255; LogFile.GetInstance().WriteLine("heightmultiplier: " + heightmultiplier + " minheight: " + minheight); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Terrain.GetInstance().Map[i, j] = (float)(minheight + heightmultiplier * image.GetBlue(i,j) ); } } terrain.HeightmapFilename = filename; }