aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
diff options
context:
space:
mode:
authorRobert Adams2013-01-21 15:58:22 -0800
committerRobert Adams2013-01-21 15:58:22 -0800
commit471c4778639aec60078e6cee7c964682c959f033 (patch)
tree2e43aab8780c4b2556fd730529d5bd897fec151b /OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
parentHave SOP and LSL_Api call the proper GetCenterOfMass and GetGeometricCenter (diff)
downloadopensim-SC-471c4778639aec60078e6cee7c964682c959f033.zip
opensim-SC-471c4778639aec60078e6cee7c964682c959f033.tar.gz
opensim-SC-471c4778639aec60078e6cee7c964682c959f033.tar.bz2
opensim-SC-471c4778639aec60078e6cee7c964682c959f033.tar.xz
BulletSim: allow changing position and rotation of a child of a linkset
without rebuilding the whole compound shape. Should make vehicles move smoother.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs16
1 files changed, 9 insertions, 7 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
index b63523c..468ff40 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
@@ -311,13 +311,14 @@ public sealed class BSPrim : BSPhysObject
311 _position = value; 311 _position = value;
312 PositionSanityCheck(false); 312 PositionSanityCheck(false);
313 313
314 // A linkset might need to know if a component information changed.
315 Linkset.UpdateProperties(this, false);
316
317 PhysicsScene.TaintedObject("BSPrim.setPosition", delegate() 314 PhysicsScene.TaintedObject("BSPrim.setPosition", delegate()
318 { 315 {
319 DetailLog("{0},BSPrim.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation); 316 DetailLog("{0},BSPrim.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation);
320 ForcePosition = _position; 317 ForcePosition = _position;
318
319 // A linkset might need to know if a component information changed.
320 Linkset.UpdateProperties(UpdatedProperties.Position, this);
321
321 }); 322 });
322 } 323 }
323 } 324 }
@@ -682,12 +683,13 @@ public sealed class BSPrim : BSPhysObject
682 return; 683 return;
683 _orientation = value; 684 _orientation = value;
684 685
685 // A linkset might need to know if a component information changed.
686 Linkset.UpdateProperties(this, false);
687
688 PhysicsScene.TaintedObject("BSPrim.setOrientation", delegate() 686 PhysicsScene.TaintedObject("BSPrim.setOrientation", delegate()
689 { 687 {
690 ForceOrientation = _orientation; 688 ForceOrientation = _orientation;
689
690 // A linkset might need to know if a component information changed.
691 Linkset.UpdateProperties(UpdatedProperties.Orientation, this);
692
691 }); 693 });
692 } 694 }
693 } 695 }
@@ -1686,7 +1688,7 @@ public sealed class BSPrim : BSPhysObject
1686 */ 1688 */
1687 1689
1688 // The linkset implimentation might want to know about this. 1690 // The linkset implimentation might want to know about this.
1689 Linkset.UpdateProperties(this, true); 1691 Linkset.UpdateProperties(UpdatedProperties.EntPropUpdates, this);
1690 } 1692 }
1691} 1693}
1692} 1694}