aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs17
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs41
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs5
3 files changed, 40 insertions, 23 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 708da15..d8cb11c 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -737,12 +737,27 @@ namespace OpenSim.Region.Environment.Scenes
737 m_statsReporter.addOtherMS(otherMS); 737 m_statsReporter.addOtherMS(otherMS);
738 m_statsReporter.SetActiveScripts(m_innerScene.GetActiveScripts()); 738 m_statsReporter.SetActiveScripts(m_innerScene.GetActiveScripts());
739 m_statsReporter.addScriptLines(m_innerScene.GetScriptLPS()); 739 m_statsReporter.addScriptLines(m_innerScene.GetScriptLPS());
740 740
741 } 741 }
742 catch (NotImplementedException) 742 catch (NotImplementedException)
743 { 743 {
744 throw; 744 throw;
745 } 745 }
746 catch (System.AccessViolationException e)
747 {
748 m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName);
749
750 }
751 catch (System.NullReferenceException e)
752 {
753 m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName);
754
755 }
756 catch (System.InvalidOperationException e)
757 {
758 m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName);
759
760 }
746 catch (Exception e) 761 catch (Exception e)
747 { 762 {
748 m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName); 763 m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName);
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index e8d4766..519858b 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -1265,23 +1265,11 @@ namespace OpenSim.Region.Environment.Scenes
1265 if (part != null) 1265 if (part != null)
1266 { 1266 {
1267 part.UpdateShape(shapeBlock); 1267 part.UpdateShape(shapeBlock);
1268 }
1269 if (m_rootPart.PhysActor != null)
1270 {
1271 m_scene.PhysicsScene.RemovePrim(m_rootPart.PhysActor);
1272 m_rootPart.PhysActor = m_scene.PhysicsScene.AddPrimShape(
1273 m_rootPart.Name,
1274 m_rootPart.Shape,
1275 new PhysicsVector(m_rootPart.AbsolutePosition.X, m_rootPart.AbsolutePosition.Y,
1276 m_rootPart.AbsolutePosition.Z),
1277 new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z),
1278 new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X,
1279 m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z),
1280 m_rootPart.PhysActor.IsPhysical);
1281 bool UsePhysics = ((m_rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0);
1282 m_rootPart.DoPhysicsPropertyUpdate(UsePhysics, true);
1283 1268
1269 if (part.PhysActor != null)
1270 m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
1284 } 1271 }
1272
1285 } 1273 }
1286 1274
1287 #endregion 1275 #endregion
@@ -1299,15 +1287,24 @@ namespace OpenSim.Region.Environment.Scenes
1299 if (part != null) 1287 if (part != null)
1300 { 1288 {
1301 part.Resize(scale); 1289 part.Resize(scale);
1302 if (part.UUID == m_rootPart.UUID) 1290 if (part.PhysActor != null)
1303 { 1291 {
1304 if (m_rootPart.PhysActor != null) 1292 part.PhysActor.Size =
1305 { 1293 new PhysicsVector(scale.X, scale.Y, scale.Z);
1306 m_rootPart.PhysActor.Size = 1294 m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
1307 new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z);
1308 m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
1309 }
1310 } 1295 }
1296 if (part.UUID != m_rootPart.UUID)
1297 ScheduleGroupForFullUpdate();
1298
1299 //if (part.UUID == m_rootPart.UUID)
1300 //{
1301 //if (m_rootPart.PhysActor != null)
1302 //{
1303 //m_rootPart.PhysActor.Size =
1304 //new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z);
1305 //m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
1306 //}
1307 //}
1311 } 1308 }
1312 } 1309 }
1313 1310
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 1d5dd5b..5756a0b 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -1182,6 +1182,10 @@ namespace OpenSim.Region.Environment.Scenes
1182 m_shape.PathTaperY = shapeBlock.PathTaperY; 1182 m_shape.PathTaperY = shapeBlock.PathTaperY;
1183 m_shape.PathTwist = shapeBlock.PathTwist; 1183 m_shape.PathTwist = shapeBlock.PathTwist;
1184 m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; 1184 m_shape.PathTwistBegin = shapeBlock.PathTwistBegin;
1185 if (PhysActor != null)
1186 {
1187 PhysActor.Shape = m_shape;
1188 }
1185 ScheduleFullUpdate(); 1189 ScheduleFullUpdate();
1186 } 1190 }
1187 1191
@@ -1583,6 +1587,7 @@ namespace OpenSim.Region.Environment.Scenes
1583 public void Resize(LLVector3 scale) 1587 public void Resize(LLVector3 scale)
1584 { 1588 {
1585 m_shape.Scale = scale; 1589 m_shape.Scale = scale;
1590
1586 ScheduleFullUpdate(); 1591 ScheduleFullUpdate();
1587 } 1592 }
1588 1593