refactor: push the part of SceneObjectGroup.CheckSculptAndLoad() that actually deals with the part into a SceneObjectPart.CheckSculptAndLoad() method
							parent
							
								
									2f3d0e209f
								
							
						
					
					
						commit
						0badf3718d
					
				|  | @ -3288,7 +3288,14 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
| 
 | 
 | ||||||
|             return retmass; |             return retmass; | ||||||
|         } |         } | ||||||
|          | 
 | ||||||
|  |         /// <summary> | ||||||
|  |         /// 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. | ||||||
|  |         /// </summary> | ||||||
|  |         /// <remarks> | ||||||
|  |         /// When the physics engine has finished with it, the sculpt data is discarded to save memory. | ||||||
|  |         /// </remarks> | ||||||
|         public void CheckSculptAndLoad() |         public void CheckSculptAndLoad() | ||||||
|         { |         { | ||||||
|             if (IsDeleted) |             if (IsDeleted) | ||||||
|  | @ -3302,24 +3309,15 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|             SceneObjectPart[] parts = m_parts.GetArray(); |             SceneObjectPart[] parts = m_parts.GetArray(); | ||||||
| 
 | 
 | ||||||
|             for (int i = 0; i < parts.Length; i++) |             for (int i = 0; i < parts.Length; i++) | ||||||
|             { |                 parts[i].CheckSculptAndLoad(); | ||||||
|                 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); |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         /// <summary> | ||||||
|  |         /// Handle an asset received asynchronously from the asset service. | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="id"></param> | ||||||
|  |         /// <param name="sender"></param> | ||||||
|  |         /// <param name="asset"></param> | ||||||
|         protected void AssetReceived(string id, Object sender, AssetBase asset) |         protected void AssetReceived(string id, Object sender, AssetBase asset) | ||||||
|         { |         { | ||||||
|             SceneObjectPart sop = (SceneObjectPart)sender; |             SceneObjectPart sop = (SceneObjectPart)sender; | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ | ||||||
| using System; | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Drawing; | using System.Drawing; | ||||||
|  | using System.IO; | ||||||
| using System.Reflection; | using System.Reflection; | ||||||
| using System.Runtime.Serialization; | using System.Runtime.Serialization; | ||||||
| using System.Security.Permissions; | using System.Security.Permissions; | ||||||
|  | @ -4563,6 +4564,7 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|             m_shape.PathTaperY = shapeBlock.PathTaperY; |             m_shape.PathTaperY = shapeBlock.PathTaperY; | ||||||
|             m_shape.PathTwist = shapeBlock.PathTwist; |             m_shape.PathTwist = shapeBlock.PathTwist; | ||||||
|             m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; |             m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; | ||||||
|  | 
 | ||||||
|             if (PhysActor != null) |             if (PhysActor != null) | ||||||
|             { |             { | ||||||
|                 PhysActor.Shape = m_shape; |                 PhysActor.Shape = m_shape; | ||||||
|  | @ -4583,6 +4585,37 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|             ScheduleFullUpdate(); |             ScheduleFullUpdate(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         /// <summary> | ||||||
|  |         /// If the part is a sculpt/mesh, retrieve the mesh data and reinsert it into the shape so that the physics | ||||||
|  |         /// engine can use it. | ||||||
|  |         /// </summary> | ||||||
|  |         /// <remarks> | ||||||
|  |         /// When the physics engine has finished with it, the sculpt data is discarded to save memory. | ||||||
|  |         /// </remarks> | ||||||
|  |         public void CheckSculptAndLoad() | ||||||
|  |         { | ||||||
|  | //            m_log.Debug("Processing CheckSculptAndLoad for {0} {1}", Name, LocalId); | ||||||
|  | 
 | ||||||
|  |             if (ParentGroup.IsDeleted) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             if ((ParentGroup.RootPart.GetEffectiveObjectFlags() & (uint)PrimFlags.Phantom) != 0) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             if (Shape.SculptEntry && Shape.SculptTexture != UUID.Zero) | ||||||
|  |             { | ||||||
|  |                 // check if a previously decoded sculpt map has been cached | ||||||
|  |                 if (File.Exists(System.IO.Path.Combine("j2kDecodeCache", "smap_" + Shape.SculptTexture.ToString()))) | ||||||
|  |                 { | ||||||
|  |                     SculptTextureCallback(Shape.SculptTexture, null); | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     ParentGroup.Scene.AssetService.Get(Shape.SculptTexture.ToString(), this, AssetReceived); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Update the textures on the part. |         /// Update the textures on the part. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|  | @ -4819,6 +4852,7 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
| 
 | 
 | ||||||
|             Inventory.ApplyNextOwnerPermissions(); |             Inventory.ApplyNextOwnerPermissions(); | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|         public void UpdateLookAt() |         public void UpdateLookAt() | ||||||
|         { |         { | ||||||
|             try |             try | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Justin Clark-Casey (justincc)
						Justin Clark-Casey (justincc)