aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneGraph.cs
diff options
context:
space:
mode:
authorTeravus Ovares2008-12-26 12:58:02 +0000
committerTeravus Ovares2008-12-26 12:58:02 +0000
commitec2dc354b485491d7879686b4a78027971e3ed92 (patch)
tree3ea0771a55524ce1b9dec3c3c66f0dac24a006ef /OpenSim/Region/Environment/Scenes/SceneGraph.cs
parentPrevent exception in terrain module if just the word terrain is entered at th... (diff)
downloadopensim-SC_OLD-ec2dc354b485491d7879686b4a78027971e3ed92.zip
opensim-SC_OLD-ec2dc354b485491d7879686b4a78027971e3ed92.tar.gz
opensim-SC_OLD-ec2dc354b485491d7879686b4a78027971e3ed92.tar.bz2
opensim-SC_OLD-ec2dc354b485491d7879686b4a78027971e3ed92.tar.xz
* Applying Nlin's NINJA Joint patch. v2. Mantis# 2874
* Thanks nlin! * To try it out, set ninja joints active in the ODEPhysicsSettings and use the example at: * http://forge.opensimulator.org/gf/download/frsrelease/142/304/demo-playground.tgz. * Don't forget to change the .tgz to .oar and load it with load-oar.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneGraph.cs17
1 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneGraph.cs b/OpenSim/Region/Environment/Scenes/SceneGraph.cs
index dbb8539..d998dbb 100644
--- a/OpenSim/Region/Environment/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneGraph.cs
@@ -159,6 +159,22 @@ namespace OpenSim.Region.Environment.Scenes
159 { 159 {
160 lock (m_syncRoot) 160 lock (m_syncRoot)
161 { 161 {
162 // Here is where the Scene calls the PhysicsScene. This is a one-way
163 // interaction; the PhysicsScene cannot access the calling Scene directly.
164 // But with joints, we want a PhysicsActor to be able to influence a
165 // non-physics SceneObjectPart. In particular, a PhysicsActor that is connected
166 // with a joint should be able to move the SceneObjectPart which is the visual
167 // representation of that joint (for editing and serialization purposes).
168 // However the PhysicsActor normally cannot directly influence anything outside
169 // of the PhysicsScene, and the non-physical SceneObjectPart which represents
170 // the joint in the Scene does not exist in the PhysicsScene.
171 //
172 // To solve this, we have an event in the PhysicsScene that is fired when a joint
173 // has changed position (because one of its associated PhysicsActors has changed
174 // position).
175 //
176 // Therefore, JointMoved and JointDeactivated events will be fired as a result of the following Simulate().
177
162 return _PhyScene.Simulate((float)elapsed); 178 return _PhyScene.Simulate((float)elapsed);
163 } 179 }
164 } 180 }
@@ -875,6 +891,7 @@ namespace OpenSim.Region.Environment.Scenes
875 { 891 {
876 List<EntityBase> EntityList = GetEntities(); 892 List<EntityBase> EntityList = GetEntities();
877 893
894 // FIXME: use a dictionary here
878 foreach (EntityBase ent in EntityList) 895 foreach (EntityBase ent in EntityList)
879 { 896 {
880 if (ent is SceneObjectGroup) 897 if (ent is SceneObjectGroup)