diff options
-rw-r--r-- | OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs index 4b9c5d6..4976e5d 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs | |||
@@ -400,6 +400,10 @@ namespace OpenSim.Region.Terrain | |||
400 | LoadFromFileF32(args[2], Convert.ToInt32(args[3]), Convert.ToInt32(args[4]), | 400 | LoadFromFileF32(args[2], Convert.ToInt32(args[3]), Convert.ToInt32(args[4]), |
401 | Convert.ToInt32(args[5]), Convert.ToInt32(args[6])); | 401 | Convert.ToInt32(args[5]), Convert.ToInt32(args[6])); |
402 | break; | 402 | break; |
403 | case "img": | ||
404 | LoadFromFileIMG(args[2], Convert.ToInt32(args[3]), Convert.ToInt32(args[4]), | ||
405 | Convert.ToInt32(args[5]), Convert.ToInt32(args[6])); | ||
406 | break; | ||
403 | default: | 407 | default: |
404 | resultText = "Unknown or unsupported image or data format"; | 408 | resultText = "Unknown or unsupported image or data format"; |
405 | return false; | 409 | return false; |
@@ -658,6 +662,43 @@ namespace OpenSim.Region.Terrain | |||
658 | } | 662 | } |
659 | 663 | ||
660 | /// <summary> | 664 | /// <summary> |
665 | /// Loads a larger tiled image across a terrain | ||
666 | /// </summary> | ||
667 | /// <param name="filename">Filename to load from (any generic image format should work)</param> | ||
668 | /// <param name="dimensionX">The dimensions of the image</param> | ||
669 | /// <param name="dimensionY">The dimensions of the image</param> | ||
670 | /// <param name="lowerboundX">Where sim coords begin for this patch</param> | ||
671 | /// <param name="lowerboundY">Where sim coords begin for this patch</param> | ||
672 | public void LoadFromFileIMG(string filename, int dimensionX, int dimensionY, int lowerboundX, int lowerboundY) | ||
673 | { | ||
674 | int sectionToLoadX = ((this.offsetX - lowerboundX) * this.w); | ||
675 | int sectionToLoadY = ((this.offsetY - lowerboundY) * this.h); | ||
676 | |||
677 | double[,] tempMap = new double[dimensionX, dimensionY]; | ||
678 | |||
679 | System.Drawing.Bitmap lgrBmp = new Bitmap(filename); | ||
680 | |||
681 | int x, y; | ||
682 | for (x = 0; x < dimensionX; x++) | ||
683 | { | ||
684 | for (y = 0; y < dimensionY; y++) | ||
685 | { | ||
686 | tempMap[x, y] = (float)lgrBmp.GetPixel(x, y).GetBrightness(); | ||
687 | } | ||
688 | } | ||
689 | |||
690 | for (y = 0; y < h; y++) | ||
691 | { | ||
692 | for (x = 0; x < w; x++) | ||
693 | { | ||
694 | heightmap.Set(x, y, tempMap[x + sectionToLoadX, y + sectionToLoadY]); | ||
695 | } | ||
696 | } | ||
697 | |||
698 | tainted++; | ||
699 | } | ||
700 | |||
701 | /// <summary> | ||
661 | /// Loads a file formatted in the SL .RAW Format used on the main grid | 702 | /// Loads a file formatted in the SL .RAW Format used on the main grid |
662 | /// </summary> | 703 | /// </summary> |
663 | /// <remarks>This file format stinks and is best avoided.</remarks> | 704 | /// <remarks>This file format stinks and is best avoided.</remarks> |