diff options
author | Robert Adams | 2013-06-11 17:58:08 -0700 |
---|---|---|
committer | Robert Adams | 2013-06-11 17:58:08 -0700 |
commit | 3cb65f0d3166f976713a7c095eb37e6de05061d0 (patch) | |
tree | dc36eeb32e15683e39e0ce7d9681ad94d64cc74b /OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs | |
parent | Merge working repo (diff) | |
download | opensim-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-x | OpenSim/Region/Physics/BulletSPlugin/BSShapes.cs | 40 |
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 | } |