
@c ------------------------------------------------------------------
@chapter ``Оконные'' классы
@nav{}
@cindex mglWindow
@cindex mglGLUT
@cindex Fl_MathGL
@cindex QMathGL
@cindex window
@cindex widgets

Есть целый набор ``оконных'' классов для создания окон с графикой MathGL: @code{mglWindow} и @code{mglGLUT} для окон целиком, @code{Fl_MathGL} и @code{QMathGL} для виджетов. Все эти классы позволяют пользователю просмотривать, вращать, экспортировать рисунок. Большинство из них (кроме @code{mglGLUT}) имеют панель инструментов для упрощения изменения графика. Все оконные классы имеют схожий набор функций. Ниже приведен список классов с краткими комментариями.

Для рисования можно использовать: указатель @code{NULL} если планируется обновлять график вручную, глобальную функцию типа @code{int draw(@code{HMGL} gr, @code{void *}p)} или @code{int draw(@code{mglGraph *}gr)}, или экземпляр класса, производного от @code{mglDraw}. Этот класс определен в @code{#include <mgl2/window.h>} и имеет только 2 метода:
@verbatim
class mglDraw
{
public:
    virtual int Draw(mglGraph *) { return 0; };
    virtual void Reload() {};
};
@end verbatim
Вам следует наследовать свой класс от @code{mglDraw} и определить один или оба метода.

@menu
* mglWindow class::
* Fl_MathGL class::
* QMathGL class::
* wxMathGL class::
@end menu


@c ------------------------------------------------------------------
@external{}
@node mglWindow class, Fl_MathGL class, , Widget classes
@section Класс mglWindow
@nav{}
@cindex mglWindow
@cindex window
@c @cindex mglDraw

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

@deftypefn {Конструктор класса @code{mglWindow}} {} mglWindow (@code{const char *}title=@code{"MathGL"})
@deftypefnx {Конструктор класса @code{mglWindow}} {} mglWindow (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{const char *}title=@code{"MathGL"}, @code{void *}par=@code{NULL}, @code{int} kind=@code{0}, @code{void} (*reload)(@code{HMGL} gr, @code{void *}p)=0)
@deftypefnx {Конструктор класса @code{mglWindow}} {} mglWindow (@code{int} (*draw)(@code{mglGraph *}gr), @code{const char *}title=@code{"MathGL"}, @code{int} kind=@code{0})
@deftypefnx {Конструктор класса @code{mglWindow}} {} mglWindow (@code{mglDraw *}draw, @code{const char *}title=@code{"MathGL"}, @code{int} kind=@code{0})
@deftypefnx {Функция С} @code{HMGL} mgl_create_graph_qt (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{const char *}title, @code{void *}par, @code{void} (*reload)(@code{HMGL} gr, @code{void *}p))
@deftypefnx {Функция С} @code{HMGL} mgl_create_graph_fltk (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{const char *}title, @code{void *}par, @code{void} (*reload)(@code{HMGL} gr, @code{void *}p))
@deftypefnx {Функция С} @code{HMGL} mgl_create_graph_glut (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{const char *}title, @code{void *}par, @code{void} (*reload)(@code{HMGL} gr, @code{void *}p))

Создает окно для вывода графика. Параметр @var{draw} -- указатель (имя) функции рисования. Есть возможность создания нескольких кадров вначале (требует больше памяти) и их быстрая анимации в дальнейшем. В этом случае функция @var{draw} должна возвращать число кадров или ноль для рисования по запросу. Замечу, что @var{draw} может быть равна @code{NULL} для отображения статической (текущей) картинки. Параметр @var{title} задает заголовок окна. Параметр @var{par} содержит указатель на данные, передаваемые функции рисования @var{draw}. Параметр @var{kind} может иметь следующие значения: @samp{0} -- использовать окно FLTK, @samp{1} -- использовать окно Qt.

В окне просмотра можно использовать клавиши: 'a', 'd', 'w', 's' для вращения; ',', '.' для просмотра предыдущего и следующего кадров; 'r' для переключения прозрачности; 'f' для переключения оспещенности; 'x' для закрытия окна.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{int} RunThr ()
@deftypefnx {Функция С} @code{int} mgl_fltk_thr ()
Запускает цикл обработки сообщений в отдельном потоке. В данный момент работает только для окон FLTK.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{int} Run ()
@deftypefnx {Функция С} @code{int} mgl_qt_run ()
@deftypefnx {Функция С} @code{int} mgl_fltk_run ()
Запускает цикл обработки сообщений. Обычно эта функция должна вызываться в отдельном потоке или последней функцией в @code{main()}.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{void} SetDrawFunc (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{void *}par=@code{NULL}, @code{void} (*reload)(@code{void *}p)=@code{NULL})
@deftypefnx {Метод класса @code{mglWindow}} @code{void} SetDrawFunc (@code{int} (*draw)(@code{mglGraph *}gr))
@deftypefnx {Метод класса @code{mglWindow}} @code{void} SetDrawFunc (@code{mglDraw *}obj)
@deftypefnx {Функция С} @code{void} mgl_wnd_set_func (@code{HMGL} gr, @code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{void *}par, @code{void} (*reload)(@code{void *}p))
Устанавливает функцию, которая будет вызвана при перерисовке (@var{draw}) и при повторной загрузке данных (@var{reload}), или объект @var{obj} класса, производного от @code{mglDraw}.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{void} SetClickFunc (@code{void} (*func)(@code{HMGL} gr, @code{void *}p))
@deftypefnx {Функция С} @code{void} mgl_set_click_func (@code{void} (*func)(@code{HMGL} gr, @code{void *}p))
Устанавливает функцию, которая будет вызвана при щелчке мышью.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{void} ToggleAlpha ()
@deftypefnx {Функция С} @code{void} mgl_wnd_toggle_alpha (@code{HMGL} gr)
Включает/выключает прозрачность, но не перекрывает ее включение в пользовательской функции рисования.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} ToggleLight ()
@deftypefnx {Функция С} @code{void} mgl_wnd_toggle_light (@code{HMGL} gr)
Включает/выключает освещение, но не перекрывает его включение в пользовательской функции рисования.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} ToggleRotate ()
@deftypefnx {Функция С} @code{void} mgl_wnd_toggle_rotate (@code{HMGL} gr)
Включает/выключает вращение мышкой. Нажатая левая кнопка используется для вращения, средняя для сдвига, правая для приближения/перспективы.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} ToggleZoom ()
@deftypefnx {Функция С} @code{void} mgl_wnd_toggle_zoom (@code{HMGL} gr)
Включает/выключает приближение мышкой. Выделите прямоугольную область и она будет приближена.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} ToggleNo ()
@deftypefnx {Функция С} @code{void} mgl_wnd_toggle_no (@code{HMGL} gr)
Выключает вращение и приближение мышкой, а также восстанавливает исходный вид графика.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} Update ()
@deftypefnx {Функция С} @code{void} mgl_wnd_update (@code{HMGL} gr)
Обновляет содержимое окна. Функция полезна при ручном обновлении содержимого, пока долгий расчет идет в параллельном потоке.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} ReLoad ()
@deftypefnx {Функция С} @code{void} mgl_wnd_reload (@code{HMGL} gr)
Перегружает данные и обновляет рисунок. Функция также обновляет число кадров, которое создает функция рисования.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} Adjust ()
@deftypefnx {Функция С} @code{void} mgl_wnd_adjust (@code{HMGL} gr)
Подгоняет размер рисунка под размер окна.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} NextFrame ()
@deftypefnx {Функция С} @code{void} mgl_wnd_next_frame (@code{HMGL} gr)
Показывает следующий кадр, если он есть.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} PrevFrame ()
@deftypefnx {Функция С} @code{void} mgl_wnd_prev_frame (@code{HMGL} gr)
Показывает предыдущий кадр, если он есть.
@end deftypefn
@deftypefn {Метод класса @code{mglWindow}} @code{void} Animation ()
@deftypefnx {Функция С} @code{void} mgl_wnd_animation (@code{HMGL} gr)
Запускает/останавливает анимацию кадров.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{void} SetDelay (@code{double} dt)
@deftypefnx {Функция С} @code{void} mgl_wnd_set_delay (@code{HMGL} gr, @code{double} dt)
Задает задержку при анимации в секундах. По умолчанию интервал -- 1 секунда.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{double} GetDelay ()
@deftypefnx {Функция С} @code{double} mgl_wnd_get_delay (@code{HMGL} gr)
Возвращает задержку при анимации в секундах.
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{void} Setup (@code{bool} clfupd=@code{true}, @code{bool} showpos=@code{false})
@deftypefnx {Функция С} @code{void} mgl_setup_window (@code{HMGL} gr, @code{bool} clfupd, @code{bool} showpos)
Включает/выключает:
@itemize @bullet
@item
очистку рисунка перед Update();
@item
показ позиции щелчка мыши на рисунке.
@end itemize
@end deftypefn

@deftypefn {Метод класса @code{mglWindow}} @code{mglPoint} LastMousePos ()
@deftypefnx {Функция С} @code{void} mgl_get_last_mouse_pos (@code{HMGL} gr, @code{mreal *}x, @code{mreal *}y, @code{mreal *}z)
Возвращает положение щелчка мыши.
@end deftypefn

@c ------------------------------------------------------------------
@external{}
@node Fl_MathGL class, QMathGL class, mglWindow class, Widget classes
@section Класс Fl_MathGL
@nav{}
@cindex Fl_MathGL
@cindex widgets

Класс реализует элемент интерфейса FLTK для отображения графики MathGL. Он определен в @code{#include <mgl2/fltk.h>}.

@fig{fltk, Пример окна FLTK с графикой MathGL.}

@deftypemethod Fl_MathGL @code{void} set_draw (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p))
@deftypemethodx Fl_MathGL @code{void} set_draw (@code{int} (*draw)(@code{mglGraph *}gr))
@deftypemethodx Fl_MathGL @code{void} set_draw (@code{mglDraw *}draw)
Устанавливает функцию рисования как глобальную функцию или как функцию член класса, производного от @code{mglDraw}. Поддерживается список графиков (кадров), так что можно вначале их нарисовать (требует довольно много памяти), а потом достаточно быстро отображать. Функция должна возвращать положительное число создаваемых кадров или ноль для непосредственного рисования. Параметр @var{par} содержит указатель на данные пользователя, передаваемый функции рисования @var{draw}.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} update ()
Обновляет (перерисовывает) график.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} set_angle (@code{mreal} t, @code{mreal} p)
Задает углы для дополнительного вращения графика.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} set_flag (@code{int} f)
Задает битовые флаги для: 1 - прозрачности, 2 - освещения.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} set_state (@code{bool} z, @code{bool} r)
Задает флаги обработки движений мыши: @var{z}=@code{true} -- разрешает приближение выделения, @var{r}=@code{true} разрешает вращение/сдвиг/приближение/перспективу.
@end deftypemethod

@deftypemethod Fl_MathGL @code{void} set_zoom (@code{mreal} X1, @code{mreal} Y1, @code{mreal} X2, @code{mreal} Y2)
Задает область приближения.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} get_zoom (@code{mreal *}X1, @code{mreal *}Y1, @code{mreal *}X2, @code{mreal *}Y2)
Возвращает область приближения.
@end deftypemethod

@deftypemethod Fl_MathGL @code{void} set_popup (@code{const Fl_Menu_Item *}pmenu, @code{Fl_Widget *}w, @code{void *}v)
Задает указатель на всплывающее меню.
@end deftypemethod

@deftypemethod Fl_MathGL @code{void} set_graph (@code{mglCanvas *}gr)
@deftypemethodx Fl_MathGL @code{void} set_graph (@code{mglGraph *}gr)
Задает экземпляр класс для рисования вместо встроеного. Fl_MathGL автоматически удалит его при удалении виджета и при новом вызове @code{set_graph()}.
@end deftypemethod
@deftypemethod Fl_MathGL @code{mglGraph *} get_graph ()
Возвращает указатель на объект, строящий графики.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} adjust ()
Подгоняет размер картинки под размер окна.
@end deftypemethod

@deftypecv {Widget option} Fl_MathGL @code{Fl_Valuator *} tet_val
Указатель на внешний элемент управления для изменения угла tet.
@end deftypecv
@deftypecv {Widget option} Fl_MathGL @code{Fl_Valuator *} phi_val
Указатель на внешний элемент управления для изменения угла phi.
@end deftypecv

@c ------------------------------------------------------------------
@external{}
@node QMathGL class, wxMathGL class, Fl_MathGL class, Widget classes
@section Класс QMathGL
@nav{}
@cindex QMathGL
@cindex widgets

Класс реализует элемент интерфейса Qt для отображения графики MathGL. Он определен в @code{#include <mgl2/qt.h>}.

@fig{qt, Пример окна Qt с графикой MathGL.}

@deftypemethod QMathGL @code{void} setDraw (@code{mglDraw *}dr)
Задает функцию рисования из класса производного от @code{mglDraw}.
@end deftypemethod
@deftypemethod QMathGL @code{void} setDraw (@code{int (*}draw@code{)(mglBase *}gr, @code{void *}p@code{)}, @code{void *}par=@code{NULL})
@deftypemethodx QMathGL @code{void} setDraw (@code{int (*}draw@code{)(mglGraph *}gr@code{)})
Задает функцию рисования @var{draw}. Поддерживается список графиков (кадров), так что можно вначале их нарисовать (требует довольно много памяти), а потом достаточно быстро отображать. Функция должна возвращать положительное число создаваемых кадров или ноль для непосредственного рисования. Параметр @var{par} содержит указатель на данные пользователя, передаваемый функции рисования @var{draw}.
@end deftypemethod

@deftypemethod QMathGL @code{void} setGraph (@code{mglCanvas *}gr)
@deftypemethodx QMathGL @code{void} setGraph (@code{mglGraph *}gr)
Устанавливает указатель на внешний экземпляр класса для рисования (вместо встроенного). Отмечу, что QMathGL автоматически удалит этот объект при удалении элемента интерфейса или при новом вызове @code{setGraph()}.
@end deftypemethod
@deftypemethod QMathGL @code{HMGL} getGraph ()
Возвращает указатель на объект, строящий графики.
@end deftypemethod

@deftypemethod QMathGL @code{void} setPopup (@code{QMenu *}p)
Задает указатель на всплывающее меню.
@end deftypemethod
@deftypemethod QMathGL @code{void} setSize (@code{int} w, @code{int} h)
Задает размеры элемента управления и картинки.
@end deftypemethod
@deftypemethod QMathGL @code{double} getRatio ()
Возвращает соотношение сторон рисунка.
@end deftypemethod

@deftypemethod QMathGL @code{int} getPer ()
Возвращает величину перспективы в процентах.
@end deftypemethod
@deftypemethod QMathGL @code{int} getPhi ()
Возвращает величину угла Phi в градусах.
@end deftypemethod
@deftypemethod QMathGL @code{int} getTet ()
Возвращает величину угла Theta в градусах.
@end deftypemethod
@deftypemethod QMathGL @code{bool} getAlpha ()
Возвращает состояние переключателя прозрачности.
@end deftypemethod
@deftypemethod QMathGL @code{bool} getLight ()
Возвращает состояние переключателя освещения.
@end deftypemethod
@deftypemethod QMathGL @code{bool} getZoom ()
Возвращает состояние переключателя приближения мышью.
@end deftypemethod
@deftypemethod QMathGL @code{bool} getRotate ()
Возвращает состояние переключателя вращения мышью.
@end deftypemethod


@deftypefn {Slot on @code{QMathGL}} @code{void} refresh ()
Перерисовывает (обновляет) элемент управления без вызова функции рисования.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} update ()
Обновляет рисунок путем вызова функции рисования.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} copy ()
Копирует график в буфер обмена.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} copyClickCoor ()
Копирует координаты щелчка мышью (как текст).
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} print ()
Печатает текущий рисунок.
@end deftypefn

@deftypefn {Slot on @code{QMathGL}} @code{void} stop ()
Посылает сигнал остановки рисования.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} adjust ()
Подгоняет размер картинки под размер окна.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} nextSlide ()
Показывает следующий кадр.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} prevSlide ()
Показывает предыдущий кадр.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} animation (@code{bool} st=@code{true})
Запускает анимацию.
@end deftypefn

@deftypefn {Slot on @code{QMathGL}} @code{void} setPer (@code{int} val)
Задает величину перспективы.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setPhi (@code{int} val)
Задает величину угла Phi.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setTet (@code{int} val)
Задает величину угла Theta.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setAlpha (@code{bool} val)
Включает/выключает прозрачность.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setLight (@code{bool} val)
Включает/выключает освещение.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setGrid (@code{bool} val)
Включает/выключает рисование сетки абсолютных координат на графике.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setZoom (@code{bool} val)
Включает/выключает приближение мышью.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setRotate (@code{bool} val)
Включает/выключает вращение мышью.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} zoomIn ()
Приблиажет график.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} zoomOut ()
Отдаляет график.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} shiftLeft ()
Сдвигает график влево.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} shiftRight ()
Сдвигает график вправо.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} shiftUp  ()
Сдвигает график вверх.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} shiftDown ()
Сдвигает график вниз.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} restore ()
Восстанавливает приближение и поворот графика в значения по умолчанию.
@end deftypefn
@c @deftypefn {Slot on @code{QMathGL}} @code{void} reload ()
@c Обновляет данные и перерисовывает график.
@c @end deftypefn

@deftypefn {Slot on @code{QMathGL}} @code{void} exportPNG (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в PNG файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportPNGs (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в PNG файл без прозрачности.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportJPG (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в JPEG файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportBPS (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в растровый EPS файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportEPS (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный EPS файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportSVG (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный SVG файл.
@end deftypefn

@deftypefn {Slot on @code{QMathGL}} @code{void} exportGIF (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в GIF файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportTEX (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный LaTeX/Tikz файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportTGA (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в TGA файл.
@end deftypefn

@deftypefn {Slot on @code{QMathGL}} @code{void} exportXYZ (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный XYZ/XYZL/XYZF файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportOBJ (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный OBJ/MTL файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportSTL (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный STL файл.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} exportOFF (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный OFF файл.
@end deftypefn
@c @deftypefn {Slot on @code{QMathGL}} @code{void} exportX3D (@code{QString} fname=@code{""})
@c Сохраняет текущий рисунок в векторный X3D файл.
@c @end deftypefn

@deftypefn {Slot on @code{QMathGL}} @code{void} setUsePrimitives (@code{bool} use)
Разрешает использовать список примитивов для кадров. Это позволяет вращать/масштабировать кадры, но требует значительно больше памяти. По умолчанию разрешено (=@code{true}).
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} setMGLFont (@code{QString} path)
Восстанавливает (@var{path}=@code{""}) или загружает файлы шрифтов.
@end deftypefn

@deftypefn {Slot on @code{QMathGL}} @code{void} about ()
Показывает информацию о программе.
@end deftypefn
@deftypefn {Slot on @code{QMathGL}} @code{void} aboutQt ()
Показывает информацию о версии Qt.
@end deftypefn

@deftypefn {Signal on @code{QMathGL}} @code{void} phiChanged (@code{int} val)
Угол Phi изменен.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} tetChanged (@code{int} val)
Угол Tet изменен.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} perChanged (@code{int} val)
Перспектива изменена.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} alphaChanged (@code{bool} val)
Прозрачность изменена.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} lightChanged (@code{bool} val)
Освещение изменено.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} gridChanged (@code{bool} val)
Рисование сетки изменено.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} zoomChanged (@code{bool} val)
Режим приближения мышью изменен.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} rotateChanged (@code{bool} val)
Режим вращения мышью изменен.
@end deftypefn

@deftypefn {Signal on @code{QMathGL}} @code{void} mouseClick (@code{mreal} x, @code{mreal} y, @code{mreal} z)
Был щелчок мышью в точке @{x,y,z@}.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} frameChanged (@code{int} val)
Требуется новый кадр для отображения.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} showWarn (@code{QString} warn)
Есть предупреждения.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} posChanged (@code{QString} pos)
Положение щелчка мышью изменилось.
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} objChanged (@code{int} id)
Изменился id объекта на графике (из-за щелчка мышью).
@end deftypefn
@deftypefn {Signal on @code{QMathGL}} @code{void} refreshData ()
Данные могли измениться (рисование завершено).
@end deftypefn


@deftypecv {QMathGL option} QMathGL @code{QString} appName
Имя приложения для окон сообщений.
@end deftypecv
@deftypecv {QMathGL option} QMathGL @code{bool} autoResize
Разрешить изменять размер рисунка (по умолчанию false).
@end deftypecv

@external{}


@c ------------------------------------------------------------------
@external{}
@node wxMathGL class, , QMathGL class, Widget classes
@section Класс wxMathGL
@nav{}
@cindex wxMathGL
@cindex widgets

Класс реализует элемент интерфейса WX для отображения графики MathGL. Он определен в @code{#include <mgl2/wx.h>}.

@deftypemethod wxMathGL @code{void} SetDraw (@code{mglDraw *}dr)
Задает функцию рисования из класса производного от @code{mglDraw}.
@end deftypemethod
@deftypemethod wxMathGL @code{void} SetDraw (@code{int (*}draw@code{)(mglBase *}gr, @code{void *}p@code{)}, @code{void *}par=@code{NULL})
@deftypemethodx wxMathGL @code{void} SetDraw (@code{int (*}draw@code{)(mglGraph *}gr@code{)})
Задает функцию рисования @var{draw}. Поддерживается список графиков (кадров), так что можно вначале их нарисовать (требует довольно много памяти), а потом достаточно быстро отображать. Функция должна возвращать положительное число создаваемых кадров или ноль для непосредственного рисования. Параметр @var{par} содержит указатель на данные пользователя, передаваемый функции рисования @var{draw}.
@end deftypemethod

@deftypemethod wxMathGL @code{void} SetGraph (@code{mglCanvas *}gr)
@deftypemethodx wxMathGL @code{void} SetGraph (@code{mglGraph *}gr)
Устанавливает указатель на внешний экземпляр класса для рисования (вместо встроенного). Отмечу, что wxMathGL автоматически удалит этот объект при удалении элемента интерфейса или при новом вызове @code{setGraph()}.
@end deftypemethod
@deftypemethod wxMathGL @code{HMGL} GetGraph ()
Возвращает указатель на объект, строящий графики.
@end deftypemethod

@deftypemethod wxMathGL @code{void} SetPopup (@code{QMenu *}p)
Задает указатель на всплывающее меню.
@end deftypemethod
@deftypemethod wxMathGL @code{void} SetSize (@code{int} w, @code{int} h)
Задает размеры элемента управления и картинки.
@end deftypemethod
@deftypemethod wxMathGL @code{double} GetRatio ()
Возвращает соотношение сторон рисунка.
@end deftypemethod

@deftypemethod wxMathGL @code{int} GetPer ()
Возвращает величину перспективы в процентах.
@end deftypemethod
@deftypemethod wxMathGL @code{int} GetPhi ()
Возвращает величину угла Phi в градусах.
@end deftypemethod
@deftypemethod wxMathGL @code{int} GetTet ()
Возвращает величину угла Theta в градусах.
@end deftypemethod
@deftypemethod wxMathGL @code{bool} GetAlpha ()
Возвращает состояние переключателя прозрачности.
@end deftypemethod
@deftypemethod wxMathGL @code{bool} GetLight ()
Возвращает состояние переключателя освещения.
@end deftypemethod
@deftypemethod wxMathGL @code{bool} GetZoom ()
Возвращает состояние переключателя приближения мышью.
@end deftypemethod
@deftypemethod wxMathGL @code{bool} GetRotate ()
Возвращает состояние переключателя вращения мышью.
@end deftypemethod


@deftypemethod wxMathGL @code{void} Repaint ()
Перерисовывает (обновляет) элемент управления без вызова функции рисования.
@end deftypemethod
@deftypemethod wxMathGL @code{void} Update ()
Обновляет рисунок путем вызова функции рисования.
@end deftypemethod
@deftypemethod wxMathGL @code{void} Copy ()
Копирует график в буфер обмена.
@end deftypemethod
@comment  @deftypemethod wxMathGL @code{void} copyClickCoor ()
@comment  Копирует координаты щелчка мышью (как текст).
@comment  @end deftypemethod
@deftypemethod wxMathGL @code{void} Print ()
Печатает текущий рисунок.
@end deftypemethod

@comment  @deftypemethod wxMathGL @code{void} Stop ()
@comment  Посылает сигнал остановки рисования.
@comment  @end deftypemethod
@deftypemethod wxMathGL @code{void} Adjust ()
Подгоняет размер картинки под размер окна.
@end deftypemethod
@deftypemethod wxMathGL @code{void} NextSlide ()
Показывает следующий кадр.
@end deftypemethod
@deftypemethod wxMathGL @code{void} PrevSlide ()
Показывает предыдущий кадр.
@end deftypemethod
@deftypemethod wxMathGL @code{void} Animation (@code{bool} st=@code{true})
Запускает анимацию.
@end deftypemethod

@deftypemethod wxMathGL @code{void} SetPer (@code{int} val)
Задает величину перспективы.
@end deftypemethod
@deftypemethod wxMathGL @code{void} SetPhi (@code{int} val)
Задает величину угла Phi.
@end deftypemethod
@deftypemethod wxMathGL @code{void} SetTet (@code{int} val)
Задает величину угла Theta.
@end deftypemethod
@deftypemethod wxMathGL @code{void} SetAlpha (@code{bool} val)
Включает/выключает прозрачность.
@end deftypemethod
@deftypemethod wxMathGL @code{void} SetLight (@code{bool} val)
Включает/выключает освещение.
@end deftypemethod
@comment  @deftypemethod wxMathGL @code{void} SetGrid (@code{bool} val)
@comment  Включает/выключает рисование сетки абсолютных координат на графике.
@comment  @end deftypemethod
@deftypemethod wxMathGL @code{void} SetZoom (@code{bool} val)
Включает/выключает приближение мышью.
@end deftypemethod
@deftypemethod wxMathGL @code{void} SetRotate (@code{bool} val)
Включает/выключает вращение мышью.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ZoomIn ()
Приблиажет график.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ZoomOut ()
Отдаляет график.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ShiftLeft ()
Сдвигает график влево.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ShiftRight ()
Сдвигает график вправо.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ShiftUp  ()
Сдвигает график вверх.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ShiftDown ()
Сдвигает график вниз.
@end deftypemethod
@deftypemethod wxMathGL @code{void} Restore ()
Восстанавливает приближение и поворот графика в значения по умолчанию.
@end deftypemethod
@c @deftypemethod wxMathGL @code{void} reload ()
@c Обновляет данные и перерисовывает график.
@c @end deftypemethod

@deftypemethod wxMathGL @code{void} About ()
Показывает информацию о программе.
@end deftypemethod

@deftypemethod wxMathGL @code{void} ExportPNG (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в PNG файл.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ExportPNGs (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в PNG файл без прозрачности.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ExportJPG (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в JPEG файл.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ExportBPS (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в растровый EPS файл.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ExportEPS (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный EPS файл.
@end deftypemethod
@deftypemethod wxMathGL @code{void} ExportSVG (@code{QString} fname=@code{""})
Сохраняет текущий рисунок в векторный SVG файл.
@end deftypemethod

@external{}

