diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 19 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 10 |
3 files changed, 31 insertions, 8 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 20624d5..87a42b1 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -547,7 +547,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
547 | SceneObjectGroup sceneOb = new SceneObjectGroup(this, this.m_regionHandle, ownerID, PrimIDAllocate(), pos, shape); | 547 | SceneObjectGroup sceneOb = new SceneObjectGroup(this, this.m_regionHandle, ownerID, PrimIDAllocate(), pos, shape); |
548 | AddEntity(sceneOb); | 548 | AddEntity(sceneOb); |
549 | SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID); | 549 | SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID); |
550 | // rootPart.PhysActor =phyScene.AddPrim(new PhysicsVector(pos.X, pos.Y, pos.Z), new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), | 550 | //rootPart.PhysActor =phyScene.AddPrim(new PhysicsVector(pos.X, pos.Y, pos.Z), new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), |
551 | // new Axiom.Math.Quaternion()); | 551 | // new Axiom.Math.Quaternion()); |
552 | } | 552 | } |
553 | 553 | ||
@@ -626,11 +626,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
626 | AddEntity(obj); | 626 | AddEntity(obj); |
627 | 627 | ||
628 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); | 628 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); |
629 | //rootPart.PhysActor = phyScene.AddPrim( | 629 | //rootPart.PhysActor = phyScene.AddPrim( |
630 | // new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), | 630 | // new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), |
631 | // new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 631 | // new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
632 | // new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 632 | // new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
633 | // rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); | 633 | // rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); |
634 | primCount++; | 634 | primCount++; |
635 | } | 635 | } |
636 | } | 636 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 7e34637..f787190 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -717,6 +717,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
717 | if (part != null) | 717 | if (part != null) |
718 | { | 718 | { |
719 | part.Resize(scale); | 719 | part.Resize(scale); |
720 | if (part.UUID == this.m_rootPart.UUID) | ||
721 | { | ||
722 | if (m_rootPart.PhysActor != null) | ||
723 | { | ||
724 | m_rootPart.PhysActor.Size = new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z); | ||
725 | } | ||
726 | } | ||
720 | } | 727 | } |
721 | } | 728 | } |
722 | #endregion | 729 | #endregion |
@@ -789,6 +796,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
789 | public void UpdateGroupRotation(LLQuaternion rot) | 796 | public void UpdateGroupRotation(LLQuaternion rot) |
790 | { | 797 | { |
791 | this.m_rootPart.UpdateRotation(rot); | 798 | this.m_rootPart.UpdateRotation(rot); |
799 | if (m_rootPart.PhysActor != null) | ||
800 | { | ||
801 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | ||
802 | } | ||
792 | this.ScheduleGroupForTerseUpdate(); | 803 | this.ScheduleGroupForTerseUpdate(); |
793 | } | 804 | } |
794 | 805 | ||
@@ -800,6 +811,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
800 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) | 811 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) |
801 | { | 812 | { |
802 | this.m_rootPart.UpdateRotation(rot); | 813 | this.m_rootPart.UpdateRotation(rot); |
814 | if (m_rootPart.PhysActor != null) | ||
815 | { | ||
816 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | ||
817 | } | ||
803 | this.AbsolutePosition = pos; | 818 | this.AbsolutePosition = pos; |
804 | this.ScheduleGroupForTerseUpdate(); | 819 | this.ScheduleGroupForTerseUpdate(); |
805 | } | 820 | } |
@@ -832,6 +847,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
832 | private void UpdateRootRotation(LLQuaternion rot) | 847 | private void UpdateRootRotation(LLQuaternion rot) |
833 | { | 848 | { |
834 | this.m_rootPart.UpdateRotation(rot); | 849 | this.m_rootPart.UpdateRotation(rot); |
850 | if (m_rootPart.PhysActor != null) | ||
851 | { | ||
852 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | ||
853 | } | ||
835 | Axiom.Math.Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); | 854 | Axiom.Math.Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); |
836 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); | 855 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); |
837 | 856 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index ae46feb..f168340 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -148,7 +148,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
148 | 148 | ||
149 | public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation) | 149 | public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation) |
150 | { | 150 | { |
151 | Console.WriteLine("+++++++++++++++++++++++++++++++++AddPrim pos: " + position + " size: " + size + " quat: " + rotation); | 151 | //Console.WriteLine("+++++++++++++++++++++++++++++++++AddPrim pos: " + position + " size: " + size + " quat: " + rotation); |
152 | PhysicsVector pos = new PhysicsVector(); | 152 | PhysicsVector pos = new PhysicsVector(); |
153 | pos.X = position.X; | 153 | pos.X = position.X; |
154 | pos.Y = position.Y; | 154 | pos.Y = position.Y; |
@@ -437,7 +437,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
437 | } | 437 | } |
438 | set | 438 | set |
439 | { | 439 | { |
440 | Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++ setting pos: " + value); | 440 | //Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++ setting pos: " + value); |
441 | _position = value; | 441 | _position = value; |
442 | Monitor.Enter(typeof(OdeScene)); | 442 | Monitor.Enter(typeof(OdeScene)); |
443 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); | 443 | d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); |
@@ -454,8 +454,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
454 | } | 454 | } |
455 | set | 455 | set |
456 | { | 456 | { |
457 | Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++ setting size: " + value); | 457 | //Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++ setting size: " + value); |
458 | _size = value; | 458 | _size = value; |
459 | Monitor.Enter(typeof(OdeScene)); | ||
460 | d.GeomBoxSetLengths(prim_geom, _size.X, _size.Y, _size.Z); | ||
461 | Monitor.Exit(typeof(OdeScene)); | ||
459 | } | 462 | } |
460 | } | 463 | } |
461 | 464 | ||
@@ -490,6 +493,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
490 | } | 493 | } |
491 | set | 494 | set |
492 | { | 495 | { |
496 | //Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++++ setting Orientation"); | ||
493 | _orientation = value; | 497 | _orientation = value; |
494 | Monitor.Enter(typeof(OdeScene)); | 498 | Monitor.Enter(typeof(OdeScene)); |
495 | d.Quaternion myrot = new d.Quaternion(); | 499 | d.Quaternion myrot = new d.Quaternion(); |