From f84937367f7180140bd17444d507977f9b7e3d2e Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sat, 21 Jul 2007 22:25:42 +0000
Subject: * Deleted libTerrain-BSD.dll * Added libTerrain to BasicTerrain
directly as a subfolder
---
.../libTerrainBSD/Channel/Editing/Raise.cs | 142 +++++++++++++++++++++
1 file changed, 142 insertions(+)
create mode 100644 OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs
(limited to 'OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs')
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs
new file mode 100644
index 0000000..21d2645
--- /dev/null
+++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs
@@ -0,0 +1,142 @@
+/*
+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 libTerrain 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 COPYRIGHT HOLDERS AND CONTRIBUTORS
+"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 COPYRIGHT
+OWNER OR 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.Collections.Generic;
+using System.Text;
+
+namespace libTerrain
+{
+ partial class Channel
+ {
+ ///
+ /// Raises land around the selection
+ ///
+ /// The center the X coordinate of where you wish to raise the land
+ /// The center the Y coordinate of where you wish to raise the land
+ /// The radius of the dimple
+ /// How much impact to add to the terrain (0..2 usually)
+ public void raise(double rx, double ry, double size, double amount)
+ {
+ raiseSphere(rx, ry, size, amount);
+ }
+
+ ///
+ /// Raises land in a sphere around the selection
+ ///
+ /// The center the X coordinate of where you wish to raise the land
+ /// The center the Y coordinate of where you wish to raise the land
+ /// The radius of the sphere dimple
+ /// How much impact to add to the terrain (0..2 usually)
+ public void raiseSphere(double rx, double ry, double size, double amount)
+ {
+ int x, y;
+ for (x = 0; x < w; x++)
+ {
+ for (y = 0; y < h; y++)
+ {
+ double z = size;
+ z *= z;
+ z -= ((x - rx) * (x - rx)) + ((y - ry) * (y - ry));
+
+ if (z < 0)
+ z = 0;
+
+ map[x, y] += z * amount;
+ }
+ }
+ }
+
+ ///
+ /// Raises land in a cone around the selection
+ ///
+ /// The center the X coordinate of where you wish to raise the land
+ /// The center the Y coordinate of where you wish to raise the land
+ /// The radius of the cone
+ /// How much impact to add to the terrain (0..2 usually)
+ public void raiseCone(double rx, double ry, double size, double amount)
+ {
+ int x, y;
+ for (x = 0; x < w; x++)
+ {
+ for (y = 0; y < h; y++)
+ {
+ double z = size;
+ z -= Math.Sqrt(((x - rx) * (x - rx)) + ((y - ry) * (y - ry)));
+
+ if (z < 0)
+ z = 0;
+
+ map[x, y] += z * amount;
+ }
+ }
+ }
+
+ ///
+ /// Lowers land in a sphere around the selection
+ ///
+ /// The center the X coordinate of where you wish to lower the land
+ /// The center the Y coordinate of where you wish to lower the land
+ /// The radius of the sphere dimple
+ /// How much impact to remove from the terrain (0..2 usually)
+ public void lower(double rx, double ry, double size, double amount)
+ {
+ lowerSphere(rx, ry, size, amount);
+ }
+
+ ///
+ /// Lowers land in a sphere around the selection
+ ///
+ /// The center the X coordinate of where you wish to lower the land
+ /// The center the Y coordinate of where you wish to lower the land
+ /// The radius of the sphere dimple
+ /// How much impact to remove from the terrain (0..2 usually)
+ public void lowerSphere(double rx, double ry, double size, double amount)
+ {
+ int x, y;
+ for (x = 0; x < w; x++)
+ {
+ for (y = 0; y < h; y++)
+ {
+ double z = size;
+ z *= z;
+ z -= ((x - rx) * (x - rx)) + ((y - ry) * (y - ry));
+
+ if (z < 0)
+ z = 0;
+
+ map[x, y] -= z * amount;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
--
cgit v1.1