xref: /petsc/src/sys/classes/draw/interface/dpoint.c (revision db7814771ca77b190574494e87b584e981451db0)
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 /*@
85c6c1daeSBarry Smith    PetscDrawPoint - PetscDraws a point onto a drawable.
95c6c1daeSBarry Smith 
105c6c1daeSBarry Smith    Not collective
115c6c1daeSBarry Smith 
125c6c1daeSBarry Smith    Input Parameters:
135c6c1daeSBarry Smith +  draw - the drawing context
145c6c1daeSBarry Smith .  xl,yl - the coordinates of the point
155c6c1daeSBarry Smith -  cl - the color of the point
165c6c1daeSBarry Smith 
175c6c1daeSBarry Smith    Level: beginner
185c6c1daeSBarry Smith 
19*db781477SPatrick Sanan .seealso: `PetscDrawPointPixel()`, `PetscDrawPointSetSize()`, `PetscDrawLine()`, `PetscDrawRectangle()`, `PetscDrawTriangle()`, `PetscDrawEllipse()`,
20*db781477SPatrick Sanan           `PetscDrawMarker()`, `PetscDrawString()`, `PetscDrawArrow()`
215c6c1daeSBarry Smith 
225c6c1daeSBarry Smith @*/
235c6c1daeSBarry Smith PetscErrorCode  PetscDrawPoint(PetscDraw draw,PetscReal xl,PetscReal yl,int cl)
245c6c1daeSBarry Smith {
255c6c1daeSBarry Smith   PetscFunctionBegin;
265c6c1daeSBarry Smith   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
2728b400f6SJacob Faibussowitsch   PetscCheck(draw->ops->point,PETSC_COMM_SELF,PETSC_ERR_SUP,"This draw type %s does not support drawing points",((PetscObject)draw)->type_name);
289566063dSJacob Faibussowitsch   PetscCall((*draw->ops->point)(draw,xl,yl,cl));
295c6c1daeSBarry Smith   PetscFunctionReturn(0);
305c6c1daeSBarry Smith }
315c6c1daeSBarry Smith 
325c6c1daeSBarry Smith /*@
335c6c1daeSBarry Smith    PetscDrawPointPixel - PetscDraws a point onto a drawable, in pixel coordinates
345c6c1daeSBarry Smith 
355c6c1daeSBarry Smith    Not collective
365c6c1daeSBarry Smith 
375c6c1daeSBarry Smith    Input Parameters:
385c6c1daeSBarry Smith +  draw - the drawing context
39a7e8706aSLisandro Dalcin .  x,y - the pixel coordinates of the point
40a7e8706aSLisandro Dalcin -  c - the color of the point
415c6c1daeSBarry Smith 
425c6c1daeSBarry Smith    Level: beginner
435c6c1daeSBarry Smith 
44*db781477SPatrick Sanan .seealso: `PetscDrawPoint()`, `PetscDrawPointSetSize()`
455c6c1daeSBarry Smith 
465c6c1daeSBarry Smith @*/
47a7e8706aSLisandro Dalcin PetscErrorCode  PetscDrawPointPixel(PetscDraw draw,int x,int y,int c)
485c6c1daeSBarry Smith {
495c6c1daeSBarry Smith   PetscFunctionBegin;
505c6c1daeSBarry Smith   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
5128b400f6SJacob Faibussowitsch   PetscCheck(draw->ops->pointpixel,PETSC_COMM_SELF,PETSC_ERR_SUP,"This draw type %s does not support drawing point pixels",((PetscObject)draw)->type_name);
529566063dSJacob Faibussowitsch   PetscCall((*draw->ops->pointpixel)(draw,x,y,c));
535c6c1daeSBarry Smith   PetscFunctionReturn(0);
545c6c1daeSBarry Smith }
558f69470aSLisandro Dalcin 
568f69470aSLisandro Dalcin /*@
578f69470aSLisandro Dalcin    PetscDrawPointSetSize - Sets the point size for future draws.  The size is
588f69470aSLisandro Dalcin    relative to the user coordinates of the window; 0.0 denotes the natural
598f69470aSLisandro Dalcin    width, 1.0 denotes the entire viewport.
608f69470aSLisandro Dalcin 
618f69470aSLisandro Dalcin    Not collective
628f69470aSLisandro Dalcin 
638f69470aSLisandro Dalcin    Input Parameters:
648f69470aSLisandro Dalcin +  draw - the drawing context
658f69470aSLisandro Dalcin -  width - the width in user coordinates
668f69470aSLisandro Dalcin 
678f69470aSLisandro Dalcin    Level: advanced
688f69470aSLisandro Dalcin 
698f69470aSLisandro Dalcin    Note:
708f69470aSLisandro Dalcin    Even a size of zero insures that a single pixel is colored.
718f69470aSLisandro Dalcin 
72*db781477SPatrick Sanan .seealso: `PetscDrawPoint()`, `PetscDrawMarker()`
738f69470aSLisandro Dalcin @*/
748f69470aSLisandro Dalcin PetscErrorCode  PetscDrawPointSetSize(PetscDraw draw,PetscReal width)
758f69470aSLisandro Dalcin {
768f69470aSLisandro Dalcin   PetscFunctionBegin;
778f69470aSLisandro Dalcin   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
782c71b3e2SJacob Faibussowitsch   PetscCheckFalse(width < 0.0 || width > 1.0,PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Bad size %g, should be between 0 and 1",(double)width);
798f69470aSLisandro Dalcin   if (draw->ops->pointsetsize) {
809566063dSJacob Faibussowitsch     PetscCall((*draw->ops->pointsetsize)(draw,width));
818f69470aSLisandro Dalcin   }
828f69470aSLisandro Dalcin   PetscFunctionReturn(0);
838f69470aSLisandro Dalcin }
84