From ca6fc9139b7d73000a0f89804a324fbff04cd41b Mon Sep 17 00:00:00 2001 From: Dimitrios Eftaxiopoulos Date: Mon, 26 Mar 2012 17:33:47 +0300 Subject: [PATCH] Imported Upstream version 2~rc2+svn383 --- examples/full_test.cpp | 62 ++++++++++++++---------------------- include/mgl/mgl.h | 6 ++-- src/canvas.cpp | 12 +++---- texinfo/core_en.texi | 8 ++--- texinfo/example_en.texi | 68 +++++++++++++++++++++++++++++++++++++++- texinfo/overview_en.texi | 4 +-- texinfo/web_en.texi | 4 +-- texinfo/widget_en.texi | 6 ++-- todo.txt | 5 +-- 9 files changed, 114 insertions(+), 61 deletions(-) diff --git a/examples/full_test.cpp b/examples/full_test.cpp index f9d6481..5fec454 100644 --- a/examples/full_test.cpp +++ b/examples/full_test.cpp @@ -49,45 +49,31 @@ void smgl_combined(mglGraph *gr); void save(mglGraph *gr,const char *name,const char *suf); void test(mglGraph *gr) { - gr->SubPlot(2,2,0,""); gr->Title("Line, Curve, Rhomb, Ellipse"); - gr->Line(mglPoint(-1,-1),mglPoint(-0.5,1),"qAI"); - gr->Curve(mglPoint(-0.6,-1),mglPoint(1,1),mglPoint(0,1),mglPoint(1,1),"rA"); - gr->Rhomb(mglPoint(0,0.4),mglPoint(1,0.9),0.2,"b#"); - gr->Rhomb(mglPoint(0,0),mglPoint(1,0.4),0.2,"cg@"); - gr->Ellipse(mglPoint(0,-0.5),mglPoint(1,-0.1),0.2,"u#"); - gr->Ellipse(mglPoint(0,-1),mglPoint(1,-0.6),0.2,"m@"); - gr->Mark(mglPoint(0,-0.5),"*"); gr->Mark(mglPoint(1,-0.1),"*"); - - gr->Light(true); - gr->SubPlot(2,2,1); gr->Title("Face[xyz]"); gr->Rotate(50,60); gr->Box(); - gr->FaceX(mglPoint(1,0,-1),1,1,"r"); - gr->FaceY(mglPoint(-1,-1,-1),1,1,"g"); - gr->FaceZ(mglPoint(1,-1,-1),-1,1,"b"); - gr->Face(mglPoint(-1,-1,1),mglPoint(-1,1,1),mglPoint(1,-1,0),mglPoint(1,1,1),"m"); - - gr->SubPlot(2,2,3,""); gr->Title("Cone"); - gr->Cone(mglPoint(-0.7,-0.3),mglPoint(-0.7,0.7,0.5),0.2,0.1,"b"); - gr->Puts(mglPoint(-0.7,-0.7),"no edges\n(default)"); - gr->Cone(mglPoint(0,-0.3),mglPoint(0,0.7,0.5),0.2,0.1,"g@"); - gr->Puts(mglPoint(0,-0.7),"with edges\n('\\@' style)"); - gr->Cone(mglPoint(0.7,-0.3),mglPoint(0.7,0.7,0.5),0.2,0,"ry"); - gr->Puts(mglPoint(0.7,-0.7),"'arrow' with\ngradient"); + float a=0.1,b=0.4,c=0.5; + gr->Line(mglPoint(a,1),mglPoint(b,1),"k-A"); gr->Puts(mglPoint(c,1),"Style 'A' or 'A\\_'",":rL"); + gr->Line(mglPoint(a,0.8),mglPoint(b,0.8),"k-V"); gr->Puts(mglPoint(c,0.8),"Style 'V' or 'V\\_'",":rL"); + gr->Line(mglPoint(a,0.6),mglPoint(b,0.6),"k-K"); gr->Puts(mglPoint(c,0.6),"Style 'K' or 'K\\_'",":rL"); + gr->Line(mglPoint(a,0.4),mglPoint(b,0.4),"k-I"); gr->Puts(mglPoint(c,0.4),"Style 'I' or 'I\\_'",":rL"); + gr->Line(mglPoint(a,0.2),mglPoint(b,0.2),"k-D"); gr->Puts(mglPoint(c,0.2),"Style 'D' or 'D\\_'",":rL"); + gr->Line(mglPoint(a,0),mglPoint(b,0),"k-S"); gr->Puts(mglPoint(c,0),"Style 'S' or 'S\\_'",":rL"); + gr->Line(mglPoint(a,-0.2),mglPoint(b,-0.2),"k-O"); gr->Puts(mglPoint(c,-0.2),"Style 'O' or 'O\\_'",":rL"); + gr->Line(mglPoint(a,-0.4),mglPoint(b,-0.4),"k-T"); gr->Puts(mglPoint(c,-0.4),"Style 'T' or 'T\\_'",":rL"); + gr->Line(mglPoint(a,-0.6),mglPoint(b,-0.6),"k-_"); gr->Puts(mglPoint(c,-0.6),"Style '\\_' or none",":rL"); + gr->Line(mglPoint(a,-0.8),mglPoint(b,-0.8),"k-AS"); gr->Puts(mglPoint(c,-0.8),"Style 'AS'",":rL"); + gr->Line(mglPoint(a,-1),mglPoint(b,-1),"k-_A"); gr->Puts(mglPoint(c,-1),"Style '\\_A'",":rL"); - gr->SubPlot(2,2,2,""); gr->Title("Sphere and Drop"); - gr->Alpha(false); - gr->Puts(mglPoint(-0.9,-0.7),"sh=0"); - gr->Drop(mglPoint(-0.9,0),mglPoint(0,1),0.5,"r",0); - gr->Puts(mglPoint(-0.3,-0.7),"sh=0.33"); - gr->Drop(mglPoint(-0.3,0),mglPoint(0,1),0.5,"r",0.33); - gr->Puts(mglPoint(0.3,-0.7),"sh=0.67"); - gr->Drop(mglPoint(0.3,0),mglPoint(0,1),0.5,"r",0.67); - gr->Puts(mglPoint(0.9,-0.7),"sh=1"); - gr->Drop(mglPoint(0.9,0),mglPoint(0,1),0.5,"r",1); - gr->Ball(mglPoint(-0.9,0,1),'k'); - gr->Ball(mglPoint(-0.3,0,1),'k'); - gr->Ball(mglPoint(0.3,0,1),'k'); - gr->Ball(mglPoint(0.9,0,1),'k'); - gr->Line(mglPoint(-0.9,0,1),mglPoint(0.9,0,1),"b"); + a=-1; b=-0.7; c=-0.6; + gr->Line(mglPoint(a,1),mglPoint(b,1),"kAA"); gr->Puts(mglPoint(c,1),"Style 'AA'",":rL"); + gr->Line(mglPoint(a,0.8),mglPoint(b,0.8),"kVV"); gr->Puts(mglPoint(c,0.8),"Style 'VV'",":rL"); + gr->Line(mglPoint(a,0.6),mglPoint(b,0.6),"kKK"); gr->Puts(mglPoint(c,0.6),"Style 'KK'",":rL"); + gr->Line(mglPoint(a,0.4),mglPoint(b,0.4),"kII"); gr->Puts(mglPoint(c,0.4),"Style 'II'",":rL"); + gr->Line(mglPoint(a,0.2),mglPoint(b,0.2),"kDD"); gr->Puts(mglPoint(c,0.2),"Style 'DD'",":rL"); + gr->Line(mglPoint(a,0),mglPoint(b,0),"kSS"); gr->Puts(mglPoint(c,0),"Style 'SS'",":rL"); + gr->Line(mglPoint(a,-0.2),mglPoint(b,-0.2),"kOO"); gr->Puts(mglPoint(c,-0.2),"Style 'OO'",":rL"); + gr->Line(mglPoint(a,-0.4),mglPoint(b,-0.4),"kTT"); gr->Puts(mglPoint(c,-0.4),"Style 'TT'",":rL"); + gr->Line(mglPoint(a,-0.6),mglPoint(b,-0.6),"k-__"); gr->Puts(mglPoint(c,-0.6),"Style '\\_\\_'",":rL"); + gr->Line(mglPoint(a,-0.8),mglPoint(b,-0.8),"k-VA"); gr->Puts(mglPoint(c,-0.8),"Style 'VA'",":rL"); + gr->Line(mglPoint(a,-1),mglPoint(b,-1),"k-AV"); gr->Puts(mglPoint(c,-1),"Style 'AV'",":rL"); return; mglParse par; diff --git a/include/mgl/mgl.h b/include/mgl/mgl.h index a3ffb65..5c89e93 100644 --- a/include/mgl/mgl.h +++ b/include/mgl/mgl.h @@ -303,9 +303,9 @@ public: /// Write the frame in file using OFF format inline void WriteOFF(const char *fname,const char *descr="", bool colored=false) { mgl_write_off(gr, fname, descr,colored); } - /// Write the frame in file using X3D format - inline void WriteX3D(const char *fname,const char *descr="") - { mgl_write_x3d(gr, fname, descr); } +// /// Write the frame in file using X3D format +// inline void WriteX3D(const char *fname,const char *descr="") +// { mgl_write_x3d(gr, fname, descr); } /// Write the frame in file using IDTF format inline void WriteIDTF(const char *fname,const char *descr="") { mgl_write_idtf(gr, fname, descr); } diff --git a/src/canvas.cpp b/src/canvas.cpp index 2f48772..1aaf876 100644 --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -618,26 +618,26 @@ void mglCanvas::arrow_plot(long n1, long n2,char st) q3.xx=q3.x=p1.x+lx; q3.yy=q3.y=p1.y+ly; k3=Pnt.size(); MGL_PUSH(Pnt,q3,mutexPnt); trig_plot(k1,k2,k3); break; case 'A': - q1.xx=q1.x=p1.x; q1.yy=q1.y=p1.y; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); +// q1.xx=q1.x=p1.x; q1.yy=q1.y=p1.y; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); q2.xx=q2.x=p1.x-kx-2*lx; q2.yy=q2.y=p1.y-ky-2*ly; k2=Pnt.size(); MGL_PUSH(Pnt,q2,mutexPnt); q3.xx=q3.x=p1.x-1.5*lx; q3.yy=q3.y=p1.y-1.5*ly; k3=Pnt.size(); MGL_PUSH(Pnt,q3,mutexPnt); q4.xx=q4.x=p1.x+kx-2*lx; q4.yy=q4.y=p1.y+ky-2*ly; k4=Pnt.size(); MGL_PUSH(Pnt,q4,mutexPnt); - quad_plot(k1,k2,k4,k3); break; + trig_plot(n1,k2,k3); trig_plot(n1,k4,k3); break; case 'K': - q1.xx=q1.x=p1.x; q1.yy=q1.y=p1.y; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); +// q1.xx=q1.x=p1.x; q1.yy=q1.y=p1.y; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); q2.xx=q2.x=p1.x-kx-2*lx; q2.yy=q2.y=p1.y-ky-2*ly; k2=Pnt.size(); MGL_PUSH(Pnt,q2,mutexPnt); q3.xx=q3.x=p1.x-1.5*lx; q3.yy=q3.y=p1.y-1.5*ly; k3=Pnt.size(); MGL_PUSH(Pnt,q3,mutexPnt); q4.xx=q4.x=p1.x+kx-2*lx; q4.yy=q4.y=p1.y+ky-2*ly; k4=Pnt.size(); MGL_PUSH(Pnt,q4,mutexPnt); - quad_plot(k1,k2,k4,k3); + trig_plot(n1,k2,k3); trig_plot(n1,k4,k3); q1.xx=q1.x=p1.x+kx; q1.yy=q1.y=p1.y+ky; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); q2.xx=q2.x=p1.x-kx; q2.yy=q2.y=p1.y-ky; k2=Pnt.size(); MGL_PUSH(Pnt,q2,mutexPnt); line_plot(k1,k2); break; case 'V': - q1.xx=q1.x=p1.x; q1.yy=q1.y=p1.y; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); +// q1.xx=q1.x=p1.x; q1.yy=q1.y=p1.y; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); q2.xx=q2.x=p1.x-kx+2*lx; q2.yy=q2.y=p1.y-ky+2*ly; k2=Pnt.size(); MGL_PUSH(Pnt,q2,mutexPnt); q3.xx=q3.x=p1.x+1.5*lx; q3.yy=q3.y=p1.y+1.5*ly; k3=Pnt.size(); MGL_PUSH(Pnt,q3,mutexPnt); q4.xx=q4.x=p1.x+kx+2*lx; q4.yy=q4.y=p1.y+ky+2*ly; k4=Pnt.size(); MGL_PUSH(Pnt,q4,mutexPnt); - quad_plot(k1,k2,k4,k3); break; + trig_plot(n1,k2,k3); trig_plot(n1,k4,k3); break; case 'O': { q1.xx=q1.x=p1.x; q1.yy=q1.y=p1.y; k1=Pnt.size(); MGL_PUSH(Pnt,q1,mutexPnt); diff --git a/texinfo/core_en.texi b/texinfo/core_en.texi index daa01e2..099eba0 100644 --- a/texinfo/core_en.texi +++ b/texinfo/core_en.texi @@ -1004,10 +1004,10 @@ Exports current frame to STL file using vector representation (see @url{http://e Exports current frame to OFF file using vector representation (see @url{http://people.sc.fsu.edu/~jburkardt/data/off/off.html, OFF format} for details). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter @var{fname} specifies the file name, @var{descr} adds description to file (default is file name). @end deftypefn -@deftypefn {Method on @code{mglGraph}} @code{void} WriteX3D (@code{const char *}fname, @code{const char *}descr=@code{""}) -@deftypefnx {C function} @code{void} mgl_write_x3d (@code{HMGL} gr, @code{const char *}fname, @code{const char *}descr) -Exports current frame to OBJ/MTL file using vector representation (see @url{http://en.wikipedia.org/wiki/X3d, X3D format} for details). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter @var{fname} specifies the file name, @var{descr} adds description to file (default is file name). -@end deftypefn +@c @deftypefn {Method on @code{mglGraph}} @code{void} WriteX3D (@code{const char *}fname, @code{const char *}descr=@code{""}) +@c @deftypefnx {C function} @code{void} mgl_write_x3d (@code{HMGL} gr, @code{const char *}fname, @code{const char *}descr) +@c Exports current frame to OBJ/MTL file using vector representation (see @url{http://en.wikipedia.org/wiki/X3d, X3D format} for details). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter @var{fname} specifies the file name, @var{descr} adds description to file (default is file name). +@c @end deftypefn @deftypefn {Method on @code{mglGraph}} @code{void} WriteIDTF (@code{const char *}fname, @code{const char *}descr=@code{""}) diff --git a/texinfo/example_en.texi b/texinfo/example_en.texi index adb8704..7a29778 100644 --- a/texinfo/example_en.texi +++ b/texinfo/example_en.texi @@ -3,6 +3,52 @@ This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on @ref{Hints} section. Also I recommend you to look at @ref{General concepts} and @ref{FAQ}. +Note, that MathGL v.2.* have only 2 end-user interfaces: one for C/Fortran and similar languages which don't support classes, another one for C++/Python/Octave and similar languages which support classes. So, most of samples placed in this chapter can be run as is (after minor changes due to different syntaxes for different languages). For example, the C++ code +@verbatim +#include +int main() +{ + mglGraph gr; + gr.FPlot("sin(pi*x)"); + gr.WriteFrame("test.png"); +} +@end verbatim +in Python will be as +@verbatim +from mathgl import * +gr = mglGraph(); +gr.FPlot("sin(pi*x)"); +gr.WriteFrame("test.png"); +@end verbatim +in Octave will be as (you need first install MathGL package by command @code{octave:1> pkg install /usr/share/mathgl/octave/mathgl.tar.gz} from @code{sudo octave}) +@verbatim +gr = mglGraph(); +gr.FPlot("sin(pi*x)"); +gr.WriteFrame("test.png"); +@end verbatim +in C will be as +@verbatim +#include +int main() +{ + HMGL gr = mgl_create_graph(600,400); + mgl_fplot(gr,"sin(pi*x)","",""); + mgl_write_frame(gr,"test.png",""); + mgl_delete_graph(gr); +} +@end verbatim +in Fortran will be as +@verbatim +integer gr, mgl_create_graph +gr = mgl_create_graph(600,400); +call mgl_fplot(gr,'sin(pi*x)','',''); +call mgl_write_frame(gr,'test.png',''); +call mgl_delete_graph(gr); +@end verbatim +and so on. + + + @menu * Basic usage:: * Advanced usage:: @@ -238,8 +284,28 @@ int main(int argc,char **argv) } @end verbatim +Previous sample can be run in C++ only since it use C++ class mglDraw. However similar idea can be used even in Fortran or SWIG-based (Python/Octave/...) if one use FLTK window. Such limitation come from the Qt requirement to be run in the primary thread only. The sample code will be: +@verbatim +int main(int argc,char **argv) +{ + mglWindow gr("test"); // create window + gr.RunThr(); // run event loop in separate thread + for(int i=0;i<10;i++) // do calculation + { + sleep(1); // which can be very long + pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1); + gr.Clf(); // make new drawing + gr.Line(mglPoint(),pnt,"Ar2"); + char str[10] = "i=0"; str[3] = '0'+i; + gr.Puts(mglPoint(),""); + gr.Update(); // update window when you need it + } + return 0; // finish calculations and close the window +} +@end verbatim + -Pictures with animation can be saved in file(s) as well. You can: export in animated GIF, or save each frame in separate file (usually JPEG) and convert these files into the movie (for example, by help of ImageMagic). Let me show both methods. +Pictures with @strong{animation can be saved in file(s)} as well. You can: export in animated GIF, or save each frame in separate file (usually JPEG) and convert these files into the movie (for example, by help of ImageMagic). Let me show both methods. The simplest methods is making animated GIF. There are 3 steps: (1) open GIF file by @code{StartGIF()} function; (2) create the frames by calling @code{NewFrame()} before and @code{EndFrame()} after plotting; (3) close GIF by @code{CloseGIF()} function. So the simplest code for ``running'' sinusoid will look like this: @verbatim diff --git a/texinfo/overview_en.texi b/texinfo/overview_en.texi index b4dec57..4d5b7cb 100644 --- a/texinfo/overview_en.texi +++ b/texinfo/overview_en.texi @@ -53,7 +53,7 @@ and so on. For details see @pxref{MathGL core}. In fact, I created the functions for drawing of all the types of scientific plots that I know. The list of plots is growing; if you need some special type of a plot then please email me @email{mathgl.abalakin@@gmail.com, e-mail} and it will appear in the new version. -I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap PNG, JPEG, TGA, BMP format, or in vector EPS, SVG or TeX format, or in 3D formats OBJ, OFF, STL or X3D, or in IDTF format which can be converted into U3D. +I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap PNG, JPEG, TGA, BMP format, or in vector EPS, SVG or TeX format, or in 3D formats OBJ, OFF, STL, or in IDTF format which can be converted into U3D. All texts are drawn by vector fonts, which allows for high scalability and portability. Texts may contain commands for: some of the TeX-like symbols, changing index (upper or lower indexes) and the style of font inside the text string (@pxref{Font styles}). Texts of ticks are rotated with axis rotation. It is possible to create a legend of plot and put text in an arbitrary position on the plot. Arbitrary text encoding (by the help of function @code{setlocale()}) and UTF-16 encoding are supported. @@ -153,7 +153,7 @@ New kinds of plots (Tape(), Label(), Cones(), ContV()). Extend existing plots. N @item Improve MGL scripts. Add 'ask' command and allow string concatenation from different lines. @item -Export to LaTeX and to 3D formats (OBJ, OFF, STL, X3D). +Export to LaTeX and to 3D formats (OBJ, OFF, STL). @item Add pipes support in utilities (@code{mglconv, mglview}). @end itemize diff --git a/texinfo/web_en.texi b/texinfo/web_en.texi index 4329747..65c0915 100644 --- a/texinfo/web_en.texi +++ b/texinfo/web_en.texi @@ -176,7 +176,7 @@ New kinds of plots (Tape(), Label(), Cones(), ContV()). Extend existing plots. N @item Improve MGL scripts. Add 'ask' command and allow string concatenation from different lines. @item -Export to LaTeX and to 3D formats (OBJ, OFF, STL, X3D). +Export to LaTeX and to 3D formats (OBJ, OFF, STL). @item Add pipes support in utilities (@code{mglconv, mglview}). @end itemize @@ -239,7 +239,7 @@ and so on. See also @ref{Extra samples}. In fact, I created the functions for drawing of all the types of scientific plots that I know. The list of plots is growing; if you need some special type of a plot then please email me @email{mathgl.abalakin@@gmail.com, e-mail} and it will appear in the new version. -I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap PNG, JPEG, TGA, BMP format, or in vector EPS, SVG or TeX format, or in 3D formats OBJ, OFF, STL or X3D, or in IDTF format which can be converted into U3D. +I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap PNG, JPEG, TGA, BMP format, or in vector EPS, SVG or TeX format, or in 3D formats OBJ, OFF, STL or in IDTF format which can be converted into U3D. All texts are drawn by vector fonts, which allows for high scalability and portability. Texts may contain commands for: some of the TeX-like symbols, changing index (upper or lower indexes) and the style of font inside the text string. Texts of ticks are rotated with axis rotation. It is possible to create a legend of plot and put text in an arbitrary position on the plot. Arbitrary text encoding (by the help of function @code{setlocale()}) and UTF-16 encoding are supported. diff --git a/texinfo/widget_en.texi b/texinfo/widget_en.texi index 097d872..466dc55 100644 --- a/texinfo/widget_en.texi +++ b/texinfo/widget_en.texi @@ -364,9 +364,9 @@ Export current picture to STL file. @deftypefn {Slot on @code{QMathGL}} @code{void} exportOFF (@code{QString} fname=@code{""}) Export current picture to OFF file. @end deftypefn -@deftypefn {Slot on @code{QMathGL}} @code{void} exportX3D (@code{QString} fname=@code{""}) -Export current picture to X3D file. -@end deftypefn +@c @deftypefn {Slot on @code{QMathGL}} @code{void} exportX3D (@code{QString} fname=@code{""}) +@c Export current picture to X3D file. +@c @end deftypefn @deftypefn {Slot on @code{QMathGL}} @code{void} exportIDTF (@code{QString} fname=@code{""}) Export current picture to IDTF file. diff --git a/todo.txt b/todo.txt index b82787b..5551f9a 100644 --- a/todo.txt +++ b/todo.txt @@ -5,8 +5,7 @@ Device 0 (VID=0502 and PID=337d) is UNKNOWN. 1. Add sample for window in python/octave (like pthread) -- Docs 2. Add help about cmake into the "Installation and using" -- after build system will be ready -3. Export to X3D -4. Check RunThr() +4. Check RunThr() in python ============= FOR V.2.1 ======== @@ -34,6 +33,8 @@ Device 0 (VID=0502 and PID=337d) is UNKNOWN. 20. Add mglDataC for complex data -- main diff is reading/saving data 21. MGL testing system ??? +22. Export to X3D +23. Try libtcc (TinyCC) as alternative to MGL -- in mgllab??? ============= UDAV ============= -- 2.30.2