Imported Upstream version 2.2.2.1
authorDimitrios Eftaxiopoulos <eftaxi12@otenet.gr>
Sun, 23 Mar 2014 22:56:15 +0000 (00:56 +0200)
committerDimitrios Eftaxiopoulos <eftaxi12@otenet.gr>
Sun, 23 Mar 2014 22:56:15 +0000 (00:56 +0200)
31 files changed:
CMakeLists.txt
ChangeLog.txt
clean-svn [deleted file]
cmake-qt4.txt
cmake-qt5.txt
examples/full_test.cpp
examples/samples.cpp
examples/wx_example.cpp
include/mgl2/addon.h
include/mgl2/define.h
include/mgl2/glut.h
json/CMakeLists.txt
src/addon.cpp
src/base.cpp
src/complex.cpp
src/complex_io.cpp
src/eval.cpp
src/exec.cpp
src/font.cpp
src/interp.hpp
src/s_hull/s_hull_pro.cpp
texinfo/core_en.texi
texinfo/core_ru.texi
texinfo/web_en.texi
texinfo/web_ru.texi
todo.txt
udav/CMakeLists.txt
utils/CMakeLists.txt
utils/mglcgi.cpp
widgets/qt5/CMakeLists.txt
widgets/wx.cpp

index f279dce3fc742612762db5d22ba557a9137089aa..4ae50a5ba2ce5b13e7cc8107d49ffed09cd07b6f 100644 (file)
@@ -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")
index 0cd008436d79c8f1e3bb0b2b7086b797d207dfe2..fd83c6e893d3094ce04c7fedf1bf8bd688830389 100644 (file)
@@ -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 (executable)
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
index 12cf077da5da1672c3c038a5ccb868f50fe883c1..462e1f8e1102ff8a039921e27778640051652604 100644 (file)
@@ -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)
index b4cfbdfadbd59283942d8bdcd457359ffcaa9ac1..49caf217e771219269bc750d47a4d934bd240085 100644 (file)
@@ -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)
index 3d34d845d1b3308dc98006da2688a72a80abe988..594a9dd05adfa90a3a0715974c388d8511a7c876 100644 (file)
@@ -69,6 +69,28 @@ void smgl_surf(mglGraph *gr);
 #include <mgl2/font.h>\r
 void test(mglGraph *gr)\r
 {\r
+       union {unsigned long b;double d;float f;} t;    t.b=0;\r
+       t.d = NAN;      printf("NANd: %g --> %lx\t",t.d,t.b);   t.b=0;\r
+       t.f = NAN;      printf("NANf: %g --> %lx\n",t.f,t.b);   t.b=0;\r
+       \r
+       t.d = INFINITY; printf("INFd: %g --> %lx\t",t.d,t.b);   t.b=0;\r
+       t.f = INFINITY; printf("INFf: %g --> %lx\n",t.f,t.b);   t.b=0;\r
+\r
+const unsigned long mgl_nan[2] = {0x7fffffffffffffff, 0x7fffffff};\r
+#define NANd    (*(double*)mgl_nan)\r
+#define NANf    (*(float*)(mgl_nan+1))\r
+       t.d = NANd;     printf("NANd: %g --> %lx\t",t.d,t.b);   t.b=0;\r
+       t.f = NANf;     printf("NANf: %g --> %lx\n",t.f,t.b);   t.b=0;\r
+\r
+       \r
+const unsigned long mgl_inf[2] = {0x7ff0000000000000, 0x7f800000};\r
+#define INFd    (*(double*)mgl_inf)\r
+#define INFf    (*(float*)(mgl_inf+1))\r
+       t.d = INFd;     printf("INFd: %g --> %lx\t",t.d,t.b);   t.b=0;\r
+       t.f = INFf;     printf("INFf: %g --> %lx\n",t.f,t.b);   t.b=0;\r
+\r
+       return;\r
+\r
        mglData y(50);\r
        y.Modify("sin(10*x) + 10");\r
        gr->SetRange('y', y);\r
index 7f30f305edd4fe0e3c9cd617b0bd3010a3cdd221..e3f40489a8aebeda0154acfdf4e54ee31bf9fbf0 100644 (file)
@@ -2755,5 +2755,5 @@ mglSample samp[] = {
        {"vect", smgl_vect, mmgl_vect},
        {"vecta", smgl_vecta, mmgl_vecta},
        {"venn", smgl_venn, mmgl_venn},
-{"", NULL}};
+{"", NULL, NULL}};
 //-----------------------------------------------------------------------------
index d33420296fdd078baca5bc915b5d11e94c1018c8..2c064ff6ee6904546adf599a3e0e31b998c1052c 100644 (file)
@@ -40,15 +40,15 @@ public:
        ~testFrame() {}\r
 private:\r
        enum    {       idMenuQuit = 1000       };\r
-       void OnClose(wxCloseEvent& event)       {       Destroy();      }\r
-       void OnQuit(wxCommandEvent& event)      {       Destroy();      }\r
+       void OnClose(wxCloseEvent& )    {       Destroy();      }\r
+       void OnQuit(wxCommandEvent& )   {       Destroy();      }\r
 \r
        wxScrolledWindow *scroll;\r
        wxMathGL *mgl;\r
        DECLARE_EVENT_TABLE()\r
 };\r
 //-----------------------------------------------------------------------------\r
-IMPLEMENT_APP(testApp);\r
+IMPLEMENT_APP(testApp)\r
 //-----------------------------------------------------------------------------\r
 bool testApp::OnInit()\r
 {\r
index 8423ca0d352158bf2004d6b32ed0ce4719f00ff7..aeed679d6397cac60bc8fb29ad8a683449c138b4 100644 (file)
 //-----------------------------------------------------------------------------
 /// 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
index c9bd1bb7d84a5080e2a7a3b0ad4eb00303457779..554490f87ef1e909ae7ff105b2d97d923966dbea 100644 (file)
@@ -95,15 +95,32 @@ typedef unsigned long uintptr_t;
 #include <float.h>\r
 #include <math.h>\r
 \r
-const unsigned long mgl_nan[2] = {0xffffffff, 0x7fffffff};\r
-#define NANd   (*(double*)mgl_nan)\r
-#define NANf   (*(float*)&(mgl_nan[1]))\r
+#ifdef WIN32\r
+const unsigned long long mgl_nan[2] = {0x7fffffffffffffff, 0x7fffffff};\r
+const unsigned long long mgl_inf[2] = {0x7ff0000000000000, 0x7f800000};\r
+#else\r
+const unsigned long mgl_nan[2] = {0x7fffffffffffffff, 0x7fffffff};\r
+const unsigned long mgl_inf[2] = {0x7ff0000000000000, 0x7f800000};\r
+#endif\r
+\r
+#define NANd    (*(double*)mgl_nan)\r
+#define NANf    (*(float*)(mgl_nan+1))\r
+#define INFd    (*(double*)mgl_inf)\r
+#define INFf    (*(float*)(mgl_inf+1))\r
 \r
 #if !defined(NAN)\r
 #if MGL_USE_DOUBLE\r
 #define NAN            NANd\r
 #else\r
-#define NAN            NANd\r
+#define NAN            NANf\r
+#endif\r
+#endif\r
+\r
+#if !defined(INFINITY)\r
+#if MGL_USE_DOUBLE\r
+#define INFINITY       INFd\r
+#else\r
+#define INFINITY       INFf\r
 #endif\r
 #endif\r
 \r
index 6d6f295faf7fb4136d0a56448654f6a17cb7aed5..9a5c539b071d5c57a1fdb8598f9d943ccdbe4f50 100644 (file)
@@ -75,7 +75,7 @@ public:
        {       mgl_glut_prev_frame(gr);        }\r
        inline void Animation()         ///< Run slideshow (animation) of frames\r
        {       mgl_glut_animation(gr); }\r
-       inline int Run() {};            ///< Run main loop for event handling (placed for similarity to mglWnd)\r
+       inline int Run() {return 0;};           ///< Run main loop for event handling (placed for similarity to mglWnd)\r
 };\r
 //-----------------------------------------------------------------------------\r
 #endif\r
index ab6d57f55dbae2978f9c0195be3e24785e204f89..e45d923e1d39992b270b538192198b82b0dc1539 100644 (file)
@@ -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)
index c30ccb46f95ce12b9d6cc5c08d6b5bba4d820aac..ef6f932912f9ef95878e3966b7da621a44d46979 100644 (file)
@@ -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;i<n;i++)   b[i] = a[i*step];
        for(long k=kk;k>0;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;i<n;i++)   b[i] = a[i*step];
        for(long k=kk;k>0;k--)  // kk iterations
index 6e9660e7341d40b3c663c568ff5977740ca47007..06865521dafc4ddedc03d74393018b482fc6f1a7 100644 (file)
@@ -531,7 +531,11 @@ void mglBase::CRange(HCDT a,bool add, mreal fact)
 void mglBase::CRange(mreal v1,mreal v2,bool add)\r
 {\r
        if(v1==v2 && !add)      return;\r
-       if(!add)        {       Min.c = v1;     Max.c = v2;     }\r
+       if(!add)\r
+       {\r
+               if(v1==v1)      Min.c = v1;     \r
+               if(v2==v2)      Max.c = v2;             \r
+       }\r
        else if(Min.c<Max.c)\r
        {\r
                if(Min.c>v1)    Min.c=v1;\r
@@ -562,7 +566,11 @@ void mglBase::XRange(HCDT a,bool add,mreal fact)
 void mglBase::XRange(mreal v1,mreal v2,bool add)\r
 {\r
        if(v1==v2 && !add)      return;\r
-       if(!add)        {       Min.x = v1;     Max.x = v2;     }\r
+       if(!add)\r
+       {\r
+               if(v1==v1)      Min.x = v1;     \r
+               if(v2==v2)      Max.x = v2;             \r
+       }\r
        else if(Min.x<Max.x)\r
        {\r
                if(Min.x>v1)    Min.x=v1;\r
@@ -593,7 +601,11 @@ void mglBase::YRange(HCDT a,bool add,mreal fact)
 void mglBase::YRange(mreal v1,mreal v2,bool add)\r
 {\r
        if(v1==v2 && !add)      return;\r
-       if(!add)        {       Min.y = v1;     Max.y = v2;     }\r
+       if(!add)\r
+       {\r
+               if(v1==v1)      Min.y = v1;     \r
+               if(v2==v2)      Max.y = v2;             \r
+       }\r
        else if(Min.y<Max.y)\r
        {\r
                if(Min.y>v1)    Min.y=v1;\r
@@ -625,7 +637,11 @@ void mglBase::ZRange(HCDT a,bool add,mreal fact)
 void mglBase::ZRange(mreal v1,mreal v2,bool add)\r
 {\r
        if(v1==v2 && !add)      return;\r
-       if(!add)        {       Min.z = v1;     Max.z = v2;     }\r
+       if(!add)\r
+       {\r
+               if(v1==v1)      Min.z = v1;     \r
+               if(v2==v2)      Max.z = v2;             \r
+       }\r
        else if(Min.z<Max.z)\r
        {\r
                if(Min.z>v1)    Min.z=v1;\r
index bc8631942f8f067a9b83d5d292fbaaa323296b96..8b43c3c84effaf0b9d5dc255d21af47b386ddf17 100644 (file)
@@ -611,7 +611,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir)
                for(long i=0;i<nx*ny;i++)       for(long j=0;j<nz/2;j++)\r
                {\r
                        register long i0 = i+j*nx*ny, j0 = i+(nz-1-j)*nx*ny;\r
-                       register dual b = a[i0];        a[i0] = a[j0];  a[j0] = b;\r
+                       dual b = a[i0]; a[i0] = a[j0];  a[j0] = b;\r
                }\r
        }\r
        if(strchr(dir,'y') && ny>1)\r
@@ -620,7 +620,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir)
                for(long i=0;i<nx*nz;i++)       for(long j=0;j<ny/2;j++)\r
                {\r
                        register long j0 = (i%nx)+nx*(ny*(i/nx)+j), i0 = j0+(ny-1-2*j)*nx;\r
-                       register dual b = a[j0];        a[j0] = a[i0];  a[i0] = b;\r
+                       dual b = a[j0]; a[j0] = a[i0];  a[i0] = b;\r
                }\r
        }\r
        if(strchr(dir,'x') && nx>1)\r
@@ -629,7 +629,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir)
                for(long j=0;j<ny*nz;j++)       for(long i=0;i<nx/2;i++)\r
                {\r
                        register long i0 = nx-1-i+j*nx, j0 = i+j*nx;\r
-                       register dual b = a[j0];        a[j0] = a[i0];  a[i0] = b;\r
+                       dual b = a[j0]; a[j0] = a[i0];  a[i0] = b;\r
                }\r
        }\r
 }\r
@@ -1098,7 +1098,7 @@ MGL_NO_EXPORT void *mgl_difr(void *par)
 void MGL_EXPORT mgl_datac_diffr(HADT d, const char *how, mreal q)\r
 {\r
        if(!how || *how==0)     return;\r
-       long nx=d->nx,ny=d->ny,nz=d->nz,nn=nx*ny*nz,ll=strlen(how);\r
+       long nx=d->nx,ny=d->ny,nz=d->nz,ll=strlen(how);\r
        long p[4]={0,0,(mglchr(how,'a')||mglchr(how,'r'))?1:0,0};\r
        dual qq=q;\r
        for(long i=0;i<ll;i++)  if(how[i]>='0' && how[i]<='9')  p[3] = how[i]-'0';\r
index 6591c36aaee2f26fdb37deaed51fe90caaf1bd58..cc214b8421c1adb77a63b777f2d0a3c96a83420b 100644 (file)
@@ -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;\r
                if(n2>0 && ny==1)       mz = n2;\r
                b = new dual[mx*my*mz];\r
-               register dual v;\r
+               dual v;\r
                if(n2<0)\r
 #pragma omp parallel for collapse(2)\r
                        for(long j=0;j<nx;j++)  for(long i=0;i<mx*my;i++)\r
index 944b5b607a1484c079b0ed1f9a685d3a09c3d8cc..ee3ee8ba51db8ab4f8f6065597f13e1741b6b2e5 100644 (file)
@@ -119,7 +119,7 @@ EQ_DC,              // Jacobian elliptic function dn(u|m)/cn(u|m)
                        // MUST BE LAST ELLIPTIC FUNCTION\r
 // not-ready\r
 EQ_EN,\r
-EQ_CL,         // Clausen function\r
+EQ_CL          // Clausen function\r
 };\r
 //-----------------------------------------------------------------------------\r
 #ifndef M_PI\r
index 18f6355e8ad9c31111192399186eeb3205d326bf..3a3be14b63cdc31f22a3f211d9ffe7fc598c653b 100644 (file)
@@ -677,7 +677,7 @@ int MGL_NO_EXPORT mgls_diff2(mglGraph *, long , mglArg *a, const char *k, const
        else res = 1;   return res;
 }
 //-----------------------------------------------------------------------------
-int MGL_NO_EXPORT mgls_drop(mglGraph *gr, long n, mglArg *a, const char *k, const char *opt)
+int MGL_NO_EXPORT mgls_drop(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
 {
        int res=0;      gr->Self()->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);
index 3ef13eb87c9a2e39d67b8b86eca271342fa4ac07..40c12a20e0454c418940a4dc2e461a97e9a8740c 100644 (file)
@@ -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\r
        if(!gzgets(fp,str,256) || strncmp(str,"# font",6) || !gzgets(fp,str,256))\r
        {       gzclose(fp);    return false;   }\r
-       retVal = sscanf(str, "%d%f%d", &n, ff, &s);\r
+       retVal = sscanf(str, "%d%f%u", &n, ff, &s);\r
        //Check sscanf read all data  (3 items)\r
        if(retVal != 3) {       gzclose(fp);    return false;   }\r
 \r
@@ -691,7 +691,7 @@ bool mglFont::read_main(const char *fname, std::vector<short> &buf) // TODO add
        for(size_t i=0;i<numg;i++)\r
        {\r
                gzgets(fp,str,256);\r
-               sscanf(str,"%u%d%d%u%d%u", &tmpi, &tmpw, &tmpnl, &tmppl, &tmpnt, &tmppt);\r
+               sscanf(str,"%d%d%d%u%d%u", &tmpi, &tmpw, &tmpnl, &tmppl, &tmpnt, &tmppt);\r
                id[i] = tmpi;           width[0][i] = tmpw;\r
                numl[0][i] = tmpnl; ln[0][i] = tmppl;\r
                numt[0][i] = tmpnt;     tr[0][i] = tmppt;\r
index 4b19e6cc659432c33f52e0af5a40672544517fd9..daab03f9cb09257361c264bac46e7e8064aa45d7 100644 (file)
@@ -185,7 +185,7 @@ template <class Treal> 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<nx-1 ? x:nx-1):0;
@@ -280,7 +280,7 @@ template <class Treal> 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<nx-1 ? x:nx-1):0;
index 17a5c395c952406415077e7186c786ec2f87648b..4a11f51ae5e8a47dbbcf3afbe109000d1858cd21 100644 (file)
@@ -159,7 +159,7 @@ long read_Shx(std::vector<Shx> &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<Shx> &pts, char * fname)
        out.close();
 
        return;
-};
+}
 
 
 
@@ -204,7 +204,7 @@ void write_Triads(std::vector<Triad> &ts, char * fname)
        out.close();
 
        return;
-};
+}
 
 
 
index 8bdf906453448708c03a5684a8ac26d081cf60ca..80a6e74f22efcf760f0525949eada01b5b661032 100644 (file)
@@ -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
 
 
index 5cff8a0a6098f7412f153d6d108943358639b8be..6405d92b5155c1b36b9495f7ba4192fa1d11491a 100644 (file)
@@ -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}.
\97адаеÑ\82 Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f @samp{x}-,@samp{y}-,@samp{z}-,@samp{c}-кооÑ\80динаÑ\82. Ð\95Ñ\81ли Ð¾Ð´Ð½Ð¾ Ð¸Ð· Ð·Ð½Ð°Ñ\87ений Ñ\80авно @code{NAN}, Ñ\82о Ð¾Ð½Ð¾ Ð¸Ð³Ð½Ð¾Ñ\80иÑ\80Ñ\83еÑ\82Ñ\81Ñ\8f. Ð\9fаÑ\80амеÑ\82Ñ\80 @code{add=on} Ñ\83казÑ\8bваеÑ\82 Ð´Ð¾Ð±Ð°Ð²Ð»Ñ\8fÑ\82Ñ\8c Ð½Ð¾Ð²Ñ\8bй Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ðº Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83Ñ\8eÑ\89емÑ\83 (не Ð·Ð°Ð¼ÐµÐ½Ñ\8fÑ\82Ñ\8c ÐµÐ³Ð¾). Ð¡Ð¼. Ñ\82акже @ref{ranges}.
 @end deftypefn
 
 @deftypefn {Команда MGL} {} xrange dat [@code{add=off}]
index 4a39ffaeae0854ead1d18e130f831e28c1494765..de7fdf5a5fea995cebaf76355d482bd3e2bd94a2 100644 (file)
@@ -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:
index 4a39ffaeae0854ead1d18e130f831e28c1494765..cc07e7e134f21b3e51a3e554c8c5ec22537bd2c5 100644 (file)
@@ -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:
index 398fa4b11d9f74404681e9128963ee3afcc9f277..8cc9bc9b6787b5daf0890a83171d0740cbbf7bf3 100644 (file)
--- 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 =============
 
index 67e89209d155d65c2d096f35def0e50a2a1ddfa7..ce0282028766cfe29a64bc205385975b69c76fbc 100644 (file)
@@ -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})
index 9fc689ec5c006b33bd816417d864804f61fc50c6..7b4e6b9e3579774724cc33565dd896469b53c59d 100644 (file)
@@ -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)
index 618b9a4b49d82915e59f915481c339e306ef5129..bf333cc56320c715a056ca71934d3de783c8433b 100644 (file)
@@ -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);
index 0608d09f7a1aa36876feeddf69f02c5598ce2cbd..1bd58bfefc6b7d8520495164998dabf716fefa43 100644 (file)
@@ -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(
index 48f6eddf0a0104abdd41572e0d9d41332fea3ccf..3989a4782be8c2ad38dc885e9899c84a44194bc5 100644 (file)
@@ -97,7 +97,7 @@ wxMathGL::wxMathGL(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wx
 //-----------------------------------------------------------------------------\r
 wxMathGL::~wxMathGL()  {       if(mgl_use_graph(gr,-1)<1)      mgl_delete_graph(gr);   }\r
 //-----------------------------------------------------------------------------\r
-double wxMathGL::GetRatio()    {       return double(mgl_get_width(gr))/mgl_get_height(gr);    };\r
+double wxMathGL::GetRatio()    {       return double(mgl_get_width(gr))/mgl_get_height(gr);    }\r
 //-----------------------------------------------------------------------------\r
 void wxMathGL::SetGraph(HMGL GR)\r
 {\r
@@ -107,7 +107,7 @@ void wxMathGL::SetGraph(HMGL GR)
        gr=gg;  mgl_use_graph(gg,1);\r
 }\r
 //-----------------------------------------------------------------------------\r
-void wxMathGL::OnPaint(wxPaintEvent& event)\r
+void wxMathGL::OnPaint(wxPaintEvent& )\r
 {\r
        wxPaintDC dc(this);\r
        dc.DrawBitmap(pic,0,0);\r
@@ -128,7 +128,7 @@ void wxMathGL::OnSize(wxSizeEvent& event)
        else    SetSize(mgl_get_width(gr), mgl_get_height(gr));\r
 }\r
 //-----------------------------------------------------------------------------\r
-void wxMathGL::OnNextSlide(wxTimerEvent& evt)  {       NextSlide();    }\r
+void wxMathGL::OnNextSlide(wxTimerEvent& )     {       NextSlide();    }\r
 //-----------------------------------------------------------------------------\r
 void wxMathGL::SetPer(int p)\r
 {      if(100*per!=p && p>=0 && p<100) {       per = 0.01*p;   Repaint();      }       }\r
@@ -241,7 +241,7 @@ void wxMathGL::OnMouseLeftDown(wxMouseEvent &ev)
 void wxMathGL::OnMouseDown(wxMouseEvent &ev)\r
 {      xe=x0=ev.GetX();        ye=y0=ev.GetY();        ev.Skip();      }\r
 //-----------------------------------------------------------------------------\r
-void wxMathGL::OnMouseLeftUp(wxMouseEvent &ev)\r
+void wxMathGL::OnMouseLeftUp(wxMouseEvent &)\r
 {\r
        if(zoom)\r
        {\r
@@ -386,7 +386,7 @@ void wxMathGL::Copy()
 }\r
 //-----------------------------------------------------------------------------\r
 void wxMathGL::SetSize(int w, int h)\r
-{      mgl_set_size(gr,w,h);   wxWindow::SetSize(w, h);        Update();       };\r
+{      mgl_set_size(gr,w,h);   wxWindow::SetSize(w, h);        Update();       }\r
 //-----------------------------------------------------------------------------\r
 void wxMathGL::Adjust()\r
 {\r