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