diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index a782e2d..382b721 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -769,9 +769,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
769 | { | 769 | { |
770 | // Use the movement terrain contact | 770 | // Use the movement terrain contact |
771 | AvatarMovementTerrainContact.geom = contacts[i]; | 771 | AvatarMovementTerrainContact.geom = contacts[i]; |
772 | |||
773 | _perloopContact.Add(contacts[i]); | 772 | _perloopContact.Add(contacts[i]); |
774 | |||
775 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementTerrainContact); | 773 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementTerrainContact); |
776 | } | 774 | } |
777 | else | 775 | else |
@@ -800,17 +798,13 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
800 | //contacts[i].pos = new d.Vector3(0, 0, contacts[i].pos.Z - 5f); | 798 | //contacts[i].pos = new d.Vector3(0, 0, contacts[i].pos.Z - 5f); |
801 | } | 799 | } |
802 | WaterContact.geom = contacts[i]; | 800 | WaterContact.geom = contacts[i]; |
803 | |||
804 | _perloopContact.Add(contacts[i]); | 801 | _perloopContact.Add(contacts[i]); |
805 | |||
806 | joint = d.JointCreateContact(world, contactgroup, ref WaterContact); | 802 | joint = d.JointCreateContact(world, contactgroup, ref WaterContact); |
807 | 803 | ||
808 | //m_log.Info("[PHYSICS]: Prim Water Contact" + contacts[i].depth); | 804 | //m_log.Info("[PHYSICS]: Prim Water Contact" + contacts[i].depth); |
809 | } | 805 | } |
810 | else | 806 | else |
811 | { | 807 | { // we're colliding with prim or avatar |
812 | // we're colliding with prim or avatar | ||
813 | |||
814 | // check if we're moving | 808 | // check if we're moving |
815 | if ((p2.PhysicsActorType == (int)ActorTypes.Agent) && | 809 | if ((p2.PhysicsActorType == (int)ActorTypes.Agent) && |
816 | (Math.Abs(p2.Velocity.X) > 0.01f || Math.Abs(p2.Velocity.Y) > 0.01f)) | 810 | (Math.Abs(p2.Velocity.X) > 0.01f || Math.Abs(p2.Velocity.Y) > 0.01f)) |
@@ -821,8 +815,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
821 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementprimContact); | 815 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementprimContact); |
822 | } | 816 | } |
823 | else | 817 | else |
824 | { | 818 | { // Use the non movement contact |
825 | // Use the non movement contact | ||
826 | contact.geom = contacts[i]; | 819 | contact.geom = contacts[i]; |
827 | _perloopContact.Add(contacts[i]); | 820 | _perloopContact.Add(contacts[i]); |
828 | joint = d.JointCreateContact(world, contactgroup, ref contact); | 821 | joint = d.JointCreateContact(world, contactgroup, ref contact); |
@@ -834,8 +827,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
834 | if (count > geomContactPointsStartthrottle) | 827 | if (count > geomContactPointsStartthrottle) |
835 | { | 828 | { |
836 | // If there are more then 3 contact points, it's likely | 829 | // If there are more then 3 contact points, it's likely |
837 | // that we've got a pile of objects | 830 | // that we've got a pile of objects, so ... |
838 | // | ||
839 | // We don't want to send out hundreds of terse updates over and over again | 831 | // We don't want to send out hundreds of terse updates over and over again |
840 | // so lets throttle them and send them again after it's somewhat sorted out. | 832 | // so lets throttle them and send them again after it's somewhat sorted out. |
841 | p2.ThrottleUpdates = true; | 833 | p2.ThrottleUpdates = true; |