aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs21
1 files changed, 15 insertions, 6 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs
index 6bf5be1..a3534a4 100644
--- a/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/UbitOdePlugin/ODEPrim.cs
@@ -1092,18 +1092,21 @@ namespace OpenSim.Region.Physics.OdePlugin
1092 CalcPrimBodyData(); 1092 CalcPrimBodyData();
1093 1093
1094 m_mesh = null; 1094 m_mesh = null;
1095 if (_parent_scene.needsMeshing(pbs)) 1095 if (_parent_scene.needsMeshing(pbs) && (pbs.SculptData.Length > 0))
1096 { 1096 {
1097 bool convex; 1097 bool convex;
1098 int clod = (int)LevelOfDetail.High;
1098 if (m_shapetype == 0) 1099 if (m_shapetype == 0)
1099 convex = false; 1100 convex = false;
1100 else 1101 else
1102 {
1101 convex = true; 1103 convex = true;
1102 1104 if (_pbs.SculptType != (byte)SculptType.Mesh)
1103 m_mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, (int)LevelOfDetail.High, true, convex); 1105 clod = (int)LevelOfDetail.Low;
1106 }
1107 m_mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, clod, true, convex);
1104 } 1108 }
1105 1109
1106
1107 m_building = true; // control must set this to false when done 1110 m_building = true; // control must set this to false when done
1108 1111
1109 AddChange(changes.Add, null); 1112 AddChange(changes.Add, null);
@@ -1360,12 +1363,18 @@ namespace OpenSim.Region.Physics.OdePlugin
1360 if (m_mesh == null) 1363 if (m_mesh == null)
1361 { 1364 {
1362 bool convex; 1365 bool convex;
1366 int clod = (int)LevelOfDetail.High;
1367
1363 if (m_shapetype == 0) 1368 if (m_shapetype == 0)
1364 convex = false; 1369 convex = false;
1365 else 1370 else
1371 {
1366 convex = true; 1372 convex = true;
1373 if (_pbs.SculptType != (byte)SculptType.Mesh)
1374 clod = (int)LevelOfDetail.Low;
1375 }
1367 1376
1368 mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, (int)LevelOfDetail.High, true, convex); 1377 mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, clod, true, convex);
1369 } 1378 }
1370 else 1379 else
1371 { 1380 {
@@ -1373,7 +1382,7 @@ namespace OpenSim.Region.Physics.OdePlugin
1373 } 1382 }
1374 1383
1375 if (mesh == null) 1384 if (mesh == null)
1376 { 1385 {
1377 m_log.WarnFormat("[PHYSICS]: CreateMesh Failed on prim {0} at <{1},{2},{3}>.", Name, _position.X, _position.Y, _position.Z); 1386 m_log.WarnFormat("[PHYSICS]: CreateMesh Failed on prim {0} at <{1},{2},{3}>.", Name, _position.X, _position.Y, _position.Z);
1378 return false; 1387 return false;
1379 } 1388 }