/// /// Use this function if you want to specify transformation matrix for the top table (top frame). /// It is recommended only for 6DoF in cases when rotation center is not in default point (0, 0, 0). /// Make sure to call ForceSeatMI_BeginMotionControl before this function is called. /// public bool SendTopTableMatrixPhy(ref FSMI_TopTableMatrixPhysical matrix) { if (m_api == IntPtr.Zero) { return(false); } return(m_fsmiSendTopTableMatrixPhy(m_api, ref matrix) != 0); }
/// /// Use this function if you want to specify transformation matrix for the top table (top frame). /// It is recommended only for 6DoF in cases when rotation center is not in default point (0, 0, 0). /// Make sure to call ForceSeatMI_BeginMotionControl before this function is called. /// /// NOTE: sfx and audioEffects are optional. /// public bool SendTopTableMatrixPhy2(ref FSMI_TopTableMatrixPhysical matrix, ref FSMI_SFX sfx, ref FSMI_TactileAudioBasedFeedbackEffects audioEffects) { if (m_api == IntPtr.Zero) { return(false); } return(m_fsmiSendTopTableMatrixPhy2(m_api, ref matrix, ref sfx, ref audioEffects) != 0); }
public void Pause(bool paused) { if (null != m_platformInfoObject) { m_platformInfoObject.Pause(paused); } if (null != m_telemetryObject) { m_telemetryObject.Pause(paused); if (paused) { FSMI_Telemetry pauseTelemetry = new FSMI_Telemetry(); pauseTelemetry.mask = FSMI_TEL_BIT.STATE; pauseTelemetry.structSize = (byte)Marshal.SizeOf(pauseTelemetry); pauseTelemetry.state = paused ? (byte)FSMI_State.PAUSE : (byte)FSMI_State.NO_PAUSE; m_api.SendTelemetry(ref pauseTelemetry); } } if (null != m_positioningObject) { m_positioningObject.Pause(paused); if (paused) { FSMI_TopTableMatrixPhysical pauseMatrix = new FSMI_TopTableMatrixPhysical(); pauseMatrix.mask = FSMI_POS_BIT.STATE; pauseMatrix.structSize = (byte)Marshal.SizeOf(pauseMatrix); pauseMatrix.state = paused ? (byte)FSMI_State.PAUSE : (byte)FSMI_State.NO_PAUSE; m_api.SendTopTableMatrixPhy(ref pauseMatrix); } } }