1.9 Released 1 July 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. 1.8.1 Released 4 March 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. 1.8 Released 26 November 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 <=0. - Functions [XYZC]Range() now have 3d argument for increase the range by value (Max-Min)*fact. - Functions mgl_tile_r*() are renamed to mgl_tiles*(). - Variable mglGraph::TickStr is removed. Use mglGraph::SetTicksVal() instead. - Function mglGraph::WriteTIFF() is removed. - Bug with wrong normales at points on bounding box in Surf3*() is corrected. - Bug with non-visible marks into the legend is corrected. - Bug of not-drawn quads with the same vertexes is corrected. - Bug with colors in WriteBMP() is corrected. - Some other minor bugs are corrected. 1.7 Released 1 June 2008 - MGL parser is sufficiently rewritten: * 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]'. * 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(). - Updated Pascal interface. 1.6.2 Released 5 April 2008 - Add recognition of TeX commands: \frac, \stack, \stackr, \stackl, \overset, \underset. - Redefine strdup, wcsdup for compatibility with MS Visual Studio. - MGL command 'ball' now have variant ball x y ['color'] - MGL command 'curve' now have 2D variant - Add MGL command 'readmat' for reading data file with sizes specified at beginning - MGL commands 'readmat', 'readall', 'hist', 'max', 'min', 'sum', 'resize' now create the output array automatically. - Add C/Fortran functions mgl_tile_r*(), mgl_stfa*(). - Bug (in v.1.6.1) with log-axis ticks is corrected. - Bug (in v.1.6.1) with user-defined colors is corrected. - Bug with mglData::Hist is corrected. 1.6.1 Released 2 April 2008 - Support of named columns * Column names recognition in mglData::Read(). The string with ## supposed to contain the column name (id) -- character from 'a' to 'z'. * New functions mglData::Column(), mglData::SetColumnId() for named columns handling. * Column function (like "plot a('t') a('p*b')") in MGL scripts. - New plot STFA() is added for spectrogram - New plot TextMark() is added for drawing textual (including LaTeX) symbols at point position. - Extend plot Tile for drawing tiles with variable sizes - Extend plot Bars() for drawing bars side-by-side or one-above-one. - New function mglData::ReadMat() is added for reading data from text file with sizes specified at beginning. - New function mglFont::Copy() for copying font data from other instance. - New functions (mgl_copy_font, mgl_textmark_*, mgl_textmarkw_*, mgl_data_column, mgl_data_set_id) for C/Fortran interface are added. - Improve color Ids so that user may change it (for example, add new color). - Improve TeX symbol parsing. - Improve log-axis ticks. - Improve text in Legend(). - Improve Window() functions (for FLTK and GLUT) so that argc, argv can be NULL now. - Add "smoothing" for edges of cutted surfaces. - Symbol '#' in line style now switch on the filling of markers. - Add 'marksize' option in MGL scripts for changing MarkSize for single plot only. - Add 'legend' option in MGL scripts for adding plot annotation. - New MGL command 'textmark' is added. - Command 'legend' now have variant for arbitrary position of legend. - Bug with ctt is corrected. 1.6 Released 13 March 2008 - The font parsing and printing codes are completely rewritten * Unicode supprot is added for all functions which print/draw the text. * The class mglFont is completely rewritten for handling new format of solid/wire fonts with UTF glyphs. * The set of recognized TeX symbols and commands is extended. * It is possible now to use different font typefaces in MathGL. * Tools for making solid/wire font files from *.otf, *.ttf and so on files are added. * Function mglFont::Load always sets locale LC_NUMERIC to "C". * Internal font has limited set of characters and no italic/bold symbols. This font is used as default under MS Windows. - The structure of library is reorganized * Header files now are placed in mgl/ subdirectory. * Classes mglGraphFLTK and mglGraphGLUT are extracted as separate dynamic libraries. You should use linker keys -lmgl-fltk or -lmgl-glut for linking them. * The linker key -lmgl is self-consistent and does not need any additional libraryes for linking. * Modules for writing to JPEG or TIFF files are extracted as separate dynamic libraries. * Classes mglGraph and mglGraphAB are pure classes now. - New class mglGraphFLTK for making window with bitmap graphics (including frames and animation) is added. Each class instance may have only one window. However, several instances (windows) can be in application. You should call mglFlRun() at the end for starting FLTK message handling cycle. - New class Fl_MathGL is added. This class is FLTK widget for drawing plots by help of MathGL. - New tool 'mglview' showing MGL script in FLTK window is added. - New function Perspective() switching on/off the perspective in the plot is added . - New function Cone() for the truncated cone drawing is added. - New functions mglData::ReadAll(), mglData::ReadRange() for data reading from a set of files into one mglData object are done. - New function STFA() for Short Time Fourier Analysis is added. - New variables PlotFactor and AutoPlotFactor for picture overall sizing (some analogue of Zoom() function) are added. - New variable mglGraph::WarnCode contains numerical ID of warnings (in some sence it duplicates mglGraph::Message). - TuneTicks flag now influences on Colorbar ticks also. - New variable FactorPos displaying the factor position of axis ticks (0 at Min, 1 at Max, 1.15 is default) is added. - New variable mglGraph::AutoOrg for shifting Org automatically if it lies outside Min ... Max range is added. - Origin of axis is automatically shifted for better view if Org.[xyz] = NAN. - New variable mglGraphGLUT::AutoClf for switching on/off automatic Clf() (picture clearing) between drawing (in GLUT and FLTK windows) is added. - CloudQ plot now uses interpolated color scheme even if it lies inside the face. - New functions for data loading from gsl_vector * and gsl_matrix * are added. - New functions SetFontSizePT(), SetFontSizeCM() and SetFontSizeIN() for setting FontSize in pt, cm and inches are added. - New variable CirclePnts for setting the number of points in circle drawing (like Tube(), Sphere(), Drop(), Cone()) is added. - New MGL commands 'cone', 'readhdf', 'savehdf', 'stfa', 'plotfactor' - New functions mgl_set_draw_face(), mgl_create_graph_fltk(), mgl_fltk_run(), mgl_tune_ticks(), mgl_data_set_value(), mgl_data_get_value(), mgl_set_zoom(). - Uniform interface for writting in bitmap files (PNG, BMP, JPEG, TIFF) is created. - Rare bug with alpha channel overflow in mglGraphZB is corrected. - Bug with Transform() is corrected for multidimensional arrays. 1.5 Released 8 January 2008 - User may now set the format for tick labels by templates mglGraph::xtt, mglGraph::ytt, mglGraph::ztt or by user-supplied function mglGraph::TickStr. If one of these variables are not NULL then for that axis flag mglGraph::TuneTicks=false. - New function Pipe() is added for the drawing of flow pipes for vector fields. - New functions Sphere() and Drop() are added. - New function Dew() is added for the drawing of vector fields by drops (like dew-drops under wind). - Operators for class mglPoint (longitudinal and transverse component, perpendicular vector, vector product) are added. - New MGL commands (sphere, drop, dew) are added. - MGL commands [xyz]ticks now may have string as an argument for the setting of template of tick labels. - MGL command norm has now additional argument for applying changes for slices >= its value. - MGL command fill has now additional argument for direction of filling. - Functions NewFrame(), EndFrame() are now defined for class mglGraphGL also. - Class mglGraphGL (OpenGL mode) has now fog, arrows and curved text features. - Class mglGraphPS (EPS and SVG files) has now fog feature. - Bug with Surf3() for extremly irregular data is corrected. - Bug with undefined Fog variables is corrected. 1.4.3.1 Released 24 December 2008 - Bug with mglGraphGLUT (under MS Windows) - Bug with Fortran subroutines: mgl_label_ext() and mgl_text(). - Update verson number (inside help string) for mgl2png, mgl2eps, mgl2svg. - Rename back mglGraph::MessageBuf to mglGraph::Message (for compatibility with UDAV v.0.2). - Add file with examples for mglGraphGLUT. 1.4.3 Released 18 December 2008 - Fortran interface for most of functions is added. - New function mglGraph::Ternary() for switching on/off the drawing of Ternary plot is added. - New function mglGraph::Fog() for the fog imitation on picture is added. - New commands "ternary" and "fog" are added to MGL scripts. - Correct line dashing in EPS and SVG files. - Capital letters ("XYZ") in Axis() function argument change shift to -shift for ticks and labels. - New function mglGraph::CutOff() is added for cutting off arbitrary region of 3D space, specified by a formula. - New function mglGraph::WriteBMP() is added. - Symbol ':' (if present) now terminates the color scheme specification for all cases. - The lightning in zoom mode is improved. - Formulas now give NAN value for points lied out of range of function definition. - Orts in mglGraph::Beam() are swapped. - Some changes for compatability with MacOS and MS Visual Studio are done. - Variable FILE *mglGraph::Message is changed to char *mglGraph::MessageBuf. 1.4.2 Released 21 November 2007 - The order of arguments in [xyz]range options now set the invert or not the auto-filled coordinate of plots. - Speed up drawing (especially with DrawFace=false). - Command modify now has optional argument vdat and wdat for using in formulas. - New functions mglData::Modify() are added for using of several data arrays in formulas (variable names are 'v' and 'w'). - The library is compatible now with MS Visial Studio. - New functions mglData::Find() are added for the search of values satisfying the condition. - Change mglData::Resize() to keep values at boundaries. - New command map is added for MGL scripts. - New command once is added for MGL scripts. The code between once on and once off is executed only one time. - Flag DrawFace=false now sets to draw wire surfaces in all cases except isosurfaces (Axial(), Surf3*()) and Crust(). - Puts and Label functions now have argument for additional shifting of text (label). - Error with marks drawing for dashed lines is corrected. - Error with tuned ticks along y- and z-direction is corrected. 1.4.1 Released 14 November 2007 - If minimal and maximal values of a range are equal then they are ignored in mglGraph::Axis() function. I.e. it is possible to use Axis(mglPoint(x1,y1),mglPoint(x2,y2)); to set boundaries of plain (on X-Y plane) plot. - Ticks looks better now for small (like, from 0.001 to 0.002) or large (like, from 1000 to 2000) coordinate values and for narrow range (like, from 0.999 to 1.000). To disable this feature use mglGraph::TuneTicks=false. - Lines, text and marks now are smoothed (if MGL_SIMPLE_LINE is not defined) - MathGL is now compatible with 64-bit operating systems. - A numerical value (a number) can be extracted from variables in MGL scripts with the help of suffix: * for sizes -- .nx, .ny, .nz * for maximum position -- .mx, .my, .mz * for average -- .ax, .ay, .az, .aa * for widths -- .wx, .wy, .wz, .wa * for skewness -- .sx, .sy, .sz, .sa * for kurtosis -- .kx, .ky, .kz, .ka * for maximum and minimum -- .max, .min * for sum of all element -- .sum - The error concerned with the script drawing with [xyz]range options exceeding the axis range is corrected. - The look of legend and ticks is improved. - Log-scaled ticks now is drawn correctly. - New command info is added in MGL script. - New variable mglGraph::Message is added for the handle of warnings output (set to 0 to disable warnings). - All MathGL drawing functions now tell (by using mglGraph::Message) the matter why the plot is absent. - Negative font size values are now equal to |size|*FontSize in all cases. - The order of rows in GetBits() and GetRGBA() functions are inverted (for simpler window drawing). - A short built-in instruction for mgl2png, mgl2eps, mgl2svg programs is added. 1.4 Released 30 October 2007 - New function WriteSVG() is added for exporting graphics to SVG files (actually work only in mglGraphPS class). New interpreter mgl2svg is added. - All MGL script commands now may have options, which change some general behavior for particular command (plot). The options are: crange, xrange, yrange, zrange, alpha (or alphadef), meshnum, cut, fontsize, ambient. Each option should be delimited from previous text by symbol ';'. - Argument of script commands can now contain subarrays (like "plot a(:,1)") - MGL scripts now can have external arguments (string $1, $2, ... $9 in script). Argument values added by mglParse::AddParam() function. - Font definition string now may contain color specification after symbol ':'. - Optional symbol 't' in the string argument of mglGraph::Cont(), mglGraph::Cont3(), mglGraph::ContA() plots set to draw contour values near contour line. - New functions mglGraph::ContFX(), mglGraph::ContFY(), mglGraph::ContFZ(), mglGraph::ContF(), mglGraph::ContF3(), mglGraph::ContFA() are added for for plotting solid contours. - New function mglGraph::Crust() is added for plotting reconstructed surface (crust) for points (it work but not so fine). - New function mglGraph::Dots() is added for plotting dots in space. - New function mglGraph::TriPlot() is added for drawing triangle surface or mesh (if symbol '#' is specified). - New function mglGraph::Mark() is added for drawing marks with variable sizes. - New function mglGraph::Tube() is added for drawing tube with specified radius along the curve. - New function mglGraph::Text() is added for printing text along the curve. - New function mglGraph::Beam() is added for making isosurfaces of beam amplitude in curvilinear coordinates. - New function mglGraph::Zoom() is added for zoom in/out a part of picture. - New flag mglGraph::DrawFace is added for exclude face drawing (faster plotting during rotation and so on). - Number of cells in mglGraph::CloudQ() plot and number of hachures in mglGraph::Vect(), mglGraph::VectC() plots depend now on value of mglGraph::MeshNum. - New commands chdir, stop and call are added to MGL scripts. - MGL commands xrange, yrange, zrange, crange now may have 2 numbers as arguments. - Points with nan values are not drawn (are ignored) now. - PNG pictures is saved now with transparent background by default. - Some errors are corrected. - Section " is added to chapter " of documentation. - Current changes concerning new functions are added in the library documentation. 1.3 Released 8 October 2007 - New script language MGL is introduced. - New class mglParse is added for string-by-string parsing and executing of MGL scripts. - New function mglGraph::Exec() is added for executing of script commands. - Logical operators are to textual formula parsing in class mglFormula. - Function mglData::Transpose() now have textual argument which specify new order of dimensions after transposing. - New function mglData::Extend() is added for extending (increasing) the dimensions of data array. - A function for EPS export is excluded from mglGraphGLUT class. - Parameter \textit{dir} of functions mglGraph::Belt() and mglGraph::Fall() is excluded. Corresponding flag now is included in string argument of these functions. - Rotation direction in mglGraph::Torus() and mglGraph::Axial() now can be specified in string argument. - Function mglGraph::Bars() does not draw marks of points now. - Black color is changed to dark gray in color palette for 1d plots. - The algorithm of equations parsing is changed. - Some errors are corrected. - The chapter "Script language MGL" is added to the library documentation. - Sections about the using of transparency and pure C interface are added to chapter "Examples" of the library documentation. - Current changes concerning new functions and so on are added to the library documentation. 1.2.2 Released 26 September 2007 - Add functions mglData::Hist() for creating histogram (distribution) of data values - Add function mglGraph::Curve for drawing spline (like Bezier curve). - Rewritten mglGraph::Line function. - Add new variable mglGraph::BaseLineWidth for setting base width of lines. Useful for large bitmap pictures. - Add arrow styles "AKDTVISO_" in line parameters (see mglGraph::SelectPen, now not supported in OpenGL mode). - Add variables CutMin, CutMax for cutting off a point in some area. Useful for isosurface plots. - New function mglGraph::Tile is added for drawing surface of horisontal tiles. - New function mglGraph::Error is added for drawing error boxes of data points. - New function mglGraph::Chart is added for drawing charts. - Size of marks now depend on relative size of plot (depend on SubPlot or InPlot calls). - Add function for switching on/off light source separately. 1.2.1 Released 14 September 2007 - Autoconf/automake transition (thanks to D. Kulagin) 1.2 Released 10 September 2007 - New variant of library also use dynamic linking - Autoconf script is written for Linux mode (thanks to D. Kulagin) - Corrected Colorbar drawing. - New function mglGraph::Belt is added for drawing 2D plot of belts. - New functions XRange, YRange, ZRange are added for automatic determining scales on x-, y-, z-directions on base of data values. - New variable AxialDir is added for specifing direction of rotation in Axial and Torus plots. - Added logaritmic-like ticks drawing on axis if mglGraph::dx, mglGraph::dy or mglGraph::dz is equal to zero. - Flag LegendBox is added for switching on/off box drawing in legend. - Character '_' in string argument of mglGraph::Axis(char *) function disable tick numbers drawing. - Add function mglGraph::Ambient for brightness of ambient light (surface color) - New parameter added to Light function for brightness of light source - Variable mglGraph::font is renamed to mglGraph::FontDef - Rewritten mglData::Read function to be compatible with Windows Vista - Add function for export/import data to bitmap picture (now only in PNG format) - Rewritten method of automatic tick labels rotation on axis - Add functions mglData::Momentum() for data momentum (average, width, skewness and so on) evaluation - Add functions to find position of data maximal or minimal value, including its interpolated position - An "Pure C interface" section is added in documentation. - An "News" section is added in documentation. - Some errors are corrected and minor optimization are done. 1.1 Released 23 May 2007 - New class mglGraphPS is written for image exporting to vector EPS file. - New waterfall-like plot is added for 2D data (see mglGraph::Fall). - New Surf3C plot is added for isosurface coloring by other data. - New function for distribution (histogram) creation is added (see mglData::Hist). - New function for data cropping is added (see mglData::Crop). - Variable mglGraph::MeshNum is added for setting desired number of lines in Grid and Mesh plots. - Surface lightning is smoothed in ZBuffer mode. - Lightning formula is changed to agree with OpenGL mode. - Flag '#' is added to surface plots. It draws grid (or mesh) on 2D plots and switches off face drawing for isosurfaces (set wire drawing). - Flag 'sum' is added to Area plot. - Pure C/Fortran interface is written. - Documentation is sufficiently rewritten and extended. - Documentation on Russian is added. - Some errors are corrected. 1.0 Released 2 April 2007 - Improved speed of expression parsing. - The SurfA function for the plotting of surface with transparency determined by other data is added. - The Torus function for the plotting of surface which is result of the curve rotation is added. - Corrected contour plotting procedure. - Extended library documentation. - Slightly improved speed of ZBuffer drawing. 0.9 Last beta version of the MathGL library. Released 2 March 2007 - Rewritten low-level primitive drawing in ZBuffer mode. - Improved surface look in ZBuffer mode. - Improved speed of drawing and formulas evaluation. - 2 additional types of transparency: like glasses and like superposition of light sources (only in ZBuffer mode). - Corrected Colorbar drawing in OpenGL mode. 0.8.1 ZBuffer drawing was written. Released 19 Febriary 2007 - Correct using of the color array under MESA (Linux). - ZBuffer plotting functions are sufficiently rewritten. - A text drawing in ZBuffer mode is added. - A colorbar drawing in ZBuffer mode is added. - All images for documentation are moved in images/ subdirectory. - An example section is added in documentation. - The colorbar description is added in documentation. 0.8.0 First public release