Provided by: libploticus0_2.42-4.2_amd64 bug

Name

       Libploticus - C language API library for ploticus

Description

       This  simple  C  language  API has all of the funcionality of the  ploticus program and is
       similarly covered by the General Public License.

       libploticus is built using Makefile.

          make clean
          make FPIC=-fPIC libploticus-so

       Applications linking to libploticus may need additional libraries such as zlib,  but  this
       depends  on  exactly how libploticus was built.  The specifics are noted in Makefile.  The
       externally visible symbols in libploticus begin with these prefixes:  ploticus,  PL,  TDH,
       DT, and GL.

       The header file libploticus.h is required to avoid compiler warnings.

       All functions return 0 when successful, or a non-zero error code.

       As  of  version  2.11  multiple  sequential  plot  "jobs"  can be performed by a single OS
       process.  Each plot job should begin with a ploticus_init()  call  and  terminate  with  a
       ploticus_end() call.

       No attempt has been made to write libploticus as thread-safe.

       As of version 2.40 script lines can no longer be passed as string constants.

Examples

       Here's a simple example (it may be found in ./pltestsuite/api_examp.c)
          main()
          {
          int stat;
          char sln[80];
          stat = ploticus_init( "png", "hello.png" );
          stat += ploticus_arg( "-scale", "0.8" );
          if( stat != 0 ) {
            printf( "error in ploticus setup\n" );
              exit(1);
              }
          strcpy( sln, "#proc annotate" ); ploticus_execline( sln );
          strcpy( sln, "location: 2 2" ); ploticus_execline( sln );
          strcpy( sln, "text: hello" ); ploticus_execline( sln );
          strcpy( sln, " world." ); ploticus_execline( sln );
          ploticus_end();
          }

Multi-job example

       Another  included example, which invokes a series of 25+ plot jobs, is in ./src/api_test.c
       To build:

          make clean
          make -f Makefile_api
          make api_test -f Makefile_api
       Then, go to the pltestsuite directory and type: ../src/api_test

libploticus API

       ploticus_init( char *device, char *outfilename )

              Initialize, read your  ploticus config file if any, and set the  output  device  to
              one  of  png, gif, x11, svg, jpeg, eps, or swf.  (Not all devices may be available,
              depending on the build.)  outfilename is the pathname of the file where the  result
              will be written.  Example:
                 stat = ploticus_init( "png", "bargraph.png" );
                 if( stat != 0 ) error

       ploticus_arg( name, value )

              Specify a  pl command line argument.  name specifies the argument name and value an
              argument value.  If there is no argument value, value should be passed as "".   All
              arguments  are  supported  except  -f, -prefab, and -ver.  If needed, this function
              should be called after ploticus_init() but before any other ploticus function.   It
              may be called as many times as necessary.  Example:
                  stat = ploticus_arg( "-debug", "" );
                  stat += ploticus_arg( "-diagfile", "stdout" );
                  stat += ploticus_arg( "-scale", "0.8" );
                  if( stat != 0 ) error

       ploticus_begin( )

              This function is no longer necessary.  Old code that uses it will still be OK.

       ploticus_execline( char *line )

              Interpret  one  "raw"   ploticus  script  line.   Typically  called multiple times,
              allowing ploticus scripts to  be  generated  programmatically.   Script  lines  can
              contain only these directives:  #proc,  #procdef,
               #endproc,  #clone and  #saveas.  You can't use set, if/else, loops, or other flow-
              of-control directives (but these types of  things  can  be  handled  by  your  host
              application).   Further,  these  script  lines do not undergo a variable-evaluation
              pass, so  variables  cannot  be  referenced,  and  select  statements  (etc.)  that
              reference data field names should use one at sign (@) instead of two (@@).  If your
              program needs to access a variable that has been set by the  ploticus  engine,  use
              ploticus_getvar(), described below.  The script line may include a trailing newline
              or not.

              An alternative is to use ploticus_execscript()  (described  below)  to  execute  an
              entire    script    file.     You    can't   use   both   ploticus_execline()   and
              ploticus_execscript() in the same application.

              Caution As of ploticus version 2.40 string  constants  cannot  be  passed  in  this
              function.  See the example in the page intro above.

       ploticus_execscript( char *scriptfile, int prefabflag )

              Interpret  an  entire   ploticus script file or  prefab.  scriptfile is the name of
              the  ploticus  script  file.    There   are   no   syntax   limitations   as   with
              ploticus_execline().   prefabflag  is 1, then scriptfile is taken to be a  ploticus
              prefab name such as vbars.  If  prefabflag  is  0,  then  scriptfile  should  be  a
              pathname.

              An  alternative is to use ploticus_execline() (described above) to execute program-
              generated  "raw"  script   lines   one   at   a   time.    You   can't   use   both
              ploticus_execscript() and ploticus_execline() in the same application.

              Example: stat = ploticus_execscript( "vbars", 1 );
              Example: stat = ploticus_execscript( "/home/steve/plfiles/myscript.pl", 0 );

       ploticus_end()

              Finish  up  the  graphic result, write it to the output file, and free up allocated
              memory.

These functions are also available:

       ploticus_getvar( char *name, char *value )

              Get the contents of ploticus variable name.  Result is copied into value.
              Example: stat = ploticus_getvar( "XFINAL", xf );

       ploticus_setvar( char *name, char *value )

              Set ploticus variable name to value.

       gdImagePtr PLGG_getimg( int *width, int *height )

              Returns a  pointer  to  the  working  GD  image,  for  situations  where  the  host
              application  wants to directly issue gd drawing calls.  The width and height of the
              working image (in pixels) are  also  provided.   Note  that  the  result  image  is
              generally  cropped  based  on  the extent of ploticus drawing actions, before being
              written out.   Only  valid  in  applications  built  with  GD,  when  ploticus  was
              initialized with one of the GD image devices (eg. png or jpeg).

                         11-MAR-2009   PLOTICUS ploticus.sourceforge.net           libploticus(3)