From f4f4a0b9b1a47039bf0609a6e91ebbd5a18972d8 Mon Sep 17 00:00:00 2001 From: Dimitrios Eftaxiopoulos Date: Mon, 24 Mar 2014 00:56:15 +0200 Subject: [PATCH] Imported Upstream version 2.2.2.1 --- CMakeLists.txt | 10 ++++++---- ChangeLog.txt | 8 ++++++++ clean-svn | 3 --- cmake-qt4.txt | 4 ++++ cmake-qt5.txt | 13 ++++++++----- examples/full_test.cpp | 22 ++++++++++++++++++++++ examples/samples.cpp | 2 +- examples/wx_example.cpp | 6 +++--- include/mgl2/addon.h | 2 ++ include/mgl2/define.h | 25 +++++++++++++++++++++---- include/mgl2/glut.h | 2 +- json/CMakeLists.txt | 4 ++-- src/addon.cpp | 6 ++++-- src/base.cpp | 24 ++++++++++++++++++++---- src/complex.cpp | 8 ++++---- src/complex_io.cpp | 2 +- src/eval.cpp | 2 +- src/exec.cpp | 12 ++++++------ src/font.cpp | 4 ++-- src/interp.hpp | 4 ++-- src/s_hull/s_hull_pro.cpp | 6 +++--- texinfo/core_en.texi | 12 +++++++----- texinfo/core_ru.texi | 12 +++++++----- texinfo/web_en.texi | 12 ++++++++++++ texinfo/web_ru.texi | 13 +++++++++++++ todo.txt | 3 ++- udav/CMakeLists.txt | 2 +- utils/CMakeLists.txt | 2 +- utils/mglcgi.cpp | 2 +- widgets/qt5/CMakeLists.txt | 8 ++++---- widgets/wx.cpp | 10 +++++----- 31 files changed, 174 insertions(+), 71 deletions(-) delete mode 100755 clean-svn diff --git a/CMakeLists.txt b/CMakeLists.txt index f279dce..4ae50a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,6 +95,12 @@ CMAKE_DEPENDENT_OPTION(enable-wx "Enable wxWidget widget" OFF "NOT enable-all-wi CMAKE_DEPENDENT_OPTION(enable-qt4 "Enable Qt4 widget" OFF "NOT enable-all-widgets" ON) CMAKE_DEPENDENT_OPTION(enable-qt5 "Enable Qt5 widget" OFF "NOT enable-all-widgets" ON) CMAKE_DEPENDENT_OPTION(enable-qt5asqt "Set Qt5 as default libmgl-qt" ON "enable-qt5" OFF) + +if(enable-qt4 OR enable-qt5) +set(enable-qt ON) +endif(enable-qt4 OR enable-qt5) + +CMAKE_DEPENDENT_OPTION(enable-json-sample "Enable JSON sample" ON "enable-qt" OFF) MGL_DEPENDENT_OPTION(enable-python "Enable python interface" OFF "NOT enable-lgpl" ON "NOT enable-all-swig" ON) MGL_DEPENDENT_OPTION(enable-lua "Enable Lua (v.5.1) interface" OFF "NOT enable-lgpl" ON "NOT enable-all-swig" ON) MGL_DEPENDENT_OPTION(enable-octave "Enable octave interface" OFF "NOT enable-lgpl" ON "NOT enable-all-swig" ON) @@ -104,10 +110,6 @@ include_directories( ${MathGL_SOURCE_DIR}/include ${MathGL_BINARY_DIR}/include) set(MGL_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/include/mgl2") set(MGL_CGI_PATH "${CMAKE_INSTALL_PREFIX}/share/mathgl" CACHE STRING "Set CGI install directory") -if(enable-qt4 OR enable-qt5) -set(enable-qt ON) -endif(enable-qt4 OR enable-qt5) - if(NOT WIN32) # set(MGL_CGI_PATH "${CMAKE_INSTALL_PREFIX}/share/mathgl") set(MGL_DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/mathgl") diff --git a/ChangeLog.txt b/ChangeLog.txt index 0cd0084..fd83c6e 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,11 @@ +2.2.2.1 Released 19 March 2014 + +* Compatibility changes for MS VisualStudio 2010 and early. +* Function SetRange(v1,v2) ignore NAN values now. +* Add enable-json-sample for building json-samples on demand only. +* Update docs. + + 2.2.2 Released 10 March 2014 * Add mgl_region_3d() to draw region (or ribbon) between 2 curves. Correspondingly extend mglGraph::Region() function and MGL command 'region'. diff --git a/clean-svn b/clean-svn deleted file mode 100755 index f0ba47a..0000000 --- a/clean-svn +++ /dev/null @@ -1,3 +0,0 @@ -find . -name '.svn' -print0 | xargs -0 rm -rf -find . -name '*~' -print0 | xargs -0 rm -f -rm ./clean-svn diff --git a/cmake-qt4.txt b/cmake-qt4.txt index 12cf077..462e1f8 100644 --- a/cmake-qt4.txt +++ b/cmake-qt4.txt @@ -1,5 +1,9 @@ set(MGL_HAVE_QT4 1) +if(enable-json-sample) FIND_PACKAGE(Qt4 4.8 REQUIRED QtCore QtGui QtNetwork QtWebKit) +else(enable-json-sample) +FIND_PACKAGE(Qt4 4.8 REQUIRED QtCore QtGui) +endif(enable-json-sample) if(NOT QT4_FOUND) message(SEND_ERROR "Couldn't find Qt4 library.") endif(NOT QT4_FOUND) diff --git a/cmake-qt5.txt b/cmake-qt5.txt index b4cfbdf..49caf21 100644 --- a/cmake-qt5.txt +++ b/cmake-qt5.txt @@ -2,8 +2,6 @@ set(MGL_HAVE_QT5 1) find_package(Qt5Core REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5Gui REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5WebKit REQUIRED) find_package(Qt5PrintSupport REQUIRED) if(NOT Qt5Core_FOUND) message(SEND_ERROR "Couldn't find Qt5 Core library.") @@ -11,13 +9,18 @@ endif(NOT Qt5Core_FOUND) if(NOT Qt5Gui_FOUND) message(SEND_ERROR "Couldn't find Qt5 Gui library.") endif(NOT Qt5Gui_FOUND) +if(NOT Qt5PrintSupport_FOUND) + message(SEND_ERROR "Couldn't find Qt5 PrintSupport library.") +endif(NOT Qt5PrintSupport_FOUND) +if(enable-json-sample) +find_package(Qt5Network REQUIRED) +find_package(Qt5WebKit REQUIRED) if(NOT Qt5Network_FOUND) message(SEND_ERROR "Couldn't find Qt5 Network library.") endif(NOT Qt5Network_FOUND) if(NOT Qt5WebKit_FOUND) message(SEND_ERROR "Couldn't find Qt5 WebKit library.") endif(NOT Qt5WebKit_FOUND) -if(NOT Qt5PrintSupport_FOUND) - message(SEND_ERROR "Couldn't find Qt5 PrintSupport library.") -endif(NOT Qt5PrintSupport_FOUND) +endif(enable-json-sample) + set(CMAKE_INCLUDE_CURRENT_DIR ON) diff --git a/examples/full_test.cpp b/examples/full_test.cpp index 3d34d84..594a9dd 100644 --- a/examples/full_test.cpp +++ b/examples/full_test.cpp @@ -69,6 +69,28 @@ void smgl_surf(mglGraph *gr); #include void test(mglGraph *gr) { + union {unsigned long b;double d;float f;} t; t.b=0; + t.d = NAN; printf("NANd: %g --> %lx\t",t.d,t.b); t.b=0; + t.f = NAN; printf("NANf: %g --> %lx\n",t.f,t.b); t.b=0; + + t.d = INFINITY; printf("INFd: %g --> %lx\t",t.d,t.b); t.b=0; + t.f = INFINITY; printf("INFf: %g --> %lx\n",t.f,t.b); t.b=0; + +const unsigned long mgl_nan[2] = {0x7fffffffffffffff, 0x7fffffff}; +#define NANd (*(double*)mgl_nan) +#define NANf (*(float*)(mgl_nan+1)) + t.d = NANd; printf("NANd: %g --> %lx\t",t.d,t.b); t.b=0; + t.f = NANf; printf("NANf: %g --> %lx\n",t.f,t.b); t.b=0; + + +const unsigned long mgl_inf[2] = {0x7ff0000000000000, 0x7f800000}; +#define INFd (*(double*)mgl_inf) +#define INFf (*(float*)(mgl_inf+1)) + t.d = INFd; printf("INFd: %g --> %lx\t",t.d,t.b); t.b=0; + t.f = INFf; printf("INFf: %g --> %lx\n",t.f,t.b); t.b=0; + + return; + mglData y(50); y.Modify("sin(10*x) + 10"); gr->SetRange('y', y); diff --git a/examples/samples.cpp b/examples/samples.cpp index 7f30f30..e3f4048 100644 --- a/examples/samples.cpp +++ b/examples/samples.cpp @@ -2755,5 +2755,5 @@ mglSample samp[] = { {"vect", smgl_vect, mmgl_vect}, {"vecta", smgl_vecta, mmgl_vecta}, {"venn", smgl_venn, mmgl_venn}, -{"", NULL}}; +{"", NULL, NULL}}; //----------------------------------------------------------------------------- diff --git a/examples/wx_example.cpp b/examples/wx_example.cpp index d334202..2c064ff 100644 --- a/examples/wx_example.cpp +++ b/examples/wx_example.cpp @@ -40,15 +40,15 @@ public: ~testFrame() {} private: enum { idMenuQuit = 1000 }; - void OnClose(wxCloseEvent& event) { Destroy(); } - void OnQuit(wxCommandEvent& event) { Destroy(); } + void OnClose(wxCloseEvent& ) { Destroy(); } + void OnQuit(wxCommandEvent& ) { Destroy(); } wxScrolledWindow *scroll; wxMathGL *mgl; DECLARE_EVENT_TABLE() }; //----------------------------------------------------------------------------- -IMPLEMENT_APP(testApp); +IMPLEMENT_APP(testApp) //----------------------------------------------------------------------------- bool testApp::OnInit() { diff --git a/include/mgl2/addon.h b/include/mgl2/addon.h index 8423ca0..aeed679 100644 --- a/include/mgl2/addon.h +++ b/include/mgl2/addon.h @@ -25,8 +25,10 @@ //----------------------------------------------------------------------------- /// Explicit scheme for 1 step of axial diffraction void MGL_EXPORT mgl_difr_axial(dual *a,int n,int step,dual q,int Border,dual *tmp,int kk, double di); +void MGL_EXPORT mgl_difr_axial_old(dual *a,int n,int step,dual q,int Border,dual *tmp1,dual *tmp2,int kk, double di); // restore for backward compatibility /// Explicit scheme for 1 step of plane diffraction void MGL_EXPORT mgl_difr_grid(dual *a,int n,int step,dual q,int Border,dual *tmp,int kk); +void MGL_EXPORT mgl_difr_grid_old(dual *a,int n,int step,dual q,int Border,dual *tmp1,dual *tmp2,int kk); // restore for backward compatibility //----------------------------------------------------------------------------- extern "C" { #endif diff --git a/include/mgl2/define.h b/include/mgl2/define.h index c9bd1bb..554490f 100644 --- a/include/mgl2/define.h +++ b/include/mgl2/define.h @@ -95,15 +95,32 @@ typedef unsigned long uintptr_t; #include #include -const unsigned long mgl_nan[2] = {0xffffffff, 0x7fffffff}; -#define NANd (*(double*)mgl_nan) -#define NANf (*(float*)&(mgl_nan[1])) +#ifdef WIN32 +const unsigned long long mgl_nan[2] = {0x7fffffffffffffff, 0x7fffffff}; +const unsigned long long mgl_inf[2] = {0x7ff0000000000000, 0x7f800000}; +#else +const unsigned long mgl_nan[2] = {0x7fffffffffffffff, 0x7fffffff}; +const unsigned long mgl_inf[2] = {0x7ff0000000000000, 0x7f800000}; +#endif + +#define NANd (*(double*)mgl_nan) +#define NANf (*(float*)(mgl_nan+1)) +#define INFd (*(double*)mgl_inf) +#define INFf (*(float*)(mgl_inf+1)) #if !defined(NAN) #if MGL_USE_DOUBLE #define NAN NANd #else -#define NAN NANd +#define NAN NANf +#endif +#endif + +#if !defined(INFINITY) +#if MGL_USE_DOUBLE +#define INFINITY INFd +#else +#define INFINITY INFf #endif #endif diff --git a/include/mgl2/glut.h b/include/mgl2/glut.h index 6d6f295..9a5c539 100644 --- a/include/mgl2/glut.h +++ b/include/mgl2/glut.h @@ -75,7 +75,7 @@ public: { mgl_glut_prev_frame(gr); } inline void Animation() ///< Run slideshow (animation) of frames { mgl_glut_animation(gr); } - inline int Run() {}; ///< Run main loop for event handling (placed for similarity to mglWnd) + inline int Run() {return 0;}; ///< Run main loop for event handling (placed for similarity to mglWnd) }; //----------------------------------------------------------------------------- #endif diff --git a/json/CMakeLists.txt b/json/CMakeLists.txt index ab6d57f..e45d923 100644 --- a/json/CMakeLists.txt +++ b/json/CMakeLists.txt @@ -1,4 +1,4 @@ -if(enable-qt) +if(enable-json-sample) set(json_src Backend.cpp MainWindow.cpp) set(json_moc_hdr Backend.hpp MainWindow.hpp) @@ -22,4 +22,4 @@ else(enable-qt5) target_link_libraries(MglForJsTestBench mgl-qt ${QT_LIBRARIES}) endif(enable-qt5) -endif(enable-qt) +endif(enable-json-sample) diff --git a/src/addon.cpp b/src/addon.cpp index c30ccb4..ef6f932 100644 --- a/src/addon.cpp +++ b/src/addon.cpp @@ -165,9 +165,10 @@ MGL_EXPORT FILE *mgl_next_data(const char *fname,int p) } //----------------------------------------------------------------------------- void MGL_EXPORT mgl_difr_grid(dual *a,int n,int step,dual q,int Border,dual *tmp,int kk) +{ mgl_difr_grid_old(a,n,step,q,Border,tmp,tmp+n,kk); } +void MGL_EXPORT mgl_difr_grid_old(dual *a,int n,int step,dual q,int Border,dual *b, dual *d,int kk) { const dual adt = dual(0.,1.)*q; - dual *b = tmp, *d = tmp+n; if(step==1) memcpy(b,a,n*sizeof(dual)); else for(long i=0;i0;k--) // 3 iterations @@ -207,11 +208,12 @@ void MGL_EXPORT mgl_difr_grid(dual *a,int n,int step,dual q,int Border,dual *tmp } //----------------------------------------------------------------------------- void MGL_EXPORT mgl_difr_axial(dual *a,int n,int step,dual q,int Border,dual *tmp,int kk, double di) +{ mgl_difr_axial_old(a,n,step,q,Border,tmp,tmp+n,kk,di); } +void MGL_EXPORT mgl_difr_axial_old(dual *a,int n,int step,dual q,int Border,dual *b,dual *d,int kk, double di) { int ii = di<0 ? -int(floor(di)) : 0; register mreal ff= di==floor(di) ? 4. : 2.; const dual adt = dual(0.,1.)*q; - dual *b = tmp, *d = tmp+n; if(step==1) memcpy(b,a,n*sizeof(dual)); else for(long i=0;i0;k--) // kk iterations diff --git a/src/base.cpp b/src/base.cpp index 6e9660e..0686552 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -531,7 +531,11 @@ void mglBase::CRange(HCDT a,bool add, mreal fact) void mglBase::CRange(mreal v1,mreal v2,bool add) { if(v1==v2 && !add) return; - if(!add) { Min.c = v1; Max.c = v2; } + if(!add) + { + if(v1==v1) Min.c = v1; + if(v2==v2) Max.c = v2; + } else if(Min.cv1) Min.c=v1; @@ -562,7 +566,11 @@ void mglBase::XRange(HCDT a,bool add,mreal fact) void mglBase::XRange(mreal v1,mreal v2,bool add) { if(v1==v2 && !add) return; - if(!add) { Min.x = v1; Max.x = v2; } + if(!add) + { + if(v1==v1) Min.x = v1; + if(v2==v2) Max.x = v2; + } else if(Min.xv1) Min.x=v1; @@ -593,7 +601,11 @@ void mglBase::YRange(HCDT a,bool add,mreal fact) void mglBase::YRange(mreal v1,mreal v2,bool add) { if(v1==v2 && !add) return; - if(!add) { Min.y = v1; Max.y = v2; } + if(!add) + { + if(v1==v1) Min.y = v1; + if(v2==v2) Max.y = v2; + } else if(Min.yv1) Min.y=v1; @@ -625,7 +637,11 @@ void mglBase::ZRange(HCDT a,bool add,mreal fact) void mglBase::ZRange(mreal v1,mreal v2,bool add) { if(v1==v2 && !add) return; - if(!add) { Min.z = v1; Max.z = v2; } + if(!add) + { + if(v1==v1) Min.z = v1; + if(v2==v2) Max.z = v2; + } else if(Min.zv1) Min.z=v1; diff --git a/src/complex.cpp b/src/complex.cpp index bc86319..8b43c3c 100644 --- a/src/complex.cpp +++ b/src/complex.cpp @@ -611,7 +611,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir) for(long i=0;i1) @@ -620,7 +620,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir) for(long i=0;i1) @@ -629,7 +629,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir) for(long j=0;jnx,ny=d->ny,nz=d->nz,nn=nx*ny*nz,ll=strlen(how); + long nx=d->nx,ny=d->ny,nz=d->nz,ll=strlen(how); long p[4]={0,0,(mglchr(how,'a')||mglchr(how,'r'))?1:0,0}; dual qq=q; for(long i=0;i='0' && how[i]<='9') p[3] = how[i]-'0'; diff --git a/src/complex_io.cpp b/src/complex_io.cpp index 6591c36..cc214b8 100644 --- a/src/complex_io.cpp +++ b/src/complex_io.cpp @@ -459,7 +459,7 @@ void MGL_EXPORT mgl_datac_extend(HADT d, long n1, long n2) mx = -n1; my = n2<0 ? -n2 : nx; mz = n2<0 ? nx : ny; if(n2>0 && ny==1) mz = n2; b = new dual[mx*my*mz]; - register dual v; + dual v; if(n2<0) #pragma omp parallel for collapse(2) for(long j=0;jSelf()->SaveState(opt); if(!strcmp(k,"nnnnn")) @@ -911,7 +911,7 @@ int MGL_NO_EXPORT mgls_light(mglGraph *gr, long , mglArg *a, const char *k, cons return res; } //----------------------------------------------------------------------------- -int MGL_NO_EXPORT mgls_line(mglGraph *gr, long n, mglArg *a, const char *k, const char *opt) +int MGL_NO_EXPORT mgls_line(mglGraph *gr, long , mglArg *a, const char *k, const char *opt) { int res=0; gr->Self()->SaveState(opt); if(!strcmp(k,"nnnn")) @@ -925,7 +925,7 @@ int MGL_NO_EXPORT mgls_line(mglGraph *gr, long n, mglArg *a, const char *k, cons else res = 1; gr->Self()->LoadState(); return res; } //----------------------------------------------------------------------------- -int MGL_NO_EXPORT mgls_errbox(mglGraph *gr, long n, mglArg *a, const char *k, const char *opt) +int MGL_NO_EXPORT mgls_errbox(mglGraph *gr, long , mglArg *a, const char *k, const char *opt) { int res=0; gr->Self()->SaveState(opt); if(!strcmp(k,"nnnn")) @@ -1046,7 +1046,7 @@ int MGL_NO_EXPORT mgls_map(mglGraph *gr, long , mglArg *a, const char *k, const else res = 1; return res; } //----------------------------------------------------------------------------- -int MGL_NO_EXPORT mgls_read(mglGraph *gr, long n, mglArg *a, const char *k, const char *) +int MGL_NO_EXPORT mgls_read(mglGraph *gr, long , mglArg *a, const char *k, const char *) { int res=0; bool rr=true; @@ -2258,7 +2258,7 @@ int MGL_NO_EXPORT mgls_fgets(mglGraph *gr, long , mglArg *a, const char *k, cons else res = 1; gr->Self()->LoadState(); return res; } //----------------------------------------------------------------------------- -int MGL_NO_EXPORT mgls_import(mglGraph *gr, long , mglArg *a, const char *k, const char *) +int MGL_NO_EXPORT mgls_import(mglGraph *, long , mglArg *a, const char *k, const char *) { int res=0; if(!strcmp(k,"dss")) a[0].d->Import(a[1].s.c_str(), a[2].s.c_str()); @@ -2544,7 +2544,7 @@ int MGL_NO_EXPORT mgls_axisstl(mglGraph *gr, long , mglArg *a, const char *k, co else res = 1; return res; } //----------------------------------------------------------------------------- -int MGL_NO_EXPORT mgls_ranges(mglGraph *gr, long n, mglArg *a, const char *k, const char *) +int MGL_NO_EXPORT mgls_ranges(mglGraph *gr, long , mglArg *a, const char *k, const char *) { int res=0; if(!strcmp(k,"nnnn")) gr->SetRanges(a[0].v,a[1].v, a[2].v,a[3].v); diff --git a/src/font.cpp b/src/font.cpp index 3ef13eb..40c12a2 100644 --- a/src/font.cpp +++ b/src/font.cpp @@ -649,7 +649,7 @@ bool mglFont::read_data(const char *fname, float *ff, short *wdt, short *lnum, i // first string is comment (not used), second string have information if(!gzgets(fp,str,256) || strncmp(str,"# font",6) || !gzgets(fp,str,256)) { gzclose(fp); return false; } - retVal = sscanf(str, "%d%f%d", &n, ff, &s); + retVal = sscanf(str, "%d%f%u", &n, ff, &s); //Check sscanf read all data (3 items) if(retVal != 3) { gzclose(fp); return false; } @@ -691,7 +691,7 @@ bool mglFont::read_main(const char *fname, std::vector &buf) // TODO add for(size_t i=0;i Treal mglSpline3t(const Treal *a, long nx, long ny, long if(!a || nx<1 || ny<1 || nz<1) return 0; Treal _p[4][4]; register long i,j; - register Treal fx=1, fy=1; + Treal fx=1, fy=1; long kx=long(x),ky=long(y),kz=long(z); Treal b=0; x = x>0 ?(x Treal mglSpline3st(const Treal *a, long nx, long ny, long if(!a || nx<1 || ny<1 || nz<1) return 0; Treal _p[4][4]; register long i,j; - register Treal fx=1, fy=1; + Treal fx=1, fy=1; long kx=long(x),ky=long(y),kz=long(z); Treal b=0; x = x>0 ?(x &pts, char * fname) nump = (long) pts.size(); return(nump); -}; +} /* write out a set of points to disk @@ -181,7 +181,7 @@ void write_Shx(std::vector &pts, char * fname) out.close(); return; -}; +} @@ -204,7 +204,7 @@ void write_Triads(std::vector &ts, char * fname) out.close(); return; -}; +} diff --git a/texinfo/core_en.texi b/texinfo/core_en.texi index 8bdf906..80a6e74 100644 --- a/texinfo/core_en.texi +++ b/texinfo/core_en.texi @@ -588,15 +588,17 @@ These large set of variables and functions control how the axis and ticks will b @anchor{yrange} @anchor{zrange} @anchor{crange} -@deftypefn {MGL command} {} xrange @code{v1 v2} -@deftypefnx {MGL command} {} yrange @code{v1 v2} -@deftypefnx {MGL command} {} zrange @code{v1 v2} -@deftypefnx {MGL command} {} crange @code{v1 v2} +@deftypefn {MGL command} {} xrange @code{v1 v2} [@code{add=off}] +@deftypefnx {MGL command} {} yrange @code{v1 v2} [@code{add=off}] +@deftypefnx {MGL command} {} zrange @code{v1 v2} [@code{add=off}] +@deftypefnx {MGL command} {} crange @code{v1 v2} [@code{add=off}] @ifclear UDAV @deftypefnx {Method on @code{mglGraph}} @code{void} SetRange (@code{char} dir, @code{mreal} v1, @code{mreal} v2) +@deftypefnx {Method on @code{mglGraph}} @code{void} AddRange (@code{char} dir, @code{mreal} v1, @code{mreal} v2) @deftypefnx {C function} @code{void} mgl_set_range_val (@code{HMGL} gr, @code{char} dir, @code{mreal} v1, @code{mreal} v2) +@deftypefnx {C function} @code{void} mgl_add_range_val (@code{HMGL} gr, @code{char} dir, @code{mreal} v1, @code{mreal} v2) @end ifclear -Sets the range for @samp{x}-,@samp{y}-,@samp{z}- coordinate or coloring (@samp{c}). See also @ref{ranges}. +Sets or adds the range for @samp{x}-,@samp{y}-,@samp{z}- coordinate or coloring (@samp{c}). If one of values is @code{NAN} then it is ignored. See also @ref{ranges}. @end deftypefn diff --git a/texinfo/core_ru.texi b/texinfo/core_ru.texi index 5cff8a0..6405d92 100644 --- a/texinfo/core_ru.texi +++ b/texinfo/core_ru.texi @@ -573,15 +573,17 @@ Setsize: размер(ы) равны нулю или отрицательны @anchor{yrange} @anchor{zrange} @anchor{crange} -@deftypefn {Команда MGL} {} xrange @code{v1 v2} -@deftypefnx {Команда MGL} {} yrange @code{v1 v2} -@deftypefnx {Команда MGL} {} zrange @code{v1 v2} -@deftypefnx {Команда MGL} {} crange @code{v1 v2} +@deftypefn {Команда MGL} {} xrange @code{v1 v2} [@code{add=off}] +@deftypefnx {Команда MGL} {} yrange @code{v1 v2} [@code{add=off}] +@deftypefnx {Команда MGL} {} zrange @code{v1 v2} [@code{add=off}] +@deftypefnx {Команда MGL} {} crange @code{v1 v2} [@code{add=off}] @ifclear UDAV @deftypefnx {Метод класса @code{mglGraph}} @code{void} SetRange (@code{char} dir, @code{mreal} v1, @code{mreal} v2) +@deftypefnx {Метод класса @code{mglGraph}} @code{void} AddRange (@code{char} dir, @code{mreal} v1, @code{mreal} v2) @deftypefnx {Функция С} @code{void} mgl_set_range_val (@code{HMGL} gr, @code{char} dir, @code{mreal} v1, @code{mreal} v2) +@deftypefnx {Функция С} @code{void} mgl_add_range_val (@code{HMGL} gr, @code{char} dir, @code{mreal} v1, @code{mreal} v2) @end ifclear -Задает диапазон изменения @samp{x}-,@samp{y}-,@samp{z}-,@samp{c}-координат. См. также @ref{ranges}. +Задает диапазон изменения @samp{x}-,@samp{y}-,@samp{z}-,@samp{c}-координат. Если одно из значений равно @code{NAN}, то оно игнорируется. Параметр @code{add=on} указывает добавлять новый диапазон к существующему (не заменять его). См. также @ref{ranges}. @end deftypefn @deftypefn {Команда MGL} {} xrange dat [@code{add=off}] diff --git a/texinfo/web_en.texi b/texinfo/web_en.texi index 4a39ffa..de7fdf5 100644 --- a/texinfo/web_en.texi +++ b/texinfo/web_en.texi @@ -52,6 +52,8 @@ Generally, MathGL is GPL library. However, you can use LGPL license for MathGL c @strong{Latest news} @itemize +@item @emph{19 March 2014.} +New version (v.2.2.2.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are compatibility changes for MS VisualStudio 2010 and early, and documentation update. @item @emph{10 March 2014.} New version (v.@value{VERSION}@value{MINVER}) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are extend of 'region' plot, improve export to TeX, add missing Fortran functions, bugfixes, and other improvements, which denoted @ref{News, here}. Note, this release looks as bug free, but next release (v.2.3) will introduce a set of improvements which may not so stable at first time. @item @emph{22 January 2014.} @@ -76,6 +78,16 @@ Javascript interface was developed with support of @url{http://www.datadvance.ne @nav{} @itemize +@item +@strong{19 March 2014.} +New version (v.2.2.2.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are compatibility changes for MS VisualStudio 2010 and early. +@itemize @bullet +@item Compatibility changes for MS VisualStudio 2010 and early. +@item Function SetRange(v1,v2) ignore NAN values now. +@item Add enable-json-sample for building json-samples on demand only. +@item Update documentation. +@end itemize + @item @strong{10 March 2014.} New version (v.2.2.2) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are minor improvements and bugfixes: diff --git a/texinfo/web_ru.texi b/texinfo/web_ru.texi index 4a39ffa..cc07e7e 100644 --- a/texinfo/web_ru.texi +++ b/texinfo/web_ru.texi @@ -52,6 +52,8 @@ Generally, MathGL is GPL library. However, you can use LGPL license for MathGL c @strong{Latest news} @itemize +@item @emph{19 March 2014.} +New version (v.2.2.2.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are compatibility changes for MS VisualStudio 2010 and early, and documentation update. @item @emph{10 March 2014.} New version (v.@value{VERSION}@value{MINVER}) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are extend of 'region' plot, improve export to TeX, add missing Fortran functions, bugfixes, and other improvements, which denoted @ref{News, here}. Note, this release looks as bug free, but next release (v.2.3) will introduce a set of improvements which may not so stable at first time. @item @emph{22 January 2014.} @@ -76,6 +78,17 @@ Javascript interface was developed with support of @url{http://www.datadvance.ne @nav{} @itemize +@item +@strong{19 March 2014.} +New version (v.2.2.2.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are compatibility changes for MS VisualStudio 2010 and early. +New version (v.2.2.2.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are compatibility changes for MS VisualStudio 2010 and early. +@itemize @bullet +@item Compatibility changes for MS VisualStudio 2010 and early. +@item Function SetRange(v1,v2) ignore NAN values now. +@item Add enable-json-sample for building json-samples on demand only. +@item Update documentation. +@end itemize + @item @strong{10 March 2014.} New version (v.2.2.2) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are minor improvements and bugfixes: diff --git a/todo.txt b/todo.txt index 398fa4b..8cc9bc9 100644 --- a/todo.txt +++ b/todo.txt @@ -31,7 +31,8 @@ 20. Add mglDataVar, mglDataCol, mglDataFunc for handling special (temporary) data + add real(), imag(), conj() + accurate types in MGL + add 'expr'/'complex' in MGL 21. Check if Fortran versions possible for: mgl_data_info, mgl_datas_hdf, mgl_get_fit, mgl_get_mess, mgl_get_plotid - +22. Replace pthread by openmp in mgl_draw_thr() and similar +23. Add function Rasterize() -- Finish() + clear points -- m.b. add background image for export, which will be cleared at Clf()??? ============= DOCUMENTATION ============= diff --git a/udav/CMakeLists.txt b/udav/CMakeLists.txt index 67e8920..ce02820 100644 --- a/udav/CMakeLists.txt +++ b/udav/CMakeLists.txt @@ -39,7 +39,7 @@ add_executable(udav ${udav_src} ${udav_moc_src} ${udav_rc_src}) #set_target_properties(udav PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -pthread") if(enable-qt5) target_link_libraries(udav mgl-qt5) - qt5_use_modules(udav Core Widgets Gui Network WebKit PrintSupport) + qt5_use_modules(udav Core Widgets Gui PrintSupport) else(enable-qt5) target_link_libraries(udav mgl-qt4) target_link_libraries(udav ${QT_LIBRARIES}) diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 9fc689e..7b4e6b9 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -19,7 +19,7 @@ if(enable-qt) if(enable-qt5) include(../cmake-qt5.txt) target_link_libraries(mglview mgl-qt5) - qt5_use_modules(mglview Core Widgets Gui Network WebKit PrintSupport) + qt5_use_modules(mglview Core Widgets Gui PrintSupport) else(enable-qt5) include(../cmake-qt4.txt) target_link_libraries(mglview mgl-qt4) diff --git a/utils/mglcgi.cpp b/utils/mglcgi.cpp index 618b9a4..bf333cc 100644 --- a/utils/mglcgi.cpp +++ b/utils/mglcgi.cpp @@ -52,7 +52,7 @@ void mgl_get_value(const char *buf, const char *name, char *val) } } //----------------------------------------------------------------------------- -int main(int argc, char *argv[]) +int main() { mglGraph gr; mglParse p(true); diff --git a/widgets/qt5/CMakeLists.txt b/widgets/qt5/CMakeLists.txt index 0608d09..1bd58bf 100644 --- a/widgets/qt5/CMakeLists.txt +++ b/widgets/qt5/CMakeLists.txt @@ -10,8 +10,8 @@ function(libmglqt mglqt) set_target_properties(mgl-${mglqt}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) set_target_properties(mgl-${mglqt}-static PROPERTIES COMPILE_FLAGS -DMGL_STATIC_DEFINE) target_link_libraries(mgl-${mglqt} mgl) - qt5_use_modules(mgl-${mglqt} Core Widgets Gui Network WebKit PrintSupport) - qt5_use_modules(mgl-${mglqt}-static Core Widgets Gui Network WebKit PrintSupport) + qt5_use_modules(mgl-${mglqt} Core Widgets Gui PrintSupport) + qt5_use_modules(mgl-${mglqt}-static Core Widgets Gui PrintSupport) if(enable-mgl2) set_target_properties(mgl-${mglqt} PROPERTIES OUTPUT_NAME "mgl2-${mglqt}") set_target_properties(mgl-${mglqt}-static PROPERTIES OUTPUT_NAME "mgl2-${mglqt}") @@ -57,8 +57,8 @@ if(enable-qt5) endif(enable-mgl2) target_link_libraries(mgl-wnd mgl) - qt5_use_modules(mgl-wnd Core Widgets Gui Network WebKit PrintSupport) - qt5_use_modules(mgl-wnd-static Core Widgets Gui Network WebKit PrintSupport) + qt5_use_modules(mgl-wnd Core Widgets Gui PrintSupport) + qt5_use_modules(mgl-wnd-static Core Widgets Gui PrintSupport) target_link_libraries(mgl-wnd ${FLTK_LIBRARIES}) install( diff --git a/widgets/wx.cpp b/widgets/wx.cpp index 48f6edd..3989a47 100644 --- a/widgets/wx.cpp +++ b/widgets/wx.cpp @@ -97,7 +97,7 @@ wxMathGL::wxMathGL(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wx //----------------------------------------------------------------------------- wxMathGL::~wxMathGL() { if(mgl_use_graph(gr,-1)<1) mgl_delete_graph(gr); } //----------------------------------------------------------------------------- -double wxMathGL::GetRatio() { return double(mgl_get_width(gr))/mgl_get_height(gr); }; +double wxMathGL::GetRatio() { return double(mgl_get_width(gr))/mgl_get_height(gr); } //----------------------------------------------------------------------------- void wxMathGL::SetGraph(HMGL GR) { @@ -107,7 +107,7 @@ void wxMathGL::SetGraph(HMGL GR) gr=gg; mgl_use_graph(gg,1); } //----------------------------------------------------------------------------- -void wxMathGL::OnPaint(wxPaintEvent& event) +void wxMathGL::OnPaint(wxPaintEvent& ) { wxPaintDC dc(this); dc.DrawBitmap(pic,0,0); @@ -128,7 +128,7 @@ void wxMathGL::OnSize(wxSizeEvent& event) else SetSize(mgl_get_width(gr), mgl_get_height(gr)); } //----------------------------------------------------------------------------- -void wxMathGL::OnNextSlide(wxTimerEvent& evt) { NextSlide(); } +void wxMathGL::OnNextSlide(wxTimerEvent& ) { NextSlide(); } //----------------------------------------------------------------------------- void wxMathGL::SetPer(int p) { if(100*per!=p && p>=0 && p<100) { per = 0.01*p; Repaint(); } } @@ -241,7 +241,7 @@ void wxMathGL::OnMouseLeftDown(wxMouseEvent &ev) void wxMathGL::OnMouseDown(wxMouseEvent &ev) { xe=x0=ev.GetX(); ye=y0=ev.GetY(); ev.Skip(); } //----------------------------------------------------------------------------- -void wxMathGL::OnMouseLeftUp(wxMouseEvent &ev) +void wxMathGL::OnMouseLeftUp(wxMouseEvent &) { if(zoom) { @@ -386,7 +386,7 @@ void wxMathGL::Copy() } //----------------------------------------------------------------------------- void wxMathGL::SetSize(int w, int h) -{ mgl_set_size(gr,w,h); wxWindow::SetSize(w, h); Update(); }; +{ mgl_set_size(gr,w,h); wxWindow::SetSize(w, h); Update(); } //----------------------------------------------------------------------------- void wxMathGL::Adjust() { -- 2.30.2