From d51ce47b2d7635b17f3dd429158e8f59b78b83aa Mon Sep 17 00:00:00 2001
From: Jeff Ames
Date: Thu, 1 May 2008 14:31:30 +0000
Subject: Update svn properties. Minor formatting cleanup.
---
.../Modules/World/Terrain/FileLoaders/BMP.cs | 122 ++++----
.../Modules/World/Terrain/FileLoaders/GIF.cs | 92 +++---
.../Terrain/FileLoaders/GenericSystemDrawing.cs | 342 ++++++++++-----------
.../Modules/World/Terrain/FileLoaders/JPEG.cs | 186 +++++------
.../Modules/World/Terrain/FileLoaders/LLRAW.cs | 294 +++++++++---------
.../Modules/World/Terrain/FileLoaders/PNG.cs | 92 +++---
.../Modules/World/Terrain/FileLoaders/RAW32.cs | 304 +++++++++---------
.../Modules/World/Terrain/FileLoaders/TIFF.cs | 92 +++---
.../Modules/World/Terrain/FileLoaders/Terragen.cs | 252 +++++++--------
9 files changed, 888 insertions(+), 888 deletions(-)
(limited to 'OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders')
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs
index 4705dad..eb981d9 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs
@@ -1,62 +1,62 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-using System.Drawing;
-using System.Drawing.Imaging;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- ///
- /// A generic windows bitmap loader.
- /// Should be capable of handling 24-bit RGB images.
- ///
- /// Uses the System.Drawing filesystem loader.
- ///
- internal class BMP : GenericSystemDrawing
- {
- ///
- /// Exports a file to a image on the disk using a System.Drawing exporter.
- ///
- /// The target filename
- /// The terrain channel being saved
- public override void SaveFile(string filename, ITerrainChannel map)
- {
- Bitmap colours = CreateGrayscaleBitmapFromMap(map);
-
- colours.Save(filename, ImageFormat.Bmp);
- }
-
- ///
- /// The human readable version of the file format(s) this loader handles
- ///
- ///
- public override string ToString()
- {
- return "BMP";
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+using System.Drawing;
+using System.Drawing.Imaging;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ ///
+ /// A generic windows bitmap loader.
+ /// Should be capable of handling 24-bit RGB images.
+ ///
+ /// Uses the System.Drawing filesystem loader.
+ ///
+ internal class BMP : GenericSystemDrawing
+ {
+ ///
+ /// Exports a file to a image on the disk using a System.Drawing exporter.
+ ///
+ /// The target filename
+ /// The terrain channel being saved
+ public override void SaveFile(string filename, ITerrainChannel map)
+ {
+ Bitmap colours = CreateGrayscaleBitmapFromMap(map);
+
+ colours.Save(filename, ImageFormat.Bmp);
+ }
+
+ ///
+ /// The human readable version of the file format(s) this loader handles
+ ///
+ ///
+ public override string ToString()
+ {
+ return "BMP";
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs
index 9c2fedc..9bfe851 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs
@@ -1,47 +1,47 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-using System.Drawing;
-using System.Drawing.Imaging;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- internal class GIF : GenericSystemDrawing
- {
- public override void SaveFile(string filename, ITerrainChannel map)
- {
- Bitmap colours = CreateGrayscaleBitmapFromMap(map);
-
- colours.Save(filename, ImageFormat.Gif);
- }
-
- public override string ToString()
- {
- return "GIF";
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+using System.Drawing;
+using System.Drawing.Imaging;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ internal class GIF : GenericSystemDrawing
+ {
+ public override void SaveFile(string filename, ITerrainChannel map)
+ {
+ Bitmap colours = CreateGrayscaleBitmapFromMap(map);
+
+ colours.Save(filename, ImageFormat.Gif);
+ }
+
+ public override string ToString()
+ {
+ return "GIF";
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
index b5e6bd9..9730b16 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
@@ -1,172 +1,172 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Drawing;
-using System.Drawing.Imaging;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- ///
- /// A virtual class designed to have methods overloaded,
- /// this class provides an interface for a generic image
- /// saving and loading mechanism, but does not specify the
- /// format. It should not be insubstantiated directly.
- ///
- public class GenericSystemDrawing : ITerrainLoader
- {
- #region ITerrainLoader Members
-
- public string FileExtension
- {
- get { return ".gsd"; }
- }
-
- ///
- /// Loads a file from a specified filename on the disk,
- /// parses the image using the System.Drawing parsers
- /// then returns a terrain channel. Values are
- /// returned based on HSL brightness between 0m and 128m
- ///
- /// The target image to load
- /// A terrain channel generated from the image.
- public virtual ITerrainChannel LoadFile(string filename)
- {
- Bitmap file = new Bitmap(filename);
-
- ITerrainChannel retval = new TerrainChannel(file.Width, file.Height);
-
- int x, y;
- for (x = 0; x < file.Width; x++)
- {
- for (y = 0; y < file.Height; y++)
- {
- retval[x, y] = file.GetPixel(x, y).GetBrightness() * 128;
- }
- }
-
- return retval;
- }
-
- public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
- {
- throw new NotImplementedException();
- }
-
- ///
- /// Exports a file to a image on the disk using a System.Drawing exporter.
- ///
- /// The target filename
- /// The terrain channel being saved
- public virtual void SaveFile(string filename, ITerrainChannel map)
- {
- Bitmap colours = CreateGrayscaleBitmapFromMap(map);
-
- colours.Save(filename, ImageFormat.Png);
- }
-
- #endregion
-
- public override string ToString()
- {
- return "SYS.DRAWING";
- }
-
- ///
- /// Protected method, generates a grayscale bitmap
- /// image from a specified terrain channel.
- ///
- /// The terrain channel to export to bitmap
- /// A System.Drawing.Bitmap containing a grayscale image
- protected Bitmap CreateGrayscaleBitmapFromMap(ITerrainChannel map)
- {
- Bitmap bmp = new Bitmap(map.Width, map.Height);
-
- int pallete = 256;
-
- Color[] grays = new Color[pallete];
- for (int i = 0; i < grays.Length; i++)
- {
- grays[i] = Color.FromArgb(i, i, i);
- }
-
- for (int y = 0; y < map.Height; y++)
- {
- for (int x = 0; x < map.Width; x++)
- {
- // 512 is the largest possible height before colours clamp
- int colorindex = (int) (Math.Max(Math.Min(1.0, map[x, y] / 128.0), 0.0) * (pallete - 1));
-
- // Handle error conditions
- if (colorindex > pallete - 1 || colorindex < 0)
- bmp.SetPixel(x, map.Height - y - 1, Color.Red);
- else
- bmp.SetPixel(x, map.Height - y - 1, grays[colorindex]);
- }
- }
- return bmp;
- }
-
- ///
- /// Protected method, generates a coloured bitmap
- /// image from a specified terrain channel.
- ///
- /// The terrain channel to export to bitmap
- /// A System.Drawing.Bitmap containing a coloured image
- protected Bitmap CreateBitmapFromMap(ITerrainChannel map)
- {
- Bitmap gradientmapLd = new Bitmap("defaultstripe.png");
-
- int pallete = gradientmapLd.Height;
-
- Bitmap bmp = new Bitmap(map.Width, map.Height);
- Color[] colours = new Color[pallete];
-
- for (int i = 0; i < pallete; i++)
- {
- colours[i] = gradientmapLd.GetPixel(0, i);
- }
-
- for (int y = 0; y < map.Height; y++)
- {
- for (int x = 0; x < map.Width; x++)
- {
- // 512 is the largest possible height before colours clamp
- int colorindex = (int) (Math.Max(Math.Min(1.0, map[x, y] / 512.0), 0.0) * (pallete - 1));
-
- // Handle error conditions
- if (colorindex > pallete - 1 || colorindex < 0)
- bmp.SetPixel(x, map.Height - y - 1, Color.Red);
- else
- bmp.SetPixel(x, map.Height - y - 1, colours[colorindex]);
- }
- }
- return bmp;
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Drawing;
+using System.Drawing.Imaging;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ ///
+ /// A virtual class designed to have methods overloaded,
+ /// this class provides an interface for a generic image
+ /// saving and loading mechanism, but does not specify the
+ /// format. It should not be insubstantiated directly.
+ ///
+ public class GenericSystemDrawing : ITerrainLoader
+ {
+ #region ITerrainLoader Members
+
+ public string FileExtension
+ {
+ get { return ".gsd"; }
+ }
+
+ ///
+ /// Loads a file from a specified filename on the disk,
+ /// parses the image using the System.Drawing parsers
+ /// then returns a terrain channel. Values are
+ /// returned based on HSL brightness between 0m and 128m
+ ///
+ /// The target image to load
+ /// A terrain channel generated from the image.
+ public virtual ITerrainChannel LoadFile(string filename)
+ {
+ Bitmap file = new Bitmap(filename);
+
+ ITerrainChannel retval = new TerrainChannel(file.Width, file.Height);
+
+ int x, y;
+ for (x = 0; x < file.Width; x++)
+ {
+ for (y = 0; y < file.Height; y++)
+ {
+ retval[x, y] = file.GetPixel(x, y).GetBrightness() * 128;
+ }
+ }
+
+ return retval;
+ }
+
+ public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
+ {
+ throw new NotImplementedException();
+ }
+
+ ///
+ /// Exports a file to a image on the disk using a System.Drawing exporter.
+ ///
+ /// The target filename
+ /// The terrain channel being saved
+ public virtual void SaveFile(string filename, ITerrainChannel map)
+ {
+ Bitmap colours = CreateGrayscaleBitmapFromMap(map);
+
+ colours.Save(filename, ImageFormat.Png);
+ }
+
+ #endregion
+
+ public override string ToString()
+ {
+ return "SYS.DRAWING";
+ }
+
+ ///
+ /// Protected method, generates a grayscale bitmap
+ /// image from a specified terrain channel.
+ ///
+ /// The terrain channel to export to bitmap
+ /// A System.Drawing.Bitmap containing a grayscale image
+ protected Bitmap CreateGrayscaleBitmapFromMap(ITerrainChannel map)
+ {
+ Bitmap bmp = new Bitmap(map.Width, map.Height);
+
+ int pallete = 256;
+
+ Color[] grays = new Color[pallete];
+ for (int i = 0; i < grays.Length; i++)
+ {
+ grays[i] = Color.FromArgb(i, i, i);
+ }
+
+ for (int y = 0; y < map.Height; y++)
+ {
+ for (int x = 0; x < map.Width; x++)
+ {
+ // 512 is the largest possible height before colours clamp
+ int colorindex = (int) (Math.Max(Math.Min(1.0, map[x, y] / 128.0), 0.0) * (pallete - 1));
+
+ // Handle error conditions
+ if (colorindex > pallete - 1 || colorindex < 0)
+ bmp.SetPixel(x, map.Height - y - 1, Color.Red);
+ else
+ bmp.SetPixel(x, map.Height - y - 1, grays[colorindex]);
+ }
+ }
+ return bmp;
+ }
+
+ ///
+ /// Protected method, generates a coloured bitmap
+ /// image from a specified terrain channel.
+ ///
+ /// The terrain channel to export to bitmap
+ /// A System.Drawing.Bitmap containing a coloured image
+ protected Bitmap CreateBitmapFromMap(ITerrainChannel map)
+ {
+ Bitmap gradientmapLd = new Bitmap("defaultstripe.png");
+
+ int pallete = gradientmapLd.Height;
+
+ Bitmap bmp = new Bitmap(map.Width, map.Height);
+ Color[] colours = new Color[pallete];
+
+ for (int i = 0; i < pallete; i++)
+ {
+ colours[i] = gradientmapLd.GetPixel(0, i);
+ }
+
+ for (int y = 0; y < map.Height; y++)
+ {
+ for (int x = 0; x < map.Width; x++)
+ {
+ // 512 is the largest possible height before colours clamp
+ int colorindex = (int) (Math.Max(Math.Min(1.0, map[x, y] / 512.0), 0.0) * (pallete - 1));
+
+ // Handle error conditions
+ if (colorindex > pallete - 1 || colorindex < 0)
+ bmp.SetPixel(x, map.Height - y - 1, Color.Red);
+ else
+ bmp.SetPixel(x, map.Height - y - 1, colours[colorindex]);
+ }
+ }
+ return bmp;
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs
index 39ade10..d58926e 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs
@@ -1,94 +1,94 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Drawing;
-using System.Drawing.Imaging;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- public class JPEG : ITerrainLoader
- {
- #region ITerrainLoader Members
-
- public string FileExtension
- {
- get { return ".jpg"; }
- }
-
- public ITerrainChannel LoadFile(string filename)
- {
- throw new NotImplementedException();
- }
-
- public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
- {
- throw new NotImplementedException();
- }
-
- public void SaveFile(string filename, ITerrainChannel map)
- {
- Bitmap colours = CreateBitmapFromMap(map);
-
- colours.Save(filename, ImageFormat.Jpeg);
- }
-
- #endregion
-
- public override string ToString()
- {
- return "JPEG";
- }
-
- private Bitmap CreateBitmapFromMap(ITerrainChannel map)
- {
- Bitmap gradientmapLd = new Bitmap("defaultstripe.png");
-
- int pallete = gradientmapLd.Height;
-
- Bitmap bmp = new Bitmap(map.Width, map.Height);
- Color[] colours = new Color[pallete];
-
- for (int i = 0; i < pallete; i++)
- {
- colours[i] = gradientmapLd.GetPixel(0, i);
- }
-
- for (int y = 0; y < map.Height; y++)
- {
- for (int x = 0; x < map.Width; x++)
- {
- // 512 is the largest possible height before colours clamp
- int colorindex = (int) (Math.Max(Math.Min(1.0, map[x, y] / 512.0), 0.0) * (pallete - 1));
- bmp.SetPixel(x, map.Height - y - 1, colours[colorindex]);
- }
- }
- return bmp;
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Drawing;
+using System.Drawing.Imaging;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ public class JPEG : ITerrainLoader
+ {
+ #region ITerrainLoader Members
+
+ public string FileExtension
+ {
+ get { return ".jpg"; }
+ }
+
+ public ITerrainChannel LoadFile(string filename)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void SaveFile(string filename, ITerrainChannel map)
+ {
+ Bitmap colours = CreateBitmapFromMap(map);
+
+ colours.Save(filename, ImageFormat.Jpeg);
+ }
+
+ #endregion
+
+ public override string ToString()
+ {
+ return "JPEG";
+ }
+
+ private Bitmap CreateBitmapFromMap(ITerrainChannel map)
+ {
+ Bitmap gradientmapLd = new Bitmap("defaultstripe.png");
+
+ int pallete = gradientmapLd.Height;
+
+ Bitmap bmp = new Bitmap(map.Width, map.Height);
+ Color[] colours = new Color[pallete];
+
+ for (int i = 0; i < pallete; i++)
+ {
+ colours[i] = gradientmapLd.GetPixel(0, i);
+ }
+
+ for (int y = 0; y < map.Height; y++)
+ {
+ for (int x = 0; x < map.Width; x++)
+ {
+ // 512 is the largest possible height before colours clamp
+ int colorindex = (int) (Math.Max(Math.Min(1.0, map[x, y] / 512.0), 0.0) * (pallete - 1));
+ bmp.SetPixel(x, map.Height - y - 1, colours[colorindex]);
+ }
+ }
+ return bmp;
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs
index 468ecc9..5d6723f 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs
@@ -1,148 +1,148 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.IO;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- public class LLRAW : ITerrainLoader
- {
- #region ITerrainLoader Members
-
- public ITerrainChannel LoadFile(string filename)
- {
- TerrainChannel retval = new TerrainChannel();
-
- FileInfo file = new FileInfo(filename);
- FileStream s = file.Open(FileMode.Open, FileAccess.Read);
- BinaryReader bs = new BinaryReader(s);
- int x, y;
- for (y = 0; y < retval.Height; y++)
- {
- for (x = 0; x < retval.Width; x++)
- {
- retval[x, y] = (double) bs.ReadByte() * ((double) bs.ReadByte() / 127.0);
- bs.ReadBytes(11); // Advance the stream to next bytes.
- }
- }
-
- bs.Close();
- s.Close();
-
- return retval;
- }
-
- public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
- {
- throw new NotImplementedException();
- }
-
- public void SaveFile(string filename, ITerrainChannel map)
- {
- FileInfo file = new FileInfo(filename);
- FileStream s = file.Open(FileMode.CreateNew, FileAccess.Write);
- BinaryWriter binStream = new BinaryWriter(s);
-
- // Generate a smegging big lookup table to speed the operation up (it needs it)
- double[] lookupHeightTable = new double[65536];
- int i, j, x, y;
- for (i = 0; i < 256; i++)
- {
- for (j = 0; j < 256; j++)
- {
- lookupHeightTable[i + (j * 256)] = ((double) i * ((double) j / 127.0));
- }
- }
-
- // Output the calculated raw
- for (y = 0; y < map.Height; y++)
- {
- for (x = 0; x < map.Width; x++)
- {
- double t = map[x, y];
- double min = double.MaxValue;
- int index = 0;
-
- for (i = 0; i < 65536; i++)
- {
- if (Math.Abs(t - lookupHeightTable[i]) < min)
- {
- min = Math.Abs(t - lookupHeightTable[i]);
- index = i;
- }
- }
-
- byte red = (byte) (index & 0xFF);
- byte green = (byte) ((index >> 8) & 0xFF);
- byte blue = 20;
- byte alpha1 = 0; // Land Parcels
- byte alpha2 = 0; // For Sale Land
- byte alpha3 = 0; // Public Edit Object
- byte alpha4 = 0; // Public Edit Land
- byte alpha5 = 255; // Safe Land
- byte alpha6 = 255; // Flying Allowed
- byte alpha7 = 255; // Create Landmark
- byte alpha8 = 255; // Outside Scripts
- byte alpha9 = red;
- byte alpha10 = green;
-
- binStream.Write(red);
- binStream.Write(green);
- binStream.Write(blue);
- binStream.Write(alpha1);
- binStream.Write(alpha2);
- binStream.Write(alpha3);
- binStream.Write(alpha4);
- binStream.Write(alpha5);
- binStream.Write(alpha6);
- binStream.Write(alpha7);
- binStream.Write(alpha8);
- binStream.Write(alpha9);
- binStream.Write(alpha10);
- }
- }
-
- binStream.Close();
- s.Close();
- }
-
-
- public string FileExtension
- {
- get { return ".raw"; }
- }
-
- #endregion
-
- public override string ToString()
- {
- return "LL/SL RAW";
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.IO;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ public class LLRAW : ITerrainLoader
+ {
+ #region ITerrainLoader Members
+
+ public ITerrainChannel LoadFile(string filename)
+ {
+ TerrainChannel retval = new TerrainChannel();
+
+ FileInfo file = new FileInfo(filename);
+ FileStream s = file.Open(FileMode.Open, FileAccess.Read);
+ BinaryReader bs = new BinaryReader(s);
+ int x, y;
+ for (y = 0; y < retval.Height; y++)
+ {
+ for (x = 0; x < retval.Width; x++)
+ {
+ retval[x, y] = (double) bs.ReadByte() * ((double) bs.ReadByte() / 127.0);
+ bs.ReadBytes(11); // Advance the stream to next bytes.
+ }
+ }
+
+ bs.Close();
+ s.Close();
+
+ return retval;
+ }
+
+ public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void SaveFile(string filename, ITerrainChannel map)
+ {
+ FileInfo file = new FileInfo(filename);
+ FileStream s = file.Open(FileMode.CreateNew, FileAccess.Write);
+ BinaryWriter binStream = new BinaryWriter(s);
+
+ // Generate a smegging big lookup table to speed the operation up (it needs it)
+ double[] lookupHeightTable = new double[65536];
+ int i, j, x, y;
+ for (i = 0; i < 256; i++)
+ {
+ for (j = 0; j < 256; j++)
+ {
+ lookupHeightTable[i + (j * 256)] = ((double) i * ((double) j / 127.0));
+ }
+ }
+
+ // Output the calculated raw
+ for (y = 0; y < map.Height; y++)
+ {
+ for (x = 0; x < map.Width; x++)
+ {
+ double t = map[x, y];
+ double min = double.MaxValue;
+ int index = 0;
+
+ for (i = 0; i < 65536; i++)
+ {
+ if (Math.Abs(t - lookupHeightTable[i]) < min)
+ {
+ min = Math.Abs(t - lookupHeightTable[i]);
+ index = i;
+ }
+ }
+
+ byte red = (byte) (index & 0xFF);
+ byte green = (byte) ((index >> 8) & 0xFF);
+ byte blue = 20;
+ byte alpha1 = 0; // Land Parcels
+ byte alpha2 = 0; // For Sale Land
+ byte alpha3 = 0; // Public Edit Object
+ byte alpha4 = 0; // Public Edit Land
+ byte alpha5 = 255; // Safe Land
+ byte alpha6 = 255; // Flying Allowed
+ byte alpha7 = 255; // Create Landmark
+ byte alpha8 = 255; // Outside Scripts
+ byte alpha9 = red;
+ byte alpha10 = green;
+
+ binStream.Write(red);
+ binStream.Write(green);
+ binStream.Write(blue);
+ binStream.Write(alpha1);
+ binStream.Write(alpha2);
+ binStream.Write(alpha3);
+ binStream.Write(alpha4);
+ binStream.Write(alpha5);
+ binStream.Write(alpha6);
+ binStream.Write(alpha7);
+ binStream.Write(alpha8);
+ binStream.Write(alpha9);
+ binStream.Write(alpha10);
+ }
+ }
+
+ binStream.Close();
+ s.Close();
+ }
+
+
+ public string FileExtension
+ {
+ get { return ".raw"; }
+ }
+
+ #endregion
+
+ public override string ToString()
+ {
+ return "LL/SL RAW";
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs
index 2925c7d..b893f70 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs
@@ -1,47 +1,47 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-using System.Drawing;
-using System.Drawing.Imaging;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- internal class PNG : GenericSystemDrawing
- {
- public override void SaveFile(string filename, ITerrainChannel map)
- {
- Bitmap colours = CreateGrayscaleBitmapFromMap(map);
-
- colours.Save(filename, ImageFormat.Png);
- }
-
- public override string ToString()
- {
- return "PNG";
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+using System.Drawing;
+using System.Drawing.Imaging;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ internal class PNG : GenericSystemDrawing
+ {
+ public override void SaveFile(string filename, ITerrainChannel map)
+ {
+ Bitmap colours = CreateGrayscaleBitmapFromMap(map);
+
+ colours.Save(filename, ImageFormat.Png);
+ }
+
+ public override string ToString()
+ {
+ return "PNG";
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs
index 71f56c5..fd2136c 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs
@@ -1,153 +1,153 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.IO;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- public class RAW32 : ITerrainLoader
- {
- #region ITerrainLoader Members
-
- public string FileExtension
- {
- get { return ".r32"; }
- }
-
- public ITerrainChannel LoadFile(string filename)
- {
- TerrainChannel retval = new TerrainChannel();
-
- FileInfo file = new FileInfo(filename);
- FileStream s = file.Open(FileMode.Open, FileAccess.Read);
- BinaryReader bs = new BinaryReader(s);
- int x, y;
- for (y = 0; y < retval.Height; y++)
- {
- for (x = 0; x < retval.Width; x++)
- {
- retval[x, y] = bs.ReadSingle();
- }
- }
-
- bs.Close();
- s.Close();
-
- return retval;
- }
-
- public ITerrainChannel LoadFile(string filename, int offsetX, int offsetY, int fileWidth, int fileHeight, int sectionWidth, int sectionHeight)
- {
- TerrainChannel retval = new TerrainChannel(sectionWidth, sectionHeight);
-
- FileInfo file = new FileInfo(filename);
- FileStream s = file.Open(FileMode.Open, FileAccess.Read);
- BinaryReader bs = new BinaryReader(s);
-
- int currFileXOffset = 0;
- int currFileYOffset = 0;
-
- // if our region isn't on the first Y section of the areas to be landscaped, then
- // advance to our section of the file
- while (currFileYOffset < offsetY)
- {
- // read a whole strip of regions
- int heightsToRead = sectionHeight * (fileWidth * sectionWidth);
- bs.ReadBytes(heightsToRead * 4); // because the floats are 4 bytes in the file
- currFileYOffset++;
- }
-
- // got to the Y start offset within the file of our region
- // so read the file bits associated with our region
- int x, y;
- // for each Y within our Y offset
- for (y = 0; y < sectionHeight; y++)
- {
- currFileXOffset = 0;
-
- // if our region isn't the first X section of the areas to be landscaped, then
- // advance the stream to the X start pos of our section in the file
- // i.e. eat X upto where we start
- while (currFileXOffset < offsetX)
- {
- bs.ReadBytes(sectionWidth * 4); // 4 bytes = single
- currFileXOffset++;
- }
-
- // got to our X offset, so write our regions X line
- for (x = 0; x < sectionWidth; x++)
- {
- // Read a strip and continue
- retval[x, y] = bs.ReadSingle();
- }
- // record that we wrote it
- currFileXOffset++;
-
- // if our region isn't the last X section of the areas to be landscaped, then
- // advance the stream to the end of this Y column
- while (currFileXOffset < fileWidth)
- {
- // eat the next regions x line
- bs.ReadBytes(sectionWidth * 4); // 4 bytes = single
- currFileXOffset++;
- }
- }
-
- bs.Close();
- s.Close();
-
- return retval;
- }
-
- public void SaveFile(string filename, ITerrainChannel map)
- {
- FileInfo file = new FileInfo(filename);
- FileStream s = file.Open(FileMode.Create, FileAccess.Write);
- BinaryWriter bs = new BinaryWriter(s);
-
- int x, y;
- for (y = 0; y < map.Height; y++)
- {
- for (x = 0; x < map.Width; x++)
- {
- bs.Write((float) map[x, y]);
- }
- }
-
- bs.Close();
- s.Close();
- }
-
- #endregion
-
- public override string ToString()
- {
- return "RAW32";
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System.IO;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ public class RAW32 : ITerrainLoader
+ {
+ #region ITerrainLoader Members
+
+ public string FileExtension
+ {
+ get { return ".r32"; }
+ }
+
+ public ITerrainChannel LoadFile(string filename)
+ {
+ TerrainChannel retval = new TerrainChannel();
+
+ FileInfo file = new FileInfo(filename);
+ FileStream s = file.Open(FileMode.Open, FileAccess.Read);
+ BinaryReader bs = new BinaryReader(s);
+ int x, y;
+ for (y = 0; y < retval.Height; y++)
+ {
+ for (x = 0; x < retval.Width; x++)
+ {
+ retval[x, y] = bs.ReadSingle();
+ }
+ }
+
+ bs.Close();
+ s.Close();
+
+ return retval;
+ }
+
+ public ITerrainChannel LoadFile(string filename, int offsetX, int offsetY, int fileWidth, int fileHeight, int sectionWidth, int sectionHeight)
+ {
+ TerrainChannel retval = new TerrainChannel(sectionWidth, sectionHeight);
+
+ FileInfo file = new FileInfo(filename);
+ FileStream s = file.Open(FileMode.Open, FileAccess.Read);
+ BinaryReader bs = new BinaryReader(s);
+
+ int currFileXOffset = 0;
+ int currFileYOffset = 0;
+
+ // if our region isn't on the first Y section of the areas to be landscaped, then
+ // advance to our section of the file
+ while (currFileYOffset < offsetY)
+ {
+ // read a whole strip of regions
+ int heightsToRead = sectionHeight * (fileWidth * sectionWidth);
+ bs.ReadBytes(heightsToRead * 4); // because the floats are 4 bytes in the file
+ currFileYOffset++;
+ }
+
+ // got to the Y start offset within the file of our region
+ // so read the file bits associated with our region
+ int x, y;
+ // for each Y within our Y offset
+ for (y = 0; y < sectionHeight; y++)
+ {
+ currFileXOffset = 0;
+
+ // if our region isn't the first X section of the areas to be landscaped, then
+ // advance the stream to the X start pos of our section in the file
+ // i.e. eat X upto where we start
+ while (currFileXOffset < offsetX)
+ {
+ bs.ReadBytes(sectionWidth * 4); // 4 bytes = single
+ currFileXOffset++;
+ }
+
+ // got to our X offset, so write our regions X line
+ for (x = 0; x < sectionWidth; x++)
+ {
+ // Read a strip and continue
+ retval[x, y] = bs.ReadSingle();
+ }
+ // record that we wrote it
+ currFileXOffset++;
+
+ // if our region isn't the last X section of the areas to be landscaped, then
+ // advance the stream to the end of this Y column
+ while (currFileXOffset < fileWidth)
+ {
+ // eat the next regions x line
+ bs.ReadBytes(sectionWidth * 4); // 4 bytes = single
+ currFileXOffset++;
+ }
+ }
+
+ bs.Close();
+ s.Close();
+
+ return retval;
+ }
+
+ public void SaveFile(string filename, ITerrainChannel map)
+ {
+ FileInfo file = new FileInfo(filename);
+ FileStream s = file.Open(FileMode.Create, FileAccess.Write);
+ BinaryWriter bs = new BinaryWriter(s);
+
+ int x, y;
+ for (y = 0; y < map.Height; y++)
+ {
+ for (x = 0; x < map.Width; x++)
+ {
+ bs.Write((float) map[x, y]);
+ }
+ }
+
+ bs.Close();
+ s.Close();
+ }
+
+ #endregion
+
+ public override string ToString()
+ {
+ return "RAW32";
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs
index 3a137ae..c081aea 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs
@@ -1,47 +1,47 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-using System.Drawing;
-using System.Drawing.Imaging;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- internal class TIFF : GenericSystemDrawing
- {
- public override void SaveFile(string filename, ITerrainChannel map)
- {
- Bitmap colours = CreateGrayscaleBitmapFromMap(map);
-
- colours.Save(filename, ImageFormat.Tiff);
- }
-
- public override string ToString()
- {
- return "TIFF";
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+using System.Drawing;
+using System.Drawing.Imaging;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ internal class TIFF : GenericSystemDrawing
+ {
+ public override void SaveFile(string filename, ITerrainChannel map)
+ {
+ Bitmap colours = CreateGrayscaleBitmapFromMap(map);
+
+ colours.Save(filename, ImageFormat.Tiff);
+ }
+
+ public override string ToString()
+ {
+ return "TIFF";
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs
index f2672ad..7cb4b00 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs
@@ -1,127 +1,127 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.IO;
-using System.Text;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
-{
- ///
- /// Terragen File Format Loader
- /// Built from specification at
- /// http://www.planetside.co.uk/terragen/dev/tgterrain.html
- ///
- internal class Terragen : ITerrainLoader
- {
- #region ITerrainLoader Members
-
- public ITerrainChannel LoadFile(string filename)
- {
- TerrainChannel retval = new TerrainChannel();
-
- FileInfo file = new FileInfo(filename);
- FileStream s = file.Open(FileMode.Open, FileAccess.Read);
- BinaryReader bs = new BinaryReader(s);
-
- bool eof = false;
- if (ASCIIEncoding.ASCII.GetString(bs.ReadBytes(16)) == "TERRAGENTERRAIN ")
- {
- // Terragen file
- while (eof == false)
- {
- int w = 256;
- int h = 256;
- string tmp = ASCIIEncoding.ASCII.GetString(bs.ReadBytes(4));
- switch (tmp)
- {
- case "SIZE":
- int sztmp = bs.ReadInt16() + 1;
- w = sztmp;
- h = sztmp;
- bs.ReadInt16();
- break;
- case "XPTS":
- w = bs.ReadInt16();
- bs.ReadInt16();
- break;
- case "YPTS":
- h = bs.ReadInt16();
- bs.ReadInt16();
- break;
- case "ALTW":
- eof = true;
- Int16 heightScale = bs.ReadInt16();
- Int16 baseHeight = bs.ReadInt16();
- retval = new TerrainChannel(w, h);
- int x, y;
- for (x = 0; x < w; x++)
- {
- for (y = 0; y < h; y++)
- {
- retval[x, y] = (double) baseHeight + (double) bs.ReadInt16() * (double) heightScale / 65536.0;
- }
- }
- break;
- default:
- bs.ReadInt32();
- break;
- }
- }
- }
-
- bs.Close();
- s.Close();
-
- return retval;
- }
-
- public void SaveFile(string filename, ITerrainChannel map)
- {
- char[] header = "TERRAGENTERRAIN".ToCharArray();
- throw new NotImplementedException();
- }
-
- public string FileExtension
- {
- get { return ".ter"; }
- }
-
- public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
- {
- throw new NotImplementedException();
- }
-
- #endregion
-
- public override string ToString()
- {
- return "Terragen";
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.IO;
+using System.Text;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
+{
+ ///
+ /// Terragen File Format Loader
+ /// Built from specification at
+ /// http://www.planetside.co.uk/terragen/dev/tgterrain.html
+ ///
+ internal class Terragen : ITerrainLoader
+ {
+ #region ITerrainLoader Members
+
+ public ITerrainChannel LoadFile(string filename)
+ {
+ TerrainChannel retval = new TerrainChannel();
+
+ FileInfo file = new FileInfo(filename);
+ FileStream s = file.Open(FileMode.Open, FileAccess.Read);
+ BinaryReader bs = new BinaryReader(s);
+
+ bool eof = false;
+ if (ASCIIEncoding.ASCII.GetString(bs.ReadBytes(16)) == "TERRAGENTERRAIN ")
+ {
+ // Terragen file
+ while (eof == false)
+ {
+ int w = 256;
+ int h = 256;
+ string tmp = ASCIIEncoding.ASCII.GetString(bs.ReadBytes(4));
+ switch (tmp)
+ {
+ case "SIZE":
+ int sztmp = bs.ReadInt16() + 1;
+ w = sztmp;
+ h = sztmp;
+ bs.ReadInt16();
+ break;
+ case "XPTS":
+ w = bs.ReadInt16();
+ bs.ReadInt16();
+ break;
+ case "YPTS":
+ h = bs.ReadInt16();
+ bs.ReadInt16();
+ break;
+ case "ALTW":
+ eof = true;
+ Int16 heightScale = bs.ReadInt16();
+ Int16 baseHeight = bs.ReadInt16();
+ retval = new TerrainChannel(w, h);
+ int x, y;
+ for (x = 0; x < w; x++)
+ {
+ for (y = 0; y < h; y++)
+ {
+ retval[x, y] = (double) baseHeight + (double) bs.ReadInt16() * (double) heightScale / 65536.0;
+ }
+ }
+ break;
+ default:
+ bs.ReadInt32();
+ break;
+ }
+ }
+ }
+
+ bs.Close();
+ s.Close();
+
+ return retval;
+ }
+
+ public void SaveFile(string filename, ITerrainChannel map)
+ {
+ char[] header = "TERRAGENTERRAIN".ToCharArray();
+ throw new NotImplementedException();
+ }
+
+ public string FileExtension
+ {
+ get { return ".ter"; }
+ }
+
+ public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+
+ public override string ToString()
+ {
+ return "Terragen";
+ }
+ }
}
\ No newline at end of file
--
cgit v1.1