Actual source code: drawnull.c
1: #include <petsc/private/drawimpl.h>
3: static PetscErrorCode PetscDrawCoordinateToPixel_Null(PetscDraw draw,PetscReal x,PetscReal y,int *i,int *j)
4: {
5: *i = *j = 0;
6: return 0;
7: }
9: static PetscErrorCode PetscDrawPixelToCoordinate_Null(PetscDraw draw,int i,int j,PetscReal *x,PetscReal *y)
10: {
11: *x = *y = 0;
12: return 0;
13: }
15: static PetscErrorCode PetscDrawPoint_Null(PetscDraw draw,PetscReal x,PetscReal y,int c)
16: {
17: return 0;
18: }
20: static PetscErrorCode PetscDrawPointPixel_Null(PetscDraw draw,int x,int y,int c)
21: {
22: return 0;
23: }
25: static PetscErrorCode PetscDrawLineGetWidth_Null(PetscDraw draw,PetscReal *width)
26: {
27: if (width) *width = 0.01;
28: return 0;
29: }
31: static PetscErrorCode PetscDrawLine_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int cl)
32: {
33: return 0;
34: }
36: static PetscErrorCode PetscDrawArrow_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int cl)
37: {
38: return 0;
39: }
41: static PetscErrorCode PetscDrawRectangle_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int c1,int c2,int c3,int c4)
42: {
43: return 0;
44: }
46: static PetscErrorCode PetscDrawEllipse_Null(PetscDraw Win,PetscReal x,PetscReal y,PetscReal a,PetscReal b,int c)
47: {
48: return 0;
49: }
51: static PetscErrorCode PetscDrawTriangle_Null(PetscDraw draw,PetscReal X1,PetscReal Y_1,PetscReal X2,PetscReal Y2,PetscReal X3,PetscReal Y3,int c1,int c2,int c3)
52: {
53: return 0;
54: }
56: static PetscErrorCode PetscDrawStringGetSize_Null(PetscDraw draw,PetscReal *x,PetscReal *y)
57: {
58: if (x) *x = 0.01;
59: if (y) *y = 0.01;
60: return 0;
61: }
63: static PetscErrorCode PetscDrawString_Null(PetscDraw draw,PetscReal x,PetscReal y,int c,const char chrs[])
64: {
65: return 0;
66: }
68: static PetscErrorCode PetscDrawStringVertical_Null(PetscDraw draw,PetscReal x,PetscReal y,int c,const char chrs[])
69: {
70: return 0;
71: }
73: static PetscErrorCode PetscDrawStringBoxed_Null(PetscDraw draw,PetscReal sxl,PetscReal syl,int sc,int bc,const char text[],PetscReal *w,PetscReal *h)
74: {
75: if (w) *w = 0.01;
76: if (h) *h = 0.01;
77: return 0;
78: }
80: static PetscErrorCode PetscDrawGetSingleton_Null(PetscDraw draw,PetscDraw *sdraw)
81: {
82: PetscDrawOpenNull(PETSC_COMM_SELF,sdraw);
83: return 0;
84: }
86: static PetscErrorCode PetscDrawRestoreSingleton_Null(PetscDraw draw,PetscDraw *sdraw)
87: {
88: PetscDrawDestroy(sdraw);
89: return 0;
90: }
92: static struct _PetscDrawOps DvOps = { NULL,/* PetscDrawSetDoubleBuffer_Null */
93: NULL,/* PetscDrawFlush_Null */
94: PetscDrawLine_Null,
95: NULL,/* PetscDrawLineSetWidth_Null */
96: PetscDrawLineGetWidth_Null,
97: PetscDrawPoint_Null,
98: NULL,/* PetscDrawPointSetSize_Null */
99: PetscDrawString_Null,
100: PetscDrawStringVertical_Null,
101: NULL,/* PetscDrawStringSetSize_Null */
102: PetscDrawStringGetSize_Null,
103: NULL,/* PetscDrawSetViewport_Null */
104: NULL,/* PetscDrawClear_Null */
105: PetscDrawRectangle_Null,
106: PetscDrawTriangle_Null,
107: PetscDrawEllipse_Null,
108: NULL,/* PetscDrawGetMouseButton_Null */
109: NULL,/* PetscDrawPause_Null */
110: NULL,/* PetscDrawBeginPage_Null */
111: NULL,/* PetscDrawEndPage_Null */
112: NULL,/* PetscDrawGetPopup_Null */
113: NULL,/* PetscDrawSetTitle_Null */
114: NULL,/* PetscDrawCheckResizedWindow_Null */
115: NULL,/* PetscDrawResizeWindow_Null */
116: NULL,/* PetscDrawDestroy_Null */
117: NULL,/* PetscDrawView_Null */
118: PetscDrawGetSingleton_Null,
119: PetscDrawRestoreSingleton_Null,
120: NULL,/* PetscDrawSave_Null */
121: NULL,/* PetscDrawGetImage_Null */
122: NULL,/* PetscDrawSetCoordinates_Null */
123: PetscDrawArrow_Null,
124: PetscDrawCoordinateToPixel_Null,
125: PetscDrawPixelToCoordinate_Null,
126: PetscDrawPointPixel_Null,
127: PetscDrawStringBoxed_Null};
129: /*MC
130: PETSC_DRAW_NULL - PETSc graphics device that ignores all draw commands
132: Level: beginner
134: .seealso: PetscDrawOpenNull(), PetscDrawIsNull()
135: M*/
136: PETSC_EXTERN PetscErrorCode PetscDrawCreate_Null(PetscDraw);
138: PETSC_EXTERN PetscErrorCode PetscDrawCreate_Null(PetscDraw draw)
139: {
140: draw->pause = 0;
141: draw->coor_xl = 0; draw->coor_xr = 1;
142: draw->coor_yl = 0; draw->coor_yr = 1;
143: draw->port_xl = 0; draw->port_xr = 1;
144: draw->port_yl = 0; draw->port_yr = 1;
145: PetscDrawDestroy(&draw->popup);
147: PetscMemcpy(draw->ops,&DvOps,sizeof(DvOps));
148: draw->data = NULL;
149: return 0;
150: }
152: /*@
153: PetscDrawOpenNull - Opens a null drawing context. All draw commands to
154: it are ignored.
156: Input Parameter:
157: . comm - MPI communicator
159: Output Parameter:
160: . draw - the drawing context
162: Level: advanced
163: @*/
164: PetscErrorCode PetscDrawOpenNull(MPI_Comm comm,PetscDraw *win)
165: {
166: PetscDrawCreate(comm,NULL,NULL,0,0,1,1,win);
167: PetscDrawSetType(*win,PETSC_DRAW_NULL);
168: return 0;
169: }
171: /*@
172: PetscDrawIsNull - Returns PETSC_TRUE if draw is a null draw object.
174: Not collective
176: Input Parameter:
177: . draw - the draw context
179: Output Parameter:
180: . yes - PETSC_TRUE if it is a null draw object; otherwise PETSC_FALSE
182: Level: advanced
183: @*/
184: PetscErrorCode PetscDrawIsNull(PetscDraw draw,PetscBool *yes)
185: {
188: PetscObjectTypeCompare((PetscObject)draw,PETSC_DRAW_NULL,yes);
189: return 0;
190: }