diff options
author | dan miller | 2007-09-09 15:28:15 +0000 |
---|---|---|
committer | dan miller | 2007-09-09 15:28:15 +0000 |
commit | 94b03aa09d2937f95511f07c9ae41e1d94150f8f (patch) | |
tree | 228786591bd33609a15748e6d437fb32bb928afe /OpenSim | |
parent | ODE fix: avatar/avatar collision enabled. Needs client update fix to be seen... (diff) | |
download | opensim-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')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 23 |
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 | } |