@c ------------------------------------------------------------------
@chapter Website
@nav{}

@menu
* Main::
* News::
* Features::
* Pictures::
@c * MGL scripts::
* Download::
* Other projects::
@end menu

@external{}

@node Main, News, , Website
@section MathGL is ...
@nav{}

@ifhtml
@html
<a href="Adding-fog.html"><img border="0" align="right" hspace="30" vspace="20" alt="Surface in fog" src="../small/fog-sm.png"></a>
@end html
@end ifhtml
@itemize @bullet
@item
a library for making high-quality scientific graphics under Linux and Windows;
@item
a library for the fast data plotting and data processing of large data arrays;
@item
a library for working in window and console modes and for easy embedding into other programs;
@item
a library with large and growing set of graphics.
@end itemize

Now MathGL has more than 35000 lines of code, more than 55 general types of graphics for 1d, 2d and 3d data arrays, including special ones for chemical and statistical graphics. It can export graphics to raster and vector (EPS or SVG) formats. It has Qt, FLTK, OpenGL interfaces and can be used even from console programs. It has functions for data processing and script MGL language for simplification of data plotting. Also it has several types of transparency and smoothed lightning, vector fonts and TeX-like symbol parsing, arbitrary curvilinear coordinate system and many over useful things. It can be used from code written on C++/C/Fortran/Python/Octave and many other languages. Finally it is platform independent and free (under GPL v.2.0 license).

There is a @uref{http://sourceforge.net/forum/?group_id=152187, forum} where you can ask a question or suggest an improvement. However the @uref{http://groups.google.com/group/mathgl, MathGL group} is preferable for quicker answer.

For subscribing to @uref{http://groups.google.com/group/mathgl, MathGL group} you can use form below
@ifhtml
@html
<form action="http://groups.google.com/group/mathgl/boxsubscribe">
Email: <input type=text name=email> <input type=submit name="sub" value="Subscribe">
</form>
@end html
@end ifhtml

@strong{About LGPL and GPL licenses.}
Generally, MathGL is GPL library. However, you can use LGPL license for MathGL core and widgets if you don't use SWIG-based interfaces and disable GSL features. This can be done by using @code{lgpl} option at build time. According this, I've added the LGPL win32 binaries into @ref{Download} page.

@strong{Latest news}
@itemize
@item @emph{16 May 2016.}
New version (v.@value{VERSION}@value{MINVER}) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are new functions, plot types and styles, improvement in MGL scripts and in mgltex, some speeding up and bugfixes, which denoted @ref{News, here}.
@item @emph{7 August 2014.}
New version (v.2.3) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are many major improvements for both MathGL core and for UDAV, which denoted @ref{News, here}.
@end itemize

There is detailed @ref{News, news list}. Sourceforge project page @uref{http://sourceforge.net/projects/mathgl/, here}.

@ifhtml
@html
<a href="http://www.datadvance.net"><img border="0" align="right" hspace="10" alt="DATADVANCE" src="../datadvance.png"></a>
@end html
@end ifhtml
Javascript interface was developed with support of @url{http://www.datadvance.net, DATADVANCE} company.

@external{}

@node News, Features, Main, Website
@section News
@nav{}

@itemize

@item @strong{16 May 2016.}
New version (v.2.3.5) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are new functions, plot types and styles, improvement in MGL scripts and in mgltex, some speeding up and bugfixes:
@itemize @bullet
@item Update @ref{LaTeX package} (thanks to Diego Sejas Viscarra)

@itemize @bullet
@item 
@code{\MGL@@codes}: Bugfix: category code for tabulators is changed too
@item 
@code{\MGL@@quality}: 9 is accepted as quality value now
@item 
@code{\MGL@@scale}: Now accepts any positive value
@item 
@code{\MGL@@test@@switch}: New command to verify and validate switching arguments
@item 
@code{\mglTeX}: Add a small negative space in the logo, between the "mgl" and "TEX" 
@item 
@code{\mglTeX}: Declared now as robust command
@item 
@code{\mglcomments}: Now accepts arguments 0 (equivalent to @code{off}) and 1 (equivalent to @code{on}), besides the usual @code{off} and @code{on}
@item 
@code{\mglgraphics}: New command options: @code{gray, mglscale, quality, variant}
@item 
@code{\mglname}: Now writes the MGL code line @samp{setsize 600 400} to the main script
@item 
@code{\mglplot}: Added @code{\bgroup} and @code{\egroup} in order to keep changes private
@item 
New command options: @code{gray, mglscale, quality, variant}
@item 
@code{\mglsettings}: Added options @code{gray} and @code{variant}
@item 
Now calls the @code{\mglswitch} and @code{\mglcomments} commands for the switch and comments options, respectively
@item 
@code{\mglswitch}: Now accepts arguments 0 (equivalent to @code{off}) and 1 (equivalent to @code{on}), besides the usual @code{off} and @code{on}
@item 
mglTeX now depends on the ifpdf package
@item 
Change definition of @code{\mglcommentname} from MGL comment to mglTEX comment
@item 
Introduce the concept of global, local and private settings in the documentation
@item 
New commands: @code{\mglgray} (to activate/deactivate) gray-scale mode locally, and @code{\mglvariant} (to set variant of arguments in MGL scripts locally)
@item 
New package option @code{9q} for setting quality to 9 (for testing purposes of the author)
@item 
New package options @code{0v, 1v, 2v} to select variant of arguments in MGL scripts
@item 
New package options @code{gray, color} to activate/deactivate gray-scale mode for graphics
@item 
Remove the @code{\MGL@@setkeys} command, since it isn’t needed as first thought
@item 
Rename @code{\MGL@@document@@scripts} to @code{\MGL@@doc@@scripts}
@item 
Rename @code{\MGL@@script@@name} to @code{\MGL@@script}
@item 
Rename command @code{\MGL@@graph@@ext} to @code{\MGL@@imgext}
@item 
Rename command @code{\mglcommonscriptname} to @code{\mglsetupscriptname}
@item 
Rename environment @code{mglcommon} to @code{mglsetupscript} (@code{mglcommon} is still available, but deprecated)
@item 
Rename family @code{MGL@@keys} as @code{MGL@@gr@@keys} for consistency
@item 
Reorganize and update documentation
@item 
Some minor bugfixes
@item 
The MGL code line @samp{setsize 600 400} is now automatically written to the main script in order for the scaling options and commands to work
@item 
@code{mgl}: New environment options: gray, mglscale, quality, variant
@item 
@code{\mglcode}: New environment options: gray, mglscale, quality, variant
@end itemize

@item
Add MGL command @ref{variant} to select proper variant of arguments (like @samp{var1?var2?var3?...}) in MGL commands.
@item
Remove limitation of maximal number (was 1000) of arguments for MGL commands. This is actual for 'list' command.
@item
Add mglWnd::Widget() for accessing widget which is used for drawing.
@item
Add @ref{gray} for producing gray-scaled image.
@item
Add MGL command @ref{setsizescl} for scaling all further @ref{setsize}.
@item
Add @ref{shear} for shearing plot.
@item
Add @ref{shearplot} for placing plots side-by-side with some shearing.
@item
Add @ref{limit} for limit maximal absolute value of data.
@item
Add @ref{tridmat} for tridiagonal matrix algorithm.
@item
Add MGL command @ref{diffract} for single step diffraction calculation.
@item
Add @ref{ifsfile} for reading IFS fractal parameters from *.ifs file.
@item
Add style @samp{*} for 2d versions of @ref{flow} to draw threads from points inside axis range.
@item
Add @samp{norm()} to the list of known functions
@item
Compatibility changes for MS VisualStudio, MacOS, Win64.
@item
Bugfix for legend export into EPS and SVG.
@item
Bugfix for importing data from std::vector.
@item
Improve Surf3*() drawing.
@item
Force NAN if divided by 0 in formulas.
@item
Option "-S" of mglconv now perform scaling in any cases
@end itemize

@item @strong{13 February 2016.}
New version (v.2.3.4) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are new functions, plot types and styles, improvement in MGL scripts and in mgltex, some speeding up and bugfixes:
@itemize @bullet
@item Update @ref{LaTeX package} (thanks to Diego Sejas Viscarra)

@item Add @ref{pmap} plot for Poincare map.
@item Add @ref{lamerey} plot for Lamerey diagram.
@item Add @ref{bifurcation} plot for Bifurcation diagram.
@item Add @ref{ifs2d} and @ref{ifs3d} functions for fractal generation using iterated function system (thanks to Diego Sejas Viscarra).

@item Add @ref{pulse} function for determining pulse parameters.
@item Add @ref{scanfile} function for getting formated data from textual file.
@item Add mglData::SetList() function for setting data from variable argument list of double values.
@item Add @ref{echo} command for printing the content of data.
@item Add @ref{print} command for print messages to stdout immediately.
@item Add @ref{pendelta} function for changing size of blur area around lines, marks, glyphs, ...

@item Allow MGL command @ref{save} to write/append strings to a file.
@item Add option to rewrite file in @ref{savehdf} command.
@item Add option to @ref{setsize} for scaling primitives without its erasing.

@item Add callback functions to mglQt, mglFLTK, and extend @ref{mglDraw class} for simpler drawing in parallel with calculation (see @ref{Draw and calculate}).
@item Force set focus for editor in UDAV.
@item Add line numbers to UDAV editor. Cyan number denote current line, red numbers denote lines with errors.
@item Disable mouse wheel for zooming in UDAV by default.

@item @strong{INCOMPATIBLE} Scale internally d1,d2 arguments in @ref{curve} to be exactly the same as Bezier curve (P0=p1, P1=d1+p1, P2=p2-d2, P3=p2).
@item Other minor improvements, bugfixes and compatibility changes
@end itemize

@item @strong{1 June 2015.}
New version (v.2.3.3) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are new functions, plot types and styles, improvement in MGL scripts and in mgltex, speeding up and bugfixes:
@itemize @bullet
@item Update @ref{LaTeX package} (thanks to Diego Sejas Viscarra)
@item Add @ref{surfca} and @ref{surf3ca} plots.
@item Add @ref{wavelet} transforms.
@item Add @ref{attachlight} for attaching light settings to inplots.
@item Add manual rotation angle for @ref{axis} ticks (by "value" option).
@item Add @code{mglDataS} class which is similar to std::vector<double> one.
@item Add missing @code{mglDataC} functions.

@item Add style '%' for color scheme along 2 coordinates (as in @ref{map}).
@item If tick template start with '&' then long integer is passed instead of double.
@item Add style 'V' for drawing @ref{text} centered vertically.
@item Add style "dN" in @ref{smooth} for averaging over (2*N+1)-th points.
@item Add TeX symbols "\quote", "--" and Cyrillic ones.

@item Add complex numbers in MGL -- any expression started with '!' will have complex value(s).
@item Add @ref{rkstep} command for Runge-Kutta step in MGL script.
@item Add functions 'min()', 'max()' to MGL parser and formula evaluation.
@item MGL command @ref{join} now can join arbitrary number of data arrays.
@item Command @ref{stop} is not required to be placed before @ref{func}.
@item Add warning about writing to temporary arrays in MGL scripts.
@item Names 'rnd','nan','inf' are reserved in MGL scripts now.

@item Add annotation for plot styles and options into header files.
@item Greatly improve the speed of formula parsing for MGL scripts
@item Update JS interface
@item Add binary font files for speeding up initialization and font loading
@item Exclude "pure" attribute for function due to compatibility reasons
@item Add mgl_set_size_scl() for additional scaling width and height of the image
@item Add options -S, -q for mglconv
@item Rearrange toolbuttons in @ref{UDAV}.
@item Bugfix for @ref{flow} and @ref{pipe} functions
@item Other minor improvements, bugfixes and compatibility changes
@end itemize

@item @strong{2 February 2015.}
New version (v.2.3.2) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are minor improvements and bugfixes:
@itemize @bullet
@item Update @ref{LaTeX package} (thanks to Diego Sejas Viscarra)
@item Add reading files with complex numbers by @ref{read} command.
@item Parallelize reading textual data files.
@item Add 'i','j','k' variables for data filling (see @ref{fill}).
@item Add saving images in QMathGL even if corresponding format support is disabled.
@item Add cmake option MGL_DEF_FONT to change default font name or use built-in one (if MGL_DEF_FONT is empty).
@item Compatibility changes and bugfixes.
@end itemize

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

@item @strong{7 August 2014.}
New version (v.2.3) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are major improvements and speeding up of core MathGL and UDAV.
@itemize @bullet
@item Add background image, which allow in particular semi-transparent background color. Correspondingly add function @ref{rasterize} for saving current image as background, and function @ref{background} for loading background image from PNG or JPEG file.
@item Add primitives to draw @ref{polygon} and angle @ref{arc}.
@item Allow arbitrary factor for axis ticks (like, @code{gr->SetTicks('x',M_PI,0,NAN,"\\pi");} or @code{@ref{xtick} pi '\pi'}).
@item Add function @code{AddTick()} for adding manual tick to the list of existed ones.

@item Add new styles and symbols:
@itemize
@item arrow style @samp{X} (see @ref{Line styles});
@item color gradient (color scheme) for text string (see @ref{Color scheme});
@item manual dash style, like @samp{@{df090@}} (see @ref{Line styles});
@item manual mask style, like @samp{@{s00ff00182424f800@}} (see @ref{Color scheme});
@item styles @samp{fFE0123456789+-} for printing numbers in functions @ref{axis}, @ref{colorbar}, @ref{table}, @ref{label};
@item style @samp{!} to disable ticks tuning in @ref{axis} and @ref{colorbar};
@item style @samp{!} to draw @ref{grid} lines at subticks coordinates too;
@item special symbol @samp{\b} which will be ignored at printing;
@item calligraphic TeX symbols, like @samp{\calB}, @samp{\calE}, @samp{\calF}, @samp{\calH}, @samp{\calI}, @samp{\calL}, @samp{\calM}, @samp{\calR}, @samp{\ell}, @samp{\scrg}, @samp{\scro}.
@end itemize

@item Add @ref{ode} solving functions for textual formulas.
@item Add function for global cubic spline interpolation, and function @ref{gspline} to refill data using global spline.

@item Add functions @code{random(dat)} and @code{gamma_inc(a,x)} to the list of known functions for formula parsing
@item Add @code{inf} variable to the MGL and formula parsing
@item Allow reading JPEG files for @ref{import}.
@item Function @ref{subdata} now can handle NULL argument(s). Add variants of @ref{subdata} with provided 1 and 2 arguments.

@item Warning messages and information are printed to @code{stderr} until call of @code{mgl_suppress_warn(true);} will disable it.
@item Add function @ref{version} to check if MathGL version is valid.

@item Add move constructor(s) if compiler support C++11 rvalues.

@item Changes in algorithms:
@itemize
@item Greatly increase speed of formula parsing (i.e. of functions @ref{modify}, @ref{fill} and similar), and speeding up many other places;
@item Improve algorithm for contours drawing and filling, taking special attention to quasi-random data;
@item Function @code{Spline()} now use 5-th order polynomials to keep continuity of 2nd derivative too;
@item Add function attributes @code{pure} or @code{const}, which potentially can speed up drawing;
@item Use spline instead of linear interpolation in functions @ref{flow} and @ref{pipe};
@item Adjust @ref{columnplot} and @ref{gridplot} positions for non-zero distance between the inplots;
@item Improve @ref{colorbar} labels drawing for the case of disabled label rotation;
@item Choose new scales for @ref{perspective};
@item Allow 'negative' angles for text rotation;
@item Use new s-hull version for triangulation.
@end itemize

@item Add @code{ViewAsRotate()} function which handle arguments of @ref{view} by the same way as @ref{rotate} function, i.e @code{View(tetx,tetz,tety)} <=> @code{ViewAsRotate(-tetz,-tetx,-tety)}.
@item Function @code{mglWindow::Adjust()} for Quality&4==0 now show image in widgets even if draw function is absent (i.e. =NULL).
@item 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).

@item Improvements in UDAV
@itemize
@item Rearrange tool buttons;
@item Add features for manual dashing and manual mask in Style dialog;
@item Add dialog for new dialog for new inplots (including @ref{subplot}, @ref{multiplot}, @ref{columnplot}, @ref{stickplot}, @ref{gridplot});
@item Add option to use dots plot at image refreshing (for faster rotation etc);
@item Add new primitives (@ref{arc}, @ref{polygon}, rotated @ref{text}) as mouse handled ones;
@item Add close button to data tabs;
@item Add button to stop script drawing and @code{stop()} slot for QMathGL;
@item Allow to delete/hide/unhide selected plot;
@item Allow to move selected plot between inplots;
@item Improve NewCommand dialog. Now it replace the script command if user change arguments only;
@item MGL commands @ref{perspective} and @ref{fog} now work correctly in UDAV;
@item Update icons to use Oxygen ones.
@end itemize
@end itemize


@item @strong{19 March 2014.}Version 2.2.2.1 was released.
@item @strong{10 March 2014.} Version 2.2.2 was released.
@item @strong{22 January 2014.} Version 2.2.1 was released.
@item @strong{11 November 2013.} Version 2.2 was released.
@item @strong{8 May 2013.} Version 2.1.3.1 was released.
@item @strong{2 May 2013.} Version 2.1.3 was released.
@item @strong{28 January 2013.} Version 2.1.2 was released.
@item @strong{24 December 2012.} Version 2.1.1 was released.
@item @strong{13 December 2012.} Version 2.1 was released.
@item @strong{23 August 2011.} Version 2.0.beta was released.
@item @strong{30 May 2011.} Version 1.11.2 was released.
@item @strong{8 November 2010.} Version 1.11 was released.
@item @strong{28 December 2009.} Version 1.10 was released.
@item @strong{8 July 2009.} Version 1.9 was released.
@item @strong{27 November 2008.} Version 1.8 was released.
@item @strong{5 June 2008.} Version 1.7 was released.
@item @strong{17 March 2008.} Version 1.6 was released.
@item @strong{11 January 2008.} Version 1.5 was released.
@item @strong{30 October 2007.} Version 1.4 was released.
@item @strong{15 October 2007.} Version 1.3 was released.
@item @strong{10 September 2007.} Version 1.2 was released.
@item @strong{23 May 2007.} Version 1.1 was released.
@item @strong{2 April 2007.} Version 1.0 was released.
@item @strong{24 January 2007.} First public release (v.0.8).
@end itemize

@external{}


@node Features, Pictures, News, Website
@section Features
@nav{}

MathGL can plot a wide range of graphics. It includes:
@itemize @bullet
@item
one-dimensional: Plot, Area, Bars, Step, Stem, Torus, Chart, Error, Tube, Mark, (@ref{1D plotting});

@item
two-dimensional plots: Mesh, Surf, Dens, Cont, ContF, Boxs, Axial, Fall, Belt, Tile, including surfaces transparent (SurfA) or colored (SurfC) by another data (@ref{2D plotting});

@item
three-dimensional plots: Surf3, Dens3, Cont3, ContF3, Cloud-like, including isosurfaces transparent (Surf3A) or colored (Surf3C) by another data (@ref{3D plotting});

@item
vector fields plots: vector fields Vect, Vect3 and Traj, flow threads Flow, flow pipes Pipe, mapping chart Map, and so on (@ref{Vector fields});

@item
and so on. See also @ref{Extra samples}.
@end itemize

In fact, I created the functions for drawing of all the types of scientific plots that I know. The list of plots is growing; if you need some special type of a plot then please email me @email{mathgl.abalakin@@gmail.com, e-mail} and it will appear in the new version.

I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap PNG, JPEG, TGA, BMP format, or in vector EPS, SVG or TeX format, or in 3D formats OBJ, OFF, STL or in PRC format.

All texts are drawn by vector fonts, which allows for high scalability and portability. Texts may contain commands for: some of the TeX-like symbols, changing index (upper or lower indexes) and the style of font inside the text string. Texts of ticks are rotated with axis rotation. It is possible to create a legend of plot and put text in an arbitrary position on the plot. Arbitrary text encoding (by the help of function @code{setlocale()}) and UTF-16 encoding are supported.

Special class mglData is used for data encapsulation. In addition to a safe creation and deletion of data arrays it includes functions for data processing (smoothing, differentiating, integrating, interpolating and so on) and reading of data files with automatic size determination. Class mglData can handle arrays with up to three dimensions (arrays which depend on up to 3 independent indexes @math{a_@{ijk@}}). Using an array with higher number of dimensions is not meaningful, because I do not know how it can be plotted. Data filling and modification may be done manually or by textual formulas.

There is fast evaluation of a textual mathematical expression. It is based on string precompilation to tree-like code at the creation of class instance. At evaluation stage code performs only fast tree-walk and returns the value of the expression. In addition to changing data values, textual formulas are also used for drawing in @emph{arbitrary} curvilinear coordinates. A set of such curvilinear coordinates is limited only by user's imagination rather than a fixed list like: polar, parabolic, spherical, and so on.

@external{}

@node Pictures, Download, Features, Website
@section Pictures
@nav{}

There are samples for @ref{1D data plotting, 1D arrays}, @ref{2D data plotting, 2D arrays}, @ref{3D data plotting, 3D arrays}, @ref{Vector fields plotting} and some @ref{Extra samples}.

@anchor{1D data plotting}
@subheading Examples of graphics for 1d arrays

@sfig{plot, Plot sample}
@sfig{radar, Radar sample}
@sfig{step, Step sample}
@sfig{tens, Tens sample}

@sfig{area, Area sample}
@sfig{region,Region sample}
@sfig{stem, Stem sample}
@sfig{torus,Torus sample}

@sfig{bars, Bars sample}
@sfig{barh, Barh sample}
@sfig{cones,Cones sample}
@sfig{chart,Chart sample}

@sfig{boxplot,BoxPlot sample}
@sfig{candle, Candle sample}
@sfig{tube, Tube sample}
@sfig{tape, Tape sample}

@sfig{error,Error sample}
@sfig{mark, Mark sample}
@sfig{textmark, TextMark sample}
@sfig{label,Label sample}

@anchor{2D data plotting}
@subheading Examples of graphics for 2d arrays

@sfig{surf, Surf sample}
@sfig{surfc,SurfC sample}
@sfig{surfa,SurfA sample}
@sfig{mesh, Mesh sample}

@sfig{fall, Fall sample}
@sfig{belt, Belt sample}
@sfig{boxs, Boxs sample}
@sfig{axial,Axial sample}

@sfig{dens, Dens sample}
@sfig{tile, Tile sample}
@sfig{tiles,TileS sample}
@sfig{grad, Grad sample}

@sfig{cont, Cont sample}
@sfig{contf,ContF sample}
@sfig{contd,ContD sample}
@sfig{contv,ContV sample}

@anchor{3D data plotting}
@subheading Examples of graphics for 3d arrays

@sfig{surf3, Surf3 sample}
@sfig{surf3c,Surf3C sample}
@sfig{surf3a,Surf3A sample}
@sfig{cloud, Cloud sample}

@sfig{densa, Dens3 sample}
@sfig{conta, Cont3 sample}
@sfig{contfa,ContF3 sample}
@sfig{dots,  Dots sample}

@sfig{dens_xyz, Dens projection sample}
@sfig{cont_xyz, Cont projection sample}
@sfig{contf_xyz,ContF projection sample}
@sfig{triplot, TriPlot and QuadPlot}

@anchor{Vector fields plotting}
@subheading Examples of graphics for vector fields

@sfig{vect, Vect sample}
@sfig{vecta,Vect3 sample}
@sfig{flow, Flow sample}
@sfig{pipe, Pipe sample}

@sfig{traj, Traj sample}
@sfig{dew, Dew sample}

@anchor{Extra samples}
@subheading Examples of additional features

@sfig{inplot, Subplots}
@sfig{axis, Axis and ticks}
@sfig{ticks, Axis and ticks}
@sfig{loglog, Axis and ticks}

@sfig{curvcoor, Curvilinear coordinates}
@sfig{colorbar, Colorbars}
@sfig{box, Bounding box}
@sfig{ternary, Ternary axis}

@sfig{text, Text features}
@sfig{legend, Legend sample}
@sfig{cut, Cutting sample}
@sfig{alpha, Transparency and lighting}

@sfig{type0, Types of transparency}
@sfig{type1, Types of transparency}
@sfig{type2, Types of transparency}
@sfig{fog, Adding fog}

@sfig{combined, ``Compound'' graphics}
@sfig{several_light, Lighting sample}
@sfig{stereo, Stereo image}
@sfig{primitives, Using primitives}

@sfig{stfa, STFA sample}
@sfig{dat_diff, Change data}
@sfig{dat_extra, Change data}
@sfig{map, Mapping visualization}

@sfig{hist, Making histogram}
@sfig{fit, Nonlinear fitting hints}
@sfig{pde, PDE solving hints}
@sfig{parser, Using MGL parser}

@external{}

@node Download, Other projects, Pictures, Website
@section Download
@nav{}

@strong{Stable version (v.@value{VERSION})}

You may download current version of MathGL for following configurations:
@itemize @bullet
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.tar.gz, Source} file with cmake build system.
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.i686.7z,Win32 GPL} binaries for MinGW (build for i686).
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.i386.7z,Win32 LGPL} binaries for MinGW (build for i386, no GSL and HDF5 support).
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.Win10-mingw.i386.7z,Win32 GPL} binaries for MinGW (build for i386). This should work on Windows 8 and Windows 10.
@c @item
@c @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-win64.7z,Win64 LGPL} binaries for MSVS 2010 (no GSL and HDF5 support)
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.eng.pdf,PDF} documentation in English.
@item
@uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}@value{MINVER}.7z, UDAV and utilities} with all required DLL files (build for i686).
@item
@uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}@value{MINVER}.Win10.7z, UDAV and utilities} with all required DLL files (build for i386). This should work on Windows 8 and Windows 10.
@item
@uref{http://downloads.sourceforge.net/mathgl/mathgl-doc-html-@value{VERSION}@value{MINVER}.7z, Archive} with HTML documentation and figures.
@c @item
@c @uref{http://downloads.sourceforge.net/mathgl/mathgl_slides-1.9.pdf,PDF} slideshow of main features
@end itemize

@strong{Font files}

There are a set of @uref{http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=267177,font files} for MathGL with following typefaces. Note, that the set of glyphs can be less than in default font. As result not all TeX symbols can be displayed.
@itemize @bullet
@item
@uref{http://downloads.sourceforge.net/mathgl/STIX_font.tgz,STIX} font -- default font for MathGL.
@item
@uref{http://downloads.sourceforge.net/mathgl/adventor_font.tgz,Adventor font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} sansserif font based on the URW Gothic L family (like Avant Garde Gothic).
@item
@uref{http://downloads.sourceforge.net/mathgl/bonum_font.tgz,Bonum font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} serif font based on the URW Bookman L family.
@item
@uref{http://downloads.sourceforge.net/mathgl/chorus_font.tgz,Chorus font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} font based on the URW Chancery L Medium Italic.
@item
@uref{http://downloads.sourceforge.net/mathgl/cursor_font.tgz,Cursor font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} monospaced serif font based on the URW Nimbus Mono L (like Courier).
@item
@uref{http://downloads.sourceforge.net/mathgl/heros_font.tgz,Heros font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} sansserif font based on the URW Nimbus Sans L (like Helvetica).
@item
@uref{http://downloads.sourceforge.net/mathgl/heroscn_font.tgz,HerosCN font} -- the "compressed" version of previous one.
@item
@uref{http://downloads.sourceforge.net/mathgl/pagella_font.tgz,Pagella font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} serif font based on the URW Palladio L (like Palatino).
@item
@uref{http://downloads.sourceforge.net/mathgl/schola_font.tgz,Schola font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} serif fonts is based on the URW Century Schoolbook L.
@item
@uref{http://downloads.sourceforge.net/mathgl/termes_font.tgz,Termes font} -- the @uref{http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html,TeX Gyre} serif fonts is based on the Nimbus Roman No9 L (like Times).
@end itemize

@external{}

@node Other projects, , Download, Website
@section Other projects
@nav{}

Except scientific (non public) projects I also have some general interest projects:
@itemize @bullet
@item
@uref{http://sourceforge.net/projects/pocketmk/, PocketMK} is small program for PocketPC which simulate famous Russian calculators MK-61 and slightly extend it.
@item
@uref{http://udav.sourceforge.net/,UDAV} is front-end for MGL scripts. It has windows interface for data viewing, changing and plotting. Also it can execute MGL scripts, setup and rotating graphics and so on.
@end itemize

Also I recommend to look at:
@itemize @bullet
@item
@uref{http://englab.bugfest.net/,EngLab} is a cross-compile mathematical platform with a C like syntax intended to be used both by engineers and users with small programming knowledge. It is extremely scalable and allows users and the community to easily compile their own functions as shared objects.
@item
@uref{http://threedepict.sourceforge.net/,3Depict} is software for analysis of scientific datasets commonly encountered in atom probe tomography. You can manipulate, interact with and analyse point based datasets.
@item
@uref{http://www.sourceforge.net/projects/graphplot/,Graphplot} is function plotter based on MathGL.
@item
@uref{http://www.sourceforge.net/projects/graphplot/,OscillViewer} is oscilloscope monitoring program. Working with L-Card 14-140 AD-Convertor. Based on Qt and MathGL libraries.
@end itemize

Finally, few links to free software and libraries:
@itemize @bullet
@item
@uref{http://www.thefreecountry.com/,thefreecountry.com} have a lot of Free Programmers', Webmasters' and Security Resources
@item
@uref{http://gnuwin32.sourceforge.net/,GnuWin} provides ports of tools with a GNU or similar open source license, to modern MS-Windows.
@item
@uref{http://loll.sourceforge.net/,LLoL} is project collecting, organising, classifying, and maintaining important URLs about Linux and the Open Source movement for all levels of Linux users. The LoLL project now has 4000+ links which are updated usually on a daily basis.
@end itemize

@external{}
