File: widget_ru.texi

package info (click to toggle)
mathgl 2.4.2.1-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 32,488 kB
  • sloc: cpp: 81,486; ansic: 3,138; pascal: 1,562; python: 37; makefile: 17; sh: 7
file content (727 lines) | stat: -rw-r--r-- 46,972 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727

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

Есть целый набор ``оконных'' классов для создания окон с графикой MathGL: @code{mglWnd} и @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)}, или экземпляр класса, производного от @ref{mglDraw class}. Этот класс определен в @code{#include <mgl2/wnd.h>} и имеет 2 основных виртуальных метода:
@verbatim
class mglDraw
{
public:
    virtual int Draw(mglGraph *) { return 0; };
    virtual void Reload() {};
};
@end verbatim
Вам следует наследовать свой класс от @code{mglDraw} и определить один или оба метода.

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


@deftypefn {Конструктор класса @code{mglFLTK}} {} mglFLTK (@code{const char *}title=@code{"MathGL"})
@deftypefnx {Конструктор класса @code{mglFLTK}} {} mglFLTK (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{const char *}title=@code{"MathGL"}, @code{void *}par=@code{NULL}, @code{void} (*reload)(@code{HMGL} gr, @code{void *}p)=0)
@deftypefnx {Конструктор класса @code{mglFLTK}} {} mglFLTK (@code{int} (*draw)(@code{mglGraph *}gr), @code{const char *}title=@code{"MathGL"})
@deftypefnx {Конструктор класса @code{mglFLTK}} {} mglFLTK (@code{mglDraw *}draw, @code{const char *}title=@code{"MathGL"})
@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))

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

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


@deftypefn {Конструктор класса @code{mglQT}} {} mglQT (@code{const char *}title=@code{"MathGL"})
@deftypefnx {Конструктор класса @code{mglQT}} {} mglQT (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{const char *}title=@code{"MathGL"}, @code{void *}par=@code{NULL}, @code{void} (*reload)(@code{HMGL} gr, @code{void *}p)=0)
@deftypefnx {Конструктор класса @code{mglQT}} {} mglQT (@code{int} (*draw)(@code{mglGraph *}gr), @code{const char *}title=@code{"MathGL"})
@deftypefnx {Конструктор класса @code{mglQT}} {} mglQT (@code{mglDraw *}draw, @code{const char *}title=@code{"MathGL"})
@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))

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


@deftypefn {Конструктор класса @code{mglGLUT}} {} mglGLUT (@code{const char *}title=@code{"MathGL"})
@deftypefnx {Конструктор класса @code{mglGLUT}} {} mglGLUT (@code{int} (*draw)(@code{HMGL} gr, @code{void *}p), @code{const char *}title=@code{"MathGL"}, @code{void *}par=@code{NULL}, @code{void} (*reload)(@code{HMGL} gr, @code{void *}p)=0)
@deftypefnx {Конструктор класса @code{mglGLUT}} {} mglGLUT (@code{int} (*draw)(@code{mglGraph *}gr), @code{const char *}title=@code{"MathGL"})
@deftypefnx {Конструктор класса @code{mglGLUT}} {} mglGLUT (@code{mglDraw *}draw, @code{const char *}title=@code{"MathGL"})
@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



@menu
* mglWnd class::
* mglDraw class::
* Fl_MathGL class::
* QMathGL class::
* wxMathGL class::
@end menu


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

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

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

@deftypefn {Метод класса @code{mglWnd}} @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{mglWnd}} @code{void} SetDrawFunc (@code{int} (*draw)(@code{mglGraph *}gr))
@deftypefnx {Метод класса @code{mglWnd}} @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{mglWnd}} @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 {Method on @code{mglWnd}} @code{void} SetMutex(@code{pthread_mutex_t *}mutex)
@deftypefnx {C function} @code{void} mgl_wnd_set_mutex(@code{HMGL} gr, @code{pthread_mutex_t *}mutex)
Устанавливает внешний mutex для блокировки/разблокировки внешних вычислений с помощью меню или кнопок окна. Функция вызывается автоматически при использовании @ref{mglDraw class}.
@end deftypefn

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

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

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

@deftypefn {Метод класса @code{mglWnd}} @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{mglWnd}} @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

@deftypefn {Method on @code{mglWnd}} @code{void *} Widget ()
@deftypefnx {C function} @code{void *} mgl_fltk_widget (@code{HMGL} gr)
@deftypefnx {C function} @code{void *} mgl_qt_widget (@code{HMGL} gr)
Возвращает указатель на виджет (@ref{Fl_MathGL class} or @ref{QMathGL class}), используемый для рисования.
@end deftypefn

@c ------------------------------------------------------------------
@external{}
@node mglDraw class, Fl_MathGL class, mglWnd class, Widget classes
@section mglDraw class
@nav{}
@cindex mglDraw

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

@deftypefn {Virtual method on @code{mglDraw}} @code{int} Draw (@code{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. 
@end deftypefn

@deftypefn {Virtual method on @code{mglDraw}} @code{void} Reload ()
This is callback function, which will be called if user press menu or toolbutton to reload data. 
@end deftypefn

@deftypefn {Virtual method on @code{mglDraw}} @code{void} Click ()
This is callback function, which will be called if user click mouse. 
@end deftypefn

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

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

@deftypefn {Method on @code{mglDraw}} @code{void} Cancel ()
Cancels thread with calculations. Function is present only if FLTK support for widgets was enabled.
@end deftypefn

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

@deftypefn {Method on @code{mglDraw}} @code{void} Continue ()
Continues calculations by unlocking @code{mglDraw::mutex}. Function is present only if FLTK support for widgets was enabled.
@end deftypefn

@deftypefn {Method on @code{mglDraw}} @code{void} Continue ()
Checks if calculations should be paused and pause it. Function is present only if FLTK support for widgets was enabled.
@end deftypefn

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

Класс реализует элемент интерфейса FLTK для отображения графики MathGL. Он определен в @code{#include <mgl2/Fl_MathGL.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{mglDraw *}get_class ()
Указатель на экземпляр класса @code{mglDraw} или @code{NULL} если отсутствует.
@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} set_show_warn (@code{bool} val)
Флаг показа окна с сообщениями после выполнения скрипта.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} stop (@code{bool} stop=@code{true})
Запрос на остановку рисования.
@end deftypemethod
@deftypemethod Fl_MathGL @code{void} set_handle_key (@code{bool} val)
Вкл/выкл обработку нажатий клавиш (как в mglview, по умолчанию выкл).
@end deftypemethod
@deftypemethod Fl_MathGL @code{int} get_last_id ()
Вернуть id последнего выделенного объекта.
@end deftypemethod
@deftypemethod Fl_MathGL @code{bool} running ()
Проверяет выполняется ли сейчас скрипт или нет.
@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{}