#if !defined( PLOT_INCLUDED ) /* Include this file only once */
#define PLOT_INCLUDED
/*
*+
* Name:
* plot.h
* Type:
* C include file.
* Purpose:
* Define the interface to the Plot class.
* Invocation:
* #include "plot.h"
* Description:
* This include file defines the interface to the Plot class and
* provides the type definitions, function prototypes and macros, etc.
* needed to use this class.
*
* The Plot class provides facilities for producing graphical information
* describing positions within coordinate systems. These include the
* creation of annotated coordinate axes, the plotting of markers at given
* physical positions, etc.
* Inheritance:
* The Plot class inherits from the FrameSet class.
* 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 Lesser General Public
* License as published by the Free Software Foundation, either
* version 3 of the License, 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* License along with this program. If not, see
* .
* Authors:
* DSB: D.S. Berry (Starlink)
* History:
* 18-SEP-1996 (DSB):
* Original version.
* 28-OCT-1998 (DSB):
* Added method astPolyCurve.
* 12-OCT-1999 (DSB):
* Allow tick marks to be specified separately for both axes.
* 9-JAN-2001 (DSB):
* Change argument "in" for astMark and astPolyCurve from type
* "const double (*)[]" to "const double *".
* 13-JUN-2001 (DSB):
* Added methods astGenCurve, astGrfSet, astGrfPop, astGrfPush and
* attribute Grf.
* 8-JAN-2003 (DSB):
* Added protected astInitPlotVtab method.
* 13-JAN-2004 (DSB):
* Added bbox, logticks and logplot to the AstPlot structure. Added
* LogPlot and LogTicks accessor methods.
* 19-JAN-2004 (DSB):
* Added loggap and loglabel to the AstPlot structure. Added
* LogGap and LogLabel accessor methods.
* 21-MAR-2005 (DSB):
* - Added the Clip attribute.
* 24-OCT-2006 (DSB):
* - Remove duplicated documentation from prologue.
* - Add ForceExterior attribute.
*-
*/
/* Include files. */
/* ============== */
/* Interface definitions. */
/* ---------------------- */
#include "frameset.h" /* Parent FrameSet class */
#include "keymap.h"
#include "region.h"
#if defined(astCLASS) /* Protected */
#include "grf.h"
#endif
/* C header files. */
/* --------------- */
#include
/* Macros. */
/* ======= */
#if defined(astCLASS) || defined(astFORTRAN77)
#define STATUS_PTR status
#else
#define STATUS_PTR astGetStatusPtr
#endif
#define AST__NPID 20 /* No. of different genuine plot object id's */
#define AST__GATTR 0 /* Identifiers for GRF functions */
#define AST__GFLUSH 1 /* Note, if any items are added or changed here, */
#define AST__GLINE 2 /* make sure that the astGrfFunID function is */
#define AST__GMARK 3 /* updated in plot.c */
#define AST__GTEXT 4
#define AST__GTXEXT 5
#define AST__GSCALES 6
#define AST__GQCH 7
#define AST__GCAP 8
#define AST__GBBUF 9
#define AST__GEBUF 10
#define AST__NGRFFUN 11 /* No. of Grf functions used by Plot */
#if defined(astCLASS) /* Protected */
#define AST__MXBRK 100 /* Max. no. of breaks in a drawn curve */
/* Identifiers for the graphical elements of an annotated coord grid.
"Pseudo-elements" (i.e. values used to indicate a group of other
genuine elements) should come at the end of the list. The number of
genuine elements should be stored in AST__NPID. */
#define AST__BORDER_ID 0 /* Id for astBorder curves */
#define AST__CURVE_ID 1 /* Id for astCurve, astGenCurve or astPolyCurve curves */
#define AST__TITLE_ID 2 /* Id for textual title */
#define AST__MARKS_ID 3 /* Id for marks drawn by astMark */
#define AST__TEXT_ID 4 /* Id for text strings drawn by astText */
#define AST__AXIS1_ID 5 /* Id for axis 1 through interior tick marks */
#define AST__AXIS2_ID 6 /* Id for axis 2 through interior tick marks */
#define AST__AXIS3_ID 7 /* Id for axis 2 through interior tick marks */
#define AST__NUMLAB1_ID 8 /* Id for numerical labels */
#define AST__NUMLAB2_ID 9 /* Id for numerical labels */
#define AST__NUMLAB3_ID 10 /* Id for numerical labels */
#define AST__TEXTLAB1_ID 11 /* Id for textual axis labels */
#define AST__TEXTLAB2_ID 12 /* Id for textual axis labels */
#define AST__TEXTLAB3_ID 13 /* Id for textual axis labels */
#define AST__TICKS1_ID 14 /* Id for major and minor tick marks */
#define AST__TICKS2_ID 15 /* Id for major and minor tick marks */
#define AST__TICKS3_ID 16 /* Id for major and minor tick marks */
#define AST__GRIDLINE1_ID 17 /* Id for axis 1 astGridLine AST__curves */
#define AST__GRIDLINE2_ID 18 /* Id for axis 2 astGridLine AST__curves */
#define AST__GRIDLINE3_ID 19 /* Id for axis 2 astGridLine AST__curves */
#define AST__AXES_ID 20 /* Id for axes through interior tick marks */
#define AST__NUMLABS_ID 21 /* Id for numerical labels */
#define AST__TEXTLABS_ID 22 /* Id for textual axis labels */
#define AST__GRIDLINE_ID 23 /* Id for astGridLine AST__curves */
#define AST__TICKS_ID 24 /* Id for major and minor tick marks */
/* Define constants used to size global arrays in this module. */
#define AST__PLOT_CRV_MXBRK 1000 /* Max. no. of breaks allowed in a plotted curve */
#define AST__PLOT_STRIPESCAPES_BUFF_LEN 50 /* Length of string returned by astStripEscapes */
#endif
/* Define a dummy __attribute__ macro for use on non-GNU compilers. */
#ifndef __GNUC__
# define __attribute__(x) /*NOTHING*/
#endif
/* Type Definitions */
/* ================ */
/* Pre-declare the AstPlot structure so that it can be used within the
GRF function typedefs. */
struct AstPlot;
/* Interfaces for GRF functions */
/* ---------------------------- */
/* A general interface into which actual Grf functions should be cast
before being passed as an argument to astGrfSet. */
typedef void (* AstGrfFun)( void );
/* Interfaces for specific Grf funstions implemented in C (other languages
may have different interfaces). */
typedef int (* AstGAttrFun)( AstKeyMap *, int, double, double *, int );
typedef int (* AstGFlushFun)( AstKeyMap * );
typedef int (* AstGBBufFun)( AstKeyMap * );
typedef int (* AstGEBufFun)( AstKeyMap * );
typedef int (* AstGLineFun)( AstKeyMap *, int, const float *, const float * );
typedef int (* AstGMarkFun)( AstKeyMap *, int, const float *, const float *, int );
typedef int (* AstGTextFun)( AstKeyMap *, const char *, float, float, const char *, float, float );
typedef int (* AstGCapFun)( AstKeyMap *, int, int );
typedef int (* AstGTxExtFun)( AstKeyMap *, const char *, float, float, const char *, float, float, float *, float * );
typedef int (* AstGScalesFun)( AstKeyMap *, float *, float * );
typedef int (* AstGQchFun)( AstKeyMap *, float *, float * );
/* A general interface into which Grf Wrapper functions should be cast
before being passed as an argument to astGrfWrapper. */
typedef void (* AstGrfWrap)( void );
/* Interfaces for the wrapper functions which wrap specific Grf funstions. */
typedef int (* AstGAttrWrap)( struct AstPlot *, int, double, double *, int, int * );
typedef int (* AstGBBufWrap)( struct AstPlot *, int * );
typedef int (* AstGEBufWrap)( struct AstPlot *, int * );
typedef int (* AstGFlushWrap)( struct AstPlot *, int * );
typedef int (* AstGLineWrap)( struct AstPlot *, int, const float *, const float *, int * );
typedef int (* AstGMarkWrap)( struct AstPlot *, int, const float *, const float *, int, int * );
typedef int (* AstGTextWrap)( struct AstPlot *, const char *, float, float, const char *, float, float, int * );
typedef int (* AstGCapWrap)( struct AstPlot *, int, int, int * );
typedef int (* AstGTxExtWrap)( struct AstPlot *, const char *, float, float, const char *, float, float, float *, float *, int * );
typedef int (* AstGScalesWrap)( struct AstPlot *, float *, float *, int * );
typedef int (* AstGQchWrap)( struct AstPlot *, float *, float *, int * );
/* A structure in which a collection of Grf function pointers can be
stored. */
typedef struct AstGrfPtrs {
AstGrfFun grffun[AST__NGRFFUN];
AstGAttrWrap GAttr;
AstGBBufWrap GBBuf;
AstGEBufWrap GEBuf;
AstGFlushWrap GFlush;
AstGLineWrap GLine;
AstGMarkWrap GMark;
AstGTextWrap GText;
AstGCapWrap GCap;
AstGTxExtWrap GTxExt;
AstGScalesWrap GScales;
AstGQchWrap GQch;
} AstGrfPtrs;
/* Structure holding current graphical attribute values for text. */
typedef struct AstGat {
float rise;
double size;
double width;
double col;
double font;
double style;
} AstGat;
/* Plot structure. */
/* ------------------- */
/* This structure contains all information that is unique to each object in
the class (e.g. its instance variables). */
typedef struct AstPlot {
/* Attributes inherited from the parent class. */
AstFrameSet parent; /* Parent class structure */
/* Attributes specific to objects in this class. */
double *clip_lbnd;
double *clip_ubnd;
double centre[ 3 ];
double gap[ 3 ];
double loggap[ 3 ];
double labelat[ 3 ];
double majticklen[ 3 ];
double minticklen[ 3 ];
double numlabgap[ 3 ];
double size[ AST__NPID ];
double textlabgap[ 3 ];
double titlegap;
double tol;
double ucentre[ 3 ];
double ugap[ 3 ];
double uloggap[ 3 ];
double ulblat[ 3 ];
double umjtkln[ 3 ];
double width[ AST__NPID ];
double *majtickgx[ 3 ];
double *majtickgy[ 3 ];
double *mintickgx[ 3 ];
double *mintickgy[ 3 ];
int majtickcount[ 3 ];
int mintickcount[ 3 ];
int nmajtickval[ 3 ];
double *majtickval[ 3 ];
int nmintickval[ 3 ];
double *mintickval[ 3 ];
double xhi;
double xlo;
double yhi;
double ylo;
double bbox[ 4 ];
int border;
int clip_axes;
int clip_frame;
int clip;
int clipop;
int colour[ AST__NPID ];
int drawaxes[ 3 ];
int abbrev[ 3 ];
int escape;
int drawtitle;
int edge[ 3 ];
int font[ AST__NPID ];
int grf;
int grid;
int invisible;
int labelling;
int labelunits[ 3 ];
int labelup[ 3 ];
int mintick[ 3 ];
int numlab[ 3 ];
int style[ AST__NPID ];
int textlab[ 3 ];
int tickall;
int forceexterior;
int uborder;
int uedge[ 3 ];
int ugrid;
int ulbling;
int ulbunit[ 3 ];
int ulgtk[ 3 ];
int ulglb[ 3 ];
int umintk[ 3 ];
int utxtlb[ 3 ];
int xrev;
int yrev;
int ink;
int logplot[ 3 ];
int logticks[ 3 ];
int loglabel[ 3 ];
AstGrfFun grffun[AST__NGRFFUN];
AstGAttrWrap GAttr;
AstGBBufWrap GBBuf;
AstGEBufWrap GEBuf;
AstGFlushWrap GFlush;
AstGLineWrap GLine;
AstGMarkWrap GMark;
AstGTextWrap GText;
AstGCapWrap GCap;
AstGTxExtWrap GTxExt;
AstGScalesWrap GScales;
AstGQchWrap GQch;
AstGrfPtrs *grfstack;
int grfnstack;
AstGat **gat;
int ngat;
AstKeyMap *grfcontext;
AstKeyMap *grfcontextID;
float hmarkx;
float hmarky;
} AstPlot;
/* Virtual function table. */
/* ----------------------- */
/* This table contains all information that is the same for all
objects in the class (e.g. pointers to its virtual functions). */
#if defined(astCLASS) /* Protected */
typedef struct AstPlotVtab {
/* Properties (e.g. methods) inherited from the parent class. */
AstFrameSetVtab FrameSet_vtab;/* Parent class virtual function table */
/* A Unique identifier to determine class membership. */
AstClassIdentifier id;
/* Properties (e.g. methods) specific to this class. */
AstKeyMap *(* GetGrfContext)( AstPlot *, int * );
AstPointSet *(* GetDrawnTicks)( AstPlot *, int, int, int * );
int (* Border)( AstPlot *, int * );
int (* CvBrk)( AstPlot *, int, double *, double *, double *, int * );
void (* BBuf)( AstPlot *, int * );
void (* BoundingBox)( AstPlot *, float[2], float[2], int * );
void (* Clip)( AstPlot *, int, const double [], const double [], int * );
void (* CopyPlotDefaults)( AstPlot *, int, AstPlot *, int, int * );
void (* Curve)( AstPlot *, const double [], const double [], int * );
void (* DrawExtraTicks)( AstPlot *, int, AstPointSet *, int * );
void (* EBuf)( AstPlot *, int * );
void (* GenCurve)( AstPlot *, AstMapping *, int * );
void (* GrfPop)( AstPlot *, int * );
void (* GrfPush)( AstPlot *, int * );
void (* GrfSet)( AstPlot *, const char *, AstGrfFun, int * );
void (* GrfWrapper)( AstPlot *, const char *, AstGrfWrap, int * );
void (* Grid)( AstPlot *, int * );
void (* GridLine)( AstPlot *, int, const double [], double, int * );
void (* Mark)( AstPlot *, int, int, int, const double *, int, int * );
void (* Mirror)( AstPlot *, int, int * );
void (* PolyCurve)( AstPlot *, int, int, int, const double *, int * );
void (* RegionOutline)( AstPlot *, AstRegion *, int * );
void (* SetTickValues)( AstPlot *, int, int, double *, int, double *, int * );
void (* Text)( AstPlot *, const char *, const double [], const float [], const char *, int * );
double (* GetTol)( AstPlot *, int * );
int (* TestTol)( AstPlot *, int * );
void (* SetTol)( AstPlot *, double, int * );
void (* ClearTol)( AstPlot *, int * );
int (* GetGrid)( AstPlot *, int * );
int (* TestGrid)( AstPlot *, int * );
void (* SetGrid)( AstPlot *, int, int * );
void (* ClearGrid)( AstPlot *, int * );
int (* GetTickAll)( AstPlot *, int * );
int (* TestTickAll)( AstPlot *, int * );
void (* SetTickAll)( AstPlot *, int, int * );
void (* ClearTickAll)( AstPlot *, int * );
int (* GetForceExterior)( AstPlot *, int * );
int (* TestForceExterior)( AstPlot *, int * );
void (* SetForceExterior)( AstPlot *, int, int * );
void (* ClearForceExterior)( AstPlot *, int * );
int (* GetInvisible)( AstPlot *, int * );
int (* TestInvisible)( AstPlot *, int * );
void (* SetInvisible)( AstPlot *, int, int * );
void (* ClearInvisible)( AstPlot *, int * );
int (* GetBorder)( AstPlot *, int * );
int (* TestBorder)( AstPlot *, int * );
void (* SetBorder)( AstPlot *, int, int * );
void (* ClearBorder)( AstPlot *, int * );
int (* GetClipOp)( AstPlot *, int * );
int (* TestClipOp)( AstPlot *, int * );
void (* SetClipOp)( AstPlot *, int, int * );
void (* ClearClipOp)( AstPlot *, int * );
int (* GetClip)( AstPlot *, int * );
int (* TestClip)( AstPlot *, int * );
void (* SetClip)( AstPlot *, int, int * );
void (* ClearClip)( AstPlot *, int * );
int (* GetGrf)( AstPlot *, int * );
int (* TestGrf)( AstPlot *, int * );
void (* SetGrf)( AstPlot *, int, int * );
void (* ClearGrf)( AstPlot *, int * );
int (* GetDrawTitle)( AstPlot *, int * );
int (* TestDrawTitle)( AstPlot *, int * );
void (* SetDrawTitle)( AstPlot *, int, int * );
void (* ClearDrawTitle)( AstPlot *, int * );
int (* GetLabelUp)( AstPlot *, int, int * );
int (* TestLabelUp)( AstPlot *, int, int * );
void (* SetLabelUp)( AstPlot *, int, int, int * );
void (* ClearLabelUp)( AstPlot *, int, int * );
int (* GetLogPlot)( AstPlot *, int, int * );
int (* TestLogPlot)( AstPlot *, int, int * );
void (* SetLogPlot)( AstPlot *, int, int, int * );
void (* ClearLogPlot)( AstPlot *, int, int * );
int (* GetLogTicks)( AstPlot *, int, int * );
int (* TestLogTicks)( AstPlot *, int, int * );
void (* SetLogTicks)( AstPlot *, int, int, int * );
void (* ClearLogTicks)( AstPlot *, int, int * );
int (* GetLogLabel)( AstPlot *, int, int * );
int (* TestLogLabel)( AstPlot *, int, int * );
void (* SetLogLabel)( AstPlot *, int, int, int * );
void (* ClearLogLabel)( AstPlot *, int, int * );
int (* GetDrawAxes)( AstPlot *, int, int * );
int (* TestDrawAxes)( AstPlot *, int, int * );
void (* SetDrawAxes)( AstPlot *, int, int, int * );
void (* ClearDrawAxes)( AstPlot *, int, int * );
int (* GetAbbrev)( AstPlot *, int, int * );
int (* TestAbbrev)( AstPlot *, int, int * );
void (* SetAbbrev)( AstPlot *, int, int, int * );
void (* ClearAbbrev)( AstPlot *, int, int * );
int (* GetEscape)( AstPlot *, int * );
int (* TestEscape)( AstPlot *, int * );
void (* SetEscape)( AstPlot *, int, int * );
void (* ClearEscape)( AstPlot *, int * );
int (* GetLabelling)( AstPlot *, int * );
int (* TestLabelling)( AstPlot *, int * );
void (* SetLabelling)( AstPlot *, int, int * );
void (* ClearLabelling)( AstPlot *, int * );
double (* GetMajTickLen)( AstPlot *, int, int * );
int (* TestMajTickLen)( AstPlot *, int, int * );
void (* SetMajTickLen)( AstPlot *, int, double, int * );
void (* ClearMajTickLen)( AstPlot *, int, int * );
double (* GetMinTickLen)( AstPlot *, int, int * );
int (* TestMinTickLen)( AstPlot *, int, int * );
void (* SetMinTickLen)( AstPlot *, int, double, int * );
void (* ClearMinTickLen)( AstPlot *, int, int * );
double (* GetNumLabGap)( AstPlot *, int, int * );
int (* TestNumLabGap)( AstPlot *, int, int * );
void (* SetNumLabGap)( AstPlot *, int, double, int * );
void (* ClearNumLabGap)( AstPlot *, int, int * );
double (* GetTextLabGap)( AstPlot *, int, int * );
int (* TestTextLabGap)( AstPlot *, int, int * );
void (* SetTextLabGap)( AstPlot *, int, double, int * );
void (* ClearTextLabGap)( AstPlot *, int, int * );
double (* GetTitleGap)( AstPlot *, int * );
int (* TestTitleGap)( AstPlot *, int * );
void (* SetTitleGap)( AstPlot *, double, int * );
void (* ClearTitleGap)( AstPlot *, int * );
double (* GetLabelAt)( AstPlot *, int, int * );
int (* TestLabelAt)( AstPlot *, int, int * );
void (* SetLabelAt)( AstPlot *, int, double, int * );
void (* ClearLabelAt)( AstPlot *, int, int * );
double (* GetGap)( AstPlot *, int, int * );
int (* TestGap)( AstPlot *, int, int * );
void (* SetGap)( AstPlot *, int, double, int * );
void (* ClearGap)( AstPlot *, int, int * );
double (* GetLogGap)( AstPlot *, int, int * );
int (* TestLogGap)( AstPlot *, int, int * );
void (* SetLogGap)( AstPlot *, int, double, int * );
void (* ClearLogGap)( AstPlot *, int, int * );
double (* GetCentre)( AstPlot *, int, int * );
int (* TestCentre)( AstPlot *, int, int * );
void (* SetCentre)( AstPlot *, int, double, int * );
void (* ClearCentre)( AstPlot *, int, int * );
int (* GetEdge)( AstPlot *, int, int * );
int (* TestEdge)( AstPlot *, int, int * );
void (* SetEdge)( AstPlot *, int, int, int * );
void (* ClearEdge)( AstPlot *, int, int * );
int (* GetNumLab)( AstPlot *, int, int * );
int (* TestNumLab)( AstPlot *, int, int * );
void (* SetNumLab)( AstPlot *, int, int, int * );
void (* ClearNumLab)( AstPlot *, int, int * );
int (* GetMinTick)( AstPlot *, int, int * );
int (* TestMinTick)( AstPlot *, int, int * );
void (* SetMinTick)( AstPlot *, int, int, int * );
void (* ClearMinTick)( AstPlot *, int, int * );
int (* GetTextLab)( AstPlot *, int, int * );
int (* TestTextLab)( AstPlot *, int, int * );
void (* SetTextLab)( AstPlot *, int, int, int * );
void (* ClearTextLab)( AstPlot *, int, int * );
int (* GetLabelUnits)( AstPlot *, int, int * );
int (* TestLabelUnits)( AstPlot *, int, int * );
void (* SetLabelUnits)( AstPlot *, int, int, int * );
void (* ClearLabelUnits)( AstPlot *, int, int * );
int (* GetStyle)( AstPlot *, int, int * );
int (* TestStyle)( AstPlot *, int, int * );
void (* SetStyle)( AstPlot *, int, int, int * );
void (* ClearStyle)( AstPlot *, int, int * );
int (* GetFont)( AstPlot *, int, int * );
int (* TestFont)( AstPlot *, int, int * );
void (* SetFont)( AstPlot *, int, int, int * );
void (* ClearFont)( AstPlot *, int, int * );
int (* GetColour)( AstPlot *, int, int * );
int (* TestColour)( AstPlot *, int, int * );
void (* SetColour)( AstPlot *, int, int, int * );
void (* ClearColour)( AstPlot *, int, int * );
double (* GetWidth)( AstPlot *, int, int * );
int (* TestWidth)( AstPlot *, int, int * );
void (* SetWidth)( AstPlot *, int, double, int * );
void (* ClearWidth)( AstPlot *, int, int * );
double (* GetSize)( AstPlot *, int, int * );
int (* TestSize)( AstPlot *, int, int * );
void (* SetSize)( AstPlot *, int, double, int * );
void (* ClearSize)( AstPlot *, int, int * );
int (* GetInk)( AstPlot *, int * );
int (* TestInk)( AstPlot *, int * );
void (* SetInk)( AstPlot *, int, int * );
void (* ClearInk)( AstPlot *, int * );
} AstPlotVtab;
/* Structure holding information about curves drawn by astGridLine and
astCurve. */
typedef struct AstPlotCurveData{
int out; /* Was the curve completely outside the clipping area? */
int nbrk; /* The number of breaks in the curve. */
float xbrk[ AST__PLOT_CRV_MXBRK ]; /* Graphics X coordinate at each break. */
float ybrk[ AST__PLOT_CRV_MXBRK ]; /* Graphics Y coordinate at each break. */
float vxbrk[ AST__PLOT_CRV_MXBRK ]; /* X comp. of unit tangent vector */
float vybrk[ AST__PLOT_CRV_MXBRK ]; /* Y comp. of unit tangent vector */
float length; /* Drawn length of the curve in graphics coordinates */
} AstPlotCurveData;
#if defined(THREAD_SAFE)
/* Define a structure holding all data items that are global within this
class. */
typedef struct AstPlotGlobals {
AstPlotVtab Class_Vtab;
int Class_Init;
double GrfAttrs_attrs_t[ GRF__NATTR ];
int GrfAttrs_nesting_t;
double Crv_limit_t;
double Crv_scerr_t;
double Crv_tol_t;
double Crv_ux0_t;
double Crv_uy0_t;
double Crv_vxl_t;
double Crv_vyl_t;
double Crv_xhi_t;
double Crv_xl_t;
double Crv_xlo_t;
double Crv_yhi_t;
double Crv_yl_t;
double Crv_ylo_t;
float *Crv_vxbrk_t;
float *Crv_vybrk_t;
float *Crv_xbrk_t;
float *Crv_ybrk_t;
float Crv_len_t;
int Crv_ink_t;
int Crv_nbrk_t;
int Crv_nent_t;
int Crv_out_t;
int Crv_clip_t;
void (*Crv_map_t)( int, double *, double *, double *, const char *, const char *, int *, struct AstGlobals * );
void *Crv_mapstatics_t;
float Box_lbnd_t[ 2 ];
float Box_ubnd_t[ 2 ];
float Boxp_lbnd_t[ 2 ];
float Boxp_ubnd_t[ 2 ];
int Boxp_freeze_t;
float *Poly_x_t;
float *Poly_y_t;
int Poly_n_t;
float **Poly_xp_t;
float **Poly_yp_t;
int *Poly_np_t;
int Poly_npoly_t;
int Map1_ncoord_t;
AstPlot *Map1_plot_t;
AstMapping *Map1_map_t;
AstFrame *Map1_frame_t;
const double *Map1_origin_t;
double Map1_length_t;
int Map1_axis_t;
void *Map1_statics_t;
int Map1_norm_t;
int Map1_log_t;
int Map2_ncoord_t;
AstPlot *Map2_plot_t;
AstMapping *Map2_map_t;
double Map2_x0_t;
double Map2_y0_t;
double Map2_deltax_t;
double Map2_deltay_t;
void *Map2_statics_t;
int Map3_ncoord_t;
AstPlot *Map3_plot_t;
AstMapping *Map3_map_t;
AstFrame *Map3_frame_t;
const double *Map3_origin_t;
const double *Map3_end_t;
double Map3_scale_t;
void *Map3_statics_t;
int Map4_ncoord_t;
AstPlot *Map4_plot_t;
AstMapping *Map4_map_t;
AstMapping *Map4_umap_t;
void *Map4_statics_t;
int Map5_ncoord_t;
AstPlot *Map5_plot_t;
AstMapping *Map5_map_t;
AstRegion *Map5_region_t;
void *Map5_statics_t;
AstPlotCurveData Curve_data_t;
char GetAttrib_Buff[ 200 ];
char SplitValue_Buff[ 200 ];
char StripEscapes_Buff[ AST__PLOT_STRIPESCAPES_BUFF_LEN + 1 ];
double Grf_chv_t;
double Grf_chh_t;
float Grf_alpha_t;
float Grf_beta_t;
} AstPlotGlobals;
#endif
#endif
/* Function prototypes. */
/* ==================== */
/* Prototypes for standard class functions. */
/* ---------------------------------------- */
astPROTO_CHECK(Plot) /* Check class membership */
astPROTO_ISA(Plot) /* Test class membership */
/* Constructor. */
#if defined(astCLASS) /* Protected. */
AstPlot *astPlot_( void *, const float *, const double *, const char *, int *, ...);
#else
AstPlot *astPlotId_( void *, const float [], const double [], const char *, ... )__attribute__((format(printf,4,5)));
#endif
#if defined(astCLASS) /* Protected */
/* Initialiser. */
AstPlot *astInitPlot_( void *, size_t, int, AstPlotVtab *,
const char *, AstFrame *, const float *, const double *, int * );
/* Vtab initialiser. */
void astInitPlotVtab_( AstPlotVtab *, const char *, int * );
/* Loader. */
AstPlot *astLoadPlot_( void *, size_t, AstPlotVtab *,
const char *, AstChannel *channel, int * );
/* Thread-safe initialiser for all global data used by this module. */
#if defined(THREAD_SAFE)
void astInitPlotGlobals_( AstPlotGlobals * );
#endif
#endif
/* Prototypes for member functions. */
/* -------------------------------- */
AstKeyMap *astGetGrfContext_( AstPlot *, int * );
AstKeyMap *astGrfConID_( AstPlot *, int * );
const char *astStripEscapes_( const char *, int * );
int astBorder_( AstPlot *, int * );
int astFindEscape_( const char *, int *, int *, int *, int * );
void astBBuf_( AstPlot *, int * );
void astBoundingBox_( AstPlot *, float[2], float[2], int * );
void astClip_( AstPlot *, int, const double [], const double [], int * );
void astCurve_( AstPlot *, const double [], const double [], int * );
void astEBuf_( AstPlot *, int * );
void astGenCurve_( AstPlot *, AstMapping *, int * );
void astGrfPop_( AstPlot *, int * );
void astGrfPush_( AstPlot *, int * );
void astGrfSet_( AstPlot *, const char *, AstGrfFun, int * );
void astGridLine_( AstPlot *, int, const double [], double, int * );
void astGrid_( AstPlot *, int * );
void astMark_( AstPlot *, int, int, int, const double *, int, int * );
void astPolyCurve_( AstPlot *, int, int, int, const double *, int * );
void astRegionOutline_( AstPlot *, AstRegion *, int * );
void astText_( AstPlot *, const char *, const double [], const float [], const char *, int * );
void astGrfWrapper_( AstPlot *, const char *, AstGrfWrap, int * );
int astGrfFunID_( const char *, const char *, const char *, int * );
#if defined(astCLASS) /* Protected */
int astCvBrk_( AstPlot *, int, double *, double *, double *, int * );
void astCopyPlotDefaults_( AstPlot *, int, AstPlot *, int, int * );
void astMirror_( AstPlot *, int, int * );
AstPointSet *astGetDrawnTicks_( AstPlot *, int, int, int * );
void astSetTickValues_( AstPlot *, int, int, double *, int, double *, int * );
void astDrawExtraTicks_( AstPlot *, int, AstPointSet *, int * );
void astGrfAttrs_( AstPlot *, int, int, int, const char *, const char *, int * );
double astGetTol_( AstPlot *, int * );
int astTestTol_( AstPlot *, int * );
void astSetTol_( AstPlot *, double, int * );
void astClearTol_( AstPlot *, int * );
int astGetGrid_( AstPlot *, int * );
int astTestGrid_( AstPlot *, int * );
void astSetGrid_( AstPlot *, int, int * );
void astClearGrid_( AstPlot *, int * );
int astGetTickAll_( AstPlot *, int * );
int astTestTickAll_( AstPlot *, int * );
void astSetTickAll_( AstPlot *, int, int * );
void astClearTickAll_( AstPlot *, int * );
int astGetForceExterior_( AstPlot *, int * );
int astTestForceExterior_( AstPlot *, int * );
void astSetForceExterior_( AstPlot *, int, int * );
void astClearForceExterior_( AstPlot *, int * );
int astGetInvisible_( AstPlot *, int * );
int astTestInvisible_( AstPlot *, int * );
void astSetInvisible_( AstPlot *, int, int * );
void astClearInvisible_( AstPlot *, int * );
int astGetBorder_( AstPlot *, int * );
int astTestBorder_( AstPlot *, int * );
void astSetBorder_( AstPlot *, int, int * );
void astClearBorder_( AstPlot *, int * );
int astGetClip_( AstPlot *, int * );
int astTestClip_( AstPlot *, int * );
void astSetClip_( AstPlot *, int, int * );
void astClearClip_( AstPlot *, int * );
int astGetClipOp_( AstPlot *, int * );
int astTestClipOp_( AstPlot *, int * );
void astSetClipOp_( AstPlot *, int, int * );
void astClearClipOp_( AstPlot *, int * );
int astGetGrf_( AstPlot *, int * );
int astTestGrf_( AstPlot *, int * );
void astSetGrf_( AstPlot *, int, int * );
void astClearGrf_( AstPlot *, int * );
int astGetDrawTitle_( AstPlot *, int * );
int astTestDrawTitle_( AstPlot *, int * );
void astSetDrawTitle_( AstPlot *, int, int * );
void astClearDrawTitle_( AstPlot *, int * );
int astGetLabelUp_( AstPlot *, int, int * );
int astTestLabelUp_( AstPlot *, int, int * );
void astSetLabelUp_( AstPlot *, int, int, int * );
void astClearLabelUp_( AstPlot *, int, int * );
int astGetLogPlot_( AstPlot *, int, int * );
int astTestLogPlot_( AstPlot *, int, int * );
void astSetLogPlot_( AstPlot *, int, int, int * );
void astClearLogPlot_( AstPlot *, int, int * );
int astGetLogTicks_( AstPlot *, int, int * );
int astTestLogTicks_( AstPlot *, int, int * );
void astSetLogTicks_( AstPlot *, int, int, int * );
void astClearLogTicks_( AstPlot *, int, int * );
int astGetLogLabel_( AstPlot *, int, int * );
int astTestLogLabel_( AstPlot *, int, int * );
void astSetLogLabel_( AstPlot *, int, int, int * );
void astClearLogLabel_( AstPlot *, int, int * );
int astGetDrawAxes_( AstPlot *, int, int * );
int astTestDrawAxes_( AstPlot *, int, int * );
void astSetDrawAxes_( AstPlot *, int, int, int * );
void astClearDrawAxes_( AstPlot *, int, int * );
int astGetAbbrev_( AstPlot *, int, int * );
int astTestAbbrev_( AstPlot *, int, int * );
void astSetAbbrev_( AstPlot *, int, int, int * );
void astClearAbbrev_( AstPlot *, int, int * );
int astGetEscape_( AstPlot *, int * );
int astTestEscape_( AstPlot *, int * );
void astSetEscape_( AstPlot *, int, int * );
void astClearEscape_( AstPlot *, int * );
double astGetLabelAt_( AstPlot *, int, int * );
int astTestLabelAt_( AstPlot *, int, int * );
void astSetLabelAt_( AstPlot *, int, double, int * );
void astClearLabelAt_( AstPlot *, int, int * );
double astGetGap_( AstPlot *, int, int * );
int astTestGap_( AstPlot *, int, int * );
void astSetGap_( AstPlot *, int, double, int * );
void astClearGap_( AstPlot *, int, int * );
double astGetLogGap_( AstPlot *, int, int * );
int astTestLogGap_( AstPlot *, int, int * );
void astSetLogGap_( AstPlot *, int, double, int * );
void astClearLogGap_( AstPlot *, int, int * );
double astGetCentre_( AstPlot *, int, int * );
int astTestCentre_( AstPlot *, int, int * );
void astSetCentre_( AstPlot *, int, double, int * );
void astClearCentre_( AstPlot *, int, int * );
int astGetLabelling_( AstPlot *, int * );
int astTestLabelling_( AstPlot *, int * );
void astSetLabelling_( AstPlot *, int, int * );
void astClearLabelling_( AstPlot *, int * );
double astGetMajTickLen_( AstPlot *, int, int * );
int astTestMajTickLen_( AstPlot *, int, int * );
void astSetMajTickLen_( AstPlot *, int, double, int * );
void astClearMajTickLen_( AstPlot *, int, int * );
double astGetMinTickLen_( AstPlot *, int, int * );
int astTestMinTickLen_( AstPlot *, int, int * );
void astSetMinTickLen_( AstPlot *, int, double, int * );
void astClearMinTickLen_( AstPlot *, int, int * );
double astGetNumLabGap_( AstPlot *, int, int * );
int astTestNumLabGap_( AstPlot *, int, int * );
void astSetNumLabGap_( AstPlot *, int, double, int * );
void astClearNumLabGap_( AstPlot *, int, int * );
double astGetTextLabGap_( AstPlot *, int, int * );
int astTestTextLabGap_( AstPlot *, int, int * );
void astSetTextLabGap_( AstPlot *, int, double, int * );
void astClearTextLabGap_( AstPlot *, int, int * );
double astGetTitleGap_( AstPlot *, int * );
int astTestTitleGap_( AstPlot *, int * );
void astSetTitleGap_( AstPlot *, double, int * );
void astClearTitleGap_( AstPlot *, int * );
int astGetEdge_( AstPlot *, int, int * );
int astTestEdge_( AstPlot *, int, int * );
void astSetEdge_( AstPlot *, int, int, int * );
void astClearEdge_( AstPlot *, int, int * );
int astGetMinTick_( AstPlot *, int, int * );
int astTestMinTick_( AstPlot *, int, int * );
void astSetMinTick_( AstPlot *, int, int, int * );
void astClearMinTick_( AstPlot *, int, int * );
int astGetNumLab_( AstPlot *, int, int * );
int astTestNumLab_( AstPlot *, int, int * );
void astSetNumLab_( AstPlot *, int, int, int * );
void astClearNumLab_( AstPlot *, int, int * );
int astGetTextLab_( AstPlot *, int, int * );
int astTestTextLab_( AstPlot *, int, int * );
void astSetTextLab_( AstPlot *, int, int, int * );
void astClearTextLab_( AstPlot *, int, int * );
int astGetLabelUnits_( AstPlot *, int, int * );
int astTestLabelUnits_( AstPlot *, int, int * );
void astSetLabelUnits_( AstPlot *, int, int, int * );
void astClearLabelUnits_( AstPlot *, int, int * );
int astGetStyle_( AstPlot *, int, int * );
int astTestStyle_( AstPlot *, int, int * );
void astSetStyle_( AstPlot *, int, int, int * );
void astClearStyle_( AstPlot *, int, int * );
int astGetFont_( AstPlot *, int, int * );
int astTestFont_( AstPlot *, int, int * );
void astSetFont_( AstPlot *, int, int, int * );
void astClearFont_( AstPlot *, int, int * );
int astGetColour_( AstPlot *, int, int * );
int astTestColour_( AstPlot *, int, int * );
void astSetColour_( AstPlot *, int, int, int * );
void astClearColour_( AstPlot *, int, int * );
double astGetWidth_( AstPlot *, int, int * );
int astTestWidth_( AstPlot *, int, int * );
void astSetWidth_( AstPlot *, int, double, int * );
void astClearWidth_( AstPlot *, int, int * );
double astGetSize_( AstPlot *, int, int * );
int astTestSize_( AstPlot *, int, int * );
void astSetSize_( AstPlot *, int, double, int * );
void astClearSize_( AstPlot *, int, int * );
int astGetInk_( AstPlot *, int * );
int astTestInk_( AstPlot *, int * );
void astSetInk_( AstPlot *, int, int * );
void astClearInk_( AstPlot *, int * );
#endif
/* Function interfaces. */
/* ==================== */
/* These macros are wrap-ups for the functions defined by this class to make
them easier to invoke (e.g. to avoid type mis-matches when passing pointers
to objects from derived classes). */
/* Interfaces to standard class functions. */
/* --------------------------------------- */
/* Some of these functions provide validation, so we cannot use them to
validate their own arguments. We must use a cast when passing object
pointers (so that they can accept objects from derived classes). */
/* Check class membership. */
#define astCheckPlot(this) astINVOKE_CHECK(Plot,this,0)
#define astVerifyPlot(this) astINVOKE_CHECK(Plot,this,1)
/* Test class membership. */
#define astIsAPlot(this) astINVOKE_ISA(Plot,this)
#if defined(astCLASS) /* Protected */
#define astPlot astINVOKE(F,astPlot_)
#else
#define astPlot astINVOKE(F,astPlotId_)
#endif
#if defined(astCLASS) /* Protected */
/* Initialiser. */
#define astInitPlot(mem,size,init,vtab,name,frame,graph,base) \
astINVOKE(O,astInitPlot_(mem,size,init,vtab,name,frame,graph,base,STATUS_PTR))
/* Vtab Initialiser. */
#define astInitPlotVtab(vtab,name) astINVOKE(V,astInitPlotVtab_(vtab,name,STATUS_PTR))
/* Loader. */
#define astLoadPlot(mem,size,vtab,name,channel) \
astINVOKE(O,astLoadPlot_(mem,size,vtab,name,astCheckChannel(channel),STATUS_PTR))
#endif
/* Interfaces to member functions. */
/* ------------------------------- */
/* Here we make use of astCheckPlot (et al.) to validate Plot
pointers before use. This provides a contextual error report if a
pointer to the wrong sort of object is supplied. */
#define astGetGrfContext(this) \
astINVOKE(O,astGetGrfContext_(astCheckPlot(this),STATUS_PTR))
#define astBorder(this) \
astINVOKE(V,astBorder_(astCheckPlot(this),STATUS_PTR))
#define astBoundingBox(this,lbnd,ubnd) \
astINVOKE(V,astBoundingBox_(astCheckPlot(this),lbnd,ubnd,STATUS_PTR))
#define astClip(this,iframe,lbnd,ubnd) \
astINVOKE(V,astClip_(astCheckPlot(this),iframe,lbnd,ubnd,STATUS_PTR))
#define astMark(this,nmark,ncoord,indim,in,type) \
astINVOKE(V,astMark_(astCheckPlot(this),nmark,ncoord,indim,in,type,STATUS_PTR))
#define astText(this,text,pos,up,just) \
astINVOKE(V,astText_(astCheckPlot(this),text,pos,up,just,STATUS_PTR))
#define astGrid(this) \
astINVOKE(V,astGrid_(astCheckPlot(this),STATUS_PTR))
#define astGridLine(this,axis,start,length) \
astINVOKE(V,astGridLine_(astCheckPlot(this),axis,start,length,STATUS_PTR))
#define astCurve(this,start,finish) \
astINVOKE(V,astCurve_(astCheckPlot(this),start,finish,STATUS_PTR))
#define astGenCurve(this,map) \
astINVOKE(V,astGenCurve_(astCheckPlot(this),astCheckMapping(map),STATUS_PTR))
#define astPolyCurve(this,npoint,ncoord,dim,in) \
astINVOKE(V,astPolyCurve_(astCheckPlot(this),npoint,ncoord,dim,in,STATUS_PTR))
#define astRegionOutline(this,region) \
astINVOKE(V,astRegionOutline_(astCheckPlot(this),astCheckRegion(region),STATUS_PTR))
#define astGrfSet(this,name,fun) \
astINVOKE(V,astGrfSet_(astCheckPlot(this),name,fun,STATUS_PTR))
#define astGrfPush(this) \
astINVOKE(V,astGrfPush_(astCheckPlot(this),STATUS_PTR))
#define astGrfPop(this) \
astINVOKE(V,astGrfPop_(astCheckPlot(this),STATUS_PTR))
#define astBBuf(this) \
astINVOKE(V,astBBuf_(astCheckPlot(this),STATUS_PTR))
#define astEBuf(this) \
astINVOKE(V,astEBuf_(astCheckPlot(this),STATUS_PTR))
#define astGrfFunID(name,method,class) astGrfFunID_(name,method,class,STATUS_PTR)
#define astFindEscape(text,type,value,nc) astFindEscape_(text,type,value,nc,STATUS_PTR)
#define astStripEscapes(text) astStripEscapes_(text,STATUS_PTR)
#define astGrfConID(this) astGrfConID_(this,STATUS_PTR)
#define astGrfWrapper(this,name,wrapper) \
astINVOKE(V,astGrfWrapper_(astCheckPlot(this),name,wrapper,STATUS_PTR))
#if defined(astCLASS) /* Protected */
#define astGrfAttrs(this,id,set,prim,method,class) \
astGrfAttrs_(astCheckPlot(this),id,set,prim,method,class,STATUS_PTR)
#define astCvBrk(this,ibrk,brk,vbrk,len) \
astINVOKE(V,astCvBrk_(astCheckPlot(this),ibrk,brk,vbrk,len,STATUS_PTR))
#define astCopyPlotDefaults(this,axis,dplot,daxis) \
astINVOKE(V,astCopyPlotDefaults_(astCheckPlot(this),axis,astCheckPlot(dplot),daxis,STATUS_PTR))
#define astMirror(this,axis) \
astINVOKE(V,astMirror_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetDrawnTicks(this,axis,major) \
astINVOKE(O,astGetDrawnTicks_(astCheckPlot(this),axis,major,STATUS_PTR))
#define astSetTickValues(this,axis,nmajor,major,nminor,minor) \
astINVOKE(V,astSetTickValues_(astCheckPlot(this),axis,nmajor,major,nminor,minor,STATUS_PTR))
#define astDrawExtraTicks(this,axis,pset) \
astINVOKE(V,astDrawExtraTicks_(astCheckPlot(this),axis,astCheckPointSet(pset),STATUS_PTR))
#define astClearTol(this) \
astINVOKE(V,astClearTol_(astCheckPlot(this),STATUS_PTR))
#define astGetTol(this) \
astINVOKE(V,astGetTol_(astCheckPlot(this),STATUS_PTR))
#define astSetTol(this,tol) \
astINVOKE(V,astSetTol_(astCheckPlot(this),tol,STATUS_PTR))
#define astTestTol(this) \
astINVOKE(V,astTestTol_(astCheckPlot(this),STATUS_PTR))
#define astClearGrid(this) \
astINVOKE(V,astClearGrid_(astCheckPlot(this),STATUS_PTR))
#define astGetGrid(this) \
astINVOKE(V,astGetGrid_(astCheckPlot(this),STATUS_PTR))
#define astSetGrid(this,grid) \
astINVOKE(V,astSetGrid_(astCheckPlot(this),grid,STATUS_PTR))
#define astTestGrid(this) \
astINVOKE(V,astTestGrid_(astCheckPlot(this),STATUS_PTR))
#define astClearInk(this) \
astINVOKE(V,astClearInk_(astCheckPlot(this),STATUS_PTR))
#define astGetInk(this) \
astINVOKE(V,astGetInk_(astCheckPlot(this),STATUS_PTR))
#define astSetInk(this,ink) \
astINVOKE(V,astSetInk_(astCheckPlot(this),ink,STATUS_PTR))
#define astTestInk(this) \
astINVOKE(V,astTestInk_(astCheckPlot(this),STATUS_PTR))
#define astClearTickAll(this) \
astINVOKE(V,astClearTickAll_(astCheckPlot(this),STATUS_PTR))
#define astGetTickAll(this) \
astINVOKE(V,astGetTickAll_(astCheckPlot(this),STATUS_PTR))
#define astSetTickAll(this,tickall) \
astINVOKE(V,astSetTickAll_(astCheckPlot(this),tickall,STATUS_PTR))
#define astTestTickAll(this) \
astINVOKE(V,astTestTickAll_(astCheckPlot(this),STATUS_PTR))
#define astClearForceExterior(this) \
astINVOKE(V,astClearForceExterior_(astCheckPlot(this),STATUS_PTR))
#define astGetForceExterior(this) \
astINVOKE(V,astGetForceExterior_(astCheckPlot(this),STATUS_PTR))
#define astSetForceExterior(this,frcext) \
astINVOKE(V,astSetForceExterior_(astCheckPlot(this),frcext,STATUS_PTR))
#define astTestForceExterior(this) \
astINVOKE(V,astTestForceExterior_(astCheckPlot(this),STATUS_PTR))
#define astClearBorder(this) \
astINVOKE(V,astClearBorder_(astCheckPlot(this),STATUS_PTR))
#define astGetBorder(this) \
astINVOKE(V,astGetBorder_(astCheckPlot(this),STATUS_PTR))
#define astSetBorder(this,border) \
astINVOKE(V,astSetBorder_(astCheckPlot(this),border,STATUS_PTR))
#define astTestBorder(this) \
astINVOKE(V,astTestBorder_(astCheckPlot(this),STATUS_PTR))
#define astClearClip(this) \
astINVOKE(V,astClearClip_(astCheckPlot(this),STATUS_PTR))
#define astGetClip(this) \
astINVOKE(V,astGetClip_(astCheckPlot(this),STATUS_PTR))
#define astSetClip(this,clip) \
astINVOKE(V,astSetClip_(astCheckPlot(this),clip,STATUS_PTR))
#define astTestClip(this) \
astINVOKE(V,astTestClip_(astCheckPlot(this),STATUS_PTR))
#define astClearClipOp(this) \
astINVOKE(V,astClearClipOp_(astCheckPlot(this),STATUS_PTR))
#define astGetClipOp(this) \
astINVOKE(V,astGetClipOp_(astCheckPlot(this),STATUS_PTR))
#define astSetClipOp(this,clipop) \
astINVOKE(V,astSetClipOp_(astCheckPlot(this),clipop,STATUS_PTR))
#define astTestClipOp(this) \
astINVOKE(V,astTestClipOp_(astCheckPlot(this),STATUS_PTR))
#define astClearInvisible(this) \
astINVOKE(V,astClearInvisible_(astCheckPlot(this),STATUS_PTR))
#define astGetInvisible(this) \
astINVOKE(V,astGetInvisible_(astCheckPlot(this),STATUS_PTR))
#define astSetInvisible(this,invisible) \
astINVOKE(V,astSetInvisible_(astCheckPlot(this),invisible,STATUS_PTR))
#define astTestInvisible(this) \
astINVOKE(V,astTestInvisible_(astCheckPlot(this),STATUS_PTR))
#define astClearGrf(this) \
astINVOKE(V,astClearGrf_(astCheckPlot(this),STATUS_PTR))
#define astGetGrf(this) \
astINVOKE(V,astGetGrf_(astCheckPlot(this),STATUS_PTR))
#define astSetGrf(this,grf) \
astINVOKE(V,astSetGrf_(astCheckPlot(this),grf,STATUS_PTR))
#define astTestGrf(this) \
astINVOKE(V,astTestGrf_(astCheckPlot(this),STATUS_PTR))
#define astClearDrawTitle(this) \
astINVOKE(V,astClearDrawTitle_(astCheckPlot(this),STATUS_PTR))
#define astGetDrawTitle(this) \
astINVOKE(V,astGetDrawTitle_(astCheckPlot(this),STATUS_PTR))
#define astSetDrawTitle(this,drawtitle) \
astINVOKE(V,astSetDrawTitle_(astCheckPlot(this),drawtitle,STATUS_PTR))
#define astTestDrawTitle(this) \
astINVOKE(V,astTestDrawTitle_(astCheckPlot(this),STATUS_PTR))
#define astClearDrawAxes(this,axis) \
astINVOKE(V,astClearDrawAxes_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetDrawAxes(this,axis) \
astINVOKE(V,astGetDrawAxes_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetDrawAxes(this,axis,drawaxes) \
astINVOKE(V,astSetDrawAxes_(astCheckPlot(this),axis,drawaxes,STATUS_PTR))
#define astTestDrawAxes(this,axis) \
astINVOKE(V,astTestDrawAxes_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearAbbrev(this,axis) \
astINVOKE(V,astClearAbbrev_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetAbbrev(this,axis) \
astINVOKE(V,astGetAbbrev_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetAbbrev(this,axis,abbrev) \
astINVOKE(V,astSetAbbrev_(astCheckPlot(this),axis,abbrev,STATUS_PTR))
#define astTestAbbrev(this,axis) \
astINVOKE(V,astTestAbbrev_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearEscape(this) \
astINVOKE(V,astClearEscape_(astCheckPlot(this),STATUS_PTR))
#define astGetEscape(this) \
astINVOKE(V,astGetEscape_(astCheckPlot(this),STATUS_PTR))
#define astSetEscape(this,escape) \
astINVOKE(V,astSetEscape_(astCheckPlot(this),escape,STATUS_PTR))
#define astTestEscape(this) \
astINVOKE(V,astTestEscape_(astCheckPlot(this),STATUS_PTR))
#define astClearLabelAt(this,axis) \
astINVOKE(V,astClearLabelAt_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetLabelAt(this,axis) \
astINVOKE(V,astGetLabelAt_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetLabelAt(this,axis,labelat) \
astINVOKE(V,astSetLabelAt_(astCheckPlot(this),axis,labelat,STATUS_PTR))
#define astTestLabelAt(this,axis) \
astINVOKE(V,astTestLabelAt_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearGap(this,axis) \
astINVOKE(V,astClearGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetGap(this,axis) \
astINVOKE(V,astGetGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetGap(this,axis,gap) \
astINVOKE(V,astSetGap_(astCheckPlot(this),axis,gap,STATUS_PTR))
#define astTestGap(this,axis) \
astINVOKE(V,astTestGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearLogGap(this,axis) \
astINVOKE(V,astClearLogGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetLogGap(this,axis) \
astINVOKE(V,astGetLogGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetLogGap(this,axis,gap) \
astINVOKE(V,astSetLogGap_(astCheckPlot(this),axis,gap,STATUS_PTR))
#define astTestLogGap(this,axis) \
astINVOKE(V,astTestLogGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearCentre(this,axis) \
astINVOKE(V,astClearCentre_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetCentre(this,axis) \
astINVOKE(V,astGetCentre_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetCentre(this,axis,centre) \
astINVOKE(V,astSetCentre_(astCheckPlot(this),axis,centre,STATUS_PTR))
#define astTestCentre(this,axis) \
astINVOKE(V,astTestCentre_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearMajTickLen(this,axis) \
astINVOKE(V,astClearMajTickLen_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetMajTickLen(this,axis) \
astINVOKE(V,astGetMajTickLen_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetMajTickLen(this,axis,majticklen) \
astINVOKE(V,astSetMajTickLen_(astCheckPlot(this),axis,majticklen,STATUS_PTR))
#define astTestMajTickLen(this,axis) \
astINVOKE(V,astTestMajTickLen_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearMinTickLen(this,axis) \
astINVOKE(V,astClearMinTickLen_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetMinTickLen(this,axis) \
astINVOKE(V,astGetMinTickLen_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetMinTickLen(this,axis,minticklen) \
astINVOKE(V,astSetMinTickLen_(astCheckPlot(this),axis,minticklen,STATUS_PTR))
#define astTestMinTickLen(this,axis) \
astINVOKE(V,astTestMinTickLen_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearNumLabGap(this,axis) \
astINVOKE(V,astClearNumLabGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetNumLabGap(this,axis) \
astINVOKE(V,astGetNumLabGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetNumLabGap(this,axis,numlabgap) \
astINVOKE(V,astSetNumLabGap_(astCheckPlot(this),axis,numlabgap,STATUS_PTR))
#define astTestNumLabGap(this,axis) \
astINVOKE(V,astTestNumLabGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearTextLabGap(this,axis) \
astINVOKE(V,astClearTextLabGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetTextLabGap(this,axis) \
astINVOKE(V,astGetTextLabGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetTextLabGap(this,axis,textlabgap) \
astINVOKE(V,astSetTextLabGap_(astCheckPlot(this),axis,textlabgap,STATUS_PTR))
#define astTestTextLabGap(this,axis) \
astINVOKE(V,astTestTextLabGap_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearTitleGap(this) \
astINVOKE(V,astClearTitleGap_(astCheckPlot(this),STATUS_PTR))
#define astGetTitleGap(this) \
astINVOKE(V,astGetTitleGap_(astCheckPlot(this),STATUS_PTR))
#define astSetTitleGap(this,titlegap) \
astINVOKE(V,astSetTitleGap_(astCheckPlot(this),titlegap,STATUS_PTR))
#define astTestTitleGap(this) \
astINVOKE(V,astTestTitleGap_(astCheckPlot(this),STATUS_PTR))
#define astClearLabelling(this) \
astINVOKE(V,astClearLabelling_(astCheckPlot(this),STATUS_PTR))
#define astGetLabelling(this) \
astINVOKE(V,astGetLabelling_(astCheckPlot(this),STATUS_PTR))
#define astSetLabelling(this,labelling) \
astINVOKE(V,astSetLabelling_(astCheckPlot(this),labelling,STATUS_PTR))
#define astTestLabelling(this) \
astINVOKE(V,astTestLabelling_(astCheckPlot(this),STATUS_PTR))
#define astClearEdge(this,axis) \
astINVOKE(V,astClearEdge_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetEdge(this,axis) \
astINVOKE(V,astGetEdge_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetEdge(this,axis,edge) \
astINVOKE(V,astSetEdge_(astCheckPlot(this),axis,edge,STATUS_PTR))
#define astTestEdge(this,axis) \
astINVOKE(V,astTestEdge_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearMinTick(this,axis) \
astINVOKE(V,astClearMinTick_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetMinTick(this,axis) \
astINVOKE(V,astGetMinTick_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetMinTick(this,axis,mintick) \
astINVOKE(V,astSetMinTick_(astCheckPlot(this),axis,mintick,STATUS_PTR))
#define astTestMinTick(this,axis) \
astINVOKE(V,astTestMinTick_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearNumLab(this,axis) \
astINVOKE(V,astClearNumLab_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetNumLab(this,axis) \
astINVOKE(V,astGetNumLab_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetNumLab(this,axis,numlab) \
astINVOKE(V,astSetNumLab_(astCheckPlot(this),axis,numlab,STATUS_PTR))
#define astTestNumLab(this,axis) \
astINVOKE(V,astTestNumLab_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearLabelUp(this,axis) \
astINVOKE(V,astClearLabelUp_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetLabelUp(this,axis) \
astINVOKE(V,astGetLabelUp_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetLabelUp(this,axis,labelup) \
astINVOKE(V,astSetLabelUp_(astCheckPlot(this),axis,labelup,STATUS_PTR))
#define astTestLabelUp(this,axis) \
astINVOKE(V,astTestLabelUp_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearLogPlot(this,axis) \
astINVOKE(V,astClearLogPlot_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetLogPlot(this,axis) \
astINVOKE(V,astGetLogPlot_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetLogPlot(this,axis,logplot) \
astINVOKE(V,astSetLogPlot_(astCheckPlot(this),axis,logplot,STATUS_PTR))
#define astTestLogPlot(this,axis) \
astINVOKE(V,astTestLogPlot_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearLogTicks(this,axis) \
astINVOKE(V,astClearLogTicks_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetLogTicks(this,axis) \
astINVOKE(V,astGetLogTicks_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetLogTicks(this,axis,logticks) \
astINVOKE(V,astSetLogTicks_(astCheckPlot(this),axis,logticks,STATUS_PTR))
#define astTestLogTicks(this,axis) \
astINVOKE(V,astTestLogTicks_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearLogLabel(this,axis) \
astINVOKE(V,astClearLogLabel_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetLogLabel(this,axis) \
astINVOKE(V,astGetLogLabel_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetLogLabel(this,axis,loglabel) \
astINVOKE(V,astSetLogLabel_(astCheckPlot(this),axis,loglabel,STATUS_PTR))
#define astTestLogLabel(this,axis) \
astINVOKE(V,astTestLogLabel_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearTextLab(this,axis) \
astINVOKE(V,astClearTextLab_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetTextLab(this,axis) \
astINVOKE(V,astGetTextLab_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetTextLab(this,axis,textlab) \
astINVOKE(V,astSetTextLab_(astCheckPlot(this),axis,textlab,STATUS_PTR))
#define astTestTextLab(this,axis) \
astINVOKE(V,astTestTextLab_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearLabelUnits(this,axis) \
astINVOKE(V,astClearLabelUnits_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetLabelUnits(this,axis) \
astINVOKE(V,astGetLabelUnits_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetLabelUnits(this,axis,labelunits) \
astINVOKE(V,astSetLabelUnits_(astCheckPlot(this),axis,labelunits,STATUS_PTR))
#define astTestLabelUnits(this,axis) \
astINVOKE(V,astTestLabelUnits_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearStyle(this,axis) \
astINVOKE(V,astClearStyle_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetStyle(this,axis) \
astINVOKE(V,astGetStyle_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetStyle(this,axis,style) \
astINVOKE(V,astSetStyle_(astCheckPlot(this),axis,style,STATUS_PTR))
#define astTestStyle(this,axis) \
astINVOKE(V,astTestStyle_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearFont(this,axis) \
astINVOKE(V,astClearFont_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetFont(this,axis) \
astINVOKE(V,astGetFont_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetFont(this,axis,font) \
astINVOKE(V,astSetFont_(astCheckPlot(this),axis,font,STATUS_PTR))
#define astTestFont(this,axis) \
astINVOKE(V,astTestFont_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearColour(this,axis) \
astINVOKE(V,astClearColour_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetColour(this,axis) \
astINVOKE(V,astGetColour_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetColour(this,axis,colour) \
astINVOKE(V,astSetColour_(astCheckPlot(this),axis,colour,STATUS_PTR))
#define astTestColour(this,axis) \
astINVOKE(V,astTestColour_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearWidth(this,axis) \
astINVOKE(V,astClearWidth_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetWidth(this,axis) \
astINVOKE(V,astGetWidth_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetWidth(this,axis,width) \
astINVOKE(V,astSetWidth_(astCheckPlot(this),axis,width,STATUS_PTR))
#define astTestWidth(this,axis) \
astINVOKE(V,astTestWidth_(astCheckPlot(this),axis,STATUS_PTR))
#define astClearSize(this,axis) \
astINVOKE(V,astClearSize_(astCheckPlot(this),axis,STATUS_PTR))
#define astGetSize(this,axis) \
astINVOKE(V,astGetSize_(astCheckPlot(this),axis,STATUS_PTR))
#define astSetSize(this,axis,size) \
astINVOKE(V,astSetSize_(astCheckPlot(this),axis,size,STATUS_PTR))
#define astTestSize(this,axis) \
astINVOKE(V,astTestSize_(astCheckPlot(this),axis,STATUS_PTR))
#endif
#endif