# SoGlyph Class Reference

`#include <include/Inventor/misc/SoGlyph.h>`

List of all members.

## Detailed Description

The SoGlyph class is used to generate and reuse font glyph bitmaps and outlines.

SoGlyph is the public interface all text nodes (both built-in and extensions) should use to generate bitmaps and outlines for font glyphs. It maintains an internal cache of previously requested glyphs to avoid needless calls into the font library.

Primer: a glyph is the graphical representation of a given character of a given font at a given size and orientation. It can be either a bitmap (pixel aligned with the viewport) or an outline (polygonal representation) that can be transformed or extruded like any other 3D geometry. Bitmaps are used by SoText2, while the other text nodes uses outlines.

Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since:
  Coin 2.0

See also:
  SoText2, SoText3, SoAsciiText

## Public Member Functions

void | unref (void) const
const SbVec2f * | getCoords (void) const
const int * | getFaceIndices (void) const
const int * | getEdgeIndices (void) const
const int * | getNextCWEdge (const int edgeidx) const
const int * | getNextCCWEdge (const int edgeidx) const
float | getWidth (void) const
const SbBox2f & | getBoundingBox (void) const
SbVec2s | getAdvance (void) const
SbVec2s | getKerning (const SoGlyph &rightglyph) const
unsigned char * | getBitmap (SbVec2s &size, SbVec2s &pos, const SbBool antialiased) const

## Static Public Member Functions

const SoGlyph * | getGlyph (const char character, const SbName &font)
const SoGlyph * | getGlyph (SoState *state, const unsigned int character, const SbVec2s &size, const float angle)

## Protected Member Functions

| SoGlyph (void)
| ~SoGlyph ()
void | setCoords (SbVec2f *coords, int numcoords=-1)
void | setFaceIndices (int *indices, int numindices=-1)
void | setEdgeIndices (int *indices, int numindices=-1)

## Constructor & Destructor Documentation

SoGlyph::SoGlyph | ( | void |  | ) | `[protected]`

| Constructor.

SoGlyph::~SoGlyph | ( |  | ) | `[protected]`

| Destructor.

## Member Function Documentation

void SoGlyph::unref | ( | void |  | ) | const

| Should be called when a node no longer will use a glyph. Will free memory used by this glyph when it is no longer used by any node.

const SoGlyph * SoGlyph::getGlyph | ( | const char | character,
|  | const SbName & | font
| ) | `[static]`

| Returns a character of the specified font, suitable for polygonal rendering.

const SbVec2f * SoGlyph::getCoords | ( | void |  | ) | const

| Returns coordinates for this glyph.

const int * SoGlyph::getFaceIndices | ( | void |  | ) | const

| Returns face indices for this glyph.

const int * SoGlyph::getEdgeIndices | ( | void |  | ) | const

| Returns edge indices for this glyph.

const int * SoGlyph::getNextCWEdge | ( | const int | edgeidx | ) | const

| Returns a pointer to the next clockwise edge. Returns NULL if none could be found.

const int * SoGlyph::getNextCCWEdge | ( | const int | edgeidx | ) | const

| Returns a pointer to the next counter clockwise edge. NULL if none could be found.

float SoGlyph::getWidth | ( | void |  | ) | const

| Convenience method which returns the exact width of the glyph.

const SbBox2f & SoGlyph::getBoundingBox | ( | void |  | ) | const

| Returns the bounding box of this glyph. This value is cached for performance.

const SoGlyph * SoGlyph::getGlyph | ( | SoState * | state,
|  | const unsigned int | character,
|  | const SbVec2s & | size,
|  | const float | angle
| ) | `[static]`

| Returns a character of the specified font, suitable for bitmap rendering. The size parameter overrides state's SoFontSizeElement (if != SbVec2s(0,0))

unsigned char * SoGlyph::getBitmap | ( | SbVec2s & | size,
|  | SbVec2s & | pos,
|  | const SbBool | antialiased
| ) | const

| Bitmap for glyph. size and pos are return parameters. Antialiased bitmap graphics not yet supported. Note that this function may return `NULL` if the glyph has no visible pixels (like the space character).

void SoGlyph::setCoords | ( | SbVec2f * | coords,
|  | int | numcoords = -1
| ) | `[protected]`

| Sets the coordinates for this glyph. If numcoords > 0, the data will be copied before returing. If numcoords <= 0, coords will be used directly.

void SoGlyph::setFaceIndices | ( | int * | indices,
|  | int | numindices = -1
| ) | `[protected]`

| Sets the face indices for this glyph. If numindices > 0, the data will be copied before returning. If numcoords <= 0, indices will be used directly.

void SoGlyph::setEdgeIndices | ( | int * | indices,
|  | int | numindices = -1
| ) | `[protected]`

| Sets the edge indices for this glyph. If numindices > 0, the data will be copied before returning. If numcoords <= 0, indices will be used directly.

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

- SoGlyph.h
- SoGlyph.cpp