diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 0d66496..d09aa62 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -352,10 +352,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
352 | if (m_assetFailed) | 352 | if (m_assetFailed) |
353 | { | 353 | { |
354 | d.GeomSetCategoryBits(prim_geom, 0); | 354 | d.GeomSetCategoryBits(prim_geom, 0); |
355 | d.GeomSetCollideBits(prim_geom, BadMeshAssetCollideBits); | 355 | d.GeomSetCollideBits(prim_geom, BadAssetColideBits()); |
356 | } | 356 | } |
357 | else | 357 | else |
358 | { | 358 | { |
359 | |||
359 | d.GeomSetCategoryBits(prim_geom, (int)m_collisionCategories); | 360 | d.GeomSetCategoryBits(prim_geom, (int)m_collisionCategories); |
360 | d.GeomSetCollideBits(prim_geom, (int)m_collisionFlags); | 361 | d.GeomSetCollideBits(prim_geom, (int)m_collisionFlags); |
361 | } | 362 | } |
@@ -425,7 +426,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
425 | if (m_assetFailed) | 426 | if (m_assetFailed) |
426 | { | 427 | { |
427 | d.GeomSetCategoryBits(prim_geom, 0); | 428 | d.GeomSetCategoryBits(prim_geom, 0); |
428 | d.GeomSetCollideBits(prim_geom, BadMeshAssetCollideBits); | 429 | d.GeomSetCollideBits(prim_geom, BadAssetColideBits()); |
429 | } | 430 | } |
430 | else | 431 | else |
431 | { | 432 | { |
@@ -858,6 +859,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
858 | 859 | ||
859 | private static Dictionary<IMesh, IntPtr> m_MeshToTriMeshMap = new Dictionary<IMesh, IntPtr>(); | 860 | private static Dictionary<IMesh, IntPtr> m_MeshToTriMeshMap = new Dictionary<IMesh, IntPtr>(); |
860 | 861 | ||
862 | public int BadAssetColideBits() | ||
863 | { | ||
864 | return (m_isphysical ? (int)CollisionCategories.Land : 0); | ||
865 | } | ||
866 | |||
861 | private void setMesh(OdeScene parent_scene, IMesh mesh) | 867 | private void setMesh(OdeScene parent_scene, IMesh mesh) |
862 | { | 868 | { |
863 | // m_log.DebugFormat("[ODE PRIM]: Setting mesh on {0} to {1}", Name, mesh); | 869 | // m_log.DebugFormat("[ODE PRIM]: Setting mesh on {0} to {1}", Name, mesh); |
@@ -1139,7 +1145,7 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1139 | if (prm.m_assetFailed) | 1145 | if (prm.m_assetFailed) |
1140 | { | 1146 | { |
1141 | d.GeomSetCategoryBits(prm.prim_geom, 0); | 1147 | d.GeomSetCategoryBits(prm.prim_geom, 0); |
1142 | d.GeomSetCollideBits(prm.prim_geom, prm.BadMeshAssetCollideBits); | 1148 | d.GeomSetCollideBits(prm.prim_geom, prm.BadAssetColideBits()); |
1143 | } | 1149 | } |
1144 | else | 1150 | else |
1145 | { | 1151 | { |
@@ -1193,7 +1199,7 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1193 | if (m_assetFailed) | 1199 | if (m_assetFailed) |
1194 | { | 1200 | { |
1195 | d.GeomSetCategoryBits(prim_geom, 0); | 1201 | d.GeomSetCategoryBits(prim_geom, 0); |
1196 | d.GeomSetCollideBits(prim_geom, BadMeshAssetCollideBits); | 1202 | d.GeomSetCollideBits(prim_geom, BadAssetColideBits()); |
1197 | } | 1203 | } |
1198 | else | 1204 | else |
1199 | { | 1205 | { |
@@ -1395,7 +1401,7 @@ Console.WriteLine("ZProcessTaints for " + Name); | |||
1395 | if (m_assetFailed) | 1401 | if (m_assetFailed) |
1396 | { | 1402 | { |
1397 | d.GeomSetCategoryBits(prim_geom, 0); | 1403 | d.GeomSetCategoryBits(prim_geom, 0); |
1398 | d.GeomSetCollideBits(prim_geom, BadMeshAssetCollideBits); | 1404 | d.GeomSetCollideBits(prim_geom, BadAssetColideBits()); |
1399 | } | 1405 | } |
1400 | else | 1406 | else |
1401 | { | 1407 | { |
@@ -2139,7 +2145,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2139 | } | 2145 | } |
2140 | 2146 | ||
2141 | if (m_assetFailed) | 2147 | if (m_assetFailed) |
2142 | d.GeomSetCollideBits(prim_geom, BadMeshAssetCollideBits); | 2148 | d.GeomSetCollideBits(prim_geom, BadAssetColideBits()); |
2143 | else | 2149 | else |
2144 | 2150 | ||
2145 | d.GeomSetCollideBits(prim_geom, (int)m_collisionFlags); | 2151 | d.GeomSetCollideBits(prim_geom, (int)m_collisionFlags); |
@@ -2950,7 +2956,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2950 | } | 2956 | } |
2951 | public override bool PIDActive { set { m_usePID = value; } } | 2957 | public override bool PIDActive { set { m_usePID = value; } } |
2952 | public override float PIDTau { set { m_PIDTau = value; } } | 2958 | public override float PIDTau { set { m_PIDTau = value; } } |
2953 | 2959 | ||
2954 | public override float PIDHoverHeight { set { m_PIDHoverHeight = value; ; } } | 2960 | public override float PIDHoverHeight { set { m_PIDHoverHeight = value; ; } } |
2955 | public override bool PIDHoverActive { set { m_useHoverPID = value; } } | 2961 | public override bool PIDHoverActive { set { m_useHoverPID = value; } } |
2956 | public override PIDHoverType PIDHoverType { set { m_PIDHoverType = value; } } | 2962 | public override PIDHoverType PIDHoverType { set { m_PIDHoverType = value; } } |
@@ -3377,4 +3383,4 @@ Console.WriteLine(" JointCreateFixed"); | |||
3377 | } | 3383 | } |
3378 | } | 3384 | } |
3379 | } | 3385 | } |
3380 | } \ No newline at end of file | 3386 | } |