aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 5b203e9..ce7c53a 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -28,6 +28,7 @@
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Drawing; 30using System.Drawing;
31using System.IO;
31using System.Reflection; 32using System.Reflection;
32using System.Runtime.Serialization; 33using System.Runtime.Serialization;
33using System.Security.Permissions; 34using System.Security.Permissions;
@@ -4563,6 +4564,7 @@ namespace OpenSim.Region.Framework.Scenes
4563 m_shape.PathTaperY = shapeBlock.PathTaperY; 4564 m_shape.PathTaperY = shapeBlock.PathTaperY;
4564 m_shape.PathTwist = shapeBlock.PathTwist; 4565 m_shape.PathTwist = shapeBlock.PathTwist;
4565 m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; 4566 m_shape.PathTwistBegin = shapeBlock.PathTwistBegin;
4567
4566 if (PhysActor != null) 4568 if (PhysActor != null)
4567 { 4569 {
4568 PhysActor.Shape = m_shape; 4570 PhysActor.Shape = m_shape;
@@ -4584,6 +4586,37 @@ namespace OpenSim.Region.Framework.Scenes
4584 } 4586 }
4585 4587
4586 /// <summary> 4588 /// <summary>
4589 /// If the part is a sculpt/mesh, retrieve the mesh data and reinsert it into the shape so that the physics
4590 /// engine can use it.
4591 /// </summary>
4592 /// <remarks>
4593 /// When the physics engine has finished with it, the sculpt data is discarded to save memory.
4594 /// </remarks>
4595 public void CheckSculptAndLoad()
4596 {
4597// m_log.Debug("Processing CheckSculptAndLoad for {0} {1}", Name, LocalId);
4598
4599 if (ParentGroup.IsDeleted)
4600 return;
4601
4602 if ((ParentGroup.RootPart.GetEffectiveObjectFlags() & (uint)PrimFlags.Phantom) != 0)
4603 return;
4604
4605 if (Shape.SculptEntry && Shape.SculptTexture != UUID.Zero)
4606 {
4607 // check if a previously decoded sculpt map has been cached
4608 if (File.Exists(System.IO.Path.Combine("j2kDecodeCache", "smap_" + Shape.SculptTexture.ToString())))
4609 {
4610 SculptTextureCallback(Shape.SculptTexture, null);
4611 }
4612 else
4613 {
4614 ParentGroup.Scene.AssetService.Get(Shape.SculptTexture.ToString(), this, AssetReceived);
4615 }
4616 }
4617 }
4618
4619 /// <summary>
4587 /// Update the textures on the part. 4620 /// Update the textures on the part.
4588 /// </summary> 4621 /// </summary>
4589 /// Added to handle bug in libsecondlife's TextureEntry.ToBytes() 4622 /// Added to handle bug in libsecondlife's TextureEntry.ToBytes()
@@ -4819,6 +4852,7 @@ namespace OpenSim.Region.Framework.Scenes
4819 4852
4820 Inventory.ApplyNextOwnerPermissions(); 4853 Inventory.ApplyNextOwnerPermissions();
4821 } 4854 }
4855
4822 public void UpdateLookAt() 4856 public void UpdateLookAt()
4823 { 4857 {
4824 try 4858 try