xref: /petsc/include/petscdrawtypes.h (revision 6dd63270497ad23dcf16ae500a87ff2b2a0b7474)
1 #pragma once
2 
3 /* MANSEC = Sys */
4 /* SUBMANSEC = Draw */
5 
6 /*J
7    PetscDrawType - String with the name of a `PetscDraw` implementation, for example `PETSC_DRAW_X` is for X Windows.
8 
9    Level: beginner
10 
11 .seealso: `PetscDrawSetType()`, `PetscDraw`, `PetscViewer`, `PetscDrawCreate()`, `PetscDrawRegister()`
12 J*/
13 typedef const char *PetscDrawType;
14 #define PETSC_DRAW_X     "x"
15 #define PETSC_DRAW_NULL  "null"
16 #define PETSC_DRAW_WIN32 "win32"
17 #define PETSC_DRAW_TIKZ  "tikz"
18 #define PETSC_DRAW_IMAGE "image"
19 
20 /*S
21    PetscDraw - Abstract PETSc object for graphics, often represents a window on the screen
22 
23    Level: beginner
24 
25 .seealso: `PetscDrawCreate()`, `PetscDrawSetType()`, `PetscDrawType`
26 S*/
27 typedef struct _p_PetscDraw *PetscDraw;
28 
29 /*S
30    PetscDrawAxis - An object that manages X-Y axis for a `PetscDraw`
31 
32    Level: advanced
33 
34 .seealso: `PetscDraw`, `PetscDrawAxisCreate()`, `PetscDrawAxisSetLimits()`, `PetscDrawAxisSetColors()`, `PetscDrawAxisSetLabels()`
35 S*/
36 typedef struct _p_PetscDrawAxis *PetscDrawAxis;
37 
38 /*S
39    PetscDrawLG - An object that manages drawing simple x-y plots
40 
41    Level: advanced
42 
43 .seealso: `PetscDrawAxis`, `PetscDraw`, `PetscDrawBar`, `PetscDrawHG`, `PetscDrawSP`, `PetscDrawAxisCreate()`, `PetscDrawLGCreate()`, `PetscDrawLGAddPoint()`
44 S*/
45 typedef struct _p_PetscDrawLG *PetscDrawLG;
46 
47 /*S
48    PetscDrawSP - An object that manages drawing scatter plots
49 
50    Level: advanced
51 
52 .seealso: `PetscDrawAxis`, `PetscDraw`, `PetscDrawLG`, `PetscDrawBar`, `PetscDrawHG`, `PetscDrawSPCreate()`
53 S*/
54 typedef struct _p_PetscDrawSP *PetscDrawSP;
55 
56 /*S
57    PetscDrawHG - An object that manages drawing histograms
58 
59    Level: advanced
60 
61    Note:
62    Use a series of calls to `PetscDrawHGAddValue()` to create a standard histogram <https://en.wikipedia.org/wiki/Histogram>, where the bins have integer counts.  Use calls to `PetscDrawHGAddWeightedValue()` to create a histogram with non-integer bin heights, such as the following <https://mathematica.stackexchange.com/questions/103928/histogram-from-relative-frequency-data>
63 
64 .seealso: `PetscDrawAxis`, `PetscDraw`, `PetscDrawLG`, `PetscDrawBar`, `PetscDrawSP`, `PetscDrawHGCreate()`, `PetscDrawHGAddValue()`, `PetscDrawHGAddWeightedValue()`
65 S*/
66 typedef struct _p_PetscDrawHG *PetscDrawHG;
67 
68 /*S
69    PetscDrawBar - An object that manages drawing bar graphs
70 
71    Level: advanced
72 
73 .seealso: `PetscDrawAxis`, `PetscDraw`, `PetscDrawLG`, `PetscDrawHG`, `PetscDrawSP`, `PetscDrawBarCreate()`
74 S*/
75 typedef struct _p_PetscDrawBar *PetscDrawBar;
76