1 /* This file is part of the GNU plotutils package.  Copyright (C) 1995,
2    1996, 1997, 1998, 1999, 2000, 2005, 2008, Free Software Foundation, Inc.
3 
4    The GNU plotutils package is free software.  You may redistribute it
5    and/or modify it under the terms of the GNU General Public License as
6    published by the Free Software foundation; either version 2, or (at your
7    option) any later version.
8 
9    The GNU plotutils package is distributed in the hope that it will be
10    useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    General Public License for more details.
13 
14    You should have received a copy of the GNU General Public License along
15    with the GNU plotutils package; see the file COPYING.  If not, write to
16    the Free Software Foundation, Inc., 51 Franklin St., Fifth Floor,
17    Boston, MA 02110-1301, USA. */
18 
19 /* The internal point-drawing function, which point() is a wrapper around.
20    It draws a point at the current location.  There is no standard
21    definition of `point', so any Plotter is free to implement this as it
22    sees fit. */
23 
24 /* In the AIPlotter class, a `point' is displayed as a small filled circle
25    (one of libplot's standard marker symbols). */
26 
27 #include "sys-defines.h"
28 #include "extern.h"
29 
30 void
_pl_a_paint_point(S___ (Plotter * _plotter))31 _pl_a_paint_point (S___(Plotter *_plotter))
32 {
33   double norm;
34 
35   if (_plotter->drawstate->pen_type != 0)
36     /* have a pen to draw with */
37     {
38       /* compute size of a `point' in user coordinates */
39       norm = _matrix_norm (_plotter->drawstate->transform.m);
40       if (norm != 0.0)
41 	{
42 	  double user_size;
43 
44 	  user_size = AI_SIZE_OF_POINT / _matrix_norm (_plotter->drawstate->transform.m);
45 	  _plotter->paint_marker (R___(_plotter)
46 			         (int)M_FILLED_CIRCLE, user_size);
47 	}
48     }
49 }
50