aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs
diff options
context:
space:
mode:
authorRobert Adams2013-06-11 17:58:08 -0700
committerRobert Adams2013-06-11 17:58:08 -0700
commit3cb65f0d3166f976713a7c095eb37e6de05061d0 (patch)
treedc36eeb32e15683e39e0ce7d9681ad94d64cc74b /OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs
parentMerge working repo (diff)
downloadopensim-SC_OLD-3cb65f0d3166f976713a7c095eb37e6de05061d0.zip
opensim-SC_OLD-3cb65f0d3166f976713a7c095eb37e6de05061d0.tar.gz
opensim-SC_OLD-3cb65f0d3166f976713a7c095eb37e6de05061d0.tar.bz2
opensim-SC_OLD-3cb65f0d3166f976713a7c095eb37e6de05061d0.tar.xz
BulletSim: when meshing or asset fetching fails, include position
and region with the offending object's name in the error message.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSShapes.cs40
1 files changed, 26 insertions, 14 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs b/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs
index 202a4ce..006a9c1 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs
@@ -168,10 +168,10 @@ public abstract class BSShape
168 if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.Fetched) 168 if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.Fetched)
169 { 169 {
170 prim.PrimAssetState = BSPhysObject.PrimAssetCondition.FailedMeshing; 170 prim.PrimAssetState = BSPhysObject.PrimAssetCondition.FailedMeshing;
171 physicsScene.Logger.WarnFormat("{0} Fetched asset would not mesh. {1}, texture={2}", 171 physicsScene.Logger.WarnFormat("{0} Fetched asset would not mesh. prim={1}, texture={2}",
172 LogHeader, prim.PhysObjectName, prim.BaseShape.SculptTexture); 172 LogHeader, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
173 physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,setFailed,objNam={1},tex={2}", 173 physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,setFailed,prim={1},tex={2}",
174 prim.LocalID, prim.PhysObjectName, prim.BaseShape.SculptTexture); 174 prim.LocalID, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
175 } 175 }
176 else 176 else
177 { 177 {
@@ -238,17 +238,17 @@ public abstract class BSShape
238 { 238 {
239 if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.FailedAssetFetch) 239 if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.FailedAssetFetch)
240 { 240 {
241 physicsScene.Logger.WarnFormat("{0} Mesh failed to fetch asset. obj={1}, texture={2}", 241 physicsScene.Logger.WarnFormat("{0} Mesh failed to fetch asset. prim={1}, texture={2}",
242 LogHeader, prim.PhysObjectName, prim.BaseShape.SculptTexture); 242 LogHeader, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
243 physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailed,objNam={1},tex={2}", 243 physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailed,prim={1},tex={2}",
244 prim.LocalID, prim.PhysObjectName, prim.BaseShape.SculptTexture); 244 prim.LocalID, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
245 } 245 }
246 if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.FailedMeshing) 246 if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.FailedMeshing)
247 { 247 {
248 physicsScene.Logger.WarnFormat("{0} Mesh asset would not mesh. obj={1}, texture={2}", 248 physicsScene.Logger.WarnFormat("{0} Mesh asset would not mesh. prim={1}, texture={2}",
249 LogHeader, prim.PhysObjectName, prim.BaseShape.SculptTexture); 249 LogHeader, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
250 physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailedMeshing,objNam={1},tex={2}", 250 physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailedMeshing,prim={1},tex={2}",
251 prim.LocalID, prim.PhysObjectName, prim.BaseShape.SculptTexture); 251 prim.LocalID, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
252 } 252 }
253 } 253 }
254 } 254 }
@@ -260,6 +260,19 @@ public abstract class BSShape
260 return fillShape.physShapeInfo; 260 return fillShape.physShapeInfo;
261 } 261 }
262 262
263 public static String UsefulPrimInfo(BSScene pScene, BSPhysObject prim)
264 {
265 StringBuilder buff = new StringBuilder(prim.PhysObjectName);
266 buff.Append("/pos=");
267 buff.Append(prim.RawPosition.ToString());
268 if (pScene != null)
269 {
270 buff.Append("/rgn=");
271 buff.Append(pScene.Name);
272 }
273 return buff.ToString();
274 }
275
263 #endregion // Common shape routines 276 #endregion // Common shape routines
264} 277}
265 278
@@ -528,8 +541,7 @@ public class BSShapeMesh : BSShape
528 { 541 {
529 // Force the asset condition to 'failed' so we won't try to keep fetching and processing this mesh. 542 // Force the asset condition to 'failed' so we won't try to keep fetching and processing this mesh.
530 prim.PrimAssetState = BSPhysObject.PrimAssetCondition.FailedMeshing; 543 prim.PrimAssetState = BSPhysObject.PrimAssetCondition.FailedMeshing;
531 physicsScene.Logger.DebugFormat("{0} All mesh triangles degenerate. Prim {1} at {2} in {3}", 544 physicsScene.Logger.DebugFormat("{0} All mesh triangles degenerate. Prim={1}", LogHeader, UsefulPrimInfo(physicsScene, prim) );
532 LogHeader, prim.PhysObjectName, prim.RawPosition, physicsScene.Name);
533 physicsScene.DetailLog("{0},BSShapeMesh.CreatePhysicalMesh,allDegenerate,key={1}", prim.LocalID, newMeshKey); 545 physicsScene.DetailLog("{0},BSShapeMesh.CreatePhysicalMesh,allDegenerate,key={1}", prim.LocalID, newMeshKey);
534 } 546 }
535 } 547 }