historical/toontown-classic.git/panda/include/pnmTextGlyph.I
2024-01-16 11:20:27 -06:00

95 lines
2.2 KiB
Text

/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file pnmTextGlyph.I
* @author drose
* @date 2003-09-07
*/
/**
* Returns the number of pixels by which the pen should be advanced after
* rendering this glyph.
*/
INLINE int PNMTextGlyph::
get_advance() const {
return _int_advance;
}
/**
* Returns the x coordinate of the leftmost pixel in the glyph.
*/
INLINE int PNMTextGlyph::
get_left() const {
return _left;
}
/**
* Returns the x coordinate of the rightmost pixel in the glyph.
*/
INLINE int PNMTextGlyph::
get_right() const {
return _left + _image.get_x_size();
}
/**
* Returns the y coordinate of the bottommost pixel in the glyph.
*/
INLINE int PNMTextGlyph::
get_bottom() const {
return _top + _image.get_y_size();
}
/**
* Returns the y coordinate of the topmost pixel in the glyph.
*/
INLINE int PNMTextGlyph::
get_top() const {
return _top;
}
/**
* Returns the height of the glyph in pixels.
*/
INLINE int PNMTextGlyph::
get_height() const {
return _image.get_y_size();
}
/**
* Returns the width of the glyph in pixels.
*/
INLINE int PNMTextGlyph::
get_width() const {
return _image.get_x_size();
}
/**
* Returns the value of the indicated pixel of the glyph. The result is in
* the range [0, 1], where 0 indicates the pixel is not part of the glyph, and
* 1 indicates it is. Intermediate values are used to represent antialiasing.
*/
INLINE double PNMTextGlyph::
get_value(int x, int y) const {
nassertr(x >= 0 && x < get_width() &&
y >= 0 && y < get_height(), 0.0);
// By convention, the "value" attribute is stored in the blue component.
return _image.get_blue(x, y);
}
/**
* Returns true if the indicated pixel represents a pixel in the interior of a
* hollow font, false otherwise.
*/
INLINE bool PNMTextGlyph::
get_interior_flag(int x, int y) const {
nassertr(x >= 0 && x < get_width() &&
y >= 0 && y < get_height(), false);
// By convention, the "interior_value" attribute is stored in the red
// component.
return _image.get_red_val(x, y) != 0;
}