Ejemplo n.º 1
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.
 ///
 public bool SendTopTableMatrixPhy(ref FSMI_TopTableMatrixPhysical matrix)
 {
     if (m_api == IntPtr.Zero)
     {
         return(false);
     }
     return(m_fsmiSendTopTableMatrixPhy(m_api, ref matrix) != 0);
 }
Ejemplo n.º 2
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);
 }
Ejemplo n.º 3
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);
                }
            }
        }