xref: /petsc/src/sys/classes/draw/interface/dpoint.c (revision 8f69470a7058bcc0cf21d9492705f60bbdfc5aa4)
15c6c1daeSBarry Smith 
25c6c1daeSBarry Smith /*
35c6c1daeSBarry Smith        Provides the calling sequences for all the basic PetscDraw routines.
45c6c1daeSBarry Smith */
5af0996ceSBarry Smith #include <petsc/private/drawimpl.h>  /*I "petscdraw.h" I*/
65c6c1daeSBarry Smith 
75c6c1daeSBarry Smith #undef __FUNCT__
85c6c1daeSBarry Smith #define __FUNCT__ "PetscDrawPoint"
95c6c1daeSBarry Smith /*@
105c6c1daeSBarry Smith    PetscDrawPoint - PetscDraws a point onto a drawable.
115c6c1daeSBarry Smith 
125c6c1daeSBarry Smith    Not collective
135c6c1daeSBarry Smith 
145c6c1daeSBarry Smith    Input Parameters:
155c6c1daeSBarry Smith +  draw - the drawing context
165c6c1daeSBarry Smith .  xl,yl - the coordinates of the point
175c6c1daeSBarry Smith -  cl - the color of the point
185c6c1daeSBarry Smith 
195c6c1daeSBarry Smith    Level: beginner
205c6c1daeSBarry Smith 
215c6c1daeSBarry Smith    Concepts: point^drawing
225c6c1daeSBarry Smith    Concepts: drawing^point
235c6c1daeSBarry Smith 
245c6c1daeSBarry Smith .seealso: PetscDrawPointSetSize()
255c6c1daeSBarry Smith 
265c6c1daeSBarry Smith @*/
275c6c1daeSBarry Smith PetscErrorCode  PetscDrawPoint(PetscDraw draw,PetscReal xl,PetscReal yl,int cl)
285c6c1daeSBarry Smith {
295c6c1daeSBarry Smith   PetscErrorCode ierr;
305c6c1daeSBarry Smith   PetscBool      isnull;
315c6c1daeSBarry Smith 
325c6c1daeSBarry Smith   PetscFunctionBegin;
335c6c1daeSBarry Smith   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
34*8f69470aSLisandro Dalcin   ierr = PetscDrawIsNull(draw,&isnull);CHKERRQ(ierr);
355c6c1daeSBarry Smith   if (isnull) PetscFunctionReturn(0);
36*8f69470aSLisandro Dalcin   if (!draw->ops->point) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_SUP,"This draw type %s does not support drawing points",((PetscObject)draw)->type_name);
375c6c1daeSBarry Smith   ierr = (*draw->ops->point)(draw,xl,yl,cl);CHKERRQ(ierr);
385c6c1daeSBarry Smith   PetscFunctionReturn(0);
395c6c1daeSBarry Smith }
405c6c1daeSBarry Smith 
415c6c1daeSBarry Smith #undef __FUNCT__
425c6c1daeSBarry Smith #define __FUNCT__ "PetscDrawPointPixel"
435c6c1daeSBarry Smith /*@
445c6c1daeSBarry Smith    PetscDrawPointPixel - PetscDraws a point onto a drawable, in pixel coordinates
455c6c1daeSBarry Smith 
465c6c1daeSBarry Smith    Not collective
475c6c1daeSBarry Smith 
485c6c1daeSBarry Smith    Input Parameters:
495c6c1daeSBarry Smith +  draw - the drawing context
505c6c1daeSBarry Smith .  xl,yl - the coordinates of the point
515c6c1daeSBarry Smith -  cl - the color of the point
525c6c1daeSBarry Smith 
535c6c1daeSBarry Smith    Level: beginner
545c6c1daeSBarry Smith 
555c6c1daeSBarry Smith    Concepts: point^drawing
565c6c1daeSBarry Smith    Concepts: drawing^point
575c6c1daeSBarry Smith 
585c6c1daeSBarry Smith .seealso: PetscDrawPointSetSize()
595c6c1daeSBarry Smith 
605c6c1daeSBarry Smith @*/
615c6c1daeSBarry Smith PetscErrorCode  PetscDrawPointPixel(PetscDraw draw,PetscInt xl,PetscInt yl,int cl)
625c6c1daeSBarry Smith {
635c6c1daeSBarry Smith   PetscErrorCode ierr;
645c6c1daeSBarry Smith   PetscBool      isnull;
655c6c1daeSBarry Smith 
665c6c1daeSBarry Smith   PetscFunctionBegin;
675c6c1daeSBarry Smith   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
68*8f69470aSLisandro Dalcin   ierr = PetscDrawIsNull(draw,&isnull);CHKERRQ(ierr);
695c6c1daeSBarry Smith   if (isnull) PetscFunctionReturn(0);
70*8f69470aSLisandro Dalcin   if (!draw->ops->pointpixel) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_SUP,"This draw type %s does not support drawing point pixels",((PetscObject)draw)->type_name);
715c6c1daeSBarry Smith   ierr = (*draw->ops->pointpixel)(draw,xl,yl,cl);CHKERRQ(ierr);
725c6c1daeSBarry Smith   PetscFunctionReturn(0);
735c6c1daeSBarry Smith }
74*8f69470aSLisandro Dalcin 
75*8f69470aSLisandro Dalcin #undef __FUNCT__
76*8f69470aSLisandro Dalcin #define __FUNCT__ "PetscDrawPointSetSize"
77*8f69470aSLisandro Dalcin /*@
78*8f69470aSLisandro Dalcin    PetscDrawPointSetSize - Sets the point size for future draws.  The size is
79*8f69470aSLisandro Dalcin    relative to the user coordinates of the window; 0.0 denotes the natural
80*8f69470aSLisandro Dalcin    width, 1.0 denotes the entire viewport.
81*8f69470aSLisandro Dalcin 
82*8f69470aSLisandro Dalcin    Not collective
83*8f69470aSLisandro Dalcin 
84*8f69470aSLisandro Dalcin    Input Parameters:
85*8f69470aSLisandro Dalcin +  draw - the drawing context
86*8f69470aSLisandro Dalcin -  width - the width in user coordinates
87*8f69470aSLisandro Dalcin 
88*8f69470aSLisandro Dalcin    Level: advanced
89*8f69470aSLisandro Dalcin 
90*8f69470aSLisandro Dalcin    Note:
91*8f69470aSLisandro Dalcin    Even a size of zero insures that a single pixel is colored.
92*8f69470aSLisandro Dalcin 
93*8f69470aSLisandro Dalcin    Concepts: point^drawing size
94*8f69470aSLisandro Dalcin 
95*8f69470aSLisandro Dalcin .seealso: PetscDrawPoint()
96*8f69470aSLisandro Dalcin @*/
97*8f69470aSLisandro Dalcin PetscErrorCode  PetscDrawPointSetSize(PetscDraw draw,PetscReal width)
98*8f69470aSLisandro Dalcin {
99*8f69470aSLisandro Dalcin   PetscErrorCode ierr;
100*8f69470aSLisandro Dalcin 
101*8f69470aSLisandro Dalcin   PetscFunctionBegin;
102*8f69470aSLisandro Dalcin   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
103*8f69470aSLisandro Dalcin   if (width < 0.0 || width > 1.0) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Bad size %g, should be between 0 and 1",(double)width);
104*8f69470aSLisandro Dalcin   if (draw->ops->pointsetsize) {
105*8f69470aSLisandro Dalcin     ierr = (*draw->ops->pointsetsize)(draw,width);CHKERRQ(ierr);
106*8f69470aSLisandro Dalcin   }
107*8f69470aSLisandro Dalcin   PetscFunctionReturn(0);
108*8f69470aSLisandro Dalcin }
109*8f69470aSLisandro Dalcin 
110