aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Physics/Meshing/Meshmerizer.cs142
1 files changed, 71 insertions, 71 deletions
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index df44be3..3e3a0f0 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -30,10 +30,10 @@ using System;
30using System.Collections.Generic; 30using System.Collections.Generic;
31using OpenSim.Framework; 31using OpenSim.Framework;
32using OpenSim.Region.Physics.Manager; 32using OpenSim.Region.Physics.Manager;
33using OpenMetaverse; 33using OpenMetaverse;
34using OpenMetaverse.StructuredData; 34using OpenMetaverse.StructuredData;
35using System.Drawing; 35using System.Drawing;
36using System.Drawing.Imaging; 36using System.Drawing.Imaging;
37using System.IO.Compression; 37using System.IO.Compression;
38using PrimMesher; 38using PrimMesher;
39using log4net; 39using log4net;
@@ -266,75 +266,75 @@ namespace OpenSim.Region.Physics.Meshing
266 266
267 if (primShape.SculptEntry) 267 if (primShape.SculptEntry)
268 { 268 {
269 if (((OpenMetaverse.SculptType)primShape.SculptType) == SculptType.Mesh) 269 if (((OpenMetaverse.SculptType)primShape.SculptType) == SculptType.Mesh)
270 { 270 {
271 // add code for mesh physics proxy generation here 271 // add code for mesh physics proxy generation here
272 m_log.Debug("[MESH]: mesh proxy generation not implemented yet "); 272 m_log.Debug("[MESH]: mesh proxy generation not implemented yet ");
273 273
274 OSD meshOsd; 274 OSD meshOsd;
275 275
276 if (primShape.SculptData.Length > 0) 276 if (primShape.SculptData.Length > 0)
277 { 277 {
278 278
279 279
280 m_log.Debug("[MESH]: asset data length: " + primShape.SculptData.Length.ToString()); 280 m_log.Debug("[MESH]: asset data length: " + primShape.SculptData.Length.ToString());
281 byte[] header = Util.StringToBytes256("<? LLSD/Binary ?>"); 281 byte[] header = Util.StringToBytes256("<? LLSD/Binary ?>");
282 282
283 ////dump to debugging file 283 ////dump to debugging file
284 //string filename = System.IO.Path.Combine(decodedSculptMapPath, "mesh_" + primShape.SculptTexture.ToString()); 284 //string filename = System.IO.Path.Combine(decodedSculptMapPath, "mesh_" + primShape.SculptTexture.ToString());
285 //BinaryWriter writer = new BinaryWriter(File.Open(filename, FileMode.Create)); 285 //BinaryWriter writer = new BinaryWriter(File.Open(filename, FileMode.Create));
286 //writer.Write(primShape.SculptData); 286 //writer.Write(primShape.SculptData);
287 //writer.Close(); 287 //writer.Close();
288 288
289 } 289 }
290 else 290 else
291 { 291 {
292 m_log.Error("[MESH]: asset data is zero length"); 292 m_log.Error("[MESH]: asset data is zero length");
293 return null; 293 return null;
294 } 294 }
295 295
296 try 296 try
297 { 297 {
298 meshOsd = OSDParser.DeserializeLLSDBinary(primShape.SculptData, true); 298 meshOsd = OSDParser.DeserializeLLSDBinary(primShape.SculptData, true);
299 } 299 }
300 catch (Exception e) 300 catch (Exception e)
301 { 301 {
302 m_log.Error("[MESH]: exception decoding mesh asset: " + e.ToString()); 302 m_log.Error("[MESH]: exception decoding mesh asset: " + e.ToString());
303 return null; 303 return null;
304 } 304 }
305 305
306 if (meshOsd is OSDMap) 306 if (meshOsd is OSDMap)
307 { 307 {
308 OSDMap map = (OSDMap)meshOsd; 308 OSDMap map = (OSDMap)meshOsd;
309 //foreach (string name in map.Keys) 309 //foreach (string name in map.Keys)
310 // m_log.Debug("[MESH]: key:" + name + " value:" + map[name].AsString()); 310 // m_log.Debug("[MESH]: key:" + name + " value:" + map[name].AsString());
311 OSDMap physicsParms = (OSDMap)map["physics_shape"]; 311 OSDMap physicsParms = (OSDMap)map["physics_shape"];
312 int physOffset = physicsParms["offset"].AsInteger(); 312 int physOffset = physicsParms["offset"].AsInteger();
313 int physSize = physicsParms["size"].AsInteger(); 313 int physSize = physicsParms["size"].AsInteger();
314 314
315 if (physOffset < 0 || physSize == 0) 315 if (physOffset < 0 || physSize == 0)
316 return null; // no mesh data in asset 316 return null; // no mesh data in asset
317 317
318 m_log.Debug("[MESH]: physOffset:" + physOffset.ToString() + " physSize:" + physSize.ToString()); 318 m_log.Debug("[MESH]: physOffset:" + physOffset.ToString() + " physSize:" + physSize.ToString());
319 //MemoryStream ms = new MemoryStream(primShape.SculptData, physOffset, physSize); 319 //MemoryStream ms = new MemoryStream(primShape.SculptData, physOffset, physSize);
320 //GZipStream gzStream = new GZipStream(ms, CompressionMode.Decompress); 320 //GZipStream gzStream = new GZipStream(ms, CompressionMode.Decompress);
321 321
322 //int maxSize = physSize * 5; // arbitrary guess 322 //int maxSize = physSize * 5; // arbitrary guess
323 //byte[] readBuffer = new byte[maxSize]; 323 //byte[] readBuffer = new byte[maxSize];
324 324
325 //int bytesRead = gzStream.Read(readBuffer, 0, maxSize); 325 //int bytesRead = gzStream.Read(readBuffer, 0, maxSize);
326 326
327 //OSD physMeshOsd = OSDParser.DeserializeLLSDBinary(readBuffer); 327 //OSD physMeshOsd = OSDParser.DeserializeLLSDBinary(readBuffer);
328 328
329 329
330 330
331 331
332 332
333 } 333 }
334 334
335 //just bail out for now until mesh code is finished 335 //just bail out for now until mesh code is finished
336 return null; 336 return null;
337 337
338 } 338 }
339 else 339 else
340 { 340 {