mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 08:55:56 +08:00
Merge branch 'master' into bigmerge
Conflicts: OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
This commit is contained in:
@@ -93,8 +93,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
protected int m_activeScripts = 0;
|
||||
protected int m_scriptLPS = 0;
|
||||
|
||||
protected internal object m_syncRoot = new object();
|
||||
|
||||
protected internal PhysicsScene _PhyScene;
|
||||
|
||||
/// <summary>
|
||||
@@ -201,26 +199,22 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// <returns></returns>
|
||||
protected internal float UpdatePhysics(double elapsed)
|
||||
{
|
||||
lock (m_syncRoot)
|
||||
{
|
||||
// Here is where the Scene calls the PhysicsScene. This is a one-way
|
||||
// interaction; the PhysicsScene cannot access the calling Scene directly.
|
||||
// But with joints, we want a PhysicsActor to be able to influence a
|
||||
// non-physics SceneObjectPart. In particular, a PhysicsActor that is connected
|
||||
// with a joint should be able to move the SceneObjectPart which is the visual
|
||||
// representation of that joint (for editing and serialization purposes).
|
||||
// However the PhysicsActor normally cannot directly influence anything outside
|
||||
// of the PhysicsScene, and the non-physical SceneObjectPart which represents
|
||||
// the joint in the Scene does not exist in the PhysicsScene.
|
||||
//
|
||||
// To solve this, we have an event in the PhysicsScene that is fired when a joint
|
||||
// has changed position (because one of its associated PhysicsActors has changed
|
||||
// position).
|
||||
//
|
||||
// Therefore, JointMoved and JointDeactivated events will be fired as a result of the following Simulate().
|
||||
|
||||
return _PhyScene.Simulate((float)elapsed);
|
||||
}
|
||||
// Here is where the Scene calls the PhysicsScene. This is a one-way
|
||||
// interaction; the PhysicsScene cannot access the calling Scene directly.
|
||||
// But with joints, we want a PhysicsActor to be able to influence a
|
||||
// non-physics SceneObjectPart. In particular, a PhysicsActor that is connected
|
||||
// with a joint should be able to move the SceneObjectPart which is the visual
|
||||
// representation of that joint (for editing and serialization purposes).
|
||||
// However the PhysicsActor normally cannot directly influence anything outside
|
||||
// of the PhysicsScene, and the non-physical SceneObjectPart which represents
|
||||
// the joint in the Scene does not exist in the PhysicsScene.
|
||||
//
|
||||
// To solve this, we have an event in the PhysicsScene that is fired when a joint
|
||||
// has changed position (because one of its associated PhysicsActors has changed
|
||||
// position).
|
||||
//
|
||||
// Therefore, JointMoved and JointDeactivated events will be fired as a result of the following Simulate().
|
||||
return _PhyScene.Simulate((float)elapsed);
|
||||
}
|
||||
|
||||
protected internal void UpdateScenePresenceMovement()
|
||||
|
||||
Reference in New Issue
Block a user