diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 488b044c2c..4130b9f9af 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -1116,35 +1116,41 @@ namespace OpenSim.Framework
return true;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static double UnixTimeSinceEpochSecs()
{
TimeSpan t = DateTime.UtcNow - UnixEpoch;
return t.TotalSeconds;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int UnixTimeSinceEpoch()
{
TimeSpan t = DateTime.UtcNow - UnixEpoch;
return (int)t.TotalSeconds;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ulong UnixTimeSinceEpoch_uS()
{
TimeSpan t = DateTime.UtcNow - UnixEpoch;
return (ulong)(t.TotalMilliseconds * 1000);
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int ToUnixTime(DateTime stamp)
{
TimeSpan t = stamp.ToUniversalTime() - UnixEpoch;
return (int)t.TotalSeconds;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static DateTime ToDateTime(ulong seconds)
{
return UnixEpoch.AddSeconds(seconds);
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static DateTime ToDateTime(int seconds)
{
return UnixEpoch.AddSeconds(seconds);
@@ -1155,7 +1161,7 @@ namespace OpenSim.Framework
///
///
///
-
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string Md5Hash(string data)
{
return Md5Hash(data, Encoding.Default);
@@ -1170,6 +1176,7 @@ namespace OpenSim.Framework
return sb.ToString();
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
private static byte[] ComputeMD5Hash(string data, Encoding encoding)
{
using (MD5 md5 = MD5.Create())
@@ -1237,11 +1244,13 @@ namespace OpenSim.Framework
return new string(chars);
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string SHA1Hash(string data, Encoding enc)
{
return SHA1Hash(enc.GetBytes(data));
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string SHA1Hash(string data)
{
return SHA1Hash(Encoding.Default.GetBytes(data));
@@ -1266,6 +1275,7 @@ namespace OpenSim.Framework
return ret;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static UUID ComputeSHA1UUID(string src)
{
return ComputeSHA1UUID(Encoding.Default.GetBytes(src));
@@ -1332,6 +1342,7 @@ namespace OpenSim.Framework
return false;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string FieldToString(byte[] bytes)
{
return FieldToString(bytes, String.Empty);
@@ -1416,6 +1427,7 @@ namespace OpenSim.Framework
///
/// URL Standard Format
/// A resolved IP Address
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IPAddress GetHostFromURL(string url)
{
return GetHostFromDNS(url.Split(new char[] { '/', ':' })[3]);
@@ -1544,6 +1556,7 @@ namespace OpenSim.Framework
return getEndPoint(ia, port);
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Uri GetURI(string protocol, string hostname, int port, string path)
{
return new UriBuilder(protocol, hostname, port, path).Uri;
@@ -1553,6 +1566,7 @@ namespace OpenSim.Framework
/// Gets a list of all local system IP addresses
///
///
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IPAddress[] GetLocalHosts()
{
return Dns.GetHostAddresses(Dns.GetHostName());
@@ -1641,6 +1655,7 @@ namespace OpenSim.Framework
///
/// path
/// safe path
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string SafePath(string path)
{
return Regex.Replace(path, regexInvalidPathChars, String.Empty);
@@ -1651,6 +1666,7 @@ namespace OpenSim.Framework
///
/// filename
/// safe filename
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string SafeFileName(string filename)
{
return Regex.Replace(filename, regexInvalidFileChars, String.Empty);
@@ -1669,21 +1685,25 @@ namespace OpenSim.Framework
return temp;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string assetsDir()
{
return Path.Combine(configDir(), "assets");
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string inventoryDir()
{
return Path.Combine(configDir(), "inventory");
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string configDir()
{
return ".";
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string dataDir()
{
return ".";
@@ -1715,6 +1735,7 @@ namespace OpenSim.Framework
return "./OpenSimStats.log";
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string logDir()
{
return Path.GetDirectoryName(logFile());
@@ -1987,22 +2008,6 @@ namespace OpenSim.Framework
#endregion
- public static float Clip(float x, float min, float max)
- {
- return Math.Min(Math.Max(x, min), max);
- }
-
- public static int Clip(int x, int min, int max)
- {
- return Math.Min(Math.Max(x, min), max);
- }
-
- public static Vector3 Clip(Vector3 vec, float min, float max)
- {
- return new Vector3(Clip(vec.X, min, max), Clip(vec.Y, min, max),
- Clip(vec.Z, min, max));
- }
-
///
/// Convert an UUID to a raw uuid string. Right now this is a string without hyphens.
///
diff --git a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule2.cs b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule2.cs
index 0e497265c6..673b6ce408 100644
--- a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule2.cs
+++ b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule2.cs
@@ -234,10 +234,9 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
SceneObjectPart part = s.GetSceneObjectPart(objectID);
if (part != null)
{
- ObjectRegionName = s.RegionInfo.RegionName;
- uint localX = s.RegionInfo.WorldLocX;
- uint localY = s.RegionInfo.WorldLocY;
- ObjectRegionName = ObjectRegionName + " (" + localX + ", " + localY + ")";
+ RegionInfo sri = s.RegionInfo;
+ ObjectRegionName = sri.RegionName;
+ ObjectRegionName = ObjectRegionName + " (" + sri.WorldLocX + ", " + sri.WorldLocY + ")";
return part;
}
}
@@ -261,13 +260,11 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
}
public static bool smptValidateServerCertificate(object sender, X509Certificate certificate,
- X509Chain chain, SslPolicyErrors sslPolicyErrors)
+ X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
- if ((sslPolicyErrors & m_SMTP_SslPolicyErrorsMask) == SslPolicyErrors.None)
- return true;
-
- return false;
+ return (sslPolicyErrors & m_SMTP_SslPolicyErrorsMask) == SslPolicyErrors.None;
}
+
///
/// SendMail function utilized by llEMail
///
@@ -352,15 +349,14 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
{
// inter object email, keep it in the family
Email email = new Email();
- email.time = ((int)((DateTime.UtcNow - new DateTime(1970,1,1,0,0,0)).TotalSeconds)).ToString();
+ email.time = Util.UnixTimeSinceEpoch().ToString();
email.subject = subject;
email.sender = objectID.ToString() + "@" + m_InterObjectHostname;
email.message = "Object-Name: " + LastObjectName +
"\nRegion: " + LastObjectRegionName + "\nLocal-Position: " +
LastObjectPosition + "\n\n" + body;
- string guid = address.Substring(0, address.IndexOf("@"));
- UUID toID = new UUID(guid);
+ UUID toID = new UUID(mailTo.Name);
if (IsLocal(toID)) // TODO FIX check to see if it is local
{
diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
index a3d19cb0fb..3143a2e22a 100644
--- a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
@@ -301,7 +301,7 @@ namespace OpenSim.Region.CoreModules.World.Sound
if (!m_scene.TryGetSceneObjectPart(objectID, out part))
return;
- volume = Util.Clip((float)volume, 0, 1);
+ volume = Utils.Clamp(volume, 0, 1);
UUID parentID = part.ParentGroup.UUID;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 4b087966d0..e9cecfe8e0 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -3807,9 +3807,9 @@ namespace OpenSim.Region.Framework.Scenes
///
public void SetFaceColorAlpha(int face, Vector3 color, double ?alpha)
{
- Vector3 clippedColor = Util.Clip(color, 0.0f, 1.0f);
+ Vector3 clippedColor = Vector3.Clamp(color, 0.0f, 1.0f);
float clippedAlpha = alpha.HasValue ?
- Util.Clip((float)alpha.Value, 0.0f, 1.0f) : 0;
+ Utils.Clamp((float)alpha.Value, 0.0f, 1.0f) : 0;
// The only way to get a deep copy/ If we don't do this, we can
// never detect color changes further down.
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs b/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
index 8865a33f16..7ac739d936 100644
--- a/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
+++ b/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
@@ -1756,8 +1756,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS
break;
case ExtendedPhysics.PHYS_AXIS_LIMIT_LINEAR_X:
this.LockedLinearAxis.X = LockedAxis;
- this.LockedLinearAxisLow.X = Util.Clip(low, -linearMax, linearMax);
- this.LockedLinearAxisHigh.X = Util.Clip(high, -linearMax, linearMax);
+ this.LockedLinearAxisLow.X = OMV.Utils.Clamp(low, -linearMax, linearMax);
+ this.LockedLinearAxisHigh.X = OMV.Utils.Clamp(high, -linearMax, linearMax);
break;
case ExtendedPhysics.PHYS_AXIS_LOCK_LINEAR_Y:
this.LockedLinearAxis.Y = LockedAxis;
@@ -1766,8 +1766,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS
break;
case ExtendedPhysics.PHYS_AXIS_LIMIT_LINEAR_Y:
this.LockedLinearAxis.Y = LockedAxis;
- this.LockedLinearAxisLow.Y = Util.Clip(low, -linearMax, linearMax);
- this.LockedLinearAxisHigh.Y = Util.Clip(high, -linearMax, linearMax);
+ this.LockedLinearAxisLow.Y = OMV.Utils.Clamp(low, -linearMax, linearMax);
+ this.LockedLinearAxisHigh.Y = OMV.Utils.Clamp(high, -linearMax, linearMax);
break;
case ExtendedPhysics.PHYS_AXIS_LOCK_LINEAR_Z:
this.LockedLinearAxis.Z = LockedAxis;
@@ -1776,8 +1776,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS
break;
case ExtendedPhysics.PHYS_AXIS_LIMIT_LINEAR_Z:
this.LockedLinearAxis.Z = LockedAxis;
- this.LockedLinearAxisLow.Z = Util.Clip(low, -linearMax, linearMax);
- this.LockedLinearAxisHigh.Z = Util.Clip(high, -linearMax, linearMax);
+ this.LockedLinearAxisLow.Z = OMV.Utils.Clamp(low, -linearMax, linearMax);
+ this.LockedLinearAxisHigh.Z = OMV.Utils.Clamp(high, -linearMax, linearMax);
break;
case ExtendedPhysics.PHYS_AXIS_LOCK_ANGULAR:
this.LockedAngularAxis = new OMV.Vector3(LockedAxis, LockedAxis, LockedAxis);
@@ -1791,8 +1791,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS
break;
case ExtendedPhysics.PHYS_AXIS_LIMIT_ANGULAR_X:
this.LockedAngularAxis.X = LockedAxis;
- this.LockedAngularAxisLow.X = Util.Clip(low, -angularMax, angularMax);
- this.LockedAngularAxisHigh.X = Util.Clip(high, -angularMax, angularMax);
+ this.LockedAngularAxisLow.X = OMV.Utils.Clamp(low, -angularMax, angularMax);
+ this.LockedAngularAxisHigh.X = OMV.Utils.Clamp(high, -angularMax, angularMax);
break;
case ExtendedPhysics.PHYS_AXIS_LOCK_ANGULAR_Y:
this.LockedAngularAxis.Y = LockedAxis;
@@ -1801,8 +1801,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS
break;
case ExtendedPhysics.PHYS_AXIS_LIMIT_ANGULAR_Y:
this.LockedAngularAxis.Y = LockedAxis;
- this.LockedAngularAxisLow.Y = Util.Clip(low, -angularMax, angularMax);
- this.LockedAngularAxisHigh.Y = Util.Clip(high, -angularMax, angularMax);
+ this.LockedAngularAxisLow.Y = OMV.Utils.Clamp(low, -angularMax, angularMax);
+ this.LockedAngularAxisHigh.Y = OMV.Utils.Clamp(high, -angularMax, angularMax);
break;
case ExtendedPhysics.PHYS_AXIS_LOCK_ANGULAR_Z:
this.LockedAngularAxis.Z = LockedAxis;
@@ -1811,8 +1811,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS
break;
case ExtendedPhysics.PHYS_AXIS_LIMIT_ANGULAR_Z:
this.LockedAngularAxis.Z = LockedAxis;
- this.LockedAngularAxisLow.Z = Util.Clip(low, -angularMax, angularMax);
- this.LockedAngularAxisHigh.Z = Util.Clip(high, -angularMax, angularMax);
+ this.LockedAngularAxisLow.Z = OMV.Utils.Clamp(low, -angularMax, angularMax);
+ this.LockedAngularAxisHigh.Z = OMV.Utils.Clamp(high, -angularMax, angularMax);
break;
case ExtendedPhysics.PHYS_AXIS_UNLOCK_LINEAR:
this.LockedLinearAxis = LockedAxisFree;
diff --git a/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs b/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs
index 7c9f3b45cf..d7792f42e1 100644
--- a/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs
+++ b/OpenSim/Region/PhysicsModules/Ode/ODEPrim.cs
@@ -2667,9 +2667,9 @@ Console.WriteLine(" JointCreateFixed");
SafeNativeMethods.AllocateODEDataForThread(0);
- _position.X = Util.Clip(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f);
- _position.Y = Util.Clip(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f);
- _position.Z = Util.Clip(_position.Z + 0.2f, -100f, 50000f);
+ _position.X = Utils.Clamp(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f);
+ _position.Y = Utils.Clamp(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f);
+ _position.Z = Utils.Clamp(_position.Z + 0.2f, -100f, 50000f);
m_lastposition = _position;
_velocity.X = 0;
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs b/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs
index 245fbd14df..59096037aa 100644
--- a/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs
+++ b/OpenSim/Region/PhysicsModules/ubOde/ODECharacter.cs
@@ -1159,9 +1159,6 @@ namespace OpenSim.Region.PhysicsModule.ubOde
m_bodydisablecontrol = 0;
- SafeNativeMethods.Vector3 dtmp = SafeNativeMethods.BodyGetPosition(Body);
- Vector3 localpos = new Vector3(dtmp.X,dtmp.Y,dtmp.Z);
-
// the Amotor still lets avatar rotation to drift during colisions
// so force it back to identity
@@ -1172,10 +1169,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde
qtmp.Z = m_orientation2D.Z;
SafeNativeMethods.BodySetQuaternion(Body,ref qtmp);
- if(m_pidControllerActive == false)
- {
- _zeroPosition = localpos;
- }
+ SafeNativeMethods.Vector3 dtmp = SafeNativeMethods.BodyGetPosition(Body);
+ Vector3 localpos = new Vector3(dtmp.X, dtmp.Y, dtmp.Z);
// check outbounds forcing to be in world
bool fixbody = false;
@@ -1220,6 +1215,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde
localpos.Z = 128f;
}
+ if (m_pidControllerActive == false)
+ {
+ _zeroPosition = localpos;
+ }
+
if (fixbody)
{
m_freemove = false;
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs
index 787d83fda4..9ad304faee 100644
--- a/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs
+++ b/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs
@@ -972,9 +972,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde
{
if (m_outbounds)
{
- _position.X = Util.Clip(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f);
- _position.Y = Util.Clip(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f);
- _position.Z = Util.Clip(_position.Z + 0.2f, Constants.MinSimulationHeight, Constants.MaxSimulationHeight);
+ _position.X = Utils.Clamp(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f);
+ _position.Y = Utils.Clamp(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f);
+ _position.Z = Utils.Clamp(_position.Z + 0.2f, Constants.MinSimulationHeight, Constants.MaxSimulationHeight);
m_lastposition = _position;
_velocity.X = 0;
@@ -3815,7 +3815,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde
{
m_outbounds = true;
- lpos.Z = Util.Clip(lpos.Z, -100f, 100000f);
+ lpos.Z = Utils.Clamp(lpos.Z, -100f, 100000f);
m_acceleration.X = 0;
m_acceleration.Y = 0;
m_acceleration.Z = 0;
@@ -3845,22 +3845,22 @@ namespace OpenSim.Region.PhysicsModule.ubOde
if (lpos.X < 0f)
{
- _position.X = Util.Clip(lpos.X, -2f, -0.1f);
+ _position.X = Utils.Clamp(lpos.X, -2f, -0.1f);
m_outbounds = true;
}
else if (lpos.X > _parent_scene.WorldExtents.X)
{
- _position.X = Util.Clip(lpos.X, _parent_scene.WorldExtents.X + 0.1f, _parent_scene.WorldExtents.X + 2f);
+ _position.X = Utils.Clamp(lpos.X, _parent_scene.WorldExtents.X + 0.1f, _parent_scene.WorldExtents.X + 2f);
m_outbounds = true;
}
if (lpos.Y < 0f)
{
- _position.Y = Util.Clip(lpos.Y, -2f, -0.1f);
+ _position.Y = Utils.Clamp(lpos.Y, -2f, -0.1f);
m_outbounds = true;
}
else if (lpos.Y > _parent_scene.WorldExtents.Y)
{
- _position.Y = Util.Clip(lpos.Y, _parent_scene.WorldExtents.Y + 0.1f, _parent_scene.WorldExtents.Y + 2f);
+ _position.Y = Utils.Clamp(lpos.Y, _parent_scene.WorldExtents.Y + 0.1f, _parent_scene.WorldExtents.Y + 2f);
m_outbounds = true;
}
diff --git a/bin/OpenMetaverse.Rendering.Meshmerizer.dll b/bin/OpenMetaverse.Rendering.Meshmerizer.dll
index 0ac81ef60f..34ed2b782a 100755
Binary files a/bin/OpenMetaverse.Rendering.Meshmerizer.dll and b/bin/OpenMetaverse.Rendering.Meshmerizer.dll differ
diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll
index dc6c557859..5c89d06bd0 100755
Binary files a/bin/OpenMetaverse.StructuredData.dll and b/bin/OpenMetaverse.StructuredData.dll differ
diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll
index 593ba1eddb..3c7e2353f9 100755
Binary files a/bin/OpenMetaverse.dll and b/bin/OpenMetaverse.dll differ
diff --git a/bin/OpenMetaverseTypes.dll b/bin/OpenMetaverseTypes.dll
index 1ab7fd2302..6d34837315 100755
Binary files a/bin/OpenMetaverseTypes.dll and b/bin/OpenMetaverseTypes.dll differ