aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules')
-rw-r--r--OpenSim/Region/Environment/Modules/Terrain/MapImageModule.cs19
1 files changed, 12 insertions, 7 deletions
diff --git a/OpenSim/Region/Environment/Modules/Terrain/MapImageModule.cs b/OpenSim/Region/Environment/Modules/Terrain/MapImageModule.cs
index c791ac3..458d781 100644
--- a/OpenSim/Region/Environment/Modules/Terrain/MapImageModule.cs
+++ b/OpenSim/Region/Environment/Modules/Terrain/MapImageModule.cs
@@ -10,7 +10,7 @@ using OpenSim.Region.Environment.Modules.ModuleFramework;
10 10
11namespace OpenSim.Region.Environment.Modules.Terrain 11namespace OpenSim.Region.Environment.Modules.Terrain
12{ 12{
13 class MapImageModule : ITerrainTemp, IRegionModule 13 class MapImageModule : IMapImageGenerator, IRegionModule
14 { 14 {
15 private Scene m_scene; 15 private Scene m_scene;
16 #region IRegionModule Members 16 #region IRegionModule Members
@@ -18,7 +18,7 @@ namespace OpenSim.Region.Environment.Modules.Terrain
18 public void Initialise(Scene scene, IConfigSource source) 18 public void Initialise(Scene scene, IConfigSource source)
19 { 19 {
20 m_scene = scene; 20 m_scene = scene;
21 m_scene.RegisterModuleInterface<ITerrainTemp>(this); 21 m_scene.RegisterModuleInterface<IMapImageGenerator>(this);
22 } 22 }
23 23
24 public void PostInitialise() 24 public void PostInitialise()
@@ -40,15 +40,15 @@ namespace OpenSim.Region.Environment.Modules.Terrain
40 } 40 }
41 41
42 42
43 public byte[] WriteJpegImage(string gradientmap) 43 public byte[] WriteJpeg2000Image(string gradientmap)
44 { 44 {
45 byte[] imageData = null; 45 byte[] imageData = null;
46
47 Bitmap bmp = TerrainToBitmap(gradientmap);
48
46 try 49 try
47 { 50 {
48 Bitmap bmp = TerrainToBitmap(gradientmap);
49
50 imageData = OpenJPEGNet.OpenJPEG.EncodeFromImage(bmp, true); 51 imageData = OpenJPEGNet.OpenJPEG.EncodeFromImage(bmp, true);
51
52 } 52 }
53 catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke 53 catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke
54 { 54 {
@@ -122,7 +122,12 @@ namespace OpenSim.Region.Environment.Modules.Terrain
122 { 122 {
123 // 512 is the largest possible height before colours clamp 123 // 512 is the largest possible height before colours clamp
124 int colorindex = (int)(Math.Max(Math.Min(1.0, copy[x, y] / 512.0), 0.0) * (pallete - 1)); 124 int colorindex = (int)(Math.Max(Math.Min(1.0, copy[x, y] / 512.0), 0.0) * (pallete - 1));
125 bmp.SetPixel(x, copy.Height - y - 1, colours[colorindex]); 125
126 // Handle error conditions
127 if (colorindex > pallete - 1 || colorindex < 0)
128 bmp.SetPixel(x, copy.Height - y - 1, Color.Red);
129 else
130 bmp.SetPixel(x, copy.Height - y - 1, colours[colorindex]);
126 } 131 }
127 } 132 }
128 ShadeBuildings(ref bmp); 133 ShadeBuildings(ref bmp);