xref: /petsc/src/sys/classes/draw/impls/null/drawnull.c (revision a7e8706a476e2c77fccf20041dd82cd54aa347de)
145f3bb6eSLisandro Dalcin #include <petsc/private/drawimpl.h>                        /*I  "petscdraw.h" I*/
245f3bb6eSLisandro Dalcin 
345f3bb6eSLisandro Dalcin #undef __FUNCT__
445f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawCoordinateToPixel_Null"
5*a7e8706aSLisandro Dalcin static PetscErrorCode PetscDrawCoordinateToPixel_Null(PetscDraw draw,PetscReal x,PetscReal y,int *i,int *j)
645f3bb6eSLisandro Dalcin {
745f3bb6eSLisandro Dalcin   PetscFunctionBegin;
845f3bb6eSLisandro Dalcin   *i = *j = 0;
945f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
1045f3bb6eSLisandro Dalcin }
1145f3bb6eSLisandro Dalcin 
1245f3bb6eSLisandro Dalcin #undef __FUNCT__
1345f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawPixelToCoordinate_Null"
14*a7e8706aSLisandro Dalcin static PetscErrorCode PetscDrawPixelToCoordinate_Null(PetscDraw draw,int i,int j,PetscReal *x,PetscReal *y)
1545f3bb6eSLisandro Dalcin {
1645f3bb6eSLisandro Dalcin   PetscFunctionBegin;
1745f3bb6eSLisandro Dalcin   *x = *y = 0;
1845f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
1945f3bb6eSLisandro Dalcin }
2045f3bb6eSLisandro Dalcin 
2145f3bb6eSLisandro Dalcin #undef __FUNCT__
2245f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawPoint_Null"
2345f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawPoint_Null(PetscDraw draw,PetscReal x,PetscReal y,int c)
2445f3bb6eSLisandro Dalcin {
2545f3bb6eSLisandro Dalcin   PetscFunctionBegin;
2645f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
2745f3bb6eSLisandro Dalcin }
2845f3bb6eSLisandro Dalcin 
2945f3bb6eSLisandro Dalcin #undef __FUNCT__
3045f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawPointPixel_Null"
31*a7e8706aSLisandro Dalcin static PetscErrorCode PetscDrawPointPixel_Null(PetscDraw draw,int x,int y,int c)
3245f3bb6eSLisandro Dalcin {
3345f3bb6eSLisandro Dalcin   PetscFunctionBegin;
3445f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
3545f3bb6eSLisandro Dalcin }
3645f3bb6eSLisandro Dalcin 
3745f3bb6eSLisandro Dalcin #undef __FUNCT__
3845f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawLineGetWidth_Null"
3945f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawLineGetWidth_Null(PetscDraw draw,PetscReal *width)
4045f3bb6eSLisandro Dalcin {
4145f3bb6eSLisandro Dalcin   PetscFunctionBegin;
4245f3bb6eSLisandro Dalcin   if (width) *width = 0.01;
4345f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
4445f3bb6eSLisandro Dalcin }
4545f3bb6eSLisandro Dalcin 
4645f3bb6eSLisandro Dalcin #undef __FUNCT__
4745f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawLine_Null"
4845f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawLine_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int cl)
4945f3bb6eSLisandro Dalcin {
5045f3bb6eSLisandro Dalcin   PetscFunctionBegin;
5145f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
5245f3bb6eSLisandro Dalcin }
5345f3bb6eSLisandro Dalcin 
5445f3bb6eSLisandro Dalcin #undef __FUNCT__
5545f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawArrow_Null"
5645f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawArrow_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int cl)
5745f3bb6eSLisandro Dalcin {
5845f3bb6eSLisandro Dalcin   PetscFunctionBegin;
5945f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
6045f3bb6eSLisandro Dalcin }
6145f3bb6eSLisandro Dalcin 
6245f3bb6eSLisandro Dalcin #undef __FUNCT__
6345f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawRectangle_Null"
6445f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawRectangle_Null(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int c1,int c2,int c3,int c4)
6545f3bb6eSLisandro Dalcin {
6645f3bb6eSLisandro Dalcin   PetscFunctionBegin;
6745f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
6845f3bb6eSLisandro Dalcin }
6945f3bb6eSLisandro Dalcin 
7045f3bb6eSLisandro Dalcin #undef __FUNCT__
7145f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawEllipse_Null"
7245f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawEllipse_Null(PetscDraw Win,PetscReal x,PetscReal y,PetscReal a,PetscReal b,int c)
7345f3bb6eSLisandro Dalcin {
7445f3bb6eSLisandro Dalcin   PetscFunctionBegin;
7545f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
7645f3bb6eSLisandro Dalcin }
7745f3bb6eSLisandro Dalcin 
7845f3bb6eSLisandro Dalcin #undef __FUNCT__
7945f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawTriangle_Null"
8045f3bb6eSLisandro 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)
8145f3bb6eSLisandro Dalcin {
8245f3bb6eSLisandro Dalcin   PetscFunctionBegin;
8345f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
8445f3bb6eSLisandro Dalcin }
8545f3bb6eSLisandro Dalcin 
8645f3bb6eSLisandro Dalcin #undef __FUNCT__
8745f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawStringGetSize_Null"
8845f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawStringGetSize_Null(PetscDraw draw,PetscReal *x,PetscReal  *y)
8945f3bb6eSLisandro Dalcin {
9045f3bb6eSLisandro Dalcin   PetscFunctionBegin;
9145f3bb6eSLisandro Dalcin   if (x) *x = 0.01;
9245f3bb6eSLisandro Dalcin   if (y) *y = 0.01;
9345f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
9445f3bb6eSLisandro Dalcin }
9545f3bb6eSLisandro Dalcin 
9645f3bb6eSLisandro Dalcin #undef __FUNCT__
9745f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawString_Null"
9845f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawString_Null(PetscDraw draw,PetscReal x,PetscReal y,int c,const char chrs[])
9945f3bb6eSLisandro Dalcin {
10045f3bb6eSLisandro Dalcin   PetscFunctionBegin;
10145f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
10245f3bb6eSLisandro Dalcin }
10345f3bb6eSLisandro Dalcin 
10445f3bb6eSLisandro Dalcin #undef __FUNCT__
10545f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawStringVertical_Null"
10645f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawStringVertical_Null(PetscDraw draw,PetscReal x,PetscReal y,int c,const char chrs[])
10745f3bb6eSLisandro Dalcin {
10845f3bb6eSLisandro Dalcin   PetscFunctionBegin;
10945f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
11045f3bb6eSLisandro Dalcin }
11145f3bb6eSLisandro Dalcin 
11245f3bb6eSLisandro Dalcin #undef __FUNCT__
11345f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawStringBoxed_Null"
11445f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawStringBoxed_Null(PetscDraw draw,PetscReal sxl,PetscReal syl,int sc,int bc,const char text[],PetscReal *w,PetscReal *h)
11545f3bb6eSLisandro Dalcin {
11645f3bb6eSLisandro Dalcin   PetscFunctionBegin;
11745f3bb6eSLisandro Dalcin   if (w) *w = 0.01;
11845f3bb6eSLisandro Dalcin   if (h) *h = 0.01;
11945f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
12045f3bb6eSLisandro Dalcin }
12145f3bb6eSLisandro Dalcin 
12245f3bb6eSLisandro Dalcin #undef __FUNCT__
12345f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawGetSingleton_Null"
12445f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawGetSingleton_Null(PetscDraw draw,PetscDraw *sdraw)
12545f3bb6eSLisandro Dalcin {
12645f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
12745f3bb6eSLisandro Dalcin   PetscFunctionBegin;
12845f3bb6eSLisandro Dalcin   ierr = PetscDrawOpenNull(PETSC_COMM_SELF,sdraw);CHKERRQ(ierr);
12945f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
13045f3bb6eSLisandro Dalcin }
13145f3bb6eSLisandro Dalcin 
13245f3bb6eSLisandro Dalcin #undef __FUNCT__
13345f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawRestoreSingleton_Null"
13445f3bb6eSLisandro Dalcin static PetscErrorCode PetscDrawRestoreSingleton_Null(PetscDraw draw,PetscDraw *sdraw)
13545f3bb6eSLisandro Dalcin {
13645f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
13745f3bb6eSLisandro Dalcin   PetscFunctionBegin;
13845f3bb6eSLisandro Dalcin   ierr = PetscDrawDestroy(sdraw);CHKERRQ(ierr);
13945f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
14045f3bb6eSLisandro Dalcin }
14145f3bb6eSLisandro Dalcin 
14245f3bb6eSLisandro Dalcin 
14345f3bb6eSLisandro Dalcin static struct _PetscDrawOps DvOps = { NULL,/*PetscDrawSetDoubleBuffer_Null*/
14445f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawFlush_Null*/
14545f3bb6eSLisandro Dalcin                                       PetscDrawLine_Null,
14645f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawLineSetWidth_Null*/
14745f3bb6eSLisandro Dalcin                                       PetscDrawLineGetWidth_Null,
14845f3bb6eSLisandro Dalcin                                       PetscDrawPoint_Null,
14945f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawPointSetSize_Null*/
15045f3bb6eSLisandro Dalcin                                       PetscDrawString_Null,
15145f3bb6eSLisandro Dalcin                                       PetscDrawStringVertical_Null,
15245f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawStringSetSize_Null*/
15345f3bb6eSLisandro Dalcin                                       PetscDrawStringGetSize_Null,
15445f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSetViewport_Null*/
15545f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawClear_Null*/
15645f3bb6eSLisandro Dalcin                                       PetscDrawRectangle_Null,
15745f3bb6eSLisandro Dalcin                                       PetscDrawTriangle_Null,
15845f3bb6eSLisandro Dalcin                                       PetscDrawEllipse_Null,
15945f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawGetMouseButton_Null*/
16045f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawPause_Null*/
16145f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawBeginPage_Null*/
16245f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawEndPage_Null*/
16345f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawGetPopup_Null*/
16445f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSetTitle_Null*/
16545f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawCheckResizedWindow_Null*/
16645f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawResizeWindow_Null*/
16745f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawDestroy_Null*/
16845f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawView_Null*/
16945f3bb6eSLisandro Dalcin                                       PetscDrawGetSingleton_Null,
17045f3bb6eSLisandro Dalcin                                       PetscDrawRestoreSingleton_Null,
17145f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSave_Null*/
17245f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawGetImage_Null*/
17345f3bb6eSLisandro Dalcin                                       NULL,/*PetscDrawSetCoordinates_Null*/
17445f3bb6eSLisandro Dalcin                                       PetscDrawArrow_Null,
17545f3bb6eSLisandro Dalcin                                       PetscDrawCoordinateToPixel_Null,
17645f3bb6eSLisandro Dalcin                                       PetscDrawPixelToCoordinate_Null,
17745f3bb6eSLisandro Dalcin                                       PetscDrawPointPixel_Null,
17845f3bb6eSLisandro Dalcin                                       PetscDrawStringBoxed_Null};
17945f3bb6eSLisandro Dalcin 
18045f3bb6eSLisandro Dalcin 
18145f3bb6eSLisandro Dalcin /*MC
18245f3bb6eSLisandro Dalcin      PETSC_DRAW_NULL - PETSc graphics device that ignores all draw commands
18345f3bb6eSLisandro Dalcin 
18445f3bb6eSLisandro Dalcin    Level: beginner
18545f3bb6eSLisandro Dalcin 
18645f3bb6eSLisandro Dalcin .seealso:  PetscDrawOpenNull(), PetscDrawIsNull()
18745f3bb6eSLisandro Dalcin M*/
18845f3bb6eSLisandro Dalcin PETSC_EXTERN PetscErrorCode PetscDrawCreate_Null(PetscDraw);
18945f3bb6eSLisandro Dalcin 
19045f3bb6eSLisandro Dalcin #undef __FUNCT__
19145f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawCreate_Null"
19245f3bb6eSLisandro Dalcin PETSC_EXTERN PetscErrorCode PetscDrawCreate_Null(PetscDraw draw)
19345f3bb6eSLisandro Dalcin {
19445f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
19545f3bb6eSLisandro Dalcin   PetscFunctionBegin;
19645f3bb6eSLisandro Dalcin   draw->pause   = 0;
19745f3bb6eSLisandro Dalcin   draw->coor_xl = 0; draw->coor_xr = 1;
19845f3bb6eSLisandro Dalcin   draw->coor_yl = 0; draw->coor_yr = 1;
19945f3bb6eSLisandro Dalcin   draw->port_xl = 0; draw->port_xr = 1;
20045f3bb6eSLisandro Dalcin   draw->port_yl = 0; draw->port_yr = 1;
20145f3bb6eSLisandro Dalcin   ierr = PetscDrawDestroy(&draw->popup);CHKERRQ(ierr);
20245f3bb6eSLisandro Dalcin 
20345f3bb6eSLisandro Dalcin   ierr = PetscMemcpy(draw->ops,&DvOps,sizeof(DvOps));CHKERRQ(ierr);
20445f3bb6eSLisandro Dalcin   draw->data = NULL;
20545f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
20645f3bb6eSLisandro Dalcin }
20745f3bb6eSLisandro Dalcin 
20845f3bb6eSLisandro Dalcin #undef __FUNCT__
20945f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawOpenNull"
21045f3bb6eSLisandro Dalcin /*@
21145f3bb6eSLisandro Dalcin    PetscDrawOpenNull - Opens a null drawing context. All draw commands to
21245f3bb6eSLisandro Dalcin    it are ignored.
21345f3bb6eSLisandro Dalcin 
21445f3bb6eSLisandro Dalcin    Output Parameter:
21545f3bb6eSLisandro Dalcin .  draw - the drawing context
21645f3bb6eSLisandro Dalcin 
21745f3bb6eSLisandro Dalcin    Level: advanced
21845f3bb6eSLisandro Dalcin @*/
21945f3bb6eSLisandro Dalcin PetscErrorCode  PetscDrawOpenNull(MPI_Comm comm,PetscDraw *win)
22045f3bb6eSLisandro Dalcin {
22145f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
22245f3bb6eSLisandro Dalcin 
22345f3bb6eSLisandro Dalcin   PetscFunctionBegin;
22445f3bb6eSLisandro Dalcin   ierr = PetscDrawCreate(comm,NULL,NULL,0,0,1,1,win);CHKERRQ(ierr);
22545f3bb6eSLisandro Dalcin   ierr = PetscDrawSetType(*win,PETSC_DRAW_NULL);CHKERRQ(ierr);
22645f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
22745f3bb6eSLisandro Dalcin }
22845f3bb6eSLisandro Dalcin 
22945f3bb6eSLisandro Dalcin #undef __FUNCT__
23045f3bb6eSLisandro Dalcin #define __FUNCT__ "PetscDrawIsNull"
23145f3bb6eSLisandro Dalcin /*@
23245f3bb6eSLisandro Dalcin    PetscDrawIsNull - Returns PETSC_TRUE if draw is a null draw object.
23345f3bb6eSLisandro Dalcin 
23445f3bb6eSLisandro Dalcin    Not collective
23545f3bb6eSLisandro Dalcin 
23645f3bb6eSLisandro Dalcin    Input Parameter:
23745f3bb6eSLisandro Dalcin .  draw - the draw context
23845f3bb6eSLisandro Dalcin 
23945f3bb6eSLisandro Dalcin    Output Parameter:
24045f3bb6eSLisandro Dalcin .  yes - PETSC_TRUE if it is a null draw object; otherwise PETSC_FALSE
24145f3bb6eSLisandro Dalcin 
24245f3bb6eSLisandro Dalcin    Level: advanced
24345f3bb6eSLisandro Dalcin @*/
24445f3bb6eSLisandro Dalcin PetscErrorCode  PetscDrawIsNull(PetscDraw draw,PetscBool *yes)
24545f3bb6eSLisandro Dalcin {
24645f3bb6eSLisandro Dalcin   PetscErrorCode ierr;
24745f3bb6eSLisandro Dalcin 
24845f3bb6eSLisandro Dalcin   PetscFunctionBegin;
24945f3bb6eSLisandro Dalcin   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
25045f3bb6eSLisandro Dalcin   PetscValidIntPointer(yes,2);
25145f3bb6eSLisandro Dalcin   ierr = PetscObjectTypeCompare((PetscObject)draw,PETSC_DRAW_NULL,yes);CHKERRQ(ierr);
25245f3bb6eSLisandro Dalcin   PetscFunctionReturn(0);
25345f3bb6eSLisandro Dalcin }
254