Update svn properties, formatting cleanup.

0.6.0-stable
Jeff Ames 2008-08-19 02:59:27 +00:00
parent 6d2e1ad6ba
commit bea7d4d81a
17 changed files with 78 additions and 177 deletions

View File

@ -23,14 +23,12 @@
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * 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 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/ */
using System; using System;
namespace OpenSim.ApplicationPlugins.Rest.Inventory namespace OpenSim.ApplicationPlugins.Rest.Inventory
{ {
/// <summary> /// <summary>
/// This interface represents the boundary between the general purpose /// This interface represents the boundary between the general purpose
/// REST plugin handling, and the functionally specific handlers. The /// REST plugin handling, and the functionally specific handlers. The
@ -44,5 +42,4 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
void Initialize(); void Initialize();
void Close(); void Close();
} }
} }

View File

@ -40,7 +40,6 @@ using System.Xml;
namespace OpenSim.ApplicationPlugins.Rest.Inventory namespace OpenSim.ApplicationPlugins.Rest.Inventory
{ {
/// <summary> /// <summary>
/// This class represents the current REST request. It /// This class represents the current REST request. It
/// encapsulates the request/response state and takes care /// encapsulates the request/response state and takes care
@ -66,7 +65,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal class RequestData internal class RequestData
{ {
// HTTP Server interface data // HTTP Server interface data
internal OSHttpRequest request = null; internal OSHttpRequest request = null;
@ -170,7 +168,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal RequestData(OSHttpRequest p_request, OSHttpResponse p_response, string p_qprefix) internal RequestData(OSHttpRequest p_request, OSHttpResponse p_response, string p_qprefix)
{ {
request = p_request; request = p_request;
response = p_response; response = p_response;
qprefix = p_qprefix; qprefix = p_qprefix;
@ -187,7 +184,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
initUrl(); initUrl();
initParameters(p_qprefix.Length); initParameters(p_qprefix.Length);
} }
// Just for convenience... // Just for convenience...
@ -212,7 +208,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
return authenticated; return authenticated;
} }
else return true; else
return true;
} }
} }
@ -229,7 +226,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private void authenticate() private void authenticate()
{ {
string authdata = request.Headers.Get("Authorization"); string authdata = request.Headers.Get("Authorization");
string reqscheme = String.Empty; string reqscheme = String.Empty;
@ -291,7 +287,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
Rest.Log.DebugFormat("{0} Challenge reason: Authentication failed", MsgId); Rest.Log.DebugFormat("{0} Challenge reason: Authentication failed", MsgId);
DoChallenge(); DoChallenge();
} }
} }
/// <summary> /// <summary>
@ -315,7 +310,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private void DoBasic(string authdata) private void DoBasic(string authdata)
{ {
string response = null; string response = null;
MatchCollection matches = basicParms.Matches(authdata); MatchCollection matches = basicParms.Matches(authdata);
@ -346,7 +340,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
// Validate against user database // Validate against user database
authenticated = Validate(userName,userPass); authenticated = Validate(userName,userPass);
} }
} }
/// <summary> /// <summary>
@ -357,7 +350,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private void DoDigest(string authdata) private void DoDigest(string authdata)
{ {
string response = null; string response = null;
MatchCollection matches = digestParm1.Matches(authdata); MatchCollection matches = digestParm1.Matches(authdata);
@ -390,12 +382,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
if (authparms.TryGetValue("response", out response)) if (authparms.TryGetValue("response", out response))
{ {
string temp = null; string temp = null;
do do
{ {
string nck = null; string nck = null;
string ncl = null; string ncl = null;
@ -448,7 +438,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
if (authparms.TryGetValue("qop", out temp)) if (authparms.TryGetValue("qop", out temp))
{ {
qop = temp.ToLower(); // replace with actual value used qop = temp.ToLower(); // replace with actual value used
// if QOP was specified then // if QOP was specified then
@ -485,11 +474,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
{ {
lock (cntable) cntable.Add(nonce, nck); lock (cntable) cntable.Add(nonce, nck);
} }
} }
else else
{ {
qop = String.Empty; qop = String.Empty;
// if QOP was not specified then // if QOP was not specified then
@ -509,12 +496,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
// Validate the supplied userid/password info // Validate the supplied userid/password info
authenticated = ValidateDigest(userName, nonce, cnonce, nck, authPrefix, response); authenticated = ValidateDigest(userName, nonce, cnonce, nck, authPrefix, response);
} }
while (false); while (false);
} }
} }
// Indicate that authentication is required // Indicate that authentication is required
@ -523,7 +507,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
string opaque, string stale, string alg, string opaque, string stale, string alg,
string qop, string auth) string qop, string auth)
{ {
sbuilder.Length = 0; sbuilder.Length = 0;
if (scheme == null || scheme == Rest.AS_BASIC) if (scheme == null || scheme == Rest.AS_BASIC)
@ -544,7 +527,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
if (scheme == null || scheme == Rest.AS_DIGEST) if (scheme == null || scheme == Rest.AS_DIGEST)
{ {
sbuilder.Append(Rest.AS_DIGEST); sbuilder.Append(Rest.AS_DIGEST);
sbuilder.Append(" "); sbuilder.Append(" ");
@ -617,9 +599,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
sbuilder.Append(Rest.CS_DQUOTE); sbuilder.Append(Rest.CS_DQUOTE);
AddHeader(Rest.HttpHeaderWWWAuthenticate,sbuilder.ToString()); AddHeader(Rest.HttpHeaderWWWAuthenticate,sbuilder.ToString());
} }
} }
/// <summary> /// <summary>
@ -631,7 +611,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private bool Validate(string user, string pass) private bool Validate(string user, string pass)
{ {
Rest.Log.DebugFormat("{0} Simple User Validation", MsgId); Rest.Log.DebugFormat("{0} Simple User Validation", MsgId);
// Both values are required // Both values are required
@ -643,7 +622,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
user = user.Trim(); user = user.Trim();
return vetPassword(user, pass); return vetPassword(user, pass);
} }
/// <summary> /// <summary>
@ -658,7 +636,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private string getPassword(string user) private string getPassword(string user)
{ {
int x; int x;
string first; string first;
string last; string last;
@ -690,7 +667,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
Rest.Log.DebugFormat("{0} Normal User {1}", MsgId, user); Rest.Log.DebugFormat("{0} Normal User {1}", MsgId, user);
return udata.PasswordHash; return udata.PasswordHash;
} }
} }
/// <summary> /// <summary>
@ -704,7 +680,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private bool vetPassword(string user, string pass) private bool vetPassword(string user, string pass)
{ {
int x; int x;
string HA1; string HA1;
string first; string first;
@ -734,13 +709,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
HA1 = HashToString(String.Format("{0}:{1}",HA1,udata.PasswordSalt)); HA1 = HashToString(String.Format("{0}:{1}",HA1,udata.PasswordSalt));
return (0 == sc.Compare(HA1, udata.PasswordHash)); return (0 == sc.Compare(HA1, udata.PasswordHash));
} }
// Validate the request-digest // Validate the request-digest
private bool ValidateDigest(string user, string nonce, string cnonce, string nck, string uri, string response) private bool ValidateDigest(string user, string nonce, string cnonce, string nck, string uri, string response)
{ {
string patt = null; string patt = null;
string payl = String.Empty; string payl = String.Empty;
string KDS = null; string KDS = null;
@ -798,12 +771,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
// Compare the generated sequence with the original // Compare the generated sequence with the original
return (0 == sc.Compare(KDS, response)); return (0 == sc.Compare(KDS, response));
} }
private string HashToString(string pattern) private string HashToString(string pattern)
{ {
Rest.Log.DebugFormat("{0} Generate <{1}>", MsgId, pattern); Rest.Log.DebugFormat("{0} Generate <{1}>", MsgId, pattern);
byte[] hash = md5hash.ComputeHash(encoding.GetBytes(pattern)); byte[] hash = md5hash.ComputeHash(encoding.GetBytes(pattern));
@ -818,7 +789,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
Rest.Log.DebugFormat("{0} Hash = <{1}>", MsgId, sbuilder.ToString()); Rest.Log.DebugFormat("{0} Hash = <{1}>", MsgId, sbuilder.ToString());
return sbuilder.ToString(); return sbuilder.ToString();
} }
internal void Complete() internal void Complete()
@ -829,7 +799,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal void Redirect(string Url, bool temp) internal void Redirect(string Url, bool temp)
{ {
redirectLocation = Url; redirectLocation = Url;
if (temp) if (temp)
@ -844,7 +813,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
} }
Fail(statusCode, statusDescription, true); Fail(statusCode, statusDescription, true);
} }
// Fail for an arbitrary reason. Just a failure with // Fail for an arbitrary reason. Just a failure with
@ -867,7 +835,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal void Fail(int code, string message, bool reset) internal void Fail(int code, string message, bool reset)
{ {
statusCode = code; statusCode = code;
statusDescription = message; statusDescription = message;
@ -907,7 +874,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
re.httppath = path; re.httppath = path;
throw re; throw re;
} }
// Reject this request // Reject this request
@ -924,19 +890,16 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal virtual bool Respond(string reason) internal virtual bool Respond(string reason)
{ {
Rest.Log.DebugFormat("{0} Respond ENTRY, handled = {1}, reason = {2}", MsgId, handled, reason); Rest.Log.DebugFormat("{0} Respond ENTRY, handled = {1}, reason = {2}", MsgId, handled, reason);
if (!handled) if (!handled)
{ {
Rest.Log.DebugFormat("{0} Generating Response", MsgId); Rest.Log.DebugFormat("{0} Generating Response", MsgId);
Rest.Log.DebugFormat("{0} Method is {1}", MsgId, method); Rest.Log.DebugFormat("{0} Method is {1}", MsgId, method);
// A Head request can NOT have a body! // A Head request can NOT have a body!
if (method != Rest.HEAD) if (method != Rest.HEAD)
{ {
Rest.Log.DebugFormat("{0} Response is not abbreviated", MsgId); Rest.Log.DebugFormat("{0} Response is not abbreviated", MsgId);
// If the writer is non-null then we know that an XML // If the writer is non-null then we know that an XML
@ -993,7 +956,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
response.SendChunked = chunked; response.SendChunked = chunked;
response.KeepAlive = keepAlive; response.KeepAlive = keepAlive;
} }
// Set the status code & description. If nothing has been stored, // Set the status code & description. If nothing has been stored,
@ -1054,13 +1016,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
Rest.Log.DebugFormat("{0} Closing output stream", MsgId); Rest.Log.DebugFormat("{0} Closing output stream", MsgId);
response.OutputStream.Close(); response.OutputStream.Close();
} }
Rest.Log.DebugFormat("{0} Respond EXIT, handled = {1}, reason = {2}", MsgId, handled, reason); Rest.Log.DebugFormat("{0} Respond EXIT, handled = {1}, reason = {2}", MsgId, handled, reason);
return handled; return handled;
} }
// Add a header to the table. We need to allow // Add a header to the table. We need to allow
@ -1122,7 +1082,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private void initUrl() private void initUrl()
{ {
uri = request.Url; uri = request.Url;
if (query == null) if (query == null)
@ -1167,12 +1126,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
hostname = uri.Host; hostname = uri.Host;
port = uri.Port; port = uri.Port;
} }
internal int initParameters(int prfxlen) internal int initParameters(int prfxlen)
{ {
if (prfxlen < path.Length-1) if (prfxlen < path.Length-1)
{ {
parameters = path.Substring(prfxlen+1).Split(Rest.CA_PATHSEP); parameters = path.Substring(prfxlen+1).Split(Rest.CA_PATHSEP);
@ -1194,7 +1151,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
} }
return parameters.Length; return parameters.Length;
} }
internal string[] PathNodes internal string[] PathNodes
@ -1211,7 +1167,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal string BuildUrl(int first, int last) internal string BuildUrl(int first, int last)
{ {
if (pathNodes == null) if (pathNodes == null)
{ {
initUrl(); initUrl();
@ -1252,7 +1207,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
} }
return sbuilder.ToString(); return sbuilder.ToString();
} }
// Setup the XML writer for output // Setup the XML writer for output
@ -1272,7 +1226,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal void initXmlReader() internal void initXmlReader()
{ {
XmlReaderSettings settings = new XmlReaderSettings(); XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment; settings.ConformanceLevel = ConformanceLevel.Fragment;
@ -1282,14 +1235,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
settings.ValidationType = ValidationType.None; settings.ValidationType = ValidationType.None;
reader = XmlReader.Create(request.InputStream,settings); reader = XmlReader.Create(request.InputStream,settings);
} }
private void Flush() private void Flush()
{ {
byte[] dbuffer = new byte[8192]; byte[] dbuffer = new byte[8192];
while (request.InputStream.Read(dbuffer,0,dbuffer.Length) != 0); while (request.InputStream.Read(dbuffer,0,dbuffer.Length) != 0);
return;
} }
// This allows us to make errors a bit more apparent in REST // This allows us to make errors a bit more apparent in REST
@ -1301,7 +1252,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
internal void SendHtml(string title, string text) internal void SendHtml(string title, string text)
{ {
AddHeader(Rest.HttpHeaderContentType, "text/html"); AddHeader(Rest.HttpHeaderContentType, "text/html");
sbuilder.Length = 0; sbuilder.Length = 0;
@ -1321,7 +1271,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
sbuilder.Append("</html>"); sbuilder.Append("</html>");
html = sbuilder.ToString(); html = sbuilder.ToString();
} }
} }
} }

View File

@ -38,10 +38,8 @@ using Nini.Config;
namespace OpenSim.ApplicationPlugins.Rest.Inventory namespace OpenSim.ApplicationPlugins.Rest.Inventory
{ {
public class Rest public class Rest
{ {
internal static readonly log4net.ILog Log = internal static readonly log4net.ILog Log =
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -374,7 +372,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
} }
return sum; return sum;
} }
public static string Int2Hex8(int val) public static string Int2Hex8(int val)
@ -409,7 +406,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
public static void Dump(byte[] data) public static void Dump(byte[] data)
{ {
char[] buffer = new char[Rest.DumpLineSize]; char[] buffer = new char[Rest.DumpLineSize];
int cc = 0; int cc = 0;
@ -435,7 +431,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
Console.Write(" |"+(new String(buffer))+"|"); Console.Write(" |"+(new String(buffer))+"|");
cc = 0; cc = 0;
} }
} }
// Finish off any incomplete line // Finish off any incomplete line
@ -455,16 +450,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
{ {
Console.Write("\n"); Console.Write("\n");
} }
} }
} }
// Local exception type // Local exception type
public class RestException : Exception public class RestException : Exception
{ {
internal int statusCode; internal int statusCode;
internal string statusDesc; internal string statusDesc;
internal string httpmethod; internal string httpmethod;
@ -474,5 +466,4 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
{ {
} }
} }
} }

View File

@ -182,7 +182,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
} }
Rest.Log.DebugFormat("{0} REST Asset handler EXIT", MsgId); Rest.Log.DebugFormat("{0} REST Asset handler EXIT", MsgId);
} }
#endregion Interface #endregion Interface

View File

@ -257,7 +257,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
if (Rest.InventoryServices.HasInventoryForUser(rdata.uuid)) if (Rest.InventoryServices.HasInventoryForUser(rdata.uuid))
{ {
rdata.root = Rest.InventoryServices.RequestRootFolder(rdata.uuid); rdata.root = Rest.InventoryServices.RequestRootFolder(rdata.uuid);
Rest.Log.DebugFormat("{0} Inventory Root retrieved for {1} {2}", Rest.Log.DebugFormat("{0} Inventory Root retrieved for {1} {2}",
@ -1382,7 +1381,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
ic.Fail(Rest.HttpStatusCodeBadRequest, ic.Fail(Rest.HttpStatusCodeBadRequest,
Rest.HttpStatusDescBadRequest+": invalid parent"); Rest.HttpStatusDescBadRequest+": invalid parent");
} }
} }
// This is a new folder, so no existing UUID is available // This is a new folder, so no existing UUID is available

View File

@ -40,10 +40,8 @@ using OpenSim.Framework.Communications.Cache;
namespace OpenSim.ApplicationPlugins.Rest.Inventory namespace OpenSim.ApplicationPlugins.Rest.Inventory
{ {
public class RestTestServices : IRest public class RestTestServices : IRest
{ {
private bool enabled = false; private bool enabled = false;
private string qPrefix = "test"; private string qPrefix = "test";
@ -52,7 +50,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
public RestTestServices() public RestTestServices()
{ {
Rest.Log.InfoFormat("{0} Test services initializing", MsgId); Rest.Log.InfoFormat("{0} Test services initializing", MsgId);
Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version); Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version);
@ -81,7 +78,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
enabled = true; enabled = true;
Rest.Log.InfoFormat("{0} Test services initialization complete", MsgId); Rest.Log.InfoFormat("{0} Test services initialization complete", MsgId);
} }
// Post-construction, pre-enabled initialization opportunity // Post-construction, pre-enabled initialization opportunity
@ -123,8 +119,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
private void DoTests(RequestData rdata) private void DoTests(RequestData rdata)
{ {
if (!enabled)
if (!enabled) return; return;
// Now that we know this is a serious attempt to // Now that we know this is a serious attempt to
// access inventory data, we should find out who // access inventory data, we should find out who
@ -177,7 +173,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
if (!rdata.handled) if (!rdata.handled)
test.Execute(rdata); test.Execute(rdata);
} }
} }
#endregion Interface #endregion Interface

View File

@ -97,7 +97,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
DrawObjectVolume(m_scene, mapbmp); DrawObjectVolume(m_scene, mapbmp);
} }
try try
{ {
imageData = OpenJPEG.EncodeFromImage(mapbmp, true); imageData = OpenJPEG.EncodeFromImage(mapbmp, true);
@ -220,13 +219,10 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
//int tc = System.Environment.TickCount; //int tc = System.Environment.TickCount;
for (int y = 0; y < 256; y++) for (int y = 0; y < 256; y++)
{ {
float heightvalue = (float)hm[x, y]; float heightvalue = (float)hm[x, y];
if (heightvalue > (float)whichScene.RegionInfo.RegionSettings.WaterHeight) if (heightvalue > (float)whichScene.RegionInfo.RegionSettings.WaterHeight)
{ {
// scale height value // scale height value
heightvalue = low + mid * (heightvalue - low) / mid; heightvalue = low + mid * (heightvalue - low) / mid;
@ -238,6 +234,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue)) if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue))
heightvalue = 0; heightvalue = 0;
try try
{ {
Color green = Color.FromArgb((int)heightvalue, 100, (int)heightvalue); Color green = Color.FromArgb((int)heightvalue, 100, (int)heightvalue);
@ -264,7 +261,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
if (hfdiff > 0.3f) if (hfdiff > 0.3f)
{ {
} }
else if (hfdiff < -0.3f) else if (hfdiff < -0.3f)
{ {
@ -301,15 +297,8 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
mapbmp.SetPixel(x - 1, (256 - y) - 1, Shade); mapbmp.SetPixel(x - 1, (256 - y) - 1, Shade);
} }
} }
} }
} }
} }
catch (System.ArgumentException) catch (System.ArgumentException)
{ {
@ -367,7 +356,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
return mapbmp; return mapbmp;
} }
private Bitmap DrawObjectVolume(Scene whichScene, Bitmap mapbmp) private Bitmap DrawObjectVolume(Scene whichScene, Bitmap mapbmp)
{ {
int tc = 0; int tc = 0;
@ -395,7 +383,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
if (part == null) if (part == null)
continue; continue;
// Draw if the object is at least 1 meter wide in any direction // Draw if the object is at least 1 meter wide in any direction
if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f) if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f)
{ {
@ -459,8 +446,8 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
continue; continue;
// skip prim in non-finite position // skip prim in non-finite position
if (Single.IsNaN(pos.X) || Single.IsNaN(pos.Y) || Single.IsInfinity(pos.X) if (Single.IsNaN(pos.X) || Single.IsNaN(pos.Y) ||
|| Single.IsInfinity(pos.Y)) Single.IsInfinity(pos.X) || Single.IsInfinity(pos.Y))
continue; continue;
// Figure out if object is under 256m above the height of the terrain // Figure out if object is under 256m above the height of the terrain
@ -482,7 +469,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
Vector3 tScale = new Vector3(); Vector3 tScale = new Vector3();
Vector3 axPos = new Vector3(pos.X,pos.Y,pos.Z); Vector3 axPos = new Vector3(pos.X,pos.Y,pos.Z);
LLQuaternion llrot = part.GetWorldRotation(); LLQuaternion llrot = part.GetWorldRotation();
Quaternion rot = new Quaternion(llrot.W, llrot.X, llrot.Y, llrot.Z); Quaternion rot = new Quaternion(llrot.W, llrot.X, llrot.Y, llrot.Z);
scale = rot * lscale; scale = rot * lscale;
@ -618,14 +604,10 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
ds.brush = new SolidBrush(mapdotspot); ds.brush = new SolidBrush(mapdotspot);
//ds.rect = new Rectangle(mapdrawstartX, (255 - mapdrawstartY), mapdrawendX - mapdrawstartX, mapdrawendY - mapdrawstartY); //ds.rect = new Rectangle(mapdrawstartX, (255 - mapdrawstartY), mapdrawendX - mapdrawstartX, mapdrawendY - mapdrawstartY);
ds.trns = new face[FaceA.Length]; ds.trns = new face[FaceA.Length];
for (int i = 0; i < FaceA.Length; i++) for (int i = 0; i < FaceA.Length; i++)
{ {
Point[] working = new Point[5]; Point[] working = new Point[5];
working[0] = project(FaceA[i], axPos); working[0] = project(FaceA[i], axPos);
working[1] = project(FaceB[i], axPos); working[1] = project(FaceB[i], axPos);
@ -637,18 +619,12 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
workingface.pts = working; workingface.pts = working;
ds.trns[i] = workingface; ds.trns[i] = workingface;
} }
z_sort.Add(part.LocalId, ds); z_sort.Add(part.LocalId, ds);
z_localIDs.Add(part.LocalId); z_localIDs.Add(part.LocalId);
z_sortheights.Add(pos.Z); z_sortheights.Add(pos.Z);
//for (int wx = mapdrawstartX; wx < mapdrawendX; wx++) //for (int wx = mapdrawstartX; wx < mapdrawendX; wx++)
//{ //{
//for (wy = mapdrawstartY; wy < mapdrawendY; wy++) //for (wy = mapdrawstartY; wy < mapdrawendY; wy++)
@ -683,13 +659,10 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
// Sort prim by Z position // Sort prim by Z position
Array.Sort(sortedZHeights, sortedlocalIds); Array.Sort(sortedZHeights, sortedlocalIds);
Graphics g = Graphics.FromImage(mapbmp); Graphics g = Graphics.FromImage(mapbmp);
for (int s = 0; s < sortedZHeights.Length; s++) for (int s = 0; s < sortedZHeights.Length; s++)
{ {
if (z_sort.ContainsKey(sortedlocalIds[s])) if (z_sort.ContainsKey(sortedlocalIds[s]))
{ {
DrawStruct rectDrawStruct = z_sort[sortedlocalIds[s]]; DrawStruct rectDrawStruct = z_sort[sortedlocalIds[s]];
@ -701,13 +674,13 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
} }
} }
g.Dispose(); g.Dispose();
} // lock entities objs } // lock entities objs
m_log.Info("[MAPTILE]: Generating Maptile Step 2: Done in " + (System.Environment.TickCount - tc) + " ms"); m_log.Info("[MAPTILE]: Generating Maptile Step 2: Done in " + (System.Environment.TickCount - tc) + " ms");
return mapbmp; return mapbmp;
} }
private Point project(Vector3 point3d, Vector3 originpos) private Point project(Vector3 point3d, Vector3 originpos)
{ {
Point returnpt = new Point(); Point returnpt = new Point();
@ -721,7 +694,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
returnpt.Y = (int)(255 - point3d.y);//(int)(255 - (((topos.y - point3d.y) / z * d))); returnpt.Y = (int)(255 - point3d.y);//(int)(255 - (((topos.y - point3d.y) / z * d)));
return returnpt; return returnpt;
} }
// TODO: unused: // TODO: unused: