# osgText::Font Class Reference

Pure virtual base class for fonts. More...

Inheritance diagram for osgText::Font:

[legend]
List of all members.

## Public Member Functions

class class | Font (FontImplementation *implementation=0)
virtual osg::Object * | cloneType () const
| Clone the type of an object, with Object* return type.
virtual osg::Object * | clone (const osg::CopyOp &) const
virtual bool | isSameKindAs (const osg::Object *obj) const
virtual const char * | className () const
| return the name of the object's class type.
virtual const char * | libraryName () const
| return the name of the object's library.
virtual std::string | getFileName () const
virtual void | setSize (unsigned int width, unsigned int height)
| Set the pixel width and height hint.
unsigned int | getWidth () const
unsigned int | getHeight () const
virtual osg::Vec2 | getKerning (unsigned int leftcharcode, unsigned int rightcharcode, KerningType kerningType)
| Get a kerning (adjustment of spacing of two adjacent character) for specified charcodes, w.r.t the current font size hint.
virtual Glyph * | getGlyph (unsigned int charcode)
| Get a Glyph for specified charcode, and the font size nearest to the current font size hint.
virtual bool | hasVertical () const
| Return true if this font provides vertical alignments and spacing or glyphs.
void | setGlyphImageMargin (unsigned int margin)
| Set the margin around each glyph, to ensure that texture filtering doesn't bleed adjacent glyph's into each other.
unsigned int | getGlyphImageMargin () const
void | setTextureSizeHint (unsigned int width, unsigned int height)
| Set the size of texture to create to store the glyph images when rendering.
unsigned int | getTextureWidthHint () const
unsigned int | getTextureHeightHint () const
void | setMinFilterHint (osg::Texture::FilterMode mode)
| Set the minification texture filter to use when creating the texture to store the glyph images when rendering.
osg::Texture::FilterMode | getMinFilterHint () const
void | setMagFilterHint (osg::Texture::FilterMode mode)
| Set the magnification texture filter to use when creating the texture to store the glyph images when rendering.
osg::Texture::FilterMode | getMagFilterHint () const
void | setImplementation (FontImplementation *implementation)
FontImplementation * | getImplementation ()
const FontImplementation * | getImplementation () const

## Protected Types

typedef std::vector< osg::ref_ptr< GlyphTexture > > | GlyphTextureList
typedef std::vector< osg::ref_ptr< osg::StateSet > > | StateSetList
typedef std::map< unsigned int, osg::ref_ptr< Glyph > > | GlyphMap
typedef std::pair< unsigned int, unsigned int > | SizePair
typedef std::map< SizePair, GlyphMap > | SizeGlyphMap

## Protected Member Functions

virtual | ~Font ()
void | addGlyph (unsigned int width, unsigned int height, unsigned int charcode, Glyph *glyph)

## Protected Attributes

SizeGlyphMap | _sizeGlyphMap
GlyphTextureList | _glyphTextureList
StateSetList | _stateSetList
unsigned int | _width
unsigned int | _height
unsigned int | _margin
unsigned int | _textureWidthHint
unsigned int | _textureHeightHint
osg::Texture::FilterMode | _minFilterHint
osg::Texture::FilterMode | _magFilterHint
osg::ref_ptr< osg::TexEnv > | _texEnv
osg::ref_ptr< FontImplementation > | _implementation

## Friends

class | FontImplementation

## Classes

class | FontImplementation
class | Glyph
class | GlyphTexture

## Detailed Description

Pure virtual base class for fonts.

Concrete implementation are the DefaultFont found in src/osgText/DefaultFont.cpp and FreeTypeFont found in src/osgPlugins/freetype/FreeTypeFont.cpp

## Member Typedef Documentation

typedef std::map< unsigned int, osg::ref_ptr<Glyph> > osgText::Font::GlyphMap `[protected]`

typedef std::vector< osg::ref_ptr<GlyphTexture> > osgText::Font::GlyphTextureList `[protected]`

typedef std::map< SizePair, GlyphMap > osgText::Font::SizeGlyphMap `[protected]`

typedef std::pair< unsigned int, unsigned int > osgText::Font::SizePair `[protected]`

typedef std::vector< osg::ref_ptr<osg::StateSet> > osgText::Font::StateSetList `[protected]`

## Constructor & Destructor Documentation

Font::Font | ( | FontImplementation * | implementation = `0` | ) |

Font::~Font | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

void Font::addGlyph | ( | unsigned int | width,
|  | unsigned int | height,
|  | unsigned int | charcode,
|  | Glyph * | glyph
| ) | `[protected]`

virtual const char* osgText::Font::className | ( |  | ) | const`[inline, virtual]`

| return the name of the object's class type. Must be defined by derived classes. Implements osg::Object.

virtual osg::Object* osgText::Font::clone | ( | const osg::CopyOp & |  | ) | const`[inline, virtual]`

virtual osg::Object* osgText::Font::cloneType | ( |  | ) | const`[inline, virtual]`

| Clone the type of an object, with Object* return type. Must be defined by derived classes. Implements osg::Object.

std::string Font::getFileName | ( |  | ) | const`[virtual]`

Font::Glyph * Font::getGlyph | ( | unsigned int | charcode | ) | `[virtual]`

| Get a Glyph for specified charcode, and the font size nearest to the current font size hint.

unsigned int Font::getGlyphImageMargin | ( |  | ) | const

unsigned int Font::getHeight | ( |  | ) | const

const Font::FontImplementation * Font::getImplementation | ( |  | ) | const

Font::FontImplementation * Font::getImplementation | ( |  | ) |

osg::Vec2 Font::getKerning | ( | unsigned int | leftcharcode,
|  | unsigned int | rightcharcode,
|  | KerningType | kerningType
| ) | `[virtual]`

| Get a kerning (adjustment of spacing of two adjacent character) for specified charcodes, w.r.t the current font size hint.

osg::Texture::FilterMode Font::getMagFilterHint | ( |  | ) | const

osg::Texture::FilterMode Font::getMinFilterHint | ( |  | ) | const

unsigned int Font::getTextureHeightHint | ( |  | ) | const

unsigned int Font::getTextureWidthHint | ( |  | ) | const

unsigned int Font::getWidth | ( |  | ) | const

bool Font::hasVertical | ( |  | ) | const`[virtual]`

| Return true if this font provides vertical alignments and spacing or glyphs.

virtual bool osgText::Font::isSameKindAs | ( | const osg::Object * | obj | ) | const`[inline, virtual]`

virtual const char* osgText::Font::libraryName | ( |  | ) | const`[inline, virtual]`

| return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. Implements osg::Object.

void Font::setGlyphImageMargin | ( | unsigned int | margin | ) |

| Set the margin around each glyph, to ensure that texture filtering doesn't bleed adjacent glyph's into each other. Default margin is 2 texels.

void Font::setImplementation | ( | FontImplementation * | implementation | ) |

void Font::setMagFilterHint | ( | osg::Texture::FilterMode | mode | ) |

| Set the magnification texture filter to use when creating the texture to store the glyph images when rendering. Note, this doesn't affect already created Texture Glhph's.

void Font::setMinFilterHint | ( | osg::Texture::FilterMode | mode | ) |

| Set the minification texture filter to use when creating the texture to store the glyph images when rendering. Note, this doesn't affect already created Texture Glhph's.

void Font::setSize | ( | unsigned int | width,
|  | unsigned int | height
| ) | `[virtual]`

| Set the pixel width and height hint.

void Font::setTextureSizeHint | ( | unsigned int | width,
|  | unsigned int | height
| ) |

| Set the size of texture to create to store the glyph images when rendering. Note, this doesn't affect already created Texture Glhph's.

## Friends And Related Function Documentation

friend class FontImplementation `[friend]`

## Member Data Documentation

GlyphTextureList osgText::Font::_glyphTextureList `[protected]`

unsigned int osgText::Font::_height `[protected]`

osg::ref_ptr<FontImplementation> osgText::Font::_implementation `[protected]`

osg::Texture::FilterMode osgText::Font::_magFilterHint `[protected]`

unsigned int osgText::Font::_margin `[protected]`

osg::Texture::FilterMode osgText::Font::_minFilterHint `[protected]`

SizeGlyphMap osgText::Font::_sizeGlyphMap `[protected]`

StateSetList osgText::Font::_stateSetList `[protected]`

osg::ref_ptr<osg::TexEnv > osgText::Font::_texEnv `[protected]`

unsigned int osgText::Font::_textureHeightHint `[protected]`

unsigned int osgText::Font::_textureWidthHint `[protected]`

unsigned int osgText::Font::_width `[protected]`

The documentation for this class was generated from the following files:

- Font
- Font.cpp