The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#if !defined( GRF_INCLUDED ) /* Include this file only once */
#define GRF_INCLUDED
/*
*+
*  Name:
*     grf.h

*  Type:
*     C include file.

*  Purpose:
*     Define the interface to the grf module

*  Invocation:
*     #include "grf.h"

*  Description:
*     This include file defines the interface to the grf module and
*     provides the type definitions, function prototypes and macros, etc.
*     needed to use this module.

*  Inheritance:
*     The grf module is not a class and does not inherit.

*  Copyright:
*     Copyright (C) 1997-2006 Council for the Central Laboratory of the
*     Research Councils

*  Licence:
*     This program is free software; you can redistribute it and/or
*     modify it under the terms of the GNU General Public Licence as
*     published by the Free Software Foundation; either version 2 of
*     the Licence, or (at your option) any later version.
*
*     This program is distributed in the hope that it will be
*     useful,but WITHOUT ANY WARRANTY; without even the implied
*     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
*     PURPOSE. See the GNU General Public Licence for more details.
*
*     You should have received a copy of the GNU General Public Licence
*     along with this program; if not, write to the Free Software
*     Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
*     02110-1301, USA

*  Authors:
*     DSB: David S. Berry (Starlink)

*  History:
*     27-JUN-1996 (DSB):
*        Original version.
*     25-OCT-1996 (DSB):
*        Primatives macros defined, extra parameter added to astGAttr.
*     17-FEB-2006 (DSB):
*        Added GRF__ESH and GRF__ESG.
*-
*/

/* Constant Values. */
/* ================ */
/* Values identifying different graphics attributes. */
#define GRF__STYLE  0
#define GRF__WIDTH  1
#define GRF__SIZE   2
#define GRF__FONT   3
#define GRF__COLOUR 4

/* Values identifying different graphics primatives. */
#define GRF__TEXT 0
#define GRF__LINE 1
#define GRF__MARK 2

/* The number of different graphics attributes */
#define GRF__NATTR 5

/* Values identifying capabilities */
#define GRF__ESC     0
#define GRF__MJUST   1
#define GRF__SCALES  2

/* Values identifying types of graphics escape sequence */
#define GRF__ESPER 1
#define GRF__ESSUP 2
#define GRF__ESSUB 3
#define GRF__ESGAP 4
#define GRF__ESBAC 5
#define GRF__ESSIZ 6
#define GRF__ESWID 7
#define GRF__ESFON 8
#define GRF__ESCOL 9
#define GRF__ESSTY 10
#define GRF__ESPOP 11
#define GRF__ESPSH 12
#define GRF__ESH   13
#define GRF__ESG   14

/* Function prototypes. */
/* ==================== */
int astGAttr( int, double, double *, int );
int astGScales( float *, float * );
int astGBBuf( void );
int astGEBuf( void );
int astGFlush( void );
int astGLine( int, const float *, const float * );
int astGMark( int, const float *, const float *, int );
int astGQch( float *, float * );
int astGText( const char *, float, float, const char *, float, float );
int astGTxExt( const char *, float, float, const char *, float, float, float *, float * );
int astGCap( int, int );

/* internal prototypes required for module */
void Perl_storeGrfObject ( SV * plotobject );
void Perl_clearGrfObject( void );

#endif