aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/PhysicsModules
diff options
context:
space:
mode:
authorUbitUmarov2018-07-29 23:31:38 +0100
committerUbitUmarov2018-07-29 23:31:38 +0100
commit390cb703f37a6a78d481723636575f9abc7b3b45 (patch)
tree1f7a492b030e38e24471b94e7cf6cf1aa324e6b8 /OpenSim/Region/PhysicsModules
parentmantis 8346: fix argument of osUnixTimeToTimestamp (diff)
downloadopensim-SC-390cb703f37a6a78d481723636575f9abc7b3b45.zip
opensim-SC-390cb703f37a6a78d481723636575f9abc7b3b45.tar.gz
opensim-SC-390cb703f37a6a78d481723636575f9abc7b3b45.tar.bz2
opensim-SC-390cb703f37a6a78d481723636575f9abc7b3b45.tar.xz
and some more guard try{}catch{} on ub mesh processing
Diffstat (limited to 'OpenSim/Region/PhysicsModules')
-rw-r--r--OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs39
1 files changed, 31 insertions, 8 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs b/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs
index dddec86..6a4ef1e 100644
--- a/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs
+++ b/OpenSim/Region/PhysicsModules/ubOdeMeshing/Meshmerizer.cs
@@ -242,27 +242,50 @@ namespace OpenSim.Region.PhysicsModule.ubODEMeshing
242 242
243 if (primShape.SculptEntry) 243 if (primShape.SculptEntry)
244 { 244 {
245 if (((OpenMetaverse.SculptType)primShape.SculptType) == SculptType.Mesh) 245 if (((SculptType)primShape.SculptType) == SculptType.Mesh)
246 { 246 {
247 if (!useMeshiesPhysicsMesh) 247 if (!useMeshiesPhysicsMesh)
248 return null; 248 return null;
249 249 try
250 if (!GenerateCoordsAndFacesFromPrimMeshData(primName, primShape, out coords, out faces, convex)) 250 {
251 if (!GenerateCoordsAndFacesFromPrimMeshData(primName, primShape, out coords, out faces, convex))
252 return null;
253 needsConvexProcessing = false;
254 }
255 catch
256 {
257 m_log.ErrorFormat("[MESH]: fail to process mesh asset for prim {0}", primName);
251 return null; 258 return null;
252 needsConvexProcessing = false; 259 }
253 } 260 }
254 else 261 else
255 { 262 {
256 if (!GenerateCoordsAndFacesFromPrimSculptData(primName, primShape, lod, out coords, out faces)) 263 try
264 {
265 if (!GenerateCoordsAndFacesFromPrimSculptData(primName, primShape, lod, out coords, out faces))
266 return null;
267 needsConvexProcessing &= doConvexSculpts;
268 }
269 catch
270 {
271 m_log.ErrorFormat("[MESH]: fail to process sculpt map for prim {0}", primName);
257 return null; 272 return null;
258 needsConvexProcessing &= doConvexSculpts; 273 }
259 } 274 }
260 } 275 }
261 else 276 else
262 { 277 {
263 if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, lod, convex, out coords, out faces)) 278 try
279 {
280 if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, lod, convex, out coords, out faces))
281 return null;
282 needsConvexProcessing &= doConvexPrims;
283 }
284 catch
285 {
286 m_log.ErrorFormat("[MESH]: fail to process shape parameters for prim {0}", primName);
264 return null; 287 return null;
265 needsConvexProcessing &= doConvexPrims; 288 }
266 } 289 }
267 290
268 int numCoords = coords.Count; 291 int numCoords = coords.Count;