summaryrefslogtreecommitdiffstats
path: root/ast/plot.h
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2017-12-08 18:59:21 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2017-12-08 18:59:21 (GMT)
commit4432c8d7e1ccb371db03e13cdb5378fceaa5ad04 (patch)
tree52449d211eba99b24d2e4f6e66193f9511c60b59 /ast/plot.h
parentd8a2dbd825159e4a57ec0c6f4465f62be9e05111 (diff)
downloadblt-4432c8d7e1ccb371db03e13cdb5378fceaa5ad04.zip
blt-4432c8d7e1ccb371db03e13cdb5378fceaa5ad04.tar.gz
blt-4432c8d7e1ccb371db03e13cdb5378fceaa5ad04.tar.bz2
upgrade AST
Diffstat (limited to 'ast/plot.h')
-rw-r--r--ast/plot.h1417
1 files changed, 1417 insertions, 0 deletions
diff --git a/ast/plot.h b/ast/plot.h
new file mode 100644
index 0000000..6f702ab
--- /dev/null
+++ b/ast/plot.h
@@ -0,0 +1,1417 @@
+#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
+* <http://www.gnu.org/licenses/>.
+
+* 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 <stddef.h>
+
+/* 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
+
+
+
+
+