diff options
author | Robert Adams | 2012-08-17 13:30:46 -0700 |
---|---|---|
committer | Robert Adams | 2012-08-17 13:34:22 -0700 |
commit | 03d76e94034bbaa82d1872284d1fadbaa263411d (patch) | |
tree | 1671d1481282e0fb64d609b4be8d82a2faf78c0f /OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |
parent | Modify order of code so SOP doesn't set the physics actor flying (diff) | |
download | opensim-SC-03d76e94034bbaa82d1872284d1fadbaa263411d.zip opensim-SC-03d76e94034bbaa82d1872284d1fadbaa263411d.tar.gz opensim-SC-03d76e94034bbaa82d1872284d1fadbaa263411d.tar.bz2 opensim-SC-03d76e94034bbaa82d1872284d1fadbaa263411d.tar.xz |
BulletSim: restore most of the Detail logging statements. Will have
no effect on non-logging running.
Capture region name that is passed to the physics engine and use
it for detail logging file name prefix.
Fix problem with avatars dropping when flying across region boundries.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs index 48cd89b..a6bc8e2 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |||
@@ -191,7 +191,7 @@ public sealed class BSPrim : PhysicsActor | |||
191 | { | 191 | { |
192 | _mass = CalculateMass(); // changing size changes the mass | 192 | _mass = CalculateMass(); // changing size changes the mass |
193 | BulletSimAPI.SetObjectScaleMass(_scene.WorldID, _localID, _scale, (IsPhysical ? _mass : 0f), IsPhysical); | 193 | BulletSimAPI.SetObjectScaleMass(_scene.WorldID, _localID, _scale, (IsPhysical ? _mass : 0f), IsPhysical); |
194 | // DetailLog("{0}: BSPrim.setSize: size={1}, mass={2}, physical={3}", LocalID, _size, _mass, IsPhysical); | 194 | DetailLog("{0}: BSPrim.setSize: size={1}, mass={2}, physical={3}", LocalID, _size, _mass, IsPhysical); |
195 | RecreateGeomAndObject(); | 195 | RecreateGeomAndObject(); |
196 | }); | 196 | }); |
197 | } | 197 | } |
@@ -275,7 +275,7 @@ public sealed class BSPrim : PhysicsActor | |||
275 | 275 | ||
276 | public override void LockAngularMotion(OMV.Vector3 axis) | 276 | public override void LockAngularMotion(OMV.Vector3 axis) |
277 | { | 277 | { |
278 | // DetailLog("{0},BSPrim.LockAngularMotion,call,axis={1}", LocalID, axis); | 278 | DetailLog("{0},BSPrim.LockAngularMotion,call,axis={1}", LocalID, axis); |
279 | return; | 279 | return; |
280 | } | 280 | } |
281 | 281 | ||
@@ -294,7 +294,7 @@ public sealed class BSPrim : PhysicsActor | |||
294 | // TODO: what does it mean to set the position of a child prim?? Rebuild the constraint? | 294 | // TODO: what does it mean to set the position of a child prim?? Rebuild the constraint? |
295 | _scene.TaintedObject("BSPrim.setPosition", delegate() | 295 | _scene.TaintedObject("BSPrim.setPosition", delegate() |
296 | { | 296 | { |
297 | // DetailLog("{0},BSPrim.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation); | 297 | DetailLog("{0},BSPrim.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation); |
298 | BulletSimAPI.SetObjectTranslation(_scene.WorldID, _localID, _position, _orientation); | 298 | BulletSimAPI.SetObjectTranslation(_scene.WorldID, _localID, _position, _orientation); |
299 | }); | 299 | }); |
300 | } | 300 | } |
@@ -331,7 +331,7 @@ public sealed class BSPrim : PhysicsActor | |||
331 | _force = value; | 331 | _force = value; |
332 | _scene.TaintedObject("BSPrim.setForce", delegate() | 332 | _scene.TaintedObject("BSPrim.setForce", delegate() |
333 | { | 333 | { |
334 | // DetailLog("{0},BSPrim.setForce,taint,force={1}", LocalID, _force); | 334 | DetailLog("{0},BSPrim.setForce,taint,force={1}", LocalID, _force); |
335 | // BulletSimAPI.SetObjectForce(_scene.WorldID, _localID, _force); | 335 | // BulletSimAPI.SetObjectForce(_scene.WorldID, _localID, _force); |
336 | BulletSimAPI.SetObjectForce2(Body.Ptr, _force); | 336 | BulletSimAPI.SetObjectForce2(Body.Ptr, _force); |
337 | }); | 337 | }); |
@@ -409,7 +409,7 @@ public sealed class BSPrim : PhysicsActor | |||
409 | _velocity = value; | 409 | _velocity = value; |
410 | _scene.TaintedObject("BSPrim.setVelocity", delegate() | 410 | _scene.TaintedObject("BSPrim.setVelocity", delegate() |
411 | { | 411 | { |
412 | // DetailLog("{0},BSPrim.SetVelocity,taint,vel={1}", LocalID, _velocity); | 412 | DetailLog("{0},BSPrim.SetVelocity,taint,vel={1}", LocalID, _velocity); |
413 | BulletSimAPI.SetObjectVelocity(_scene.WorldID, LocalID, _velocity); | 413 | BulletSimAPI.SetObjectVelocity(_scene.WorldID, LocalID, _velocity); |
414 | }); | 414 | }); |
415 | } | 415 | } |
@@ -417,7 +417,7 @@ public sealed class BSPrim : PhysicsActor | |||
417 | public override OMV.Vector3 Torque { | 417 | public override OMV.Vector3 Torque { |
418 | get { return _torque; } | 418 | get { return _torque; } |
419 | set { _torque = value; | 419 | set { _torque = value; |
420 | // DetailLog("{0},BSPrim.SetTorque,call,torque={1}", LocalID, _torque); | 420 | DetailLog("{0},BSPrim.SetTorque,call,torque={1}", LocalID, _torque); |
421 | } | 421 | } |
422 | } | 422 | } |
423 | public override float CollisionScore { | 423 | public override float CollisionScore { |
@@ -444,7 +444,7 @@ public sealed class BSPrim : PhysicsActor | |||
444 | _scene.TaintedObject("BSPrim.setOrientation", delegate() | 444 | _scene.TaintedObject("BSPrim.setOrientation", delegate() |
445 | { | 445 | { |
446 | // _position = BulletSimAPI.GetObjectPosition(_scene.WorldID, _localID); | 446 | // _position = BulletSimAPI.GetObjectPosition(_scene.WorldID, _localID); |
447 | // DetailLog("{0},BSPrim.setOrientation,taint,pos={1},orient={2}", LocalID, _position, _orientation); | 447 | DetailLog("{0},BSPrim.setOrientation,taint,pos={1},orient={2}", LocalID, _position, _orientation); |
448 | BulletSimAPI.SetObjectTranslation(_scene.WorldID, _localID, _position, _orientation); | 448 | BulletSimAPI.SetObjectTranslation(_scene.WorldID, _localID, _position, _orientation); |
449 | }); | 449 | }); |
450 | } | 450 | } |
@@ -496,13 +496,15 @@ public sealed class BSPrim : PhysicsActor | |||
496 | _linkset.Refresh(this); | 496 | _linkset.Refresh(this); |
497 | 497 | ||
498 | CollisionFlags cf = BulletSimAPI.GetCollisionFlags2(Body.Ptr); | 498 | CollisionFlags cf = BulletSimAPI.GetCollisionFlags2(Body.Ptr); |
499 | // DetailLog("{0},BSPrim.SetObjectDynamic,taint,static={1},solid={2},mass={3}, cf={4}", LocalID, IsStatic, IsSolid, mass, cf); | 499 | DetailLog("{0},BSPrim.SetObjectDynamic,taint,static={1},solid={2},mass={3}, cf={4}", LocalID, IsStatic, IsSolid, mass, cf); |
500 | } | 500 | } |
501 | 501 | ||
502 | // prims don't fly | 502 | // prims don't fly |
503 | public override bool Flying { | 503 | public override bool Flying { |
504 | get { return _flying; } | 504 | get { return _flying; } |
505 | set { _flying = value; } | 505 | set { |
506 | _flying = value; | ||
507 | } | ||
506 | } | 508 | } |
507 | public override bool SetAlwaysRun { | 509 | public override bool SetAlwaysRun { |
508 | get { return _setAlwaysRun; } | 510 | get { return _setAlwaysRun; } |
@@ -553,7 +555,7 @@ public sealed class BSPrim : PhysicsActor | |||
553 | // m_log.DebugFormat("{0}: RotationalVelocity={1}", LogHeader, _rotationalVelocity); | 555 | // m_log.DebugFormat("{0}: RotationalVelocity={1}", LogHeader, _rotationalVelocity); |
554 | _scene.TaintedObject("BSPrim.setRotationalVelocity", delegate() | 556 | _scene.TaintedObject("BSPrim.setRotationalVelocity", delegate() |
555 | { | 557 | { |
556 | // DetailLog("{0},BSPrim.SetRotationalVel,taint,rotvel={1}", LocalID, _rotationalVelocity); | 558 | DetailLog("{0},BSPrim.SetRotationalVel,taint,rotvel={1}", LocalID, _rotationalVelocity); |
557 | BulletSimAPI.SetObjectAngularVelocity(_scene.WorldID, LocalID, _rotationalVelocity); | 559 | BulletSimAPI.SetObjectAngularVelocity(_scene.WorldID, LocalID, _rotationalVelocity); |
558 | }); | 560 | }); |
559 | } | 561 | } |
@@ -570,7 +572,7 @@ public sealed class BSPrim : PhysicsActor | |||
570 | _buoyancy = value; | 572 | _buoyancy = value; |
571 | _scene.TaintedObject("BSPrim.setBuoyancy", delegate() | 573 | _scene.TaintedObject("BSPrim.setBuoyancy", delegate() |
572 | { | 574 | { |
573 | // DetailLog("{0},BSPrim.SetBuoyancy,taint,buoy={1}", LocalID, _buoyancy); | 575 | DetailLog("{0},BSPrim.SetBuoyancy,taint,buoy={1}", LocalID, _buoyancy); |
574 | BulletSimAPI.SetObjectBuoyancy(_scene.WorldID, _localID, _buoyancy); | 576 | BulletSimAPI.SetObjectBuoyancy(_scene.WorldID, _localID, _buoyancy); |
575 | }); | 577 | }); |
576 | } | 578 | } |
@@ -633,17 +635,17 @@ public sealed class BSPrim : PhysicsActor | |||
633 | } | 635 | } |
634 | m_accumulatedForces.Clear(); | 636 | m_accumulatedForces.Clear(); |
635 | } | 637 | } |
636 | // DetailLog("{0},BSPrim.AddObjectForce,taint,force={1}", LocalID, _force); | 638 | DetailLog("{0},BSPrim.AddObjectForce,taint,force={1}", LocalID, _force); |
637 | BulletSimAPI.AddObjectForce2(Body.Ptr, fSum); | 639 | BulletSimAPI.AddObjectForce2(Body.Ptr, fSum); |
638 | }); | 640 | }); |
639 | } | 641 | } |
640 | 642 | ||
641 | public override void AddAngularForce(OMV.Vector3 force, bool pushforce) { | 643 | public override void AddAngularForce(OMV.Vector3 force, bool pushforce) { |
642 | // DetailLog("{0},BSPrim.AddAngularForce,call,angForce={1},push={2}", LocalID, force, pushforce); | 644 | DetailLog("{0},BSPrim.AddAngularForce,call,angForce={1},push={2}", LocalID, force, pushforce); |
643 | // m_log.DebugFormat("{0}: AddAngularForce. f={1}, push={2}", LogHeader, force, pushforce); | 645 | // m_log.DebugFormat("{0}: AddAngularForce. f={1}, push={2}", LogHeader, force, pushforce); |
644 | } | 646 | } |
645 | public override void SetMomentum(OMV.Vector3 momentum) { | 647 | public override void SetMomentum(OMV.Vector3 momentum) { |
646 | // DetailLog("{0},BSPrim.SetMomentum,call,mom={1}", LocalID, momentum); | 648 | DetailLog("{0},BSPrim.SetMomentum,call,mom={1}", LocalID, momentum); |
647 | } | 649 | } |
648 | public override void SubscribeEvents(int ms) { | 650 | public override void SubscribeEvents(int ms) { |
649 | _subscribedEventsMs = ms; | 651 | _subscribedEventsMs = ms; |
@@ -987,7 +989,7 @@ public sealed class BSPrim : PhysicsActor | |||
987 | // m_log.DebugFormat("{0}: CreateGeom: Defaulting to sphere of size {1}", LogHeader, _size); | 989 | // m_log.DebugFormat("{0}: CreateGeom: Defaulting to sphere of size {1}", LogHeader, _size); |
988 | if (forceRebuild || (_shapeType != ShapeData.PhysicsShapeType.SHAPE_SPHERE)) | 990 | if (forceRebuild || (_shapeType != ShapeData.PhysicsShapeType.SHAPE_SPHERE)) |
989 | { | 991 | { |
990 | // DetailLog("{0},BSPrim.CreateGeom,sphere (force={1}", LocalID, forceRebuild); | 992 | DetailLog("{0},BSPrim.CreateGeom,sphere (force={1}", LocalID, forceRebuild); |
991 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_SPHERE; | 993 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_SPHERE; |
992 | // Bullet native objects are scaled by the Bullet engine so pass the size in | 994 | // Bullet native objects are scaled by the Bullet engine so pass the size in |
993 | _scale = _size; | 995 | _scale = _size; |
@@ -1001,7 +1003,7 @@ public sealed class BSPrim : PhysicsActor | |||
1001 | // m_log.DebugFormat("{0}: CreateGeom: Defaulting to box. lid={1}, type={2}, size={3}", LogHeader, LocalID, _shapeType, _size); | 1003 | // m_log.DebugFormat("{0}: CreateGeom: Defaulting to box. lid={1}, type={2}, size={3}", LogHeader, LocalID, _shapeType, _size); |
1002 | if (forceRebuild || (_shapeType != ShapeData.PhysicsShapeType.SHAPE_BOX)) | 1004 | if (forceRebuild || (_shapeType != ShapeData.PhysicsShapeType.SHAPE_BOX)) |
1003 | { | 1005 | { |
1004 | // DetailLog("{0},BSPrim.CreateGeom,box (force={1})", LocalID, forceRebuild); | 1006 | DetailLog("{0},BSPrim.CreateGeom,box (force={1})", LocalID, forceRebuild); |
1005 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_BOX; | 1007 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_BOX; |
1006 | _scale = _size; | 1008 | _scale = _size; |
1007 | // TODO: do we need to check for and destroy a mesh or hull that might have been left from before? | 1009 | // TODO: do we need to check for and destroy a mesh or hull that might have been left from before? |
@@ -1051,12 +1053,12 @@ public sealed class BSPrim : PhysicsActor | |||
1051 | // if this new shape is the same as last time, don't recreate the mesh | 1053 | // if this new shape is the same as last time, don't recreate the mesh |
1052 | if (_meshKey == newMeshKey) return; | 1054 | if (_meshKey == newMeshKey) return; |
1053 | 1055 | ||
1054 | // DetailLog("{0},BSPrim.CreateGeomMesh,create,key={1}", LocalID, newMeshKey); | 1056 | DetailLog("{0},BSPrim.CreateGeomMesh,create,key={1}", LocalID, newMeshKey); |
1055 | // Since we're recreating new, get rid of any previously generated shape | 1057 | // Since we're recreating new, get rid of any previously generated shape |
1056 | if (_meshKey != 0) | 1058 | if (_meshKey != 0) |
1057 | { | 1059 | { |
1058 | // m_log.DebugFormat("{0}: CreateGeom: deleting old mesh. lID={1}, Key={2}", LogHeader, _localID, _meshKey); | 1060 | // m_log.DebugFormat("{0}: CreateGeom: deleting old mesh. lID={1}, Key={2}", LogHeader, _localID, _meshKey); |
1059 | // DetailLog("{0},BSPrim.CreateGeomMesh,deleteOld,key={1}", LocalID, _meshKey); | 1061 | DetailLog("{0},BSPrim.CreateGeomMesh,deleteOld,key={1}", LocalID, _meshKey); |
1060 | BulletSimAPI.DestroyMesh(_scene.WorldID, _meshKey); | 1062 | BulletSimAPI.DestroyMesh(_scene.WorldID, _meshKey); |
1061 | _mesh = null; | 1063 | _mesh = null; |
1062 | _meshKey = 0; | 1064 | _meshKey = 0; |
@@ -1086,7 +1088,7 @@ public sealed class BSPrim : PhysicsActor | |||
1086 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_MESH; | 1088 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_MESH; |
1087 | // meshes are already scaled by the meshmerizer | 1089 | // meshes are already scaled by the meshmerizer |
1088 | _scale = new OMV.Vector3(1f, 1f, 1f); | 1090 | _scale = new OMV.Vector3(1f, 1f, 1f); |
1089 | // DetailLog("{0},BSPrim.CreateGeomMesh,done", LocalID); | 1091 | DetailLog("{0},BSPrim.CreateGeomMesh,done", LocalID); |
1090 | return; | 1092 | return; |
1091 | } | 1093 | } |
1092 | 1094 | ||
@@ -1100,13 +1102,13 @@ public sealed class BSPrim : PhysicsActor | |||
1100 | // if the hull hasn't changed, don't rebuild it | 1102 | // if the hull hasn't changed, don't rebuild it |
1101 | if (newHullKey == _hullKey) return; | 1103 | if (newHullKey == _hullKey) return; |
1102 | 1104 | ||
1103 | // DetailLog("{0},BSPrim.CreateGeomHull,create,oldKey={1},newKey={2}", LocalID, _hullKey, newHullKey); | 1105 | DetailLog("{0},BSPrim.CreateGeomHull,create,oldKey={1},newKey={2}", LocalID, _hullKey, newHullKey); |
1104 | 1106 | ||
1105 | // Since we're recreating new, get rid of any previously generated shape | 1107 | // Since we're recreating new, get rid of any previously generated shape |
1106 | if (_hullKey != 0) | 1108 | if (_hullKey != 0) |
1107 | { | 1109 | { |
1108 | // m_log.DebugFormat("{0}: CreateGeom: deleting old hull. Key={1}", LogHeader, _hullKey); | 1110 | // m_log.DebugFormat("{0}: CreateGeom: deleting old hull. Key={1}", LogHeader, _hullKey); |
1109 | // DetailLog("{0},BSPrim.CreateGeomHull,deleteOldHull,key={1}", LocalID, _hullKey); | 1111 | DetailLog("{0},BSPrim.CreateGeomHull,deleteOldHull,key={1}", LocalID, _hullKey); |
1110 | BulletSimAPI.DestroyHull(_scene.WorldID, _hullKey); | 1112 | BulletSimAPI.DestroyHull(_scene.WorldID, _hullKey); |
1111 | _hullKey = 0; | 1113 | _hullKey = 0; |
1112 | } | 1114 | } |
@@ -1200,7 +1202,7 @@ public sealed class BSPrim : PhysicsActor | |||
1200 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_HULL; | 1202 | _shapeType = ShapeData.PhysicsShapeType.SHAPE_HULL; |
1201 | // meshes are already scaled by the meshmerizer | 1203 | // meshes are already scaled by the meshmerizer |
1202 | _scale = new OMV.Vector3(1f, 1f, 1f); | 1204 | _scale = new OMV.Vector3(1f, 1f, 1f); |
1203 | // DetailLog("{0},BSPrim.CreateGeomHull,done", LocalID); | 1205 | DetailLog("{0},BSPrim.CreateGeomHull,done", LocalID); |
1204 | return; | 1206 | return; |
1205 | } | 1207 | } |
1206 | 1208 | ||