diff options
author | Robert Adams | 2013-01-21 15:58:22 -0800 |
---|---|---|
committer | Robert Adams | 2013-01-21 15:58:22 -0800 |
commit | 471c4778639aec60078e6cee7c964682c959f033 (patch) | |
tree | 2e43aab8780c4b2556fd730529d5bd897fec151b /OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |
parent | Have SOP and LSL_Api call the proper GetCenterOfMass and GetGeometricCenter (diff) | |
download | opensim-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.cs | 16 |
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 | } |