/// /// Use this function if you want to specify position of the top table (top frame) in logical units (percent of maximum rotation and translation). /// Make sure to call ForceSeatMI_BeginMotionControl before this function is called. /// /// NOTE: sfx and audioEffects are optional. /// public bool SendTopTablePosLog2(ref FSMI_TopTablePositionLogical position, ref FSMI_SFX sfx, ref FSMI_TactileAudioBasedFeedbackEffects audioEffects) { if (m_api == IntPtr.Zero) { return(false); } return(m_fsmiSendTopTablePosLog2(m_api, ref position, ref sfx, ref audioEffects) != 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); }
/// /// It sends updated telemetry information to ForceSeatPM for further processing. /// Make sure that 'mask' and 'state' fields are set correctly. /// Make sure to call ForceSeatMI_BeginMotionControl before this function is called. /// /// NOTE: sfx and audioEffects are optional. /// public bool SendTelemetry2(ref FSMI_Telemetry telemetry, ref FSMI_SFX sfx, ref FSMI_TactileAudioBasedFeedbackEffects audioEffects) { if (m_api == IntPtr.Zero) { return(false); } return(m_fsmiSendTelemetry2(m_api, ref telemetry, ref sfx, ref audioEffects) != 0); }