xref: /petsc/src/sys/classes/draw/impls/null/drawnull.c (revision 45f3bb6e2ab689450ec389543af70463a1ef8274)
1*45f3bb6eSLisandro Dalcin #include <petsc/private/drawimpl.h>                        /*I  "petscdraw.h" I*/
2*45f3bb6eSLisandro Dalcin 
3*45f3bb6eSLisandro Dalcin #undef __FUNCT__
4*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawCoordinateToPixel_Null"
5*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawCoordinateToPixel_Null(PetscDraw draw,PetscReal x,PetscReal y,PetscInt *i,PetscInt *j)
6*45f3bb6eSLisandro Dalcin {
7*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
8*45f3bb6eSLisandro Dalcin   *i = *j = 0;
9*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
10*45f3bb6eSLisandro Dalcin }
11*45f3bb6eSLisandro Dalcin 
12*45f3bb6eSLisandro Dalcin #undef __FUNCT__
13*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawPixelToCoordinate_Null"
14*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawPixelToCoordinate_Null(PetscDraw draw,PetscInt i,PetscInt j,PetscReal *x,PetscReal *y)
15*45f3bb6eSLisandro Dalcin {
16*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
17*45f3bb6eSLisandro Dalcin   *x = *y = 0;
18*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
19*45f3bb6eSLisandro Dalcin }
20*45f3bb6eSLisandro Dalcin 
21*45f3bb6eSLisandro Dalcin #undef __FUNCT__
22*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawPoint_Null"
23*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawPoint_Null(PetscDraw draw,PetscReal x,PetscReal y,int c)
24*45f3bb6eSLisandro Dalcin {
25*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
26*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
27*45f3bb6eSLisandro Dalcin }
28*45f3bb6eSLisandro Dalcin 
29*45f3bb6eSLisandro Dalcin #undef __FUNCT__
30*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawPointPixel_Null"
31*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawPointPixel_Null(PetscDraw draw,PetscInt x,PetscInt y,int c)
32*45f3bb6eSLisandro Dalcin {
33*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
34*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
35*45f3bb6eSLisandro Dalcin }
36*45f3bb6eSLisandro Dalcin 
37*45f3bb6eSLisandro Dalcin #undef __FUNCT__
38*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawLineGetWidth_Null"
39*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawLineGetWidth_Null(PetscDraw draw,PetscReal *width)
40*45f3bb6eSLisandro Dalcin {
41*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
42*45f3bb6eSLisandro Dalcin   if (width) *width = 0.01;
43*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
44*45f3bb6eSLisandro Dalcin }
45*45f3bb6eSLisandro Dalcin 
46*45f3bb6eSLisandro Dalcin #undef __FUNCT__
47*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawLine_Null"
48*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawLine_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int cl)
49*45f3bb6eSLisandro Dalcin {
50*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
51*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
52*45f3bb6eSLisandro Dalcin }
53*45f3bb6eSLisandro Dalcin 
54*45f3bb6eSLisandro Dalcin #undef __FUNCT__
55*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawArrow_Null"
56*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawArrow_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int cl)
57*45f3bb6eSLisandro Dalcin {
58*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
59*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
60*45f3bb6eSLisandro Dalcin }
61*45f3bb6eSLisandro Dalcin 
62*45f3bb6eSLisandro Dalcin #undef __FUNCT__
63*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawRectangle_Null"
64*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawRectangle_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int c1,int c2,int c3,int c4)
65*45f3bb6eSLisandro Dalcin {
66*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
67*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
68*45f3bb6eSLisandro Dalcin }
69*45f3bb6eSLisandro Dalcin 
70*45f3bb6eSLisandro Dalcin #undef __FUNCT__
71*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawEllipse_Null"
72*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawEllipse_Null(PetscDraw Win,PetscReal x,PetscReal y,PetscReal a,PetscReal b,int c)
73*45f3bb6eSLisandro Dalcin {
74*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
75*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
76*45f3bb6eSLisandro Dalcin }
77*45f3bb6eSLisandro Dalcin 
78*45f3bb6eSLisandro Dalcin #undef __FUNCT__
79*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawTriangle_Null"
80*45f3bb6eSLisandro Dalcin 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)
81*45f3bb6eSLisandro Dalcin {
82*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
83*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
84*45f3bb6eSLisandro Dalcin }
85*45f3bb6eSLisandro Dalcin 
86*45f3bb6eSLisandro Dalcin #undef __FUNCT__
87*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawStringGetSize_Null"
88*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawStringGetSize_Null(PetscDraw draw,PetscReal *x,PetscReal  *y)
89*45f3bb6eSLisandro Dalcin {
90*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
91*45f3bb6eSLisandro Dalcin   if (x) *x = 0.01;
92*45f3bb6eSLisandro Dalcin   if (y) *y = 0.01;
93*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
94*45f3bb6eSLisandro Dalcin }
95*45f3bb6eSLisandro Dalcin 
96*45f3bb6eSLisandro Dalcin #undef __FUNCT__
97*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawString_Null"
98*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawString_Null(PetscDraw draw,PetscReal x,PetscReal y,int c,const char chrs[])
99*45f3bb6eSLisandro Dalcin {
100*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
101*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
102*45f3bb6eSLisandro Dalcin }
103*45f3bb6eSLisandro Dalcin 
104*45f3bb6eSLisandro Dalcin #undef __FUNCT__
105*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawStringVertical_Null"
106*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawStringVertical_Null(PetscDraw draw,PetscReal x,PetscReal y,int c,const char chrs[])
107*45f3bb6eSLisandro Dalcin {
108*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
109*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
110*45f3bb6eSLisandro Dalcin }
111*45f3bb6eSLisandro Dalcin 
112*45f3bb6eSLisandro Dalcin #undef __FUNCT__
113*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawStringBoxed_Null"
114*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawStringBoxed_Null(PetscDraw draw,PetscReal sxl,PetscReal syl,int sc,int bc,const char text[],PetscReal *w,PetscReal *h)
115*45f3bb6eSLisandro Dalcin {
116*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
117*45f3bb6eSLisandro Dalcin   if (w) *w = 0.01;
118*45f3bb6eSLisandro Dalcin   if (h) *h = 0.01;
119*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
120*45f3bb6eSLisandro Dalcin }
121*45f3bb6eSLisandro Dalcin 
122*45f3bb6eSLisandro Dalcin #undef __FUNCT__
123*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawGetSingleton_Null"
124*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawGetSingleton_Null(PetscDraw draw,PetscDraw *sdraw)
125*45f3bb6eSLisandro Dalcin {
126*45f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
127*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
128*45f3bb6eSLisandro Dalcin   ierr = PetscDrawOpenNull(PETSC_COMM_SELF,sdraw);CHKERRQ(ierr);
129*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
130*45f3bb6eSLisandro Dalcin }
131*45f3bb6eSLisandro Dalcin 
132*45f3bb6eSLisandro Dalcin #undef __FUNCT__
133*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawRestoreSingleton_Null"
134*45f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawRestoreSingleton_Null(PetscDraw draw,PetscDraw *sdraw)
135*45f3bb6eSLisandro Dalcin {
136*45f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
137*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
138*45f3bb6eSLisandro Dalcin   ierr = PetscDrawDestroy(sdraw);CHKERRQ(ierr);
139*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
140*45f3bb6eSLisandro Dalcin }
141*45f3bb6eSLisandro Dalcin 
142*45f3bb6eSLisandro Dalcin 
143*45f3bb6eSLisandro Dalcin static struct _PetscDrawOps DvOps = { NULL,/*PetscDrawSetDoubleBuffer_Null*/
144*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawFlush_Null*/
145*45f3bb6eSLisandro Dalcin                                       PetscDrawLine_Null,
146*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawLineSetWidth_Null*/
147*45f3bb6eSLisandro Dalcin                                       PetscDrawLineGetWidth_Null,
148*45f3bb6eSLisandro Dalcin                                       PetscDrawPoint_Null,
149*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawPointSetSize_Null*/
150*45f3bb6eSLisandro Dalcin                                       PetscDrawString_Null,
151*45f3bb6eSLisandro Dalcin                                       PetscDrawStringVertical_Null,
152*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawStringSetSize_Null*/
153*45f3bb6eSLisandro Dalcin                                       PetscDrawStringGetSize_Null,
154*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSetViewport_Null*/
155*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawClear_Null*/
156*45f3bb6eSLisandro Dalcin                                       PetscDrawRectangle_Null,
157*45f3bb6eSLisandro Dalcin                                       PetscDrawTriangle_Null,
158*45f3bb6eSLisandro Dalcin                                       PetscDrawEllipse_Null,
159*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawGetMouseButton_Null*/
160*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawPause_Null*/
161*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawBeginPage_Null*/
162*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawEndPage_Null*/
163*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawGetPopup_Null*/
164*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSetTitle_Null*/
165*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawCheckResizedWindow_Null*/
166*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawResizeWindow_Null*/
167*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawDestroy_Null*/
168*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawView_Null*/
169*45f3bb6eSLisandro Dalcin                                       PetscDrawGetSingleton_Null,
170*45f3bb6eSLisandro Dalcin                                       PetscDrawRestoreSingleton_Null,
171*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSave_Null*/
172*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawGetImage_Null*/
173*45f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSetCoordinates_Null*/
174*45f3bb6eSLisandro Dalcin                                       PetscDrawArrow_Null,
175*45f3bb6eSLisandro Dalcin                                       PetscDrawCoordinateToPixel_Null,
176*45f3bb6eSLisandro Dalcin                                       PetscDrawPixelToCoordinate_Null,
177*45f3bb6eSLisandro Dalcin                                       PetscDrawPointPixel_Null,
178*45f3bb6eSLisandro Dalcin                                       PetscDrawStringBoxed_Null};
179*45f3bb6eSLisandro Dalcin 
180*45f3bb6eSLisandro Dalcin 
181*45f3bb6eSLisandro Dalcin /*MC
182*45f3bb6eSLisandro Dalcin      PETSC_DRAW_NULL - PETSc graphics device that ignores all draw commands
183*45f3bb6eSLisandro Dalcin 
184*45f3bb6eSLisandro Dalcin    Level: beginner
185*45f3bb6eSLisandro Dalcin 
186*45f3bb6eSLisandro Dalcin .seealso:  PetscDrawOpenNull(), PetscDrawIsNull()
187*45f3bb6eSLisandro Dalcin M*/
188*45f3bb6eSLisandro Dalcin PETSC_EXTERN PetscErrorCode PetscDrawCreate_Null(PetscDraw);
189*45f3bb6eSLisandro Dalcin 
190*45f3bb6eSLisandro Dalcin #undef __FUNCT__
191*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawCreate_Null"
192*45f3bb6eSLisandro Dalcin PETSC_EXTERN PetscErrorCode PetscDrawCreate_Null(PetscDraw draw)
193*45f3bb6eSLisandro Dalcin {
194*45f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
195*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
196*45f3bb6eSLisandro Dalcin   draw->pause   = 0;
197*45f3bb6eSLisandro Dalcin   draw->coor_xl = 0; draw->coor_xr = 1;
198*45f3bb6eSLisandro Dalcin   draw->coor_yl = 0; draw->coor_yr = 1;
199*45f3bb6eSLisandro Dalcin   draw->port_xl = 0; draw->port_xr = 1;
200*45f3bb6eSLisandro Dalcin   draw->port_yl = 0; draw->port_yr = 1;
201*45f3bb6eSLisandro Dalcin   ierr = PetscDrawDestroy(&draw->popup);CHKERRQ(ierr);
202*45f3bb6eSLisandro Dalcin 
203*45f3bb6eSLisandro Dalcin   ierr = PetscMemcpy(draw->ops,&DvOps,sizeof(DvOps));CHKERRQ(ierr);
204*45f3bb6eSLisandro Dalcin   draw->data = NULL;
205*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
206*45f3bb6eSLisandro Dalcin }
207*45f3bb6eSLisandro Dalcin 
208*45f3bb6eSLisandro Dalcin #undef __FUNCT__
209*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawOpenNull"
210*45f3bb6eSLisandro Dalcin /*@
211*45f3bb6eSLisandro Dalcin    PetscDrawOpenNull - Opens a null drawing context. All draw commands to
212*45f3bb6eSLisandro Dalcin    it are ignored.
213*45f3bb6eSLisandro Dalcin 
214*45f3bb6eSLisandro Dalcin    Output Parameter:
215*45f3bb6eSLisandro Dalcin .  draw - the drawing context
216*45f3bb6eSLisandro Dalcin 
217*45f3bb6eSLisandro Dalcin    Level: advanced
218*45f3bb6eSLisandro Dalcin @*/
219*45f3bb6eSLisandro Dalcin PetscErrorCode  PetscDrawOpenNull(MPI_Comm comm,PetscDraw *win)
220*45f3bb6eSLisandro Dalcin {
221*45f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
222*45f3bb6eSLisandro Dalcin 
223*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
224*45f3bb6eSLisandro Dalcin   ierr = PetscDrawCreate(comm,NULL,NULL,0,0,1,1,win);CHKERRQ(ierr);
225*45f3bb6eSLisandro Dalcin   ierr = PetscDrawSetType(*win,PETSC_DRAW_NULL);CHKERRQ(ierr);
226*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
227*45f3bb6eSLisandro Dalcin }
228*45f3bb6eSLisandro Dalcin 
229*45f3bb6eSLisandro Dalcin #undef __FUNCT__
230*45f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawIsNull"
231*45f3bb6eSLisandro Dalcin /*@
232*45f3bb6eSLisandro Dalcin    PetscDrawIsNull - Returns PETSC_TRUE if draw is a null draw object.
233*45f3bb6eSLisandro Dalcin 
234*45f3bb6eSLisandro Dalcin    Not collective
235*45f3bb6eSLisandro Dalcin 
236*45f3bb6eSLisandro Dalcin    Input Parameter:
237*45f3bb6eSLisandro Dalcin .  draw - the draw context
238*45f3bb6eSLisandro Dalcin 
239*45f3bb6eSLisandro Dalcin    Output Parameter:
240*45f3bb6eSLisandro Dalcin .  yes - PETSC_TRUE if it is a null draw object; otherwise PETSC_FALSE
241*45f3bb6eSLisandro Dalcin 
242*45f3bb6eSLisandro Dalcin    Level: advanced
243*45f3bb6eSLisandro Dalcin @*/
244*45f3bb6eSLisandro Dalcin PetscErrorCode  PetscDrawIsNull(PetscDraw draw,PetscBool *yes)
245*45f3bb6eSLisandro Dalcin {
246*45f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
247*45f3bb6eSLisandro Dalcin 
248*45f3bb6eSLisandro Dalcin   PetscFunctionBegin;
249*45f3bb6eSLisandro Dalcin   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
250*45f3bb6eSLisandro Dalcin   PetscValidIntPointer(yes,2);
251*45f3bb6eSLisandro Dalcin   ierr = PetscObjectTypeCompare((PetscObject)draw,PETSC_DRAW_NULL,yes);CHKERRQ(ierr);
252*45f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
253*45f3bb6eSLisandro Dalcin }
254