6.1 Класс mglWnd

Это абстрактный класс производный от класса mglGraph (см. Ядро MathGL). Он определен в #include <mgl2/wnd.h>. Класс содержит методы для создания и управления окном, содержащим графику MathGL. Производные от него классы существует отдельно для каждой библиотеки виджетов: mglQT в #include <mgl2/qt.h>, mglFLTK в #include <mgl2/fltk.h>.

Метод класса mglWnd: int Run ()
Функция С: int mgl_qt_run ()
Функция С: int mgl_fltk_run ()

Запускает цикл обработки сообщений. Обычно эта функция должна вызываться в отдельном потоке или последней функцией в main().

Метод класса mglWnd: void SetDrawFunc (int (*draw)(HMGL gr, void *p), void *par=NULL, void (*reload)(void *p)=NULL)
Метод класса mglWnd: void SetDrawFunc (int (*draw)(mglGraph *gr))
Метод класса mglWnd: void SetDrawFunc (mglDraw *obj)
Функция С: void mgl_wnd_set_func (HMGL gr, int (*draw)(HMGL gr, void *p), void *par, void (*reload)(void *p))

Устанавливает функцию, которая будет вызвана при перерисовке (draw) и при повторной загрузке данных (reload), или объект obj класса, производного от mglDraw.

Метод класса mglWnd: void SetClickFunc (void (*func)(HMGL gr, void *p))
Функция С: void mgl_set_click_func (void (*func)(HMGL gr, void *p))

Устанавливает функцию, которая будет вызвана при щелчке мышью.

Method on mglWnd: void SetMutex(pthread_mutex_t *mutex)
C function: void mgl_wnd_set_mutex(HMGL gr, pthread_mutex_t *mutex)

Устанавливает внешний mutex для блокировки/разблокировки внешних вычислений с помощью меню или кнопок окна. Функция вызывается автоматически при использовании mglDraw class.

Метод класса mglWnd: void ToggleAlpha ()
Функция С: void mgl_wnd_toggle_alpha (HMGL gr)

Включает/выключает прозрачность, но не перекрывает ее включение в пользовательской функции рисования.

Метод класса mglWnd: void ToggleLight ()
Функция С: void mgl_wnd_toggle_light (HMGL gr)

Включает/выключает освещение, но не перекрывает его включение в пользовательской функции рисования.

Метод класса mglWnd: void ToggleRotate ()
Функция С: void mgl_wnd_toggle_rotate (HMGL gr)

Включает/выключает вращение мышкой. Нажатая левая кнопка используется для вращения, средняя для сдвига, правая для приближения/перспективы.

Метод класса mglWnd: void ToggleZoom ()
Функция С: void mgl_wnd_toggle_zoom (HMGL gr)

Включает/выключает приближение мышкой. Выделите прямоугольную область и она будет приближена.

Метод класса mglWnd: void ToggleNo ()
Функция С: void mgl_wnd_toggle_no (HMGL gr)

Выключает вращение и приближение мышкой, а также восстанавливает исходный вид графика.

Метод класса mglWnd: void Update ()
Функция С: void mgl_wnd_update (HMGL gr)

Обновляет содержимое окна. Функция полезна при ручном обновлении содержимого, пока долгий расчет идет в параллельном потоке.

Метод класса mglWnd: void ReLoad ()
Функция С: void mgl_wnd_reload (HMGL gr)

Перегружает данные и обновляет рисунок. Функция также обновляет число кадров, которое создает функция рисования.

Метод класса mglWnd: void Adjust ()
Функция С: void mgl_wnd_adjust (HMGL gr)

Подгоняет размер рисунка под размер окна.

Метод класса mglWnd: void NextFrame ()
Функция С: void mgl_wnd_next_frame (HMGL gr)

Показывает следующий кадр, если он есть.

Метод класса mglWnd: void PrevFrame ()
Функция С: void mgl_wnd_prev_frame (HMGL gr)

Показывает предыдущий кадр, если он есть.

Метод класса mglWnd: void Animation ()
Функция С: void mgl_wnd_animation (HMGL gr)

Запускает/останавливает анимацию кадров.

Метод класса mglWnd: void SetDelay (double dt)
Функция С: void mgl_wnd_set_delay (HMGL gr, double dt)

Задает задержку при анимации в секундах. По умолчанию интервал – 1 секунда.

Метод класса mglWnd: double GetDelay ()
Функция С: double mgl_wnd_get_delay (HMGL gr)

Возвращает задержку при анимации в секундах.

Метод класса mglWnd: void Setup (bool clfupd=true, bool showpos=false)
Функция С: void mgl_setup_window (HMGL gr, bool clfupd, bool showpos)

Включает/выключает:

  • очистку рисунка перед Update();
  • показ позиции щелчка мыши на рисунке.
Метод класса mglWnd: mglPoint LastMousePos ()
Функция С: void mgl_get_last_mouse_pos (HMGL gr, mreal *x, mreal *y, mreal *z)

Возвращает положение щелчка мыши.

Method on mglWnd: void * Widget ()
C function: void * mgl_fltk_widget (HMGL gr)
C function: void * mgl_qt_widget (HMGL gr)

Возвращает указатель на виджет (Класс Fl_MathGL or Класс QMathGL), используемый для рисования.