xref: /petsc/include/petscdraw.h (revision 34a5a0e39f4fa5cd9fe19b870259d13e29d2f96e)
143e6b640SBarry Smith /*
23fdcb5c1SBarry Smith   Interface to the PETSc graphics (currently only support for X-windows
343e6b640SBarry Smith */
40a835dfdSSatish Balay #if !defined(__PETSCDRAW_H)
50a835dfdSSatish Balay #define __PETSCDRAW_H
62c8e378dSBarry Smith #include <petscsys.h>
79804daf3SBarry Smith #include <petscdrawtypes.h>
843e6b640SBarry Smith 
9014dd563SJed Brown PETSC_EXTERN PetscClassId PETSC_DRAW_CLASSID;
10f0479e8cSBarry Smith 
1176bdecfbSBarry Smith /*J
12b9617806SBarry Smith     PetscDrawType - String with the name of a PetscDraw
13b9617806SBarry Smith 
14b9617806SBarry Smith    Level: beginner
15b9617806SBarry Smith 
16b9617806SBarry Smith .seealso: PetscDrawSetType(), PetscDraw, PetscViewer
1776bdecfbSBarry Smith J*/
1819fd82e9SBarry Smith typedef const char* PetscDrawType;
19b0a32e0cSBarry Smith #define PETSC_DRAW_X          "x"
202bb71753SBarry Smith #define PETSC_DRAW_GLUT       "glut"
212bb71753SBarry Smith #define PETSC_DRAW_OPENGLES   "opengles"
22b0a32e0cSBarry Smith #define PETSC_DRAW_NULL       "null"
23b0a32e0cSBarry Smith #define PETSC_DRAW_WIN32      "win32"
2442963b84SBarry Smith #define PETSC_DRAW_TIKZ       "tikz"
25d6dfbf8fSBarry Smith 
26140e18c1SBarry Smith PETSC_EXTERN PetscFunctionList PetscDrawList;
27014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawRegisterAll(const char[]);
28014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawInitializePackage(const char[]);
29014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawRegisterDestroy(void);
307b2a1423SBarry Smith 
31014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawRegister(const char*,const char*,const char*,PetscErrorCode(*)(PetscDraw));
3230de9b25SBarry Smith 
3330de9b25SBarry Smith /*MC
34f2ba6396SBarry Smith    PetscDrawRegisterDynamic - Adds a method to the graphics package.
3530de9b25SBarry Smith 
3630de9b25SBarry Smith    Synopsis:
37f2ba6396SBarry Smith    #include "petscdraw.h"
381890ba74SBarry Smith    PetscErrorCode PetscDrawRegisterDynamic(const char *name_solver,const char *path,const char *name_create,PetscErrorCode (*routine_create)(PetscDraw))
3930de9b25SBarry Smith 
4030de9b25SBarry Smith    Not Collective
4130de9b25SBarry Smith 
4230de9b25SBarry Smith    Input Parameters:
4330de9b25SBarry Smith +  name_solver - name of a new user-defined solver
4430de9b25SBarry Smith .  path - path (either absolute or relative) the library containing this solver
4530de9b25SBarry Smith .  name_create - name of routine to create method context
4630de9b25SBarry Smith -  routine_create - routine to create method context
4730de9b25SBarry Smith 
4830de9b25SBarry Smith    Level: developer
4930de9b25SBarry Smith 
5030de9b25SBarry Smith    Notes:
5130de9b25SBarry Smith    PetscDrawRegisterDynamic() may be called multiple times to add several user-defined solvers.
5230de9b25SBarry Smith 
5330de9b25SBarry Smith    If dynamic libraries are used, then the fourth input argument (routine_create)
5430de9b25SBarry Smith    is ignored.
5530de9b25SBarry Smith 
5630de9b25SBarry Smith    Sample usage:
5730de9b25SBarry Smith .vb
5830de9b25SBarry Smith    PetscDrawRegisterDynamic("my_draw_type",/home/username/my_lib/lib/libO/solaris/mylib.a,
5930de9b25SBarry Smith                "MyDrawCreate",MyDrawCreate);
6030de9b25SBarry Smith .ve
6130de9b25SBarry Smith 
6230de9b25SBarry Smith    Then, your solver can be chosen with the procedural interface via
6330de9b25SBarry Smith $     PetscDrawSetType(ksp,"my_draw_type")
6430de9b25SBarry Smith    or at runtime via the option
6530de9b25SBarry Smith $     -draw_type my_draw_type
6630de9b25SBarry Smith 
6730de9b25SBarry Smith    Concepts: graphics^registering new draw classes
6830de9b25SBarry Smith    Concepts: PetscDraw^registering new draw classes
6930de9b25SBarry Smith 
7030de9b25SBarry Smith .seealso: PetscDrawRegisterAll(), PetscDrawRegisterDestroy()
7130de9b25SBarry Smith M*/
72aa482453SBarry Smith #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
73b0a32e0cSBarry Smith #define PetscDrawRegisterDynamic(a,b,c,d) PetscDrawRegister(a,b,c,0)
747b2a1423SBarry Smith #else
75b0a32e0cSBarry Smith #define PetscDrawRegisterDynamic(a,b,c,d) PetscDrawRegister(a,b,c,d)
767b2a1423SBarry Smith #endif
7730de9b25SBarry Smith 
7819fd82e9SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawGetType(PetscDraw,PetscDrawType*);
7919fd82e9SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawSetType(PetscDraw,PetscDrawType);
80014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawCreate(MPI_Comm,const char[],const char[],int,int,int,int,PetscDraw*);
81014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSetFromOptions(PetscDraw);
82014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSetSave(PetscDraw,const char*,PetscBool);
837b2a1423SBarry Smith 
840752156aSBarry Smith /*
850752156aSBarry Smith    Number of basic colors in the draw routines, the others are used
860752156aSBarry Smith    for a uniform colormap.
870752156aSBarry Smith */
88b0a32e0cSBarry Smith #define PETSC_DRAW_BASIC_COLORS 33
890752156aSBarry Smith 
90b0a32e0cSBarry Smith #define PETSC_DRAW_ROTATE          -1         /* will rotate through the colors, start with 2 */
91b0a32e0cSBarry Smith #define PETSC_DRAW_WHITE            0
92b0a32e0cSBarry Smith #define PETSC_DRAW_BLACK            1
93b0a32e0cSBarry Smith #define PETSC_DRAW_RED              2
94799879dbSBarry Smith #define PETSC_DRAW_GREEN            3
95b0a32e0cSBarry Smith #define PETSC_DRAW_CYAN             4
96b0a32e0cSBarry Smith #define PETSC_DRAW_BLUE             5
97b0a32e0cSBarry Smith #define PETSC_DRAW_MAGENTA          6
98b0a32e0cSBarry Smith #define PETSC_DRAW_AQUAMARINE       7
99b0a32e0cSBarry Smith #define PETSC_DRAW_FORESTGREEN      8
100b0a32e0cSBarry Smith #define PETSC_DRAW_ORANGE           9
101b0a32e0cSBarry Smith #define PETSC_DRAW_VIOLET          10
102b0a32e0cSBarry Smith #define PETSC_DRAW_BROWN           11
103b0a32e0cSBarry Smith #define PETSC_DRAW_PINK            12
104b0a32e0cSBarry Smith #define PETSC_DRAW_CORAL           13
105b0a32e0cSBarry Smith #define PETSC_DRAW_GRAY            14
106799879dbSBarry Smith #define PETSC_DRAW_YELLOW          15
10720563c6bSBarry Smith 
108b0a32e0cSBarry Smith #define PETSC_DRAW_GOLD            16
109b0a32e0cSBarry Smith #define PETSC_DRAW_LIGHTPINK       17
110b0a32e0cSBarry Smith #define PETSC_DRAW_MEDIUMTURQUOISE 18
111b0a32e0cSBarry Smith #define PETSC_DRAW_KHAKI           19
112b0a32e0cSBarry Smith #define PETSC_DRAW_DIMGRAY         20
113b0a32e0cSBarry Smith #define PETSC_DRAW_YELLOWGREEN     21
114b0a32e0cSBarry Smith #define PETSC_DRAW_SKYBLUE         22
115b0a32e0cSBarry Smith #define PETSC_DRAW_DARKGREEN       23
116b0a32e0cSBarry Smith #define PETSC_DRAW_NAVYBLUE        24
117b0a32e0cSBarry Smith #define PETSC_DRAW_SANDYBROWN      25
118b0a32e0cSBarry Smith #define PETSC_DRAW_CADETBLUE       26
119b0a32e0cSBarry Smith #define PETSC_DRAW_POWDERBLUE      27
120b0a32e0cSBarry Smith #define PETSC_DRAW_DEEPPINK        28
121b0a32e0cSBarry Smith #define PETSC_DRAW_THISTLE         29
122b0a32e0cSBarry Smith #define PETSC_DRAW_LIMEGREEN       30
123b0a32e0cSBarry Smith #define PETSC_DRAW_LAVENDERBLUSH   31
124b0a32e0cSBarry Smith #define PETSC_DRAW_PLUM            32
1250752156aSBarry Smith 
126014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawOpenX(MPI_Comm,const char[],const char[],int,int,int,int,PetscDraw*);
1272bb71753SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawOpenGLUT(MPI_Comm,const char[],const char[],int,int,int,int,PetscDraw*);
12836f0340eSBarry Smith 
129b0a32e0cSBarry Smith #define PETSC_DRAW_FULL_SIZE    -3
130b0a32e0cSBarry Smith #define PETSC_DRAW_HALF_SIZE    -4
131b0a32e0cSBarry Smith #define PETSC_DRAW_THIRD_SIZE   -5
132b0a32e0cSBarry Smith #define PETSC_DRAW_QUARTER_SIZE -6
133e340e5c6SBarry Smith 
134014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawOpenNull(MPI_Comm,PetscDraw *);
135014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawDestroy(PetscDraw*);
136014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawIsNull(PetscDraw,PetscBool *);
13743e6b640SBarry Smith 
138014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawGetPopup(PetscDraw,PetscDraw*);
139014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawCheckResizedWindow(PetscDraw);
140014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawResizeWindow(PetscDraw,int,int);
141d4fbbf0eSBarry Smith 
142014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawScalePopup(PetscDraw,PetscReal,PetscReal);
1435311e20fSBarry Smith 
1440d18c744SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawPixelToCoordinate(PetscDraw,PetscInt,PetscInt,PetscReal*,PetscReal*);
1450d18c744SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawCoordinateToPixel(PetscDraw,PetscReal,PetscReal,PetscInt*,PetscInt*);
1460d18c744SBarry Smith 
147f9c1d6abSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawIndicatorFunction(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal,int,PetscErrorCode (*)(void*,PetscReal,PetscReal,PetscBool*),void*);
1480d18c744SBarry Smith 
149014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLine(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal,int);
150014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawArrow(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal,int);
151014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLineSetWidth(PetscDraw,PetscReal);
152014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLineGetWidth(PetscDraw,PetscReal*);
15343e6b640SBarry Smith 
154014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawPoint(PetscDraw,PetscReal,PetscReal,int);
1550d18c744SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawPointPixel(PetscDraw,PetscInt,PetscInt,int);
156014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawPointSetSize(PetscDraw,PetscReal);
1578ed539a5SBarry Smith 
158014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawRectangle(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal,int,int,int,int);
159014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawTriangle(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal,PetscReal,PetscReal,int,int,int);
160014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawEllipse(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal,int);
161014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawTensorContourPatch(PetscDraw,int,int,PetscReal*,PetscReal*,PetscReal,PetscReal,PetscReal*);
162014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawTensorContour(PetscDraw,int,int,const PetscReal[],const PetscReal[],PetscReal *);
1638ed539a5SBarry Smith 
164014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawString(PetscDraw,PetscReal,PetscReal,int,const char[]);
16589fd9fafSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawBoxedString(PetscDraw,PetscReal,PetscReal,int,int,const char[],PetscReal*,PetscReal*);
16689fd9fafSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawBoxedStringSize(PetscDraw,const char[],PetscReal*,PetscReal*);
167014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawStringVertical(PetscDraw,PetscReal,PetscReal,int,const char[]);
168014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawStringSetSize(PetscDraw,PetscReal,PetscReal);
169014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawStringGetSize(PetscDraw,PetscReal*,PetscReal*);
170d6dfbf8fSBarry Smith 
171014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSetViewPort(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal);
17284ec0469SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawGetViewPort(PetscDraw,PetscReal*,PetscReal*,PetscReal*,PetscReal*);
173014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSplitViewPort(PetscDraw);
1742bdab257SBarry Smith 
175014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSetCoordinates(PetscDraw,PetscReal,PetscReal,PetscReal,PetscReal);
176014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawGetCoordinates(PetscDraw,PetscReal*,PetscReal*,PetscReal*,PetscReal*);
1779e25ed09SBarry Smith 
178014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSetTitle(PetscDraw,const char[]);
179014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAppendTitle(PetscDraw,const char[]);
180014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawGetTitle(PetscDraw,char **);
181d4fbbf0eSBarry Smith 
182014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSetPause(PetscDraw,PetscReal);
183014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawGetPause(PetscDraw,PetscReal*);
184014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawPause(PetscDraw);
185014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSetDoubleBuffer(PetscDraw);
186014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawFlush(PetscDraw);
187014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSynchronizedFlush(PetscDraw);
188014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawClear(PetscDraw);
189014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSave(PetscDraw);
190014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSynchronizedClear(PetscDraw);
191014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawBOP(PetscDraw);
192014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawEOP(PetscDraw);
193cddf8d76SBarry Smith 
194fe9328a3SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawSetDisplay(PetscDraw,const char[]);
195014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawGetSingleton(PetscDraw,PetscDraw*);
196014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawRestoreSingleton(PetscDraw,PetscDraw*);
1976831982aSBarry Smith 
198d67fe73bSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawGetCurrentPoint(PetscDraw,PetscReal*,PetscReal*);
199d67fe73bSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawSetCurrentPoint(PetscDraw,PetscReal,PetscReal);
200d67fe73bSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawPushCurrentPoint(PetscDraw,PetscReal,PetscReal);
201d67fe73bSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawPopCurrentPoint(PetscDraw);
2021cd381d6SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawGetBoundingBox(PetscDraw,PetscReal*,PetscReal*,PetscReal*,PetscReal*);
203d67fe73bSBarry Smith 
204b9617806SBarry Smith /*E
205b9617806SBarry Smith     PetscDrawButton - Used to determine which button was pressed
206b9617806SBarry Smith 
207b9617806SBarry Smith    Level: intermediate
208b9617806SBarry Smith 
209b9617806SBarry Smith .seealso: PetscDrawGetMouseButton(), PetscDrawSynchronizedGetMouseButton()
210b9617806SBarry Smith E*/
21136f0340eSBarry Smith typedef enum {PETSC_BUTTON_NONE,PETSC_BUTTON_LEFT,PETSC_BUTTON_CENTER,PETSC_BUTTON_RIGHT,PETSC_BUTTON_LEFT_SHIFT,PETSC_BUTTON_CENTER_SHIFT,PETSC_BUTTON_RIGHT_SHIFT} PetscDrawButton;
212b9617806SBarry Smith 
213014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawGetMouseButton(PetscDraw,PetscDrawButton *,PetscReal*,PetscReal *,PetscReal *,PetscReal *);
214014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSynchronizedGetMouseButton(PetscDraw,PetscDrawButton *,PetscReal*,PetscReal *,PetscReal *,PetscReal *);
21520563c6bSBarry Smith 
216014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawZoom(PetscDraw,PetscErrorCode (*)(PetscDraw,void *),void *);
2177c922b88SBarry Smith 
218b9617806SBarry Smith /*S
219b9617806SBarry Smith      PetscDrawViewPorts - Subwindows in a PetscDraw object
220b9617806SBarry Smith 
221b9617806SBarry Smith    Level: intermediate
222b9617806SBarry Smith 
223b9617806SBarry Smith   Concepts: graphics
224b9617806SBarry Smith 
225b9617806SBarry Smith .seealso:  PetscDrawViewPortsCreate(), PetscDrawViewPortsSet()
226b9617806SBarry Smith S*/
2277c922b88SBarry Smith typedef struct {
2287c307921SBarry Smith   PetscInt  nports;
22967e28bfeSBarry Smith   PetscReal *xl;
23067e28bfeSBarry Smith   PetscReal *xr;
23167e28bfeSBarry Smith   PetscReal *yl;
23267e28bfeSBarry Smith   PetscReal *yr;
233b0a32e0cSBarry Smith   PetscDraw draw;
2349f609328SBarry Smith   PetscReal port_xl,port_yl,port_xr,port_yr;   /* original port of parent PetscDraw */
2359f609328SBarry Smith 
236b0a32e0cSBarry Smith } PetscDrawViewPorts;
237014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawViewPortsCreate(PetscDraw,PetscInt,PetscDrawViewPorts**);
238014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawViewPortsCreateRect(PetscDraw,PetscInt,PetscInt,PetscDrawViewPorts**);
239014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawViewPortsDestroy(PetscDrawViewPorts*);
240014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawViewPortsSet(PetscDrawViewPorts*,PetscInt);
2417c922b88SBarry Smith 
242014dd563SJed Brown PETSC_EXTERN PetscClassId PETSC_DRAWAXIS_CLASSID;
2438ba1e511SMatthew Knepley 
244014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAxisCreate(PetscDraw,PetscDrawAxis *);
245014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAxisDestroy(PetscDrawAxis*);
246014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAxisDraw(PetscDrawAxis);
247014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAxisSetLimits(PetscDrawAxis,PetscReal,PetscReal,PetscReal,PetscReal);
2480d18c744SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawAxisGetLimits(PetscDrawAxis,PetscReal*,PetscReal*,PetscReal*,PetscReal*);
249014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAxisSetHoldLimits(PetscDrawAxis,PetscBool );
250014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAxisSetColors(PetscDrawAxis,int,int,int);
251014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawAxisSetLabels(PetscDrawAxis,const char[],const char[],const char[]);
25220563c6bSBarry Smith 
253014dd563SJed Brown PETSC_EXTERN PetscClassId PETSC_DRAWLG_CLASSID;
2548ba1e511SMatthew Knepley 
255b3603a34SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawLGCreate(PetscDraw,PetscInt,PetscDrawLG *);
256014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGDestroy(PetscDrawLG*);
257b3603a34SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawLGAddPoint(PetscDrawLG,const PetscReal*,const PetscReal*);
258aa39b21eSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawLGAddCommonPoint(PetscDrawLG,const PetscReal,const PetscReal*);
259b3603a34SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawLGAddPoints(PetscDrawLG,PetscInt,PetscReal**,PetscReal**);
260014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGDraw(PetscDrawLG);
261*34a5a0e3SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawLGView(PetscDrawLG,PetscViewer);
262014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGReset(PetscDrawLG);
263014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGSetDimension(PetscDrawLG,PetscInt);
264b3603a34SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawLGGetDimension(PetscDrawLG,PetscInt*);
265014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGSetLegend(PetscDrawLG,const char *const*);
266014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGGetAxis(PetscDrawLG,PetscDrawAxis *);
267014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGGetDraw(PetscDrawLG,PetscDraw *);
268014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGIndicateDataPoints(PetscDrawLG);
269014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGSetLimits(PetscDrawLG,PetscReal,PetscReal,PetscReal,PetscReal);
270014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGSetColors(PetscDrawLG,const int*);
27143e6b640SBarry Smith 
272014dd563SJed Brown PETSC_EXTERN PetscClassId PETSC_DRAWSP_CLASSID;
2738ba1e511SMatthew Knepley 
274014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPCreate(PetscDraw,int,PetscDrawSP *);
275014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPDestroy(PetscDrawSP*);
276014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPAddPoint(PetscDrawSP,PetscReal*,PetscReal*);
277014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPAddPoints(PetscDrawSP,int,PetscReal**,PetscReal**);
278a174af7bSBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawSPDraw(PetscDrawSP,PetscBool);
279014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPReset(PetscDrawSP);
280014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPSetDimension(PetscDrawSP,int);
281014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPGetAxis(PetscDrawSP,PetscDrawAxis *);
282014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPGetDraw(PetscDrawSP,PetscDraw *);
283014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawSPSetLimits(PetscDrawSP,PetscReal,PetscReal,PetscReal,PetscReal);
284014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawLGSPDraw(PetscDrawLG,PetscDrawSP);
285d4fbbf0eSBarry Smith 
286014dd563SJed Brown PETSC_EXTERN PetscClassId PETSC_DRAWHG_CLASSID;
2878ba1e511SMatthew Knepley 
288014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGCreate(PetscDraw,int,PetscDrawHG *);
289014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGDestroy(PetscDrawHG*);
290014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGAddValue(PetscDrawHG,PetscReal);
291014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGDraw(PetscDrawHG);
292*34a5a0e3SBarry Smith PETSC_EXTERN PetscErrorCode PetscDrawHGView(PetscDrawHG,PetscViewer);
293014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGReset(PetscDrawHG);
294014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGGetAxis(PetscDrawHG,PetscDrawAxis *);
295014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGGetDraw(PetscDrawHG,PetscDraw *);
296014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGSetLimits(PetscDrawHG,PetscReal,PetscReal,int,int);
297014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGSetNumberBins(PetscDrawHG,int);
298014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGSetColor(PetscDrawHG,int);
299014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGCalcStats(PetscDrawHG, PetscBool );
300014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawHGIntegerBins(PetscDrawHG, PetscBool );
301ba6fa466SBarry Smith 
302ba6fa466SBarry Smith /*
303b0a32e0cSBarry Smith     PetscViewer routines that allow you to access underlying PetscDraw objects
3043f1d51d7SBarry Smith */
305014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscViewerDrawGetDraw(PetscViewer,PetscInt,PetscDraw*);
306014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscViewerDrawBaseAdd(PetscViewer,PetscInt);
307014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscViewerDrawBaseSet(PetscViewer,PetscInt);
308014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscViewerDrawGetDrawLG(PetscViewer,PetscInt,PetscDrawLG*);
309014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscViewerDrawGetDrawAxis(PetscViewer,PetscInt,PetscDrawAxis*);
3105311e20fSBarry Smith 
311014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawUtilitySetCmapHue(unsigned char *,unsigned char *,unsigned char *,int);
312014dd563SJed Brown PETSC_EXTERN PetscErrorCode PetscDrawUtilitySetGamma(PetscReal);
3137c922b88SBarry Smith 
31443e6b640SBarry Smith #endif
315