diff options
author | UbitUmarov | 2017-07-02 01:34:06 +0100 |
---|---|---|
committer | UbitUmarov | 2017-07-02 01:34:06 +0100 |
commit | f3a920237b479149537f39d203c824571123d032 (patch) | |
tree | 74cb5a06235862c8abfec540fafb4c403d8b31c1 /OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |
parent | a few changes to ubOde avatar collisions (diff) | |
download | opensim-SC-f3a920237b479149537f39d203c824571123d032.zip opensim-SC-f3a920237b479149537f39d203c824571123d032.tar.gz opensim-SC-f3a920237b479149537f39d203c824571123d032.tar.bz2 opensim-SC-f3a920237b479149537f39d203c824571123d032.tar.xz |
oops i forgot the avatar knees bending on ramps... so go back..
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index 0837bfb..844d02b 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |||
@@ -951,7 +951,9 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
951 | SharedTmpcontact.surface.mu = mu; | 951 | SharedTmpcontact.surface.mu = mu; |
952 | SharedTmpcontact.surface.bounce = bounce; | 952 | SharedTmpcontact.surface.bounce = bounce; |
953 | 953 | ||
954 | bool noskip = true; | 954 | d.ContactGeom altContact = new d.ContactGeom(); |
955 | bool useAltcontact; | ||
956 | bool noskip; | ||
955 | 957 | ||
956 | if(dop1ava || dop2ava) | 958 | if(dop1ava || dop2ava) |
957 | smoothMesh = false; | 959 | smoothMesh = false; |
@@ -959,10 +961,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
959 | while (true) | 961 | while (true) |
960 | { | 962 | { |
961 | noskip = true; | 963 | noskip = true; |
964 | useAltcontact = false; | ||
962 | 965 | ||
963 | if (dop1ava) | 966 | if (dop1ava) |
964 | { | 967 | { |
965 | if ((((OdeCharacter)p1).Collide(g1, g2, false, ref curContact, ref FeetCollision))) | 968 | if ((((OdeCharacter)p1).Collide(g1, g2, false, ref curContact, ref altContact , ref useAltcontact, ref FeetCollision))) |
966 | { | 969 | { |
967 | if (p2.PhysicsActorType == (int)ActorTypes.Agent) | 970 | if (p2.PhysicsActorType == (int)ActorTypes.Agent) |
968 | { | 971 | { |
@@ -977,7 +980,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
977 | } | 980 | } |
978 | else if (dop2ava) | 981 | else if (dop2ava) |
979 | { | 982 | { |
980 | if ((((OdeCharacter)p2).Collide(g2, g1, true, ref curContact, ref FeetCollision))) | 983 | if ((((OdeCharacter)p2).Collide(g2, g1, true, ref curContact, ref altContact , ref useAltcontact, ref FeetCollision))) |
981 | { | 984 | { |
982 | if (p1.PhysicsActorType == (int)ActorTypes.Agent) | 985 | if (p1.PhysicsActorType == (int)ActorTypes.Agent) |
983 | { | 986 | { |
@@ -993,8 +996,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
993 | 996 | ||
994 | if (noskip) | 997 | if (noskip) |
995 | { | 998 | { |
996 | Joint = CreateContacJoint(ref curContact,smoothMesh); | 999 | if(useAltcontact) |
997 | 1000 | Joint = CreateContacJoint(ref altContact,smoothMesh); | |
1001 | else | ||
1002 | Joint = CreateContacJoint(ref curContact,smoothMesh); | ||
998 | if (Joint == IntPtr.Zero) | 1003 | if (Joint == IntPtr.Zero) |
999 | break; | 1004 | break; |
1000 | 1005 | ||