aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs20
1 files changed, 19 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 7589750..c0b4b45 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -797,7 +797,25 @@ namespace OpenSim.Region.Physics.OdePlugin
797 797
798 #endregion 798 #endregion
799 799
800 if (contacts[i].depth >= 0f && !checkDupe(contacts[i], p2.PhysicsActorType)) 800 // Logic for collision handling
801 // Note, that if *all* contacts are skipped (VolumeDetect)
802 // The prim still detects (and forwards) collision events but
803 // appears to be phantom for the world
804 Boolean skipThisContact = false;
805
806 if (contacts[i].depth < 0f)
807 skipThisContact = true;
808
809 if (checkDupe(contacts[i], p2.PhysicsActorType))
810 skipThisContact = true;
811
812 if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect))
813 skipThisContact = true; // No collision on volume detect prims
814
815 if ((p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect))
816 skipThisContact = true; // No collision on volume detect prims
817
818 if (!skipThisContact)
801 { 819 {
802 // If we're colliding against terrain 820 // If we're colliding against terrain
803 if (name1 == "Terrain" || name2 == "Terrain") 821 if (name1 == "Terrain" || name2 == "Terrain")