From 7d8cb244d1148d70b43c51add04e095bd1160cd7 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 12 Dec 2016 19:16:51 +0000 Subject: ubOde other convex type objects other than mesh and sculpt also don't have holes --- OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs | 2 +- OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/PhysicsModules') diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs index 5a3008d..bb661e5 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEMeshWorker.cs @@ -433,7 +433,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde { convex = true; // sculpts pseudo convex - if (pbs.SculptType != (byte)SculptType.Mesh) + if (pbs.SculptEntry && pbs.SculptType != (byte)SculptType.Mesh) clod = (int)LevelOfDetail.Low; } diff --git a/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs b/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs index 2ae0881..7f0713a 100644 --- a/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs +++ b/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs @@ -349,7 +349,7 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing } else { - if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, lod, out coords, out faces)) + if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, lod, convex, out coords, out faces)) return null; } @@ -942,7 +942,8 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing /// Faces are added to this list by the method. /// true if coords and faces were successfully generated, false if not private bool GenerateCoordsAndFacesFromPrimShapeData( - string primName, PrimitiveBaseShape primShape, float lod, out List coords, out List faces) + string primName, PrimitiveBaseShape primShape, float lod, bool convex, + out List coords, out List faces) { PrimMesh primMesh; coords = new List(); @@ -970,7 +971,9 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing profileBegin = profileEnd - 0.02f; float profileHollow = (float)primShape.ProfileHollow * 2.0e-5f; - if (profileHollow > 0.95f) + if(convex) + profileHollow = 0.0f; + else if (profileHollow > 0.95f) profileHollow = 0.95f; int sides = 4; -- cgit v1.1