From 8194d822301481c56c2e48857e6609409613dd6d Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Wed, 20 Jun 2007 21:57:22 +0000
Subject: * Terrain modification more robust, uses area sizes matching those
employed by the client display. * Terrain tools now account for the duration
the cursor was held for. * Terrain tools now support new brushes (completing
the common set) ** Smooth brush ** Flatten brush ** Revert brush ** Noise
brush
---
.../OpenSim.Terrain.BasicTerrain/TerrainEngine.cs | 83 ++++++++++++++++++++++
1 file changed, 83 insertions(+)
(limited to 'OpenSim/OpenSim.Terrain.BasicTerrain')
diff --git a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs
index 2d0fb30..d1d54ad 100644
--- a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs
+++ b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs
@@ -542,6 +542,89 @@ namespace OpenSim.Terrain
}
///
+ /// Flattens the land under the brush of specified coordinates (spherical mask)
+ ///
+ /// Center of sphere
+ /// Center of sphere
+ /// Radius of the sphere
+ /// Thickness of the mask (0..2 recommended)
+ public void flatten(double rx, double ry, double size, double amount)
+ {
+ lock (heightmap)
+ {
+ heightmap.flatten(rx, ry, size, amount);
+ }
+
+ tainted++;
+ }
+
+ ///
+ /// Creates noise within the specified bounds
+ ///
+ /// Center of the bounding sphere
+ /// Center of the bounding sphere
+ /// The radius of the sphere
+ /// Strength of the mask (0..2) recommended
+ public void noise(double rx, double ry, double size, double amount)
+ {
+ lock (heightmap)
+ {
+ Channel smoothed = new Channel();
+ smoothed.noise();
+
+ Channel mask = new Channel();
+ mask.raise(rx, ry, size, amount);
+
+ heightmap.blend(smoothed, mask);
+ }
+
+ tainted++;
+ }
+
+ ///
+ /// Reverts land within the specified bounds
+ ///
+ /// Center of the bounding sphere
+ /// Center of the bounding sphere
+ /// The radius of the sphere
+ /// Strength of the mask (0..2) recommended
+ public void revert(double rx, double ry, double size, double amount)
+ {
+ lock (heightmap)
+ {
+ Channel mask = new Channel();
+ mask.raise(rx, ry, size, amount);
+
+ heightmap.blend(revertmap, mask);
+ }
+
+ tainted++;
+ }
+
+ ///
+ /// Smooths land under the brush of specified coordinates (spherical mask)
+ ///
+ /// Center of the sphere
+ /// Center of the sphere
+ /// Radius of the sphere
+ /// Thickness of the mask (0..2 recommended)
+ public void smooth(double rx, double ry, double size, double amount)
+ {
+ lock (heightmap)
+ {
+ Channel smoothed = heightmap.copy();
+ smoothed.smooth(amount);
+
+ Channel mask = new Channel();
+ mask.raise(rx,ry,size,amount);
+
+ heightmap.blend(smoothed, mask);
+ }
+
+ tainted++;
+ }
+
+ ///
/// Generates a simple set of hills in the shape of an island
///
public void hills()
--
cgit v1.1