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
}