• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // This may look like C code, but it is really -*- C++ -*-
2 //
3 // Copyright Bob Friesenhahn, 2001, 2002
4 // Copyright Dirk Lemstra 2014-2018
5 //
6 // TypeMetric Definition
7 //
8 // Container for font type metrics
9 //
10 
11 #if !defined (Magick_TypeMetric_header)
12 #define Magick_TypeMetric_header
13 
14 #include "Magick++/Include.h"
15 #include "Magick++/Drawable.h"
16 
17 namespace Magick
18 {
19   class MagickPPExport TypeMetric
20   {
21     friend class Image;
22 
23   public:
24 
25     // Default constructor
26     TypeMetric(void);
27 
28     // Destructor
29     ~TypeMetric(void);
30 
31     // The distance in pixels from the text baseline to the highest/upper
32     // grid coordinate used to place an outline point.
33     double ascent(void) const;
34 
35     // The bounds of the type metric.
36     Geometry bounds(void) const;
37 
38     // The distance in pixels from the baseline to the lowest grid coordinate
39     // used to place an outline point. Always a negative value.
40     double descent(void) const;
41 
42     // Maximum horizontal advance in pixels.
43     double maxHorizontalAdvance(void) const;
44 
45     // The origin.
46     Coordinate origin(void) const;
47 
48     // The number of pixels per em.
49     Coordinate pixelsPerEm(void) const;
50 
51     // Text height in pixels.
52     double textHeight(void) const;
53 
54     // Text width in pixels.
55     double textWidth(void) const;
56 
57     // Underline position.
58     double underlinePosition(void) const;
59 
60     // Underline thickness.
61     double underlineThickness(void) const;
62 
63   private:
64     MagickCore::TypeMetric _typeMetric;
65   };
66 } // namespace Magick
67 
68 #endif // Magick_TypeMetric_header
69