diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 15 |
2 files changed, 25 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 6447403..5790591 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -578,6 +578,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
578 | SetPartAsRoot(newPart); | 578 | SetPartAsRoot(newPart); |
579 | } | 579 | } |
580 | 580 | ||
581 | public void applyImpulse(PhysicsVector impulse) | ||
582 | { | ||
583 | SceneObjectPart rootpart = m_rootPart; | ||
584 | if (m_rootPart.PhysActor != null) | ||
585 | { | ||
586 | m_rootPart.PhysActor.AddForce(impulse); | ||
587 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); | ||
588 | } | ||
589 | } | ||
590 | |||
581 | public void SetRootPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) | 591 | public void SetRootPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) |
582 | { | 592 | { |
583 | part.LastOwnerID = part.OwnerID; | 593 | part.LastOwnerID = part.OwnerID; |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 0cb4ae7..ce38bee 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -520,6 +520,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
520 | 520 | ||
521 | protected PrimitiveBaseShape m_shape; | 521 | protected PrimitiveBaseShape m_shape; |
522 | 522 | ||
523 | /// <summary> | ||
524 | /// hook to the physics scene to apply impulse | ||
525 | /// This is sent up to the group, which then finds the root prim | ||
526 | /// and applies the force on the root prim of the group | ||
527 | /// </summary> | ||
528 | /// <param name="impulse">Vector force</param> | ||
529 | public void ApplyImpulse(LLVector3 impulsei) | ||
530 | { | ||
531 | PhysicsVector impulse = new PhysicsVector(impulsei.X, impulsei.Y, impulsei.Z); | ||
532 | if (m_parentGroup != null) | ||
533 | { | ||
534 | m_parentGroup.applyImpulse(impulse); | ||
535 | } | ||
536 | } | ||
537 | |||
523 | public void TriggerScriptChangedEvent(Changed val) | 538 | public void TriggerScriptChangedEvent(Changed val) |
524 | { | 539 | { |
525 | if (m_parentGroup != null) | 540 | if (m_parentGroup != null) |