Let inworld meshs colide as such and not as basic prim all the time. Removed also LOD, and outerskin on colision meshs.

avinationmerge
UbitUmarov 2012-02-27 20:08:43 +00:00
parent 960c575dd2
commit a725b5e01e
2 changed files with 10 additions and 5 deletions

View File

@ -2421,7 +2421,7 @@ namespace OpenSim.Region.Physics.OdePlugin
// Don't need to re-enable body.. it's done in SetMesh // Don't need to re-enable body.. it's done in SetMesh
try try
{ {
_mesh = _parent_scene.mesher.CreateMesh(m_primName, _pbs, _size, _parent_scene.meshSculptLOD, IsPhysical); _mesh = _parent_scene.mesher.CreateMesh(m_primName, _pbs, _size, (int)LevelOfDetail.High, true);
} }
catch catch
{ {
@ -2676,7 +2676,7 @@ namespace OpenSim.Region.Physics.OdePlugin
try try
{ {
if (_parent_scene.needsMeshing(_pbs)) if (_parent_scene.needsMeshing(_pbs))
mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, meshlod, IsPhysical); mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, (int)LevelOfDetail.High, true);
} }
catch catch
{ {
@ -2783,7 +2783,7 @@ namespace OpenSim.Region.Physics.OdePlugin
meshlod = _parent_scene.MeshSculptphysicalLOD; meshlod = _parent_scene.MeshSculptphysicalLOD;
try try
{ {
IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, meshlod, IsPhysical); IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, (int)LevelOfDetail.High, true);
CreateGeom(m_targetSpace, mesh); CreateGeom(m_targetSpace, mesh);
} }
catch catch

View File

@ -1772,7 +1772,7 @@ namespace OpenSim.Region.Physics.OdePlugin
IMesh mesh = null; IMesh mesh = null;
if (needsMeshing(pbs)) if (needsMeshing(pbs))
mesh = mesher.CreateMesh(primName, pbs, size, 32f, isPhysical); mesh = mesher.CreateMesh(primName, pbs, size, (int)LevelOfDetail.High, true);
result = AddPrim(primName, position, size, rotation, mesh, pbs, isPhysical, localid); result = AddPrim(primName, position, size, rotation, mesh, pbs, isPhysical, localid);
@ -2514,7 +2514,7 @@ namespace OpenSim.Region.Physics.OdePlugin
} }
// if it's a standard box or sphere with no cuts, hollows, twist or top shear, return false since ODE can use an internal representation for the prim // if it's a standard box or sphere with no cuts, hollows, twist or top shear, return false since ODE can use an internal representation for the prim
if (!forceSimplePrimMeshing) if (!forceSimplePrimMeshing && !pbs.SculptEntry)
{ {
if ((pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight) if ((pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight)
|| (pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1 || (pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1
@ -2537,6 +2537,9 @@ namespace OpenSim.Region.Physics.OdePlugin
} }
} }
if (forceSimplePrimMeshing)
return true;
if (pbs.ProfileHollow != 0) if (pbs.ProfileHollow != 0)
iPropertiesNotSupportedDefault++; iPropertiesNotSupportedDefault++;
@ -2601,6 +2604,8 @@ namespace OpenSim.Region.Physics.OdePlugin
} }
} }
if (pbs.SculptEntry && meshSculptedPrim)
iPropertiesNotSupportedDefault++;
if (iPropertiesNotSupportedDefault == 0) if (iPropertiesNotSupportedDefault == 0)
{ {