From 0badf3718d98f579e0942e7c888986820d1250a7 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Mon, 11 Jul 2011 03:35:29 +0100
Subject: refactor: push the part of SceneObjectGroup.CheckSculptAndLoad() that
actually deals with the part into a SceneObjectPart.CheckSculptAndLoad()
method
---
.../Region/Framework/Scenes/SceneObjectGroup.cs | 32 ++++++++++------------
1 file changed, 15 insertions(+), 17 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index a184445..fa23fcd 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -3288,7 +3288,14 @@ namespace OpenSim.Region.Framework.Scenes
return retmass;
}
-
+
+ ///
+ /// If the object is a sculpt/mesh, retrieve the mesh data for each part and reinsert it into each shape so that
+ /// the physics engine can use it.
+ ///
+ ///
+ /// When the physics engine has finished with it, the sculpt data is discarded to save memory.
+ ///
public void CheckSculptAndLoad()
{
if (IsDeleted)
@@ -3302,24 +3309,15 @@ namespace OpenSim.Region.Framework.Scenes
SceneObjectPart[] parts = m_parts.GetArray();
for (int i = 0; i < parts.Length; i++)
- {
- SceneObjectPart part = parts[i];
- if (part.Shape.SculptEntry && part.Shape.SculptTexture != UUID.Zero)
- {
- // check if a previously decoded sculpt map has been cached
- if (File.Exists(System.IO.Path.Combine("j2kDecodeCache", "smap_" + part.Shape.SculptTexture.ToString())))
- {
- part.SculptTextureCallback(part.Shape.SculptTexture, null);
- }
- else
- {
- m_scene.AssetService.Get(
- part.Shape.SculptTexture.ToString(), part, AssetReceived);
- }
- }
- }
+ parts[i].CheckSculptAndLoad();
}
+ ///
+ /// Handle an asset received asynchronously from the asset service.
+ ///
+ ///
+ ///
+ ///
protected void AssetReceived(string id, Object sender, AssetBase asset)
{
SceneObjectPart sop = (SceneObjectPart)sender;
--
cgit v1.1