diff options
author | darok | 2007-11-03 19:33:00 +0000 |
---|---|---|
committer | darok | 2007-11-03 19:33:00 +0000 |
commit | fbf3c6a768274cfdb1e91e73758f9ee893094153 (patch) | |
tree | 6b6bd68b1061fa3ca4df20a044b55a50e0d354e2 /OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |
parent | First part of Scene refactoring: (diff) | |
download | opensim-SC-fbf3c6a768274cfdb1e91e73758f9ee893094153.zip opensim-SC-fbf3c6a768274cfdb1e91e73758f9ee893094153.tar.gz opensim-SC-fbf3c6a768274cfdb1e91e73758f9ee893094153.tar.bz2 opensim-SC-fbf3c6a768274cfdb1e91e73758f9ee893094153.tar.xz |
Modifications for prim movement. For now only in Mod. BulletX, but i think it can be easy to add to ODE. Enjoy kick the prims and be careful with the falling ones ;D
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 39f4e5c..b00d465 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -55,6 +55,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
55 | 55 | ||
56 | public bool HasChanged = false; | 56 | public bool HasChanged = false; |
57 | 57 | ||
58 | private LLVector3 lastPhysGroupPos; | ||
59 | private LLQuaternion lastPhysGroupRot; | ||
60 | |||
58 | #region Properties | 61 | #region Properties |
59 | 62 | ||
60 | /// <summary> | 63 | /// <summary> |
@@ -490,6 +493,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
490 | /// </summary> | 493 | /// </summary> |
491 | public override void Update() | 494 | public override void Update() |
492 | { | 495 | { |
496 | if (lastPhysGroupPos.GetDistanceTo(AbsolutePosition) > 0.02) | ||
497 | { | ||
498 | foreach (SceneObjectPart part in m_parts.Values) | ||
499 | { | ||
500 | if (part.UpdateFlag == 0) part.UpdateFlag = 1; | ||
501 | } | ||
502 | lastPhysGroupPos = AbsolutePosition; | ||
503 | } | ||
504 | if ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1) | ||
505 | || (Math.Abs(lastPhysGroupRot.X - GroupRotation.X) > 0.1) | ||
506 | || (Math.Abs(lastPhysGroupRot.Y - GroupRotation.Y) > 0.1) | ||
507 | || (Math.Abs(lastPhysGroupRot.Z - GroupRotation.Z) > 0.1)) | ||
508 | { | ||
509 | foreach (SceneObjectPart part in m_parts.Values) | ||
510 | { | ||
511 | if (part.UpdateFlag == 0) part.UpdateFlag = 1; | ||
512 | } | ||
513 | lastPhysGroupRot = GroupRotation; | ||
514 | } | ||
493 | foreach (SceneObjectPart part in m_parts.Values) | 515 | foreach (SceneObjectPart part in m_parts.Values) |
494 | { | 516 | { |
495 | part.SendScheduledUpdates(); | 517 | part.SendScheduledUpdates(); |