137 lines
3.1 KiB
Text
137 lines
3.1 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 dynamicTextGlyph.I
|
|
* @author drose
|
|
* @date 2002-02-09
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*/
|
|
INLINE DynamicTextGlyph::
|
|
DynamicTextGlyph(int character, DynamicTextPage *page, int x, int y,
|
|
int x_size, int y_size, int margin, PN_stdfloat advance) :
|
|
TextGlyph(character, advance),
|
|
_page(page),
|
|
_x(x), _y(y),
|
|
_x_size(x_size), _y_size(y_size),
|
|
_margin(margin)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* This constructor makes an empty glyph, whose only purpose is to remember
|
|
* its width. It has no bitmap and no Geom.
|
|
*/
|
|
INLINE DynamicTextGlyph::
|
|
DynamicTextGlyph(int character, PN_stdfloat advance) :
|
|
TextGlyph(character, advance),
|
|
_page(nullptr),
|
|
_x(0), _y(0),
|
|
_x_size(0), _y_size(0),
|
|
_margin(0)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Returns the DynamicTextPage that this glyph is on.
|
|
*/
|
|
INLINE DynamicTextPage *DynamicTextGlyph::
|
|
get_page() const {
|
|
return _page;
|
|
}
|
|
|
|
/**
|
|
* Returns true if the particular position this glyph has been assigned to
|
|
* overlaps the rectangle whose top left corner is at x, y and whose size is
|
|
* given by x_size, y_size, or false otherwise.
|
|
*/
|
|
INLINE bool DynamicTextGlyph::
|
|
intersects(int x, int y, int x_size, int y_size) const {
|
|
int hright = x + x_size;
|
|
int hbot = y + y_size;
|
|
|
|
int mright = _x + _x_size;
|
|
int mbot = _y + _y_size;
|
|
|
|
return !(x >= mright || hright <= _x ||
|
|
y >= mbot || hbot <= _y);
|
|
}
|
|
|
|
/**
|
|
* Returns the vertex coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_left() const {
|
|
return _quad_dimensions[0];
|
|
}
|
|
|
|
/**
|
|
* Returns the vertex coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_bottom() const {
|
|
return _quad_dimensions[1];
|
|
}
|
|
|
|
/**
|
|
* Returns the vertex coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_right() const {
|
|
return _quad_dimensions[2];
|
|
}
|
|
|
|
/**
|
|
* Returns the vertex coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_top() const {
|
|
return _quad_dimensions[3];
|
|
}
|
|
|
|
/**
|
|
* Returns the UV coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_uv_left() const {
|
|
return _quad_texcoords[0];
|
|
}
|
|
|
|
/**
|
|
* Returns the UV coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_uv_bottom() const {
|
|
return _quad_texcoords[1];
|
|
}
|
|
|
|
/**
|
|
* Returns the UV coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_uv_right() const {
|
|
return _quad_texcoords[2];
|
|
}
|
|
|
|
/**
|
|
* Returns the UV coordinates that can be used when creating a custom text
|
|
* renderer.
|
|
*/
|
|
INLINE PN_stdfloat DynamicTextGlyph::
|
|
get_uv_top() const {
|
|
return _quad_texcoords[3];
|
|
}
|