aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs41
1 files changed, 19 insertions, 22 deletions
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