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