aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRobert Adams2013-06-11 17:58:08 -0700
committerRobert Adams2013-06-11 17:58:08 -0700
commit3cb65f0d3166f976713a7c095eb37e6de05061d0 (patch)
treedc36eeb32e15683e39e0ce7d9681ad94d64cc74b
parentMerge working repo (diff)
downloadopensim-SC-3cb65f0d3166f976713a7c095eb37e6de05061d0.zip
opensim-SC-3cb65f0d3166f976713a7c095eb37e6de05061d0.tar.gz
opensim-SC-3cb65f0d3166f976713a7c095eb37e6de05061d0.tar.bz2
opensim-SC-3cb65f0d3166f976713a7c095eb37e6de05061d0.tar.xz
BulletSim: when meshing or asset fetching fails, include position
and region with the offending object's name in the error message.
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSShapes.cs40
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt4
2 files changed, 30 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 }
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
index 1e01526..4357ef1 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
+++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
@@ -1,5 +1,9 @@
1CURRENT PROBLEMS TO FIX AND/OR LOOK AT 1CURRENT PROBLEMS TO FIX AND/OR LOOK AT
2================================================= 2=================================================
3Vehicle buoyancy. Computed correctly? Possibly creating very large effective mass.
4 Interaction of llSetBuoyancy and vehicle buoyancy. Should be additive?
5 Negative buoyancy computed correctly
6Computation of mesh mass. How done? How should it be done?
3Script changing rotation of child prim while vehicle moving (eg turning wheel) causes 7Script changing rotation of child prim while vehicle moving (eg turning wheel) causes
4 the wheel to appear to jump back. Looks like sending position from previous update. 8 the wheel to appear to jump back. Looks like sending position from previous update.
5Enable vehicle border crossings (at least as poorly as ODE) 9Enable vehicle border crossings (at least as poorly as ODE)