diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs index 2f6c20431b..875de50757 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs @@ -31,13 +31,19 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule { public class Heightmap : IHeightmap { - private Scene m_scene; + private readonly Scene m_scene; public Heightmap(Scene scene) { m_scene = scene; } + public double this[int x, int y] + { + get { return Get(x, y); } + set { Set(x, y, value); } + } + public int Height { get { return m_scene.Heightmap.Height; } @@ -48,12 +54,12 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule get { return m_scene.Heightmap.Width; } } - public double Get(int x, int y) + protected double Get(int x, int y) { return m_scene.Heightmap[x, y]; } - public void Set(int x, int y, double val) + protected void Set(int x, int y, double val) { m_scene.Heightmap[x, y] = val; } diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs index 37cf8ae4e0..afea12b9fa 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs @@ -33,9 +33,26 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule { public interface IHeightmap { + /// + /// Returns [or sets] the heightmap value at specified coordinates. + /// + /// X Coordinate + /// Y Coordinate + /// A value in meters representing height. Can be negative. Value correlates with Z parameter in world coordinates + double this[int x, int y] + { + get; + set; + } + + /// + /// The maximum height of the region (Y axis), exclusive. (eg Height = 256, max Y = 255). Minimum is always 0 inclusive. + /// int Height { get; } + + /// + /// The maximum width of the region (X axis), exclusive. (eg Width = 256, max X = 255). Minimum is always 0 inclusive. + /// int Width { get; } - double Get(int x, int y); - void Set(int x, int y, double val); } }