Example #1
0
        internal void Disable(AuroraODEPrim parent)
        {
            if (!m_enabled || m_type == Vehicle.TYPE_NONE)
                return;
            m_enabled = false;

            parent._parent_entity.Friction = m_previousFriction;//Revert to the original
            parent._parent_entity.Restitution = m_previousRestitution;

            parent.ThrottleUpdates = true;
            parent.ForceSetVelocity(Vector3.Zero);
            parent.ForceSetRotVelocity(Vector3.Zero);
            parent.ForceSetPosition(parent.Position);
            m_body = IntPtr.Zero;
            m_linearMotorDirection = Vector3.Zero;
            m_linearMotorDirectionLASTSET = Vector3.Zero;
            m_angularMotorDirection = Vector3.Zero;
        }
Example #2
0
 internal void Disable(AuroraODEPrim parent)
 {
     if (!m_enabled || m_type == Vehicle.TYPE_NONE)
         return;
     m_enabled = false;
     parent.ThrottleUpdates = true;
     parent.ForceSetVelocity(Vector3.Zero);
     parent.ForceSetRotVelocity(Vector3.Zero);
     parent.ForceSetPosition(parent.Position);
     m_body = IntPtr.Zero;
     m_linearMotorDirection = Vector3.Zero;
     m_linearMotorDirectionLASTSET = Vector3.Zero;
     m_angularMotorDirection = Vector3.Zero;
 }
Example #3
0
 private void SendUpdate (AuroraODEPrim parent)
 {
     // WE deal with updates
     if(m_linearZeroFlag && m_angularZeroFlag)
     {
         if(m_sentZeroFlag > 0)
         {
             parent.ForceSetVelocity(Vector3.Zero);
             parent.ForceSetRotVelocity(Vector3.Zero);
             m_sentZeroFlag--;
             parent.RequestPhysicsterseUpdate();
         }
     }
     else
     {
         if(!m_lastVelocity.ApproxEquals(parent.Velocity, 0.1f) ||
             !m_lastAngVelocity.ApproxEquals(parent.RotationalVelocity, 0.1f))
         {
             m_lastVelocity = parent.Velocity;
             m_lastAngVelocity = parent.RotationalVelocity;
             m_sentZeroFlag = 5;
         }
         else
         {
         }
     }
 }