private void Confirm()
        {
            ICommand newCommand;

            switch (mMode)
            {
            default:
            case ComputerMode.Off:
                mAttitude  = FlightAttitude.Null;
                newCommand = AttitudeCommand.Off();
                break;

            case ComputerMode.Kill:
                mAttitude  = FlightAttitude.Null;
                newCommand = AttitudeCommand.KillRot();
                break;

            case ComputerMode.Node:
                mAttitude  = FlightAttitude.Null;
                newCommand = AttitudeCommand.ManeuverNode();
                break;

            case ComputerMode.TargetPos:
                mAttitude  = (mAttitude == FlightAttitude.Null) ? FlightAttitude.Prograde : mAttitude;
                newCommand =
                    AttitudeCommand.WithAttitude(Attitude, ReferenceFrame.TargetParallel);
                break;

            case ComputerMode.Orbital:
                mAttitude  = (mAttitude == FlightAttitude.Null) ? FlightAttitude.Prograde : mAttitude;
                newCommand =
                    AttitudeCommand.WithAttitude(Attitude, ReferenceFrame.Orbit);
                break;

            case ComputerMode.Surface:
                mAttitude  = (mAttitude == FlightAttitude.Null) ? FlightAttitude.Prograde : mAttitude;
                newCommand =
                    AttitudeCommand.WithAttitude(Attitude, ReferenceFrame.Surface);
                break;

            case ComputerMode.TargetVel:
                mAttitude  = (mAttitude == FlightAttitude.Null) ? FlightAttitude.Prograde : mAttitude;
                newCommand =
                    AttitudeCommand.WithAttitude(Attitude, ReferenceFrame.TargetVelocity);
                break;

            case ComputerMode.Custom:
                mAttitude  = FlightAttitude.Null;
                newCommand = AttitudeCommand.WithSurface(Pitch, Heading, Roll);
                break;
            }
            mFlightComputer.Enqueue(newCommand);
        }