Universe.Physics.BulletSPlugin.BSPrim.SetAxisLockLimitsExtension C# (CSharp) Method

SetAxisLockLimitsExtension() private method

private SetAxisLockLimitsExtension ( object pParams ) : object
pParams object
return object
        object SetAxisLockLimitsExtension(object[] pParams)
        {
            DetailLog("{0} SetAxisLockLimitsExtension. parmlen={1}", LocalID, pParams.GetLength(0));
            object ret = null;
            try
            {
                if (pParams.GetLength(0) > 1)
                {
                    int index = 2;
                    while (index < pParams.GetLength(0))
                    {
                        var funct = pParams[index];
                        DetailLog("{0} SetAxisLockLimitsExtension. op={1}, index={2}", LocalID, funct, index);
                        if (funct is Int32 || funct is Int64)
                        {
                            switch ((int)funct)
                            {
                                // Those that take no parameters
                                case ExtendedPhysics.PHYS_AXIS_LOCK_LINEAR:
                                case ExtendedPhysics.PHYS_AXIS_LOCK_LINEAR_X:
                                case ExtendedPhysics.PHYS_AXIS_LOCK_LINEAR_Y:
                                case ExtendedPhysics.PHYS_AXIS_LOCK_LINEAR_Z:
                                case ExtendedPhysics.PHYS_AXIS_LOCK_ANGULAR:
                                case ExtendedPhysics.PHYS_AXIS_LOCK_ANGULAR_X:
                                case ExtendedPhysics.PHYS_AXIS_LOCK_ANGULAR_Y:
                                case ExtendedPhysics.PHYS_AXIS_LOCK_ANGULAR_Z:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_LINEAR:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_LINEAR_X:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_LINEAR_Y:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_LINEAR_Z:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_ANGULAR:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_ANGULAR_X:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_ANGULAR_Y:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK_ANGULAR_Z:
                                case ExtendedPhysics.PHYS_AXIS_UNLOCK:
                                    ApplyAxisLimits((int)funct, 0f, 0f);
                                    index += 1;
                                    break;
                                // Those that take two parameters (the limits)
                                case ExtendedPhysics.PHYS_AXIS_LIMIT_LINEAR_X:
                                case ExtendedPhysics.PHYS_AXIS_LIMIT_LINEAR_Y:
                                case ExtendedPhysics.PHYS_AXIS_LIMIT_LINEAR_Z:
                                case ExtendedPhysics.PHYS_AXIS_LIMIT_ANGULAR_X:
                                case ExtendedPhysics.PHYS_AXIS_LIMIT_ANGULAR_Y:
                                case ExtendedPhysics.PHYS_AXIS_LIMIT_ANGULAR_Z:
                                    ApplyAxisLimits((int)funct, (float)pParams[index + 1], (float)pParams[index + 2]);
                                    index += 3;
                                    break;
                                default:
                                    MainConsole.Instance.WarnFormat("{0} SetSxisLockLimitsExtension. Unknown op={1}", LogHeader, funct);
                                    index += 1;
                                    break;
                            }
                        }
                    }
                    InitializeAxisActor();
                    ret = (object)index;
                }
            }
            catch (Exception e)
            {
                MainConsole.Instance.WarnFormat("{0} SetSxisLockLimitsExtension exception in object {1}: {2}", LogHeader, Name, e);
                ret = null;
            }
            return ret;    // not implemented yet
        }