ubOde other convex type objects other than mesh and sculpt also don't have holes

melanie
UbitUmarov 2016-12-12 19:16:51 +00:00
parent fe3303dc11
commit 7d8cb244d1
2 changed files with 7 additions and 4 deletions

View File

@ -433,7 +433,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde
{ {
convex = true; convex = true;
// sculpts pseudo convex // sculpts pseudo convex
if (pbs.SculptType != (byte)SculptType.Mesh) if (pbs.SculptEntry && pbs.SculptType != (byte)SculptType.Mesh)
clod = (int)LevelOfDetail.Low; clod = (int)LevelOfDetail.Low;
} }

View File

@ -349,7 +349,7 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing
} }
else else
{ {
if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, lod, out coords, out faces)) if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, lod, convex, out coords, out faces))
return null; return null;
} }
@ -942,7 +942,8 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing
/// <param name="faces">Faces are added to this list by the method.</param> /// <param name="faces">Faces are added to this list by the method.</param>
/// <returns>true if coords and faces were successfully generated, false if not</returns> /// <returns>true if coords and faces were successfully generated, false if not</returns>
private bool GenerateCoordsAndFacesFromPrimShapeData( private bool GenerateCoordsAndFacesFromPrimShapeData(
string primName, PrimitiveBaseShape primShape, float lod, out List<Coord> coords, out List<Face> faces) string primName, PrimitiveBaseShape primShape, float lod, bool convex,
out List<Coord> coords, out List<Face> faces)
{ {
PrimMesh primMesh; PrimMesh primMesh;
coords = new List<Coord>(); coords = new List<Coord>();
@ -970,7 +971,9 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing
profileBegin = profileEnd - 0.02f; profileBegin = profileEnd - 0.02f;
float profileHollow = (float)primShape.ProfileHollow * 2.0e-5f; 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; profileHollow = 0.95f;
int sides = 4; int sides = 4;