#include <staticTextFont.h>
Inheritance diagram for StaticTextFont:
Public Member Functions | |
StaticTextFont (PandaNode *font_def) | |
The constructor expects the root node to a model generated via egg-mkfont, which consists of a set of models, one per each character in the font. | |
virtual void | write (ostream &out, int indent_level) const |
virtual bool | get_glyph (int character, const TextGlyph *&glyph) |
Gets the glyph associated with the given character code, as well as an optional scaling parameter that should be applied to the glyph's geometry and advance parameters. | |
bool | is_valid () const |
Returns true if the font is valid and ready to use, false otherwise. | |
float | get_line_height () const |
Returns the number of units high each line of text is. | |
void | set_line_height (float line_height) |
Changes the number of units high each line of text is. | |
float | get_space_advance () const |
Returns the number of units wide a space is. | |
void | set_space_advance (float space_advance) |
Changes the number of units wide a space is. | |
float | calc_width (int character) |
Returns the width of a single character of the font, or 0.0 if the character is not known. | |
float | calc_width (const string &line) |
Returns the width of a line of text of arbitrary characters. | |
float | calc_width (const wstring &line) |
Returns the width of a line of text of arbitrary characters. | |
string | wordwrap_to (const string &text, float wordwrap_width, bool preserve_trailing_whitespace) |
Inserts newlines into the given text at the appropriate places in order to make each line be the longest possible line that is not longer than wordwrap_width (and does not break any words, if possible). | |
wstring | wordwrap_to (const wstring &text, float wordwrap_width, bool preserve_trailing_whitespace) |
Inserts newlines into the given text at the appropriate places in order to make each line be the longest possible line that is not longer than wordwrap_width (and does not break any words, if possible). | |
virtual TypeHandle | get_type () const |
virtual TypeHandle | force_init_type () |
int | get_type_index () const |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. | |
int | get_ref_count () const |
Returns the current reference count. | |
int | ref () const |
Explicitly increments the reference count. | |
int | unref () const |
Explicitly decrements the reference count. | |
void | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. | |
void | set_name (const string &name) |
void | clear_name () |
Resets the Namable's name to empty. | |
bool | has_name () const |
Returns true if the Namable has a nonempty name set, false if the name is empty. | |
const string & | get_name () const |
void | output (ostream &out) const |
Outputs the Namable. | |
Static Public Member Functions | |
TypeHandle | get_class_type () |
void | init_type () |
Protected Attributes | |
bool | _is_valid |
float | _line_height |
float | _space_advance |
Private Member Functions | |
void | find_character_gsets (PandaNode *root, Geom *&ch, GeomPoint *&dot, const RenderState *&state, const RenderState *net_state) |
Given that 'root' is a PandaNode containing at least a polygon and a point which define the character's appearance and kern position, respectively, recursively walk the hierarchy and root and locate those two Geoms. | |
void | find_characters (PandaNode *root, const RenderState *net_state) |
Walk the hierarchy beginning at the indicated root and locate any nodes whose names are just integers. |
It doesn't require linking with any external libraries like FreeType.
Definition at line 53 of file staticTextFont.h.
|
The constructor expects the root node to a model generated via egg-mkfont, which consists of a set of models, one per each character in the font.
Definition at line 46 of file staticTextFont.cxx. |
|
Returns the width of a line of text of arbitrary characters. The line should not include the newline character. Definition at line 289 of file textFont.cxx. References TextFont::calc_width(), isspacew(), nassertr, size_t, width, and wstring. |
|
Returns the width of a line of text of arbitrary characters. The line should not include the newline character. Definition at line 123 of file textFont.cxx. References TextFont::calc_width(), and size_t. |
|
Returns the width of a single character of the font, or 0.0 if the character is not known.
Definition at line 94 of file textFont.cxx. References width. Referenced by TextFont::calc_width(), and TextFont::write(). |
|
Resets the Namable's name to empty.
Definition at line 82 of file namable.I. References Namable::_name, and INLINE. |
|
Given that 'root' is a PandaNode containing at least a polygon and a point which define the character's appearance and kern position, respectively, recursively walk the hierarchy and root and locate those two Geoms.
Definition at line 213 of file staticTextFont.cxx. References RenderState::compose(), CPT, dot(), PointerToArray< unsigned short >::empty(), NULL, root, and width. Referenced by get_glyph(). |
|
Walk the hierarchy beginning at the indicated root and locate any nodes whose names are just integers. These are taken to be characters, and their definitions and kern informations are retrieved. Definition at line 255 of file staticTextFont.cxx. |
|
Reimplemented from TypedReferenceCount. Definition at line 99 of file textFont.h. |
|
Reimplemented from Namable. Definition at line 88 of file textFont.h. |
|
Gets the glyph associated with the given character code, as well as an optional scaling parameter that should be applied to the glyph's geometry and advance parameters. Returns true if the glyph exists, false if it does not. Even if the return value is false, the value for glyph might be filled in with a printable glyph. Implements TextFont. Definition at line 184 of file staticTextFont.cxx. References RenderState::compose(), CPT, DCAST, dot(), find_character_gsets(), Geom::get_class_type(), GeomPoint::get_class_type(), GeomNode::get_geom(), GeomNode::get_geom_state(), GeomNode::get_num_geoms(), TypedObject::is_of_type(), and root. |
|
Returns the number of units high each line of text is.
Definition at line 49 of file textFont.I. References TextFont::_line_height. |
|
|
Returns the current reference count.
Definition at line 183 of file referenceCount.I. Referenced by RenderState::determine_bin_index(), RenderEffects::determine_show_bounds(), FontPool::ns_garbage_collect(), TexturePool::ns_garbage_collect(), MaterialPool::ns_get_material(), and TexturePool::ns_release_texture(). |
|
Returns the number of units wide a space is.
Definition at line 77 of file textFont.I. |
|
Reimplemented from TypedReferenceCount. Definition at line 96 of file textFont.h. |
|
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. This is equivalent to get_type().get_index(). Definition at line 71 of file typedObject.I. References TypeHandle::get_name(), TypedObject::get_type(), and INLINE. |
|
Returns true if the Namable has a nonempty name set, false if the name is empty.
Definition at line 97 of file namable.I. References Namable::get_name(), and INLINE. Referenced by EggGroupUniquifier::EggGroupUniquifier(), Texture::read(), and Texture::Texture(). |
|
Reimplemented from Namable. Definition at line 91 of file textFont.h. |
|
Returns true if the current object is the indicated type exactly.
Definition at line 101 of file typedObject.I. Referenced by PT(), and CollisionNode::xform(). |
|
|
Returns true if the font is valid and ready to use, false otherwise.
Definition at line 34 of file textFont.I. References TextFont::_line_height, and INLINE. |
|
Outputs the Namable. This function simply writes the name to the output stream; most Namable derivatives will probably redefine this. Reimplemented in BuilderBucket, AnimBundle, AnimChannelBase, AnimChannelFixed< SwitchType >, AnimGroup, PartBundle, CollisionNode, ButtonNode, HermiteCurve, RopeNode, Fog, GeomNode, LensNode, LightLensNode, LightNode, LODNode, PandaNode, PlaneNode, MouseWatcher, and MouseWatcherRegion. |
|
Explicitly increments the reference count. User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is the new reference count. Definition at line 225 of file referenceCount.I. Referenced by ClientDevice::ClientDevice(), EggGroupNode::find_textures(), EggGroupNode::r_apply_texmats(), EggGroupNode::r_flatten_transforms(), and EggGroupNode::reverse_vertex_ordering(). |
|
Changes the number of units high each line of text is.
Definition at line 64 of file textFont.I. References TextFont::_space_advance, and INLINE. |
|
Definition at line 69 of file namable.I. References Namable::_name. Referenced by BuilderBucket::BuilderBucket(), SceneGraphReducer::do_flatten_siblings(), Texture::read(), PandaNode::reparent(), and Texture::Texture(). |
|
Changes the number of units wide a space is.
Definition at line 90 of file textFont.I. |
|
Does some easy checks to make sure that the reference count isn't completely bogus.
Definition at line 328 of file referenceCount.I. References INLINE. Referenced by EggNode::determine_bin(), and ReferenceCount::~ReferenceCount(). |
|
Explicitly decrements the reference count. Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete(). User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is the new reference count. Definition at line 293 of file referenceCount.I. References INLINE. Referenced by RenderState::determine_bin_index(), and RenderEffects::determine_show_bounds(). |
|
Inserts newlines into the given text at the appropriate places in order to make each line be the longest possible line that is not longer than wordwrap_width (and does not break any words, if possible). Returns the new string. Definition at line 317 of file textFont.cxx. References isspacew(). |
|
Inserts newlines into the given text at the appropriate places in order to make each line be the longest possible line that is not longer than wordwrap_width (and does not break any words, if possible). Returns the new string. Definition at line 151 of file textFont.cxx. |
|
Reimplemented from TextFont. Definition at line 65 of file staticTextFont.cxx. |
|
Definition at line 83 of file textFont.h. |
|
Definition at line 84 of file textFont.h. Referenced by TextFont::get_line_height(), and TextFont::is_valid(). |
|
Definition at line 85 of file textFont.h. Referenced by TextFont::set_line_height(), and TextFont::TextFont(). |