[mathgl] 01/01: upstream release 2.4.1
Alastair McKinstry
mckinstry at moszumanska.debian.org
Thu Sep 21 13:40:20 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to tag upstream/2.4.1
in repository mathgl.
commit ad2fae2e1072b823b2dba63e00655ed4ac5bb04e
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Tue Aug 1 09:04:50 2017 +0100
upstream release 2.4.1
---
CMakeLists.txt | 47 +-
ChangeLog.txt | 7 +
examples/CMakeLists.txt | 4 +-
examples/fltk_example.cpp | 2 +-
examples/full_test.cpp | 2 +-
examples/qt_example.cpp | 2 +-
include/mgl2/abstract.h | 1 +
include/mgl2/base.h | 8 +-
include/mgl2/canvas.h | 21 +-
include/mgl2/data.h | 1 +
include/mgl2/define.h | 3 +-
include/mgl2/mgl.h | 8 +
include/mgl2/qmathgl.h | 1 -
include/mgl2/surf.h | 9 +
include/mgl2/wnd.h | 2 +-
include/mgl2/wx.h | 1 -
json/CMakeLists.txt | 4 +-
mathgl_en.po | 304 ++++++------
mathgl_es.po | 518 ++++++++++----------
mathgl_ru.po | 519 +++++++++++----------
mgllab/grid.cpp | 4 +-
mgllab/help.cpp | 1 +
mgllab/mathgl.cpp | 2 +-
mgllab/mgllab.cpp | 3 -
mgllab/table.cpp | 2 +-
scripts/CMakeLists.txt | 31 ++
FindMathGL2.cmake => scripts/FindMathGL2.cmake | 0
.../MathGLConfig.cmake.in | 0
.../MathGLConfigVersion.cmake.in | 0
.../install-deps.txt => scripts/install-deps.cmake | 0
cmake-qt4.txt => scripts/qt4.cmake | 0
cmake-qt5.txt => scripts/qt5.cmake | 0
src/addon.cpp | 1 +
src/axis.cpp | 47 +-
src/base.cpp | 4 +-
src/base_cf.cpp | 6 +-
src/canvas.cpp | 39 +-
src/complex.cpp | 11 +-
src/data.cpp | 15 +-
src/data_io.cpp | 10 +-
src/eval.cpp | 2 +-
src/evalc.cpp | 2 +-
src/evalp.cpp | 6 +-
src/exec_gr.cpp | 11 +
src/export.cpp | 50 +-
src/export_2d.cpp | 4 +-
src/export_3d.cpp | 14 +-
src/fft.cpp | 4 +-
src/fit.cpp | 8 +-
src/font.cpp | 6 +-
src/obj.cpp | 7 +-
src/opengl.cpp | 11 +-
src/parser.cpp | 9 +-
src/pde.cpp | 4 +-
src/pixel.cpp | 23 +-
src/pixel_gen.cpp | 2 +-
src/plot.cpp | 102 +++-
src/prc.cpp | 9 +-
src/prc/oPRCFile.cc | 2 +-
src/prim.cpp | 5 +-
src/surf.cpp | 31 +-
src/volume.cpp | 18 +-
texinfo/core_en.texi | 26 +-
texinfo/core_ru.texi | 23 +-
texinfo/symbols_en.texi | 4 +
texinfo/symbols_ru.texi | 4 +
texinfo/version_hist.txt | 2 +
texinfo/web_en.texi | 15 +-
texinfo/web_ru.texi | 20 +-
todo.txt | 1 +
translations/mathgl_es.mo | Bin 9458 -> 9652 bytes
translations/mathgl_ru.mo | Bin 138490 -> 138658 bytes
udav/CMakeLists.txt | 4 +-
udav/anim_dlg.cpp | 1 +
udav/args_dlg.cpp | 2 +-
udav/data_dlg.h | 4 +-
udav/files_dlg.cpp | 2 +-
udav/style_dlg.h | 4 +-
utils/CMakeLists.txt | 4 +-
utils/mglcgi.cpp | 2 +-
utils/mglconv.cpp | 6 +-
utils/mglview.cpp | 2 +-
widgets/fltk.cpp | 5 +-
widgets/qt.cpp | 4 +-
widgets/qt4/CMakeLists.txt | 2 +-
widgets/qt5/CMakeLists.txt | 2 +-
widgets/wx.cpp | 4 +-
win32-install-deps/CMakeLists.txt | 10 -
88 files changed, 1180 insertions(+), 943 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fbe2e6e..9070595 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,7 +17,7 @@ endif(NOT CMAKE_BUILD_TYPE)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(MathGL_VERSION_MAJOR 2)
set(MathGL_VERSION_MINOR 4)
-set(MathGL_PATCH_VERSION 0)
+set(MathGL_PATCH_VERSION 1)
set(MathGL_VERSION ${MathGL_VERSION_MAJOR}.${MathGL_VERSION_MINOR}.${MathGL_PATCH_VERSION})
set(MathGL_SOVERSION 7.5.0)
@@ -734,46 +734,30 @@ if(enable-mgltex)
add_subdirectory( mgltex )
endif(enable-mgltex)
-if(WIN32)
- install(FILES ${CMAKE_SOURCE_DIR}/FindMathGL2.cmake DESTINATION ${CMAKE_INSTALL_PREFIX} RENAME mathgl2-config.cmake)
-else(WIN32)
- install(FILES ${CMAKE_SOURCE_DIR}/FindMathGL2.cmake DESTINATION ${MGL_LIB_INSTALL_DIR}/cmake/mathgl2/ RENAME mathgl2-config.cmake)
-endif(WIN32)
-
-#export(TARGETS MathGLTargets FILE "${PROJECT_BINARY_DIR}/MathGLTargets.cmake")
-#export(PACKAGE MathGL2)
-
-#configure_file(MathGLConfig.cmake.in "${MathGL2_BINARY_DIR}/MathGLConfig.cmake" @ONLY)
-#configure_file(MathGLConfigVersion.cmake.in "${MathGL2_BINARY_DIR}/MathGLConfigVersion.cmake" @ONLY)
-
-#install(FILES
-# "${MathGL2_BINARY_DIR}/MathGLConfig.cmake"
-# "${MathGL2_BINARY_DIR}/MathGLConfigVersion.cmake"
-# DESTINATION "${MathGL_INSTALL_CMAKE_DIR}" COMPONENT dev)
-
-#install(EXPORT MathGLTargets DESTINATION "${MathGL_INSTALL_CMAKE_DIR}" COMPONENT dev)
-
-
if(MGL_USE_LIBINTL)
if(USE_GETTEXT)
- add_custom_target(mathgl.pot ALL
+ set(mgl_tl_list )
+ add_custom_command(OUTPUT mathgl.pot
COMMAND ${findxgettext} -s --keyword=_ -C -c --package-name=MathGL2 --package-version=${MathGL_VERSION} -o ${MathGL2_BINARY_DIR}/mathgl.pot ${po_files}
WORKING_DIRECTORY ${MathGL2_SOURCE_DIR}/
DEPENDS ${po_files} )
set(mgl_clean_files mathgl.pot ${mgl_clean_files})
- foreach(tl ru es en)
- add_custom_target(mathgl_${tl}.po ALL
+ foreach(tl ru es) # en)
+ add_custom_command(OUTPUT mathgl_${tl}.po.done
COMMAND ${findmsgmerge} -U mathgl_${tl}.po ${MathGL2_BINARY_DIR}/mathgl.pot
+ COMMAND ${CMAKE_COMMAND} -E touch ${MathGL2_BINARY_DIR}/mathgl_${tl}.po.done
WORKING_DIRECTORY ${MathGL2_SOURCE_DIR}/
- DEPENDS mathgl.pot )
- add_custom_target(mathgl_${tl}.mo ALL
+ DEPENDS mathgl.pot mathgl_${tl}.po)
+ add_custom_command(OUTPUT mathgl_${tl}.mo
COMMAND ${findmsgfmt} -o mathgl_${tl}.mo ${MathGL2_SOURCE_DIR}/mathgl_${tl}.po
- DEPENDS mathgl_${tl}.po)
+ DEPENDS mathgl_${tl}.po.done)
install( FILES ${MathGL2_BINARY_DIR}/mathgl_${tl}.mo DESTINATION "${CMAKE_INSTALL_PREFIX}/share/locale/${tl}/LC_MESSAGES/" RENAME mathgl.mo )
- set(mgl_clean_files mathgl_${tl}.mo ${mgl_clean_files})
+ set(mgl_tl_list mathgl_${tl}.mo ${mgl_tl_list})
+ set(mgl_clean_files mathgl_${tl}.mo mathgl_${tl}.po.done ${mgl_clean_files})
endforeach(tl)
+ add_custom_target(mgl_translations ALL DEPENDS ${mgl_tl_list})
else(USE_GETTEXT)
- foreach(tl ru es en)
+ foreach(tl ru es) # en)
install( FILES ${MathGL2_SOURCE_DIR}/translations/mathgl_${tl}.mo DESTINATION "${CMAKE_INSTALL_PREFIX}/share/locale/${tl}/LC_MESSAGES/" RENAME mathgl.mo )
endforeach(tl)
endif(USE_GETTEXT)
@@ -782,7 +766,4 @@ endif(MGL_USE_LIBINTL)
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${mgl_clean_files}")
# WARNING!!! DO NOT ADD ANYTHING AFTER THIS LINE!
-
-if(enable-dep-dll)
- add_subdirectory ( win32-install-deps )
-endif(enable-dep-dll)
+add_subdirectory ( scripts )
diff --git a/ChangeLog.txt b/ChangeLog.txt
index d1e4f79..bc31bff 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,10 @@
+2.4.1 Released 20 July 2017
+
+* Add 'beltc' plot, which is 'belt' with manual coloring.
+* Add style '~' for 'plot' and 'tens' to omit some points at output.
+* Add style ':' for 'axis' to draw lines through point (0,0,0).
+* Bugfixes
+
2.4 Released 17 May 2017
* Add mgllab executable, which is FLTK based version of UDAV. Most things mgllab do faster.
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 0fa52bc..1b9879d 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -23,10 +23,10 @@ endif(MGL_HAVE_WX)
if(QT_ENABLED)
add_executable(mgl_qt_example wnd_samples.cpp qt_example.cpp)
if(enable-qt5)
- include(../cmake-qt5.txt)
+ include(../scripts/qt5.cmake)
target_link_libraries(mgl_qt_example mgl-qt5)
else(enable-qt5)
- include(../cmake-qt4.txt)
+ include(../scripts/qt4.cmake)
target_link_libraries(mgl_qt_example mgl-qt4)
endif(enable-qt5)
diff --git a/examples/fltk_example.cpp b/examples/fltk_example.cpp
index 7670da3..9dc8db3 100644
--- a/examples/fltk_example.cpp
+++ b/examples/fltk_example.cpp
@@ -97,7 +97,7 @@ class myDraw : public mglDraw
long i; // another variable to be shown
mglWnd *wnd; // external window for plotting
public:
- myDraw(mglWnd *w=0) : mglDraw() { wnd=w; }
+ myDraw(mglWnd *w=0) : mglDraw() { i=0; wnd=w; }
void SetWnd(mglWnd *w) { wnd=w; }
int Draw(mglGraph *gr)
{
diff --git a/examples/full_test.cpp b/examples/full_test.cpp
index e9821e0..64dc8fb 100644
--- a/examples/full_test.cpp
+++ b/examples/full_test.cpp
@@ -418,7 +418,7 @@ int main(int argc,char **argv)
case 'w': width =atoi(optarg); break;
case 'h': height=atoi(optarg); break;
case 'q': quality =atoi(optarg); break;
- case 'k': strncpy(name, optarg,256);
+ case 'k': mgl_strncpy(name, optarg,256);
tmp=strchr(name,'.'); if(tmp) *tmp=0;
tmp=strchr(name,'-'); if(tmp) *tmp=0;
break;
diff --git a/examples/qt_example.cpp b/examples/qt_example.cpp
index 2f80129..c27b101 100644
--- a/examples/qt_example.cpp
+++ b/examples/qt_example.cpp
@@ -111,7 +111,7 @@ class myDraw : public mglDraw
long i; // another variable to be shown
mglWnd *wnd; // external window for plotting
public:
- myDraw(mglWnd *w=0) : mglDraw() { wnd=w; }
+ myDraw(mglWnd *w=0) : mglDraw() { wnd=w; i=0; }
void SetWnd(mglWnd *w) { wnd=w; }
int Draw(mglGraph *gr)
{
diff --git a/include/mgl2/abstract.h b/include/mgl2/abstract.h
index f689baf..a252b63 100644
--- a/include/mgl2/abstract.h
+++ b/include/mgl2/abstract.h
@@ -57,6 +57,7 @@ extern "C" {
#else
#define mglDataA void
+#define mglNum void
typedef void *HMGL;
typedef void *HMDT;
typedef void *HADT;
diff --git a/include/mgl2/base.h b/include/mgl2/base.h
index 13594a3..37e10b0 100644
--- a/include/mgl2/base.h
+++ b/include/mgl2/base.h
@@ -484,7 +484,7 @@ public:
/// Set to use or not text rotation
inline void SetRotatedText(bool val) { set(val,MGL_ENABLE_RTEXT); }
/// Set default font style and color
- void SetFontDef(const char *font);
+ inline void SetFontDef(const char *font){ mgl_strncpy(FontDef, font, 31); }
/// Set to use or not text rotation
inline void SetTickRotate(bool val) { set(val,MGL_TICKS_ROTATE); }
/// Set to use or not text rotation
@@ -509,8 +509,8 @@ public:
long CopyNtoC(long k, mreal c);
long CopyProj(long from, mglPoint p, mglPoint n, short sub=0);
void SetRGBA(long k, const mglColor &c)
- { mglPnt &p=Pnt[k]; p.r = c.r; p.g = c.g; p.b = c.b; p.a = c.a; }
- virtual void Reserve(long n); ///< Allocate n-cells for Pnt and return current position
+ { if(k>=0) {mglPnt &p=Pnt[k]; p.r = c.r; p.g = c.g; p.b = c.b; p.a = c.a;} }
+ virtual void Reserve(long n); ///< Allocate n-cells for Pnt and return current position
/// Set to reduce accuracy of points (to reduce size of output files)
inline void SetReduceAcc(bool val) { set(val, MGL_REDUCEACC); }
/// Add glyph of current font to the Glf and return its position
@@ -658,7 +658,7 @@ protected:
long CurrPal; ///< Current palette index
mreal MarkSize; ///< The size of marks for 1D plots.
mreal ArrowSize; ///< The size of arrows.
- char last_style[64];///< Last pen style
+ char last_style[64];///< Last pen style TODO: replace by std::string
mreal font_factor; ///< Font scaling factor
long dr_x, dr_y, dr_p; ///< default drawing region for quality&4 mode
diff --git a/include/mgl2/canvas.h b/include/mgl2/canvas.h
index ddf8db2..3bb463b 100644
--- a/include/mgl2/canvas.h
+++ b/include/mgl2/canvas.h
@@ -26,10 +26,10 @@ struct GifFileType;
/// Structure for drawing axis and ticks
struct MGL_EXPORT mglAxis
{
- mglAxis() : dv(0),ds(0),d(0),ns(0), v0(0),v1(0),v2(0),o(NAN), f(0), ch(0), pos('t'),sh(0),inv(false) {}
- mglAxis(const mglAxis &aa) : dv(aa.dv),ds(aa.ds),d(aa.d),ns(aa.ns), t(aa.t),fact(aa.fact),stl(aa.stl), dir(aa.dir),a(aa.a),b(aa.b),org(aa.org), v0(aa.v0),v1(aa.v1),v2(aa.v2),o(aa.o), f(aa.f),txt(aa.txt), ch(aa.ch), pos(aa.pos),sh(aa.sh),inv(aa.inv) {}
+ mglAxis() : dv(0),ds(0),d(0),ns(0), v0(0),v1(0),v2(0),o(NAN), f(0), ch(0), pos('t'),sh(0),inv(false),angl(NAN) {}
+ mglAxis(const mglAxis &aa) : dv(aa.dv),ds(aa.ds),d(aa.d),ns(aa.ns), t(aa.t),fact(aa.fact),stl(aa.stl), dir(aa.dir),a(aa.a),b(aa.b),org(aa.org), v0(aa.v0),v1(aa.v1),v2(aa.v2),o(aa.o), f(aa.f),txt(aa.txt), ch(aa.ch), pos(aa.pos),sh(aa.sh),inv(aa.inv),angl(aa.angl) {}
#if MGL_HAVE_RVAL
- mglAxis(mglAxis &&aa) : dv(aa.dv),ds(aa.ds),d(aa.d),ns(aa.ns), t(aa.t),fact(aa.fact),stl(aa.stl), dir(aa.dir),a(aa.a),b(aa.b),org(aa.org), v0(aa.v0),v1(aa.v1),v2(aa.v2),o(aa.o), f(aa.f),txt(aa.txt), ch(aa.ch), pos(aa.pos),sh(aa.sh),inv(aa.inv) {}
+ mglAxis(mglAxis &&aa) : dv(aa.dv),ds(aa.ds),d(aa.d),ns(aa.ns), t(aa.t),fact(aa.fact),stl(aa.stl), dir(aa.dir),a(aa.a),b(aa.b),org(aa.org), v0(aa.v0),v1(aa.v1),v2(aa.v2),o(aa.o), f(aa.f),txt(aa.txt), ch(aa.ch), pos(aa.pos),sh(aa.sh),inv(aa.inv),angl(aa.angl) {}
#endif
const mglAxis &operator=(const mglAxis &aa)
@@ -68,7 +68,7 @@ class mglCanvas;
/// Structure for drawing region
struct MGL_EXPORT mglDrawReg
{
- mglDrawReg() {}
+ mglDrawReg() { memset(this,0,sizeof(mglDrawReg)); }
mglDrawReg(const mglDrawReg &aa) : PDef(aa.PDef),angle(aa.angle),ObjId(aa.ObjId),PenWidth(aa.PenWidth),pPos(aa.pPos) ,x1(aa.x1),x2(aa.x2),y1(aa.y1),y2(aa.y2) {}
#if MGL_HAVE_RVAL
mglDrawReg(mglDrawReg &&aa) : PDef(aa.PDef),angle(aa.angle),ObjId(aa.ObjId),PenWidth(aa.PenWidth),pPos(aa.pPos) ,x1(aa.x1),x2(aa.x2),y1(aa.y1),y2(aa.y2) {}
@@ -145,7 +145,7 @@ using mglBase::Light;
/// Get PlotFactor
inline mreal GetPlotFactor() { return B.pf; }
/// Pop transformation matrix from stack
- inline void Pop() { B = stack.back(); stack.pop_back(); }
+ void Pop();
/// Clear up the frame
virtual void Clf(mglColor back=NC);
virtual void Clf(const char *col);
@@ -173,6 +173,12 @@ using mglBase::Light;
/// Set perspective (in range [0,1)) for plot. Set to zero for switching off. Return the current perspective.
void Perspective(mreal a, bool req=true)
{ if(req) persp = Bp.pf = a; else Bp.pf = persp?persp:fabs(a); }
+ /// Save parameters of current inplot
+ inline void SaveInPlot()
+ { sB=B; sW=inW, sH=inH, sZ=ZMin, sX=inX, sY=inY, sFF=font_factor; }
+ /// Use saved parameters as current inplot
+ inline void LoadInPlot()
+ { B=sB; inW=sW, inH=sH, ZMin=sZ, inX=sX, inY=sY, font_factor=sFF; }
/// Set size of frame in pixels. Normally this function is called internaly.
virtual void SetSize(int w,int h,bool clf=true);
@@ -385,7 +391,7 @@ protected:
/// Prepare labels for ticks
void LabelTicks(mglAxis &aa);
/// Draw axis
- void DrawAxis(mglAxis &aa, bool text=true, char arr=0,const char *stl="",mreal angl=NAN);
+ void DrawAxis(mglAxis &aa, int text=1, char arr=0,const char *stl="",mreal angl=NAN);
/// Draw axis grid lines
void DrawGrid(mglAxis &aa, bool at_tick=false);
/// Update axis ranges
@@ -462,6 +468,9 @@ private:
mglCanvas(const mglCanvas &){} // copying is not allowed
const mglCanvas &operator=(const mglCanvas &t){return t;} // copying is not allowed
+ mglMatrix sB; // parameters of saved inplot
+ mreal sW, sH, sZ, sX, sY, sFF;
+
uint32_t *pnt_col;
// mreal _tetx,_tety,_tetz; // extra angles
std::vector<mglMatrix> stack; ///< stack for transformation matrices
diff --git a/include/mgl2/data.h b/include/mgl2/data.h
index 9241882..e0d496f 100644
--- a/include/mgl2/data.h
+++ b/include/mgl2/data.h
@@ -143,6 +143,7 @@ using mglDataA::Momentum;
mgl_data_create(this,n,1,1);
va_list vl; va_start(vl,n);
for(long i=0;i<n;i++) a[i] = va_arg(vl,double);
+ va_end(vl);
}
/// Create or recreate the array with specified size and fill it by zero
diff --git a/include/mgl2/define.h b/include/mgl2/define.h
index ee0f002..dd60a86 100644
--- a/include/mgl2/define.h
+++ b/include/mgl2/define.h
@@ -273,7 +273,7 @@ extern MGL_EXPORT uint64_t mgl_mask_val[16];
#define MGL_PREFERVC 0x040000 ///< Prefer vertex color instead of texture if output format supports
#define MGL_ONESIDED 0x080000 ///< Render only front side of surfaces if output format supports (for debugging)
#define MGL_NO_ORIGIN 0x100000 ///< Don't draw tick labels at axis origin
-#define MGL_GRAY_MODE 0x100000 ///< Convert all colors to gray ones
+#define MGL_GRAY_MODE 0x200000 ///< Convert all colors to gray ones
//-----------------------------------------------------------------------------
#if MGL_HAVE_C99_COMPLEX
#include <complex.h>
@@ -331,6 +331,7 @@ inline int mgl_sign(double a) { return a<0?-1:1; }
inline long mgl_int(double a) { return long(a+(a>=0?0.5:-0.5)); }
inline double mgl_min(double a, double b) { return a>b?b:a; }
inline double mgl_max(double a, double b) { return a>b?a:b; }
+inline void mgl_strncpy(char *a, const char *b, size_t s) { strncpy(a,b,s); a[s-1]=0; }
//-----------------------------------------------------------------------------
extern "C" {
#else
diff --git a/include/mgl2/mgl.h b/include/mgl2/mgl.h
index 3d12d9b..4fc85ed 100644
--- a/include/mgl2/mgl.h
+++ b/include/mgl2/mgl.h
@@ -1283,6 +1283,14 @@ public:
/** Style 'x' draw belts in x-direction. */
inline void Belt(const mglDataA &z, const char *stl="", const char *opt="")
{ mgl_belt(gr, &z, stl, opt); }
+ /// Draw belts for 2d data specified parametrically with color proportional to c
+ /** Style 'x' draw belts in x-direction. */
+ inline void BeltC(const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &c, const char *stl="", const char *opt="")
+ { mgl_beltc_xy(gr, &x, &y, &z, &c, stl, opt); }
+ /// Draw belts for 2d data with color proportional to c
+ /** Style 'x' draw belts in x-direction. */
+ inline void BeltC(const mglDataA &z, const mglDataA &c, const char *stl="", const char *opt="")
+ { mgl_beltc(gr, &z, &c, stl, opt); }
/// Draw surface for 2d data specified parametrically with color proportional to z
/** Style ‘#’ draw grid lines. Style ‘.’ produce plot by dots.*/
diff --git a/include/mgl2/qmathgl.h b/include/mgl2/qmathgl.h
index de95e27..228ddc5 100644
--- a/include/mgl2/qmathgl.h
+++ b/include/mgl2/qmathgl.h
@@ -206,7 +206,6 @@ protected:
bool dotsRefr; ///< Set dots for image preview/rotation
mreal x1,x2,y1,y2; ///< Zoom in region
mreal ax1,ax2,ay1,ay2; ///< Axis range zoom
- bool showMessage; ///< Flag for showing messages (enabled by each execute())
QMenu *popup; ///< Pointer to pop-up menu
QTimer *timer; ///< Timer for animation
QTimer *timerRefr; ///< Timer for redrawing
diff --git a/include/mgl2/surf.h b/include/mgl2/surf.h
index 046c7e7..c828354 100644
--- a/include/mgl2/surf.h
+++ b/include/mgl2/surf.h
@@ -66,6 +66,15 @@ void MGL_EXPORT mgl_belt_xy_(uintptr_t *graph, uintptr_t *x, uintptr_t *y, uintp
void MGL_EXPORT mgl_belt(HMGL graph, HCDT z, const char *sch, const char *opt);
void MGL_EXPORT mgl_belt_(uintptr_t *graph, uintptr_t *z, const char *sch, const char *opt,int,int);
+/// Draw belts for 2d data specified parametrically with color proportional to c
+/** Style 'x' draw belts in x-direction. */
+void MGL_EXPORT mgl_beltc_xy(HMGL graph, HCDT x, HCDT y, HCDT z, HCDT c, const char *sch, const char *opt);
+void MGL_EXPORT mgl_beltc_xy_(uintptr_t *graph, uintptr_t *x, uintptr_t *y, uintptr_t *z, uintptr_t *c, const char *sch, const char *opt,int,int);
+/// Draw belts for 2d data with color proportional to c
+/** Style 'x' draw belts in x-direction. */
+void MGL_EXPORT mgl_beltc(HMGL graph, HCDT z, HCDT c, const char *sch, const char *opt);
+void MGL_EXPORT mgl_beltc_(uintptr_t *graph, uintptr_t *z, uintptr_t *c, const char *sch, const char *opt,int,int);
+
/// Draw surface for 2d data specified parametrically with color proportional to z
/** Style ‘#’ draw grid lines. Style ‘.’ produce plot by dots.*/
void MGL_EXPORT mgl_surf_xy(HMGL graph, HCDT x, HCDT y, HCDT z, const char *sch, const char *opt);
diff --git a/include/mgl2/wnd.h b/include/mgl2/wnd.h
index 8cadd9c..4e4c456 100644
--- a/include/mgl2/wnd.h
+++ b/include/mgl2/wnd.h
@@ -33,7 +33,7 @@ public:
virtual void Reload(){} ///< Function for reloading data
virtual void Click() {} ///< Callback function on mouse click
#if MGL_HAVE_PTHR_WIDGET
- mglDraw() { running=false; pthread_mutex_init(&mutex,NULL); }
+ mglDraw() { running=false; pthread_mutex_init(&mutex,NULL); thr=0; }
virtual ~mglDraw() { pthread_mutex_destroy(&mutex); }
virtual void Calc() {} ///< Function for calculations
diff --git a/include/mgl2/wx.h b/include/mgl2/wx.h
index 6e1d051..b7d208e 100644
--- a/include/mgl2/wx.h
+++ b/include/mgl2/wx.h
@@ -127,7 +127,6 @@ protected:
bool zoom; ///< Mouse zoom state
bool rotate; ///< Mouse rotation state
mreal x1,x2,y1,y2; ///< Zoom in region
- bool showMessage; ///< Flag for showing messages (enabled by each execute())
wxMenu *popup; ///< Pointer to pop-up menu
wxTimer *timer; ///< Timer for animation
DECLARE_EVENT_TABLE()
diff --git a/json/CMakeLists.txt b/json/CMakeLists.txt
index be5b12c..8e50149 100644
--- a/json/CMakeLists.txt
+++ b/json/CMakeLists.txt
@@ -1,5 +1,5 @@
if(enable-qt5)
- include(../cmake-qt5.txt)
+ include(../scripts/qt5.cmake)
find_qt5_libs(OFF ON Network)
if(TARGET Qt5::Network)
@@ -25,7 +25,7 @@ if(enable-qt5)
set(enable-json-sample OFF)
endif(TARGET Qt5::Network)
else(enable-qt5)
- include(../cmake-qt4.txt)
+ include(../scripts/qt4.cmake)
foreach(mgl_qt4_lib ${MGL_QT4_LIBS_FIND_JSON})
if(TARGET Qt4::${mgl_qt4_lib})
diff --git a/mathgl_en.po b/mathgl_en.po
index 159df64..3db32ce 100644
--- a/mathgl_en.po
+++ b/mathgl_en.po
@@ -1,4 +1,4 @@
-#: mgllab/mgllab.cpp:417
+#: mgllab/mgllab.cpp:415
#, c-format
msgid ""
"\t-1 str set str as argument $1 for script\n"
@@ -120,7 +120,7 @@ msgstr ""
msgid " Save"
msgstr ""
-#: mgllab/mgllab.cpp:227
+#: mgllab/mgllab.cpp:225
msgid " Yes "
msgstr ""
@@ -424,7 +424,7 @@ msgstr ""
msgid "1D plots"
msgstr ""
-#: mgllab/help.cpp:359
+#: mgllab/help.cpp:360
msgid "1D view"
msgstr ""
@@ -440,7 +440,7 @@ msgstr ""
msgid "2D plots"
msgstr ""
-#: mgllab/help.cpp:361
+#: mgllab/help.cpp:362
msgid "2D view"
msgstr ""
@@ -456,7 +456,7 @@ msgstr ""
msgid "3D plots"
msgstr ""
-#: mgllab/help.cpp:363
+#: mgllab/help.cpp:364
msgid "3D view"
msgstr ""
@@ -494,7 +494,7 @@ msgstr ""
msgid "@<- Prev"
msgstr ""
-#: widgets/qt.cpp:1277 udav/udav_wnd.cpp:331 mgllab/mgllab.cpp:332
+#: widgets/qt.cpp:1277 udav/udav_wnd.cpp:331 mgllab/mgllab.cpp:330
msgid "About"
msgstr ""
@@ -612,11 +612,11 @@ msgstr ""
msgid "Add user-defined symbol"
msgstr ""
-#: widgets/fltk.cpp:851
+#: widgets/fltk.cpp:852
msgid "Adjust picture size to fill drawing area"
msgstr ""
-#: widgets/fltk.cpp:814 widgets/qt.cpp:1139 udav/plot_pnl.cpp:337
+#: widgets/fltk.cpp:815 widgets/qt.cpp:1139 udav/plot_pnl.cpp:337
msgid "Adjust size"
msgstr ""
@@ -779,7 +779,7 @@ msgstr ""
msgid "Backward"
msgstr ""
-#: src/font.cpp:947
+#: src/font.cpp:948
#, c-format
msgid "Bad '%ls' at %zu\n"
msgstr ""
@@ -860,8 +860,8 @@ msgstr ""
#. TODO
#. connect(hidden,SIGNAL(cursorPositionChanged()),this,SLOT(hiddenClicked()));
-#: udav/udav_wnd.cpp:194 udav/udav_wnd.cpp:206 mgllab/mgllab.cpp:326
-#: mgllab/mgllab.cpp:557
+#: udav/udav_wnd.cpp:194 udav/udav_wnd.cpp:206 mgllab/mgllab.cpp:324
+#: mgllab/mgllab.cpp:554
msgid "Calculator"
msgstr ""
@@ -873,7 +873,7 @@ msgstr ""
#: mgllab/editor.cpp:282 mgllab/mathgl.cpp:164 mgllab/mathgl.cpp:195
#: mgllab/dialogs.cpp:120 mgllab/dialogs.cpp:164 mgllab/dialogs.cpp:410
#: mgllab/dialogs.cpp:584 mgllab/dialogs.cpp:749 mgllab/dialogs.cpp:1071
-#: mgllab/dialogs.cpp:1318 mgllab/dialogs.cpp:1473 mgllab/mgllab.cpp:482
+#: mgllab/dialogs.cpp:1318 mgllab/dialogs.cpp:1473 mgllab/mgllab.cpp:479
#: mgllab/table.cpp:101 mgllab/table.cpp:179 mgllab/table.cpp:353
#: mgllab/table.cpp:556 mgllab/table.cpp:619 mgllab/table.cpp:674
msgid "Cancel"
@@ -883,7 +883,7 @@ msgstr ""
msgid "Cannot triangulate this set!"
msgstr ""
-#: udav/udav_wnd.cpp:226 mgllab/mgllab.cpp:355 mgllab/mgllab.cpp:356
+#: udav/udav_wnd.cpp:226 mgllab/mgllab.cpp:353 mgllab/mgllab.cpp:354
msgid "Canvas"
msgstr ""
@@ -946,8 +946,8 @@ msgstr ""
#. o = new Fl_Button(180, 130, 25, 25);o->image(img_save); o->tooltip("img_save");
#: widgets/qt.cpp:1091 udav/find_dlg.cpp:52 udav/hint_dlg.cpp:70
-#: mgllab/editor.cpp:565 mgllab/help.cpp:308 mgllab/help.cpp:367
-#: mgllab/help.cpp:483
+#: mgllab/editor.cpp:565 mgllab/help.cpp:308 mgllab/help.cpp:368
+#: mgllab/help.cpp:484
msgid "Close"
msgstr ""
@@ -991,7 +991,7 @@ msgstr ""
msgid "Column expr"
msgstr ""
-#: mgllab/dialogs.cpp:724 mgllab/mgllab.cpp:305
+#: mgllab/dialogs.cpp:724 mgllab/mgllab.cpp:303
msgid "Command"
msgstr ""
@@ -1047,7 +1047,7 @@ msgstr ""
msgid "Copy data from another variable"
msgstr ""
-#: widgets/fltk.cpp:811
+#: widgets/fltk.cpp:812
msgid "Copy graphics"
msgstr ""
@@ -1055,7 +1055,7 @@ msgstr ""
msgid "Copy graphics to clipboard (Ctrl+Shift+G)."
msgstr ""
-#: widgets/fltk.cpp:855
+#: widgets/fltk.cpp:856
msgid "Copy image to clipboard"
msgstr ""
@@ -1075,7 +1075,7 @@ msgstr ""
msgid "Copy selection to clipboard"
msgstr ""
-#: udav/text_pnl.cpp:533 mgllab/mgllab.cpp:295
+#: udav/text_pnl.cpp:533 mgllab/mgllab.cpp:293
msgid "Copy text"
msgstr ""
@@ -1196,7 +1196,7 @@ msgstr ""
msgid "Cut selected text to clipboard (Ctrl+X)."
msgstr ""
-#: udav/text_pnl.cpp:528 mgllab/mgllab.cpp:294
+#: udav/text_pnl.cpp:528 mgllab/mgllab.cpp:292
msgid "Cut text"
msgstr ""
@@ -1841,7 +1841,7 @@ msgstr ""
msgid "Edges"
msgstr ""
-#: udav/text_pnl.cpp:84 mgllab/mgllab.cpp:292
+#: udav/text_pnl.cpp:84 mgllab/mgllab.cpp:290
msgid "Edit"
msgstr ""
@@ -1853,13 +1853,13 @@ msgstr ""
msgid "Elliptic"
msgstr ""
-#: udav/prop_dlg.cpp:171 mgllab/mgllab.cpp:474
+#: udav/prop_dlg.cpp:171 mgllab/mgllab.cpp:471
msgid "Enable keywords completion"
msgstr ""
#. pure = new QCheckBox(_("Disable face drawing (faster) for mouse rotation/shift/zoom."), this);
#. pure->setChecked(mglAutoPure); v->addWidget(pure); pure->setEnabled(false);
-#: udav/prop_dlg.cpp:169 mgllab/mgllab.cpp:476
+#: udav/prop_dlg.cpp:169 mgllab/mgllab.cpp:473
msgid "Enable mouse wheel for zooming"
msgstr ""
@@ -1989,7 +1989,7 @@ msgstr ""
msgid "Execute if condition is false"
msgstr ""
-#: mgllab/mgllab.cpp:472
+#: mgllab/mgllab.cpp:469
msgid "Execute script after loading"
msgstr ""
@@ -2005,7 +2005,7 @@ msgstr ""
msgid "Existed data arrays"
msgstr ""
-#: mgllab/mgllab.cpp:290
+#: mgllab/mgllab.cpp:288
msgid "Exit"
msgstr ""
@@ -2021,7 +2021,7 @@ msgstr ""
msgid "Export Data?"
msgstr ""
-#: widgets/fltk.cpp:789
+#: widgets/fltk.cpp:790
msgid "Export as ..."
msgstr ""
@@ -2068,7 +2068,7 @@ msgstr ""
#. file menu
#: widgets/qt.cpp:1066 udav/udav_wnd.cpp:281 udav/dat_pnl.cpp:681
-#: mgllab/mgllab.cpp:277 mgllab/table.cpp:748
+#: mgllab/mgllab.cpp:275 mgllab/table.cpp:748
msgid "File"
msgstr ""
@@ -2076,7 +2076,7 @@ msgstr ""
msgid "File %1 saved"
msgstr ""
-#: mgllab/mgllab.cpp:227
+#: mgllab/mgllab.cpp:225
msgid "File is exesist. Overwrite it?"
msgstr ""
@@ -2084,7 +2084,7 @@ msgstr ""
msgid "File name"
msgstr ""
-#: mgllab/mgllab.cpp:303
+#: mgllab/mgllab.cpp:301
msgid "File path"
msgstr ""
@@ -2092,7 +2092,7 @@ msgstr ""
msgid "File to export"
msgstr ""
-#: mgllab/editor.cpp:267 mgllab/mgllab.cpp:396
+#: mgllab/editor.cpp:267 mgllab/mgllab.cpp:394
msgid "File/Recent files"
msgstr ""
@@ -2156,7 +2156,7 @@ msgstr ""
msgid "Find minimal value over direction"
msgstr ""
-#: udav/text_pnl.cpp:551 mgllab/mgllab.cpp:301
+#: udav/text_pnl.cpp:551 mgllab/mgllab.cpp:299
msgid "Find next"
msgstr ""
@@ -2188,7 +2188,7 @@ msgstr ""
msgid "Find/Replace"
msgstr ""
-#: mgllab/mgllab.cpp:300
+#: mgllab/mgllab.cpp:298
msgid "Find|Replace"
msgstr ""
@@ -2208,7 +2208,7 @@ msgstr ""
msgid "Fit data to formula"
msgstr ""
-#: udav/text_pnl.cpp:567 mgllab/mgllab.cpp:307
+#: udav/text_pnl.cpp:567 mgllab/mgllab.cpp:305
msgid "Fitted formula"
msgstr ""
@@ -2224,11 +2224,11 @@ msgstr ""
msgid "Fog dist."
msgstr ""
-#: mgllab/mgllab.cpp:533
+#: mgllab/mgllab.cpp:530
msgid "Folder for help files"
msgstr ""
-#: udav/text_pnl.cpp:587 mgllab/mgllab.cpp:304
+#: udav/text_pnl.cpp:587 mgllab/mgllab.cpp:302
msgid "Folder path"
msgstr ""
@@ -2236,7 +2236,7 @@ msgstr ""
msgid "Font"
msgstr ""
-#: mgllab/mgllab.cpp:524
+#: mgllab/mgllab.cpp:521
msgid "Font file name"
msgstr ""
@@ -2244,11 +2244,11 @@ msgstr ""
msgid "Font files (*.vfm)"
msgstr ""
-#: mgllab/mgllab.cpp:463
+#: mgllab/mgllab.cpp:460
msgid "Font kind"
msgstr ""
-#: mgllab/mgllab.cpp:465
+#: mgllab/mgllab.cpp:462
msgid "Font size"
msgstr ""
@@ -2277,7 +2277,7 @@ msgstr ""
msgid "From"
msgstr ""
-#: mgllab/mgllab.cpp:592
+#: mgllab/mgllab.cpp:589
msgid "Function"
msgstr ""
@@ -2349,7 +2349,7 @@ msgid "Go to the specified slice for 3D data."
msgstr ""
#: widgets/qt.cpp:1095 widgets/qt.cpp:1097 udav/plot_pnl.cpp:66
-#: mgllab/mgllab.cpp:319
+#: mgllab/mgllab.cpp:317
msgid "Graphics"
msgstr ""
@@ -2357,7 +2357,7 @@ msgstr ""
msgid "Graphics setup"
msgstr ""
-#: widgets/fltk.cpp:927
+#: widgets/fltk.cpp:928
msgid "Graphics/Adjust size"
msgstr ""
@@ -2366,143 +2366,143 @@ msgstr ""
#. /< Callback function for prev frame
#. /< Callback function for delay
#. /< Callback function for reloading
-#: widgets/fltk.cpp:921 include/mgl2/Fl_MathGL.h:150
+#: widgets/fltk.cpp:922 include/mgl2/Fl_MathGL.h:150
msgid "Graphics/Alpha"
msgstr ""
-#: widgets/fltk.cpp:956
+#: widgets/fltk.cpp:957
msgid "Graphics/Animation/Next frame"
msgstr ""
-#: widgets/fltk.cpp:957
+#: widgets/fltk.cpp:958
msgid "Graphics/Animation/Prev frame"
msgstr ""
-#: mgllab/mgllab.cpp:371
+#: mgllab/mgllab.cpp:369
msgid "Graphics/Animation/Setup animation"
msgstr ""
-#: widgets/fltk.cpp:955 include/mgl2/Fl_MathGL.h:152
+#: widgets/fltk.cpp:956 include/mgl2/Fl_MathGL.h:152
msgid "Graphics/Animation/Slideshow"
msgstr ""
-#: widgets/fltk.cpp:931
+#: widgets/fltk.cpp:932
msgid "Graphics/Copy click coor."
msgstr ""
-#: widgets/fltk.cpp:930
+#: widgets/fltk.cpp:931
msgid "Graphics/Copy graphics"
msgstr ""
-#: widgets/fltk.cpp:944
+#: widgets/fltk.cpp:945
msgid "Graphics/Export/as BMP"
msgstr ""
-#: widgets/fltk.cpp:942
+#: widgets/fltk.cpp:943
msgid "Graphics/Export/as GIF"
msgstr ""
-#: widgets/fltk.cpp:939
+#: widgets/fltk.cpp:940
msgid "Graphics/Export/as JPEG"
msgstr ""
-#: widgets/fltk.cpp:950
+#: widgets/fltk.cpp:951
msgid "Graphics/Export/as OBJ"
msgstr ""
-#: widgets/fltk.cpp:951
+#: widgets/fltk.cpp:952
msgid "Graphics/Export/as OFF"
msgstr ""
-#: widgets/fltk.cpp:935
+#: widgets/fltk.cpp:936
msgid "Graphics/Export/as PNG"
msgstr ""
-#: widgets/fltk.cpp:949
+#: widgets/fltk.cpp:950
msgid "Graphics/Export/as PRC"
msgstr ""
-#: widgets/fltk.cpp:952
+#: widgets/fltk.cpp:953
msgid "Graphics/Export/as STL"
msgstr ""
-#: widgets/fltk.cpp:945
+#: widgets/fltk.cpp:946
msgid "Graphics/Export/as SVG"
msgstr ""
-#: widgets/fltk.cpp:948
+#: widgets/fltk.cpp:949
msgid "Graphics/Export/as TeX"
msgstr ""
-#: widgets/fltk.cpp:953
+#: widgets/fltk.cpp:954
msgid "Graphics/Export/as XYZ"
msgstr ""
-#: widgets/fltk.cpp:947
+#: widgets/fltk.cpp:948
msgid "Graphics/Export/as bitmap EPS"
msgstr ""
-#: widgets/fltk.cpp:936
+#: widgets/fltk.cpp:937
msgid "Graphics/Export/as solid PNG"
msgstr ""
-#: widgets/fltk.cpp:946
+#: widgets/fltk.cpp:947
msgid "Graphics/Export/as vector EPS"
msgstr ""
-#: widgets/fltk.cpp:923 include/mgl2/Fl_MathGL.h:153
+#: widgets/fltk.cpp:924 include/mgl2/Fl_MathGL.h:153
msgid "Graphics/Grid"
msgstr ""
-#: widgets/fltk.cpp:922 include/mgl2/Fl_MathGL.h:151
+#: widgets/fltk.cpp:923 include/mgl2/Fl_MathGL.h:151
msgid "Graphics/Light"
msgstr ""
-#: widgets/fltk.cpp:932 include/mgl2/Fl_MathGL.h:159 mgllab/mgllab.cpp:372
+#: widgets/fltk.cpp:933 include/mgl2/Fl_MathGL.h:159 mgllab/mgllab.cpp:370
msgid "Graphics/Pause calc"
msgstr ""
-#: mgllab/mgllab.cpp:370
+#: mgllab/mgllab.cpp:368
msgid "Graphics/Primitive"
msgstr ""
-#: widgets/fltk.cpp:926
+#: widgets/fltk.cpp:927
msgid "Graphics/Redraw"
msgstr ""
-#: widgets/fltk.cpp:928
+#: widgets/fltk.cpp:929
msgid "Graphics/Reload data"
msgstr ""
-#: widgets/fltk.cpp:925
+#: widgets/fltk.cpp:926
msgid "Graphics/Restore"
msgstr ""
-#: widgets/fltk.cpp:929
+#: widgets/fltk.cpp:930
msgid "Graphics/Stop"
msgstr ""
-#: widgets/fltk.cpp:963
+#: widgets/fltk.cpp:964
msgid "Graphics/Transform/Move down"
msgstr ""
-#: widgets/fltk.cpp:959
+#: widgets/fltk.cpp:960
msgid "Graphics/Transform/Move left"
msgstr ""
-#: widgets/fltk.cpp:964
+#: widgets/fltk.cpp:965
msgid "Graphics/Transform/Move right"
msgstr ""
-#: widgets/fltk.cpp:960
+#: widgets/fltk.cpp:961
msgid "Graphics/Transform/Move up"
msgstr ""
-#: widgets/fltk.cpp:961
+#: widgets/fltk.cpp:962
msgid "Graphics/Transform/Zoom in"
msgstr ""
-#: widgets/fltk.cpp:962
+#: widgets/fltk.cpp:963
msgid "Graphics/Transform/Zoom out"
msgstr ""
@@ -2545,8 +2545,8 @@ msgid "Height of selected cells"
msgstr ""
#: widgets/qt.cpp:1276 udav/help_pnl.cpp:57 udav/udav_wnd.cpp:231
-#: udav/udav_wnd.cpp:323 mgllab/mgllab.cpp:329 mgllab/mgllab.cpp:330
-#: mgllab/mgllab.cpp:358
+#: udav/udav_wnd.cpp:323 mgllab/mgllab.cpp:327 mgllab/mgllab.cpp:328
+#: mgllab/mgllab.cpp:356
msgid "Help"
msgstr ""
@@ -2556,7 +2556,7 @@ msgid ""
"Options are used for additional plot tunning."
msgstr ""
-#: udav/udav_wnd.cpp:186 mgllab/mgllab.cpp:298
+#: udav/udav_wnd.cpp:186 mgllab/mgllab.cpp:296
msgid "Hidden plots"
msgstr ""
@@ -2568,11 +2568,11 @@ msgstr ""
msgid "Hide selected plots."
msgstr ""
-#: udav/prop_dlg.cpp:173 mgllab/mgllab.cpp:475
+#: udav/prop_dlg.cpp:173 mgllab/mgllab.cpp:472
msgid "Highlight current object(s)"
msgstr ""
-#: udav/udav_wnd.cpp:328 mgllab/mgllab.cpp:331
+#: udav/udav_wnd.cpp:328 mgllab/mgllab.cpp:329
msgid "Hints"
msgstr ""
@@ -2592,7 +2592,7 @@ msgstr ""
msgid "ID"
msgstr ""
-#: mgllab/mgllab.cpp:333
+#: mgllab/mgllab.cpp:331
msgid "Icon list"
msgstr ""
@@ -2652,16 +2652,16 @@ msgstr ""
msgid "Info"
msgstr ""
-#: udav/info_dlg.cpp:55 mgllab/help.cpp:353
+#: udav/info_dlg.cpp:55 mgllab/help.cpp:354
msgid "Information"
msgstr ""
-#: mgllab/mgllab.cpp:306
+#: mgllab/mgllab.cpp:304
msgid "Inplot"
msgstr ""
#. insert menu
-#: udav/text_pnl.cpp:557 mgllab/mgllab.cpp:302
+#: udav/text_pnl.cpp:557 mgllab/mgllab.cpp:300
msgid "Insert"
msgstr ""
@@ -2783,7 +2783,7 @@ msgstr ""
msgid "Language for UDAV"
msgstr ""
-#: mgllab/mgllab.cpp:478
+#: mgllab/mgllab.cpp:475
msgid "Language for mgllab"
msgstr ""
@@ -2915,11 +2915,11 @@ msgstr ""
msgid "MGL commands for selected group"
msgstr ""
-#: mgllab/mgllab.cpp:214
+#: mgllab/mgllab.cpp:212
msgid "MGL files \t*.mgl"
msgstr ""
-#: mgllab/mgllab.cpp:173
+#: mgllab/mgllab.cpp:172
msgid ""
"MGL files \t*.mgl\n"
"DAT files \t*.{dat,csv}"
@@ -2977,7 +2977,7 @@ msgstr ""
msgid "Manual mask"
msgstr ""
-#: udav/text_pnl.cpp:591 mgllab/mgllab.cpp:308
+#: udav/text_pnl.cpp:591 mgllab/mgllab.cpp:306
msgid "Manual primitives"
msgstr ""
@@ -3063,7 +3063,7 @@ msgstr ""
msgid "Maximum of"
msgstr ""
-#: udav/mem_pnl.cpp:68 udav/mem_pnl.cpp:73 mgllab/mgllab.cpp:360
+#: udav/mem_pnl.cpp:68 udav/mem_pnl.cpp:73 mgllab/mgllab.cpp:358
msgid "Memory"
msgstr ""
@@ -3075,7 +3075,7 @@ msgstr ""
msgid "MeshNum"
msgstr ""
-#: mgllab/mgllab.cpp:327
+#: mgllab/mgllab.cpp:325
msgid "Messages"
msgstr ""
@@ -3253,7 +3253,7 @@ msgstr ""
msgid "New order of dimensions"
msgstr ""
-#: udav/udav_wnd.cpp:282 mgllab/mgllab.cpp:278
+#: udav/udav_wnd.cpp:282 mgllab/mgllab.cpp:276
msgid "New script"
msgstr ""
@@ -3285,7 +3285,7 @@ msgstr ""
msgid "Next slide"
msgstr ""
-#: mgllab/help.cpp:135 mgllab/mgllab.cpp:227
+#: mgllab/help.cpp:135 mgllab/mgllab.cpp:225
msgid "No"
msgstr ""
@@ -3325,7 +3325,7 @@ msgstr ""
msgid "No text rotation"
msgstr ""
-#: widgets/fltk.cpp:812
+#: widgets/fltk.cpp:813
msgid "Normal view"
msgstr ""
@@ -3396,7 +3396,7 @@ msgstr ""
#: udav/data_dlg.cpp:92 udav/subplot_dlg.cpp:221 mgllab/mathgl.cpp:196
#: mgllab/dialogs.cpp:121 mgllab/dialogs.cpp:165 mgllab/dialogs.cpp:411
#: mgllab/dialogs.cpp:585 mgllab/dialogs.cpp:750 mgllab/dialogs.cpp:1072
-#: mgllab/dialogs.cpp:1319 mgllab/dialogs.cpp:1474 mgllab/mgllab.cpp:483
+#: mgllab/dialogs.cpp:1319 mgllab/dialogs.cpp:1474 mgllab/mgllab.cpp:480
#: mgllab/table.cpp:621
msgid "OK"
msgstr ""
@@ -3405,7 +3405,7 @@ msgstr ""
msgid "Only current slice will be inserted"
msgstr ""
-#: mgllab/mgllab.cpp:172
+#: mgllab/mgllab.cpp:171
msgid "Open File?"
msgstr ""
@@ -3427,7 +3427,7 @@ msgstr ""
msgid "Open file"
msgstr ""
-#: mgllab/mgllab.cpp:279
+#: mgllab/mgllab.cpp:277
msgid "Open file ..."
msgstr ""
@@ -3456,7 +3456,7 @@ msgid "Operations"
msgstr ""
#: udav/prop_dlg.cpp:91 udav/newcmd_dlg.cpp:72 mgllab/dialogs.cpp:746
-#: mgllab/mgllab.cpp:310
+#: mgllab/mgllab.cpp:308
msgid "Options"
msgstr ""
@@ -3522,7 +3522,7 @@ msgstr ""
msgid "Paste range of numbers from clipboard (Ctrl+Shift+P)."
msgstr ""
-#: udav/text_pnl.cpp:538 mgllab/mgllab.cpp:296
+#: udav/text_pnl.cpp:538 mgllab/mgllab.cpp:294
msgid "Paste text"
msgstr ""
@@ -3534,11 +3534,11 @@ msgstr ""
msgid "Paste text or data from clipboard (Ctrl+V)."
msgstr ""
-#: mgllab/mgllab.cpp:469
+#: mgllab/mgllab.cpp:466
msgid "Path for MathGL font (without extension)"
msgstr ""
-#: udav/prop_dlg.cpp:110 mgllab/mgllab.cpp:466
+#: udav/prop_dlg.cpp:110 mgllab/mgllab.cpp:463
msgid "Path for help files"
msgstr ""
@@ -3551,7 +3551,7 @@ msgid "Pause calculation"
msgstr ""
#. Wnd->connect(a, SIGNAL(triggered()), QMGL, SLOT(setPause()));
-#: widgets/fltk.cpp:891 widgets/qt.cpp:1270
+#: widgets/fltk.cpp:892 widgets/qt.cpp:1270
msgid "Pause on/off external calculations"
msgstr ""
@@ -3559,7 +3559,7 @@ msgstr ""
msgid "Perform Runge-Kutta step"
msgstr ""
-#: widgets/fltk.cpp:864
+#: widgets/fltk.cpp:865
msgid "Phi angle (rotate in x*y plane)"
msgstr ""
@@ -3590,11 +3590,11 @@ msgid ""
"of plot, its style and so on."
msgstr ""
-#: mgllab/mgllab.cpp:325
+#: mgllab/mgllab.cpp:323
msgid "Plot setup"
msgstr ""
-#: udav/text_pnl.cpp:571 mgllab/dialogs.cpp:312 mgllab/mgllab.cpp:309
+#: udav/text_pnl.cpp:571 mgllab/dialogs.cpp:312 mgllab/mgllab.cpp:307
msgid "Plot style"
msgstr ""
@@ -3622,7 +3622,7 @@ msgstr ""
msgid "Preview"
msgstr ""
-#: mgllab/mgllab.cpp:566
+#: mgllab/mgllab.cpp:563
msgid "Previous expressions"
msgstr ""
@@ -3658,7 +3658,7 @@ msgstr ""
msgid "Print message or information about the data"
msgstr ""
-#: mgllab/mgllab.cpp:282
+#: mgllab/mgllab.cpp:280
msgid "Print plot"
msgstr ""
@@ -3686,7 +3686,7 @@ msgstr ""
msgid "Program flow"
msgstr ""
-#: udav/udav_wnd.cpp:312 mgllab/mgllab.cpp:322 mgllab/mgllab.cpp:461
+#: udav/udav_wnd.cpp:312 mgllab/mgllab.cpp:320 mgllab/mgllab.cpp:458
msgid "Properties"
msgstr ""
@@ -3698,7 +3698,7 @@ msgstr ""
msgid "Pulse prop."
msgstr ""
-#: udav/calc_dlg.cpp:127 mgllab/mgllab.cpp:600
+#: udav/calc_dlg.cpp:127 mgllab/mgllab.cpp:597
msgid "Put function"
msgstr ""
@@ -3752,7 +3752,7 @@ msgstr ""
msgid "Read data with name 'id' from HDF file"
msgstr ""
-#: udav/udav_wnd.cpp:268 mgllab/mgllab.cpp:367
+#: udav/udav_wnd.cpp:268 mgllab/mgllab.cpp:365
msgid "Ready"
msgstr ""
@@ -3760,7 +3760,7 @@ msgstr ""
msgid "Rearrange data dimensions"
msgstr ""
-#: udav/udav_wnd.cpp:301 mgllab/mgllab.cpp:283
+#: udav/udav_wnd.cpp:301 mgllab/mgllab.cpp:281
msgid "Recent files"
msgstr ""
@@ -3784,7 +3784,7 @@ msgstr ""
msgid "Redraw picture for $0 equal to"
msgstr ""
-#: widgets/fltk.cpp:813
+#: widgets/fltk.cpp:814
msgid "Redraw plot"
msgstr ""
@@ -3792,7 +3792,7 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: widgets/fltk.cpp:847
+#: widgets/fltk.cpp:848
msgid "Refresh the picture"
msgstr ""
@@ -3804,11 +3804,11 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: widgets/fltk.cpp:815
+#: widgets/fltk.cpp:816
msgid "Reload data"
msgstr ""
-#: widgets/fltk.cpp:853
+#: widgets/fltk.cpp:854
msgid "Reload data and refresh the picture"
msgstr ""
@@ -3894,7 +3894,7 @@ msgstr ""
msgid "Restore"
msgstr ""
-#: widgets/fltk.cpp:844
+#: widgets/fltk.cpp:845
msgid "Restore default graphics rotation, zoom and perspective"
msgstr ""
@@ -3964,7 +3964,7 @@ msgstr ""
msgid "Rotate on"
msgstr ""
-#: widgets/fltk.cpp:840
+#: widgets/fltk.cpp:841
msgid "Rotate picture by holding left mouse button"
msgstr ""
@@ -3994,7 +3994,7 @@ msgid ""
"then the dialog with slideshow options will appear."
msgstr ""
-#: widgets/fltk.cpp:885
+#: widgets/fltk.cpp:886
msgid "Run/Stop slideshow (graphics animation)"
msgstr ""
@@ -4022,7 +4022,7 @@ msgstr ""
msgid "Save Data?"
msgstr ""
-#: widgets/fltk.cpp:572 mgllab/mgllab.cpp:214
+#: widgets/fltk.cpp:573 mgllab/mgllab.cpp:212
msgid "Save File As?"
msgstr ""
@@ -4030,7 +4030,7 @@ msgstr ""
msgid "Save JPEG frames"
msgstr ""
-#: udav/udav_wnd.cpp:290 mgllab/mgllab.cpp:281
+#: udav/udav_wnd.cpp:290 mgllab/mgllab.cpp:279
msgid "Save as ..."
msgstr ""
@@ -4050,11 +4050,11 @@ msgstr ""
msgid "Save data to file"
msgstr ""
-#: mgllab/mgllab.cpp:280
+#: mgllab/mgllab.cpp:278
msgid "Save file"
msgstr ""
-#: mgllab/mgllab.cpp:473
+#: mgllab/mgllab.cpp:470
msgid "Save file before redrawing"
msgstr ""
@@ -4094,7 +4094,7 @@ msgstr ""
msgid "Search backward"
msgstr ""
-#: udav/text_pnl.cpp:543 mgllab/mgllab.cpp:297
+#: udav/text_pnl.cpp:543 mgllab/mgllab.cpp:295
msgid "Select all"
msgstr ""
@@ -4150,7 +4150,7 @@ msgstr ""
msgid "Set arbitrary position of plot in picture"
msgstr ""
-#: udav/udav_wnd.cpp:315 mgllab/mgllab.cpp:323
+#: udav/udav_wnd.cpp:315 mgllab/mgllab.cpp:321
msgid "Set arguments"
msgstr ""
@@ -4390,11 +4390,11 @@ msgstr ""
msgid "Settings"
msgstr ""
-#: mgllab/mgllab.cpp:321
+#: mgllab/mgllab.cpp:319
msgid "Setup"
msgstr ""
-#: mgllab/mgllab.cpp:324
+#: mgllab/mgllab.cpp:322
msgid "Setup animation"
msgstr ""
@@ -4442,19 +4442,19 @@ msgstr ""
msgid "Shear plot"
msgstr ""
-#: widgets/fltk.cpp:878
+#: widgets/fltk.cpp:879
msgid "Shift the picture down"
msgstr ""
-#: widgets/fltk.cpp:870
+#: widgets/fltk.cpp:871
msgid "Shift the picture left"
msgstr ""
-#: widgets/fltk.cpp:876
+#: widgets/fltk.cpp:877
msgid "Shift the picture right"
msgstr ""
-#: widgets/fltk.cpp:868
+#: widgets/fltk.cpp:869
msgid "Shift the picture up"
msgstr ""
@@ -4534,11 +4534,11 @@ msgstr ""
msgid "Show info"
msgstr ""
-#: mgllab/mgllab.cpp:299
+#: mgllab/mgllab.cpp:297
msgid "Show lines"
msgstr ""
-#: widgets/fltk.cpp:886
+#: widgets/fltk.cpp:887
msgid "Show next frame in slideshow"
msgstr ""
@@ -4546,7 +4546,7 @@ msgstr ""
msgid "Show next slide (Ctrl+.)."
msgstr ""
-#: widgets/fltk.cpp:881
+#: widgets/fltk.cpp:882
msgid "Show previous frame in slideshow"
msgstr ""
@@ -4706,7 +4706,7 @@ msgstr ""
msgid "Stop"
msgstr ""
-#: widgets/fltk.cpp:849
+#: widgets/fltk.cpp:850
msgid "Stop drawing"
msgstr ""
@@ -4855,7 +4855,7 @@ msgstr ""
msgid "Switch on/off gray-scale mode"
msgstr ""
-#: widgets/fltk.cpp:836
+#: widgets/fltk.cpp:837
msgid "Switch on/off grid drawing"
msgstr ""
@@ -4871,7 +4871,7 @@ msgstr ""
msgid "Switch on/off lightning for the graphics (Ctrl+L)."
msgstr ""
-#: widgets/fltk.cpp:833
+#: widgets/fltk.cpp:834
msgid "Switch on/off lightning in the picture"
msgstr ""
@@ -4901,7 +4901,7 @@ msgstr ""
msgid "Switch on/off transparency for the graphics (Ctrl+T)."
msgstr ""
-#: widgets/fltk.cpp:830
+#: widgets/fltk.cpp:831
msgid "Switch on/off transparency in the picture"
msgstr ""
@@ -4913,7 +4913,7 @@ msgstr ""
msgid "Symmetrical?"
msgstr ""
-#: src/addon.cpp:110 src/base_cf.cpp:266
+#: src/addon.cpp:111 src/base_cf.cpp:266
#, c-format
msgid "TEST: %s\n"
msgstr ""
@@ -5035,7 +5035,7 @@ msgstr ""
msgid "There is wrong command(s) in script"
msgstr ""
-#: widgets/fltk.cpp:862
+#: widgets/fltk.cpp:863
msgid "Theta angle (tilt z-axis)"
msgstr ""
@@ -5267,7 +5267,7 @@ msgstr ""
msgid "UDAV - about"
msgstr ""
-#: udav/anim_dlg.cpp:104
+#: udav/anim_dlg.cpp:105
msgid "UDAV - animation"
msgstr ""
@@ -5310,7 +5310,7 @@ msgid "Underline"
msgstr ""
#. edit menu
-#: udav/text_pnl.cpp:516 mgllab/mgllab.cpp:293
+#: udav/text_pnl.cpp:516 mgllab/mgllab.cpp:291
msgid "Undo"
msgstr ""
@@ -5322,7 +5322,7 @@ msgstr ""
msgid "Untitled"
msgstr ""
-#: mgllab/mgllab.cpp:345 mgllab/mgllab.cpp:349
+#: mgllab/mgllab.cpp:343 mgllab/mgllab.cpp:347
msgid "Untitled - mgllab"
msgstr ""
@@ -5339,7 +5339,7 @@ msgstr ""
msgid "Usage:\tmglconv [parameter(s)] scriptfile\n"
msgstr ""
-#: mgllab/mgllab.cpp:416
+#: mgllab/mgllab.cpp:414
#, c-format
msgid "Usage:\tmgllab [parameter(s)] scriptfile\n"
msgstr ""
@@ -5375,7 +5375,7 @@ msgstr ""
msgid "Use dots plot for preview"
msgstr ""
-#: mgllab/mgllab.cpp:477
+#: mgllab/mgllab.cpp:474
msgid "Use multi-threading for drawing"
msgstr ""
@@ -5425,7 +5425,7 @@ msgstr ""
msgid "Whole area"
msgstr ""
-#: mgllab/mgllab.cpp:480
+#: mgllab/mgllab.cpp:477
msgid "Widget scheme"
msgstr ""
@@ -5652,7 +5652,7 @@ msgstr ""
msgid "You should put text inside ' ' for argument "
msgstr ""
-#: udav/anim_dlg.cpp:105
+#: udav/anim_dlg.cpp:106
msgid "You should select one of case"
msgstr ""
@@ -5712,7 +5712,7 @@ msgstr ""
msgid "Zoom in graphics."
msgstr ""
-#: widgets/fltk.cpp:843
+#: widgets/fltk.cpp:844
msgid "Zoom in selected region of the picture"
msgstr ""
@@ -5721,7 +5721,7 @@ msgstr ""
msgid "Zoom in text"
msgstr ""
-#: widgets/fltk.cpp:872
+#: widgets/fltk.cpp:873
msgid "Zoom in the picture"
msgstr ""
@@ -5737,7 +5737,7 @@ msgstr ""
msgid "Zoom out text"
msgstr ""
-#: widgets/fltk.cpp:874
+#: widgets/fltk.cpp:875
msgid "Zoom out the picture"
msgstr ""
@@ -5846,7 +5846,7 @@ msgstr ""
msgid "center"
msgstr ""
-#: widgets/fltk.cpp:768
+#: widgets/fltk.cpp:769
#, c-format
msgid "click at %g, %g, %g"
msgstr ""
@@ -6028,7 +6028,7 @@ msgid ""
"Current version is 2.%g\n"
msgstr ""
-#: mgllab/mgllab.cpp:415
+#: mgllab/mgllab.cpp:413
#, c-format
msgid ""
"mgllab draw mgl script interactively.\n"
@@ -6243,7 +6243,7 @@ msgstr ""
msgid "to"
msgstr ""
-#: mgllab/mgllab.cpp:564
+#: mgllab/mgllab.cpp:561
msgid "to script"
msgstr ""
diff --git a/mathgl_es.po b/mathgl_es.po
index ec6a946..1bb71d6 100644
--- a/mathgl_es.po
+++ b/mathgl_es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: MathGL2 2.4.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-05-17 07:55+0300\n"
+"POT-Creation-Date: 2017-07-12 22:00+0300\n"
"PO-Revision-Date: 2017-05-11 23:14-0400\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -18,7 +18,7 @@ msgstr ""
"X-Generator: Poedit 1.8.7.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: mgllab/mgllab.cpp:417
+#: mgllab/mgllab.cpp:415
#, c-format
msgid ""
"\t-1 str set str as argument $1 for script\n"
@@ -70,7 +70,7 @@ msgid ""
"http://mathgl.sourceforge.net/"
msgstr ""
-#: src/parser.cpp:1010
+#: src/parser.cpp:1013
#, c-format
msgid ""
"\n"
@@ -79,7 +79,7 @@ msgstr ""
"\n"
"Cambiar datos temporales en linea %ld"
-#: src/parser.cpp:1008
+#: src/parser.cpp:1011
#, c-format
msgid ""
"\n"
@@ -88,14 +88,14 @@ msgstr ""
"\n"
"Cadena de caracteres demasiado larga en linea %ld"
-#: src/parser.cpp:1009
+#: src/parser.cpp:1012
#, c-format
msgid ""
"\n"
"Unbalanced ' in line %ld"
msgstr ""
-#: src/parser.cpp:1006
+#: src/parser.cpp:1009
#, c-format
msgid ""
"\n"
@@ -104,7 +104,7 @@ msgstr ""
"\n"
"Argumento(s) incorrecto(s) en linea %ld"
-#: src/parser.cpp:1007
+#: src/parser.cpp:1010
#, c-format
msgid ""
"\n"
@@ -148,7 +148,7 @@ msgstr " Nuevo"
msgid " Save"
msgstr " Guardar"
-#: mgllab/mgllab.cpp:227
+#: mgllab/mgllab.cpp:225
msgid " Yes "
msgstr " Si "
@@ -452,7 +452,7 @@ msgstr "Grafico 1D"
msgid "1D plots"
msgstr "Graficos 1D"
-#: mgllab/help.cpp:359
+#: mgllab/help.cpp:360
msgid "1D view"
msgstr "Vista 1D"
@@ -468,7 +468,7 @@ msgstr "Grafico 2D"
msgid "2D plots"
msgstr "Graficos 2D"
-#: mgllab/help.cpp:361
+#: mgllab/help.cpp:362
msgid "2D view"
msgstr "Vista 2D"
@@ -484,7 +484,7 @@ msgstr "Datos 3D con tamaños de archivo"
msgid "3D plots"
msgstr "graficos 3D"
-#: mgllab/help.cpp:363
+#: mgllab/help.cpp:364
msgid "3D view"
msgstr "Vista 3D"
@@ -522,7 +522,7 @@ msgstr ""
msgid "@<- Prev"
msgstr ""
-#: widgets/qt.cpp:1277 udav/udav_wnd.cpp:331 mgllab/mgllab.cpp:332
+#: widgets/qt.cpp:1277 udav/udav_wnd.cpp:331 mgllab/mgllab.cpp:330
msgid "About"
msgstr "Acerca de"
@@ -648,11 +648,11 @@ msgstr "Anadir a"
msgid "Add user-defined symbol"
msgstr "Anadir simbolo definido por el usuario"
-#: widgets/fltk.cpp:851
+#: widgets/fltk.cpp:852
msgid "Adjust picture size to fill drawing area"
msgstr "Ajustar tamano de la imagen para llenar el area de grafico"
-#: widgets/fltk.cpp:814 widgets/qt.cpp:1139 udav/plot_pnl.cpp:337
+#: widgets/fltk.cpp:815 widgets/qt.cpp:1139 udav/plot_pnl.cpp:337
msgid "Adjust size"
msgstr "Ajustar tamano"
@@ -817,12 +817,12 @@ msgstr ""
msgid "Backward"
msgstr ""
-#: src/font.cpp:947
+#: src/font.cpp:948
#, c-format
msgid "Bad '%ls' at %zu\n"
msgstr ""
-#: src/parser.cpp:766
+#: src/parser.cpp:769
#, c-format
msgid "Bad arguments for %ls: %ld instead of %d\n"
msgstr ""
@@ -863,7 +863,7 @@ msgstr ""
msgid "Both fields in zrange must be filled"
msgstr ""
-#: src/parser.cpp:1423
+#: src/parser.cpp:1426
msgid "Break for-loop"
msgstr ""
@@ -898,8 +898,8 @@ msgstr ""
#. TODO
#. connect(hidden,SIGNAL(cursorPositionChanged()),this,SLOT(hiddenClicked()));
-#: udav/udav_wnd.cpp:194 udav/udav_wnd.cpp:206 mgllab/mgllab.cpp:326
-#: mgllab/mgllab.cpp:557
+#: udav/udav_wnd.cpp:194 udav/udav_wnd.cpp:206 mgllab/mgllab.cpp:324
+#: mgllab/mgllab.cpp:554
msgid "Calculator"
msgstr ""
@@ -911,7 +911,7 @@ msgstr ""
#: mgllab/editor.cpp:282 mgllab/mathgl.cpp:164 mgllab/mathgl.cpp:195
#: mgllab/dialogs.cpp:120 mgllab/dialogs.cpp:164 mgllab/dialogs.cpp:410
#: mgllab/dialogs.cpp:584 mgllab/dialogs.cpp:749 mgllab/dialogs.cpp:1071
-#: mgllab/dialogs.cpp:1318 mgllab/dialogs.cpp:1473 mgllab/mgllab.cpp:482
+#: mgllab/dialogs.cpp:1318 mgllab/dialogs.cpp:1473 mgllab/mgllab.cpp:479
#: mgllab/table.cpp:101 mgllab/table.cpp:179 mgllab/table.cpp:353
#: mgllab/table.cpp:556 mgllab/table.cpp:619 mgllab/table.cpp:674
msgid "Cancel"
@@ -921,7 +921,7 @@ msgstr ""
msgid "Cannot triangulate this set!"
msgstr ""
-#: udav/udav_wnd.cpp:226 mgllab/mgllab.cpp:355 mgllab/mgllab.cpp:356
+#: udav/udav_wnd.cpp:226 mgllab/mgllab.cpp:353 mgllab/mgllab.cpp:354
msgid "Canvas"
msgstr ""
@@ -984,8 +984,8 @@ msgstr ""
#. o = new Fl_Button(180, 130, 25, 25);o->image(img_save); o->tooltip("img_save");
#: widgets/qt.cpp:1091 udav/find_dlg.cpp:52 udav/hint_dlg.cpp:70
-#: mgllab/editor.cpp:565 mgllab/help.cpp:308 mgllab/help.cpp:367
-#: mgllab/help.cpp:483
+#: mgllab/editor.cpp:565 mgllab/help.cpp:308 mgllab/help.cpp:368
+#: mgllab/help.cpp:484
msgid "Close"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Column expr"
msgstr ""
-#: mgllab/dialogs.cpp:724 mgllab/mgllab.cpp:305
+#: mgllab/dialogs.cpp:724 mgllab/mgllab.cpp:303
msgid "Command"
msgstr ""
@@ -1065,7 +1065,7 @@ msgstr ""
msgid "Computes the flame fractal"
msgstr ""
-#: src/parser.cpp:1431 src/parser.cpp:1435
+#: src/parser.cpp:1434 src/parser.cpp:1438
msgid "Conditional operator"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Copy data from another variable"
msgstr ""
-#: widgets/fltk.cpp:811
+#: widgets/fltk.cpp:812
msgid "Copy graphics"
msgstr ""
@@ -1093,7 +1093,7 @@ msgstr ""
msgid "Copy graphics to clipboard (Ctrl+Shift+G)."
msgstr ""
-#: widgets/fltk.cpp:855
+#: widgets/fltk.cpp:856
msgid "Copy image to clipboard"
msgstr ""
@@ -1113,7 +1113,7 @@ msgstr ""
msgid "Copy selection to clipboard"
msgstr ""
-#: udav/text_pnl.cpp:533 mgllab/mgllab.cpp:295
+#: udav/text_pnl.cpp:533 mgllab/mgllab.cpp:293
msgid "Copy text"
msgstr ""
@@ -1190,7 +1190,7 @@ msgstr ""
msgid "Create new empty script window (Ctrl+N)."
msgstr ""
-#: src/parser.cpp:1436
+#: src/parser.cpp:1439
msgid "Creates new variable from list of numbers or data"
msgstr ""
@@ -1234,7 +1234,7 @@ msgstr ""
msgid "Cut selected text to clipboard (Ctrl+X)."
msgstr ""
-#: udav/text_pnl.cpp:528 mgllab/mgllab.cpp:294
+#: udav/text_pnl.cpp:528 mgllab/mgllab.cpp:292
msgid "Cut text"
msgstr ""
@@ -1304,19 +1304,19 @@ msgstr ""
msgid "Decrease font size"
msgstr ""
-#: src/parser.cpp:1427
+#: src/parser.cpp:1430
msgid "Define constant or parameter"
msgstr ""
-#: src/parser.cpp:1426
+#: src/parser.cpp:1429
msgid "Define parameter as character"
msgstr ""
-#: src/parser.cpp:1428
+#: src/parser.cpp:1431
msgid "Define parameter as numerical value"
msgstr ""
-#: src/parser.cpp:1422
+#: src/parser.cpp:1425
msgid "Define parameter from user input"
msgstr ""
@@ -1438,31 +1438,31 @@ msgstr ""
msgid "Double diff."
msgstr ""
-#: src/exec_gr.cpp:1032
+#: src/exec_gr.cpp:1043
msgid "Draw Bifurcation diagram"
msgstr ""
-#: src/exec_gr.cpp:1067
+#: src/exec_gr.cpp:1078
msgid "Draw Iris plots"
msgstr ""
-#: src/exec_gr.cpp:1069
+#: src/exec_gr.cpp:1080
msgid "Draw Lamerey diagram"
msgstr ""
-#: src/exec_gr.cpp:1073
+#: src/exec_gr.cpp:1084
msgid "Draw Open-High-Low-Close (OHLC) diagram"
msgstr ""
-#: src/exec_gr.cpp:1076
+#: src/exec_gr.cpp:1087
msgid "Draw Poincare map"
msgstr ""
-#: src/exec_gr.cpp:1082
+#: src/exec_gr.cpp:1093
msgid "Draw STFA diagram"
msgstr ""
-#: src/exec_gr.cpp:1094
+#: src/exec_gr.cpp:1105
msgid "Draw TeX mark at point position"
msgstr ""
@@ -1470,19 +1470,23 @@ msgstr ""
msgid "Draw angle arc"
msgstr ""
-#: src/exec_gr.cpp:1026
+#: src/exec_gr.cpp:1036
msgid "Draw area plot for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1029
+#: src/exec_gr.cpp:1039
msgid "Draw bars for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1031
+#: src/exec_gr.cpp:1041
msgid "Draw belts"
msgstr ""
-#: src/exec_gr.cpp:1092
+#: src/exec_gr.cpp:1042
+msgid "Draw belts colored by other data"
+msgstr ""
+
+#: src/exec_gr.cpp:1103
msgid "Draw binormales for 1D data"
msgstr ""
@@ -1494,19 +1498,19 @@ msgstr ""
msgid "Draw bounding box"
msgstr ""
-#: src/exec_gr.cpp:1034
+#: src/exec_gr.cpp:1045
msgid "Draw boxes"
msgstr ""
-#: src/exec_gr.cpp:1033
+#: src/exec_gr.cpp:1044
msgid "Draw boxplot for 2D data"
msgstr ""
-#: src/exec_gr.cpp:1035
+#: src/exec_gr.cpp:1046
msgid "Draw candlestick chart"
msgstr ""
-#: src/exec_gr.cpp:1036
+#: src/exec_gr.cpp:1047
msgid "Draw chart"
msgstr ""
@@ -1514,7 +1518,7 @@ msgstr ""
msgid "Draw circle"
msgstr ""
-#: src/exec_gr.cpp:1037
+#: src/exec_gr.cpp:1048
msgid "Draw cloud"
msgstr ""
@@ -1526,43 +1530,43 @@ msgstr ""
msgid "Draw cone"
msgstr ""
-#: src/exec_gr.cpp:1038
+#: src/exec_gr.cpp:1049
msgid "Draw cones for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1039
+#: src/exec_gr.cpp:1050
msgid "Draw contour lines"
msgstr ""
-#: src/exec_gr.cpp:1049
+#: src/exec_gr.cpp:1060
msgid "Draw contour lines at x-slice (or x-plane)"
msgstr ""
-#: src/exec_gr.cpp:1050
+#: src/exec_gr.cpp:1061
msgid "Draw contour lines at y-slice (or y-plane)"
msgstr ""
-#: src/exec_gr.cpp:1051
+#: src/exec_gr.cpp:1062
msgid "Draw contour lines at z-slice (or z-plane)"
msgstr ""
-#: src/exec_gr.cpp:1040
+#: src/exec_gr.cpp:1051
msgid "Draw contour lines for 3D data"
msgstr ""
-#: src/exec_gr.cpp:1099
+#: src/exec_gr.cpp:1110
msgid "Draw contour lines for surface of triangles"
msgstr ""
-#: src/exec_gr.cpp:1047
+#: src/exec_gr.cpp:1058
msgid "Draw contour lines on parametric surface"
msgstr ""
-#: src/exec_gr.cpp:1048
+#: src/exec_gr.cpp:1059
msgid "Draw contour tubes"
msgstr ""
-#: src/exec_gr.cpp:1100
+#: src/exec_gr.cpp:1111
msgid "Draw contour tubes for surface of triangles"
msgstr ""
@@ -1570,35 +1574,35 @@ msgstr ""
msgid "Draw curve"
msgstr ""
-#: src/exec_gr.cpp:1102
+#: src/exec_gr.cpp:1113
msgid "Draw curve by tube"
msgstr ""
-#: src/exec_gr.cpp:1053
+#: src/exec_gr.cpp:1064
msgid "Draw density plot"
msgstr ""
-#: src/exec_gr.cpp:1054
+#: src/exec_gr.cpp:1065
msgid "Draw density plot at slices of 3D data"
msgstr ""
-#: src/exec_gr.cpp:1055
+#: src/exec_gr.cpp:1066
msgid "Draw density plot at x-slice (or x-plane)"
msgstr ""
-#: src/exec_gr.cpp:1056
+#: src/exec_gr.cpp:1067
msgid "Draw density plot at y-slice (or y-plane)"
msgstr ""
-#: src/exec_gr.cpp:1057
+#: src/exec_gr.cpp:1068
msgid "Draw density plot at z-slice (or z-plane)"
msgstr ""
-#: src/exec_gr.cpp:1058
+#: src/exec_gr.cpp:1069
msgid "Draw dew plot"
msgstr ""
-#: src/exec_gr.cpp:1059
+#: src/exec_gr.cpp:1070
msgid "Draw dots for arbitrary data points"
msgstr ""
@@ -1614,7 +1618,7 @@ msgstr ""
msgid "Draw error box"
msgstr ""
-#: src/exec_gr.cpp:1060
+#: src/exec_gr.cpp:1071
msgid "Draw error boxes"
msgstr ""
@@ -1634,19 +1638,19 @@ msgstr ""
msgid "Draw face perpendicular to z-axis"
msgstr ""
-#: src/exec_gr.cpp:1079
+#: src/exec_gr.cpp:1090
msgid "Draw filled region (ribbon) between 2 curves"
msgstr ""
-#: src/exec_gr.cpp:1074
+#: src/exec_gr.cpp:1085
msgid "Draw flow pipes for vector field"
msgstr ""
-#: src/exec_gr.cpp:1062
+#: src/exec_gr.cpp:1073
msgid "Draw flow threads for vector field"
msgstr ""
-#: src/exec_gr.cpp:1064
+#: src/exec_gr.cpp:1075
msgid "Draw gradient lines for scalar field"
msgstr ""
@@ -1654,43 +1658,43 @@ msgstr ""
msgid "Draw grid"
msgstr ""
-#: src/exec_gr.cpp:1066
+#: src/exec_gr.cpp:1077
msgid "Draw grid at slices of 3D data"
msgstr ""
-#: src/exec_gr.cpp:1065
+#: src/exec_gr.cpp:1076
msgid "Draw grid for data array(s)"
msgstr ""
-#: src/exec_gr.cpp:1028
+#: src/exec_gr.cpp:1038
msgid "Draw horizontal bars for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1095
+#: src/exec_gr.cpp:1106
msgid "Draw horizontal tiles"
msgstr ""
-#: src/exec_gr.cpp:1096
+#: src/exec_gr.cpp:1107
msgid "Draw horizontal tiles with variable size"
msgstr ""
-#: src/exec_gr.cpp:1084
+#: src/exec_gr.cpp:1095
msgid "Draw isosurface for 3D data"
msgstr ""
-#: src/exec_gr.cpp:1087
+#: src/exec_gr.cpp:1098
msgid "Draw isosurface for 3D data colored and transpared by other data"
msgstr ""
-#: src/exec_gr.cpp:1086
+#: src/exec_gr.cpp:1097
msgid "Draw isosurface for 3D data colored by other data"
msgstr ""
-#: src/exec_gr.cpp:1085
+#: src/exec_gr.cpp:1096
msgid "Draw isosurface for 3D data transpared by other data"
msgstr ""
-#: src/exec_gr.cpp:1068
+#: src/exec_gr.cpp:1079
msgid "Draw label at arbitrary position"
msgstr ""
@@ -1718,15 +1722,15 @@ msgstr ""
msgid "Draw line"
msgstr ""
-#: src/exec_gr.cpp:1070
+#: src/exec_gr.cpp:1081
msgid "Draw mapping plot"
msgstr ""
-#: src/exec_gr.cpp:1071
+#: src/exec_gr.cpp:1082
msgid "Draw mark plot for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1072
+#: src/exec_gr.cpp:1083
msgid "Draw mesh surface"
msgstr ""
@@ -1738,15 +1742,15 @@ msgstr ""
msgid "Draw polygon"
msgstr ""
-#: src/exec_gr.cpp:1030
+#: src/exec_gr.cpp:1040
msgid "Draw quasi-optical beam"
msgstr ""
-#: src/exec_gr.cpp:1078
+#: src/exec_gr.cpp:1089
msgid "Draw radar chart"
msgstr ""
-#: src/exec_gr.cpp:1052
+#: src/exec_gr.cpp:1063
msgid "Draw reconstructed surface for arbitrary data points"
msgstr ""
@@ -1758,43 +1762,43 @@ msgstr ""
msgid "Draw rhombus"
msgstr ""
-#: src/exec_gr.cpp:1044
+#: src/exec_gr.cpp:1055
msgid "Draw solid contour lines at x-slice (or x-plane)"
msgstr ""
-#: src/exec_gr.cpp:1045
+#: src/exec_gr.cpp:1056
msgid "Draw solid contour lines at y-slice (or y-plane)"
msgstr ""
-#: src/exec_gr.cpp:1046
+#: src/exec_gr.cpp:1057
msgid "Draw solid contour lines at z-slice (or z-plane)"
msgstr ""
-#: src/exec_gr.cpp:1043
+#: src/exec_gr.cpp:1054
msgid "Draw solid contour lines for 3D data"
msgstr ""
-#: src/exec_gr.cpp:1042
+#: src/exec_gr.cpp:1053
msgid "Draw solid contours"
msgstr ""
-#: src/exec_gr.cpp:1041
+#: src/exec_gr.cpp:1052
msgid "Draw solid contours with manual colors"
msgstr ""
-#: src/exec_gr.cpp:1083
+#: src/exec_gr.cpp:1094
msgid "Draw solid surface"
msgstr ""
-#: src/exec_gr.cpp:1090
+#: src/exec_gr.cpp:1101
msgid "Draw solid surface colored and transpared by other data"
msgstr ""
-#: src/exec_gr.cpp:1089
+#: src/exec_gr.cpp:1100
msgid "Draw solid surface colored by other data"
msgstr ""
-#: src/exec_gr.cpp:1088
+#: src/exec_gr.cpp:1099
msgid "Draw solid surface transpared by other data"
msgstr ""
@@ -1802,35 +1806,35 @@ msgstr ""
msgid "Draw sphere"
msgstr ""
-#: src/exec_gr.cpp:1080
+#: src/exec_gr.cpp:1091
msgid "Draw stem plot for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1081
+#: src/exec_gr.cpp:1092
msgid "Draw step plot for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1097
+#: src/exec_gr.cpp:1108
msgid "Draw surface of curve rotation"
msgstr ""
-#: src/exec_gr.cpp:1077
+#: src/exec_gr.cpp:1088
msgid "Draw surface of quadrangles"
msgstr ""
-#: src/exec_gr.cpp:1101
+#: src/exec_gr.cpp:1112
msgid "Draw surface of triangles"
msgstr ""
-#: src/exec_gr.cpp:1027
+#: src/exec_gr.cpp:1037
msgid "Draw surfaces of contour lines rotation"
msgstr ""
-#: src/exec_gr.cpp:1091
+#: src/exec_gr.cpp:1102
msgid "Draw table with data values"
msgstr ""
-#: src/exec_gr.cpp:1093
+#: src/exec_gr.cpp:1104
msgid "Draw tension plot for 1D data"
msgstr ""
@@ -1842,23 +1846,23 @@ msgstr ""
msgid "Draw user-defined symbol at given position and direction"
msgstr ""
-#: src/exec_gr.cpp:1075
+#: src/exec_gr.cpp:1086
msgid "Draw usual plot for 1D data"
msgstr ""
-#: src/exec_gr.cpp:1103
+#: src/exec_gr.cpp:1114
msgid "Draw vector field"
msgstr ""
-#: src/exec_gr.cpp:1104
+#: src/exec_gr.cpp:1115
msgid "Draw vector field at slices of 3D data"
msgstr ""
-#: src/exec_gr.cpp:1098
+#: src/exec_gr.cpp:1109
msgid "Draw vectors along a curve"
msgstr ""
-#: src/exec_gr.cpp:1061
+#: src/exec_gr.cpp:1072
msgid "Draw waterfalls"
msgstr ""
@@ -1879,7 +1883,7 @@ msgstr ""
msgid "Edges"
msgstr ""
-#: udav/text_pnl.cpp:84 mgllab/mgllab.cpp:292
+#: udav/text_pnl.cpp:84 mgllab/mgllab.cpp:290
msgid "Edit"
msgstr ""
@@ -1891,13 +1895,13 @@ msgstr ""
msgid "Elliptic"
msgstr ""
-#: udav/prop_dlg.cpp:171 mgllab/mgllab.cpp:474
+#: udav/prop_dlg.cpp:171 mgllab/mgllab.cpp:471
msgid "Enable keywords completion"
msgstr ""
#. pure = new QCheckBox(_("Disable face drawing (faster) for mouse rotation/shift/zoom."), this);
#. pure->setChecked(mglAutoPure); v->addWidget(pure); pure->setEnabled(false);
-#: udav/prop_dlg.cpp:169 mgllab/mgllab.cpp:476
+#: udav/prop_dlg.cpp:169 mgllab/mgllab.cpp:473
msgid "Enable mouse wheel for zooming"
msgstr ""
@@ -2023,11 +2027,11 @@ msgid ""
msgstr ""
#. {"defpal",_("Define parameter as palette color"),"defpal $N val", 0, 6},
-#: src/parser.cpp:1430
+#: src/parser.cpp:1433
msgid "Execute if condition is false"
msgstr ""
-#: mgllab/mgllab.cpp:472
+#: mgllab/mgllab.cpp:469
msgid "Execute script after loading"
msgstr ""
@@ -2035,7 +2039,7 @@ msgstr ""
msgid "Execute script and redraw graphics (F5)."
msgstr ""
-#: src/parser.cpp:1424
+#: src/parser.cpp:1427
msgid "Execute script in external file"
msgstr ""
@@ -2043,7 +2047,7 @@ msgstr ""
msgid "Existed data arrays"
msgstr ""
-#: mgllab/mgllab.cpp:290
+#: mgllab/mgllab.cpp:288
msgid "Exit"
msgstr ""
@@ -2059,7 +2063,7 @@ msgstr ""
msgid "Export Data?"
msgstr ""
-#: widgets/fltk.cpp:789
+#: widgets/fltk.cpp:790
msgid "Export as ..."
msgstr ""
@@ -2106,7 +2110,7 @@ msgstr ""
#. file menu
#: widgets/qt.cpp:1066 udav/udav_wnd.cpp:281 udav/dat_pnl.cpp:681
-#: mgllab/mgllab.cpp:277 mgllab/table.cpp:748
+#: mgllab/mgllab.cpp:275 mgllab/table.cpp:748
msgid "File"
msgstr ""
@@ -2114,7 +2118,7 @@ msgstr ""
msgid "File %1 saved"
msgstr ""
-#: mgllab/mgllab.cpp:227
+#: mgllab/mgllab.cpp:225
msgid "File is exesist. Overwrite it?"
msgstr ""
@@ -2122,7 +2126,7 @@ msgstr ""
msgid "File name"
msgstr ""
-#: mgllab/mgllab.cpp:303
+#: mgllab/mgllab.cpp:301
msgid "File path"
msgstr ""
@@ -2130,7 +2134,7 @@ msgstr ""
msgid "File to export"
msgstr ""
-#: mgllab/editor.cpp:267 mgllab/mgllab.cpp:396
+#: mgllab/editor.cpp:267 mgllab/mgllab.cpp:394
msgid "File/Recent files"
msgstr ""
@@ -2194,7 +2198,7 @@ msgstr ""
msgid "Find minimal value over direction"
msgstr ""
-#: udav/text_pnl.cpp:551 mgllab/mgllab.cpp:301
+#: udav/text_pnl.cpp:551 mgllab/mgllab.cpp:299
msgid "Find next"
msgstr ""
@@ -2226,11 +2230,11 @@ msgstr ""
msgid "Find/Replace"
msgstr ""
-#: mgllab/mgllab.cpp:300
+#: mgllab/mgllab.cpp:298
msgid "Find|Replace"
msgstr ""
-#: src/parser.cpp:1432
+#: src/parser.cpp:1435
msgid "Finish if/else block"
msgstr ""
@@ -2246,7 +2250,7 @@ msgstr ""
msgid "Fit data to formula"
msgstr ""
-#: udav/text_pnl.cpp:567 mgllab/mgllab.cpp:307
+#: udav/text_pnl.cpp:567 mgllab/mgllab.cpp:305
msgid "Fitted formula"
msgstr ""
@@ -2262,11 +2266,11 @@ msgstr ""
msgid "Fog dist."
msgstr ""
-#: mgllab/mgllab.cpp:533
+#: mgllab/mgllab.cpp:530
msgid "Folder for help files"
msgstr ""
-#: udav/text_pnl.cpp:587 mgllab/mgllab.cpp:304
+#: udav/text_pnl.cpp:587 mgllab/mgllab.cpp:302
msgid "Folder path"
msgstr ""
@@ -2274,7 +2278,7 @@ msgstr ""
msgid "Font"
msgstr ""
-#: mgllab/mgllab.cpp:524
+#: mgllab/mgllab.cpp:521
msgid "Font file name"
msgstr ""
@@ -2282,11 +2286,11 @@ msgstr ""
msgid "Font files (*.vfm)"
msgstr ""
-#: mgllab/mgllab.cpp:463
+#: mgllab/mgllab.cpp:460
msgid "Font kind"
msgstr ""
-#: mgllab/mgllab.cpp:465
+#: mgllab/mgllab.cpp:462
msgid "Font size"
msgstr ""
@@ -2298,7 +2302,7 @@ msgstr ""
msgid "FontSize"
msgstr ""
-#: src/parser.cpp:1433
+#: src/parser.cpp:1436
msgid "For loop"
msgstr ""
@@ -2315,7 +2319,7 @@ msgstr ""
msgid "From"
msgstr ""
-#: mgllab/mgllab.cpp:592
+#: mgllab/mgllab.cpp:589
msgid "Function"
msgstr ""
@@ -2387,7 +2391,7 @@ msgid "Go to the specified slice for 3D data."
msgstr ""
#: widgets/qt.cpp:1095 widgets/qt.cpp:1097 udav/plot_pnl.cpp:66
-#: mgllab/mgllab.cpp:319
+#: mgllab/mgllab.cpp:317
msgid "Graphics"
msgstr ""
@@ -2395,7 +2399,7 @@ msgstr ""
msgid "Graphics setup"
msgstr ""
-#: widgets/fltk.cpp:927
+#: widgets/fltk.cpp:928
msgid "Graphics/Adjust size"
msgstr ""
@@ -2404,143 +2408,143 @@ msgstr ""
#. /< Callback function for prev frame
#. /< Callback function for delay
#. /< Callback function for reloading
-#: widgets/fltk.cpp:921 include/mgl2/Fl_MathGL.h:150
+#: widgets/fltk.cpp:922 include/mgl2/Fl_MathGL.h:150
msgid "Graphics/Alpha"
msgstr ""
-#: widgets/fltk.cpp:956
+#: widgets/fltk.cpp:957
msgid "Graphics/Animation/Next frame"
msgstr ""
-#: widgets/fltk.cpp:957
+#: widgets/fltk.cpp:958
msgid "Graphics/Animation/Prev frame"
msgstr ""
-#: mgllab/mgllab.cpp:371
+#: mgllab/mgllab.cpp:369
msgid "Graphics/Animation/Setup animation"
msgstr ""
-#: widgets/fltk.cpp:955 include/mgl2/Fl_MathGL.h:152
+#: widgets/fltk.cpp:956 include/mgl2/Fl_MathGL.h:152
msgid "Graphics/Animation/Slideshow"
msgstr ""
-#: widgets/fltk.cpp:931
+#: widgets/fltk.cpp:932
msgid "Graphics/Copy click coor."
msgstr ""
-#: widgets/fltk.cpp:930
+#: widgets/fltk.cpp:931
msgid "Graphics/Copy graphics"
msgstr ""
-#: widgets/fltk.cpp:944
+#: widgets/fltk.cpp:945
msgid "Graphics/Export/as BMP"
msgstr ""
-#: widgets/fltk.cpp:942
+#: widgets/fltk.cpp:943
msgid "Graphics/Export/as GIF"
msgstr ""
-#: widgets/fltk.cpp:939
+#: widgets/fltk.cpp:940
msgid "Graphics/Export/as JPEG"
msgstr ""
-#: widgets/fltk.cpp:950
+#: widgets/fltk.cpp:951
msgid "Graphics/Export/as OBJ"
msgstr ""
-#: widgets/fltk.cpp:951
+#: widgets/fltk.cpp:952
msgid "Graphics/Export/as OFF"
msgstr ""
-#: widgets/fltk.cpp:935
+#: widgets/fltk.cpp:936
msgid "Graphics/Export/as PNG"
msgstr ""
-#: widgets/fltk.cpp:949
+#: widgets/fltk.cpp:950
msgid "Graphics/Export/as PRC"
msgstr ""
-#: widgets/fltk.cpp:952
+#: widgets/fltk.cpp:953
msgid "Graphics/Export/as STL"
msgstr ""
-#: widgets/fltk.cpp:945
+#: widgets/fltk.cpp:946
msgid "Graphics/Export/as SVG"
msgstr ""
-#: widgets/fltk.cpp:948
+#: widgets/fltk.cpp:949
msgid "Graphics/Export/as TeX"
msgstr ""
-#: widgets/fltk.cpp:953
+#: widgets/fltk.cpp:954
msgid "Graphics/Export/as XYZ"
msgstr ""
-#: widgets/fltk.cpp:947
+#: widgets/fltk.cpp:948
msgid "Graphics/Export/as bitmap EPS"
msgstr ""
-#: widgets/fltk.cpp:936
+#: widgets/fltk.cpp:937
msgid "Graphics/Export/as solid PNG"
msgstr ""
-#: widgets/fltk.cpp:946
+#: widgets/fltk.cpp:947
msgid "Graphics/Export/as vector EPS"
msgstr ""
-#: widgets/fltk.cpp:923 include/mgl2/Fl_MathGL.h:153
+#: widgets/fltk.cpp:924 include/mgl2/Fl_MathGL.h:153
msgid "Graphics/Grid"
msgstr ""
-#: widgets/fltk.cpp:922 include/mgl2/Fl_MathGL.h:151
+#: widgets/fltk.cpp:923 include/mgl2/Fl_MathGL.h:151
msgid "Graphics/Light"
msgstr ""
-#: widgets/fltk.cpp:932 include/mgl2/Fl_MathGL.h:159 mgllab/mgllab.cpp:372
+#: widgets/fltk.cpp:933 include/mgl2/Fl_MathGL.h:159 mgllab/mgllab.cpp:370
msgid "Graphics/Pause calc"
msgstr ""
-#: mgllab/mgllab.cpp:370
+#: mgllab/mgllab.cpp:368
msgid "Graphics/Primitive"
msgstr ""
-#: widgets/fltk.cpp:926
+#: widgets/fltk.cpp:927
msgid "Graphics/Redraw"
msgstr ""
-#: widgets/fltk.cpp:928
+#: widgets/fltk.cpp:929
msgid "Graphics/Reload data"
msgstr ""
-#: widgets/fltk.cpp:925
+#: widgets/fltk.cpp:926
msgid "Graphics/Restore"
msgstr ""
-#: widgets/fltk.cpp:929
+#: widgets/fltk.cpp:930
msgid "Graphics/Stop"
msgstr ""
-#: widgets/fltk.cpp:963
+#: widgets/fltk.cpp:964
msgid "Graphics/Transform/Move down"
msgstr ""
-#: widgets/fltk.cpp:959
+#: widgets/fltk.cpp:960
msgid "Graphics/Transform/Move left"
msgstr ""
-#: widgets/fltk.cpp:964
+#: widgets/fltk.cpp:965
msgid "Graphics/Transform/Move right"
msgstr ""
-#: widgets/fltk.cpp:960
+#: widgets/fltk.cpp:961
msgid "Graphics/Transform/Move up"
msgstr ""
-#: widgets/fltk.cpp:961
+#: widgets/fltk.cpp:962
msgid "Graphics/Transform/Zoom in"
msgstr ""
-#: widgets/fltk.cpp:962
+#: widgets/fltk.cpp:963
msgid "Graphics/Transform/Zoom out"
msgstr ""
@@ -2583,8 +2587,8 @@ msgid "Height of selected cells"
msgstr ""
#: widgets/qt.cpp:1276 udav/help_pnl.cpp:57 udav/udav_wnd.cpp:231
-#: udav/udav_wnd.cpp:323 mgllab/mgllab.cpp:329 mgllab/mgllab.cpp:330
-#: mgllab/mgllab.cpp:358
+#: udav/udav_wnd.cpp:323 mgllab/mgllab.cpp:327 mgllab/mgllab.cpp:328
+#: mgllab/mgllab.cpp:356
msgid "Help"
msgstr ""
@@ -2594,7 +2598,7 @@ msgid ""
"Options are used for additional plot tunning."
msgstr ""
-#: udav/udav_wnd.cpp:186 mgllab/mgllab.cpp:298
+#: udav/udav_wnd.cpp:186 mgllab/mgllab.cpp:296
msgid "Hidden plots"
msgstr ""
@@ -2606,11 +2610,11 @@ msgstr ""
msgid "Hide selected plots."
msgstr ""
-#: udav/prop_dlg.cpp:173 mgllab/mgllab.cpp:475
+#: udav/prop_dlg.cpp:173 mgllab/mgllab.cpp:472
msgid "Highlight current object(s)"
msgstr ""
-#: udav/udav_wnd.cpp:328 mgllab/mgllab.cpp:331
+#: udav/udav_wnd.cpp:328 mgllab/mgllab.cpp:329
msgid "Hints"
msgstr ""
@@ -2630,7 +2634,7 @@ msgstr ""
msgid "ID"
msgstr ""
-#: mgllab/mgllab.cpp:333
+#: mgllab/mgllab.cpp:331
msgid "Icon list"
msgstr ""
@@ -2690,16 +2694,16 @@ msgstr ""
msgid "Info"
msgstr ""
-#: udav/info_dlg.cpp:55 mgllab/help.cpp:353
+#: udav/info_dlg.cpp:55 mgllab/help.cpp:354
msgid "Information"
msgstr ""
-#: mgllab/mgllab.cpp:306
+#: mgllab/mgllab.cpp:304
msgid "Inplot"
msgstr ""
#. insert menu
-#: udav/text_pnl.cpp:557 mgllab/mgllab.cpp:302
+#: udav/text_pnl.cpp:557 mgllab/mgllab.cpp:300
msgid "Insert"
msgstr ""
@@ -2821,7 +2825,7 @@ msgstr ""
msgid "Language for UDAV"
msgstr ""
-#: mgllab/mgllab.cpp:478
+#: mgllab/mgllab.cpp:475
msgid "Language for mgllab"
msgstr ""
@@ -2945,7 +2949,7 @@ msgstr ""
msgid "M - purple"
msgstr ""
-#: src/parser.cpp:1018
+#: src/parser.cpp:1021
msgid "MGL Parser"
msgstr ""
@@ -2953,11 +2957,11 @@ msgstr ""
msgid "MGL commands for selected group"
msgstr ""
-#: mgllab/mgllab.cpp:214
+#: mgllab/mgllab.cpp:212
msgid "MGL files \t*.mgl"
msgstr ""
-#: mgllab/mgllab.cpp:173
+#: mgllab/mgllab.cpp:172
msgid ""
"MGL files \t*.mgl\n"
"DAT files \t*.{dat,csv}"
@@ -3015,7 +3019,7 @@ msgstr ""
msgid "Manual mask"
msgstr ""
-#: udav/text_pnl.cpp:591 mgllab/mgllab.cpp:308
+#: udav/text_pnl.cpp:591 mgllab/mgllab.cpp:306
msgid "Manual primitives"
msgstr ""
@@ -3101,7 +3105,7 @@ msgstr ""
msgid "Maximum of"
msgstr ""
-#: udav/mem_pnl.cpp:68 udav/mem_pnl.cpp:73 mgllab/mgllab.cpp:360
+#: udav/mem_pnl.cpp:68 udav/mem_pnl.cpp:73 mgllab/mgllab.cpp:358
msgid "Memory"
msgstr ""
@@ -3113,7 +3117,7 @@ msgstr ""
msgid "MeshNum"
msgstr ""
-#: mgllab/mgllab.cpp:327
+#: mgllab/mgllab.cpp:325
msgid "Messages"
msgstr ""
@@ -3291,7 +3295,7 @@ msgstr ""
msgid "New order of dimensions"
msgstr ""
-#: udav/udav_wnd.cpp:282 mgllab/mgllab.cpp:278
+#: udav/udav_wnd.cpp:282 mgllab/mgllab.cpp:276
msgid "New script"
msgstr ""
@@ -3323,7 +3327,7 @@ msgstr ""
msgid "Next slide"
msgstr ""
-#: mgllab/help.cpp:135 mgllab/mgllab.cpp:227
+#: mgllab/help.cpp:135 mgllab/mgllab.cpp:225
msgid "No"
msgstr ""
@@ -3363,7 +3367,7 @@ msgstr ""
msgid "No text rotation"
msgstr ""
-#: widgets/fltk.cpp:812
+#: widgets/fltk.cpp:813
msgid "Normal view"
msgstr ""
@@ -3434,7 +3438,7 @@ msgstr ""
#: udav/data_dlg.cpp:92 udav/subplot_dlg.cpp:221 mgllab/mathgl.cpp:196
#: mgllab/dialogs.cpp:121 mgllab/dialogs.cpp:165 mgllab/dialogs.cpp:411
#: mgllab/dialogs.cpp:585 mgllab/dialogs.cpp:750 mgllab/dialogs.cpp:1072
-#: mgllab/dialogs.cpp:1319 mgllab/dialogs.cpp:1474 mgllab/mgllab.cpp:483
+#: mgllab/dialogs.cpp:1319 mgllab/dialogs.cpp:1474 mgllab/mgllab.cpp:480
#: mgllab/table.cpp:621
msgid "OK"
msgstr ""
@@ -3443,7 +3447,7 @@ msgstr ""
msgid "Only current slice will be inserted"
msgstr ""
-#: mgllab/mgllab.cpp:172
+#: mgllab/mgllab.cpp:171
msgid "Open File?"
msgstr ""
@@ -3465,7 +3469,7 @@ msgstr ""
msgid "Open file"
msgstr ""
-#: mgllab/mgllab.cpp:279
+#: mgllab/mgllab.cpp:277
msgid "Open file ..."
msgstr ""
@@ -3494,7 +3498,7 @@ msgid "Operations"
msgstr ""
#: udav/prop_dlg.cpp:91 udav/newcmd_dlg.cpp:72 mgllab/dialogs.cpp:746
-#: mgllab/mgllab.cpp:310
+#: mgllab/mgllab.cpp:308
msgid "Options"
msgstr ""
@@ -3523,7 +3527,7 @@ msgstr ""
msgid "P - darkpink"
msgstr ""
-#: src/prc.cpp:981
+#: src/prc.cpp:982
msgid "PDF support was disabled. Please, enable it and rebuild MathGL."
msgstr ""
@@ -3560,7 +3564,7 @@ msgstr ""
msgid "Paste range of numbers from clipboard (Ctrl+Shift+P)."
msgstr ""
-#: udav/text_pnl.cpp:538 mgllab/mgllab.cpp:296
+#: udav/text_pnl.cpp:538 mgllab/mgllab.cpp:294
msgid "Paste text"
msgstr ""
@@ -3572,11 +3576,11 @@ msgstr ""
msgid "Paste text or data from clipboard (Ctrl+V)."
msgstr ""
-#: mgllab/mgllab.cpp:469
+#: mgllab/mgllab.cpp:466
msgid "Path for MathGL font (without extension)"
msgstr ""
-#: udav/prop_dlg.cpp:110 mgllab/mgllab.cpp:466
+#: udav/prop_dlg.cpp:110 mgllab/mgllab.cpp:463
msgid "Path for help files"
msgstr ""
@@ -3589,7 +3593,7 @@ msgid "Pause calculation"
msgstr ""
#. Wnd->connect(a, SIGNAL(triggered()), QMGL, SLOT(setPause()));
-#: widgets/fltk.cpp:891 widgets/qt.cpp:1270
+#: widgets/fltk.cpp:892 widgets/qt.cpp:1270
msgid "Pause on/off external calculations"
msgstr ""
@@ -3597,7 +3601,7 @@ msgstr ""
msgid "Perform Runge-Kutta step"
msgstr ""
-#: widgets/fltk.cpp:864
+#: widgets/fltk.cpp:865
msgid "Phi angle (rotate in x*y plane)"
msgstr ""
@@ -3628,11 +3632,11 @@ msgid ""
"of plot, its style and so on."
msgstr ""
-#: mgllab/mgllab.cpp:325
+#: mgllab/mgllab.cpp:323
msgid "Plot setup"
msgstr ""
-#: udav/text_pnl.cpp:571 mgllab/dialogs.cpp:312 mgllab/mgllab.cpp:309
+#: udav/text_pnl.cpp:571 mgllab/dialogs.cpp:312 mgllab/mgllab.cpp:307
msgid "Plot style"
msgstr ""
@@ -3660,7 +3664,7 @@ msgstr ""
msgid "Preview"
msgstr ""
-#: mgllab/mgllab.cpp:566
+#: mgllab/mgllab.cpp:563
msgid "Previous expressions"
msgstr ""
@@ -3696,7 +3700,7 @@ msgstr ""
msgid "Print message or information about the data"
msgstr ""
-#: mgllab/mgllab.cpp:282
+#: mgllab/mgllab.cpp:280
msgid "Print plot"
msgstr ""
@@ -3724,7 +3728,7 @@ msgstr ""
msgid "Program flow"
msgstr ""
-#: udav/udav_wnd.cpp:312 mgllab/mgllab.cpp:322 mgllab/mgllab.cpp:461
+#: udav/udav_wnd.cpp:312 mgllab/mgllab.cpp:320 mgllab/mgllab.cpp:458
msgid "Properties"
msgstr ""
@@ -3736,7 +3740,7 @@ msgstr ""
msgid "Pulse prop."
msgstr ""
-#: udav/calc_dlg.cpp:127 mgllab/mgllab.cpp:600
+#: udav/calc_dlg.cpp:127 mgllab/mgllab.cpp:597
msgid "Put function"
msgstr ""
@@ -3790,7 +3794,7 @@ msgstr ""
msgid "Read data with name 'id' from HDF file"
msgstr ""
-#: udav/udav_wnd.cpp:268 mgllab/mgllab.cpp:367
+#: udav/udav_wnd.cpp:268 mgllab/mgllab.cpp:365
msgid "Ready"
msgstr ""
@@ -3798,7 +3802,7 @@ msgstr ""
msgid "Rearrange data dimensions"
msgstr ""
-#: udav/udav_wnd.cpp:301 mgllab/mgllab.cpp:283
+#: udav/udav_wnd.cpp:301 mgllab/mgllab.cpp:281
msgid "Recent files"
msgstr ""
@@ -3822,7 +3826,7 @@ msgstr ""
msgid "Redraw picture for $0 equal to"
msgstr ""
-#: widgets/fltk.cpp:813
+#: widgets/fltk.cpp:814
msgid "Redraw plot"
msgstr ""
@@ -3830,7 +3834,7 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: widgets/fltk.cpp:847
+#: widgets/fltk.cpp:848
msgid "Refresh the picture"
msgstr ""
@@ -3842,11 +3846,11 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: widgets/fltk.cpp:815
+#: widgets/fltk.cpp:816
msgid "Reload data"
msgstr ""
-#: widgets/fltk.cpp:853
+#: widgets/fltk.cpp:854
msgid "Reload data and refresh the picture"
msgstr ""
@@ -3932,7 +3936,7 @@ msgstr ""
msgid "Restore"
msgstr ""
-#: widgets/fltk.cpp:844
+#: widgets/fltk.cpp:845
msgid "Restore default graphics rotation, zoom and perspective"
msgstr ""
@@ -3961,7 +3965,7 @@ msgstr ""
msgid "Resulting string"
msgstr ""
-#: src/parser.cpp:1439
+#: src/parser.cpp:1442
msgid "Return from function"
msgstr ""
@@ -4002,7 +4006,7 @@ msgstr ""
msgid "Rotate on"
msgstr ""
-#: widgets/fltk.cpp:840
+#: widgets/fltk.cpp:841
msgid "Rotate picture by holding left mouse button"
msgstr ""
@@ -4032,7 +4036,7 @@ msgid ""
"then the dialog with slideshow options will appear."
msgstr ""
-#: widgets/fltk.cpp:885
+#: widgets/fltk.cpp:886
msgid "Run/Stop slideshow (graphics animation)"
msgstr ""
@@ -4060,7 +4064,7 @@ msgstr ""
msgid "Save Data?"
msgstr ""
-#: widgets/fltk.cpp:572 mgllab/mgllab.cpp:214
+#: widgets/fltk.cpp:573 mgllab/mgllab.cpp:212
msgid "Save File As?"
msgstr ""
@@ -4068,7 +4072,7 @@ msgstr ""
msgid "Save JPEG frames"
msgstr ""
-#: udav/udav_wnd.cpp:290 mgllab/mgllab.cpp:281
+#: udav/udav_wnd.cpp:290 mgllab/mgllab.cpp:279
msgid "Save as ..."
msgstr ""
@@ -4088,11 +4092,11 @@ msgstr ""
msgid "Save data to file"
msgstr ""
-#: mgllab/mgllab.cpp:280
+#: mgllab/mgllab.cpp:278
msgid "Save file"
msgstr ""
-#: mgllab/mgllab.cpp:473
+#: mgllab/mgllab.cpp:470
msgid "Save file before redrawing"
msgstr ""
@@ -4132,7 +4136,7 @@ msgstr ""
msgid "Search backward"
msgstr ""
-#: udav/text_pnl.cpp:543 mgllab/mgllab.cpp:297
+#: udav/text_pnl.cpp:543 mgllab/mgllab.cpp:295
msgid "Select all"
msgstr ""
@@ -4188,7 +4192,7 @@ msgstr ""
msgid "Set arbitrary position of plot in picture"
msgstr ""
-#: udav/udav_wnd.cpp:315 mgllab/mgllab.cpp:323
+#: udav/udav_wnd.cpp:315 mgllab/mgllab.cpp:321
msgid "Set arguments"
msgstr ""
@@ -4428,11 +4432,11 @@ msgstr ""
msgid "Settings"
msgstr ""
-#: mgllab/mgllab.cpp:321
+#: mgllab/mgllab.cpp:319
msgid "Setup"
msgstr ""
-#: mgllab/mgllab.cpp:324
+#: mgllab/mgllab.cpp:322
msgid "Setup animation"
msgstr ""
@@ -4480,19 +4484,19 @@ msgstr ""
msgid "Shear plot"
msgstr ""
-#: widgets/fltk.cpp:878
+#: widgets/fltk.cpp:879
msgid "Shift the picture down"
msgstr ""
-#: widgets/fltk.cpp:870
+#: widgets/fltk.cpp:871
msgid "Shift the picture left"
msgstr ""
-#: widgets/fltk.cpp:876
+#: widgets/fltk.cpp:877
msgid "Shift the picture right"
msgstr ""
-#: widgets/fltk.cpp:868
+#: widgets/fltk.cpp:869
msgid "Shift the picture up"
msgstr ""
@@ -4572,11 +4576,11 @@ msgstr ""
msgid "Show info"
msgstr ""
-#: mgllab/mgllab.cpp:299
+#: mgllab/mgllab.cpp:297
msgid "Show lines"
msgstr ""
-#: widgets/fltk.cpp:886
+#: widgets/fltk.cpp:887
msgid "Show next frame in slideshow"
msgstr ""
@@ -4584,7 +4588,7 @@ msgstr ""
msgid "Show next slide (Ctrl+.)."
msgstr ""
-#: widgets/fltk.cpp:881
+#: widgets/fltk.cpp:882
msgid "Show previous frame in slideshow"
msgstr ""
@@ -4626,7 +4630,7 @@ msgstr ""
msgid "Sizes"
msgstr ""
-#: src/parser.cpp:1425
+#: src/parser.cpp:1428
msgid "Skip commands and iterate for-loop again"
msgstr ""
@@ -4716,15 +4720,15 @@ msgstr ""
msgid "Start"
msgstr ""
-#: src/parser.cpp:1434
+#: src/parser.cpp:1437
msgid "Start function definition and stop execution of main script"
msgstr ""
-#: src/parser.cpp:1437
+#: src/parser.cpp:1440
msgid "Start next for-loop iteration"
msgstr ""
-#: src/parser.cpp:1438
+#: src/parser.cpp:1441
msgid "Start/close commands which should executed only once"
msgstr ""
@@ -4744,11 +4748,11 @@ msgstr ""
msgid "Stop"
msgstr ""
-#: widgets/fltk.cpp:849
+#: widgets/fltk.cpp:850
msgid "Stop drawing"
msgstr ""
-#: src/parser.cpp:1440
+#: src/parser.cpp:1443
msgid "Stop execution"
msgstr ""
@@ -4893,7 +4897,7 @@ msgstr ""
msgid "Switch on/off gray-scale mode"
msgstr ""
-#: widgets/fltk.cpp:836
+#: widgets/fltk.cpp:837
msgid "Switch on/off grid drawing"
msgstr ""
@@ -4909,7 +4913,7 @@ msgstr ""
msgid "Switch on/off lightning for the graphics (Ctrl+L)."
msgstr ""
-#: widgets/fltk.cpp:833
+#: widgets/fltk.cpp:834
msgid "Switch on/off lightning in the picture"
msgstr ""
@@ -4939,7 +4943,7 @@ msgstr ""
msgid "Switch on/off transparency for the graphics (Ctrl+T)."
msgstr ""
-#: widgets/fltk.cpp:830
+#: widgets/fltk.cpp:831
msgid "Switch on/off transparency in the picture"
msgstr ""
@@ -4951,7 +4955,7 @@ msgstr ""
msgid "Symmetrical?"
msgstr ""
-#: src/addon.cpp:110 src/base_cf.cpp:266
+#: src/addon.cpp:111 src/base_cf.cpp:266
#, c-format
msgid "TEST: %s\n"
msgstr ""
@@ -5073,7 +5077,7 @@ msgstr ""
msgid "There is wrong command(s) in script"
msgstr ""
-#: widgets/fltk.cpp:862
+#: widgets/fltk.cpp:863
msgid "Theta angle (tilt z-axis)"
msgstr ""
@@ -5305,7 +5309,7 @@ msgstr ""
msgid "UDAV - about"
msgstr ""
-#: udav/anim_dlg.cpp:104
+#: udav/anim_dlg.cpp:105
msgid "UDAV - animation"
msgstr ""
@@ -5348,7 +5352,7 @@ msgid "Underline"
msgstr ""
#. edit menu
-#: udav/text_pnl.cpp:516 mgllab/mgllab.cpp:293
+#: udav/text_pnl.cpp:516 mgllab/mgllab.cpp:291
msgid "Undo"
msgstr ""
@@ -5360,7 +5364,7 @@ msgstr ""
msgid "Untitled"
msgstr ""
-#: mgllab/mgllab.cpp:345 mgllab/mgllab.cpp:349
+#: mgllab/mgllab.cpp:343 mgllab/mgllab.cpp:347
msgid "Untitled - mgllab"
msgstr ""
@@ -5377,7 +5381,7 @@ msgstr ""
msgid "Usage:\tmglconv [parameter(s)] scriptfile\n"
msgstr ""
-#: mgllab/mgllab.cpp:416
+#: mgllab/mgllab.cpp:414
#, c-format
msgid "Usage:\tmgllab [parameter(s)] scriptfile\n"
msgstr ""
@@ -5413,7 +5417,7 @@ msgstr ""
msgid "Use dots plot for preview"
msgstr ""
-#: mgllab/mgllab.cpp:477
+#: mgllab/mgllab.cpp:474
msgid "Use multi-threading for drawing"
msgstr ""
@@ -5463,7 +5467,7 @@ msgstr ""
msgid "Whole area"
msgstr ""
-#: mgllab/mgllab.cpp:480
+#: mgllab/mgllab.cpp:477
msgid "Widget scheme"
msgstr ""
@@ -5690,7 +5694,7 @@ msgstr ""
msgid "You should put text inside ' ' for argument "
msgstr ""
-#: udav/anim_dlg.cpp:105
+#: udav/anim_dlg.cpp:106
msgid "You should select one of case"
msgstr ""
@@ -5750,7 +5754,7 @@ msgstr ""
msgid "Zoom in graphics."
msgstr ""
-#: widgets/fltk.cpp:843
+#: widgets/fltk.cpp:844
msgid "Zoom in selected region of the picture"
msgstr ""
@@ -5759,7 +5763,7 @@ msgstr ""
msgid "Zoom in text"
msgstr ""
-#: widgets/fltk.cpp:872
+#: widgets/fltk.cpp:873
msgid "Zoom in the picture"
msgstr ""
@@ -5775,7 +5779,7 @@ msgstr ""
msgid "Zoom out text"
msgstr ""
-#: widgets/fltk.cpp:874
+#: widgets/fltk.cpp:875
msgid "Zoom out the picture"
msgstr ""
@@ -5884,7 +5888,7 @@ msgstr ""
msgid "center"
msgstr ""
-#: widgets/fltk.cpp:768
+#: widgets/fltk.cpp:769
#, c-format
msgid "click at %g, %g, %g"
msgstr ""
@@ -5975,7 +5979,7 @@ msgstr ""
msgid "h - gray"
msgstr ""
-#: src/parser.cpp:1011
+#: src/parser.cpp:1014
#, c-format
msgid "in line %ld"
msgstr ""
@@ -6066,7 +6070,7 @@ msgid ""
"Current version is 2.%g\n"
msgstr ""
-#: mgllab/mgllab.cpp:415
+#: mgllab/mgllab.cpp:413
#, c-format
msgid ""
"mgllab draw mgl script interactively.\n"
@@ -6281,7 +6285,7 @@ msgstr ""
msgid "to"
msgstr ""
-#: mgllab/mgllab.cpp:564
+#: mgllab/mgllab.cpp:561
msgid "to script"
msgstr ""
diff --git a/mathgl_ru.po b/mathgl_ru.po
index ee43760..b3d4f1b 100644
--- a/mathgl_ru.po
+++ b/mathgl_ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: MathGL2 2.4.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-05-17 07:55+0300\n"
+"POT-Creation-Date: 2017-07-12 22:00+0300\n"
"PO-Revision-Date: 2017-04-19 01:17+0300\n"
"Last-Translator: Alexey Balakin <mathgl.abalakin at gmail.com>\n"
"Language-Team: Russian\n"
@@ -18,7 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: mgllab/mgllab.cpp:417
+#: mgllab/mgllab.cpp:415
#, c-format
msgid ""
"\t-1 str set str as argument $1 for script\n"
@@ -104,7 +104,7 @@ msgstr ""
"(c) Алексей Балакин, 2007\n"
"http://mathgl.sourceforge.net/"
-#: src/parser.cpp:1010
+#: src/parser.cpp:1013
#, c-format
msgid ""
"\n"
@@ -113,7 +113,7 @@ msgstr ""
"\n"
"Попытка изменить временные данные в строке %ld"
-#: src/parser.cpp:1008
+#: src/parser.cpp:1011
#, c-format
msgid ""
"\n"
@@ -122,7 +122,7 @@ msgstr ""
"\n"
"Строковый аргумент слишком длинный в строке %ld"
-#: src/parser.cpp:1009
+#: src/parser.cpp:1012
#, c-format
msgid ""
"\n"
@@ -131,7 +131,7 @@ msgstr ""
"\n"
"Лишняя кавычка ' в строке %ld"
-#: src/parser.cpp:1006
+#: src/parser.cpp:1009
#, c-format
msgid ""
"\n"
@@ -140,7 +140,7 @@ msgstr ""
"\n"
"Неправильные аргументы в строке %ld"
-#: src/parser.cpp:1007
+#: src/parser.cpp:1010
#, c-format
msgid ""
"\n"
@@ -184,7 +184,7 @@ msgstr " Новый"
msgid " Save"
msgstr " Сохранить"
-#: mgllab/mgllab.cpp:227
+#: mgllab/mgllab.cpp:225
msgid " Yes "
msgstr "Да"
@@ -488,7 +488,7 @@ msgstr "1D график"
msgid "1D plots"
msgstr "1D графики"
-#: mgllab/help.cpp:359
+#: mgllab/help.cpp:360
msgid "1D view"
msgstr "1D вид"
@@ -504,7 +504,7 @@ msgstr "2D график"
msgid "2D plots"
msgstr "2D графики"
-#: mgllab/help.cpp:361
+#: mgllab/help.cpp:362
msgid "2D view"
msgstr "2D вид"
@@ -520,7 +520,7 @@ msgstr "3D данные с размерами из файла"
msgid "3D plots"
msgstr "3D графики"
-#: mgllab/help.cpp:363
+#: mgllab/help.cpp:364
msgid "3D view"
msgstr "3D вид"
@@ -560,7 +560,7 @@ msgstr ""
msgid "@<- Prev"
msgstr "@<- Пред."
-#: widgets/qt.cpp:1277 udav/udav_wnd.cpp:331 mgllab/mgllab.cpp:332
+#: widgets/qt.cpp:1277 udav/udav_wnd.cpp:331 mgllab/mgllab.cpp:330
msgid "About"
msgstr "О программе"
@@ -678,11 +678,11 @@ msgstr "Добавить к"
msgid "Add user-defined symbol"
msgstr "Добавить пользовательский символ"
-#: widgets/fltk.cpp:851
+#: widgets/fltk.cpp:852
msgid "Adjust picture size to fill drawing area"
msgstr "Подогнать размер картинки под область окна"
-#: widgets/fltk.cpp:814 widgets/qt.cpp:1139 udav/plot_pnl.cpp:337
+#: widgets/fltk.cpp:815 widgets/qt.cpp:1139 udav/plot_pnl.cpp:337
msgid "Adjust size"
msgstr "Подогнать размер"
@@ -847,12 +847,12 @@ msgstr "B - темно-синий"
msgid "Backward"
msgstr "Назад"
-#: src/font.cpp:947
+#: src/font.cpp:948
#, c-format
msgid "Bad '%ls' at %zu\n"
msgstr "Неправильный '%ls' при %zu\n"
-#: src/parser.cpp:766
+#: src/parser.cpp:769
#, c-format
msgid "Bad arguments for %ls: %ld instead of %d\n"
msgstr "Неправильные аргументы для %ls: %ld вместо %d\n"
@@ -893,7 +893,7 @@ msgstr "Оба поля в yrange должны быть заполнены"
msgid "Both fields in zrange must be filled"
msgstr "Оба поля в zrange должны быть заполнены"
-#: src/parser.cpp:1423
+#: src/parser.cpp:1426
msgid "Break for-loop"
msgstr "Прервать выполнение цикла for"
@@ -928,8 +928,8 @@ msgstr "Вычисления"
#. TODO
#. connect(hidden,SIGNAL(cursorPositionChanged()),this,SLOT(hiddenClicked()));
-#: udav/udav_wnd.cpp:194 udav/udav_wnd.cpp:206 mgllab/mgllab.cpp:326
-#: mgllab/mgllab.cpp:557
+#: udav/udav_wnd.cpp:194 udav/udav_wnd.cpp:206 mgllab/mgllab.cpp:324
+#: mgllab/mgllab.cpp:554
msgid "Calculator"
msgstr "Калькулятор"
@@ -941,7 +941,7 @@ msgstr "Калькулятор"
#: mgllab/editor.cpp:282 mgllab/mathgl.cpp:164 mgllab/mathgl.cpp:195
#: mgllab/dialogs.cpp:120 mgllab/dialogs.cpp:164 mgllab/dialogs.cpp:410
#: mgllab/dialogs.cpp:584 mgllab/dialogs.cpp:749 mgllab/dialogs.cpp:1071
-#: mgllab/dialogs.cpp:1318 mgllab/dialogs.cpp:1473 mgllab/mgllab.cpp:482
+#: mgllab/dialogs.cpp:1318 mgllab/dialogs.cpp:1473 mgllab/mgllab.cpp:479
#: mgllab/table.cpp:101 mgllab/table.cpp:179 mgllab/table.cpp:353
#: mgllab/table.cpp:556 mgllab/table.cpp:619 mgllab/table.cpp:674
msgid "Cancel"
@@ -951,7 +951,7 @@ msgstr "Отмена"
msgid "Cannot triangulate this set!"
msgstr "Не могу построить триангуляцию!"
-#: udav/udav_wnd.cpp:226 mgllab/mgllab.cpp:355 mgllab/mgllab.cpp:356
+#: udav/udav_wnd.cpp:226 mgllab/mgllab.cpp:353 mgllab/mgllab.cpp:354
msgid "Canvas"
msgstr "График"
@@ -1014,8 +1014,8 @@ msgstr "Очистить рисунок"
#. o = new Fl_Button(180, 130, 25, 25);o->image(img_save); o->tooltip("img_save");
#: widgets/qt.cpp:1091 udav/find_dlg.cpp:52 udav/hint_dlg.cpp:70
-#: mgllab/editor.cpp:565 mgllab/help.cpp:308 mgllab/help.cpp:367
-#: mgllab/help.cpp:483
+#: mgllab/editor.cpp:565 mgllab/help.cpp:308 mgllab/help.cpp:368
+#: mgllab/help.cpp:484
msgid "Close"
msgstr "Закрыть"
@@ -1062,7 +1062,7 @@ msgstr ""
msgid "Column expr"
msgstr ""
-#: mgllab/dialogs.cpp:724 mgllab/mgllab.cpp:305
+#: mgllab/dialogs.cpp:724 mgllab/mgllab.cpp:303
msgid "Command"
msgstr "Команда"
@@ -1102,7 +1102,7 @@ msgstr "Вычисляет точки фрактала IFS с параметра
msgid "Computes the flame fractal"
msgstr "Вычисляет точки фрактала flame"
-#: src/parser.cpp:1431 src/parser.cpp:1435
+#: src/parser.cpp:1434 src/parser.cpp:1438
msgid "Conditional operator"
msgstr "Условный оператор"
@@ -1122,7 +1122,7 @@ msgstr "Копировать данные"
msgid "Copy data from another variable"
msgstr "Копировать данные из другой переменной"
-#: widgets/fltk.cpp:811
+#: widgets/fltk.cpp:812
msgid "Copy graphics"
msgstr "Копировать рисунок"
@@ -1130,7 +1130,7 @@ msgstr "Копировать рисунок"
msgid "Copy graphics to clipboard (Ctrl+Shift+G)."
msgstr "Копировать рисунок в буфер обмена (Ctrl+Shift+G)."
-#: widgets/fltk.cpp:855
+#: widgets/fltk.cpp:856
msgid "Copy image to clipboard"
msgstr "Копировать рисунок в буфер обмена"
@@ -1150,7 +1150,7 @@ msgstr "Копировать выделенный текст или данные
msgid "Copy selection to clipboard"
msgstr "Копировать выделение в буфер обмена"
-#: udav/text_pnl.cpp:533 mgllab/mgllab.cpp:295
+#: udav/text_pnl.cpp:533 mgllab/mgllab.cpp:293
msgid "Copy text"
msgstr "Копировать текст"
@@ -1227,7 +1227,7 @@ msgstr "Создать новый массив данных, заполненн
msgid "Create new empty script window (Ctrl+N)."
msgstr "Создать новое окно скрипта (Ctrl+N)."
-#: src/parser.cpp:1436
+#: src/parser.cpp:1439
msgid "Creates new variable from list of numbers or data"
msgstr "Создать новый массив из списка значений или данных"
@@ -1272,7 +1272,7 @@ msgstr "Текущий шрифт"
msgid "Cut selected text to clipboard (Ctrl+X)."
msgstr "Вырезать выбранный текст в буфер обмена (Ctrl+X)."
-#: udav/text_pnl.cpp:528 mgllab/mgllab.cpp:294
+#: udav/text_pnl.cpp:528 mgllab/mgllab.cpp:292
msgid "Cut text"
msgstr "Вырезать текст"
@@ -1348,19 +1348,19 @@ msgstr "Уменьшить угол θ на 10 градусов."
msgid "Decrease font size"
msgstr "Уменьшить размер шрифта"
-#: src/parser.cpp:1427
+#: src/parser.cpp:1430
msgid "Define constant or parameter"
msgstr "Определит постоянную или параметр"
-#: src/parser.cpp:1426
+#: src/parser.cpp:1429
msgid "Define parameter as character"
msgstr "Определить параметр как символ"
-#: src/parser.cpp:1428
+#: src/parser.cpp:1431
msgid "Define parameter as numerical value"
msgstr "Определить параметр как значение выражения"
-#: src/parser.cpp:1422
+#: src/parser.cpp:1425
msgid "Define parameter from user input"
msgstr "Определить параметр по вводу пользователя"
@@ -1482,31 +1482,31 @@ msgstr "Не сохранять"
msgid "Double diff."
msgstr "Вторая производная"
-#: src/exec_gr.cpp:1032
+#: src/exec_gr.cpp:1043
msgid "Draw Bifurcation diagram"
msgstr "Нарисовать бифуркационную диаграмму"
-#: src/exec_gr.cpp:1067
+#: src/exec_gr.cpp:1078
msgid "Draw Iris plots"
msgstr "Нарисовать график Iris"
-#: src/exec_gr.cpp:1069
+#: src/exec_gr.cpp:1080
msgid "Draw Lamerey diagram"
msgstr "Нарисовать диаграмму Ламерея"
-#: src/exec_gr.cpp:1073
+#: src/exec_gr.cpp:1084
msgid "Draw Open-High-Low-Close (OHLC) diagram"
msgstr "Нарисовать диаграмму OHLC (Open-High-Low-Close)"
-#: src/exec_gr.cpp:1076
+#: src/exec_gr.cpp:1087
msgid "Draw Poincare map"
msgstr "Нарисовать диаграмму Пуанкаре"
-#: src/exec_gr.cpp:1082
+#: src/exec_gr.cpp:1093
msgid "Draw STFA diagram"
msgstr "Нарисовать диаграмму STFA"
-#: src/exec_gr.cpp:1094
+#: src/exec_gr.cpp:1105
msgid "Draw TeX mark at point position"
msgstr "Нарисовать ТеХ символы в положении точек"
@@ -1514,19 +1514,24 @@ msgstr "Нарисовать ТеХ символы в положении точ
msgid "Draw angle arc"
msgstr "Нарисовать дугу"
-#: src/exec_gr.cpp:1026
+#: src/exec_gr.cpp:1036
msgid "Draw area plot for 1D data"
msgstr "Закрасить область между кривой и осью"
-#: src/exec_gr.cpp:1029
+#: src/exec_gr.cpp:1039
msgid "Draw bars for 1D data"
msgstr "Нарисовать график из вертикальных полос"
-#: src/exec_gr.cpp:1031
+#: src/exec_gr.cpp:1041
msgid "Draw belts"
msgstr "Нарисовать поверхность ленточками"
-#: src/exec_gr.cpp:1092
+#: src/exec_gr.cpp:1042
+#, fuzzy
+msgid "Draw belts colored by other data"
+msgstr "Нарисовать поверхность с заданным цветом"
+
+#: src/exec_gr.cpp:1103
msgid "Draw binormales for 1D data"
msgstr "Нарисовать нормаль и бинормаль для кривой"
@@ -1538,19 +1543,19 @@ msgstr "Нарисовать растр (логотип) в области ос
msgid "Draw bounding box"
msgstr "Нарисовать ограничивающий параллелепипед"
-#: src/exec_gr.cpp:1034
+#: src/exec_gr.cpp:1045
msgid "Draw boxes"
msgstr "Нарисовать поверхность ящиками"
-#: src/exec_gr.cpp:1033
+#: src/exec_gr.cpp:1044
msgid "Draw boxplot for 2D data"
msgstr "Нарисовать box-and-whisker диаграмму"
-#: src/exec_gr.cpp:1035
+#: src/exec_gr.cpp:1046
msgid "Draw candlestick chart"
msgstr "Нарисовать свечной график"
-#: src/exec_gr.cpp:1036
+#: src/exec_gr.cpp:1047
msgid "Draw chart"
msgstr "Нарисовать линейчатую (круговую) диаграмму"
@@ -1558,7 +1563,7 @@ msgstr "Нарисовать линейчатую (круговую) диагр
msgid "Draw circle"
msgstr "Нарисовать окружность (круг)"
-#: src/exec_gr.cpp:1037
+#: src/exec_gr.cpp:1048
msgid "Draw cloud"
msgstr "Нарисовать облако для 3D данных"
@@ -1570,43 +1575,43 @@ msgstr "Нарисовать цветовую шкалу"
msgid "Draw cone"
msgstr "Нарисовать конус"
-#: src/exec_gr.cpp:1038
+#: src/exec_gr.cpp:1049
msgid "Draw cones for 1D data"
msgstr "Нарисовать конусы для 1D данных"
-#: src/exec_gr.cpp:1039
+#: src/exec_gr.cpp:1050
msgid "Draw contour lines"
msgstr "Нарисовать линии уровня"
-#: src/exec_gr.cpp:1049
+#: src/exec_gr.cpp:1060
msgid "Draw contour lines at x-slice (or x-plane)"
msgstr "Нарисовать линии уровня на x-срезе"
-#: src/exec_gr.cpp:1050
+#: src/exec_gr.cpp:1061
msgid "Draw contour lines at y-slice (or y-plane)"
msgstr "Нарисовать линии уровня на y-срезе"
-#: src/exec_gr.cpp:1051
+#: src/exec_gr.cpp:1062
msgid "Draw contour lines at z-slice (or z-plane)"
msgstr "Нарисовать линии уровня на z-срезе"
-#: src/exec_gr.cpp:1040
+#: src/exec_gr.cpp:1051
msgid "Draw contour lines for 3D data"
msgstr "Нарисовать линии уровня на срезах 3D данных"
-#: src/exec_gr.cpp:1099
+#: src/exec_gr.cpp:1110
msgid "Draw contour lines for surface of triangles"
msgstr "Нарисовать линии уровня для поверхности из треугольников"
-#: src/exec_gr.cpp:1047
+#: src/exec_gr.cpp:1058
msgid "Draw contour lines on parametric surface"
msgstr "Нарисовать линии уровня на параметрической поверхности"
-#: src/exec_gr.cpp:1048
+#: src/exec_gr.cpp:1059
msgid "Draw contour tubes"
msgstr "Нарисовать цилиндры по линиям уровней"
-#: src/exec_gr.cpp:1100
+#: src/exec_gr.cpp:1111
msgid "Draw contour tubes for surface of triangles"
msgstr "Нарисовать цилиндры по линиям уровней для поверхности из треугольников"
@@ -1614,35 +1619,35 @@ msgstr "Нарисовать цилиндры по линиям уровней
msgid "Draw curve"
msgstr "Нарисовать кривую"
-#: src/exec_gr.cpp:1102
+#: src/exec_gr.cpp:1113
msgid "Draw curve by tube"
msgstr "Нарисовать трубу около кривой"
-#: src/exec_gr.cpp:1053
+#: src/exec_gr.cpp:1064
msgid "Draw density plot"
msgstr "Нарисовать график плотности"
-#: src/exec_gr.cpp:1054
+#: src/exec_gr.cpp:1065
msgid "Draw density plot at slices of 3D data"
msgstr "Нарисовать график плотности на срезе 3D данных"
-#: src/exec_gr.cpp:1055
+#: src/exec_gr.cpp:1066
msgid "Draw density plot at x-slice (or x-plane)"
msgstr "Нарисовать график плотности на x-срезе"
-#: src/exec_gr.cpp:1056
+#: src/exec_gr.cpp:1067
msgid "Draw density plot at y-slice (or y-plane)"
msgstr "Нарисовать график плотности на y-срезе"
-#: src/exec_gr.cpp:1057
+#: src/exec_gr.cpp:1068
msgid "Draw density plot at z-slice (or z-plane)"
msgstr "Нарисовать график плотности на z-срезе"
-#: src/exec_gr.cpp:1058
+#: src/exec_gr.cpp:1069
msgid "Draw dew plot"
msgstr "Нарисовать векторное поле каплями"
-#: src/exec_gr.cpp:1059
+#: src/exec_gr.cpp:1070
msgid "Draw dots for arbitrary data points"
msgstr "Нарисовать набор точек"
@@ -1658,7 +1663,7 @@ msgstr "Нарисовать эллипс"
msgid "Draw error box"
msgstr "Нарисовать размер ошибки"
-#: src/exec_gr.cpp:1060
+#: src/exec_gr.cpp:1071
msgid "Draw error boxes"
msgstr "Нарисовать размеры ошибок для 1D данных"
@@ -1678,19 +1683,19 @@ msgstr "Нарисовать грань поперек оси y"
msgid "Draw face perpendicular to z-axis"
msgstr "Нарисовать грань поперек оси z"
-#: src/exec_gr.cpp:1079
+#: src/exec_gr.cpp:1090
msgid "Draw filled region (ribbon) between 2 curves"
msgstr "Закрасить область между двумя кривыми"
-#: src/exec_gr.cpp:1074
+#: src/exec_gr.cpp:1085
msgid "Draw flow pipes for vector field"
msgstr "Нарисовать трубки тока для векторного поля"
-#: src/exec_gr.cpp:1062
+#: src/exec_gr.cpp:1073
msgid "Draw flow threads for vector field"
msgstr "Нарисовать линии тока для векторного поля"
-#: src/exec_gr.cpp:1064
+#: src/exec_gr.cpp:1075
msgid "Draw gradient lines for scalar field"
msgstr "Нарисовать линии градиента для скалярного поля"
@@ -1698,43 +1703,43 @@ msgstr "Нарисовать линии градиента для скалярн
msgid "Draw grid"
msgstr "Нарисовать сетку осей координат"
-#: src/exec_gr.cpp:1066
+#: src/exec_gr.cpp:1077
msgid "Draw grid at slices of 3D data"
msgstr "Нарисовать сетку на срезе 3D данных"
-#: src/exec_gr.cpp:1065
+#: src/exec_gr.cpp:1076
msgid "Draw grid for data array(s)"
msgstr "Нарисовать сетку для массива"
-#: src/exec_gr.cpp:1028
+#: src/exec_gr.cpp:1038
msgid "Draw horizontal bars for 1D data"
msgstr "Нарисовать график из горизонтальных полос"
-#: src/exec_gr.cpp:1095
+#: src/exec_gr.cpp:1106
msgid "Draw horizontal tiles"
msgstr "Нарисовать поверхность горизонтальными плитками"
-#: src/exec_gr.cpp:1096
+#: src/exec_gr.cpp:1107
msgid "Draw horizontal tiles with variable size"
msgstr "Нарисовать поверхность плитками переменного размера"
-#: src/exec_gr.cpp:1084
+#: src/exec_gr.cpp:1095
msgid "Draw isosurface for 3D data"
msgstr "Нарисовать поверхность постоянного уровня"
-#: src/exec_gr.cpp:1087
+#: src/exec_gr.cpp:1098
msgid "Draw isosurface for 3D data colored and transpared by other data"
msgstr "Нарисовать поверхность уровня с заданными цветом и прозрачностью"
-#: src/exec_gr.cpp:1086
+#: src/exec_gr.cpp:1097
msgid "Draw isosurface for 3D data colored by other data"
msgstr "Нарисовать поверхность уровня с заданным цветом"
-#: src/exec_gr.cpp:1085
+#: src/exec_gr.cpp:1096
msgid "Draw isosurface for 3D data transpared by other data"
msgstr "Нарисовать поверхность уровня с заданной прозрачностью"
-#: src/exec_gr.cpp:1068
+#: src/exec_gr.cpp:1079
msgid "Draw label at arbitrary position"
msgstr "Вывести надписи для 1D данных"
@@ -1762,15 +1767,15 @@ msgstr "Нарисовать легенду графика"
msgid "Draw line"
msgstr "Нарисовать прямую линию"
-#: src/exec_gr.cpp:1070
+#: src/exec_gr.cpp:1081
msgid "Draw mapping plot"
msgstr "Нарисовать отображение матрицы"
-#: src/exec_gr.cpp:1071
+#: src/exec_gr.cpp:1082
msgid "Draw mark plot for 1D data"
msgstr "Нарисовать маркеры переменного размера"
-#: src/exec_gr.cpp:1072
+#: src/exec_gr.cpp:1083
msgid "Draw mesh surface"
msgstr "Нарисовать сетчатую поверхность"
@@ -1782,15 +1787,15 @@ msgstr "Нарисовать точку"
msgid "Draw polygon"
msgstr "Нарисовать полигон"
-#: src/exec_gr.cpp:1030
+#: src/exec_gr.cpp:1040
msgid "Draw quasi-optical beam"
msgstr "Нарисовать квазиоптический пучок"
-#: src/exec_gr.cpp:1078
+#: src/exec_gr.cpp:1089
msgid "Draw radar chart"
msgstr "Нарисовать круговой график"
-#: src/exec_gr.cpp:1052
+#: src/exec_gr.cpp:1063
msgid "Draw reconstructed surface for arbitrary data points"
msgstr "Нарисовать поверхность по произвольным точкам"
@@ -1802,43 +1807,43 @@ msgstr "Нарисовать прямоугольник"
msgid "Draw rhombus"
msgstr "Нарисовать ромб"
-#: src/exec_gr.cpp:1044
+#: src/exec_gr.cpp:1055
msgid "Draw solid contour lines at x-slice (or x-plane)"
msgstr "Закрасить линии уровня на x-срезе"
-#: src/exec_gr.cpp:1045
+#: src/exec_gr.cpp:1056
msgid "Draw solid contour lines at y-slice (or y-plane)"
msgstr "Закрасить линии уровня на y-срезе"
-#: src/exec_gr.cpp:1046
+#: src/exec_gr.cpp:1057
msgid "Draw solid contour lines at z-slice (or z-plane)"
msgstr "Закрасить линии уровня на z-срезе"
-#: src/exec_gr.cpp:1043
+#: src/exec_gr.cpp:1054
msgid "Draw solid contour lines for 3D data"
msgstr "Закрасить линии уровня на 3D данных"
-#: src/exec_gr.cpp:1042
+#: src/exec_gr.cpp:1053
msgid "Draw solid contours"
msgstr "Закрасить линии уровня"
-#: src/exec_gr.cpp:1041
+#: src/exec_gr.cpp:1052
msgid "Draw solid contours with manual colors"
msgstr "Закрасить линии уровня заданными цветами"
-#: src/exec_gr.cpp:1083
+#: src/exec_gr.cpp:1094
msgid "Draw solid surface"
msgstr "Нарисовать поверхность"
-#: src/exec_gr.cpp:1090
+#: src/exec_gr.cpp:1101
msgid "Draw solid surface colored and transpared by other data"
msgstr "Нарисовать поверхность с заданными цветом и прозрачностью"
-#: src/exec_gr.cpp:1089
+#: src/exec_gr.cpp:1100
msgid "Draw solid surface colored by other data"
msgstr "Нарисовать поверхность с заданным цветом"
-#: src/exec_gr.cpp:1088
+#: src/exec_gr.cpp:1099
msgid "Draw solid surface transpared by other data"
msgstr "Нарисовать поверхность с заданной прозрачностью"
@@ -1846,35 +1851,35 @@ msgstr "Нарисовать поверхность с заданной проз
msgid "Draw sphere"
msgstr "Нарисовать сферу"
-#: src/exec_gr.cpp:1080
+#: src/exec_gr.cpp:1091
msgid "Draw stem plot for 1D data"
msgstr "Нарисовать линии от 1D данных до оси"
-#: src/exec_gr.cpp:1081
+#: src/exec_gr.cpp:1092
msgid "Draw step plot for 1D data"
msgstr "Нарисовать ступеньки"
-#: src/exec_gr.cpp:1097
+#: src/exec_gr.cpp:1108
msgid "Draw surface of curve rotation"
msgstr "Нарисовать поверхность вращения"
-#: src/exec_gr.cpp:1077
+#: src/exec_gr.cpp:1088
msgid "Draw surface of quadrangles"
msgstr "Нарисовать поверхность из четырехугольников"
-#: src/exec_gr.cpp:1101
+#: src/exec_gr.cpp:1112
msgid "Draw surface of triangles"
msgstr "Нарисовать поверхность из треугольников"
-#: src/exec_gr.cpp:1027
+#: src/exec_gr.cpp:1037
msgid "Draw surfaces of contour lines rotation"
msgstr "Нарисовать поверхность вращения линий уровня"
-#: src/exec_gr.cpp:1091
+#: src/exec_gr.cpp:1102
msgid "Draw table with data values"
msgstr "Нарисовать таблицу значений данных"
-#: src/exec_gr.cpp:1093
+#: src/exec_gr.cpp:1104
msgid "Draw tension plot for 1D data"
msgstr "Нарисовать кривую с заданным цветом"
@@ -1886,23 +1891,23 @@ msgstr "Вывести текст в точке или вдоль кривой"
msgid "Draw user-defined symbol at given position and direction"
msgstr "Нарисовать символ в заданных точке и направлении"
-#: src/exec_gr.cpp:1075
+#: src/exec_gr.cpp:1086
msgid "Draw usual plot for 1D data"
msgstr "Нарисовать кривую для 1D данных"
-#: src/exec_gr.cpp:1103
+#: src/exec_gr.cpp:1114
msgid "Draw vector field"
msgstr "Нарисовать векторное поле"
-#: src/exec_gr.cpp:1104
+#: src/exec_gr.cpp:1115
msgid "Draw vector field at slices of 3D data"
msgstr "Нарисовать векторное поле на срезах 3D данных"
-#: src/exec_gr.cpp:1098
+#: src/exec_gr.cpp:1109
msgid "Draw vectors along a curve"
msgstr "Нарисовать вектора вдоль кривой"
-#: src/exec_gr.cpp:1061
+#: src/exec_gr.cpp:1072
msgid "Draw waterfalls"
msgstr "Нарисовать поверхность набором линий (водопад)"
@@ -1923,7 +1928,7 @@ msgstr "E - темно-салатовый"
msgid "Edges"
msgstr "Края"
-#: udav/text_pnl.cpp:84 mgllab/mgllab.cpp:292
+#: udav/text_pnl.cpp:84 mgllab/mgllab.cpp:290
msgid "Edit"
msgstr "Правка"
@@ -1935,13 +1940,13 @@ msgstr "Редактировать выбранный массив данных"
msgid "Elliptic"
msgstr "Эллиптические"
-#: udav/prop_dlg.cpp:171 mgllab/mgllab.cpp:474
+#: udav/prop_dlg.cpp:171 mgllab/mgllab.cpp:471
msgid "Enable keywords completion"
msgstr "Разрешить дополнение команд"
#. pure = new QCheckBox(_("Disable face drawing (faster) for mouse rotation/shift/zoom."), this);
#. pure->setChecked(mglAutoPure); v->addWidget(pure); pure->setEnabled(false);
-#: udav/prop_dlg.cpp:169 mgllab/mgllab.cpp:476
+#: udav/prop_dlg.cpp:169 mgllab/mgllab.cpp:473
msgid "Enable mouse wheel for zooming"
msgstr "Колесо мыши приближает график"
@@ -2075,11 +2080,11 @@ msgid ""
msgstr "Интерполирует значения в точках i=idat,j=jdat,k=kdat"
#. {"defpal",_("Define parameter as palette color"),"defpal $N val", 0, 6},
-#: src/parser.cpp:1430
+#: src/parser.cpp:1433
msgid "Execute if condition is false"
msgstr "Выполнить если условие ложно"
-#: mgllab/mgllab.cpp:472
+#: mgllab/mgllab.cpp:469
msgid "Execute script after loading"
msgstr "Выполнить скрипт после загрузки"
@@ -2087,7 +2092,7 @@ msgstr "Выполнить скрипт после загрузки"
msgid "Execute script and redraw graphics (F5)."
msgstr "Выполнить скрипт и обновить рисунок (F5)."
-#: src/parser.cpp:1424
+#: src/parser.cpp:1427
msgid "Execute script in external file"
msgstr "Выполнить скрипт из внешнего файла"
@@ -2095,7 +2100,7 @@ msgstr "Выполнить скрипт из внешнего файла"
msgid "Existed data arrays"
msgstr "Массивы данных"
-#: mgllab/mgllab.cpp:290
+#: mgllab/mgllab.cpp:288
msgid "Exit"
msgstr "Выход"
@@ -2111,7 +2116,7 @@ msgstr "Exp-интегралы"
msgid "Export Data?"
msgstr "Экспорт данных?"
-#: widgets/fltk.cpp:789
+#: widgets/fltk.cpp:790
msgid "Export as ..."
msgstr "Экспорт как ..."
@@ -2158,7 +2163,7 @@ msgstr "Фактор"
#. file menu
#: widgets/qt.cpp:1066 udav/udav_wnd.cpp:281 udav/dat_pnl.cpp:681
-#: mgllab/mgllab.cpp:277 mgllab/table.cpp:748
+#: mgllab/mgllab.cpp:275 mgllab/table.cpp:748
msgid "File"
msgstr "Файл"
@@ -2166,7 +2171,7 @@ msgstr "Файл"
msgid "File %1 saved"
msgstr "Файл %1 сохранен."
-#: mgllab/mgllab.cpp:227
+#: mgllab/mgllab.cpp:225
msgid "File is exesist. Overwrite it?"
msgstr "Файл существует. Переписать?"
@@ -2174,7 +2179,7 @@ msgstr "Файл существует. Переписать?"
msgid "File name"
msgstr "Имя файла"
-#: mgllab/mgllab.cpp:303
+#: mgllab/mgllab.cpp:301
msgid "File path"
msgstr "Путь к файлу"
@@ -2182,7 +2187,7 @@ msgstr "Путь к файлу"
msgid "File to export"
msgstr "Экспорт в файл"
-#: mgllab/editor.cpp:267 mgllab/mgllab.cpp:396
+#: mgllab/editor.cpp:267 mgllab/mgllab.cpp:394
msgid "File/Recent files"
msgstr "Файл/Последние файлы"
@@ -2246,7 +2251,7 @@ msgstr "Найти максимум по направлению"
msgid "Find minimal value over direction"
msgstr "Найти минимум по направлению"
-#: udav/text_pnl.cpp:551 mgllab/mgllab.cpp:301
+#: udav/text_pnl.cpp:551 mgllab/mgllab.cpp:299
msgid "Find next"
msgstr "Найти следующее"
@@ -2278,11 +2283,11 @@ msgstr "Найти что:"
msgid "Find/Replace"
msgstr "Найти/Заменить"
-#: mgllab/mgllab.cpp:300
+#: mgllab/mgllab.cpp:298
msgid "Find|Replace"
msgstr "Найти|Заменить"
-#: src/parser.cpp:1432
+#: src/parser.cpp:1435
msgid "Finish if/else block"
msgstr "Окончание блока if/else"
@@ -2298,7 +2303,7 @@ msgstr "Первый срез"
msgid "Fit data to formula"
msgstr "Подогнать данные по формуле"
-#: udav/text_pnl.cpp:567 mgllab/mgllab.cpp:307
+#: udav/text_pnl.cpp:567 mgllab/mgllab.cpp:305
msgid "Fitted formula"
msgstr "Подобранная формула"
@@ -2314,11 +2319,11 @@ msgstr "Туман"
msgid "Fog dist."
msgstr "глубина"
-#: mgllab/mgllab.cpp:533
+#: mgllab/mgllab.cpp:530
msgid "Folder for help files"
msgstr "Папка для файлов справки"
-#: udav/text_pnl.cpp:587 mgllab/mgllab.cpp:304
+#: udav/text_pnl.cpp:587 mgllab/mgllab.cpp:302
msgid "Folder path"
msgstr "Путь к папке"
@@ -2326,7 +2331,7 @@ msgstr "Путь к папке"
msgid "Font"
msgstr "Шрифт"
-#: mgllab/mgllab.cpp:524
+#: mgllab/mgllab.cpp:521
msgid "Font file name"
msgstr "Имя файла шрифта"
@@ -2334,11 +2339,11 @@ msgstr "Имя файла шрифта"
msgid "Font files (*.vfm)"
msgstr "Файлы шрифтов (*.vfm)"
-#: mgllab/mgllab.cpp:463
+#: mgllab/mgllab.cpp:460
msgid "Font kind"
msgstr "Шрифт"
-#: mgllab/mgllab.cpp:465
+#: mgllab/mgllab.cpp:462
msgid "Font size"
msgstr "Размер"
@@ -2350,7 +2355,7 @@ msgstr "Шрифт"
msgid "FontSize"
msgstr "Размер"
-#: src/parser.cpp:1433
+#: src/parser.cpp:1436
msgid "For loop"
msgstr "Цикл for"
@@ -2367,7 +2372,7 @@ msgstr "Кадр %1 из %2"
msgid "From"
msgstr "от"
-#: mgllab/mgllab.cpp:592
+#: mgllab/mgllab.cpp:589
msgid "Function"
msgstr "Функция"
@@ -2439,7 +2444,7 @@ msgid "Go to the specified slice for 3D data."
msgstr "Перейти к указанному срезу 3D данных"
#: widgets/qt.cpp:1095 widgets/qt.cpp:1097 udav/plot_pnl.cpp:66
-#: mgllab/mgllab.cpp:319
+#: mgllab/mgllab.cpp:317
msgid "Graphics"
msgstr "Графика"
@@ -2447,7 +2452,7 @@ msgstr "Графика"
msgid "Graphics setup"
msgstr "Настройка графика"
-#: widgets/fltk.cpp:927
+#: widgets/fltk.cpp:928
msgid "Graphics/Adjust size"
msgstr "Графика/Подогнать размер"
@@ -2456,143 +2461,143 @@ msgstr "Графика/Подогнать размер"
#. /< Callback function for prev frame
#. /< Callback function for delay
#. /< Callback function for reloading
-#: widgets/fltk.cpp:921 include/mgl2/Fl_MathGL.h:150
+#: widgets/fltk.cpp:922 include/mgl2/Fl_MathGL.h:150
msgid "Graphics/Alpha"
msgstr "Графика/Прозрачность"
-#: widgets/fltk.cpp:956
+#: widgets/fltk.cpp:957
msgid "Graphics/Animation/Next frame"
msgstr "Графика/Анимация/Следующий"
-#: widgets/fltk.cpp:957
+#: widgets/fltk.cpp:958
msgid "Graphics/Animation/Prev frame"
msgstr "Графика/Анимация/Предыдущий"
-#: mgllab/mgllab.cpp:371
+#: mgllab/mgllab.cpp:369
msgid "Graphics/Animation/Setup animation"
msgstr "Графика/Анимация/Настройка"
-#: widgets/fltk.cpp:955 include/mgl2/Fl_MathGL.h:152
+#: widgets/fltk.cpp:956 include/mgl2/Fl_MathGL.h:152
msgid "Graphics/Animation/Slideshow"
msgstr "Графика/Анимация/Запустить"
-#: widgets/fltk.cpp:931
+#: widgets/fltk.cpp:932
msgid "Graphics/Copy click coor."
msgstr "Графика/Копировать коор."
-#: widgets/fltk.cpp:930
+#: widgets/fltk.cpp:931
msgid "Graphics/Copy graphics"
msgstr "Графика/Копировать рисунок"
-#: widgets/fltk.cpp:944
+#: widgets/fltk.cpp:945
msgid "Graphics/Export/as BMP"
msgstr "Графика/Экспорт/как BMP"
-#: widgets/fltk.cpp:942
+#: widgets/fltk.cpp:943
msgid "Graphics/Export/as GIF"
msgstr "Графика/Экспорт/как GIF"
-#: widgets/fltk.cpp:939
+#: widgets/fltk.cpp:940
msgid "Graphics/Export/as JPEG"
msgstr "Графика/Экспорт/как JPEG"
-#: widgets/fltk.cpp:950
+#: widgets/fltk.cpp:951
msgid "Graphics/Export/as OBJ"
msgstr "Графика/Экспорт/как OBJ"
-#: widgets/fltk.cpp:951
+#: widgets/fltk.cpp:952
msgid "Graphics/Export/as OFF"
msgstr "Графика/Экспорт/как OFF"
-#: widgets/fltk.cpp:935
+#: widgets/fltk.cpp:936
msgid "Graphics/Export/as PNG"
msgstr "Графика/Экспорт/как PNG"
-#: widgets/fltk.cpp:949
+#: widgets/fltk.cpp:950
msgid "Graphics/Export/as PRC"
msgstr "Графика/Экспорт/как PRC"
-#: widgets/fltk.cpp:952
+#: widgets/fltk.cpp:953
msgid "Graphics/Export/as STL"
msgstr "Графика/Экспорт/как STL"
-#: widgets/fltk.cpp:945
+#: widgets/fltk.cpp:946
msgid "Graphics/Export/as SVG"
msgstr "Графика/Экспорт/как SVG"
-#: widgets/fltk.cpp:948
+#: widgets/fltk.cpp:949
msgid "Graphics/Export/as TeX"
msgstr "Графика/Экспорт/как TeX"
-#: widgets/fltk.cpp:953
+#: widgets/fltk.cpp:954
msgid "Graphics/Export/as XYZ"
msgstr "Графика/Экспорт/как XYZ"
-#: widgets/fltk.cpp:947
+#: widgets/fltk.cpp:948
msgid "Graphics/Export/as bitmap EPS"
msgstr "Графика/Экспорт/как растровый EPS"
-#: widgets/fltk.cpp:936
+#: widgets/fltk.cpp:937
msgid "Graphics/Export/as solid PNG"
msgstr "Графика/Экспорт/как PNG с заливкой"
-#: widgets/fltk.cpp:946
+#: widgets/fltk.cpp:947
msgid "Graphics/Export/as vector EPS"
msgstr "Графика/Экспорт/как EPS"
-#: widgets/fltk.cpp:923 include/mgl2/Fl_MathGL.h:153
+#: widgets/fltk.cpp:924 include/mgl2/Fl_MathGL.h:153
msgid "Graphics/Grid"
msgstr "Графика/Сетка"
-#: widgets/fltk.cpp:922 include/mgl2/Fl_MathGL.h:151
+#: widgets/fltk.cpp:923 include/mgl2/Fl_MathGL.h:151
msgid "Graphics/Light"
msgstr "Графика/Освещение"
-#: widgets/fltk.cpp:932 include/mgl2/Fl_MathGL.h:159 mgllab/mgllab.cpp:372
+#: widgets/fltk.cpp:933 include/mgl2/Fl_MathGL.h:159 mgllab/mgllab.cpp:370
msgid "Graphics/Pause calc"
msgstr "Графика/Пауза расчета"
-#: mgllab/mgllab.cpp:370
+#: mgllab/mgllab.cpp:368
msgid "Graphics/Primitive"
msgstr "Графика/Примитивы"
-#: widgets/fltk.cpp:926
+#: widgets/fltk.cpp:927
msgid "Graphics/Redraw"
msgstr "Графика/Перерисовать"
-#: widgets/fltk.cpp:928
+#: widgets/fltk.cpp:929
msgid "Graphics/Reload data"
msgstr "Графика/Перезагрузить"
-#: widgets/fltk.cpp:925
+#: widgets/fltk.cpp:926
msgid "Graphics/Restore"
msgstr "Графика/Восстановить"
-#: widgets/fltk.cpp:929
+#: widgets/fltk.cpp:930
msgid "Graphics/Stop"
msgstr "Графика/Стоп"
-#: widgets/fltk.cpp:963
+#: widgets/fltk.cpp:964
msgid "Graphics/Transform/Move down"
msgstr "Графика/Сдвиг/Вниз"
-#: widgets/fltk.cpp:959
+#: widgets/fltk.cpp:960
msgid "Graphics/Transform/Move left"
msgstr "Графика/Сдвиг/Влево"
-#: widgets/fltk.cpp:964
+#: widgets/fltk.cpp:965
msgid "Graphics/Transform/Move right"
msgstr "Графика/Сдвиг/Вправо"
-#: widgets/fltk.cpp:960
+#: widgets/fltk.cpp:961
msgid "Graphics/Transform/Move up"
msgstr "Графика/Сдвиг/Вверх"
-#: widgets/fltk.cpp:961
+#: widgets/fltk.cpp:962
msgid "Graphics/Transform/Zoom in"
msgstr "Графика/Сдвиг/Приблизить"
-#: widgets/fltk.cpp:962
+#: widgets/fltk.cpp:963
msgid "Graphics/Transform/Zoom out"
msgstr "Графика/Сдвиг/Отдалить"
@@ -2635,8 +2640,8 @@ msgid "Height of selected cells"
msgstr "Высота выбранных ячеек"
#: widgets/qt.cpp:1276 udav/help_pnl.cpp:57 udav/udav_wnd.cpp:231
-#: udav/udav_wnd.cpp:323 mgllab/mgllab.cpp:329 mgllab/mgllab.cpp:330
-#: mgllab/mgllab.cpp:358
+#: udav/udav_wnd.cpp:323 mgllab/mgllab.cpp:327 mgllab/mgllab.cpp:328
+#: mgllab/mgllab.cpp:356
msgid "Help"
msgstr "Справка"
@@ -2648,7 +2653,7 @@ msgstr ""
"Здесь можно задать опции команды, \n"
"которые используются для доп.настройки графика."
-#: udav/udav_wnd.cpp:186 mgllab/mgllab.cpp:298
+#: udav/udav_wnd.cpp:186 mgllab/mgllab.cpp:296
msgid "Hidden plots"
msgstr "Скрытые графики"
@@ -2660,11 +2665,11 @@ msgstr "Скрыть выделенное"
msgid "Hide selected plots."
msgstr "Скрыть выделенные графики"
-#: udav/prop_dlg.cpp:173 mgllab/mgllab.cpp:475
+#: udav/prop_dlg.cpp:173 mgllab/mgllab.cpp:472
msgid "Highlight current object(s)"
msgstr "Выделить текущие графики"
-#: udav/udav_wnd.cpp:328 mgllab/mgllab.cpp:331
+#: udav/udav_wnd.cpp:328 mgllab/mgllab.cpp:329
msgid "Hints"
msgstr "Подсказки"
@@ -2684,7 +2689,7 @@ msgstr "Гиперболические"
msgid "ID"
msgstr ""
-#: mgllab/mgllab.cpp:333
+#: mgllab/mgllab.cpp:331
msgid "Icon list"
msgstr "Список иконок"
@@ -2744,16 +2749,16 @@ msgstr "Увеличить размер шрифта"
msgid "Info"
msgstr "Инфо"
-#: udav/info_dlg.cpp:55 mgllab/help.cpp:353
+#: udav/info_dlg.cpp:55 mgllab/help.cpp:354
msgid "Information"
msgstr "Информация"
-#: mgllab/mgllab.cpp:306
+#: mgllab/mgllab.cpp:304
msgid "Inplot"
msgstr "Под-график"
#. insert menu
-#: udav/text_pnl.cpp:557 mgllab/mgllab.cpp:302
+#: udav/text_pnl.cpp:557 mgllab/mgllab.cpp:300
msgid "Insert"
msgstr "Вставить"
@@ -2880,7 +2885,7 @@ msgstr "Надпись"
msgid "Language for UDAV"
msgstr "Язык для UDAV"
-#: mgllab/mgllab.cpp:478
+#: mgllab/mgllab.cpp:475
msgid "Language for mgllab"
msgstr "Язык для mgllab"
@@ -3006,7 +3011,7 @@ msgstr "Нижняя граница для цвета или прозрачно
msgid "M - purple"
msgstr "M - пурпурный"
-#: src/parser.cpp:1018
+#: src/parser.cpp:1021
msgid "MGL Parser"
msgstr "MGL парсер"
@@ -3014,11 +3019,11 @@ msgstr "MGL парсер"
msgid "MGL commands for selected group"
msgstr "Команда MGL для выбранной группы"
-#: mgllab/mgllab.cpp:214
+#: mgllab/mgllab.cpp:212
msgid "MGL files \t*.mgl"
msgstr "MGL файлы \t*.mgl"
-#: mgllab/mgllab.cpp:173
+#: mgllab/mgllab.cpp:172
msgid ""
"MGL files \t*.mgl\n"
"DAT files \t*.{dat,csv}"
@@ -3086,7 +3091,7 @@ msgstr "Штриховка вручную"
msgid "Manual mask"
msgstr "Маска вручную"
-#: udav/text_pnl.cpp:591 mgllab/mgllab.cpp:308
+#: udav/text_pnl.cpp:591 mgllab/mgllab.cpp:306
msgid "Manual primitives"
msgstr "Примитивы вручную"
@@ -3172,7 +3177,7 @@ msgstr "Максимум %g\t при x = %ld\ty = %ld\tz = %ld\n"
msgid "Maximum of"
msgstr "Максимум от"
-#: udav/mem_pnl.cpp:68 udav/mem_pnl.cpp:73 mgllab/mgllab.cpp:360
+#: udav/mem_pnl.cpp:68 udav/mem_pnl.cpp:73 mgllab/mgllab.cpp:358
msgid "Memory"
msgstr "Память"
@@ -3184,7 +3189,7 @@ msgstr "Число линий"
msgid "MeshNum"
msgstr "Число линий"
-#: mgllab/mgllab.cpp:327
+#: mgllab/mgllab.cpp:325
msgid "Messages"
msgstr "Сообщения"
@@ -3362,7 +3367,7 @@ msgstr "Новый под-график"
msgid "New order of dimensions"
msgstr "Новый порядок размерностей"
-#: udav/udav_wnd.cpp:282 mgllab/mgllab.cpp:278
+#: udav/udav_wnd.cpp:282 mgllab/mgllab.cpp:276
msgid "New script"
msgstr "Новый скрипт"
@@ -3394,7 +3399,7 @@ msgstr "Следующий срез"
msgid "Next slide"
msgstr "Следующий кадр"
-#: mgllab/help.cpp:135 mgllab/mgllab.cpp:227
+#: mgllab/help.cpp:135 mgllab/mgllab.cpp:225
msgid "No"
msgstr "Нет"
@@ -3434,7 +3439,7 @@ msgstr "Вхождения не найдены"
msgid "No text rotation"
msgstr "Не вращать текст"
-#: widgets/fltk.cpp:812
+#: widgets/fltk.cpp:813
msgid "Normal view"
msgstr "Обычный вид"
@@ -3505,7 +3510,7 @@ msgstr ""
#: udav/data_dlg.cpp:92 udav/subplot_dlg.cpp:221 mgllab/mathgl.cpp:196
#: mgllab/dialogs.cpp:121 mgllab/dialogs.cpp:165 mgllab/dialogs.cpp:411
#: mgllab/dialogs.cpp:585 mgllab/dialogs.cpp:750 mgllab/dialogs.cpp:1072
-#: mgllab/dialogs.cpp:1319 mgllab/dialogs.cpp:1474 mgllab/mgllab.cpp:483
+#: mgllab/dialogs.cpp:1319 mgllab/dialogs.cpp:1474 mgllab/mgllab.cpp:480
#: mgllab/table.cpp:621
msgid "OK"
msgstr ""
@@ -3514,7 +3519,7 @@ msgstr ""
msgid "Only current slice will be inserted"
msgstr "Только текущий срез будет вставлен"
-#: mgllab/mgllab.cpp:172
+#: mgllab/mgllab.cpp:171
msgid "Open File?"
msgstr "Открыть файл?"
@@ -3538,7 +3543,7 @@ msgstr "Открыть диалог создания новых данных."
msgid "Open file"
msgstr "Открыть файл"
-#: mgllab/mgllab.cpp:279
+#: mgllab/mgllab.cpp:277
msgid "Open file ..."
msgstr "Открыть файл ..."
@@ -3567,7 +3572,7 @@ msgid "Operations"
msgstr "Операции"
#: udav/prop_dlg.cpp:91 udav/newcmd_dlg.cpp:72 mgllab/dialogs.cpp:746
-#: mgllab/mgllab.cpp:310
+#: mgllab/mgllab.cpp:308
msgid "Options"
msgstr "Опции"
@@ -3596,7 +3601,7 @@ msgstr "Собственная яркость поверхности"
msgid "P - darkpink"
msgstr "P - багровый"
-#: src/prc.cpp:981
+#: src/prc.cpp:982
msgid "PDF support was disabled. Please, enable it and rebuild MathGL."
msgstr "PDF поддержка отключена. Включите ее и пересоберите MathGL."
@@ -3633,7 +3638,7 @@ msgstr "Вставить данные"
msgid "Paste range of numbers from clipboard (Ctrl+Shift+P)."
msgstr "Вставить диапазон значений из буфера обмена (Ctrl+Shift+P)."
-#: udav/text_pnl.cpp:538 mgllab/mgllab.cpp:296
+#: udav/text_pnl.cpp:538 mgllab/mgllab.cpp:294
msgid "Paste text"
msgstr "Вставить текст"
@@ -3645,11 +3650,11 @@ msgstr "Вставить текст из буфера обмена"
msgid "Paste text or data from clipboard (Ctrl+V)."
msgstr "Вставить текст из буфера обмена (Ctrl+V)."
-#: mgllab/mgllab.cpp:469
+#: mgllab/mgllab.cpp:466
msgid "Path for MathGL font (without extension)"
msgstr "Путь к шрифтам MathGL (без расширения)"
-#: udav/prop_dlg.cpp:110 mgllab/mgllab.cpp:466
+#: udav/prop_dlg.cpp:110 mgllab/mgllab.cpp:463
msgid "Path for help files"
msgstr "Путь к файлам справки"
@@ -3662,7 +3667,7 @@ msgid "Pause calculation"
msgstr "Пауза вычислений"
#. Wnd->connect(a, SIGNAL(triggered()), QMGL, SLOT(setPause()));
-#: widgets/fltk.cpp:891 widgets/qt.cpp:1270
+#: widgets/fltk.cpp:892 widgets/qt.cpp:1270
msgid "Pause on/off external calculations"
msgstr "Пауза вкл/выкл для внешних вычислений"
@@ -3670,7 +3675,7 @@ msgstr "Пауза вкл/выкл для внешних вычислений"
msgid "Perform Runge-Kutta step"
msgstr "Выполнить шаг Рунге-Кутта"
-#: widgets/fltk.cpp:864
+#: widgets/fltk.cpp:865
msgid "Phi angle (rotate in x*y plane)"
msgstr "Угол Phi (вращать в плоскости x*y)"
@@ -3703,11 +3708,11 @@ msgstr ""
"Нарисовать данные в новом окне.\n"
"Вы можете выбрать тип графика, его стиль и т.д."
-#: mgllab/mgllab.cpp:325
+#: mgllab/mgllab.cpp:323
msgid "Plot setup"
msgstr "Настройки графика"
-#: udav/text_pnl.cpp:571 mgllab/dialogs.cpp:312 mgllab/mgllab.cpp:309
+#: udav/text_pnl.cpp:571 mgllab/dialogs.cpp:312 mgllab/mgllab.cpp:307
msgid "Plot style"
msgstr "Стиль графика"
@@ -3735,7 +3740,7 @@ msgstr "Предыдущий кадр"
msgid "Preview"
msgstr "Просмотр"
-#: mgllab/mgllab.cpp:566
+#: mgllab/mgllab.cpp:563
msgid "Previous expressions"
msgstr "Предыдущее выражение"
@@ -3771,7 +3776,7 @@ msgstr "Вывести список имен переменных в HDF фай
msgid "Print message or information about the data"
msgstr "Вывести сообщение или информацию о данных"
-#: mgllab/mgllab.cpp:282
+#: mgllab/mgllab.cpp:280
msgid "Print plot"
msgstr "Напечатать график"
@@ -3799,7 +3804,7 @@ msgstr "Печатаю ..."
msgid "Program flow"
msgstr "Команды управления"
-#: udav/udav_wnd.cpp:312 mgllab/mgllab.cpp:322 mgllab/mgllab.cpp:461
+#: udav/udav_wnd.cpp:312 mgllab/mgllab.cpp:320 mgllab/mgllab.cpp:458
msgid "Properties"
msgstr "Свойства"
@@ -3811,7 +3816,7 @@ msgstr "Свойства выбранного массива данных"
msgid "Pulse prop."
msgstr "Свойства импульса"
-#: udav/calc_dlg.cpp:127 mgllab/mgllab.cpp:600
+#: udav/calc_dlg.cpp:127 mgllab/mgllab.cpp:597
msgid "Put function"
msgstr "Поместить"
@@ -3865,7 +3870,7 @@ msgstr "Загрузить данные из файла с размерами и
msgid "Read data with name 'id' from HDF file"
msgstr "Загрузить данные с именем 'id' из HDF файла"
-#: udav/udav_wnd.cpp:268 mgllab/mgllab.cpp:367
+#: udav/udav_wnd.cpp:268 mgllab/mgllab.cpp:365
msgid "Ready"
msgstr "Готов"
@@ -3873,7 +3878,7 @@ msgstr "Готов"
msgid "Rearrange data dimensions"
msgstr "Упорядочить размерности массива данных"
-#: udav/udav_wnd.cpp:301 mgllab/mgllab.cpp:283
+#: udav/udav_wnd.cpp:301 mgllab/mgllab.cpp:281
msgid "Recent files"
msgstr "Последние файлы"
@@ -3897,7 +3902,7 @@ msgstr "Перерисовать"
msgid "Redraw picture for $0 equal to"
msgstr "Перерисовать для $0 равного"
-#: widgets/fltk.cpp:813
+#: widgets/fltk.cpp:814
msgid "Redraw plot"
msgstr "Перерисовать график"
@@ -3905,7 +3910,7 @@ msgstr "Перерисовать график"
msgid "Refresh"
msgstr "Обновить"
-#: widgets/fltk.cpp:847
+#: widgets/fltk.cpp:848
msgid "Refresh the picture"
msgstr "Обновить рисунок"
@@ -3917,11 +3922,11 @@ msgstr "Положение i-го цвета"
msgid "Reload"
msgstr "Перезагрузить"
-#: widgets/fltk.cpp:815
+#: widgets/fltk.cpp:816
msgid "Reload data"
msgstr "Перезагрузить"
-#: widgets/fltk.cpp:853
+#: widgets/fltk.cpp:854
msgid "Reload data and refresh the picture"
msgstr "Перезагрузить данные и обновить рисунок"
@@ -4007,7 +4012,7 @@ msgstr "Изменить размер массива данных со сгла
msgid "Restore"
msgstr "Восстановить"
-#: widgets/fltk.cpp:844
+#: widgets/fltk.cpp:845
msgid "Restore default graphics rotation, zoom and perspective"
msgstr "Восстановить вращение, приближение и перспективу графика"
@@ -4036,7 +4041,7 @@ msgstr "Результат (будет иметь размеры "
msgid "Resulting string"
msgstr "Итоговая строка"
-#: src/parser.cpp:1439
+#: src/parser.cpp:1442
msgid "Return from function"
msgstr "Возврат из функции"
@@ -4077,7 +4082,7 @@ msgstr "Вращать влево"
msgid "Rotate on"
msgstr "Поворот"
-#: widgets/fltk.cpp:840
+#: widgets/fltk.cpp:841
msgid "Rotate picture by holding left mouse button"
msgstr "Вращать рисунок при удержании кнопок мыши"
@@ -4109,7 +4114,7 @@ msgstr ""
"Запустить анимацию (CTRl+F5). Если ее параметры\n"
"не заданы, то будет показан диалог настройки."
-#: widgets/fltk.cpp:885
+#: widgets/fltk.cpp:886
msgid "Run/Stop slideshow (graphics animation)"
msgstr "Запустить/остановить анимацию"
@@ -4137,7 +4142,7 @@ msgstr "Сохранить"
msgid "Save Data?"
msgstr "Сохранить данные?"
-#: widgets/fltk.cpp:572 mgllab/mgllab.cpp:214
+#: widgets/fltk.cpp:573 mgllab/mgllab.cpp:212
msgid "Save File As?"
msgstr "Сохранить файл?"
@@ -4145,7 +4150,7 @@ msgstr "Сохранить файл?"
msgid "Save JPEG frames"
msgstr "Сохранить кадры в JPEG"
-#: udav/udav_wnd.cpp:290 mgllab/mgllab.cpp:281
+#: udav/udav_wnd.cpp:290 mgllab/mgllab.cpp:279
msgid "Save as ..."
msgstr "Сохранить как ..."
@@ -4165,11 +4170,11 @@ msgstr "Сохранить данные в файл (Ctrl+Shift+S)."
msgid "Save data to file"
msgstr "Сохранить данные в файл"
-#: mgllab/mgllab.cpp:280
+#: mgllab/mgllab.cpp:278
msgid "Save file"
msgstr "Сохранить файл"
-#: mgllab/mgllab.cpp:473
+#: mgllab/mgllab.cpp:470
msgid "Save file before redrawing"
msgstr "Сохранить файл перед рисованием"
@@ -4209,7 +4214,7 @@ msgstr "Скрипт"
msgid "Search backward"
msgstr "Искать назад"
-#: udav/text_pnl.cpp:543 mgllab/mgllab.cpp:297
+#: udav/text_pnl.cpp:543 mgllab/mgllab.cpp:295
msgid "Select all"
msgstr "Выделить все"
@@ -4265,7 +4270,7 @@ msgstr "Задает яркость фонового освещения"
msgid "Set arbitrary position of plot in picture"
msgstr "Задать произвольную область рисования внутри рисунка"
-#: udav/udav_wnd.cpp:315 mgllab/mgllab.cpp:323
+#: udav/udav_wnd.cpp:315 mgllab/mgllab.cpp:321
msgid "Set arguments"
msgstr "Задать аргументы"
@@ -4509,11 +4514,11 @@ msgstr ""
msgid "Settings"
msgstr "Настройки"
-#: mgllab/mgllab.cpp:321
+#: mgllab/mgllab.cpp:319
msgid "Setup"
msgstr "Настройки"
-#: mgllab/mgllab.cpp:324
+#: mgllab/mgllab.cpp:322
msgid "Setup animation"
msgstr "Настроить анимацию"
@@ -4561,19 +4566,19 @@ msgstr "Контрастные"
msgid "Shear plot"
msgstr "Наклон графика"
-#: widgets/fltk.cpp:878
+#: widgets/fltk.cpp:879
msgid "Shift the picture down"
msgstr "Сдвинуть рисунок вниз"
-#: widgets/fltk.cpp:870
+#: widgets/fltk.cpp:871
msgid "Shift the picture left"
msgstr "Сдвинуть рисунок слево"
-#: widgets/fltk.cpp:876
+#: widgets/fltk.cpp:877
msgid "Shift the picture right"
msgstr "Сдвинуть рисунок вправо"
-#: widgets/fltk.cpp:868
+#: widgets/fltk.cpp:869
msgid "Shift the picture up"
msgstr "Сдвинуть рисунок вверх"
@@ -4659,11 +4664,11 @@ msgstr "Показать подсказки по использованию MGL.
msgid "Show info"
msgstr "Показать информацию"
-#: mgllab/mgllab.cpp:299
+#: mgllab/mgllab.cpp:297
msgid "Show lines"
msgstr "Показать строки"
-#: widgets/fltk.cpp:886
+#: widgets/fltk.cpp:887
msgid "Show next frame in slideshow"
msgstr "Показать следующий кадр"
@@ -4671,7 +4676,7 @@ msgstr "Показать следующий кадр"
msgid "Show next slide (Ctrl+.)."
msgstr "Показать следующий кадр (Ctrl+.)."
-#: widgets/fltk.cpp:881
+#: widgets/fltk.cpp:882
msgid "Show previous frame in slideshow"
msgstr "Показать предыдущий кадр"
@@ -4713,7 +4718,7 @@ msgstr "Размер бруска"
msgid "Sizes"
msgstr "Размеры"
-#: src/parser.cpp:1425
+#: src/parser.cpp:1428
msgid "Skip commands and iterate for-loop again"
msgstr "Пропустить команды до конца цикла for"
@@ -4809,15 +4814,15 @@ msgstr "Сжать данные"
msgid "Start"
msgstr "Старт"
-#: src/parser.cpp:1434
+#: src/parser.cpp:1437
msgid "Start function definition and stop execution of main script"
msgstr "Начало определения функции и остановка выполнения основного скрипта"
-#: src/parser.cpp:1437
+#: src/parser.cpp:1440
msgid "Start next for-loop iteration"
msgstr "Начать новую итерацию цикла for"
-#: src/parser.cpp:1438
+#: src/parser.cpp:1441
msgid "Start/close commands which should executed only once"
msgstr "Начало/конец блока команд, которые будут выполняться единожды"
@@ -4837,11 +4842,11 @@ msgstr "Шаг для расчета дифракции импульса"
msgid "Stop"
msgstr "Стоп"
-#: widgets/fltk.cpp:849
+#: widgets/fltk.cpp:850
msgid "Stop drawing"
msgstr "Остановить рисование"
-#: src/parser.cpp:1440
+#: src/parser.cpp:1443
msgid "Stop execution"
msgstr "Остановить выполнение скрипта"
@@ -4986,7 +4991,7 @@ msgstr "Вкл/выкл туман"
msgid "Switch on/off gray-scale mode"
msgstr "Вкл/выкл режим оттенков серого"
-#: widgets/fltk.cpp:836
+#: widgets/fltk.cpp:837
msgid "Switch on/off grid drawing"
msgstr "Вкл/выкл рисование сетки"
@@ -5002,7 +5007,7 @@ msgstr "Вкл/выкл освещение графика (Alt+L)."
msgid "Switch on/off lightning for the graphics (Ctrl+L)."
msgstr "Вкл/выкл освещение графика (Ctrl+L)."
-#: widgets/fltk.cpp:833
+#: widgets/fltk.cpp:834
msgid "Switch on/off lightning in the picture"
msgstr "Вкл/выкл освещение графика"
@@ -5034,7 +5039,7 @@ msgstr "Вкл/выкл прозрачность рисунка (Alt+T)."
msgid "Switch on/off transparency for the graphics (Ctrl+T)."
msgstr "Вкл/выкл прозрачность рисунка (Ctrl+T)."
-#: widgets/fltk.cpp:830
+#: widgets/fltk.cpp:831
msgid "Switch on/off transparency in the picture"
msgstr "Вкл/выкл прозрачность рисунка"
@@ -5046,7 +5051,7 @@ msgstr "Симметричный диапазон"
msgid "Symmetrical?"
msgstr "Симметрично?"
-#: src/addon.cpp:110 src/base_cf.cpp:266
+#: src/addon.cpp:111 src/base_cf.cpp:266
#, c-format
msgid "TEST: %s\n"
msgstr "ТЕСТ: %s\n"
@@ -5176,7 +5181,7 @@ msgstr "Неправильные аргументы команды в скрип
msgid "There is wrong command(s) in script"
msgstr "В скрипте неправильная команд(ы)"
-#: widgets/fltk.cpp:862
+#: widgets/fltk.cpp:863
msgid "Theta angle (tilt z-axis)"
msgstr "Угол Theta (наклон оси z)"
@@ -5408,7 +5413,7 @@ msgstr "UDAV - сжать данные"
msgid "UDAV - about"
msgstr "UDAV - о программе"
-#: udav/anim_dlg.cpp:104
+#: udav/anim_dlg.cpp:105
msgid "UDAV - animation"
msgstr "UDAV - анимация"
@@ -5451,7 +5456,7 @@ msgid "Underline"
msgstr "Подчеркивание"
#. edit menu
-#: udav/text_pnl.cpp:516 mgllab/mgllab.cpp:293
+#: udav/text_pnl.cpp:516 mgllab/mgllab.cpp:291
msgid "Undo"
msgstr "Отмена"
@@ -5463,7 +5468,7 @@ msgstr "Отменить изменения в редакторе (Ctrl+Z)."
msgid "Untitled"
msgstr "без имени"
-#: mgllab/mgllab.cpp:345 mgllab/mgllab.cpp:349
+#: mgllab/mgllab.cpp:343 mgllab/mgllab.cpp:347
msgid "Untitled - mgllab"
msgstr "без имени - mgllab"
@@ -5480,7 +5485,7 @@ msgstr "Верхняя граница для цвета или прозрачн
msgid "Usage:\tmglconv [parameter(s)] scriptfile\n"
msgstr "Использование:\tmglconv [параметр(ы)] имя_скрипта\n"
-#: mgllab/mgllab.cpp:416
+#: mgllab/mgllab.cpp:414
#, c-format
msgid "Usage:\tmgllab [parameter(s)] scriptfile\n"
msgstr "Использование:\tmgllab [параметр(ы)] имя_скрипта\n"
@@ -5529,7 +5534,7 @@ msgstr "Использовать цветовую схему"
msgid "Use dots plot for preview"
msgstr "Использовать точки для просмотра"
-#: mgllab/mgllab.cpp:477
+#: mgllab/mgllab.cpp:474
msgid "Use multi-threading for drawing"
msgstr "Рисование в отдельном потоке"
@@ -5584,7 +5589,7 @@ msgstr "Wavelet преобразование вдоль направления"
msgid "Whole area"
msgstr "Вся область"
-#: mgllab/mgllab.cpp:480
+#: mgllab/mgllab.cpp:477
msgid "Widget scheme"
msgstr ""
@@ -5840,7 +5845,7 @@ msgstr "Необходимо указать направление"
msgid "You should put text inside ' ' for argument "
msgstr "Необходимо ввести текст в ' ' для аргумента"
-#: udav/anim_dlg.cpp:105
+#: udav/anim_dlg.cpp:106
msgid "You should select one of case"
msgstr "Необходимо выбрать один из вариантов"
@@ -5900,7 +5905,7 @@ msgstr "Приблизить"
msgid "Zoom in graphics."
msgstr "Приблизить рисунок"
-#: widgets/fltk.cpp:843
+#: widgets/fltk.cpp:844
msgid "Zoom in selected region of the picture"
msgstr "Приблизить выбранную область рисунка"
@@ -5909,7 +5914,7 @@ msgstr "Приблизить выбранную область рисунка"
msgid "Zoom in text"
msgstr "Увеличить текст"
-#: widgets/fltk.cpp:872
+#: widgets/fltk.cpp:873
msgid "Zoom in the picture"
msgstr "Приблизить рисунок"
@@ -5925,7 +5930,7 @@ msgstr "Отдалить рисунок"
msgid "Zoom out text"
msgstr "Уменьшить текст"
-#: widgets/fltk.cpp:874
+#: widgets/fltk.cpp:875
msgid "Zoom out the picture"
msgstr "Отдалить рисунок"
@@ -6034,7 +6039,7 @@ msgstr "c - голубой"
msgid "center"
msgstr "центр"
-#: widgets/fltk.cpp:768
+#: widgets/fltk.cpp:769
#, c-format
msgid "click at %g, %g, %g"
msgstr "клик в %g, %g, %g"
@@ -6125,7 +6130,7 @@ msgstr "черно-белый"
msgid "h - gray"
msgstr "h - серый"
-#: src/parser.cpp:1011
+#: src/parser.cpp:1014
#, c-format
msgid "in line %ld"
msgstr "в строке %ld"
@@ -6218,7 +6223,7 @@ msgstr ""
"mglconv конвертирует mgl скрипт в рисунок (по умолчанию PNG).\n"
"Текущая версия 2.%g\n"
-#: mgllab/mgllab.cpp:415
+#: mgllab/mgllab.cpp:413
#, c-format
msgid ""
"mgllab draw mgl script interactively.\n"
@@ -6440,7 +6445,7 @@ msgstr "метки"
msgid "to"
msgstr "до"
-#: mgllab/mgllab.cpp:564
+#: mgllab/mgllab.cpp:561
msgid "to script"
msgstr "в скрипт"
diff --git a/mgllab/grid.cpp b/mgllab/grid.cpp
index e930b29..cc82b24 100644
--- a/mgllab/grid.cpp
+++ b/mgllab/grid.cpp
@@ -33,7 +33,7 @@ Fl_Data_Table::Fl_Data_Table(int x, int y, int w, int h, const char *l) : Fl_Tab
input->callback(input_cb, (void*)this);
input->when(FL_WHEN_ENTER_KEY_ALWAYS);
input->maximum_size(16);
- sl = 0; row=col=-1;
+ nx=ny=sl = 0; row=col=-1; data = NULL;
// (new Fl_Box(9999,9999,0,0))->hide(); // HACK: prevent flickering in Fl_Scroll
end();
}
@@ -65,7 +65,7 @@ void Fl_Data_Table::draw_cell(TableContext context, int R, int C, int X, int Y,
fl_font(FL_HELVETICA, 14);
if(mgl_isnan(data->v(C,R,sl))) strcpy(s,"nan");
else if(mgl_isbad(data->v(C,R,sl))) strcpy(s,data->v(C,R,sl)>0?"inf":"-inf");
- else strncpy(s,mgl_str_num(data->vc(C,R,sl)).c_str(),64);
+ else mgl_strncpy(s,mgl_str_num(data->vc(C,R,sl)).c_str(),64);
{ dual vc = data->vc(C,R,sl);
mreal v = data->v(C,R,sl);
std::vector<mreal> vn;
diff --git a/mgllab/help.cpp b/mgllab/help.cpp
index da9532d..3304ed6 100644
--- a/mgllab/help.cpp
+++ b/mgllab/help.cpp
@@ -348,6 +348,7 @@ class InfoDlg : public GeneralDlg
public:
InfoDlg() : GeneralDlg()
{
+ nx=ny=nz=sl=plot=0;
Fl_Button *o;
w = new Fl_Double_Window(420, 530);
out = new Fl_Multiline_Output(10, 25, 400, 150, _("Information"));
diff --git a/mgllab/mathgl.cpp b/mgllab/mathgl.cpp
index bc32806..b739ffd 100644
--- a/mgllab/mathgl.cpp
+++ b/mgllab/mathgl.cpp
@@ -231,7 +231,7 @@ public:
double a1=s1?atof(s1):NAN, a2=s2?atof(s2):NAN, a3=s3?atof(s3):1;
if(a3*(a2-a1)>0)
{
- result = result + "##c "+s1+' '+s2+' '+(s3?s3:"1")+'\n';
+ result = result + "##c "+(s1?s1:"nan")+' '+(s2?s2:"nan")+' '+(s3?s3:"1")+'\n';
if(dr)
{
dr->a1=a1; dr->a2=a2; dr->da=a3;
diff --git a/mgllab/mgllab.cpp b/mgllab/mgllab.cpp
index 425cd27..ea07e61 100644
--- a/mgllab/mgllab.cpp
+++ b/mgllab/mgllab.cpp
@@ -168,10 +168,8 @@ void new_cb(Fl_Widget*, void*)
void open_cb(Fl_Widget*, void *v)
{
if (!check_save()) return;
- char *lastname=0;
const char *newfile = mgl_file_chooser(_("Open File?"),
_("MGL files \t*.mgl\nDAT files \t*.{dat,csv}"));
- if(lastname) free(lastname);
if(newfile != NULL)
{
ScriptWindow* e = (ScriptWindow*)v;
@@ -454,7 +452,6 @@ class PropDlg : public GeneralDlg
Fl_Choice *lang_w;
Fl_Choice *scheme_w;
public:
- HMGL gr;
PropDlg() : GeneralDlg()
{
Fl_Button *o;
diff --git a/mgllab/table.cpp b/mgllab/table.cpp
index 72a90db..5e1cd90 100644
--- a/mgllab/table.cpp
+++ b/mgllab/table.cpp
@@ -102,7 +102,7 @@ public:
o->tooltip(_("Do nothing and close this window")); o->callback(cb_dlg_cancel,this);
o = new Fl_Return_Button(230, 90, 85, 25, _("Change"));
o->tooltip(_("Change (resize) data")); o->callback(cb_dlg_ok,this);
- w->end(); w->set_modal();
+ w->end(); w->set_modal(); OK=false;
}
void cb_ok() { OK=true; hide(); }
bool run() { OK=false; w->show(); while(w->shown()) Fl::wait(); return OK; }
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
new file mode 100644
index 0000000..92db4e1
--- /dev/null
+++ b/scripts/CMakeLists.txt
@@ -0,0 +1,31 @@
+if(enable-dep-dll)
+ if(enable-qt5)
+ find_package(Qt5Gui QUIET)
+ if(Qt5Gui_FOUND)
+ get_target_property(mgl_qt_loc Qt5::QWindowsIntegrationPlugin LOCATION)
+ endif(Qt5Gui_FOUND)
+ endif(enable-qt5)
+
+ install(CODE "SET(mgl_qt_loc \"${mgl_qt_loc}\")")
+ install(CODE "SET(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
+ install(SCRIPT install-deps.cmake)
+endif(enable-dep-dll)
+
+if(WIN32)
+ install(FILES ${CMAKE_SOURCE_DIR}/scripts/FindMathGL2.cmake DESTINATION ${CMAKE_INSTALL_PREFIX} RENAME mathgl2-config.cmake)
+else(WIN32)
+ install(FILES ${CMAKE_SOURCE_DIR}/scripts/FindMathGL2.cmake DESTINATION ${MathGL_INSTALL_LIB_DIR}/cmake/mathgl2/ RENAME mathgl2-config.cmake)
+endif(WIN32)
+
+#export(TARGETS MathGLTargets FILE "${PROJECT_BINARY_DIR}/MathGLTargets.cmake")
+#export(PACKAGE MathGL2)
+
+#configure_file(MathGLConfig.cmake.in "${MathGL2_BINARY_DIR}/MathGLConfig.cmake" @ONLY)
+#configure_file(MathGLConfigVersion.cmake.in "${MathGL2_BINARY_DIR}/MathGLConfigVersion.cmake" @ONLY)
+
+#install(FILES
+# "${MathGL2_BINARY_DIR}/MathGLConfig.cmake"
+# "${MathGL2_BINARY_DIR}/MathGLConfigVersion.cmake"
+# DESTINATION "${MathGL_INSTALL_CMAKE_DIR}" COMPONENT dev)
+
+#install(EXPORT MathGLTargets DESTINATION "${MathGL_INSTALL_CMAKE_DIR}" COMPONENT dev)
diff --git a/FindMathGL2.cmake b/scripts/FindMathGL2.cmake
similarity index 100%
rename from FindMathGL2.cmake
rename to scripts/FindMathGL2.cmake
diff --git a/MathGLConfig.cmake.in b/scripts/MathGLConfig.cmake.in
similarity index 100%
rename from MathGLConfig.cmake.in
rename to scripts/MathGLConfig.cmake.in
diff --git a/MathGLConfigVersion.cmake.in b/scripts/MathGLConfigVersion.cmake.in
similarity index 100%
rename from MathGLConfigVersion.cmake.in
rename to scripts/MathGLConfigVersion.cmake.in
diff --git a/win32-install-deps/install-deps.txt b/scripts/install-deps.cmake
similarity index 100%
rename from win32-install-deps/install-deps.txt
rename to scripts/install-deps.cmake
diff --git a/cmake-qt4.txt b/scripts/qt4.cmake
similarity index 100%
rename from cmake-qt4.txt
rename to scripts/qt4.cmake
diff --git a/cmake-qt5.txt b/scripts/qt5.cmake
similarity index 100%
rename from cmake-qt5.txt
rename to scripts/qt5.cmake
diff --git a/src/addon.cpp b/src/addon.cpp
index da84360..82d231c 100644
--- a/src/addon.cpp
+++ b/src/addon.cpp
@@ -95,6 +95,7 @@ void MGL_EXPORT mgl_fgetpar(FILE *fp, const char *str, ...)
}
if(str[i]<=' ') t = mgl_fgetstr(fp);
}
+ va_end(lst);
}
//-----------------------------------------------------------------------------
int MGL_EXPORT_CONST mgl_istrue(char ch)
diff --git a/src/axis.cpp b/src/axis.cpp
index 42c5338..8b8a110 100644
--- a/src/axis.cpp
+++ b/src/axis.cpp
@@ -56,12 +56,12 @@ void MGL_EXPORT mgl_wcstrim(wchar_t *str)
//-----------------------------------------------------------------------------
void mglCanvas::SetAxisStl(const char *stl, const char *tck, const char *sub)
{
- if(!stl || !(*stl)) strncpy(AxisStl,"k",32);
- else strncpy(AxisStl,stl,32);
- if(!tck || !(*tck)) strncpy(TickStl,AxisStl,32);
- else strncpy(TickStl,tck,32);
- if(!sub || !(*sub)) strncpy(SubTStl,TickStl,32);
- else strncpy(SubTStl,sub,32);
+ if(!stl || !(*stl)) mgl_strncpy(AxisStl,"k",32);
+ else mgl_strncpy(AxisStl,stl,32);
+ if(!tck || !(*tck)) mgl_strncpy(TickStl,AxisStl,32);
+ else mgl_strncpy(TickStl,tck,32);
+ if(!sub || !(*sub)) mgl_strncpy(SubTStl,TickStl,32);
+ else mgl_strncpy(SubTStl,sub,32);
}
//-----------------------------------------------------------------------------
void mglCanvas::SetTickLen(mreal tlen, mreal stt)
@@ -463,7 +463,8 @@ void mglCanvas::LabelTicks(mglAxis &aa)
//-----------------------------------------------------------------------------
void mglCanvas::Axis(const char *dir, const char *stl, const char *opt)
{
- bool text = !(mglchr(dir,'_') || mglchr(dir,'~'));
+ int text = !(mglchr(dir,'_') || mglchr(dir,'~'))?1:0;
+ if(mglchr(dir,':')) text = text|2;
bool inv = mglchr(dir,'^');
bool ret = get(MGL_ENABLE_RTEXT);
if(mglchr(dir,'U')) clr(MGL_ENABLE_RTEXT);
@@ -503,7 +504,7 @@ void mglCanvas::Axis(const char *dir, const char *stl, const char *opt)
set(ret, MGL_ENABLE_RTEXT);
}
//-----------------------------------------------------------------------------
-void mglCanvas::DrawAxis(mglAxis &aa, bool text, char arr,const char *stl,mreal angl)
+void mglCanvas::DrawAxis(mglAxis &aa, int text, char arr,const char *stl,mreal angl)
{
aa.angl = angl;
if(strchr("xyz",aa.ch))
@@ -518,11 +519,23 @@ void mglCanvas::DrawAxis(mglAxis &aa, bool text, char arr,const char *stl,mreal
dv.Set(mgl_sign(av.x-o.x), mgl_sign(av.y-o.y), mgl_sign(av.z-o.z));
da = aa.a*(dv*aa.a); db = aa.b*(dv*aa.b);
+ static int cgid=1; StartGroup("Axis",cgid++);
+
long k1,k2;
bool have_color=mgl_have_color(stl);
bool dif_color = !have_color && aa.dv==0 && strcmp(TickStl,SubTStl);
+ if(text&2) // line throw point (0,0,0)
+ {
+ SetPenPal("k:");
+ p = d*aa.v1; k1 = AddPnt(&B, p,CDef,q,-1,3);
+ for(long i=1;i<31;i++)
+ {
+ p = d*(aa.v1+(aa.v2-aa.v1)*i/30.);
+ k2 = k1; k1 = AddPnt(&B, p,CDef,q,-1,3);
+ line_plot(k2,k1);
+ }
+ }
SetPenPal(have_color ? stl:AxisStl);
- static int cgid=1; StartGroup("Axis",cgid++);
p = o + d*aa.v1; k1 = AddPnt(&B, p,CDef,q,-1,3);
for(long i=1;i<31;i++) // axis itself
@@ -564,7 +577,7 @@ void mglCanvas::DrawAxis(mglAxis &aa, bool text, char arr,const char *stl,mreal
}
}
if(!have_color) SetPenPal(AxisStl);
- if(text) DrawLabels(aa);
+ if(text&1) DrawLabels(aa);
EndGroup();
}
//-----------------------------------------------------------------------------
@@ -853,7 +866,7 @@ void mglCanvas::Labelw(char dir, const wchar_t *text, mreal pos, const char *opt
char font[64],ff[3]=":C"; memset(font,0,64);
if(pos<-0.2) ff[1]='L';
if(pos>0.2) ff[1]='R';
- strncpy(font,FontDef,32); strcat(font,ff);
+ mgl_strncpy(font,FontDef,32); strcat(font,ff);
long kk = AddPnt(&B, p,-1,q,0,7); ff[1]=0;
if(kk>=0)
{
@@ -878,25 +891,25 @@ void mglCanvas::Box(const char *col, bool ticks)
if(TernAxis&1)
{
Org.x=Max.x; Org.y=Min.y; Org.z=Max.z;
- DrawAxis(ax, false, 0,col); DrawAxis(az, false, 0,col);
+ DrawAxis(ax, 0, 0,col); DrawAxis(az, 0, 0,col);
Org.x=Min.x; Org.y=Max.y; Org.z=Max.z;
- DrawAxis(az, false, 0,col);
+ DrawAxis(az, 0, 0,col);
mglAxis ty(ay); ty.ch='T';
ty.dir.Set(-1,1); ty.org.Set(1,0,Max.z);
- DrawAxis(ty, false, 0,col); ty.ch='t';
+ DrawAxis(ty, 0, 0,col); ty.ch='t';
ty.dir.Set(0,-1); ty.org.Set(0,1,Max.z);
- DrawAxis(ty, false, 0,col);
+ DrawAxis(ty, 0, 0,col);
}
else if(TernAxis&2)
{
mglAxis ty(az);
ty.ch='T'; ty.a.Set(1,0); ty.b.Set(-1,1);
ty.dir.Set(-1,0,1); ty.org.Set(1,0,0);
- DrawAxis(ty, false, 0,col);
+ DrawAxis(ty, 0, 0,col);
ty.ch='t'; ty.a.Set(0,1); ty.b.Set(-1,1);
ty.dir.Set(0,-1,1); ty.org.Set(0,1,0);
- DrawAxis(ty, false, 0,col);
+ DrawAxis(ty, 0, 0,col);
}
else
{
diff --git a/src/base.cpp b/src/base.cpp
index 8170fe3..3107794 100644
--- a/src/base.cpp
+++ b/src/base.cpp
@@ -968,7 +968,7 @@ void mglTexture::Set(const char *s, int smooth, mreal alpha)
{
// NOTE: New syntax -- colors are CCCCC or {CNCNCCCN}; options inside []
if(!s || !s[0]) return;
- strncpy(Sch,s,259); Smooth=smooth; Alpha=alpha;
+ mgl_strncpy(Sch,s,259); Smooth=smooth; Alpha=alpha;
long l=strlen(s);
bool map = smooth==2 || mglchr(s,'%'), sm = smooth>=0 && !strchr(s,'|'); // Use mapping, smoothed colors
@@ -1540,8 +1540,6 @@ bool MGL_EXPORT mgl_check_vec3(HMGL gr, HCDT x, HCDT y, HCDT z, HCDT ax, HCDT ay
return false;
}
//-----------------------------------------------------------------------------
-void mglBase::SetFontDef(const char *font) { strncpy(FontDef, font, 31); }
-//-----------------------------------------------------------------------------
void mglBase::ClearUnused()
{
#if MGL_HAVE_PTHREAD
diff --git a/src/base_cf.cpp b/src/base_cf.cpp
index 3aeb60e..61d6228 100644
--- a/src/base_cf.cpp
+++ b/src/base_cf.cpp
@@ -62,7 +62,7 @@ MGL_EXPORT const char *mgl_get_plotid(HMGL gr) { return gr->PlotId.c_str(); }
int MGL_EXPORT mgl_get_plotid_(uintptr_t *gr, char *out, int len)
{
const char *res = mgl_get_plotid(_GR_);
- if(out) strncpy(out,res,len);
+ if(out) mgl_strncpy(out,res,len);
return strlen(res);
}
//-----------------------------------------------------------------------------
@@ -70,7 +70,7 @@ MGL_EXPORT const char *mgl_get_mess(HMGL gr) { return gr->Mess.c_str(); }
int MGL_EXPORT mgl_get_mess_(uintptr_t *gr, char *out, int len)
{
const char *res = mgl_get_mess(_GR_);
- if(out) strncpy(out,res,len);
+ if(out) mgl_strncpy(out,res,len);
return strlen(res);
}
int MGL_EXPORT mgl_get_warn(HMGL gr) { return gr->GetWarn(); }
@@ -91,7 +91,7 @@ MGL_EXPORT const char *mgl_get_global_warn() { return mglGlobalMess.c_str(); }
int MGL_EXPORT mgl_get_global_warn_(char *out, int len)
{
const char *res = mgl_get_global_warn();
- if(out) strncpy(out,res,len);
+ if(out) mgl_strncpy(out,res,len);
return strlen(res);
}
//-----------------------------------------------------------------------------
diff --git a/src/canvas.cpp b/src/canvas.cpp
index 12a1bb0..ba4ffed 100644
--- a/src/canvas.cpp
+++ b/src/canvas.cpp
@@ -362,7 +362,7 @@ void mglCanvas::mark_plot(long p, char type, mreal size)
size *= MarkSize*0.35*font_factor;
if(type=='.') size = fabs(PenWidth)*sqrt(font_factor/400);
if(TernAxis&12) for(int i=0;i<4;i++)
- { p = ProjScale(i, pp); MGL_MARK_PLOT }
+ { p = ProjScale(i, pp); if(p>=0) {MGL_MARK_PLOT} }
else { MGL_MARK_PLOT }
}
//-----------------------------------------------------------------------------
@@ -377,13 +377,22 @@ void mglCanvas::line_plot(long p1, long p2)
if(p1<0 || p2<0 || mgl_isnan(Pnt[p1].x) || mgl_isnan(Pnt[p2].x) || SamePnt(p1,p2)) return;
if(p1>p2) { long kk=p1; p1=p2; p2=kk; } // rearrange start/end for proper dashing
long pp1=p1,pp2=p2;
- mreal pw = fabs(PenWidth)*sqrt(font_factor/400);
+ mreal pw = fabs(PenWidth)*sqrt(font_factor/400), d=0;
if(TernAxis&12) for(int i=0;i<4;i++)
{ p1 = ProjScale(i, pp1); p2 = ProjScale(i, pp2);
- MGL_LINE_PLOT }
- else { MGL_LINE_PLOT }
- mreal d = hypot(Pnt[p1].x-Pnt[p2].x, Pnt[p1].y-Pnt[p2].y);
- pPos = fmod(pPos+d/pw/1.5, 16);
+ if(p1>=0&&p2>=0)
+ {
+ d += hypot(Pnt[p1].x-Pnt[p2].x, Pnt[p1].y-Pnt[p2].y);
+ MGL_LINE_PLOT
+ pPos = fmod(pPos+d/pw/1.5, 16);
+ }
+ }
+ else
+ {
+ d = hypot(Pnt[p1].x-Pnt[p2].x, Pnt[p1].y-Pnt[p2].y);
+ MGL_LINE_PLOT
+ pPos = fmod(pPos+d/pw/1.5, 16);
+ }
}
//-----------------------------------------------------------------------------
#define MGL_TRIG_PLOT if(Quality&MGL_DRAW_LMEM) \
@@ -399,7 +408,7 @@ void mglCanvas::trig_plot(long p1, long p2, long p3)
mreal pw = fabs(PenWidth)*sqrt(font_factor/400);
if(TernAxis&12) for(int i=0;i<4;i++)
{ p1 = ProjScale(i, pp1); p2 = ProjScale(i, pp2);
- p3 = ProjScale(i, pp3); MGL_TRIG_PLOT }
+ p3 = ProjScale(i, pp3); if(p1>=0&&p2>=0&&p3>=0) {MGL_TRIG_PLOT} }
else { MGL_TRIG_PLOT }
}
//-----------------------------------------------------------------------------
@@ -419,7 +428,7 @@ void mglCanvas::quad_plot(long p1, long p2, long p3, long p4)
if(TernAxis&12) for(int i=0;i<4;i++)
{ p1 = ProjScale(i, pp1); p2 = ProjScale(i, pp2);
p3 = ProjScale(i, pp3); p4 = ProjScale(i, pp4);
- MGL_QUAD_PLOT }
+ if(p1>=0&&p2>=0&&p3>=0&&p4>=0) {MGL_QUAD_PLOT} }
else { MGL_QUAD_PLOT }
}
//-----------------------------------------------------------------------------
@@ -1169,7 +1178,7 @@ void mglCanvas::StartAutoGroup (const char *lbl)
if(grp_counter>1) return; // do nothing in "subgroups"
if(ObjId<0) { ObjId = -id; id++; }
size_t len = Grp.size();
- if(ObjId>=0 && len>0 && ObjId!=Grp[len-1].Id)
+ if(ObjId>=0 && (len==0 || (len>0 && ObjId!=Grp[len-1].Id)))
#pragma omp critical(grp)
{ MGL_PUSH(Grp,mglGroup(lbl,ObjId),mutexGrp);}
else if(ObjId<0)
@@ -1206,3 +1215,15 @@ void mglCanvas::Push()
{MGL_PUSH(stack,B,mutexStk);}
}
//-----------------------------------------------------------------------------
+void mglCanvas::Pop()
+{
+ B = stack.back();
+#if MGL_HAVE_PTHREAD
+ pthread_mutex_lock(&m);
+ stack.pop_back();
+ pthread_mutex_unlock(&m);
+#else
+#pragma omp critical(stk)
+ stack.pop_back();
+#endif
+}
diff --git a/src/complex.cpp b/src/complex.cpp
index e95f615..416a986 100644
--- a/src/complex.cpp
+++ b/src/complex.cpp
@@ -602,7 +602,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir)
if(strchr(dir,'z') && nz>1)
{
#pragma omp parallel for collapse(2)
- for(long i=0;i<nx*ny;i++) for(long j=0;j<nz/2;j++)
+ for(long j=0;j<nz/2;j++) for(long i=0;i<nx*ny;i++)
{
long i0 = i+j*nx*ny, j0 = i+(nz-1-j)*nx*ny;
dual b = a[i0]; a[i0] = a[j0]; a[j0] = b;
@@ -611,7 +611,7 @@ void MGL_EXPORT mgl_datac_mirror(HADT d, const char *dir)
if(strchr(dir,'y') && ny>1)
{
#pragma omp parallel for collapse(2)
- for(long i=0;i<nx*nz;i++) for(long j=0;j<ny/2;j++)
+ for(long j=0;j<ny/2;j++) for(long i=0;i<nx*nz;i++)
{
long j0 = (i%nx)+nx*(ny*(i/nx)+j), i0 = j0+(ny-1-2*j)*nx;
dual b = a[j0]; a[j0] = a[i0]; a[i0] = b;
@@ -760,7 +760,7 @@ void MGL_EXPORT mgl_datac_crop(HADT d, long n1, long n2, char dir)
if(n2<0 || n2>=ny || n2<n1) n2 = ny;
nn = n2-n1; b = new dual[nn*nx*nz];
#pragma omp parallel for
- for(long i=0;i<nn;i++) for(long j=0;j<nz;j++)
+ for(long j=0;j<nz;j++) for(long i=0;i<nn;i++)
memcpy(b+nx*(i+nn*j),d->a+nx*(n1+i+ny*j),nx*sizeof(dual));
d->ny = nn; if(!d->link) delete []d->a;
d->a = b; d->link=false;
@@ -938,7 +938,7 @@ void MGL_EXPORT mgl_datac_put_val(HADT d, dual val, long xx, long yy, long zz)
for(long i=0;i<nz*ny;i++) a[xx+i*nx] = val;
else if(xx<0 && zz<0)
#pragma omp parallel for collapse(2)
- for(long i=0;i<nx;i++) for(long j=0;j<nz;j++) a[i+nx*(yy+j*ny)] = val;
+ for(long j=0;j<nz;j++) for(long i=0;i<nx;i++) a[i+nx*(yy+j*ny)] = val;
else if(xx<0)
#pragma omp parallel for
for(long i=0;i<nx;i++) a[i+nx*(yy+zz*ny)] = val;
@@ -1169,7 +1169,7 @@ mdual MGL_EXPORT mgl_gsplinec(HCDT c, mreal dx, dual *d1, dual *d2)
while(dx>c->v(5*i) && i<n-1) { dx-=c->v(5*i); i++; }
dual res;
const mglDataC *d = dynamic_cast<const mglDataC *>(c);
- if(c)
+ if(d)
{
const dual *a = d->a+5*i;
if(d1) *d1 = a[2]+dx*(mreal(2)*a[3]+(3*dx)*a[4]);
@@ -1298,6 +1298,7 @@ void MGL_EXPORT mgl_datac_refill_xy(HADT dat, HCDT xdat, HCDT ydat, HCDT vdat, m
//-----------------------------------------------------------------------------
void MGL_EXPORT mgl_datac_refill_xyz(HADT dat, HCDT xdat, HCDT ydat, HCDT zdat, HCDT vdat, mreal x1, mreal x2, mreal y1, mreal y2, mreal z1, mreal z2)
{
+ if(!dat || !xdat || !ydat || !zdat || !vdat) return;
long nx=dat->nx,ny=dat->ny,nz=dat->nz,mx=vdat->GetNx(),my=vdat->GetNy(),mz=vdat->GetNz();
bool both=(xdat->GetNN()==vdat->GetNN() && ydat->GetNN()==vdat->GetNN() && zdat->GetNN()==vdat->GetNN());
if(!both && (xdat->GetNx()!=mx || ydat->GetNx()!=my || zdat->GetNx()!=mz)) return; // incompatible dimensions
diff --git a/src/data.cpp b/src/data.cpp
index b49a5fc..2e43bd9 100644
--- a/src/data.cpp
+++ b/src/data.cpp
@@ -1168,8 +1168,8 @@ void MGL_EXPORT mgl_data_crop(HMDT d, long n1, long n2, char dir)
n2 = n2>0 ? n2 : ny+n2;
if(n2<0 || n2>=ny || n2<n1) n2 = ny;
nn = n2-n1; b = new mreal[nn*nx*nz];
-#pragma omp parallel for
- for(long i=0;i<nn;i++) for(long j=0;j<nz;j++)
+#pragma omp parallel for collapse(2)
+ for(long j=0;j<nz;j++) for(long i=0;i<nn;i++)
memcpy(b+nx*(i+nn*j),d->a+nx*(n1+i+ny*j),nx*sizeof(mreal));
d->ny = nn; if(!d->link) delete []d->a;
d->a = b; d->link=false;
@@ -1281,7 +1281,7 @@ mreal MGL_EXPORT mgl_data_momentum_val(HCDT dd, char dir, mreal *x, mreal *w, mr
#pragma omp parallel for reduction(+:i0,i1,i2,i3,i4)
for(long i=0;i<nx*ny*nz;i++)
{
- mreal d = i%nx, t = d*d, v = dd->vthr(i);
+ mreal d = mreal(i%nx), t = d*d, v = dd->vthr(i);
i0+= v; i1+= v*d; i2+= v*t;
i3+= v*d*t; i4+= v*t*t;
}
@@ -1290,7 +1290,7 @@ mreal MGL_EXPORT mgl_data_momentum_val(HCDT dd, char dir, mreal *x, mreal *w, mr
#pragma omp parallel for reduction(+:i0,i1,i2,i3,i4)
for(long i=0;i<nx*ny*nz;i++)
{
- mreal d = (i/nx)%ny, t = d*d, v = dd->vthr(i);
+ mreal d = mreal((i/nx)%ny), t = d*d, v = dd->vthr(i);
i0+= v; i1+= v*d; i2+= v*t;
i3+= v*d*t; i4+= v*t*t;
}
@@ -1299,7 +1299,7 @@ mreal MGL_EXPORT mgl_data_momentum_val(HCDT dd, char dir, mreal *x, mreal *w, mr
#pragma omp parallel for reduction(+:i0,i1,i2,i3,i4)
for(long i=0;i<nx*ny*nz;i++)
{
- mreal d = i/(nx*ny), t = d*d, v = dd->vthr(i);
+ mreal d = mreal(i/(nx*ny)), t = d*d, v = dd->vthr(i);
i0+= v; i1+= v*d; i2+= v*t;
i3+= v*d*t; i4+= v*t*t;
}
@@ -1431,7 +1431,7 @@ MGL_EXPORT const char *mgl_data_info(HCDT d) // NOTE: Not thread safe function!
int MGL_EXPORT mgl_data_info_(uintptr_t *d, char *out, int len)
{
const char *res = mgl_data_info(_DA_(d));
- if(out) strncpy(out,res,len);
+ if(out) mgl_strncpy(out,res,len);
return strlen(res);
}
//-----------------------------------------------------------------------------
@@ -1613,7 +1613,7 @@ void MGL_EXPORT mgl_data_put_val(HMDT d, mreal val, long xx, long yy, long zz)
for(long i=0;i<nz*ny;i++) a[xx+i*nx] = val;
else if(xx<0 && zz<0)
#pragma omp parallel for collapse(2)
- for(long i=0;i<nx;i++) for(long j=0;j<nz;j++) a[i+nx*(yy+j*ny)] = val;
+ for(long j=0;j<nz;j++) for(long i=0;i<nx;i++) a[i+nx*(yy+j*ny)] = val;
else if(xx<0)
#pragma omp parallel for
for(long i=0;i<nx;i++) a[i+nx*(yy+zz*ny)] = val;
@@ -2116,6 +2116,7 @@ void MGL_EXPORT mgl_data_refill_xy(HMDT dat, HCDT xdat, HCDT ydat, HCDT vdat, mr
//-----------------------------------------------------------------------------
void MGL_EXPORT mgl_data_refill_xyz(HMDT dat, HCDT xdat, HCDT ydat, HCDT zdat, HCDT vdat, mreal x1, mreal x2, mreal y1, mreal y2, mreal z1, mreal z2)
{
+ if(!dat || !xdat || !ydat || !zdat || !vdat) return;
long nx=dat->nx,ny=dat->ny,nz=dat->nz,mx=vdat->GetNx(),my=vdat->GetNy(),mz=vdat->GetNz();
bool both=(xdat->GetNN()==vdat->GetNN() && ydat->GetNN()==vdat->GetNN() && zdat->GetNN()==vdat->GetNN());
if(!both && (xdat->GetNx()!=mx || ydat->GetNx()!=my || zdat->GetNx()!=mz)) return; // incompatible dimensions
diff --git a/src/data_io.cpp b/src/data_io.cpp
index 9633eb7..3d4df5f 100644
--- a/src/data_io.cpp
+++ b/src/data_io.cpp
@@ -938,8 +938,7 @@ void MGL_EXPORT mgl_data_transpose(HMDT d, const char *dim)
{
long nx=d->nx, ny=d->ny, nz=d->nz, n;
mreal *b=new mreal[nx*ny*nz], *a=d->a;
- if(!strcmp(dim,"xyz")) memcpy(b,a,nx*ny*nz*sizeof(mreal));
- else if(!strcmp(dim,"xzy") || !strcmp(dim,"zy"))
+ if(!strcmp(dim,"xzy") || !strcmp(dim,"zy"))
{
#pragma omp parallel for collapse(3)
for(long j=0;j<ny;j++) for(long k=0;k<nz;k++) for(long i=0;i<nx;i++)
@@ -974,6 +973,7 @@ void MGL_EXPORT mgl_data_transpose(HMDT d, const char *dim)
b[k+nz*(j+ny*i)] = a[i+nx*(j+ny*k)];
n=nz; nz=nx; nx=n;
}
+ else memcpy(b,a,nx*ny*nz*sizeof(mreal));
memcpy(a,b,nx*ny*nz*sizeof(mreal)); delete []b;
n=d->nx; d->nx=nx; d->ny=ny; d->nz=nz;
if(nx!=n) d->NewId();
@@ -1361,7 +1361,7 @@ size_t MGL_EXPORT mgl_fread(FILE *fp, void *vals, size_t size, size_t num, int s
{
memcpy(buf,ptr+i*size,size);
ch=buf[0]; buf[0]=buf[3]; buf[3]=ch;
- ch=buf[1]; buf[1]=buf[2]; buf[1]=ch;
+ ch=buf[1]; buf[1]=buf[2]; buf[2]=ch;
}
else if(size==2) for(size_t i=0;i<r;i++)
{
@@ -1384,13 +1384,14 @@ size_t MGL_EXPORT mgl_fread(FILE *fp, void *vals, size_t size, size_t num, int s
/** Parse Tektronix TDS5000/B, TDS6000/B/C, TDS/CSA7000/B, MSO70000/C, DSA70000/B/C DPO70000/B/C DPO7000/ MSO/DPO5000. */
int MGL_EXPORT mgl_data_read_wfm(HMDT d,const char *fname, long num, long step/*=1*/, long start/*=0*/)
{
- if(step<1) step=1;
+/* if(step<1) step=1;
if(start<0) start=0;
FILE *fp = fopen(fname,"rb");
if(!fp) return 0; // couldn't open file
unsigned short byte_order;
fread(&byte_order,2,1,fp);
bool byteorder; // TODO
+*/ return 0;
}
int MGL_EXPORT mgl_data_read_wfm_(uintptr_t *d, const char *fname, long *num, long *step, long *start,int l)
{ char *s=new char[l+1]; memcpy(s,fname,l); s[l]=0;
@@ -1400,6 +1401,7 @@ int MGL_EXPORT mgl_data_read_wfm_(uintptr_t *d, const char *fname, long *num, lo
int MGL_EXPORT mgl_data_read_matlab(HMDT d,const char *fname,const char *data)
{
// TODO
+/**/return 0;
}
int MGL_EXPORT mgl_data_read_matlab_(uintptr_t *d, const char *fname, const char *data,int l,int n)
{ char *s=new char[l+1]; memcpy(s,fname,l); s[l]=0;
diff --git a/src/eval.cpp b/src/eval.cpp
index 23db683..6038582 100644
--- a/src/eval.cpp
+++ b/src/eval.cpp
@@ -276,7 +276,7 @@ mglFormula::mglFormula(const char *string)
else
{
char name[128];
- strncpy(name,str,128); name[127]=name[n]=0;
+ mgl_strncpy(name,str,128); name[127]=name[n]=0;
memmove(str,str+n+1,len-n);
len=strlen(str); str[--len]=0;
if(!strncmp(name,"jacobi_",7))
diff --git a/src/evalc.cpp b/src/evalc.cpp
index 4347f88..2a0e719 100644
--- a/src/evalc.cpp
+++ b/src/evalc.cpp
@@ -153,7 +153,7 @@ mglFormulaC::mglFormulaC(const char *string)
else
{
char name[128];
- strncpy(name,str,128); name[127]=name[n]=0;
+ mgl_strncpy(name,str,128); name[127]=name[n]=0;
memmove(str,str+n+1,len-n);
len=strlen(str); str[--len]=0;
if(!strcmp(name,"sin")) Kod=EQ_SIN;
diff --git a/src/evalp.cpp b/src/evalp.cpp
index 4783d2d..b828ab3 100644
--- a/src/evalp.cpp
+++ b/src/evalp.cpp
@@ -832,8 +832,9 @@ HADT MGL_NO_EXPORT mglFormulaCalcC(std::wstring str, mglParser *arg, const std::
{ k = res->ny; res->Insert('y',k); mgl_datac_put_dat(res,a1,-1,k,-1); }
else // res 3d array
{ k = res->nz; res->Insert('z',k); mgl_datac_put_dat(res,a1,-1,-1,k); }
+ mgl_delete_datac(a1);
}
- mgl_delete_datac(a1); j=i+1;
+ j=i+1;
}
}
HADT a1=mglFormulaCalcC(str.substr(j,i-j), arg, head);
@@ -847,8 +848,9 @@ HADT MGL_NO_EXPORT mglFormulaCalcC(std::wstring str, mglParser *arg, const std::
{ k = res->ny; res->Insert('y',k); mgl_datac_put_dat(res,a1,-1,k,-1); }
else // res 3d array
{ k = res->nz; res->Insert('z',k); mgl_datac_put_dat(res,a1,-1,-1,k); }
+ mgl_delete_datac(a1);
}
- mgl_delete_datac(a1); return res;
+ return res;
}
n=mglFindInText(str,"<>="); // low priority -- conditions
diff --git a/src/exec_gr.cpp b/src/exec_gr.cpp
index 2d200e9..8e7e966 100644
--- a/src/exec_gr.cpp
+++ b/src/exec_gr.cpp
@@ -355,6 +355,16 @@ int MGL_NO_EXPORT mgls_belt(mglGraph *gr, long , mglArg *a, const char *k, const
else res = 1; return res;
}
//-----------------------------------------------------------------------------
+int MGL_NO_EXPORT mgls_beltc(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"dd")) gr->BeltC(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->BeltC(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->BeltC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->BeltC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
int MGL_NO_EXPORT mgls_boxs(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
int res=0;
@@ -1029,6 +1039,7 @@ mglCommand mgls_grf_cmd[] = {
{"bars",_("Draw bars for 1D data"),"bars Ydat ['fmt' above]|Xdat Ydat ['fmt' above]|Xdat Ydat Zdat ['fmt' above]", mgls_bars ,7},
{"beam",_("Draw quasi-optical beam"),"beam Ray G1 G2 Adat r ['sch' flag num]|val Ray G1 G2 Adat r ['sch' flag num]", mgls_beam ,9},
{"belt",_("Draw belts"),"belt Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_belt ,8},
+ {"beltc",_("Draw belts colored by other data"),"beltc Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_beltc ,8},
{"bifurcation",_("Draw Bifurcation diagram"),"bifurcation dx Func ['fmt']|dx 'func' ['fmt']", mgls_bifurcation,13},
{"boxplot",_("Draw boxplot for 2D data"),"boxplot Ydat ['fmt']|Xdat Ydat ['fmt']", mgls_boxplot ,7},
{"boxs",_("Draw boxes"),"boxs Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_boxs ,8},
diff --git a/src/export.cpp b/src/export.cpp
index f18dca9..1e0dcc9 100644
--- a/src/export.cpp
+++ b/src/export.cpp
@@ -574,31 +574,31 @@ void MGL_EXPORT mgl_write_frame(HMGL gr, const char *fname,const char *descr)
{ snprintf(buf,64,"%s%04d.jpg",_Gr_->PlotId.c_str(),_Gr_->GetNumFrame()); buf[63]=0; fname = buf; }
int len=strlen(fname);
if(!strcmp(fname+len-4,".jpg")) mgl_write_jpg(gr,fname,descr);
- if(!strcmp(fname+len-5,".jpeg")) mgl_write_jpg(gr,fname,descr);
- if(!strcmp(fname+len-4,".prc")) mgl_write_prc(gr,fname,descr,1);
- if(!strcmp(fname+len-4,".pdf")) mgl_write_prc(gr,fname,descr,1);
- if(!strcmp(fname+len-4,".png")) mgl_write_png(gr,fname,descr);
- if(!strcmp(fname+len-4,".eps")) mgl_write_eps(gr,fname,descr);
- if(!strcmp(fname+len-5,".epsz")) mgl_write_eps(gr,fname,descr);
- if(!strcmp(fname+len-7,".eps.gz")) mgl_write_eps(gr,fname,descr);
- if(!strcmp(fname+len-4,".bps")) mgl_write_bps(gr,fname,descr);
- if(!strcmp(fname+len-5,".bpsz")) mgl_write_bps(gr,fname,descr);
- if(!strcmp(fname+len-7,".bps.gz")) mgl_write_bps(gr,fname,descr);
- if(!strcmp(fname+len-4,".svg")) mgl_write_svg(gr,fname,descr);
- if(!strcmp(fname+len-5,".svgz")) mgl_write_svg(gr,fname,descr);
- if(!strcmp(fname+len-7,".svg.gz")) mgl_write_svg(gr,fname,descr);
- if(!strcmp(fname+len-4,".gif")) mgl_write_gif(gr,fname,descr);
- if(!strcmp(fname+len-4,".bmp")) mgl_write_bmp(gr,fname,descr);
- if(!strcmp(fname+len-4,".tga")) mgl_write_tga(gr,fname,descr);
- if(!strcmp(fname+len-5,".mgld")) mgl_export_mgld(gr,fname,descr);
- if(!strcmp(fname+len-5,".json")) mgl_write_json(gr,fname,descr);
- if(!strcmp(fname+len-6,".jsonz")) mgl_write_json(gr,fname,descr);
- if(!strcmp(fname+len-4,".obj")) mgl_write_obj(gr,fname,descr,1);
- if(!strcmp(fname+len-4,".tex")) mgl_write_tex(gr,fname,descr);
- if(!strcmp(fname+len-4,".xyz")) mgl_write_xyz(gr,fname,descr);
- if(!strcmp(fname+len-4,".stl")) mgl_write_stl(gr,fname,descr);
- if(!strcmp(fname+len-4,".off")) mgl_write_off(gr,fname,descr,0);
-// if(!strcmp(fname+len-4,".x3d")) mgl_write_x3d(gr,fname,descr,1);
+ else if(!strcmp(fname+len-5,".jpeg")) mgl_write_jpg(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".prc")) mgl_write_prc(gr,fname,descr,1);
+ else if(!strcmp(fname+len-4,".pdf")) mgl_write_prc(gr,fname,descr,1);
+ else if(!strcmp(fname+len-4,".png")) mgl_write_png(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".eps")) mgl_write_eps(gr,fname,descr);
+ else if(!strcmp(fname+len-5,".epsz")) mgl_write_eps(gr,fname,descr);
+ else if(!strcmp(fname+len-7,".eps.gz")) mgl_write_eps(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".bps")) mgl_write_bps(gr,fname,descr);
+ else if(!strcmp(fname+len-5,".bpsz")) mgl_write_bps(gr,fname,descr);
+ else if(!strcmp(fname+len-7,".bps.gz")) mgl_write_bps(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".svg")) mgl_write_svg(gr,fname,descr);
+ else if(!strcmp(fname+len-5,".svgz")) mgl_write_svg(gr,fname,descr);
+ else if(!strcmp(fname+len-7,".svg.gz")) mgl_write_svg(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".gif")) mgl_write_gif(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".bmp")) mgl_write_bmp(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".tga")) mgl_write_tga(gr,fname,descr);
+ else if(!strcmp(fname+len-5,".mgld")) mgl_export_mgld(gr,fname,descr);
+ else if(!strcmp(fname+len-5,".json")) mgl_write_json(gr,fname,descr);
+ else if(!strcmp(fname+len-6,".jsonz")) mgl_write_json(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".obj")) mgl_write_obj(gr,fname,descr,1);
+ else if(!strcmp(fname+len-4,".tex")) mgl_write_tex(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".xyz")) mgl_write_xyz(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".stl")) mgl_write_stl(gr,fname,descr);
+ else if(!strcmp(fname+len-4,".off")) mgl_write_off(gr,fname,descr,0);
+// else if(!strcmp(fname+len-4,".x3d")) mgl_write_x3d(gr,fname,descr,1);
}
void MGL_EXPORT mgl_write_frame_(uintptr_t *gr, const char *fname,const char *descr,int l,int n)
{ char *s=new char[l+1]; memcpy(s,fname,l); s[l]=0;
diff --git a/src/export_2d.cpp b/src/export_2d.cpp
index 5a5580c..318e49c 100644
--- a/src/export_2d.cpp
+++ b/src/export_2d.cpp
@@ -592,9 +592,9 @@ void MGL_EXPORT mgl_write_tex(HMGL gr, const char *fname,const char *descr)
if(gr->GetPrmNum()<1) return;
_Gr_->clr(MGL_FINISHED); _Gr_->PreparePrim(1);
- FILE *fp = fopen(fname,"w"); fwide(fp,1);
+ FILE *fp = fopen(fname,"w");
if(!fp) { gr->SetWarn(mglWarnOpen,fname); return; }
- const std::string loc = setlocale(LC_NUMERIC, "C");
+ const std::string loc = setlocale(LC_NUMERIC, "C"); fwide(fp,1);
fwprintf(fp, L"%% Created by MathGL library\n%% Title: %s\n\n",descr?descr:fname);
// provide marks
fwprintf(fp, L"\\providecommand{\\mglp}[4]{\\draw[#3] (#1-#4, #2) -- (#1+#4,#2) (#1,#2-#4) -- (#1,#2+#4);}\n");
diff --git a/src/export_3d.cpp b/src/export_3d.cpp
index cb01fcb..55a2191 100644
--- a/src/export_3d.cpp
+++ b/src/export_3d.cpp
@@ -308,12 +308,12 @@ void MGL_EXPORT mgl_write_obj_old(HMGL gr, const char *fname,const char *descr,
{
const mglPnt &pp = gr->GetPnt(i);
fprintf(fp,"v %g %g %g\n",pp.x,pp.y,pp.z);
- fprintf(fp,"vt %g %g\n",1-pp.ta,pp.c/ntxt);
+ fprintf(fp,"vt %g %g\n",1-pp.ta,1-pp.c/ntxt);
// if(mgl_isnan(pp.u)) fprintf(fp,"vn 0 0 0\n");
// else fprintf(fp,"vn %g %g %g\n",pp.u,pp.v,pp.w);
}
// primitive definition in groups
- char *tname = new char[len+5]; strcpy(tname,fname);
+ char *tname = new char[len+15]; strcpy(tname,fname);
tname[len-4]=0; fprintf(fp,"# Primitives Definitions\nmtllib %s.mtl\nusemtl %s\n",tname,tname);
for(size_t i=0;i<gr->Grp.size();i++)
{
@@ -335,10 +335,10 @@ void MGL_EXPORT mgl_write_obj_old(HMGL gr, const char *fname,const char *descr,
fprintf(fp,"Ka 1.000 1.000 1.000\n");
fprintf(fp,"Kd 1.000 1.000 1.000\n");
fprintf(fp,"Ks 0.000 0.000 0.000\n");
- fprintf(fp,"d 1.0\nillum 2\n");
- if(use_png) strcat(tname,"_txt.png");
+ fprintf(fp,"d 1.0\nTr 0.0\nillum 2\n");
+ if(use_png) strcat(tname,"_texture.png");
// { tname[len-4]='.'; tname[len-3]='p'; tname[len-2]='n'; tname[len-1]='g'; }
- else strcat(tname,"_txt.tga");
+ else strcat(tname,"_texture.tga");
// { tname[len-4]='.'; tname[len-3]='t'; tname[len-2]='g'; tname[len-1]='a'; }
fprintf(fp,"map_Ka %s\nmap_Kd %s\nmap_Ks %s\n",tname,tname,tname);
fclose(fp);
@@ -485,7 +485,7 @@ void MGL_EXPORT mgl_write_off(HMGL gr, const char *fname,const char *descr, int
{
if(q.type==2)
fprintf(fp,"3 %ld %ld %ld\n",q.n1,q.n2,q.n3);
- if(q.type==3)
+ else if(q.type==3)
fprintf(fp,"4 %ld %ld %ld %ld\n",q.n1,q.n2,q.n4,q.n3);
}
else
@@ -497,7 +497,7 @@ void MGL_EXPORT mgl_write_off(HMGL gr, const char *fname,const char *descr, int
fprintf(fp,"3 %ld %ld %ld %.2g %.2g %.2g %.2g\n",q.n1,q.n2,q.n3,
(p1.r+p2.r+p3.r)/3, (p1.g+p2.g+p3.g)/3, (p1.b+p2.b+p3.b)/3, (p1.a+p2.a+p3.a)/3);
}
- if(q.type==3)
+ else if(q.type==3)
{
const mglPnt &p2=gr->GetPnt(q.n2), &p3=gr->GetPnt(q.n3), &p4=gr->GetPnt(q.n4);
if(p1.a>mgl_min_a || p2.a>mgl_min_a || p3.a>mgl_min_a || p4.a>mgl_min_a)
diff --git a/src/fft.cpp b/src/fft.cpp
index f5d6fd1..6fe02b1 100644
--- a/src/fft.cpp
+++ b/src/fft.cpp
@@ -1264,11 +1264,11 @@ void MGL_EXPORT mgl_data_wavelet(HMDT dat, const char *how, int k)
gsl_wavelet_workspace *work = gsl_wavelet_workspace_alloc(n);
if(mglchr(how,'i'))
#pragma omp for collapse(2)
- for(long i=0;i<dat->nx;i++) for(long j=0;j<dat->nz;j++)
+ for(long j=0;j<dat->nz;j++) for(long i=0;i<dat->nx;i++)
gsl_wavelet_transform_inverse(w, a+i+n*s*j, s, n, work);
else
#pragma omp for collapse(2)
- for(long i=0;i<dat->nx;i++) for(long j=0;j<dat->nz;j++)
+ for(long j=0;j<dat->nz;j++) for(long i=0;i<dat->nx;i++)
gsl_wavelet_transform_forward(w, a+i+n*s*j, s, n, work);
gsl_wavelet_workspace_free(work);
}
diff --git a/src/fit.cpp b/src/fit.cpp
index 852cfae..970b583 100644
--- a/src/fit.cpp
+++ b/src/fit.cpp
@@ -46,7 +46,7 @@ void MGL_EXPORT mgl_puts_fit(HMGL gr, double x, double y, double z, const char *
long n = strlen(mglFitRes)+(pre?strlen(pre):0)+1;
char *buf = new char[n];
if(pre) snprintf(buf,n,"%s%s",pre,mglFitRes);
- else strncpy(buf,mglFitRes,n);
+ else mgl_strncpy(buf,mglFitRes,n);
buf[n-1]=0; mgl_puts(gr,x,y,z,buf,font,size);
delete []buf;
}
@@ -371,7 +371,7 @@ HMDT MGL_EXPORT mgl_fit_xyzs(HMGL gr, HCDT xx, HCDT yy, HCDT zz, HCDT ss, const
mglData x(m, n), y(m, n), z(zz), s(ss); x.s=L"x"; y.s=L"y";
long nz = zz->GetNz(), mm = n*m;
#pragma omp parallel for collapse(2)
- for(long i=0;i<m;i++) for(long j=0;j<n;j++)
+ for(long j=0;j<n;j++) for(long i=0;i<m;i++)
{
long i0 = i+m*j;
x.a[i0] = GetX(xx,i,j,0).x;
@@ -417,7 +417,7 @@ HMDT MGL_EXPORT mgl_fit_xyzas(HMGL gr, HCDT xx, HCDT yy, HCDT zz, HCDT aa, HCDT
mglData x(m,n,l), y(m,n,l), z(m,n,l), a(aa), s(ss);
x.s=L"x"; y.s=L"y"; z.s=L"z";
#pragma omp parallel for collapse(3)
- for(long i=0;i<m;i++) for(long j=0;j<n;j++) for(long k=0;k<l;k++)
+ for(long k=0;k<l;k++) for(long j=0;j<n;j++) for(long i=0;i<m;i++)
{
long i0 = i+m*(j+n*k);
x.a[i0] = GetX(xx,i,j,k).x;
@@ -516,7 +516,7 @@ MGL_EXPORT const char *mgl_get_fit(HMGL ) { return mglFitRes; }
int MGL_EXPORT mgl_get_fit_(uintptr_t *gr, char *out, int len)
{
const char *res = mgl_get_fit(_GR_);
- if(out) strncpy(out,res,len);
+ if(out) mgl_strncpy(out,res,len);
return strlen(res);
}
//-----------------------------------------------------------------------------
diff --git a/src/font.cpp b/src/font.cpp
index 0996ded..3896e7d 100644
--- a/src/font.cpp
+++ b/src/font.cpp
@@ -534,7 +534,8 @@ float mglFont::Puts(const unsigned *text, float x,float y,float f,int style,floa
unsigned sn = str[i+j];
if(sn<unsigned(-15) && (sn&MGL_FONT_MASK)>' ') // specially center
{
- dx = 0.75*ff*(GetWidth(a,Internal(sn&MGL_FONT_MASK))-GetWidth(a,j))/fact[a];
+ long jj = Internal(sn&MGL_FONT_MASK);
+ dx = jj<0?0:0.75*ff*(GetWidth(a,jj)-GetWidth(a,j))/fact[a];
if(dx<0) dx=0;
}
}
@@ -544,7 +545,7 @@ float mglFont::Puts(const unsigned *text, float x,float y,float f,int style,floa
else gr->Glyph(x+dx,yy,ff,a,j,ccol);
}
}
- ww = ff*GetWidth(a,j)/fact[a];
+ ww = j>=0?ff*GetWidth(a,j)/fact[a]:0;
if(gr && !(style&0x10)) // add under-/over- line now
draw_ouline(st,x,y,f,fact[a],ww,ccol);
if(s & MGL_FONT_ZEROW) ww = 0;
@@ -951,6 +952,7 @@ long MGL_EXPORT mgl_check_tex_table()
//---------------------------------------------------------------------------
bool MGL_NO_EXPORT test_transl(const char *p)
{
+ if(!p) return false;
#if MGL_USE_GETTEXT
std::string f = std::string(p) + "/ru/LC_MESSAGES/mathgl.mo";
FILE *fp = fopen(f.c_str(),"r");
diff --git a/src/obj.cpp b/src/obj.cpp
index 2aa1a49..93a0231 100644
--- a/src/obj.cpp
+++ b/src/obj.cpp
@@ -395,7 +395,8 @@ size_t MGL_LOCAL_CONST power_of_two(size_t input)
void MGL_EXPORT mgl_write_obj(HMGL gr, const char *fname,const char *descr, int use_png)
{
- if(gr->GetPrmNum()==0) return; // nothing to do
+ mglCanvas *gg = dynamic_cast<mglCanvas *>(gr);
+ if(!gg || gr->GetPrmNum()==0) return; // nothing to do
{
long mmin=0,mmax=0,m;
@@ -425,8 +426,8 @@ void MGL_EXPORT mgl_write_obj(HMGL gr, const char *fname,const char *descr, int
// center point
mglPnt p0;
- const mreal width = dynamic_cast<mglCanvas *>(gr)->GetWidth();
- const mreal height = dynamic_cast<mglCanvas *>(gr)->GetHeight();
+ const mreal width = gg->GetWidth();
+ const mreal height = gg->GetHeight();
const mreal depth = sqrt(width*height);
p0.x = width/2.;
diff --git a/src/opengl.cpp b/src/opengl.cpp
index 538a099..9c862a7 100644
--- a/src/opengl.cpp
+++ b/src/opengl.cpp
@@ -63,17 +63,18 @@ void mglCanvasGL::Finish()
{
p=GetPrm(i); PDef=p.n3; pPos=p.s; PenWidth=p.w;
long n1=p.n1, n2=p.n2, n3=p.n3, n4=p.n4;
+ mglDrawReg d; d.set(this,1,1,0);
switch(p.type)
{
/* case 0: mark_draw(Pnt[n1],n4,p.s,0); break;
case 1: line_draw(n1,n2); break;
case 2: trig_draw(n1,n2,n3); break;
case 3: quad_draw(n1,n2,n3,n4); break;*/
- case 0: mark_draw(Pnt[n1],n4,p.s,0); break;
- case 1: line_draw(Pnt[n1],Pnt[n2],0); break;
- case 2: trig_draw(Pnt[n1],Pnt[n2],Pnt[n3],true,0); break;
- case 3: quad_draw(Pnt[n1],Pnt[n2],Pnt[n3],Pnt[n4],0); break;
- case 4: glyph_draw(p,0); break;
+ case 0: mark_draw(Pnt[n1],n4,p.s,&d); break;
+ case 1: line_draw(Pnt[n1],Pnt[n2],&d); break;
+ case 2: trig_draw(Pnt[n1],Pnt[n2],Pnt[n3],true,&d); break;
+ case 3: quad_draw(Pnt[n1],Pnt[n2],Pnt[n3],Pnt[n4],&d); break;
+ case 4: glyph_draw(p,&d); break;
}
}
PDef=pdef; pPos=ss; PenWidth=ww;
diff --git a/src/parser.cpp b/src/parser.cpp
index d51a3e0..558137f 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -613,7 +613,10 @@ int mglParser::ParseDef(std::wstring &str)
{
int res = 1; mreal d;
PutArg(str,true);
- const std::wstring s = mgl_trim_ws(str.substr(7));
+ size_t end; bool ss=false;
+ for(end=7;str[end] && (str[end]!='#' || ss);end++)
+ { if(str[end]=='\'') ss=!ss; }
+ const std::wstring s = mgl_trim_ws(str.substr(7,end-7));
if(!str.compare(3,3,L"ine"))
{
int nn = s[1]<='9' ? s[1]-'0' : (s[1]>='a' ? s[1]-'a'+10:-1);
@@ -855,7 +858,7 @@ int mglParser::ParseDat(mglGraph *gr, std::wstring str, mglData &res)
str = str.substr(n+1); str = mgl_trim_ws(str);
}
// try to find last argument
- if(!str.empty()) { arg[k] = str; k++; }
+ if(!str.empty() && k<32) { arg[k] = str; k++; }
if(k<1) n = 0;
else
{ // fill arguments by its values
@@ -1074,7 +1077,7 @@ void mglParser::AddCommand(const mglCommand *cmd)
memcpy(buf+mc, Cmd, (mp+1)*sizeof(mglCommand));
qsort(buf, mp+mc, sizeof(mglCommand), mgl_cmd_cmp); // sort it
#pragma omp critical(cmd_parser)
- { if(Cmd && Cmd!=BaseCmd) delete []Cmd; Cmd = buf; }
+ { if(Cmd!=BaseCmd) delete []Cmd; Cmd = buf; }
}
//-----------------------------------------------------------------------------
HMPR MGL_EXPORT mgl_create_parser() { return new mglParser; }
diff --git a/src/pde.cpp b/src/pde.cpp
index 81cd9df..111e4d3 100644
--- a/src/pde.cpp
+++ b/src/pde.cpp
@@ -409,7 +409,7 @@ HADT MGL_EXPORT mgl_pde_solve_c(HMGL gr, const char *ham, HCDT ini_re, HCDT ini_
hh0=hu[0];
if(ny>1)
#pragma omp parallel for collapse(2)
- for(long i=0;i<2*nx;i++) for(long j=0;j<2*ny;j++)
+ for(long j=0;j<2*ny;j++) for(long i=0;i<2*nx;i++)
{
long i0 = i+2*nx*j; huv[i0] -= hh0;
hxv[i0] -= hx[i]+hv[j]-hh0;
@@ -456,7 +456,7 @@ HADT MGL_EXPORT mgl_pde_solve_c(HMGL gr, const char *ham, HCDT ini_re, HCDT ini_
mgl_fft_free_thr(wsx);
}
#pragma omp parallel for collapse(2)
- for(long i=0;i<nx;i++) for(long j=0;j<ny;j++) // save result
+ for(long j=0;j<ny;j++) for(long i=0;i<nx;i++) // save result
res->a[k+nz*(i+nx*j)] = a[i+nx/2+2*nx*(j+ny/2)];
}
mgl_fft_free(wtx,0,0); mgl_fft_free(wty,0,0);
diff --git a/src/pixel.cpp b/src/pixel.cpp
index 23538b8..7174850 100644
--- a/src/pixel.cpp
+++ b/src/pixel.cpp
@@ -643,9 +643,9 @@ void mglCanvas::pnt_draw(const mglPnt &p, const mglDrawReg *dr)
}
}
//-----------------------------------------------------------------------------
-void mglCanvas::mark_draw(const mglPnt &q, char type, mreal size, mglDrawReg *d)
+void mglCanvas::mark_draw(const mglPnt &q, char type, mreal size, mglDrawReg *dr)
{
- const int oi = d?d->ObjId:-1;
+ const int oi = dr->ObjId;
unsigned char cs[4]; col2int(q,cs,oi);
const unsigned char ca = cs[3];// = size>0 ? 255 : 255*q.t;
const mreal ss=(strchr("xsSoO",type)?1:1.1)*fabs(size), dpw=(oi==HighId?2:3)*pen_delta;
@@ -653,14 +653,14 @@ void mglCanvas::mark_draw(const mglPnt &q, char type, mreal size, mglDrawReg *d)
if(type=='.' || ss==0)
{
- if(d) PW = 3*(ss?ss:sqrt(font_factor/400));
+ PW = 3*(ss?ss:sqrt(font_factor/400));
if(oi==HighId) PW *= 2;
const mreal pw = PW;
mreal dd = pw+10/dpw;
long x1 = long(q.x-dd), y1 = long(q.y-dd); // bounding box
long x2 = long(q.x+dd), y2 = long(q.y+dd);
- x1=x1>d->x1?x1:d->x1; x2=x2<d->x2?x2:d->x2;
- y1=y1>d->y1?y1:d->y1; y2=y2<d->y2?y2:d->y2;
+ x1=x1>dr->x1?x1:dr->x1; x2=x2<dr->x2?x2:dr->x2;
+ y1=y1>dr->y1?y1:dr->y1; y2=y2<dr->y2?y2:dr->y2;
if(x1>x2 || y1>y2) return;
const float V=(pw-1)*(pw-1)/4,S=(1-pw)/2;
@@ -674,20 +674,17 @@ void mglCanvas::mark_draw(const mglPnt &q, char type, mreal size, mglDrawReg *d)
}
else
{
- if(d)
- {
- d->PDef = MGL_SOLID_MASK; d->angle = 0;
- PW = d->PenWidth*sqrt(fabs(50*size));
- if(PW<1) PW=1;
- }
+ dr->PDef = MGL_SOLID_MASK; dr->angle = 0;
+ PW = dr->PenWidth*sqrt(fabs(50*size));
+ if(PW<1) PW=1;
if(oi==HighId) PW *= 2;
const mreal pw = PW;
mreal dd = ss+pw+10/dpw;
long x1 = long(q.x-dd), y1 = long(q.y-dd); // bounding box
long x2 = long(q.x+dd), y2 = long(q.y+dd);
- x1=x1>d->x1?x1:d->x1; x2=x2<d->x2?x2:d->x2;
- y1=y1>d->y1?y1:d->y1; y2=y2<d->y2?y2:d->y2;
+ x1=x1>dr->x1?x1:dr->x1; x2=x2<dr->x2?x2:dr->x2;
+ y1=y1>dr->y1?y1:dr->y1; y2=y2<dr->y2?y2:dr->y2;
if(x1>x2 || y1>y2) return;
const float V=(pw-1)*(pw-1)/4,S=(1-pw)/2;
diff --git a/src/pixel_gen.cpp b/src/pixel_gen.cpp
index 4adc49c..54b267e 100644
--- a/src/pixel_gen.cpp
+++ b/src/pixel_gen.cpp
@@ -549,7 +549,7 @@ void mglCanvas::FillBackground(const mglColor &cc)
//-----------------------------------------------------------------------------
void mglCanvas::Combine(const mglCanvas *gr)
{
- if(Width!=gr->Width || Height!=gr->Height || !gr) return; // wrong sizes
+ if(!gr || Width!=gr->Width || Height!=gr->Height) return; // wrong sizes
mglStartThread(&mglCanvas::pxl_other,this,Width*Height,gr);
}
//-----------------------------------------------------------------------------
diff --git a/src/plot.cpp b/src/plot.cpp
index 37fa250..d3489c2 100644
--- a/src/plot.cpp
+++ b/src/plot.cpp
@@ -80,7 +80,7 @@ void MGL_EXPORT mgl_fplot(HMGL gr, const char *eqY, const char *pen, const char
}
}
}
- mgl_plot_xy(gr,&x,&y,pen,0);
+ delete eq; mgl_plot_xy(gr,&x,&y,pen,0);
}
//-----------------------------------------------------------------------------
void MGL_EXPORT mgl_fplot_xyz(HMGL gr, const char *eqX, const char *eqY, const char *eqZ, const char *pen, const char *opt)
@@ -209,7 +209,8 @@ void MGL_EXPORT mgl_candle_xyv(HMGL gr, HCDT x, HCDT v1, HCDT v2, HCDT y1, HCDT
if(!y1) { y1 = new mglData(n); d1=true; ((mglData *)y1)->Fill(NAN,NAN); }
if(!y2) { y2 = new mglData(n); d2=true; ((mglData *)y2)->Fill(NAN,NAN); }
if(y1->GetNx()!=n || y2->GetNx()!=n)
- { gr->SetWarn(mglWarnDim,"Candle"); return; }
+ { if(d1) delete y1; if(d2) delete y2;
+ gr->SetWarn(mglWarnDim,"Candle"); return; }
static int cgid=1; gr->StartGroup("Candle",cgid++);
gr->SaveState(opt); gr->SetPenPal(pen,&pal); gr->Reserve(8*n);
bool sh = mglchr(pen,'!');
@@ -348,7 +349,7 @@ void MGL_EXPORT mgl_plot_xyz(HMGL gr, HCDT x, HCDT y, HCDT z, const char *pen, c
gr->SaveState(opt);
long m = x->GetNy() > y->GetNy() ? x->GetNy() : y->GetNy(); m = z->GetNy() > m ? z->GetNy() : m;
char mk=gr->SetPenPal(pen,&pal); gr->Reserve(2*n*m);
- bool sh = mglchr(pen,'!'), orig = !mglchr(pen,'a');
+ bool sh = mglchr(pen,'!'), orig = !mglchr(pen,'a'), appr = mglchr(pen,'~');
int d = gr->MeshNum>0 ? gr->MeshNum+1 : n, dx = n>d?n/d:1;
for(long j=0;j<m;j++)
@@ -359,20 +360,45 @@ void MGL_EXPORT mgl_plot_xyz(HMGL gr, HCDT x, HCDT y, HCDT z, const char *pen, c
mglDataR xx(x,mx), yy(y,my), zz(z,mz);
const std::vector<mglPointA> &pp = orig ? mgl_pnt_copy(&xx, &yy, &zz, 0) :
mgl_pnt_prepare(gr->Min, gr->Max, &xx, &yy, &zz, 0);
- long n1=-1, n2=-1;
+ size_t num = pp.size();
+ long *nn = new long[num];
+ for(size_t i=0;i<num;i++)
+ { mreal c = sh ? gr->NextColor(pal,i):gr->CDef; nn[i] = gr->AddPnt(pp[i].p, c); }
- for(size_t i=0;i<pp.size();i++)
+ if(mk) for(size_t i=0;i<num;i+=dx)
+ if(nn[i]>=0 && pp[i].orig) gr->mark_plot(nn[i], mk);
+ if(num>1)
{
- mreal c = sh ? gr->NextColor(pal,i):gr->CDef;
- n2 = n1; n1 = gr->AddPnt(pp[i].p, c);
- if(mk && i%dx==0 && n1>=0 && pp[i].orig) gr->mark_plot(n1,mk);
- if(n1>=0 && n2>=0)
+ if(nn[0]>=0 && nn[1]>=0)
+ gr->arrow_plot(nn[0],nn[1],gr->Arrow1);
+ if(nn[num-1]>=0 && nn[num-2]>=0)
+ gr->arrow_plot(nn[num-1],nn[num-2],gr->Arrow2);
+ }
+ for(size_t i=0;i+1<num;i++)
+ {
+ if(nn[i]<0 || nn[i+1]<0) continue;
+ if(!appr) gr->line_plot(nn[i+1],nn[i]);
+ else
{
- gr->line_plot(n1,n2);
- if(i==1) gr->arrow_plot(n2,n1,gr->Arrow1);
+ size_t k=i+2;
+ while(k<num)
+ {
+ const mglPoint p1(gr->GetPntP(i)), p2(gr->GetPntP(k));
+ mreal dy=p2.x-p1.x, dx=p1.y-p2.y, dd=2*(dx*dx+dy*dy);
+ bool ops=false;
+ for(size_t ii=i+1;ii<k;ii++)
+ {
+ const mglPoint p(gr->GetPntP(ii));
+ mreal d = dx*p.x+dy*p.y;
+ if(d*d>dd) ops = true;
+ }
+ if(ops) break;
+ k++;
+ }
+ k--; gr->line_plot(nn[k],nn[i]); i = k-1;
}
}
- if(n1>=0 && n2>=0) gr->arrow_plot(n1,n2,gr->Arrow2);
+ delete []nn;
}
gr->EndGroup();
}
@@ -423,7 +449,7 @@ void MGL_EXPORT mgl_tens_xyz(HMGL gr, HCDT x, HCDT y, HCDT z, HCDT c, const char
m = x->GetNy() > y->GetNy() ? x->GetNy() : y->GetNy(); m = z->GetNy() > m ? z->GetNy() : m;
char mk=gr->SetPenPal(pen, &pal); gr->Reserve(2*n*m);
long ss=gr->AddTexture(pen);
- bool orig = !mglchr(pen,'a');
+ bool orig = !mglchr(pen,'a'), appr = mglchr(pen,'~');
int d = gr->MeshNum>0 ? gr->MeshNum+1 : n, dx = n>d?n/d:1;
for(long j=0;j<m;j++)
@@ -434,18 +460,45 @@ void MGL_EXPORT mgl_tens_xyz(HMGL gr, HCDT x, HCDT y, HCDT z, HCDT c, const char
mglDataR xx(x,mx), yy(y,my), zz(z,mz), cc(c,mc);
const std::vector<mglPointA> &pp = orig ? mgl_pnt_copy(&xx, &yy, &zz, &cc) :
mgl_pnt_prepare(gr->Min, gr->Max, &xx, &yy, &zz, &cc);
- long n1=-1, n2=-1;
- for(size_t i=0;i<pp.size();i++)
+
+ size_t num = pp.size();
+ long *nn = new long[num];
+ for(size_t i=0;i<num;i++) nn[i] = gr->AddPnt(pp[i].p, gr->GetC(ss,pp[i].p.c));
+
+ if(mk) for(size_t i=0;i<num;i+=dx)
+ if(nn[i]>=0 && pp[i].orig) gr->mark_plot(nn[i], mk);
+ if(num>1)
+ {
+ if(nn[0]>=0 && nn[1]>=0)
+ gr->arrow_plot(nn[0],nn[1],gr->Arrow1);
+ if(nn[num-1]>=0 && nn[num-2]>=0)
+ gr->arrow_plot(nn[num-1],nn[num-2],gr->Arrow2);
+ }
+ for(size_t i=0;i+1<num;i++)
{
- n2 = n1; n1 = gr->AddPnt(pp[i].p, gr->GetC(ss,pp[i].p.c));
- if(mk && i%dx==0 && n1>=0 && pp[i].orig) gr->mark_plot(n1,mk);
- if(n1>=0 && n2>=0)
+ if(nn[i]<0 || nn[i+1]<0) continue;
+ if(!appr) gr->line_plot(nn[i+1],nn[i]);
+ else
{
- gr->line_plot(n1,n2);
- if(i==1) gr->arrow_plot(n2,n1,gr->Arrow1);
+ size_t k=i+2;
+ while(k<num)
+ {
+ const mglPoint p1(gr->GetPntP(i)), p2(gr->GetPntP(k));
+ mreal dy=p2.x-p1.x, dx=p1.y-p2.y, dd=2*(dx*dx+dy*dy);
+ bool ops=false;
+ for(size_t ii=i+1;ii<k;ii++)
+ {
+ const mglPoint p(gr->GetPntP(ii));
+ mreal d = dx*p.x+dy*p.y;
+ if(d*d>dd) ops = true;
+ }
+ if(ops) break;
+ k++;
+ }
+ k--; gr->line_plot(nn[k],nn[i]); i = k-1;
}
}
- if(n1>=0 && n2>=0) gr->arrow_plot(n1,n2,gr->Arrow2);
+ delete []nn;
}
gr->EndGroup();
}
@@ -664,7 +717,8 @@ void MGL_EXPORT mgl_region_3d(HMGL gr, HCDT x1, HCDT y1, HCDT z1, HCDT x2, HCDT
long n=y1->GetNx(), m, pal;
if(mgl_check_dim1(gr,x1,y1,z1,0,"Region")) return;
if(mgl_check_dim1(gr,x1,x2,y2,z2,"Region")) return;
- m = x1->GetNy() > y1->GetNy() ? x1->GetNy() : y1->GetNy(); m = z1->GetNy() > m ? z1->GetNy() : m;
+ m = x1->GetNy() > y1->GetNy() ? x1->GetNy() : y1->GetNy();
+ m = (z1 && z1->GetNy() > m) ? z1->GetNy() : m;
bool zhave = z1 && z2;
if(x1->GetNy()!=x2->GetNy() || y1->GetNy()!=y2->GetNy())
{ gr->SetWarn(mglWarnDim,"Region"); return; }
@@ -1106,7 +1160,7 @@ void MGL_EXPORT mgl_bars_xy(HMGL gr, HCDT x, HCDT y, const char *pen, const char
if(fixed)
{
long nn=x->GetNy();
- for(long i=0;i<n-1;i++) for(long j=0;j<nn;j++)
+ for(long j=0;j<nn;j++) for(long i=0;i<n-1;i++)
{
mreal cx = fabs(x->v(i+1,j)-x->v(i,j));
if(cx<dx) dx=cx;
@@ -1202,7 +1256,7 @@ void MGL_EXPORT mgl_barh_yx(HMGL gr, HCDT y, HCDT v, const char *pen, const char
if(fixed)
{
long nn=y->GetNy();
- for(long i=0;i<n-1;i++) for(long j=0;j<nn;j++)
+ for(long j=0;j<nn;j++) for(long i=0;i<n-1;i++)
{
mreal cx = fabs(y->v(i+1,j)-y->v(i,j));
if(cx<dy) dy=cx;
diff --git a/src/prc.cpp b/src/prc.cpp
index a351912..49f742c 100644
--- a/src/prc.cpp
+++ b/src/prc.cpp
@@ -244,7 +244,8 @@ void my_png_flush(png_structp /*png_ptr*/)
//-----------------------------------------------------------------------------
void MGL_EXPORT mgl_write_prc(HMGL gr, const char *fname,const char* /*descr*/, int make_pdf)
{
- if(gr->GetPrmNum()==0) return; // nothing to do
+ mglCanvas *gg = dynamic_cast<mglCanvas *>(gr);
+ if(!gg || gr->GetPrmNum()==0) return; // nothing to do
{
long mmin=0,mmax=0,m;
for(size_t i=0;i<gr->Grp.size();i++) // prepare array of indirect indexing
@@ -355,8 +356,8 @@ void MGL_EXPORT mgl_write_prc(HMGL gr, const char *fname,const char* /*descr*/,
// primitive definition in groups
mglPnt p0;
- const double width = dynamic_cast<mglCanvas *>(gr)->GetWidth();
- const double height = dynamic_cast<mglCanvas *>(gr)->GetHeight();
+ const double width = gg->GetWidth();
+ const double height = gg->GetHeight();
const double depth = sqrt(width*height);
p0.x = width/2.;
@@ -966,7 +967,7 @@ void MGL_EXPORT mgl_write_prc(HMGL gr, const char *fname,const char* /*descr*/,
/* save the document to a file */
const size_t tlen = strlen(tname);
- tname[tlen-2]='p'; tname[tlen-2]='d'; tname[tlen-1]='f';
+ tname[tlen-3]='p'; tname[tlen-2]='d'; tname[tlen-1]='f';
HPDF_SaveToFile (pdf, tname);
/* clean up */
diff --git a/src/prc/oPRCFile.cc b/src/prc/oPRCFile.cc
index b090f8a..6e11557 100644
--- a/src/prc/oPRCFile.cc
+++ b/src/prc/oPRCFile.cc
@@ -1259,7 +1259,7 @@ uint32_t oPRCFile::addTransform(const double origin[3], const double x_axis[3],
{
PRCCartesianTransformation3d* transform = new PRCCartesianTransformation3d(origin, x_axis, y_axis, scale);
if(transform->behaviour==PRC_TRANSFORMATION_Identity)
- return m1;
+ { delete transform; return m1; }
PRCCoordinateSystem *coordinateSystem = new PRCCoordinateSystem();
coordinateSystem->axis_set = transform;
const uint32_t coordinate_system_index = fileStructures[0]->addCoordinateSystem(coordinateSystem);
diff --git a/src/prim.cpp b/src/prim.cpp
index 7706316..484e131 100644
--- a/src/prim.cpp
+++ b/src/prim.cpp
@@ -706,10 +706,11 @@ void MGL_EXPORT mgl_putsw_dir(HMGL gr, double x, double y, double z, double dx,
{
bool a=mglchr(font,'a'), A=mglchr(font,'A');
static int cgid=1; gr->StartGroup("Puts",cgid++);
+
mglCanvas *g = dynamic_cast<mglCanvas *>(gr);
if(g && (a||A))
{
- g->Push(); g->Identity(a);
+ g->SaveInPlot(); g->Identity(a);
gr->set(MGL_DISABLE_SCALE);
mreal s=a?1:g->GetPlotFactor();
x = (2*x-1)*s; y = (2*y-1)*s;
@@ -720,8 +721,8 @@ void MGL_EXPORT mgl_putsw_dir(HMGL gr, double x, double y, double z, double dx,
long k = gr->AddPnt(p,-1,d,-1,7);
gr->AddActive(k,0);
gr->AddActive(gr->AddPnt(mglPoint(dx,dy,dz),-1,d,-1,7),1);
- if(g && (a||A)) { g->Pop(); gr->clr(MGL_DISABLE_SCALE); }
gr->text_plot(k,text,font,size);
+ if(g && (a||A)) { g->LoadInPlot(); gr->clr(MGL_DISABLE_SCALE); }
gr->EndGroup();
}
//-----------------------------------------------------------------------------
diff --git a/src/surf.cpp b/src/surf.cpp
index 301fbe1..51c1efa 100644
--- a/src/surf.cpp
+++ b/src/surf.cpp
@@ -428,9 +428,11 @@ void MGL_EXPORT mgl_surfa_(uintptr_t *gr, uintptr_t *z, uintptr_t *a, const char
//
//-----------------------------------------------------------------------------
void MGL_EXPORT mgl_belt_xy(HMGL gr, HCDT x, HCDT y, HCDT z, const char *sch, const char *opt)
+{ mgl_beltc_xy(gr,x,y,z,z,sch,opt); }
+void MGL_EXPORT mgl_beltc_xy(HMGL gr, HCDT x, HCDT y, HCDT z, HCDT c, const char *sch, const char *opt)
{
long n=z->GetNx(),m=z->GetNy();
- if(mgl_check_dim2(gr,x,y,z,0,"Belt")) return;
+ if(mgl_check_dim2(gr,x,y,z,c,"Belt")) return;
gr->SaveState(opt);
static int cgid=1; gr->StartGroup("Belt",cgid++);
@@ -441,6 +443,7 @@ void MGL_EXPORT mgl_belt_xy(HMGL gr, HCDT x, HCDT y, HCDT z, const char *sch, co
bool how = !mglchr(sch,'x');
mglPoint p1,p2,q,s,xx,yy;
+ int dk = c->GetNz()>=z->GetNz() ? 1:0;
for(long k=0;k<z->GetNz();k++)
{
if(gr->NeedStop()) break;
@@ -452,10 +455,10 @@ void MGL_EXPORT mgl_belt_xy(HMGL gr, HCDT x, HCDT y, HCDT z, const char *sch, co
p1.Set(xx.x, yy.x, z->v(i,j,k));
s.Set(xx.z, yy.z, z->dvy(i,j,k));
q.Set(xx.y, yy.y, 0); s = q^s;
- mreal c = gr->GetC(ss,p1.z);
+ mreal cc = gr->GetC(ss,c->v(i,j,dk*k));
p2.Set(GetX(x,i+dx,j,k).x,GetY(y,i+dx,j,k).x,p1.z);
- pos[2*j] = gr->AddPnt(p1,c,s);
- pos[2*j+1]=gr->AddPnt(p2,c,s);
+ pos[2*j] = gr->AddPnt(p1,cc,s);
+ pos[2*j+1]=gr->AddPnt(p2,cc,s);
}
mgl_surf_plot(gr,pos,2,m);
}
@@ -467,10 +470,10 @@ void MGL_EXPORT mgl_belt_xy(HMGL gr, HCDT x, HCDT y, HCDT z, const char *sch, co
p1.Set(xx.x, yy.x, z->v(i,j,k));
q.Set(xx.y, yy.y, z->dvx(i,j,k));
s.Set(xx.z, yy.z, 0); s = q^s;
- mreal c = gr->GetC(ss,p1.z);
+ mreal cc = gr->GetC(ss,c->v(i,j,dk*k));
p2.Set(GetX(x,i,j+dy,k).x,GetY(y,i,j+dy,k).x,p1.z);
- pos[2*i] = gr->AddPnt(p1,c,s);
- pos[2*i+1]=gr->AddPnt(p2,c,s);
+ pos[2*i] = gr->AddPnt(p1,cc,s);
+ pos[2*i+1]=gr->AddPnt(p2,cc,s);
}
mgl_surf_plot(gr,pos,2,n);
}
@@ -479,12 +482,14 @@ void MGL_EXPORT mgl_belt_xy(HMGL gr, HCDT x, HCDT y, HCDT z, const char *sch, co
}
//-----------------------------------------------------------------------------
void MGL_EXPORT mgl_belt(HMGL gr, HCDT z, const char *sch, const char *opt)
+{ mgl_beltc(gr,z,z,sch,opt); }
+void MGL_EXPORT mgl_beltc(HMGL gr, HCDT z, HCDT c, const char *sch, const char *opt)
{
gr->SaveState(opt);
mglDataV x(z->GetNx()), y(z->GetNy());
x.Fill(gr->Min.x,gr->Max.x);
y.Fill(gr->Min.y,gr->Max.y);
- mgl_belt_xy(gr,&x,&y,z,sch,0);
+ mgl_beltc_xy(gr,&x,&y,z,c,sch,0);
}
//-----------------------------------------------------------------------------
void MGL_EXPORT mgl_belt_xy_(uintptr_t *gr, uintptr_t *x, uintptr_t *y, uintptr_t *a, const char *sch, const char *opt,int l,int lo)
@@ -497,6 +502,16 @@ void MGL_EXPORT mgl_belt_(uintptr_t *gr, uintptr_t *a, const char *sch, const ch
char *o=new char[lo+1]; memcpy(o,opt,lo); o[lo]=0;
mgl_belt(_GR_, _DA_(a), s, o); delete []o; delete []s; }
//-----------------------------------------------------------------------------
+void MGL_EXPORT mgl_beltc_xy_(uintptr_t *gr, uintptr_t *x, uintptr_t *y, uintptr_t *a, uintptr_t *c, const char *sch, const char *opt,int l,int lo)
+{ char *s=new char[l+1]; memcpy(s,sch,l); s[l]=0;
+ char *o=new char[lo+1]; memcpy(o,opt,lo); o[lo]=0;
+ mgl_beltc_xy(_GR_, _DA_(x), _DA_(y), _DA_(a), _DA_(c), s, o); delete []o; delete []s; }
+//-----------------------------------------------------------------------------
+void MGL_EXPORT mgl_beltc_(uintptr_t *gr, uintptr_t *a, uintptr_t *c, const char *sch, const char *opt,int l,int lo)
+{ char *s=new char[l+1]; memcpy(s,sch,l); s[l]=0;
+ char *o=new char[lo+1]; memcpy(o,opt,lo); o[lo]=0;
+ mgl_beltc(_GR_, _DA_(a), _DA_(c), s, o); delete []o; delete []s; }
+//-----------------------------------------------------------------------------
//
// Dens series
//
diff --git a/src/volume.cpp b/src/volume.cpp
index 00f1b53..b6b9148 100644
--- a/src/volume.cpp
+++ b/src/volume.cpp
@@ -48,7 +48,7 @@ void MGL_EXPORT mgl_cloud_xyz(HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const cha
mreal alpha = gr->AlphaDef;
bool inv = mglchr(sch,'i');
bool dot = mglchr(sch,'.');
- alpha /= pow(n/tx*m/ty*l/tz,1./3)/20;
+ alpha /= pow((n/tx)*(m/ty)*(l/tz),1./3)/20;
if(alpha>1) alpha = 1;
long ss = gr->AddTexture(sch);
@@ -638,25 +638,23 @@ void MGL_EXPORT mgl_beam_val(HMGL gr, double val, HCDT tr, HCDT g1, HCDT g2, HCD
amax = amax?sqrt(asum/asum0)/amax:0;
for(long j=0;j<m*l;j++) b.a[j+m*l*i] = b.a[j+m*l*i]*amax;
}
- if(flag & 1) for(long j=0;j<m;j++) for(long k=0;k<l;k++)
+ const long ii=m*l*i;
+ if(flag & 1) for(long k=0;k<l;k++) for(long j=0;j<m;j++)
{
- long i0 = j+m*(k+l*i);
+ long i0 = ii+j+m*k;
x.a[i0] = 2*j/(m-1.)-1;
y.a[i0] = 2*k/(l-1.)-1;
z.a[i0] = gr->Max.z*i/(n-1.);
}
- else for(long j=0;j<m;j++) for(long k=0;k<l;k++)
+ else for(long k=0;k<l;k++) for(long j=0;j<m;j++)
{
- long i0 = j+m*(k+l*i);
+ long i0 = ii+j+m*k;
x.a[i0] = tr->v(0,i) + g1->v(0,i)*(2*j/(m-1.)-1)*r + g2->v(0,i)*(2*k/(l-1.)-1)*r;
y.a[i0] = tr->v(1,i) + g1->v(1,i)*(2*j/(m-1.)-1)*r + g2->v(1,i)*(2*k/(l-1.)-1)*r;
z.a[i0] = tr->v(2,i) + g1->v(2,i)*(2*j/(m-1.)-1)*r + g2->v(2,i)*(2*k/(l-1.)-1)*r;
}
- if(flag & 2) for(long j=0;j<m;j++) for(long k=0;k<l;k++)
- {
- long i0 = j+m*(k+l*i);
- x.a[i0] = hypot(x.a[i0],y.a[i0]);
- }
+ if(flag & 2) for(long j=0;j<m*l;j++)
+ { long i0 = j+ii; x.a[i0] = hypot(x.a[i0],y.a[i0]); }
}
mgl_surf3_xyz_val(gr,val,&x,&y,&z,&b,stl,0);
}
diff --git a/texinfo/core_en.texi b/texinfo/core_en.texi
index 7f75ac0..16e7488 100644
--- a/texinfo/core_en.texi
+++ b/texinfo/core_en.texi
@@ -1720,7 +1720,7 @@ Draws a 3d error box at position @var{p}=@{@var{x}, @var{y}, @var{z}@} with size
@deftypefnx {Method on @code{mglGraph}} @code{void} Line (@code{mglPoint} p1, @code{mglPoint} p2, @code{char *}stl=@code{"B"}, @code{int} num=@code{2})
@deftypefnx {C function} @code{void} mgl_line (@code{HMGL} gr, @code{mreal} x1, @code{mreal} y1, @code{mreal} z1, @code{mreal} x2, @code{mreal} y2, @code{mreal} z2, @code{char *}stl, @code{int} num)
@end ifclear
-Draws a geodesic line (straight line in Cartesian coordinates) from point @var{p1} to @var{p2} using line style @var{stl}. Parameter @var{num} define the ``quality'' of the line. If @var{num}=@code{2} then the stright line will be drawn in all coordinate system (independently on transformation formulas (see @ref{Curved coordinates}). Contrary, for large values (for example, =@code{100}) the geodesic line will be drawn in corresponding coordinate system (straight line in Cartesian coordin [...]
+Draws a geodesic line (straight line in Cartesian coordinates) from point @var{p1} to @var{p2} using line style @var{stl}. Parameter @var{num} define the ``quality'' of the line. If @var{num}=@code{2} then the straight line will be drawn in all coordinate system (independently on transformation formulas (see @ref{Curved coordinates}). Contrary, for large values (for example, =@code{100}) the geodesic line will be drawn in corresponding coordinate system (straight line in Cartesian coordi [...]
@end deftypefn
@anchor{curve}
@@ -2032,6 +2032,7 @@ Draws axes with ticks (see @ref{Axis settings}). Parameter @var{dir} may contain
@item @samp{!} for disabling ticks tuning (see @ref{tuneticks});
@item @samp{AKDTVISO} for drawing arrow at the end of axis;
@item @samp{a} for forced adjusting of axis ticks;
+ at item @samp{:} for drawing lines through point (0,0,0);
@item @samp{f} for printing ticks labels in fixed format;
@item @samp{E} for using @samp{E} instead of @samp{e} in ticks labels;
@item @samp{F} for printing ticks labels in LaTeX format;
@@ -2243,7 +2244,7 @@ String @var{pen} specifies the color and style of line and marks (see @ref{Line
@deftypefnx {C function} @code{void} mgl_plot_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{const char *}pen, @code{const char *}opt)
@deftypefnx {C function} @code{void} mgl_plot_xyz (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{const char *}pen, @code{const char *}opt)
@end ifclear
-These functions draw continuous lines between points @{@var{x}[i], @var{y}[i], @var{z}[i]@}. If @var{pen} contain @samp{a} then segments between points outside of axis range are drawn too. See also @ref{area}, @ref{step}, @ref{stem}, @ref{tube}, @ref{mark}, @ref{error}, @ref{belt}, @ref{tens}, @ref{tape}, @ref{meshnum}. @sref{Plot sample}
+These functions draw continuous lines between points @{@var{x}[i], @var{y}[i], @var{z}[i]@}. If @var{pen} contain @samp{a} then segments between points outside of axis range are drawn too. If @var{pen} contain @samp{~} then number of segments is reduce for quasi-straight curves. See also @ref{area}, @ref{step}, @ref{stem}, @ref{tube}, @ref{mark}, @ref{error}, @ref{belt}, @ref{tens}, @ref{tape}, @ref{meshnum}. @sref{Plot sample}
@end deftypefn
@anchor{radar}
@@ -2282,7 +2283,7 @@ These functions draw continuous stairs for points to axis plane. If @var{x}.nx>@
@deftypefnx {C function} @code{void} mgl_tens_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} c, @code{const char *}pen, @code{const char *}opt)
@deftypefnx {C function} @code{void} mgl_tens_xyz (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{HCDT} c, @code{const char *}pen, @code{const char *}opt)
@end ifclear
-These functions draw continuous lines between points @{@var{x}[i], @var{y}[i], @var{z}[i]@} with color defined by the special array @var{c}[i] (look like tension plot). String @var{pen} specifies the color scheme (see @ref{Color scheme}) and style and/or width of line (see @ref{Line styles}). If @var{pen} contain @samp{a} then segments between points outside of axis range are drawn too. See also @ref{plot}, @ref{mesh}, @ref{fall}, @ref{meshnum}. @sref{Tens sample}
+These functions draw continuous lines between points @{@var{x}[i], @var{y}[i], @var{z}[i]@} with color defined by the special array @var{c}[i] (look like tension plot). String @var{pen} specifies the color scheme (see @ref{Color scheme}) and style and/or width of line (see @ref{Line styles}). If @var{pen} contain @samp{a} then segments between points outside of axis range are drawn too. If @var{pen} contain @samp{~} then number of segments is reduce for quasi-straight curves. See also @r [...]
@end deftypefn
@anchor{tape}
@@ -2748,7 +2749,7 @@ The function draws fall lines for surface specified parametrically @{@var{x}[i,j
@deftypefnx {C function} @code{void} mgl_belt (@code{HMGL} gr, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
@deftypefnx {C function} @code{void} mgl_belt_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
@end ifclear
-The function draws belts for surface specified parametrically @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@}. This plot can be used as 3d generalization of @ref{plot}). If @var{sch} contain @samp{x} then belts are drawn along x-direction else (by default) belts are drawn along y-direction. See also @ref{fall}, @ref{surf}, @ref{plot}, @ref{meshnum}. @sref{Belt sample}
+The function draws belts for surface specified parametrically @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@}. This plot can be used as 3d generalization of @ref{plot}). If @var{sch} contain @samp{x} then belts are drawn along x-direction else (by default) belts are drawn along y-direction. See also @ref{fall}, @ref{surf}, @ref{beltc}, @ref{plot}, @ref{meshnum}. @sref{Belt sample}
@end deftypefn
@anchor{boxs}
@@ -3092,9 +3093,24 @@ These plotting functions draw @emph{two matrix} simultaneously. There are 5 gene
@deftypefnx {C function} @code{void} mgl_surfc (@code{HMGL} gr, @code{HCDT} z, @code{HCDT} c, @code{const char *}sch, @code{const char *}opt)
@deftypefnx {C function} @code{void} mgl_surfc_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{HCDT} c, @code{const char *}sch, @code{const char *}opt)
@end ifclear
-The function draws surface specified parametrically @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@} and color it by matrix @var{c}[i,j]. If string @var{sch} have symbol @samp{#} then grid lines are drawn. If string @var{sch} have symbol @samp{.} then plot by dots is produced. All dimensions of arrays @var{z} and @var{c} must be equal. Surface is plotted for each z slice of the data. See also @ref{surf}, @ref{surfa}, @ref{surfca}, @ref{surf3c}. @sref{SurfC sample}
+The function draws surface specified parametrically @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@} and color it by matrix @var{c}[i,j]. If string @var{sch} have symbol @samp{#} then grid lines are drawn. If string @var{sch} have symbol @samp{.} then plot by dots is produced. All dimensions of arrays @var{z} and @var{c} must be equal. Surface is plotted for each z slice of the data. See also @ref{surf}, @ref{surfa}, @ref{surfca}, @ref{beltc}, @ref{surf3c}. @sref{SurfC sample}
@end deftypefn
+
+ at anchor{beltc}
+ at deftypefn {MGL command} {} beltc zdat cdat ['sch'='']
+ at deftypefnx {MGL command} {} beltc xdat ydat zdat cdat ['sch'='']
+ at ifclear UDAV
+ at deftypefnx {Method on @code{mglGraph}} @code{void} BeltC (@code{const mglDataA &}z, @code{const mglDataA &}c, @code{const char *}sch=@code{""}, @code{const char *}opt=@code{""})
+ at deftypefnx {Method on @code{mglGraph}} @code{void} BeltC (@code{const mglDataA &}x, @code{const mglDataA &}y, @code{const mglDataA &}z, @code{const mglDataA &}c, @code{const char *}sch=@code{""}, @code{const char *}opt=@code{""})
+ at deftypefnx {C function} @code{void} mgl_beltc (@code{HMGL} gr, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
+ at deftypefnx {C function} @code{void} mgl_beltc_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
+ at end ifclear
+The function draws belts for surface specified parametrically @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@} and color it by matrix @var{c}[i,j]. This plot can be used as 3d generalization of @ref{plot}). If @var{sch} contain @samp{x} then belts are drawn along x-direction else (by default) belts are drawn along y-direction. See also @ref{belt}, @ref{surfc}, @ref{meshnum}. @c TODO @sref{BeltC sample}
+ at end deftypefn
+
+
+
@anchor{surf3c}
@deftypefn {MGL command} {} surf3c adat cdat @code{val} ['sch'='']
@deftypefnx {MGL command} {} surf3c xdat ydat zdat adat cdat @code{val} ['sch'='']
diff --git a/texinfo/core_ru.texi b/texinfo/core_ru.texi
index 22775a8..684e3ea 100644
--- a/texinfo/core_ru.texi
+++ b/texinfo/core_ru.texi
@@ -1997,6 +1997,7 @@ Draw bitmap (logo) along whole axis range, which can be changed by @ref{Command
@item @samp{!} для отключения улучшения вида меток (см. @ref{tuneticks});
@item @samp{AKDTVISO} для вывода стрелки на конце оси;
@item @samp{a} для принудительной автоматической расстановки меток;
+ at item @samp{:} для рисования линий через точку (0,0,0);
@item @samp{f} для вывода чисел в фиксированном формате;
@item @samp{E} для вывода @samp{E} вместо @samp{e};
@item @samp{F} для вывода в формате LaTeX;
@@ -2207,7 +2208,7 @@ Draw bitmap (logo) along whole axis range, which can be changed by @ref{Command
@deftypefnx {Функция С} @code{void} mgl_plot_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{const char *}pen, @code{const char *}opt)
@deftypefnx {Функция С} @code{void} mgl_plot_xyz (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{const char *}pen, @code{const char *}opt)
@end ifclear
-Функции рисуют ломанную линию по точкам @{@var{x}[i], @var{y}[i], @var{z}[i]@}. Если @var{pen} содержит @samp{a}, то рисуются и сегменты между точками вне диапазона осей координат. См. также @ref{area}, @ref{step}, @ref{stem}, @ref{tube}, @ref{mark}, @ref{error}, @ref{belt}, @ref{tens}, @ref{tape}, @ref{meshnum}. @sref{Plot sample}
+Функции рисуют ломанную линию по точкам @{@var{x}[i], @var{y}[i], @var{z}[i]@}. Если @var{pen} содержит @samp{a}, то рисуются и сегменты между точками вне диапазона осей координат. Если @var{pen} содержит @samp{~}, то число сегментов уменьшается для квази-линейных участков. См. также @ref{area}, @ref{step}, @ref{stem}, @ref{tube}, @ref{mark}, @ref{error}, @ref{belt}, @ref{tens}, @ref{tape}, @ref{meshnum}. @sref{Plot sample}
@end deftypefn
@anchor{radar}
@@ -2246,7 +2247,7 @@ Draw bitmap (logo) along whole axis range, which can be changed by @ref{Command
@deftypefnx {Функция С} @code{void} mgl_tens_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} c, @code{const char *}pen, @code{const char *}opt)
@deftypefnx {Функция С} @code{void} mgl_tens_xyz (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{HCDT} c, @code{const char *}pen, @code{const char *}opt)
@end ifclear
-Функции рисуют ломанную линию по точкам с цветом, определяемым массивом @var{c} (типа графика натяжений). Строка @var{pen} задает цветовую схему (см. @ref{Color scheme}) и стиль линий и/или маркеров (см. @ref{Line styles}). Если @var{pen} содержит @samp{a}, то рисуются и сегменты между точками вне диапазона осей координат. См. также @ref{plot}, @ref{mesh}, @ref{fall}, @ref{meshnum}. @sref{Tens sample}
+Функции рисуют ломанную линию по точкам с цветом, определяемым массивом @var{c} (типа графика натяжений). Строка @var{pen} задает цветовую схему (см. @ref{Color scheme}) и стиль линий и/или маркеров (см. @ref{Line styles}). Если @var{pen} содержит @samp{a}, то рисуются и сегменты между точками вне диапазона осей координат. Если @var{pen} содержит @samp{~}, то число сегментов уменьшается для квази-линейных участков. См. также @ref{plot}, @ref{mesh}, @ref{fall}, @ref{meshnum}. @sref{Tens sample}
@end deftypefn
@anchor{tape}
@@ -2714,7 +2715,7 @@ Draw bitmap (logo) along whole axis range, which can be changed by @ref{Command
@deftypefnx {Функция С} @code{void} mgl_belt (@code{HMGL} gr, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
@deftypefnx {Функция С} @code{void} mgl_belt_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
@end ifclear
-Рисует ленточки для параметрически заданной поверхности @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@}. График может использоваться как 3d обобщение графика @ref{plot}. Если @var{sch} содержит @samp{x}, то ленточки рисуются вдоль оси x, иначе (по умолчанию) вдоль оси y. См. также @ref{fall}, @ref{surf}, @ref{plot}, @ref{meshnum}. @sref{Belt sample}
+Рисует ленточки для параметрически заданной поверхности @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@}. График может использоваться как 3d обобщение графика @ref{plot}. Если @var{sch} содержит @samp{x}, то ленточки рисуются вдоль оси x, иначе (по умолчанию) вдоль оси y. См. также @ref{fall}, @ref{surf}, @ref{beltc}, @ref{plot}, @ref{meshnum}. @sref{Belt sample}
@end deftypefn
@anchor{boxs}
@@ -3060,9 +3061,23 @@ Draw bitmap (logo) along whole axis range, which can be changed by @ref{Command
@deftypefnx {Функция С} @code{void} mgl_surfc (@code{HMGL} gr, @code{HCDT} z, @code{HCDT} c, @code{const char *}sch, @code{const char *}opt)
@deftypefnx {Функция С} @code{void} mgl_surfc_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{HCDT} c, @code{const char *}sch, @code{const char *}opt)
@end ifclear
-Рисует параметрически заданную поверхность @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@} с цветом, заданным массивом @var{c}[i,j]. Если @var{sch} содержит @samp{#}, то на поверхности рисуется сетка. Если @var{sch} содержит @samp{.}, то рисуется поверхность из точек. Размерность массивов @var{z} и @var{c} должна быть одинакова. График строится для каждого z среза данных. См. также @ref{surf}, @ref{surfa}, @ref{surf3c}. @sref{SurfC sample}
+Рисует параметрически заданную поверхность @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@} с цветом, заданным массивом @var{c}[i,j]. Если @var{sch} содержит @samp{#}, то на поверхности рисуется сетка. Если @var{sch} содержит @samp{.}, то рисуется поверхность из точек. Размерность массивов @var{z} и @var{c} должна быть одинакова. График строится для каждого z среза данных. См. также @ref{surf}, @ref{surfa}, @ref{beltc}, @ref{surf3c}. @sref{SurfC sample}
@end deftypefn
+
+ at anchor{beltc}
+ at deftypefn {Команда MGL} {} beltc zdat cdat ['sch'='']
+ at deftypefnx {Команда MGL} {} beltc xdat ydat zdat cdat ['sch'='']
+ at ifclear UDAV
+ at deftypefnx {Метод класса @code{mglGraph}} @code{void} BeltC (@code{const mglDataA &}z, @code{const char *}sch=@code{""}, @code{const char *}opt=@code{""})
+ at deftypefnx {Метод класса @code{mglGraph}} @code{void} BeltC (@code{const mglDataA &}x, @code{const mglDataA &}y, @code{const mglDataA &}z, @code{const char *}sch=@code{""}, @code{const char *}opt=@code{""})
+ at deftypefnx {Функция С} @code{void} mgl_beltc (@code{HMGL} gr, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
+ at deftypefnx {Функция С} @code{void} mgl_beltc_xy (@code{HMGL} gr, @code{HCDT} x, @code{HCDT} y, @code{HCDT} z, @code{const char *}sch, @code{const char *}opt)
+ at end ifclear
+Рисует ленточки для параметрически заданной поверхности @{@var{x}[i,j], @var{y}[i,j], @var{z}[i,j]@} с цветом, заданным массивом @var{c}[i,j]. График может использоваться как 3d обобщение графика @ref{plot}. Если @var{sch} содержит @samp{x}, то ленточки рисуются вдоль оси x, иначе (по умолчанию) вдоль оси y. См. также @ref{belt}, @ref{surfc}, @ref{meshnum}. @c TODO @sref{Belt sample}
+ at end deftypefn
+
+
@anchor{surf3c}
@deftypefn {Команда MGL} {} surf3c adat cdat @code{val} ['sch'='']
@deftypefnx {Команда MGL} {} surf3c xdat ydat zdat adat cdat @code{val} ['sch'='']
diff --git a/texinfo/symbols_en.texi b/texinfo/symbols_en.texi
index c0f4a2c..f2c279e 100644
--- a/texinfo/symbols_en.texi
+++ b/texinfo/symbols_en.texi
@@ -122,6 +122,8 @@ stop color scheme parsing (see @ref{Color scheme});
range operation in @ref{MGL scripts};
+style for @ref{axis};
+
separator of commands in @ref{MGL scripts}.
@item ;
@@ -257,6 +259,8 @@ disable drawing of tick labels for @ref{axis} and @ref{colorbar};
disable first segment in @ref{lamerey};
+reduce number of segments in @ref{plot} and @ref{tens};
+
one of mask for face filling (see @ref{Color scheme}).
@item 0,1,2,3,4,5,6,7,8,9
diff --git a/texinfo/symbols_ru.texi b/texinfo/symbols_ru.texi
index c0f4a2c..f2c279e 100644
--- a/texinfo/symbols_ru.texi
+++ b/texinfo/symbols_ru.texi
@@ -122,6 +122,8 @@ stop color scheme parsing (see @ref{Color scheme});
range operation in @ref{MGL scripts};
+style for @ref{axis};
+
separator of commands in @ref{MGL scripts}.
@item ;
@@ -257,6 +259,8 @@ disable drawing of tick labels for @ref{axis} and @ref{colorbar};
disable first segment in @ref{lamerey};
+reduce number of segments in @ref{plot} and @ref{tens};
+
one of mask for face filling (see @ref{Color scheme}).
@item 0,1,2,3,4,5,6,7,8,9
diff --git a/texinfo/version_hist.txt b/texinfo/version_hist.txt
index 5a71907..b0c144e 100644
--- a/texinfo/version_hist.txt
+++ b/texinfo/version_hist.txt
@@ -1,3 +1,5 @@
+2.4.1 Released 20 July 2017
+2.4 Released 17 May 2017
2.3.5.1 Released 30 May 2015
2.3.5 Released 16 May 2015
2.3.4 Released 11 February 2015
diff --git a/texinfo/web_en.texi b/texinfo/web_en.texi
index 7b5330c..dfea373 100644
--- a/texinfo/web_en.texi
+++ b/texinfo/web_en.texi
@@ -53,6 +53,8 @@ Generally, MathGL is GPL library. However, you can use LGPL license for MathGL c
@strong{Latest news}
@itemize
+ at item @strong{20 July 2017.}
+New version (v.2.4.1) with bugfixes of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released.
@item @emph{17 May 2017.}
New version (v.2.4) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are @code{mgllab} executable, string manipulation in MGL, new functions, plot types and styles, translation to Russian using @code{gettext} and bugfixes, which denoted @ref{News, here}.
@end itemize
@@ -74,6 +76,17 @@ Javascript interface was developed with support of @url{http://www.datadvance.ne
@itemize
+ at item @strong{20 July 2017.}
+New version (v.2.4.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released.
+ at itemize @bullet
+
+ at item Add @ref{beltc} plot, which is @ref{belt} with manual coloring.
+ at item Add style @samp{~} for @ref{plot} and @ref{tens} to omit some points at output.
+ at item Add style @samp{:} for @ref{axis} to draw lines through point (0,0,0).
+ at item Bugfixes.
+
+ at end itemize
+
@item @strong{17 May 2017.}
New version (v.2.4) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are @code{mgllab} executable, string manipulation in MGL, new functions, plot types and styles, translation to Russian using @code{gettext} and bugfixes:
@itemize @bullet
@@ -338,7 +351,7 @@ You may download current version of MathGL for following configurations:
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win64.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win64.7z,LGPL} binaries for MinGW, 64-bit build.
@item
-MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,64-bit} versions of MS Windows.
+MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows.
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.eng.pdf,PDF} documentation in English.
@item
diff --git a/texinfo/web_ru.texi b/texinfo/web_ru.texi
index 9d6fd6d..44b65bf 100644
--- a/texinfo/web_ru.texi
+++ b/texinfo/web_ru.texi
@@ -53,7 +53,9 @@ Generally, MathGL is GPL library. However, you can use LGPL license for MathGL c
@strong{Latest news}
@itemize
- at item @emph{16 May 2017.}
+ at item @strong{20 July 2017.}
+New version (v.2.4.1) with bugfixes of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released.
+ at item @emph{17 May 2017.}
New version (v.2.4) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are @code{mgllab} executable, string manipulation in MGL, new functions, plot types and styles, translation to Russian using @code{gettext} and bugfixes, which denoted @ref{News, here}.
@end itemize
@@ -74,7 +76,19 @@ Javascript interface was developed with support of @url{http://www.datadvance.ne
@itemize
- at item @strong{16 May 2017.}
+
+ at item @strong{20 July 2017.}
+New version (v.2.4.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released.
+ at itemize @bullet
+
+ at item Add @ref{beltc} plot, which is @ref{belt} with manual coloring.
+ at item Add style @samp{~} for @ref{plot} and @ref{tens} to omit some points at output.
+ at item Add style @samp{:} for @ref{axis} to draw lines through point (0,0,0).
+ at item Bugfixes.
+
+ at end itemize
+
+ at item @strong{17 May 2017.}
New version (v.2.4) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are @code{mgllab} executable, string manipulation in MGL, new functions, plot types and styles, translation to Russian using @code{gettext} and bugfixes:
@itemize @bullet
@@ -338,7 +352,7 @@ You may download current version of MathGL for following configurations:
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win64.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win64.7z,LGPL} binaries for MinGW, 64-bit build.
@item
-MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,64-bit} versions of MS Windows.
+MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows.
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.eng.pdf,PDF} documentation in English.
@item
diff --git a/todo.txt b/todo.txt
index dada0d5..d62d7ef 100644
--- a/todo.txt
+++ b/todo.txt
@@ -39,6 +39,7 @@
7. Add ##d comment(s) -- analogue of 'ask' but update figure after each change ???
8. Add "mgl_zoomview(int x, int y)" for zoom circle around image point {x,y}
9. Mask in EPS/SVG
+11. Add momentum dat vdat ... where vdat is corresponding coordinate ???
ZZ. Update *.i for new functions {before release!!!}
diff --git a/translations/mathgl_es.mo b/translations/mathgl_es.mo
index 4d9d0ef..14482bf 100644
Binary files a/translations/mathgl_es.mo and b/translations/mathgl_es.mo differ
diff --git a/translations/mathgl_ru.mo b/translations/mathgl_ru.mo
index 55f510b..044b77d 100644
Binary files a/translations/mathgl_ru.mo and b/translations/mathgl_ru.mo differ
diff --git a/udav/CMakeLists.txt b/udav/CMakeLists.txt
index 3b4480b..29df769 100644
--- a/udav/CMakeLists.txt
+++ b/udav/CMakeLists.txt
@@ -19,10 +19,10 @@ if(WIN32)
endif(WIN32)
if(enable-qt5)
- include(../cmake-qt5.txt)
+ include(../scripts/qt5.cmake)
qt5_add_resources(udav_rc_src ${udav_rc} )
else(enable-qt5)
- include(../cmake-qt4.txt)
+ include(../scripts/qt4.cmake)
qt4_add_resources(udav_rc_src ${udav_rc} )
endif(enable-qt5)
add_executable(udav ${udav_src} ${udav_moc_hdr} ${udav_rc_src})
diff --git a/udav/anim_dlg.cpp b/udav/anim_dlg.cpp
index eea9c78..bef8c5e 100644
--- a/udav/anim_dlg.cpp
+++ b/udav/anim_dlg.cpp
@@ -81,6 +81,7 @@ AnimParam::AnimParam(QWidget *parent) : QDialog(parent)
// fname = new QLineEdit(this); a->addWidget(fname);
gif = new QCheckBox(_("Export to GIF"), this); a->addWidget(gif);
jpg = new QCheckBox(_("Save JPEG frames"), this); a->addWidget(jpg);
+ gifOn = jpgOn = false;
}
//-----------------------------------------------------------------------------
AnimParam::~AnimParam() {}
diff --git a/udav/args_dlg.cpp b/udav/args_dlg.cpp
index f00ae64..e465582 100644
--- a/udav/args_dlg.cpp
+++ b/udav/args_dlg.cpp
@@ -84,6 +84,6 @@ void ArgsDialog::putArguments()
str[j] = 0;
parser.AddParam(i, str);
}
- accept();
+ delete []str; accept();
}
//-----------------------------------------------------------------------------
diff --git a/udav/data_dlg.h b/udav/data_dlg.h
index 048da95..ffed088 100644
--- a/udav/data_dlg.h
+++ b/udav/data_dlg.h
@@ -45,8 +45,8 @@ private slots:
void userRes();
private:
QString result;
- QComboBox *name, *suffix, *oper, *dirs;
- QLineEdit *res, *func;
+ QComboBox *name, *oper, *dirs;
+ QLineEdit *res;
QSpinBox *x1, *y1, *z1, *x2, *y2, *z2;
QLabel *sizes;
};
diff --git a/udav/files_dlg.cpp b/udav/files_dlg.cpp
index 7c6855b..8b82ae1 100644
--- a/udav/files_dlg.cpp
+++ b/udav/files_dlg.cpp
@@ -59,7 +59,7 @@ FilesDialog::FilesDialog(QWidget *parent) : QDialog(parent)
connect(b, SIGNAL(clicked()),this, SLOT(reject()));
b = new QPushButton(_("OK"), this); h->addWidget(b);
connect(b, SIGNAL(clicked()),this, SLOT(putArguments()));
- b->setDefault(true);
+ b->setDefault(true); narg=0;
}
//-----------------------------------------------------------------------------
FilesDialog::~FilesDialog() {}
diff --git a/udav/style_dlg.h b/udav/style_dlg.h
index 348632c..99d318d 100644
--- a/udav/style_dlg.h
+++ b/udav/style_dlg.h
@@ -51,12 +51,12 @@ private:
QComboBox *cc[8], *cline, *cfont;
QSlider *nn[8], *nline;
QComboBox *axial, *ctext, *a1, *a2, *dash, *mark;
- QCheckBox *swire, *upd;
+ QCheckBox *swire;
QCheckBox *ital, *bold, *wire, *uline, *oline;
QSpinBox *width;
QGroupBox *align;
QTabWidget *tab;
- QLabel *box, *pic;
+ QLabel *pic;
QLineEdit *res;
QRadioButton *rbL, *rbC, *rbR;
uchar *grBuf;
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index 72015b9..688e1b1 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -38,10 +38,10 @@ else(MGL_HAVE_FLTK)
if(QT_ENABLED)
add_executable(mglview mglview.cpp)
if(enable-qt5)
- include(../cmake-qt5.txt)
+ include(../scripts/qt5.cmake)
target_link_libraries(mglview mgl-qt5${link_type} ${getopt_lib-static} ${MGL_QT5_LIBS})
else(enable-qt5)
- include(../cmake-qt4.txt)
+ include(../scripts/qt4.cmake)
target_link_libraries(mglview mgl-qt4${link_type} ${getopt_lib-static} ${MGL_QT4_LIBS})
endif(enable-qt5)
diff --git a/utils/mglcgi.cpp b/utils/mglcgi.cpp
index 907c1d8..d602de0 100644
--- a/utils/mglcgi.cpp
+++ b/utils/mglcgi.cpp
@@ -67,7 +67,7 @@ int main(int argc, char **argv)
{
long len=atol(getenv("CONTENT_LENGTH"));
buf = new char[len+1];
- if(!fread(buf,len,1,stdin)) len=0;
+ len = fread(buf,len,1,stdin);
buf[len]=0; alloc=true;
}
else buf = getenv("QUERY_STRING");
diff --git a/utils/mglconv.cpp b/utils/mglconv.cpp
index 4f4d869..e86e874 100644
--- a/utils/mglconv.cpp
+++ b/utils/mglconv.cpp
@@ -102,11 +102,11 @@ int main(int argc, char *argv[])
"\t-h print this message\n") );
return 0;
}
- else if(ch=='o') strncpy(oname, optarg,256);
+ else if(ch=='o') mgl_strncpy(oname, optarg,256);
else if(ch==-1 && optind<argc)
- { strncpy(iname, argv[optind][0]=='-'?"":argv[optind],256); break; }
+ { mgl_strncpy(iname, argv[optind][0]=='-'?"":argv[optind],256); break; }
}
- if(*oname==0) { strncpy(oname,*iname?iname:"out",250); strcat(oname,".png"); }
+ if(*oname==0) { mgl_strncpy(oname,*iname?iname:"out",250); strcat(oname,".png"); }
else none = false;
mgl_ask_func = mgl_ask_gets;
diff --git a/utils/mglview.cpp b/utils/mglview.cpp
index 0faed5b..a13dd67 100644
--- a/utils/mglview.cpp
+++ b/utils/mglview.cpp
@@ -80,7 +80,7 @@ int main(int argc, char **argv)
return 0;
}
else if(ch==-1 && optind<argc)
- { strncpy(iname, argv[optind][0]=='-'?"":argv[optind],256); break; }
+ { mgl_strncpy(iname, argv[optind][0]=='-'?"":argv[optind],256); break; }
}
bool mgld=(*iname && iname[strlen(iname)-1]=='d');
diff --git a/widgets/fltk.cpp b/widgets/fltk.cpp
index 03e0632..c176f25 100644
--- a/widgets/fltk.cpp
+++ b/widgets/fltk.cpp
@@ -104,6 +104,7 @@ Fl_MathGL::Fl_MathGL(int xx, int yy, int ww, int hh, const char *lbl) : Fl_Widge
tet_val = phi_val = 0;
draw_par = 0; draw_func = 0; draw_cl = 0;
last_id = -1; run = false;
+ popup=0; vpar=0; wpar=0; thr=0;
}
//-----------------------------------------------------------------------------
Fl_MathGL::~Fl_MathGL() { if(mgl_use_graph(gr,-1)<1) mgl_delete_graph(gr); }
@@ -897,7 +898,7 @@ Fl_MGLView::Fl_MGLView(int xx, int yy, int ww, int hh, const char *lbl) : Fl_Win
FMGL->tet_val = tet;
FMGL->phi_val = phi;
FMGL->set_popup(pop_graph,FMGL,this);
- scroll->end(); resizable(scroll); end();
+ scroll->end(); resizable(scroll); end(); par=0;
}
Fl_MGLView::~Fl_MGLView() {}
//-----------------------------------------------------------------------------
@@ -905,7 +906,7 @@ Fl_MGLView::~Fl_MGLView() {}
// class mglCanvasFL
//
//-----------------------------------------------------------------------------
-mglCanvasFL::mglCanvasFL() : mglCanvasWnd() { Wnd=0; }
+mglCanvasFL::mglCanvasFL() : mglCanvasWnd() { Wnd=0; mgl=0; }
mglCanvasFL::~mglCanvasFL() { if(Wnd) { mgl->FMGL->gr=0; delete Wnd; } }
//-----------------------------------------------------------------------------
void mglCanvasFL::GotoFrame(int d)
diff --git a/widgets/qt.cpp b/widgets/qt.cpp
index c4bd394..9c0f072 100644
--- a/widgets/qt.cpp
+++ b/widgets/qt.cpp
@@ -100,8 +100,8 @@ QMathGL::QMathGL(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f)
autoResize = false; draw_par = 0; draw_func = 0;
dotsRefr = true;
gr = new mglCanvas; appName = "MathGL";
- popup = 0; grBuf = 0; draw = 0;
- phi = tet = per = 0;
+ popup = 0; grBuf = 0; draw = 0; prevQuality=MGL_DRAW_NORM;
+ phi = tet = per = 0; x0=y0=xe=ye=0;
x1 = y1 = ax1 = ay1 = 0; x2 = y2 = ax2 = ay2 = 1;
alpha = light = zoom = rotate = grid = viewYZ = custZoom = custDraw = pause = false;
resize(600, 400); mgl_set_flag(gr, true, MGL_CLF_ON_UPD);
diff --git a/widgets/qt4/CMakeLists.txt b/widgets/qt4/CMakeLists.txt
index 74f117c..5ed5868 100644
--- a/widgets/qt4/CMakeLists.txt
+++ b/widgets/qt4/CMakeLists.txt
@@ -1,7 +1,7 @@
include(GenerateExportHeader)
if(enable-qt4)
- include(../../cmake-qt4.txt)
+ include(../../scripts/qt4.cmake)
set(MGL_QT4_FILES ../qt.cpp ../../include/mgl2/qt.h ../../include/mgl2/qmathgl.h)
mgl_add_lib(qt4 ${MGL_QT4_FILES})
target_link_libraries(mgl-qt4 mgl ${MGL_QT4_LIBS})
diff --git a/widgets/qt5/CMakeLists.txt b/widgets/qt5/CMakeLists.txt
index 70e1787..5c5bbd7 100644
--- a/widgets/qt5/CMakeLists.txt
+++ b/widgets/qt5/CMakeLists.txt
@@ -1,7 +1,7 @@
include(GenerateExportHeader)
if(enable-qt5)
- include(../../cmake-qt5.txt)
+ include(../../scripts/qt5.cmake)
set(MGL_QT5_FILES ../qt.cpp ../../include/mgl2/qt.h ../../include/mgl2/qmathgl.h)
mgl_add_lib(qt5 ${MGL_QT5_FILES})
target_link_libraries(mgl-qt5 mgl ${MGL_QT5_LIBS})
diff --git a/widgets/wx.cpp b/widgets/wx.cpp
index 94a155e..2a3988e 100644
--- a/widgets/wx.cpp
+++ b/widgets/wx.cpp
@@ -89,8 +89,8 @@ END_EVENT_TABLE()
wxMathGL::wxMathGL(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name) : wxWindow(parent,id,pos,size,style,name)
{
AutoResize = false; draw_par = 0; draw_func = 0;
- gr = new mglCanvas; popup = 0;
- phi = tet = per = 0;
+ gr = new mglCanvas; popup = 0; draw_cl = 0;
+ phi = tet = per = 0; x0=y0=xe=ye=0;
x1 = y1 = 0; x2 = y2 = 1;
alpha = light = zoom = rotate = false;
// SetSize(600, 400);
diff --git a/win32-install-deps/CMakeLists.txt b/win32-install-deps/CMakeLists.txt
deleted file mode 100644
index 2824d13..0000000
--- a/win32-install-deps/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-if(enable-qt5)
- find_package(Qt5Gui QUIET)
- if(Qt5Gui_FOUND)
- get_target_property(mgl_qt_loc Qt5::QWindowsIntegrationPlugin LOCATION)
- endif(Qt5Gui_FOUND)
-endif(enable-qt5)
-
-install(CODE "SET(mgl_qt_loc \"${mgl_qt_loc}\")")
-install(CODE "SET(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
-install(SCRIPT install-deps.txt)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/mathgl.git
More information about the debian-science-commits
mailing list