[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The MathGL library has interfaces for a set of languages. Most of them are based on the C interface via SWIG tool. There are Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, and Tcl interfaces. Also there is a Fortran interface which has a similar set of functions, but slightly different types of arguments (integers instead of pointers). These functions are marked as [C function].
Some of the languages listed above support classes (like C++ or Python). The name of functions for them is the same as in C++ (see MathGL core and Data processing) and marked like [Method on mglGraph].
Finally, a special command language MGL (see MGL scripts) was written for a faster access to plotting functions. Corresponding scripts can be executed separately (by UDAV, mglconv, mglview and so on) or from the C/C++/Python/... code (see section mglParse class).
3.8.1 C/Fortran interface | ||
3.8.2 C++/Python interface |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The C interface is a base for many other interfaces. It contains the pure C functions for most of the methods of MathGL classes. In distinction to C++ classes, C functions must have an argument HMGL (for graphics) and/or HMDT (for data arrays), which specifies the object for drawing or manipulating (changing). So, firstly, the user has to create this object by the function mgl_create_*()
and has to delete it after the use by function mgl_delete_*()
.
All C functions are described in the header file #include <mgl2/mgl_cf.h>
and use variables of the following types:
HMGL
— Pointer to class mglGraph
(see section MathGL core).
HMDT
— Pointer to class mglData
(see section Data processing).
HMPR
— Pointer to class mglParse
(see section mglParse class).
These variables contain identifiers for graphics drawing objects and for the data objects.
Fortran functions/subroutines have the same names as C functions. However, there is a difference. Variable of type HMGL, HMDT
must be an integer with sufficient size (integer*4
in the 32-bit operating system or integer*8
in the 64-bit operating system). All C functions are subroutines in Fortran, which are called by operator call
. The exceptions are functions, which return variables of types HMGL
or HMDT
. These functions should be declared as integer in Fortran code. Also, one should keep in mind that strings in Fortran are denoted by '
symbol, not the "
symbol.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
MathGL provides the interface to a set of languages via SWIG library. Some of these languages support classes. The typical example is Python – which is named in this chapter’s title. Exactly the same classes are used for high-level C++ API. Its feature is using only inline member-functions what make high-level API to be independent on compiler even for binary build.
There are 3 classes in:
mglGraph
– provide most plotting functions (see MathGL core).
mglData
– provide base data processing (see Data processing). It have an additional feature to access data values. You can use a construct like this: dat[i]=sth;
or sth=dat[i]
where flat representation of data is used (i.e., i can be in range 0...nx*nx*nz-1). You can also import NumPy arrays as input arguments in Python: mgl_dat = mglData(numpy_dat);
.
mglParse
– provide functions for parsing MGL scripts (see MGL scripts).
To use Python classes just execute ‘import mathgl’. The simplest example will be:
import mathgl a=mathgl.mglGraph() a.Box() a.WritePNG("test.png")
Alternatively you can import all classes from mathgl
module and easily access MathGL classes like this:
from mathgl import * a=mglGraph() a.Box() a.WritePNG("test.png")
This becomes useful if you create many mglData
objects, for example.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Build Daemon user on December 22, 2013 using texi2html 1.82.