aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authordan miller2007-09-09 15:28:15 +0000
committerdan miller2007-09-09 15:28:15 +0000
commit94b03aa09d2937f95511f07c9ae41e1d94150f8f (patch)
tree228786591bd33609a15748e6d437fb32bb928afe /OpenSim/Region/Environment
parentODE fix: avatar/avatar collision enabled. Needs client update fix to be seen... (diff)
downloadopensim-SC-94b03aa09d2937f95511f07c9ae41e1d94150f8f.zip
opensim-SC-94b03aa09d2937f95511f07c9ae41e1d94150f8f.tar.gz
opensim-SC-94b03aa09d2937f95511f07c9ae41e1d94150f8f.tar.bz2
opensim-SC-94b03aa09d2937f95511f07c9ae41e1d94150f8f.tar.xz
ODE: added support for Phantom flag. Presently you need to add 1024 to ObjectFlags by hand
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs9
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs23
2 files changed, 18 insertions, 14 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 879cd79..e5ab41f 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -415,10 +415,11 @@ namespace OpenSim.Region.Environment.Scenes
415 this.AddEntity(group); 415 this.AddEntity(group);
416 group.AbsolutePosition = pos; 416 group.AbsolutePosition = pos;
417 SceneObjectPart rootPart = group.GetChildPart(group.UUID); 417 SceneObjectPart rootPart = group.GetChildPart(group.UUID);
418 rootPart.PhysActor = phyScene.AddPrim( 418 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
419 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), 419 rootPart.PhysActor = phyScene.AddPrim(
420 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), 420 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z),
421 new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, 421 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z),
422 new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X,
422 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); 423 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z));
423 } 424 }
424 } 425 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 4f8d60b..17b01d5 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -528,10 +528,11 @@ namespace OpenSim.Region.Environment.Scenes
528 { 528 {
529 AddEntityFromStorage(prim); 529 AddEntityFromStorage(prim);
530 SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); 530 SceneObjectPart rootPart = prim.GetChildPart(prim.UUID);
531 rootPart.PhysActor = phyScene.AddPrim( 531 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
532 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), 532 rootPart.PhysActor = phyScene.AddPrim(
533 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), 533 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z),
534 new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, 534 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z),
535 new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X,
535 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); 536 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z));
536 } 537 }
537 MainLog.Instance.Verbose("Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)"); 538 MainLog.Instance.Verbose("Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)");
@@ -567,7 +568,8 @@ namespace OpenSim.Region.Environment.Scenes
567 SceneObjectGroup sceneOb = new SceneObjectGroup(this, this.m_regionHandle, ownerID, PrimIDAllocate(), pos, shape); 568 SceneObjectGroup sceneOb = new SceneObjectGroup(this, this.m_regionHandle, ownerID, PrimIDAllocate(), pos, shape);
568 AddEntity(sceneOb); 569 AddEntity(sceneOb);
569 SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID); 570 SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID);
570 rootPart.PhysActor = phyScene.AddPrim(new PhysicsVector(pos.X, pos.Y, pos.Z), new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), 571 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
572 rootPart.PhysActor = phyScene.AddPrim(new PhysicsVector(pos.X, pos.Y, pos.Z), new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z),
571 new Axiom.Math.Quaternion()); 573 new Axiom.Math.Quaternion());
572 } 574 }
573 } 575 }
@@ -648,11 +650,12 @@ namespace OpenSim.Region.Environment.Scenes
648 AddEntity(obj); 650 AddEntity(obj);
649 651
650 SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); 652 SceneObjectPart rootPart = obj.GetChildPart(obj.UUID);
651 rootPart.PhysActor = phyScene.AddPrim( 653 if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
652 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), 654 rootPart.PhysActor = phyScene.AddPrim(
653 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), 655 new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z),
654 new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, 656 new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z),
655 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); 657 new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X,
658 rootPart.RotationOffset.Y, rootPart.RotationOffset.Z));
656 primCount++; 659 primCount++;
657 } 660 }
658 } 661 }