``Оконные'' классы
******************

nav

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

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

Непосредственно окна можно создать используя один из следующих классов (см. Using MathGL window для примеров).

 -- Конструктор класса mglFLTK: mglFLTK (const char *title="MathGL")
 -- Конструктор класса mglFLTK: mglFLTK (int (*draw)(HMGL gr, void *p), const char *title="MathGL", void *par=NULL, void (*reload)(HMGL gr, void *p)=0)
 -- Конструктор класса mglFLTK: mglFLTK (int (*draw)(mglGraph *gr), const char *title="MathGL")
 -- Конструктор класса mglFLTK: mglFLTK (mglDraw *draw, const char *title="MathGL")
 -- Функция С: HMGL mgl_create_graph_fltk (int (*draw)(HMGL gr, void *p), const char *title, void *par, void (*reload)(HMGL gr, void *p))

     Создает FLTK окно для вывода графика. Параметр DRAW -- указатель (имя) функции рисования. Есть возможность создания нескольких кадров вначале (требует больше памяти) и их быстрая анимации в дальнейшем. В этом случае функция DRAW должна возвращать число кадров или ноль для рисования по запросу. Замечу, что DRAW может быть равна NULL для отображения статической (текущей) картинки. Параметр TITLE задает заголовок окна. Параметр PAR содержит указатель на данные, передаваемые функции рисования DRAW. FLTK окна обеспечивают быстрое рисование и хорошо поддерживают многопоточность.

 -- Метод класса mglWnd: int RunThr ()
 -- Функция С: int mgl_fltk_thr ()
     Запускает цикл обработки сообщений в отдельном потоке. В данный момент работает только для окон FLTK.

 -- Конструктор класса mglQT: mglQT (const char *title="MathGL")
 -- Конструктор класса mglQT: mglQT (int (*draw)(HMGL gr, void *p), const char *title="MathGL", void *par=NULL, void (*reload)(HMGL gr, void *p)=0)
 -- Конструктор класса mglQT: mglQT (int (*draw)(mglGraph *gr), const char *title="MathGL")
 -- Конструктор класса mglQT: mglQT (mglDraw *draw, const char *title="MathGL")
 -- Функция С: HMGL mgl_create_graph_qt (int (*draw)(HMGL gr, void *p), const char *title, void *par, void (*reload)(HMGL gr, void *p))

     Создает Qt окно для вывода графика. Параметр DRAW -- указатель (имя) функции рисования. Есть возможность создания нескольких кадров вначале (требует больше памяти) и их быстрая анимации в дальнейшем. В этом случае функция DRAW должна возвращать число кадров или ноль для рисования по запросу. Замечу, что DRAW может быть равна NULL для отображения статической (текущей) картинки. Параметр TITLE задает заголовок окна. Параметр PAR содержит указатель на данные, передаваемые функции рисования DRAW.

 -- Конструктор класса mglGLUT: mglGLUT (const char *title="MathGL")
 -- Конструктор класса mglGLUT: mglGLUT (int (*draw)(HMGL gr, void *p), const char *title="MathGL", void *par=NULL, void (*reload)(HMGL gr, void *p)=0)
 -- Конструктор класса mglGLUT: mglGLUT (int (*draw)(mglGraph *gr), const char *title="MathGL")
 -- Конструктор класса mglGLUT: mglGLUT (mglDraw *draw, const char *title="MathGL")
 -- Функция С: HMGL mgl_create_graph_glut (int (*draw)(HMGL gr, void *p), const char *title, void *par, void (*reload)(HMGL gr, void *p))

     Создает окно для вывода графика. Параметр DRAW -- указатель (имя) функции рисования. Есть возможность создания нескольких кадров вначале (требует больше памяти) и их быстрая анимации в дальнейшем. В этом случае функция DRAW должна возвращать число кадров или ноль для рисования по запросу. Замечу, что DRAW может быть равна NULL для отображения статической (текущей) картинки. Параметр TITLE задает заголовок окна. Параметр PAR содержит указатель на данные, передаваемые функции рисования DRAW. Параметр KIND может иметь следующие значения: 0 -- использовать окно FLTK, 1 -- использовать окно Qt.

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

     Следует отметить, что цикл обработки сообщений GLUT можно остановить вызовом функции glutLeaveMainLoop().

external

Класс mglWnd
============

nav

Это абстрактный класс производный от класса mglGraph (см. MathGL core). Он определен в #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 class or QMathGL class), используемый для рисования.

external

mglDraw class
=============

nav

This class provide base functionality for callback drawing and running calculation in separate thread. It is defined in #include <mgl2/wnd.h>. You should make inherited class and implement virtual functions if you need it.

 -- Virtual method on mglDraw: int Draw (mglGraph *gr)
     This is callback drawing function, which will be called when any redrawing is required for the window. There is support of a list of plots (frames). So as one can prepare a set of frames at first and redraw it fast later (but it requires more memory). Function should return positive number of frames for the list or zero if it will plot directly.

 -- Virtual method on mglDraw: void Reload ()
     This is callback function, which will be called if user press menu or toolbutton to reload data.

 -- Virtual method on mglDraw: void Click ()
     This is callback function, which will be called if user click mouse.

 -- Virtual method on mglDraw: void Calc ()
     This is callback function, which will be called if user start calculations in separate thread by calling mglDraw::Run() function. It should periodically call mglDraw::Check() function to check if calculations should be paused.

 -- Method on mglDraw: void Run ()
     Runs mglDraw::Calc() function in separate thread. It also initialize mglDraw::thr variable and unlock mglDraw::mutex. Function is present only if FLTK support for widgets was enabled.

 -- Method on mglDraw: void Cancel ()
     Cancels thread with calculations. Function is present only if FLTK support for widgets was enabled.

 -- Method on mglDraw: void Pause ()
     Pauses thread with calculations by locking mglDraw::mutex. You should call mglDraw::Continue() to continue calculations. Function is present only if FLTK support for widgets was enabled.

 -- Method on mglDraw: void Continue ()
     Continues calculations by unlocking mglDraw::mutex. Function is present only if FLTK support for widgets was enabled.

 -- Method on mglDraw: void Continue ()
     Checks if calculations should be paused and pause it. Function is present only if FLTK support for widgets was enabled.

external

Класс Fl_MathGL
===============

nav

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

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

 -- Method on Fl_MathGL: void set_draw (int (*draw)(HMGL gr, void *p))
 -- Method on Fl_MathGL: void set_draw (int (*draw)(mglGraph *gr))
 -- Method on Fl_MathGL: void set_draw (mglDraw *draw)
     Устанавливает функцию рисования как глобальную функцию или как функцию член класса, производного от mglDraw. Поддерживается список графиков (кадров), так что можно вначале их нарисовать (требует довольно много памяти), а потом достаточно быстро отображать. Функция должна возвращать положительное число создаваемых кадров или ноль для непосредственного рисования. Параметр PAR содержит указатель на данные пользователя, передаваемый функции рисования DRAW.

 -- Method on Fl_MathGL: mglDraw *get_class ()
     Указатель на экземпляр класса mglDraw или NULL если отсутствует.

 -- Method on Fl_MathGL: void update ()
     Обновляет (перерисовывает) график.

 -- Method on Fl_MathGL: void set_angle (mreal t, mreal p)
     Задает углы для дополнительного вращения графика.

 -- Method on Fl_MathGL: void set_flag (int f)
     Задает битовые флаги для: 1 - прозрачности, 2 - освещения.

 -- Method on Fl_MathGL: void set_state (bool z, bool r)
     Задает флаги обработки движений мыши: Z=true -- разрешает приближение выделения, R=true разрешает вращение/сдвиг/приближение/перспективу.

 -- Method on Fl_MathGL: void set_zoom (mreal X1, mreal Y1, mreal X2, mreal Y2)
     Задает область приближения.

 -- Method on Fl_MathGL: void get_zoom (mreal *X1, mreal *Y1, mreal *X2, mreal *Y2)
     Возвращает область приближения.

 -- Method on Fl_MathGL: void set_popup (const Fl_Menu_Item *pmenu, Fl_Widget *w, void *v)
     Задает указатель на всплывающее меню.

 -- Method on Fl_MathGL: void set_graph (mglCanvas *gr)
 -- Method on Fl_MathGL: void set_graph (mglGraph *gr)
     Задает экземпляр класс для рисования вместо встроеного. Fl_MathGL автоматически удалит его при удалении виджета и при новом вызове set_graph().

 -- Method on Fl_MathGL: mglGraph * get_graph ()
     Возвращает указатель на объект, строящий графики.

 -- Method on Fl_MathGL: void set_show_warn (bool val)
     Флаг показа окна с сообщениями после выполнения скрипта.

 -- Method on Fl_MathGL: void stop (bool stop=true)
     Запрос на остановку рисования.

 -- Method on Fl_MathGL: void set_handle_key (bool val)
     Вкл/выкл обработку нажатий клавиш (как в mglview, по умолчанию выкл).

 -- Method on Fl_MathGL: int get_last_id ()
     Вернуть id последнего выделенного объекта.

 -- Method on Fl_MathGL: bool running ()
     Проверяет выполняется ли сейчас скрипт или нет.

 -- Widget option of Fl_MathGL: Fl_Valuator * tet_val
     Указатель на внешний элемент управления для изменения угла tet.

 -- Widget option of Fl_MathGL: Fl_Valuator * phi_val
     Указатель на внешний элемент управления для изменения угла phi.

external

Класс QMathGL
=============

nav

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

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

 -- Method on QMathGL: void setDraw (mglDraw *dr)
     Задает функцию рисования из класса производного от mglDraw.

 -- Method on QMathGL: void setDraw (int (*draw)(mglBase *gr, void *p), void *par=NULL)
 -- Method on QMathGL: void setDraw (int (*draw)(mglGraph *gr))
     Задает функцию рисования DRAW. Поддерживается список графиков (кадров), так что можно вначале их нарисовать (требует довольно много памяти), а потом достаточно быстро отображать. Функция должна возвращать положительное число создаваемых кадров или ноль для непосредственного рисования. Параметр PAR содержит указатель на данные пользователя, передаваемый функции рисования DRAW.

 -- Method on QMathGL: void setGraph (mglCanvas *gr)
 -- Method on QMathGL: void setGraph (mglGraph *gr)
     Устанавливает указатель на внешний экземпляр класса для рисования (вместо встроенного). Отмечу, что QMathGL автоматически удалит этот объект при удалении элемента интерфейса или при новом вызове setGraph().

 -- Method on QMathGL: HMGL getGraph ()
     Возвращает указатель на объект, строящий графики.

 -- Method on QMathGL: void setPopup (QMenu *p)
     Задает указатель на всплывающее меню.

 -- Method on QMathGL: void setSize (int w, int h)
     Задает размеры элемента управления и картинки.

 -- Method on QMathGL: double getRatio ()
     Возвращает соотношение сторон рисунка.

 -- Method on QMathGL: int getPer ()
     Возвращает величину перспективы в процентах.

 -- Method on QMathGL: int getPhi ()
     Возвращает величину угла Phi в градусах.

 -- Method on QMathGL: int getTet ()
     Возвращает величину угла Theta в градусах.

 -- Method on QMathGL: bool getAlpha ()
     Возвращает состояние переключателя прозрачности.

 -- Method on QMathGL: bool getLight ()
     Возвращает состояние переключателя освещения.

 -- Method on QMathGL: bool getZoom ()
     Возвращает состояние переключателя приближения мышью.

 -- Method on QMathGL: bool getRotate ()
     Возвращает состояние переключателя вращения мышью.

 -- Slot on QMathGL: void refresh ()
     Перерисовывает (обновляет) элемент управления без вызова функции рисования.

 -- Slot on QMathGL: void update ()
     Обновляет рисунок путем вызова функции рисования.

 -- Slot on QMathGL: void copy ()
     Копирует график в буфер обмена.

 -- Slot on QMathGL: void copyClickCoor ()
     Копирует координаты щелчка мышью (как текст).

 -- Slot on QMathGL: void print ()
     Печатает текущий рисунок.

 -- Slot on QMathGL: void stop ()
     Посылает сигнал остановки рисования.

 -- Slot on QMathGL: void adjust ()
     Подгоняет размер картинки под размер окна.

 -- Slot on QMathGL: void nextSlide ()
     Показывает следующий кадр.

 -- Slot on QMathGL: void prevSlide ()
     Показывает предыдущий кадр.

 -- Slot on QMathGL: void animation (bool st=true)
     Запускает анимацию.

 -- Slot on QMathGL: void setPer (int val)
     Задает величину перспективы.

 -- Slot on QMathGL: void setPhi (int val)
     Задает величину угла Phi.

 -- Slot on QMathGL: void setTet (int val)
     Задает величину угла Theta.

 -- Slot on QMathGL: void setAlpha (bool val)
     Включает/выключает прозрачность.

 -- Slot on QMathGL: void setLight (bool val)
     Включает/выключает освещение.

 -- Slot on QMathGL: void setGrid (bool val)
     Включает/выключает рисование сетки абсолютных координат на графике.

 -- Slot on QMathGL: void setZoom (bool val)
     Включает/выключает приближение мышью.

 -- Slot on QMathGL: void setRotate (bool val)
     Включает/выключает вращение мышью.

 -- Slot on QMathGL: void zoomIn ()
     Приблиажет график.

 -- Slot on QMathGL: void zoomOut ()
     Отдаляет график.

 -- Slot on QMathGL: void shiftLeft ()
     Сдвигает график влево.

 -- Slot on QMathGL: void shiftRight ()
     Сдвигает график вправо.

 -- Slot on QMathGL: void shiftUp ()
     Сдвигает график вверх.

 -- Slot on QMathGL: void shiftDown ()
     Сдвигает график вниз.

 -- Slot on QMathGL: void restore ()
     Восстанавливает приближение и поворот графика в значения по умолчанию.

 -- Slot on QMathGL: void exportPNG (QString fname="")
     Сохраняет текущий рисунок в PNG файл.

 -- Slot on QMathGL: void exportPNGs (QString fname="")
     Сохраняет текущий рисунок в PNG файл без прозрачности.

 -- Slot on QMathGL: void exportJPG (QString fname="")
     Сохраняет текущий рисунок в JPEG файл.

 -- Slot on QMathGL: void exportBPS (QString fname="")
     Сохраняет текущий рисунок в растровый EPS файл.

 -- Slot on QMathGL: void exportEPS (QString fname="")
     Сохраняет текущий рисунок в векторный EPS файл.

 -- Slot on QMathGL: void exportSVG (QString fname="")
     Сохраняет текущий рисунок в векторный SVG файл.

 -- Slot on QMathGL: void exportGIF (QString fname="")
     Сохраняет текущий рисунок в GIF файл.

 -- Slot on QMathGL: void exportTEX (QString fname="")
     Сохраняет текущий рисунок в векторный LaTeX/Tikz файл.

 -- Slot on QMathGL: void exportTGA (QString fname="")
     Сохраняет текущий рисунок в TGA файл.

 -- Slot on QMathGL: void exportXYZ (QString fname="")
     Сохраняет текущий рисунок в векторный XYZ/XYZL/XYZF файл.

 -- Slot on QMathGL: void exportOBJ (QString fname="")
     Сохраняет текущий рисунок в векторный OBJ/MTL файл.

 -- Slot on QMathGL: void exportSTL (QString fname="")
     Сохраняет текущий рисунок в векторный STL файл.

 -- Slot on QMathGL: void exportOFF (QString fname="")
     Сохраняет текущий рисунок в векторный OFF файл.

 -- Slot on QMathGL: void setUsePrimitives (bool use)
     Разрешает использовать список примитивов для кадров. Это позволяет вращать/масштабировать кадры, но требует значительно больше памяти. По умолчанию разрешено (=true).

 -- Slot on QMathGL: void setMGLFont (QString path)
     Восстанавливает (PATH="") или загружает файлы шрифтов.

 -- Slot on QMathGL: void about ()
     Показывает информацию о программе.

 -- Slot on QMathGL: void aboutQt ()
     Показывает информацию о версии Qt.

 -- Signal on QMathGL: void phiChanged (int val)
     Угол Phi изменен.

 -- Signal on QMathGL: void tetChanged (int val)
     Угол Tet изменен.

 -- Signal on QMathGL: void perChanged (int val)
     Перспектива изменена.

 -- Signal on QMathGL: void alphaChanged (bool val)
     Прозрачность изменена.

 -- Signal on QMathGL: void lightChanged (bool val)
     Освещение изменено.

 -- Signal on QMathGL: void gridChanged (bool val)
     Рисование сетки изменено.

 -- Signal on QMathGL: void zoomChanged (bool val)
     Режим приближения мышью изменен.

 -- Signal on QMathGL: void rotateChanged (bool val)
     Режим вращения мышью изменен.

 -- Signal on QMathGL: void mouseClick (mreal x, mreal y, mreal z)
     Был щелчок мышью в точке {x,y,z}.

 -- Signal on QMathGL: void frameChanged (int val)
     Требуется новый кадр для отображения.

 -- Signal on QMathGL: void showWarn (QString warn)
     Есть предупреждения.

 -- Signal on QMathGL: void posChanged (QString pos)
     Положение щелчка мышью изменилось.

 -- Signal on QMathGL: void objChanged (int id)
     Изменился id объекта на графике (из-за щелчка мышью).

 -- Signal on QMathGL: void refreshData ()
     Данные могли измениться (рисование завершено).

 -- QMathGL option of QMathGL: QString appName
     Имя приложения для окон сообщений.

 -- QMathGL option of QMathGL: bool autoResize
     Разрешить изменять размер рисунка (по умолчанию false).

external

external

Класс wxMathGL
==============

nav

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

 -- Method on wxMathGL: void SetDraw (mglDraw *dr)
     Задает функцию рисования из класса производного от mglDraw.

 -- Method on wxMathGL: void SetDraw (int (*draw)(mglBase *gr, void *p), void *par=NULL)
 -- Method on wxMathGL: void SetDraw (int (*draw)(mglGraph *gr))
     Задает функцию рисования DRAW. Поддерживается список графиков (кадров), так что можно вначале их нарисовать (требует довольно много памяти), а потом достаточно быстро отображать. Функция должна возвращать положительное число создаваемых кадров или ноль для непосредственного рисования. Параметр PAR содержит указатель на данные пользователя, передаваемый функции рисования DRAW.

 -- Method on wxMathGL: void SetGraph (mglCanvas *gr)
 -- Method on wxMathGL: void SetGraph (mglGraph *gr)
     Устанавливает указатель на внешний экземпляр класса для рисования (вместо встроенного). Отмечу, что wxMathGL автоматически удалит этот объект при удалении элемента интерфейса или при новом вызове setGraph().

 -- Method on wxMathGL: HMGL GetGraph ()
     Возвращает указатель на объект, строящий графики.

 -- Method on wxMathGL: void SetPopup (QMenu *p)
     Задает указатель на всплывающее меню.

 -- Method on wxMathGL: void SetSize (int w, int h)
     Задает размеры элемента управления и картинки.

 -- Method on wxMathGL: double GetRatio ()
     Возвращает соотношение сторон рисунка.

 -- Method on wxMathGL: int GetPer ()
     Возвращает величину перспективы в процентах.

 -- Method on wxMathGL: int GetPhi ()
     Возвращает величину угла Phi в градусах.

 -- Method on wxMathGL: int GetTet ()
     Возвращает величину угла Theta в градусах.

 -- Method on wxMathGL: bool GetAlpha ()
     Возвращает состояние переключателя прозрачности.

 -- Method on wxMathGL: bool GetLight ()
     Возвращает состояние переключателя освещения.

 -- Method on wxMathGL: bool GetZoom ()
     Возвращает состояние переключателя приближения мышью.

 -- Method on wxMathGL: bool GetRotate ()
     Возвращает состояние переключателя вращения мышью.

 -- Method on wxMathGL: void Repaint ()
     Перерисовывает (обновляет) элемент управления без вызова функции рисования.

 -- Method on wxMathGL: void Update ()
     Обновляет рисунок путем вызова функции рисования.

 -- Method on wxMathGL: void Copy ()
     Копирует график в буфер обмена.

 -- Method on wxMathGL: void Print ()
     Печатает текущий рисунок.

 -- Method on wxMathGL: void Adjust ()
     Подгоняет размер картинки под размер окна.

 -- Method on wxMathGL: void NextSlide ()
     Показывает следующий кадр.

 -- Method on wxMathGL: void PrevSlide ()
     Показывает предыдущий кадр.

 -- Method on wxMathGL: void Animation (bool st=true)
     Запускает анимацию.

 -- Method on wxMathGL: void SetPer (int val)
     Задает величину перспективы.

 -- Method on wxMathGL: void SetPhi (int val)
     Задает величину угла Phi.

 -- Method on wxMathGL: void SetTet (int val)
     Задает величину угла Theta.

 -- Method on wxMathGL: void SetAlpha (bool val)
     Включает/выключает прозрачность.

 -- Method on wxMathGL: void SetLight (bool val)
     Включает/выключает освещение.

 -- Method on wxMathGL: void SetZoom (bool val)
     Включает/выключает приближение мышью.

 -- Method on wxMathGL: void SetRotate (bool val)
     Включает/выключает вращение мышью.

 -- Method on wxMathGL: void ZoomIn ()
     Приблиажет график.

 -- Method on wxMathGL: void ZoomOut ()
     Отдаляет график.

 -- Method on wxMathGL: void ShiftLeft ()
     Сдвигает график влево.

 -- Method on wxMathGL: void ShiftRight ()
     Сдвигает график вправо.

 -- Method on wxMathGL: void ShiftUp ()
     Сдвигает график вверх.

 -- Method on wxMathGL: void ShiftDown ()
     Сдвигает график вниз.

 -- Method on wxMathGL: void Restore ()
     Восстанавливает приближение и поворот графика в значения по умолчанию.

 -- Method on wxMathGL: void About ()
     Показывает информацию о программе.

 -- Method on wxMathGL: void ExportPNG (QString fname="")
     Сохраняет текущий рисунок в PNG файл.

 -- Method on wxMathGL: void ExportPNGs (QString fname="")
     Сохраняет текущий рисунок в PNG файл без прозрачности.

 -- Method on wxMathGL: void ExportJPG (QString fname="")
     Сохраняет текущий рисунок в JPEG файл.

 -- Method on wxMathGL: void ExportBPS (QString fname="")
     Сохраняет текущий рисунок в растровый EPS файл.

 -- Method on wxMathGL: void ExportEPS (QString fname="")
     Сохраняет текущий рисунок в векторный EPS файл.

 -- Method on wxMathGL: void ExportSVG (QString fname="")
     Сохраняет текущий рисунок в векторный SVG файл.

external