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.cs53
1 files changed, 17 insertions, 36 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 199526e..27ef4c9 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1014,9 +1014,9 @@ namespace OpenSim.Region.Framework.Scenes
1014 { 1014 {
1015 actor.Size = m_shape.Scale; 1015 actor.Size = m_shape.Scale;
1016 1016
1017 if (Shape.SculptEntry) 1017// if (Shape.SculptEntry)
1018 CheckSculptAndLoad(); 1018// CheckSculptAndLoad();
1019 else 1019// else
1020 ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); 1020 ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
1021 } 1021 }
1022 } 1022 }
@@ -1620,12 +1620,13 @@ namespace OpenSim.Region.Framework.Scenes
1620 1620
1621 if (userExposed) 1621 if (userExposed)
1622 { 1622 {
1623/*
1623 if (dupe.m_shape.SculptEntry && dupe.m_shape.SculptTexture != UUID.Zero) 1624 if (dupe.m_shape.SculptEntry && dupe.m_shape.SculptTexture != UUID.Zero)
1624 { 1625 {
1625 ParentGroup.Scene.AssetService.Get( 1626 ParentGroup.Scene.AssetService.Get(
1626 dupe.m_shape.SculptTexture.ToString(), dupe, dupe.AssetReceived); 1627 dupe.m_shape.SculptTexture.ToString(), dupe, dupe.AssetReceived);
1627 } 1628 }
1628 1629*/
1629 bool UsePhysics = ((dupe.Flags & PrimFlags.Physics) != 0); 1630 bool UsePhysics = ((dupe.Flags & PrimFlags.Physics) != 0);
1630 dupe.DoPhysicsPropertyUpdate(UsePhysics, true); 1631 dupe.DoPhysicsPropertyUpdate(UsePhysics, true);
1631 } 1632 }
@@ -1643,6 +1644,7 @@ namespace OpenSim.Region.Framework.Scenes
1643 /// <param name="id">ID of asset received</param> 1644 /// <param name="id">ID of asset received</param>
1644 /// <param name="sender">Register</param> 1645 /// <param name="sender">Register</param>
1645 /// <param name="asset"></param> 1646 /// <param name="asset"></param>
1647/*
1646 protected void AssetReceived(string id, Object sender, AssetBase asset) 1648 protected void AssetReceived(string id, Object sender, AssetBase asset)
1647 { 1649 {
1648 if (asset != null) 1650 if (asset != null)
@@ -1652,7 +1654,7 @@ namespace OpenSim.Region.Framework.Scenes
1652 "[SCENE OBJECT PART]: Part {0} {1} requested mesh/sculpt data for asset id {2} from asset service but received no data", 1654 "[SCENE OBJECT PART]: Part {0} {1} requested mesh/sculpt data for asset id {2} from asset service but received no data",
1653 Name, UUID, id); 1655 Name, UUID, id);
1654 } 1656 }
1655 1657*/
1656 /// <summary> 1658 /// <summary>
1657 /// Do a physics property update for a NINJA joint. 1659 /// Do a physics property update for a NINJA joint.
1658 /// </summary> 1660 /// </summary>
@@ -1833,9 +1835,9 @@ namespace OpenSim.Region.Framework.Scenes
1833 1835
1834 // If this part is a sculpt then delay the physics update until we've asynchronously loaded the 1836 // If this part is a sculpt then delay the physics update until we've asynchronously loaded the
1835 // mesh data. 1837 // mesh data.
1836 if (Shape.SculptEntry) 1838// if (Shape.SculptEntry)
1837 CheckSculptAndLoad(); 1839// CheckSculptAndLoad();
1838 else 1840// else
1839 ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa); 1841 ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa);
1840 } 1842 }
1841 } 1843 }
@@ -2511,6 +2513,7 @@ namespace OpenSim.Region.Framework.Scenes
2511 /// Set sculpt and mesh data, and tell the physics engine to process the change. 2513 /// Set sculpt and mesh data, and tell the physics engine to process the change.
2512 /// </summary> 2514 /// </summary>
2513 /// <param name="texture">The mesh itself.</param> 2515 /// <param name="texture">The mesh itself.</param>
2516/*
2514 public void SculptTextureCallback(AssetBase texture) 2517 public void SculptTextureCallback(AssetBase texture)
2515 { 2518 {
2516 if (m_shape.SculptEntry) 2519 if (m_shape.SculptEntry)
@@ -2538,7 +2541,7 @@ namespace OpenSim.Region.Framework.Scenes
2538 } 2541 }
2539 } 2542 }
2540 } 2543 }
2541 2544*/
2542 /// <summary> 2545 /// <summary>
2543 /// Send a full update to the client for the given part 2546 /// Send a full update to the client for the given part
2544 /// </summary> 2547 /// </summary>
@@ -3783,7 +3786,7 @@ namespace OpenSim.Region.Framework.Scenes
3783 public void UpdateExtraParam(ushort type, bool inUse, byte[] data) 3786 public void UpdateExtraParam(ushort type, bool inUse, byte[] data)
3784 { 3787 {
3785 m_shape.ReadInUpdateExtraParam(type, inUse, data); 3788 m_shape.ReadInUpdateExtraParam(type, inUse, data);
3786 3789/*
3787 if (type == 0x30) 3790 if (type == 0x30)
3788 { 3791 {
3789 if (m_shape.SculptEntry && m_shape.SculptTexture != UUID.Zero) 3792 if (m_shape.SculptEntry && m_shape.SculptTexture != UUID.Zero)
@@ -3791,7 +3794,7 @@ namespace OpenSim.Region.Framework.Scenes
3791 ParentGroup.Scene.AssetService.Get(m_shape.SculptTexture.ToString(), this, AssetReceived); 3794 ParentGroup.Scene.AssetService.Get(m_shape.SculptTexture.ToString(), this, AssetReceived);
3792 } 3795 }
3793 } 3796 }
3794 3797*/
3795 if (ParentGroup != null) 3798 if (ParentGroup != null)
3796 { 3799 {
3797 ParentGroup.HasGroupChanged = true; 3800 ParentGroup.HasGroupChanged = true;
@@ -4025,14 +4028,6 @@ namespace OpenSim.Region.Framework.Scenes
4025 if (!wasUsingPhysics) 4028 if (!wasUsingPhysics)
4026 { 4029 {
4027 DoPhysicsPropertyUpdate(UsePhysics, false); 4030 DoPhysicsPropertyUpdate(UsePhysics, false);
4028
4029 if (!ParentGroup.IsDeleted)
4030 {
4031 if (LocalId == ParentGroup.RootPart.LocalId)
4032 {
4033 ParentGroup.CheckSculptAndLoad();
4034 }
4035 }
4036 } 4031 }
4037 } 4032 }
4038 else 4033 else
@@ -4072,14 +4067,6 @@ namespace OpenSim.Region.Framework.Scenes
4072 pa.SetMaterial(Material); 4067 pa.SetMaterial(Material);
4073 DoPhysicsPropertyUpdate(UsePhysics, true); 4068 DoPhysicsPropertyUpdate(UsePhysics, true);
4074 4069
4075 if (!ParentGroup.IsDeleted)
4076 {
4077 if (LocalId == ParentGroup.RootPart.LocalId)
4078 {
4079 ParentGroup.CheckSculptAndLoad();
4080 }
4081 }
4082
4083 if ( 4070 if (
4084 ((AggregateScriptEvents & scriptEvents.collision) != 0) || 4071 ((AggregateScriptEvents & scriptEvents.collision) != 0) ||
4085 ((AggregateScriptEvents & scriptEvents.collision_end) != 0) || 4072 ((AggregateScriptEvents & scriptEvents.collision_end) != 0) ||
@@ -4104,14 +4091,6 @@ namespace OpenSim.Region.Framework.Scenes
4104 else // it already has a physical representation 4091 else // it already has a physical representation
4105 { 4092 {
4106 DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim 4093 DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim
4107
4108 if (!ParentGroup.IsDeleted)
4109 {
4110 if (LocalId == ParentGroup.RootPart.LocalId)
4111 {
4112 ParentGroup.CheckSculptAndLoad();
4113 }
4114 }
4115 } 4094 }
4116 } 4095 }
4117 4096
@@ -4341,6 +4320,7 @@ namespace OpenSim.Region.Framework.Scenes
4341 /// <remarks> 4320 /// <remarks>
4342 /// When the physics engine has finished with it, the sculpt data is discarded to save memory. 4321 /// When the physics engine has finished with it, the sculpt data is discarded to save memory.
4343 /// </remarks> 4322 /// </remarks>
4323/*
4344 public void CheckSculptAndLoad() 4324 public void CheckSculptAndLoad()
4345 { 4325 {
4346// m_log.DebugFormat("Processing CheckSculptAndLoad for {0} {1}", Name, LocalId); 4326// m_log.DebugFormat("Processing CheckSculptAndLoad for {0} {1}", Name, LocalId);
@@ -4366,7 +4346,7 @@ namespace OpenSim.Region.Framework.Scenes
4366 } 4346 }
4367 } 4347 }
4368 } 4348 }
4369 4349*/
4370 /// <summary> 4350 /// <summary>
4371 /// Update the texture entry for this part. 4351 /// Update the texture entry for this part.
4372 /// </summary> 4352 /// </summary>
@@ -4604,6 +4584,7 @@ namespace OpenSim.Region.Framework.Scenes
4604 } 4584 }
4605 4585
4606 Quaternion rot = Quaternion.Slerp(RotationOffset,APIDTarget,1.0f/(float)m_APIDIterations); 4586 Quaternion rot = Quaternion.Slerp(RotationOffset,APIDTarget,1.0f/(float)m_APIDIterations);
4587 rot.Normalize();
4607 UpdateRotation(rot); 4588 UpdateRotation(rot);
4608 4589
4609 m_APIDIterations--; 4590 m_APIDIterations--;