diff options
author | UbitUmarov | 2012-07-12 20:05:00 +0100 |
---|---|---|
committer | UbitUmarov | 2012-07-12 20:05:00 +0100 |
commit | 4c2523b1c2dd518cc21baf7674775fa2e11e1ca9 (patch) | |
tree | 48f58979253066b6a4f201afc7775283d871f1e3 /OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | |
parent | Revert "Add instrumentation to log finalizer being called. Suppressed for bac... (diff) | |
download | opensim-SC-4c2523b1c2dd518cc21baf7674775fa2e11e1ca9.zip opensim-SC-4c2523b1c2dd518cc21baf7674775fa2e11e1ca9.tar.gz opensim-SC-4c2523b1c2dd518cc21baf7674775fa2e11e1ca9.tar.bz2 opensim-SC-4c2523b1c2dd518cc21baf7674775fa2e11e1ca9.tar.xz |
Use faster any contact point collision detection for Volumedetect, plus
some clean up
Diffstat (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs')
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index 7848b35..088d2ba 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | |||
@@ -713,8 +713,18 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
713 | 713 | ||
714 | if (b1 != IntPtr.Zero && b2 != IntPtr.Zero && d.AreConnectedExcluding(b1, b2, d.JointType.Contact)) | 714 | if (b1 != IntPtr.Zero && b2 != IntPtr.Zero && d.AreConnectedExcluding(b1, b2, d.JointType.Contact)) |
715 | return; | 715 | return; |
716 | 716 | if(d.GeomGetCategoryBits(g1) == (uint)CollisionCategories.VolumeDtc || | |
717 | count = d.CollidePtr(g1, g2, (contactsPerCollision & 0xffff), ContactgeomsArray, d.ContactGeom.unmanagedSizeOf); | 717 | d.GeomGetCategoryBits(g1) == (uint)CollisionCategories.VolumeDtc) |
718 | { | ||
719 | int cflags; | ||
720 | unchecked | ||
721 | { | ||
722 | cflags = (int)(1 | d.CONTACTS_UNIMPORTANT); | ||
723 | } | ||
724 | count = d.CollidePtr(g1, g2, cflags, ContactgeomsArray, d.ContactGeom.unmanagedSizeOf); | ||
725 | } | ||
726 | else | ||
727 | count = d.CollidePtr(g1, g2, (contactsPerCollision & 0xffff), ContactgeomsArray, d.ContactGeom.unmanagedSizeOf); | ||
718 | } | 728 | } |
719 | catch (SEHException) | 729 | catch (SEHException) |
720 | { | 730 | { |