diff options
Diffstat (limited to 'OpenSim/Framework/Util.cs')
-rw-r--r-- | OpenSim/Framework/Util.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 384f716..a26e930 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -862,6 +862,12 @@ namespace OpenSim.Framework | |||
862 | return Math.Min(Math.Max(x, min), max); | 862 | return Math.Min(Math.Max(x, min), max); |
863 | } | 863 | } |
864 | 864 | ||
865 | public static Vector3 Clip(Vector3 vec, float min, float max) | ||
866 | { | ||
867 | return new Vector3(Clip(vec.X, min, max), Clip(vec.Y, min, max), | ||
868 | Clip(vec.Z, min, max)); | ||
869 | } | ||
870 | |||
865 | /// <summary> | 871 | /// <summary> |
866 | /// Convert an UUID to a raw uuid string. Right now this is a string without hyphens. | 872 | /// Convert an UUID to a raw uuid string. Right now this is a string without hyphens. |
867 | /// </summary> | 873 | /// </summary> |
@@ -1013,6 +1019,38 @@ namespace OpenSim.Framework | |||
1013 | } | 1019 | } |
1014 | } | 1020 | } |
1015 | 1021 | ||
1022 | /// <summary> | ||
1023 | /// Copy data from one stream to another, leaving the read position of both streams at the beginning. | ||
1024 | /// </summary> | ||
1025 | /// <param name='inputStream'> | ||
1026 | /// Input stream. Must be seekable. | ||
1027 | /// </param> | ||
1028 | /// <exception cref='ArgumentException'> | ||
1029 | /// Thrown if the input stream is not seekable. | ||
1030 | /// </exception> | ||
1031 | public static Stream Copy(Stream inputStream) | ||
1032 | { | ||
1033 | if (!inputStream.CanSeek) | ||
1034 | throw new ArgumentException("Util.Copy(Stream inputStream) must receive an inputStream that can seek"); | ||
1035 | |||
1036 | const int readSize = 256; | ||
1037 | byte[] buffer = new byte[readSize]; | ||
1038 | MemoryStream ms = new MemoryStream(); | ||
1039 | |||
1040 | int count = inputStream.Read(buffer, 0, readSize); | ||
1041 | |||
1042 | while (count > 0) | ||
1043 | { | ||
1044 | ms.Write(buffer, 0, count); | ||
1045 | count = inputStream.Read(buffer, 0, readSize); | ||
1046 | } | ||
1047 | |||
1048 | ms.Position = 0; | ||
1049 | inputStream.Position = 0; | ||
1050 | |||
1051 | return ms; | ||
1052 | } | ||
1053 | |||
1016 | public static XmlRpcResponse XmlRpcCommand(string url, string methodName, params object[] args) | 1054 | public static XmlRpcResponse XmlRpcCommand(string url, string methodName, params object[] args) |
1017 | { | 1055 | { |
1018 | return SendXmlRpcCommand(url, methodName, args); | 1056 | return SendXmlRpcCommand(url, methodName, args); |