aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs9
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs13
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs29
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs2
4 files changed, 40 insertions, 13 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 81c0b73..bcc02ea 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -429,12 +429,17 @@ namespace OpenSim.Region.Environment.Scenes
429 group.AbsolutePosition = pos; 429 group.AbsolutePosition = pos;
430 SceneObjectPart rootPart = group.GetChildPart(group.UUID); 430 SceneObjectPart rootPart = group.GetChildPart(group.UUID);
431 if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) 431 if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
432 rootPart.PhysActor = phyScene.AddPrim( 432 {
433 PrimitiveBaseShape pbs = rootPart.Shape;
434 rootPart.PhysActor = phyScene.AddPrimShape(
435 rootPart.Name,
436 pbs,
433 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, 437 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
434 rootPart.AbsolutePosition.Z), 438 rootPart.AbsolutePosition.Z),
435 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), 439 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z),
436 new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, 440 new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X,
437 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); 441 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z));
442 }
438 } 443 }
439 } 444 }
440} \ No newline at end of file 445}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 8ad8147..579ec90 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -531,7 +531,9 @@ namespace OpenSim.Region.Environment.Scenes
531 AddEntityFromStorage(prim); 531 AddEntityFromStorage(prim);
532 SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); 532 SceneObjectPart rootPart = prim.GetChildPart(prim.UUID);
533 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) 533 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
534 rootPart.PhysActor = phyScene.AddPrim( 534 rootPart.PhysActor = phyScene.AddPrimShape(
535 rootPart.Name,
536 rootPart.Shape,
535 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, 537 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
536 rootPart.AbsolutePosition.Z), 538 rootPart.AbsolutePosition.Z),
537 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), 539 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z),
@@ -579,7 +581,10 @@ namespace OpenSim.Region.Environment.Scenes
579 // if not phantom, add to physics 581 // if not phantom, add to physics
580 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) 582 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
581 rootPart.PhysActor = 583 rootPart.PhysActor =
582 phyScene.AddPrim(new PhysicsVector(pos.X, pos.Y, pos.Z), 584 phyScene.AddPrimShape(
585 rootPart.Name,
586 rootPart.Shape,
587 new PhysicsVector(pos.X, pos.Y, pos.Z),
583 new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), 588 new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z),
584 new Quaternion()); 589 new Quaternion());
585 } 590 }
@@ -662,7 +667,9 @@ namespace OpenSim.Region.Environment.Scenes
662 667
663 SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); 668 SceneObjectPart rootPart = obj.GetChildPart(obj.UUID);
664 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) 669 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
665 rootPart.PhysActor = phyScene.AddPrim( 670 rootPart.PhysActor = phyScene.AddPrimShape(
671 rootPart.Name,
672 rootPart.Shape,
666 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, 673 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
667 rootPart.AbsolutePosition.Z), 674 rootPart.AbsolutePosition.Z),
668 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), 675 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z),
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 890008d..da9f366 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -314,12 +314,16 @@ namespace OpenSim.Region.Environment.Scenes
314 /// may need to create a new Physics actor. 314 /// may need to create a new Physics actor.
315 if (dupe.RootPart.PhysActor != null) 315 if (dupe.RootPart.PhysActor != null)
316 { 316 {
317 dupe.RootPart.PhysActor = m_scene.PhysScene.AddPrim( 317 PrimitiveBaseShape pbs = dupe.RootPart.Shape;
318 new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y, 318
319 dupe.RootPart.AbsolutePosition.Z), 319 dupe.RootPart.PhysActor = m_scene.PhysScene.AddPrimShape(
320 new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z), 320 dupe.RootPart.Name,
321 new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, 321 pbs,
322 dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z)); 322 new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y, dupe.RootPart.AbsolutePosition.Z),
323 new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z),
324 new Axiom.Math.Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X,
325 dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z));
326
323 } 327 }
324 328
325 List<SceneObjectPart> partList = new List<SceneObjectPart>(m_parts.Values); 329 List<SceneObjectPart> partList = new List<SceneObjectPart>(m_parts.Values);
@@ -838,6 +842,17 @@ namespace OpenSim.Region.Environment.Scenes
838 { 842 {
839 part.UpdateShape(shapeBlock); 843 part.UpdateShape(shapeBlock);
840 } 844 }
845 if (m_rootPart.PhysActor != null)
846 {
847 this.m_scene.PhysScene.RemovePrim(m_rootPart.PhysActor);
848 m_rootPart.PhysActor = m_scene.PhysScene.AddPrimShape(
849 m_rootPart.Name,
850 m_rootPart.Shape,
851 new PhysicsVector(m_rootPart.AbsolutePosition.X, m_rootPart.AbsolutePosition.Y, m_rootPart.AbsolutePosition.Z),
852 new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z),
853 new Axiom.Math.Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X,
854 m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z));
855 }
841 } 856 }
842 857
843 #endregion 858 #endregion
@@ -1252,4 +1267,4 @@ namespace OpenSim.Region.Environment.Scenes
1252 Text = text; 1267 Text = text;
1253 } 1268 }
1254 } 1269 }
1255} \ No newline at end of file 1270}
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 0338572..428b771 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -914,7 +914,7 @@ namespace OpenSim.Region.Environment.Scenes
914 new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y, 914 new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
915 AbsolutePosition.Z); 915 AbsolutePosition.Z);
916 916
917 m_physicsActor = scene.AddAvatar(pVec); 917 m_physicsActor = scene.AddAvatar(this.Firstname+"."+this.Lastname, pVec);
918 } 918 }
919 919
920 internal void Close() 920 internal void Close()