aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/World/Terrain
diff options
context:
space:
mode:
authorDr Scofield2009-02-06 16:55:34 +0000
committerDr Scofield2009-02-06 16:55:34 +0000
commit9b66108081a8c8cf79faaa6c541554091c40850e (patch)
tree095a232ae5a9de3a9244bcd34da08294f61eeea5 /OpenSim/Region/Environment/Modules/World/Terrain
parent* removed superfluous constants class (diff)
downloadopensim-SC_OLD-9b66108081a8c8cf79faaa6c541554091c40850e.zip
opensim-SC_OLD-9b66108081a8c8cf79faaa6c541554091c40850e.tar.gz
opensim-SC_OLD-9b66108081a8c8cf79faaa6c541554091c40850e.tar.bz2
opensim-SC_OLD-9b66108081a8c8cf79faaa6c541554091c40850e.tar.xz
This changeset is the step 1 of 2 in refactoring
OpenSim.Region.Environment into a "framework" part and a modules only part. This first changeset refactors OpenSim.Region.Environment.Scenes, OpenSim.Region.Environment.Interfaces, and OpenSim.Region.Interfaces into OpenSim.Region.Framework.{Interfaces,Scenes} leaving only region modules in OpenSim.Region.Environment. The next step will be to move region modules up from OpenSim.Region.Environment.Modules to OpenSim.Region.CoreModules and then sort out which modules are really core modules and which should move out to forge. I've been very careful to NOT BREAK anything. i hope i've succeeded. as this is the work of a whole week i hope i managed to keep track with the applied patches of the last week --- could any of you that did check in stuff have a look at whether it survived? thx!
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World/Terrain')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/Effects/DefaultTerrainGenerator.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/FlattenArea.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/LowerArea.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/NoiseArea.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RaiseArea.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RevertArea.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/SmoothArea.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/ITerrainEffect.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/ITerrainFloodEffect.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/ITerrainLoader.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs3
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs242
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs4
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/TerrainUtil.cs132
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs1
34 files changed, 48 insertions, 406 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs b/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs
index c5e99b5..83246fb 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs
@@ -25,7 +25,8 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27using System; 27using System;
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29using OpenSim.Region.Framework.Scenes;
29using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes; 30using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects 32namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/Effects/DefaultTerrainGenerator.cs b/OpenSim/Region/Environment/Modules/World/Terrain/Effects/DefaultTerrainGenerator.cs
index 5bc6799..2082137 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/Effects/DefaultTerrainGenerator.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/Effects/DefaultTerrainGenerator.cs
@@ -25,7 +25,8 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27using OpenSim.Framework; 27using OpenSim.Framework;
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29using OpenSim.Region.Framework.Scenes;
29 30
30namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects 31namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects
31{ 32{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs
index 48da96d..a8e79d0 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs
@@ -28,7 +28,7 @@
28using System.Drawing; 28using System.Drawing;
29using System.Drawing.Imaging; 29using System.Drawing.Imaging;
30using System.IO; 30using System.IO;
31using OpenSim.Region.Environment.Interfaces; 31using OpenSim.Region.Framework.Interfaces;
32 32
33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
34{ 34{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs
index accffd2..b76fe05 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs
@@ -28,7 +28,7 @@
28using System.Drawing; 28using System.Drawing;
29using System.Drawing.Imaging; 29using System.Drawing.Imaging;
30using System.IO; 30using System.IO;
31using OpenSim.Region.Environment.Interfaces; 31using OpenSim.Region.Framework.Interfaces;
32 32
33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
34{ 34{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
index 983ad29..80873d9 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
@@ -29,7 +29,8 @@ using System;
29using System.Drawing; 29using System.Drawing;
30using System.Drawing.Imaging; 30using System.Drawing.Imaging;
31using System.IO; 31using System.IO;
32using OpenSim.Region.Environment.Interfaces; 32using OpenSim.Region.Framework.Interfaces;
33using OpenSim.Region.Framework.Scenes;
33 34
34namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 35namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
35{ 36{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs
index 35576c7..bea504d 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs
@@ -29,7 +29,7 @@ using System;
29using System.Drawing; 29using System.Drawing;
30using System.Drawing.Imaging; 30using System.Drawing.Imaging;
31using System.IO; 31using System.IO;
32using OpenSim.Region.Environment.Interfaces; 32using OpenSim.Region.Framework.Interfaces;
33 33
34namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 34namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
35{ 35{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs
index 5158525..e323e28 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs
@@ -27,7 +27,8 @@
27 27
28using System; 28using System;
29using System.IO; 29using System.IO;
30using OpenSim.Region.Environment.Interfaces; 30using OpenSim.Region.Framework.Interfaces;
31using OpenSim.Region.Framework.Scenes;
31 32
32namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
33{ 34{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs
index 19e181e..25967f3 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs
@@ -28,7 +28,7 @@
28using System.Drawing; 28using System.Drawing;
29using System.Drawing.Imaging; 29using System.Drawing.Imaging;
30using System.IO; 30using System.IO;
31using OpenSim.Region.Environment.Interfaces; 31using OpenSim.Region.Framework.Interfaces;
32 32
33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
34{ 34{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs
index 758821a..7aff56a 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs
@@ -26,7 +26,8 @@
26 */ 26 */
27 27
28using System.IO; 28using System.IO;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30using OpenSim.Region.Framework.Scenes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 32namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
32{ 33{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs
index 95b43b0..0503487 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs
@@ -28,7 +28,7 @@
28using System.Drawing; 28using System.Drawing;
29using System.Drawing.Imaging; 29using System.Drawing.Imaging;
30using System.IO; 30using System.IO;
31using OpenSim.Region.Environment.Interfaces; 31using OpenSim.Region.Framework.Interfaces;
32 32
33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
34{ 34{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs
index 2bf029e..44d03e3 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs
@@ -28,7 +28,8 @@
28using System; 28using System;
29using System.IO; 29using System.IO;
30using System.Text; 30using System.Text;
31using OpenSim.Region.Environment.Interfaces; 31using OpenSim.Region.Framework.Interfaces;
32using OpenSim.Region.Framework.Scenes;
32 33
33namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders 34namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
34{ 35{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/FlattenArea.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/FlattenArea.cs
index f3c8a13..4d49a70 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/FlattenArea.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/FlattenArea.cs
@@ -25,7 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29 29
30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes 30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes
31{ 31{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/LowerArea.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/LowerArea.cs
index 3646d61..64f9014 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/LowerArea.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/LowerArea.cs
@@ -25,7 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29 29
30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes 30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes
31{ 31{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/NoiseArea.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/NoiseArea.cs
index f7c4893..2d44a3a 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/NoiseArea.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/NoiseArea.cs
@@ -26,7 +26,8 @@
26 */ 26 */
27 27
28using OpenSim.Framework; 28using OpenSim.Framework;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30using OpenSim.Region.Framework.Scenes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes 32namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes
32{ 33{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RaiseArea.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RaiseArea.cs
index 5eff3d6..0c7d016 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RaiseArea.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RaiseArea.cs
@@ -25,7 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29 29
30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes 30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes
31{ 31{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RevertArea.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RevertArea.cs
index 602a5cc..3f06d82 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RevertArea.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/RevertArea.cs
@@ -25,7 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29 29
30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes 30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes
31{ 31{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/SmoothArea.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/SmoothArea.cs
index 8fd805e..3881264 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/SmoothArea.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/FloodBrushes/SmoothArea.cs
@@ -25,7 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29 29
30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes 30namespace OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes
31{ 31{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainEffect.cs b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainEffect.cs
index bbbe2a3..4533e9e 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainEffect.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainEffect.cs
@@ -25,7 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29 29
30namespace OpenSim.Region.Environment.Modules.World.Terrain 30namespace OpenSim.Region.Environment.Modules.World.Terrain
31{ 31{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainFloodEffect.cs b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainFloodEffect.cs
index 9fe93a2..5bae84b 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainFloodEffect.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainFloodEffect.cs
@@ -26,7 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30 30
31namespace OpenSim.Region.Environment.Modules.World.Terrain 31namespace OpenSim.Region.Environment.Modules.World.Terrain
32{ 32{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainLoader.cs b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainLoader.cs
index 950b27b..21bda58 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainLoader.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainLoader.cs
@@ -26,7 +26,7 @@
26 */ 26 */
27 27
28using System.IO; 28using System.IO;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30 30
31namespace OpenSim.Region.Environment.Modules.World.Terrain 31namespace OpenSim.Region.Environment.Modules.World.Terrain
32{ 32{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs
index e2a9cde..7461560 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs
@@ -25,7 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29 29
30namespace OpenSim.Region.Environment.Modules.World.Terrain 30namespace OpenSim.Region.Environment.Modules.World.Terrain
31{ 31{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs
index 3fa3f8a..4d694cc 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs
@@ -26,7 +26,8 @@
26 */ 26 */
27 27
28using System; 28using System;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30using OpenSim.Region.Framework.Scenes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 32namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
32{ 33{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs
index c103d99..91c030d 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs
@@ -26,7 +26,8 @@
26 */ 26 */
27 27
28using System; 28using System;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30using OpenSim.Region.Framework.Scenes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 32namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
32{ 33{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs
index 745d3da..d391e94 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs
@@ -26,7 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30 30
31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
32{ 32{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs
index 23f7bc5..32a6869 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs
@@ -27,7 +27,8 @@
27 27
28using System; 28using System;
29using OpenSim.Framework; 29using OpenSim.Framework;
30using OpenSim.Region.Environment.Interfaces; 30using OpenSim.Region.Framework.Interfaces;
31using OpenSim.Region.Framework.Scenes;
31 32
32namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 33namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
33{ 34{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs
index 42ec794..86d01d3 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs
@@ -26,7 +26,8 @@
26 */ 26 */
27 27
28using System; 28using System;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30using OpenSim.Region.Framework.Scenes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 32namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
32{ 33{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs
index 56813ab..a0ff262 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs
@@ -26,7 +26,8 @@
26 */ 26 */
27 27
28using System; 28using System;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30using OpenSim.Region.Framework.Scenes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 32namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
32{ 33{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs
index d3a1d3d..af6d94d 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs
@@ -26,7 +26,8 @@
26 */ 26 */
27 27
28using System; 28using System;
29using OpenSim.Region.Environment.Interfaces; 29using OpenSim.Region.Framework.Interfaces;
30using OpenSim.Region.Framework.Scenes;
30 31
31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 32namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
32{ 33{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs
index 0b4996f..fe270f7 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs
@@ -25,7 +25,8 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29using OpenSim.Region.Framework.Scenes;
29 30
30namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
31{ 32{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs
index 1288419..faba119 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs
@@ -25,7 +25,8 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Framework.Interfaces;
29using OpenSim.Region.Framework.Scenes;
29 30
30namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes 31namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
31{ 32{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs
deleted file mode 100644
index 1534c4b..0000000
--- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainChannel.cs
+++ /dev/null
@@ -1,242 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenSim.Framework;
29using OpenSim.Region.Environment.Interfaces;
30using System;
31using System.Text;
32using System.Xml;
33using System.IO;
34using System.Xml.Serialization;
35
36namespace OpenSim.Region.Environment.Modules.World.Terrain
37{
38 /// <summary>
39 /// A new version of the old Channel class, simplified
40 /// </summary>
41 public class TerrainChannel : ITerrainChannel
42 {
43 private readonly bool[,] taint;
44 private double[,] map;
45
46 public TerrainChannel()
47 {
48 map = new double[Constants.RegionSize, Constants.RegionSize];
49 taint = new bool[Constants.RegionSize / 16,Constants.RegionSize / 16];
50
51 int x;
52 for (x = 0; x < Constants.RegionSize; x++)
53 {
54 int y;
55 for (y = 0; y < Constants.RegionSize; y++)
56 {
57 map[x, y] = TerrainUtil.PerlinNoise2D(x, y, 2, 0.125) * 10;
58 double spherFacA = TerrainUtil.SphericalFactor(x, y, Constants.RegionSize / 2.0, Constants.RegionSize / 2.0, 50) * 0.01;
59 double spherFacB = TerrainUtil.SphericalFactor(x, y, Constants.RegionSize / 2.0, Constants.RegionSize / 2.0, 100) * 0.001;
60 if (map[x, y] < spherFacA)
61 map[x, y] = spherFacA;
62 if (map[x, y] < spherFacB)
63 map[x, y] = spherFacB;
64 }
65 }
66 }
67
68 public TerrainChannel(double[,] import)
69 {
70 map = import;
71 taint = new bool[import.GetLength(0),import.GetLength(1)];
72 }
73
74 public TerrainChannel(bool createMap)
75 {
76 if (createMap)
77 {
78 map = new double[Constants.RegionSize,Constants.RegionSize];
79 taint = new bool[Constants.RegionSize / 16,Constants.RegionSize / 16];
80 }
81 }
82
83 public TerrainChannel(int w, int h)
84 {
85 map = new double[w,h];
86 taint = new bool[w / 16,h / 16];
87 }
88
89 #region ITerrainChannel Members
90
91 public int Width
92 {
93 get { return map.GetLength(0); }
94 }
95
96 public int Height
97 {
98 get { return map.GetLength(1); }
99 }
100
101 public ITerrainChannel MakeCopy()
102 {
103 TerrainChannel copy = new TerrainChannel(false);
104 copy.map = (double[,]) map.Clone();
105
106 return copy;
107 }
108
109 public float[] GetFloatsSerialised()
110 {
111 // Move the member variables into local variables, calling
112 // member variables 256*256 times gets expensive
113 int w = Width;
114 int h = Height;
115 float[] heights = new float[w * h];
116
117 int i, j; // map coordinates
118 int idx = 0; // index into serialized array
119 for (i = 0; i < h; i++)
120 {
121 for (j = 0; j < w; j++)
122 {
123 heights[idx++] = (float)map[j, i];
124 }
125 }
126
127 return heights;
128 }
129
130 public double[,] GetDoubles()
131 {
132 return map;
133 }
134
135 public double this[int x, int y]
136 {
137 get { return map[x, y]; }
138 set
139 {
140 // Will "fix" terrain hole problems. Although not fantastically.
141 if (Double.IsNaN(value) || Double.IsInfinity(value))
142 return;
143
144 if (map[x, y] != value)
145 {
146 taint[x / 16, y / 16] = true;
147 map[x, y] = value;
148 }
149 }
150 }
151
152 public bool Tainted(int x, int y)
153 {
154 if (taint[x / 16, y / 16])
155 {
156 taint[x / 16, y / 16] = false;
157 return true;
158 }
159 return false;
160 }
161
162 #endregion
163
164 public TerrainChannel Copy()
165 {
166 TerrainChannel copy = new TerrainChannel(false);
167 copy.map = (double[,]) map.Clone();
168
169 return copy;
170 }
171
172 public string SaveToXmlString()
173 {
174 XmlWriterSettings settings = new XmlWriterSettings();
175 settings.Encoding = Encoding.UTF8;
176 using (StringWriter sw = new StringWriter())
177 {
178 using (XmlWriter writer = XmlWriter.Create(sw, settings))
179 {
180 WriteXml(writer);
181 }
182 string output = sw.ToString();
183 return output;
184 }
185 }
186
187 private void WriteXml(XmlWriter writer)
188 {
189 writer.WriteStartElement(String.Empty, "TerrainMap", String.Empty);
190 ToXml(writer);
191 writer.WriteEndElement();
192 }
193
194 public void LoadFromXmlString(string data)
195 {
196 StringReader sr = new StringReader(data);
197 XmlTextReader reader = new XmlTextReader(sr);
198 reader.Read();
199
200 ReadXml(reader);
201 reader.Close();
202 sr.Close();
203 }
204
205 private void ReadXml(XmlReader reader)
206 {
207 reader.ReadStartElement("TerrainMap");
208 FromXml(reader);
209 }
210
211 private void ToXml(XmlWriter xmlWriter)
212 {
213 float[] mapData = GetFloatsSerialised();
214 byte[] buffer = new byte[mapData.Length * 4];
215 for (int i = 0; i < mapData.Length; i++)
216 {
217 byte[] value = BitConverter.GetBytes(mapData[i]);
218 Array.Copy(value, 0, buffer, (i * 4), 4);
219 }
220 XmlSerializer serializer = new XmlSerializer(typeof(byte[]));
221 serializer.Serialize(xmlWriter, buffer);
222 }
223
224 private void FromXml(XmlReader xmlReader)
225 {
226 XmlSerializer serializer = new XmlSerializer(typeof(byte[]));
227 byte[] dataArray = (byte[])serializer.Deserialize(xmlReader);
228 int index = 0;
229
230 for (int y = 0; y < Height; y++)
231 {
232 for (int x = 0; x < Width; x++)
233 {
234 float value;
235 value = BitConverter.ToSingle(dataArray, index);
236 index += 4;
237 this[x, y] = (double)value;
238 }
239 }
240 }
241 }
242}
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
index 3c27872..bc601dc 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
@@ -33,12 +33,12 @@ using OpenMetaverse;
33using log4net; 33using log4net;
34using Nini.Config; 34using Nini.Config;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using OpenSim.Region.Environment.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Region.Framework.Scenes;
37using OpenSim.Region.Environment.Modules.Framework.InterfaceCommander; 38using OpenSim.Region.Environment.Modules.Framework.InterfaceCommander;
38using OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders; 39using OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders;
39using OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes; 40using OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes;
40using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes; 41using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes;
41using OpenSim.Region.Environment.Scenes;
42 42
43namespace OpenSim.Region.Environment.Modules.World.Terrain 43namespace OpenSim.Region.Environment.Modules.World.Terrain
44{ 44{
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainUtil.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainUtil.cs
deleted file mode 100644
index b20ff42..0000000
--- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainUtil.cs
+++ /dev/null
@@ -1,132 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using OpenSim.Region.Environment.Interfaces;
30
31namespace OpenSim.Region.Environment.Modules.World.Terrain
32{
33 public static class TerrainUtil
34 {
35 public static double MetersToSphericalStrength(double size)
36 {
37 //return Math.Pow(2, size);
38 return (size + 1) * 1.35; // MCP: a more useful brush size range
39 }
40
41 public static double SphericalFactor(double x, double y, double rx, double ry, double size)
42 {
43 return size * size - ((x - rx) * (x - rx) + (y - ry) * (y - ry));
44 }
45
46 public static double GetBilinearInterpolate(double x, double y, ITerrainChannel map)
47 {
48 int w = map.Width;
49 int h = map.Height;
50
51 if (x > w - 2.0)
52 x = w - 2.0;
53 if (y > h - 2.0)
54 y = h - 2.0;
55 if (x < 0.0)
56 x = 0.0;
57 if (y < 0.0)
58 y = 0.0;
59
60 const int stepSize = 1;
61 double h00 = map[(int) x, (int) y];
62 double h10 = map[(int) x + stepSize, (int) y];
63 double h01 = map[(int) x, (int) y + stepSize];
64 double h11 = map[(int) x + stepSize, (int) y + stepSize];
65 double h1 = h00;
66 double h2 = h10;
67 double h3 = h01;
68 double h4 = h11;
69 double a00 = h1;
70 double a10 = h2 - h1;
71 double a01 = h3 - h1;
72 double a11 = h1 - h2 - h3 + h4;
73 double partialx = x - (int) x;
74 double partialz = y - (int) y;
75 double hi = a00 + (a10 * partialx) + (a01 * partialz) + (a11 * partialx * partialz);
76 return hi;
77 }
78
79 private static double Noise(double x, double y)
80 {
81 int n = (int) x + (int) (y * 749);
82 n = (n << 13) ^ n;
83 return (1.0 - ((n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0);
84 }
85
86 private static double SmoothedNoise1(double x, double y)
87 {
88 double corners = (Noise(x - 1, y - 1) + Noise(x + 1, y - 1) + Noise(x - 1, y + 1) + Noise(x + 1, y + 1)) / 16;
89 double sides = (Noise(x - 1, y) + Noise(x + 1, y) + Noise(x, y - 1) + Noise(x, y + 1)) / 8;
90 double center = Noise(x, y) / 4;
91 return corners + sides + center;
92 }
93
94 private static double Interpolate(double x, double y, double z)
95 {
96 return (x * (1.0 - z)) + (y * z);
97 }
98
99 public static double InterpolatedNoise(double x, double y)
100 {
101 int integer_X = (int) (x);
102 double fractional_X = x - integer_X;
103
104 int integer_Y = (int) y;
105 double fractional_Y = y - integer_Y;
106
107 double v1 = SmoothedNoise1(integer_X, integer_Y);
108 double v2 = SmoothedNoise1(integer_X + 1, integer_Y);
109 double v3 = SmoothedNoise1(integer_X, integer_Y + 1);
110 double v4 = SmoothedNoise1(integer_X + 1, integer_Y + 1);
111
112 double i1 = Interpolate(v1, v2, fractional_X);
113 double i2 = Interpolate(v3, v4, fractional_X);
114
115 return Interpolate(i1, i2, fractional_Y);
116 }
117
118 public static double PerlinNoise2D(double x, double y, int octaves, double persistence)
119 {
120 double total = 0.0;
121
122 for (int i = 0; i < octaves; i++)
123 {
124 double frequency = Math.Pow(2, i);
125 double amplitude = Math.Pow(persistence, i);
126
127 total += InterpolatedNoise(x * frequency, y * frequency) * amplitude;
128 }
129 return total;
130 }
131 }
132}
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs b/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs
index 3511988..2acd5bc 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs
@@ -27,6 +27,7 @@
27 27
28using System; 28using System;
29using NUnit.Framework; 29using NUnit.Framework;
30using OpenSim.Region.Framework.Scenes;
30using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes; 31using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes;
31 32
32namespace OpenSim.Region.Environment.Modules.World.Terrain.Tests 33namespace OpenSim.Region.Environment.Modules.World.Terrain.Tests