open_toontown_panda3d/panda/src/text/dynamicTextGlyph.I

98 lines
3.2 KiB
Plaintext

// Filename: dynamicTextGlyph.I
// Created by: drose (09Feb02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
//
// All use of this software is subject to the terms of the Panda 3d
// Software license. You should have received a copy of this license
// along with this source code; you will also find a current copy of
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
//
// To contact the maintainers of this program write to
// panda3d-general@lists.sourceforge.net .
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: DynamicTextGlyph::Constructor
// Access: Publiic
// Description:
////////////////////////////////////////////////////////////////////
INLINE DynamicTextGlyph::
DynamicTextGlyph(int character, DynamicTextPage *page, int x, int y,
int x_size, int y_size, int margin) :
TextGlyph(character),
_page(page),
_x(x), _y(y),
_x_size(x_size), _y_size(y_size),
_margin(margin)
{
_geom_count = 0;
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextGlyph::Constructor
// Access: Publiic
// Description: 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, float advance) :
TextGlyph(character),
_page((DynamicTextPage *)NULL),
_x(0), _y(0),
_x_size(0), _y_size(0),
_margin(0)
{
_advance = advance;
_geom_count = 1;
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextGlyph::Copy Constructor
// Access: Private
// Description: Copying DynamicTextGlyph objects is not allowed.
////////////////////////////////////////////////////////////////////
INLINE DynamicTextGlyph::
DynamicTextGlyph(const DynamicTextGlyph &) :
TextGlyph(0)
{
nassertv(false);
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextGlyph::Copy Assignment Operator
// Access: Private
// Description: Copying DynamicTextGlyph objects is not allowed.
////////////////////////////////////////////////////////////////////
INLINE void DynamicTextGlyph::
operator = (const DynamicTextGlyph &) {
nassertv(false);
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextGlyph::intersects
// Access: Public
// Description: 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);
}