MathGL Changelog

What's new in MathGL 2.3.3

Jun 9, 2015
  • There are new functions, plot types and styles, improvement in MGL scripts and in mgltex, speeding up and bugfixes:
  • Update LaTeX package (thanks to Diego Sejas Viscarra)
  • Add surfca and surf3ca plots.
  • Add wavelet transforms.
  • Add attachlight for attaching light settings to inplots.
  • Add manual rotation angle for axis ticks (by "value" option).
  • Add mglDataS class which is similar to std::vector one.
  • Add missing mglDataC functions.
  • Add style ’%’ for color scheme along 2 coordinates (as in map).
  • If tick template start with ’&’ then long integer is passed instead of double.
  • Add style ’V’ for drawing text centered vertically.
  • Add style "dN" in smooth for averaging over (2*N+1)-th points.
  • Add TeX symbols "\quote", "–" and Cyrillic ones.
  • Add complex numbers in MGL – any expression started with ’!’ will have complex value(s).
  • Add rkstep command for Runge-Kutta step in MGL script.
  • Add functions ’min()’, ’max()’ to MGL parser and formula evaluation.
  • MGL command join now can join arbitrary number of data arrays.
  • Command stop is not required to be placed before func.
  • Add warning about writing to temporary arrays in MGL scripts.
  • Names ’rnd’,’nan’,’inf’ are reserved in MGL scripts now.
  • Add annotation for plot styles and options into header files.
  • Greatly improve the speed of formula parsing for MGL scripts
  • Update JS interface
  • Add binary font files for speeding up initialization and font loading
  • Exclude "pure" attribute for function due to compatibility reasons
  • Add mgl_set_size_scl() for additional scaling width and height of the image
  • Add options -S, -q for mglconv
  • Rearrange toolbuttons in UDAV.
  • Bugfix for flow and pipe functions
  • Other minor improvements, bugfixes and compatibility changes

New in MathGL 2.3.2 (Feb 4, 2015)

  • Update mgltex
  • Add reading files with complex numbers by 'read' command.
  • Parallelize reading textual data files.
  • Add 'i','j','k' variables for data filling.
  • Add saving images in QMathGL even if corresponding format support is disabled.
  • Add cmake option MGL_DEF_FONT to change default font name or use built-in one (if MGL_DEF_FONT is empty).
  • Compatibility changes and bug fixes.

New in MathGL 2.3.1 (Oct 24, 2014)

  • Minor improvements and bugfixes:
  • Add LaTeX package mglTeX (author Diego Sejas Viscarra) for making figures directly from MGL script located in LaTeX file.
  • Add MGL command load for loading MGL commands from external DLL (or .so) module.
  • Add logo function to draw bitmap (logo), which is stretched along whole axis range.
  • Add MGL command reset which restore default settings and clear image (i.e. call DefaultPlotParam()).
  • Add option value to axis function, which allow to set rotation angle for tick labels.
  • Change y coordinate at x-z projection.
  • Improve projection of ’unrotatable’ objects (like legend, title, ...).
  • Add projection (ternary&8) which is the same as usual (ternary&4) but don’t print text on projections
  • Improve orientation of axis ticks and labels.
  • Add mglWnd::SetDrawFunc().
  • Add mgl_set_global_warn() and mgl_get_global_warn() for set/get messages of global scope.
  • Make copying private of mglGraph and derived.
  • Add virtual destructors.
  • Add some static functions for mglGraph.
  • Add option ‘-n’ to mglconv to disable automatic saving of the image.
  • Add option ‘-s’ to mglview and mglconv to run setup script before the main one.
  • Become compatible with giflib 5.1.
  • Add light scaling at MGLD import.
  • Add scaling of frames at Adjust().
  • Possible bugfix for 32bit gcc.
  • Update documentation and make other minor bugfixes and compatibility changes.

New in MathGL 2.3 (Aug 7, 2014)

  • Add background image, which allow in particular semi-transparent background color. Correspondingly add function Rasterize() for saving current image as background, and function LoadBackground() for loading background image from PNG or JPEG file.
  • Add primitives to draw polygon and angle arc.
  • Allow arbitrary factor for axis ticks (like, gr->SetTicks('x',M_PI,0,NAN,"\\pi");).
  • Add function AddTick() for adding manual tick to existed ones.
  • Add new styles and symbols:
  • arrow style 'X';
  • color gradient (color scheme) of glyphs in text;
  • manual dash style, like "{df090}";
  • manual mask style, like "{s00ff00182424f800}";
  • Add styles 'fFE0123456789+-' for printing numbers in functions Axis(), Colorbar(), Table() and Label();
  • style '!' to disable ticks tuning in Axis() and Colorbar();
  • special symbol '\b' which will be ignored at printing;
  • calligraphic TeX symbols, like \calB, \calE, \calF, \calH, \calI, \calL, \calM, \calR, \ell, \scrg, \scro.
  • Add ODE solving functions for textual formulas
  • Add function for global cubic spline interpolation, and function to refill using global spline.
  • Add functions "random(dat)" and "gamma_inc(a,x)" to the list of known functions for formula parsing
  • Add 'inf' variable to the MGL and formula parsing
  • Allow reading JPEG files for mglData::Import().
  • Function mgl_data_subdata_ext() handle NULL argument(s). Add variants of SubData() with 1 and 2 arguments.
  • Warning messages and information are printed to stderr until call of mgl_suppress_warn(true) will disable it.
  • Add function mgl_check_version() and MGL command 'version' to check if MathGL version is valid.
  • Add move constructor(s) if compiler support C++11 rvalues.
  • Changes in algorithms:
  • Greatly increase speed of formula parsing (i.e. of functions mglData::Modify(), mglData::Fill() and similar), and speeding up many other places;
  • Improve algorithm for contours drawing and filling, taking special attention to quasi-random data.
  • Spline() now use 5-th order polynomials to keep continuity of 2nd derivative too.
  • Add function attributes 'pure' or 'const', which potentially can speed up drawing.
  • Use spline instead of linear interpolation in functions Flow() and Pipe().
  • Adjust columnplot and gridplot positions for non-zero distance between the inplots.
  • Improve colorbar labels drawing at SetRotatedText(false)
  • Choose new scales for perspective.
  • Allow 'negative' angles for text rotation
  • Use new s-hull version for triangulation.
  • Make function mgl_get_curvs() to be exported. This function is used internally to connect line segments to a set of curves (in particular, for contour lines).
  • Add ViewAsRotate() function which handle arguments of View() by the same way as Rotate() function, i.e View(tetx,tetz,tety) ViewAsRotate(-tetz,-tetx,-tety)
  • Function mglWindow::Adjust() for Quality&4==0 now show image in widgets even if draw function is absent (i.e. =NULL).
  • improvements in UDAV:
  • Rearrange tool buttons;
  • Add features for manual dashing and manual mask in Style dialog;
  • Add dialog for new dialog for new inplots (including subplot, multiplot, columnplot, stickplot, gridplot);
  • Add option to use dots plot at image refreshing (for faster rotation etc);
  • Add new primitives (arc,polygon,rotated text) as mouse handled ones;
  • Add close button to data tabs;
  • Add button to stop script drawing and stop() slot for QMathGL;
  • Allow to delete/hide/unhide selected plot;
  • Allow to move selected plot between inplots;
  • Improve NewCommand dialog -- now it replace the script command if user change arguments only;
  • MGL commands 'perspective' and 'fog' now work correctly in UDAV;
  • Update UDAV icons to use Oxygen ones.

New in MathGL 2.2.2.1 (Mar 27, 2014)

  • Compatibility changes for MS VisualStudio 2010 and early.
  • Function SetRange(v1,v2) ignore NAN values now.
  • Add enable-json-sample for building json-samples on demand only.
  • Update docs.

New in MathGL 2.2.2 (Mar 11, 2014)

  • Add mgl_region_3d() to draw region (or ribbon) between 2 curves. Correspondingly extend mglGraph::Region() function and MGL command 'region'.
  • Allow LGPL for MathGL widgets.
  • Improve export to TeX.
  • Add missing functions to Fortran interface.
  • Bugfix for legend with enabled lighting.
  • Minor bugfixes and memory leaks.

New in MathGL 2.2.1 (Jan 23, 2014)

  • Add Qt5 support.
  • Add Pascal interface.
  • Improve JavaScript interface.
  • Add function AddRange(char dir, mreal v1, mreal v2) and extend corresponding MGL commands '[xyzc]range'.
  • Add 'hypot' function for known functions in formula parsing.
  • Add style '~' to disable colorbar or axis labels. NOTE, axis style '_' is obsolete and should be replaced by '~'.
  • Change Aspect() if Ax=NAN. Now, Ay and Az set the ratio to optimal aspect (not exact value as previously).
  • Disable changes by View(),Zoom(),Perspective() for position of Title(), Legend(), Colorbar().
  • Partial support of perspective in CalcXYZ().
  • Speed up PDE solving.
  • Add complex versions of PDE, QO2d, QO3d.
  • Correct filled background for Box() in curved coordinates.
  • Allow nx=1 for Stem and Error.
  • Bugfix for drawing single axis.
  • Bugfix for missing options parsing for some of MGL commands.
  • Bugfix for .pmin suffix in MGL. Add mglData::MaximalNeg() and mglData::MinimalPos() functions. Add .nmin and .nmax suffixes.
  • Bugfix for colorbar labels.
  • Force using python 2.7 by default due to bug in Ubuntu. Debian sid works well with python 3.too.

New in MathGL 2.2 (Nov 20, 2013)

  • Add OpenMP calls mostly everywhere (can work as replacement of pthreads - a bit faster since more loops is parallelized).
  • Greatly speed up consequent FFT and Hankel transforms. Add mgl_clear_fft() function for manual clearing of saved FFT/Hankel data.
  • Add OHLC() plot for drawing Open-High-Low-Close diagram
  • Add wxMathGL widget.
  • Add interface for Lua v.5.1.
  • Add mask for face drawing if one of symbols "-+=;oOsS~jdD*^" is specified in color scheme. This work only for export in bitmap images.
  • Add Quality=8 for dots drawing (extremely fast).
  • Add styles '4','6','8' for Cone() and Cones() to produce square, hex-, octo-prism.
  • Add style 't' for Cones() to produce tubes (cylinders).
  • Add style '^' for Legend() to left/right align legend if its coordinates are right/left from the center
  • Add style '' for aligning/centering boxes in Bars(), Barh(), BoxPlot(), Cones(). Also this plots become centered by default if nx sizes are the same for all data.
  • Add Dots() function which set independently both color and alpha of dots
  • Improve automatic axis position. Add style '^' for inverse automatic axis position.
  • Improve tick labeling. Add style TuneTicks&4 for zero filling of tick labels.
  • Add mglData::Refill() for filling by interpolation of parametrically dependent data
  • Add transparency for Area() and Region() plots.
  • Add mgl_clf_chr() function and extend 'clf' command.
  • Fourier now perform true inverse Fourier transform (instead of backward one).
  • Improve/change lighting from local sources. Add SetDiffuse() function.
  • C functions now return NULL if HMDT data cannot be created for given input argument(s).
  • Enable line width for Mesh() and Fall() plots.
  • Replace +INF and -INF by NAN in textual formula output.
  • Add manual compression of JSON.
  • Define WORDS_BIGENDIAN and HAVE_MEMRCHR (thanks to Dinar Valeev).
  • Bugfix for cleaning unused points.
  • Fix 'setsize' command at UDAV starting.
  • Rewrite MGL parsing by using std::wstring for avoiding possible bugs of wcs*() functions.
  • Minor bugfixes.
  • Update docs.

New in MathGL 2.1.3.1 (May 13, 2013)

  • Compatibility changes for MS VS.
  • Bugfixes for cmake options enable-double=OFF, enable-zlib=OFF.
  • Enable mouse actions for Firefox in JS sample.

New in MathGL 2.1.3 (May 13, 2013)

  • Functions SinFFT, CosFFT, Hankel and so on, become multi-threaded
  • Use DFT instead of FFT if GSL support is disabled (much slow!).
  • Add Join() function for joining mglData arrays
  • Add Roots() function for root finding of nonlinear equation using provided guess(es)
  • Add mglExprC for parsing formula with complex numbers
  • Correctly read #QNAN values in data files
  • Speed up Dots() drawing
  • Add flag to disable tick labels at axis origin (see SetOriginTick())
  • Add MGL commands 'origintick', 'tickshift'
  • WriteJSON now use zlib if filename end at 'z' (like "test.jsonz")
  • Make separate libmgl-mpi
  • Add SetAutoRanges() function (duplicate corresponding options)
  • Add JSON sample usage via QtWebKit (thanks to DATADVANCE)
  • Bugfixes and memory leaks

New in MathGL 2.1.2 (Feb 1, 2013)

  • Exclude "local" functions from resulting library.
  • String in MGL script now can be concatenated with another string or data/numbers (like 'max(u)=',u.max,' a.u.').
  • Bugfix for colors in 3D PDF.
  • Bugfix for drawing in MPI mode.
  • If Aspect() function have NAN argument(s) then it try to select optimal aspect ratio.
  • Option 'size' in Legend() now change only text size (not mark size).
  • Option 'meshnum' now influence on Boxs() and Belt() functions
  • Adjust marks drawing (line width and dots).
  • Minor improvements and bugfixes.

New in MathGL 2.0.3 (Jul 30, 2012)

  • Make code compilable by compilers GNU/MinGW GCC, Clang, MS VisualStudio
  • Add mglTriangulation() using s_hull_pro algorithm
  • Add mglData::Grid() and mglGraph::DataGrid() for filling regular data by values of triangulated surface
  • Add cmake options 'enable-png' and 'enable-zlib'
  • Add SetTimeUTC() for using UTC time instead of local one
  • Add SetTickShift() for additional shift of tick labels
  • Add mglGraph::MPI_Send() and mglGraph::MPI_Recv()
  • Vector plots now draw vector at edges, which are directed out of bounding box
  • Add gap between 1d plots for avoiding possible undetermined overlapping.
  • Add parallel build for documentation
  • Bugfixes for memory leaks and uninitialized variables
  • Bugfix for setting text size
  • Bugfix for handling NAN color value
  • Bugfix for missing lines in export to EPS/SVG

New in MathGL 2.0 Beta (Aug 23, 2011)

  • The structure of library is changed sufficiently.
  • There is unified class mglGraph instead of set of mglGraphZB, mglGraphPS, ... The qualityspeed level of plot is specified by SetQuality() function.
  • There is abstract class mglDataA which allow to derive classes with its own data representation. However, it is recommended to use mglData for usual cases -- it has a larger set of built in functions.
  • All plotting functions now have unified interface for arguments: data objects or numbers; string with style; string with options. Options (the same as ones in MGL v.1.*) allows one to make fine tuning of plot. I.e. easily set the range of coordinates, plot position, font size and so on.
  • The last big change is style representation.

New in MathGL 1.11.2 (May 31, 2011)

  • Added Quaternary coordinates
  • Bug fixes

New in MathGL 1.10 (Jan 6, 2010)

  • Change license from GPL to LGPL for MathGL core. SWIG-based interfaces still have GPL.
  • Add new plot BoxPlot() for plotting data statistic (max, min, median, quartiles).
  • Add formula for coloring like formulas for curvilinear coordinates.
  • Add C++ wrapper classes for C functions. These classes (mglDataW, mglGraph, mglParse) can be used even in MSVS naturally.
  • Add wxMathGL widget for wxWidgets library.
  • Sufficiently improve documentation.
  • Add speed up compilation (i.e. allow 'make -j3').
  • Add ObjId for determining the object (or line) of picture point.
  • Add ticks drawing for inverted axis (i.e. when Min>Max, not for log-scaled!).
  • Add drawing of log-scaled axis for case Min

New in MathGL 1.9 (Jul 3, 2009)

  • Improve export in EPS and SVG: lines are exported as single object, improve line dashing, text is exported by glyphs now.
  • Write new MGL parser which can handle arbitrary expression as argument for data and/or number.
  • Function mglGraph*::Window() now can handle NULL-pointer as function (draw built-in bitmap only).
  • The window can be created from Fortran programs too.
  • Add new plot Traj() for drawing vectors along the curve.
  • Add new plot ContD() for drawing solid contours with manual colors (useful for phase diagrams).
  • Add new plot Radar() for drawing radar chart.
  • Add new plot Flow(mglPoint p, ...) for drawing the flow thread from a point.
  • Functions mglGraph::Vect() now have additional argument for kind of vector plot. Correspondingly mgl_vect_*() functions now have additional argument too!
  • Add function mglGraph::Axis() for predefined curvilinear coordinates.
  • Add function mglData::SubData() for indirect access to the data elements.
  • Add function mglData::Trace() for getting diagonal elements.
  • Add function for manual setting of ticks/subticks line style.
  • Now you can set colors for multiple curves (palette) directly in function style, i.e. like gr->Plot(y,"rgb;").
  • Improve ticks drawing if RotatedText = false;
  • NOTE! Hide TickLen variable and change it to SetTickLen() function.
  • Also add additional argument to mgl_set_tick_len() function.
  • You can now select base type for floating point numbers (double or float).
  • Legend now is drawn flat (without any rotation).
  • Function mglData::Sew() now handle NAN values correctly.
  • Add MGL command types for further UDAV developping.
  • Line width now don't influence on text printing.
  • Bug correction in marker drawing for EPS, SVG.
  • Bug with not always defined mglGraph::id.
  • Bug correction in configure (older compiler support, wrong glut.h demand).
  • Bug in lang/CMakeLists.txt (for making Python interface).
  • Better support for isnan() function on different compilers.

New in MathGL 1.8.1 (Mar 6, 2009)

  • Add GIF animation features via functions StartGIF/NewFrame/EndFrame/CloseGIF.
  • Add new plot Tens() for tension plot (curve with variable color).
  • Add ColumnPlot function for making column of plots.
  • Add AdjustTicks function for automatic ticks adjusting for current axis ranges.
  • Add image export to GIF files.
  • Add NumPy import for Python interface.
  • Improve documentation (add descriptions of new functions; add sections about animation and about utilities).
  • Add new functions SetRanges(), SetAutoRanges() for setting axis ranges (Python style) and for setting ranges of automatic variables.
  • Add TickLen parameter for setting length of ticks/subticks
  • Colorbar now can have arbitrary size and position
  • Add mgl_set_[xyzc]ttw() functions into C/Fortran interface.
  • Add error message if string is not closed in MGL script.
  • Add data export functions from std::vector
  • Add new tool mgl2gif for exporting to GIF files (including animated GIF)
  • Add option -Lval for setting locale to val. Option is added to mgl2png, mgl2eps, mgl2cpp, mglview. For example, use "mglview fname -Lru_RU.utf8" for file in UTF-8 encoding.
  • Extend TriPlot() by adding manual coloring array (like SurfC()).
  • Extend Dots() by adding transparency for dots.
  • Improve STFA() by adding smoothed mask at the edges.
  • Improve tick labels drawing if RotatedText = false.
  • Add mglGraphAB::LastMousePos
  • Add argument to show window maximazed
  • Bug correction in configure script with unsual GSL setup.
  • Bug correction in configure script with extra Qt options.
  • Bug correction in subticks if ticks origin is specified.
  • Bug correction with MGL command 'call'.
  • Bug with subticks (having the same size as normal ticks).
  • Improve labels for curved coordinates.

New in MathGL 1.8 (Nov 27, 2008)

  • Create Python and Octave interfaces using SWIG. Generally interfaces for a set of languages (Java, Lisp, Perl, PHP, Tcl, R, Ruby, Modula3, C# and other SWIG supported) can be simply created by the same way.
  • MathGL documentation is completely rewritten for v.1.8. Now it is based on TeXinfo files and allows one to compile it in HTML, PDF and other formats. Also the structure of sections is sufficiently updated. New sections for Python, MGL and Samples are written.
  • Cmake build system is written. It should work even for Windows progrmas (like VisualStudio and so on). At this moment cmake-based build system is used as secondary one.
  • Add Qt interface:
  • New class QMathGL is added. This is the Qt widget for drawing MathGL graphics.
  • New class mglGraphQt is added for creating Qt window with MathGL plotting.
  • Add functions to make FLTK, QT & GLUT windows from Fortran programs.
  • Add new plot Barh() for horizontal bars.
  • Add new plot Region() for filling the area between 2 curves.
  • Add new plot Vect() for vector field by arrows which color and length depend on amplitude. At this old function Vect() (for vector field by hachures) was renamed to VectL().
  • Add Plot(), Surf() functions for plotting a curve or a surface defined by formula(s).
  • Add class mglDraw for simplification of setting drawing function for window creation
  • Add new functions for data handling:
  • Envelop() -for finding data envelop.
  • Sew() -for sewing data (removing phase jumps).
  • Evaluate() -for producing array interpolated by coordinates from other array(s).
  • Put() -for setting a values (as number or from array) for range of data.
  • Fill() -for filling by formula with coordinates x,y,z in specified range
  • Diff() -for finding derivative of parametrically specified data.
  • mglPDE() -for solving PDE in more or less general case.
  • mglRay() -for ray tracing (for finding trajectory in 3D space).
  • mglQO2d() -for beam tracing in 2D case (PDE solving in accompanied coordinates).
  • mglJacobian() -for evaluating Jacobian of coordinates transformation.
  • Add new function ShowImage() for displaying the current picture.
  • Color scheme will be without interpolation (color smoothing) if its style contain '|' symbol.
  • Color inside string can be changed by TeX-like commands color? or #? where ? is color id.
  • Function Bars() now draw boounding box of the rectangle if its style contain '#' symbol.
  • Function Chart() will not draw a peace if its color specification is ' '.
  • Add argument for line length in Legend()
  • Legend entry with empty style (i.e. "" but not NULL) is printed without indent.
  • Default mglGraph::Org value now is mglPoint(NAN,NAN,NAN), i.e. MathGL library try to select optimal axis origin position by default.
  • Add some utility functions:
  • Title() for printing the title of the plot
  • SetPalette() for simplifing palette setting
  • SetTicks() for setting the ticks easely.
  • SetTicksVal() for manual setting the position and the label of ticks
  • Ellipse() for drawing ellipsoid
  • Restore() for restoring transformation matrix after last InPlot()
  • Information about mouse click position is shown in widgets (if ShowMousePos=true)
  • Clean up C/Fortran interface: replace 'bool' to 'int' in C interface; add a lot of new interface functions; change the order of arguments in mgl_data_set_value().
  • Add MGL commands 'fplot', 'fsurf', 'fgets', 'export', 'import', 'write', 'region', 'title', 'sew', 'envelop', 'evaluate', 'put', 'palette', 'combine', 'pde', 'ray', 'qo2d', 'jacobian'.
  • Extend MGL commands 'info', 'fill', 'copy', 'diff'.
  • Add const modifiers everywhere.
  • Add default window functions in mglGraphAB (as base class).
  • Class mglFormula and functions for data extraction (like SubData, Hist and so on) now are thread safe.
  • Allow mglData::Resize() to have size=1.
  • Function mglSTFA() now normalize array on dn (for amplitude independency on value of dn).
  • Function mglData::Crop() now use relative second argument if it is

New in MathGL 1.7 (Sep 19, 2008)

  • User now can define its own MGL command (by changing mglParse::Cmd).
  • Export MGL script to C++ file for the most of commands (except 'list', 'delete', 'call', 'for|next') is possible.
  • New tool 'mgl2cpp' is added for exporting MGL script to C++ file.
  • Uniform interface for tools: mgl2png, mgl2eps, mgl2svg, mglview.
  • New command: 'define $N sth'.
  • New conditional commands: 'if|else|elseif|endif'.
  • New for-cycle commands: 'for|next'. Format is: 'for $N var' or 'for $N x1 x2 [dx]'. Do not work in UDAV for now!
  • Command [xyz]tick now has additional argument for the start position of ticks.
  • A set of MGL commands is extended by adding the new ones: 'mirror', 'face[xyz]', 'perspective', 'fit', 'fits', 'normsl', 'momentum', 'putsfit', 'rearrange', 'arrowsize', '[xyz]label', 'ctick'.
  • Unicode support in scripts.
  • Commands 'cont3' and 'contf3' now have variants for manual setting of contour level values.
  • New class mglGraphIDTF is added for exporting graphics in IDTF format (which can be converted later to U3D pictures for inserting in PDF)
  • New function mglGraph::Fit[23S]() is added for nonlinear fitting of data arrays.
  • New function mglGraph::PutsFit() is added for printing the fitted formula.
  • Color specification in color scheme (not in line style!) now supports "brighted" colors like "b1b2b3...b9". At this, color "b5" is equal to "b". Also, function mglColor::Set now has additional argument for "brightness" of the color.
  • Color scheme now may contain up to 32 colors.
  • New variable mglGraph::OrgT is added for manual setting of tick position (if OrgT.[xyz]!=NAN).
  • Improved algorithm for automatic axis positioning (if Org.[xyz]==NAN).
  • Function SubPlot() and MGL command 'subplot' now have arguments for additional relative plot shifting.
  • Class mglGraphGL is derived now from mglGraphAB. It slightly decreases its speed but allows to produce more similar plots.
  • New function mglData::Mirror() is added for mirroring data in some direction(s).
  • New function mglData::Rearrange() is added for rearrange data dimensions.
  • Tool 'mglview' now does not display info/error message about availible command-line arguments.
  • Centered labels now are drawn at sqrt(Min*Max) if dx (or dy, dz) is zero.
  • New functions FaceX(), FaceY(), FaceZ() are added as simplified interface to the Face() function.
  • New function mglData::NormSl() for data normalization slice by slice is added.
  • New function mglData::Momentum() for getting an array of data momentums along some direction is created.
  • New functions mglData::Insert*(), mglData::Delete*() are added for inserting/deleting slices in data arrays.
  • Font loading is speeded up and new function mglFont::Restore() is added.
  • Default font size is decreased.
  • New function mglFormula::CalcD() is added for evaluating the formula derivative over some variable.
  • Bounding box now is drawn along isolines in curvilinear coordinates
  • Bug/feature with legend option with included "'" is corrected.
  • Bug for partly ommitted points with NAN values returned by transformation formulas are corrected.
  • Bug with momentum evaluation along x-direction is corrected.
  • Bug with mglData::Squeeze() is corrected.
  • Added C/Fortran functions: mgl_restore_font(), mgl_subplot_d(), mgl_set_tick_origin(), mgl_data_norm_slice(), mgl_set_plotfactor(), mgl_data_mirror(), mgl_create_graph_idtf(), mgl_data_rearrange(), mgl_fit_*(), mgl_face*(), mgl_curve(), mgl_create_parser(), mgl_delete_parser(), mgl_add_param(), mgl_add_paramw(), mgl_add_var(), mgl_find_var(), mgl_parse(), mgl_parsew(), mgl_restore_once(), mgl_parser_allow_setsize().