OpenSim/Region/PhysicsModules/Ode/OdeScene.cs
/// <summary>
/// Simulate the joint proxies of a NINJA actor.
/// </summary>
/// <remarks>
/// Called as part of the Simulate() loop if NINJA physics is active.  Must only be called from there.
/// </remarks>
/// <param name="actor"></param>
Simulate the joint proxies of a NINJA actor.
Simulate the joint proxies of a NINJA actor .
private void SimulateActorPendingJoints(OdePrim actor)
        {
            if (actor.SOPName != null &&
                joints_connecting_actor.ContainsKey(actor.SOPName) &&
                joints_connecting_actor[actor.SOPName] != null &&
                joints_connecting_actor[actor.SOPName].Count > 0)
            {
                foreach (PhysicsJoint affectedJoint in joints_connecting_actor[actor.SOPName])
                {
                    if (affectedJoint.IsInPhysicsEngine)
                    {
                        DoJointMoved(affectedJoint);
                    }
                    else
                    {
                        DoJointErrorMessage(affectedJoint, "a body connected to a joint was moved, but the joint doesn't exist yet! this will lead to joint error. joint was: " + affectedJoint.ObjectNameInScene + " parms:" + affectedJoint.RawParams);
                    }
                }
            }
        }
private void SimulateActorPendingJoints ( OdePrim actor ) { if ( actor . SOPName != null && joints_connecting_actor . ContainsKey ( actor . SOPName ) && joints_connecting_actor [ actor . SOPName ] != null && joints_connecting_actor [ actor . SOPName ] . Count > 0 ) { foreach ( PhysicsJoint affectedJoint in joints_connecting_actor [ actor . SOPName ] ) { if ( affectedJoint . IsInPhysicsEngine ) { DoJointMoved ( affectedJoint ) ; } else { DoJointErrorMessage ( affectedJoint , " " + affectedJoint . ObjectNameInScene + " " + affectedJoint . RawParams ) ; } } } }
Simulate the joint proxies of a NINJA actor.
Simulate the joint proxies of a NINJA actor .
// If an actor moved, move its joint proxy objects as well. // There seems to be an event PhysicsActor.OnPositionUpdate that could be used // for this purpose but it is never called! So we just do the joint // movement code here.
actor
OdePrim
None
remarks
Called as part of the Simulate() loop if NINJA physics is active.  Must only be called from there.
Called as part of the Simulate () loop if NINJA physics is active . Must only be called from there .