From 3586beb81bdc1f2355e458f2f6f6e4ea9393158e Mon Sep 17 00:00:00 2001 From: dan miller Date: Thu, 6 Sep 2007 03:31:32 +0000 Subject: fixed mantis bug 375 (copy broken with physics/ODE enabled) --- OpenSim/Region/Environment/Scenes/Scene.cs | 2 +- OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment') diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index f0acf52..4e87032 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -60,7 +60,7 @@ namespace OpenSim.Region.Environment.Scenes protected Timer m_heartbeatTimer = new Timer(); protected Dictionary Avatars; protected Dictionary Prims; - protected PhysicsScene phyScene; + public PhysicsScene phyScene; /// publicized so it can be accessed from SceneObjectGroup. protected float timeStep = 0.1f; private Random Rand = new Random(); private uint _primCount = 702000; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index eead762..1869a63 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -285,6 +285,17 @@ namespace OpenSim.Region.Environment.Scenes dupe.m_regionHandle = this.m_regionHandle; dupe.CopyRootPart(this.m_rootPart); + /// may need to create a new Physics actor. + if (dupe.RootPart.PhysActor != null) + { + dupe.RootPart.PhysActor = m_scene.phyScene.AddPrim( + new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y, dupe.RootPart.AbsolutePosition.Z), + new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z), + new Axiom.Math.Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, + dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z)); + + } + List partList = new List(this.m_parts.Values); foreach (SceneObjectPart part in partList) { -- cgit v1.1