vtkFreeTypeUtilities Class Reference

#include <vtkFreeTypeUtilities.h>

Inheritance diagram for vtkFreeTypeUtilities:

Inheritance graph
[legend]
Collaboration diagram for vtkFreeTypeUtilities:

Collaboration graph
[legend]

List of all members.


Detailed Description

FreeType library support.

vtkFreeTypeUtilities provides low-level interface to the FreeType library, including font-cache, rasterizing and vectorizing. FreeType cache-subsystem is supported only when FreeType version is greater than 2.1.9. Internal use only. EXPERIMENTAL for the moment. Also include the old cache.

Definition at line 62 of file vtkFreeTypeUtilities.h.

enum  { GLYPH_REQUEST_DEFAULT = 0, GLYPH_REQUEST_BITMAP = 1, GLYPH_REQUEST_OUTLINE = 2 }
int GetGlyph (vtkTextProperty *tprop, char c, FT_Glyph *glyph, int request=GLYPH_REQUEST_DEFAULT)

Public Types

typedef vtkObject Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
FT_Library * GetLibrary ()
int GetSize (vtkTextProperty *tprop, FT_Size *size)
int GetFace (vtkTextProperty *tprop, FT_Face *face)
int GetGlyphIndex (vtkTextProperty *tprop, char c, FT_UInt *gindex)
vtkFreeTypeUtilities::EntryGetFont (vtkTextProperty *tprop, double override_color[3]=NULL)
virtual void SetMaximumNumberOfFaces (unsigned int)
virtual unsigned int GetMaximumNumberOfFaces ()
virtual void SetMaximumNumberOfSizes (unsigned int)
virtual unsigned int GetMaximumNumberOfSizes ()
virtual void SetMaximumNumberOfBytes (unsigned long)
virtual unsigned long GetMaximumNumberOfBytes ()
int GetBoundingBox (vtkTextProperty *tprop, const char *str, int bbox[4])
int IsBoundingBoxValid (int bbox[4])
int RenderString (vtkTextProperty *tprop, const char *str, vtkImageData *data)
int RenderString (vtkTextProperty *tprop, const char *str, int x, int y, vtkImageData *data)
void MapTextPropertyToId (vtkTextProperty *tprop, unsigned long *tprop_cache_id)
void MapIdToTextProperty (unsigned long tprop_cache_id, vtkTextProperty *tprop)
int GetSize (unsigned long tprop_cache_id, int font_size, FT_Size *size)
int GetFace (unsigned long tprop_cache_id, FT_Face *face)
int GetGlyphIndex (unsigned long tprop_cache_id, char c, FT_UInt *gindex)
int GetGlyph (unsigned long tprop_cache_id, int font_size, FT_UInt gindex, FT_Glyph *glyph, int request=GLYPH_REQUEST_DEFAULT)
void GetWidthHeightDescender (const char *str, vtkTextProperty *tprop, int *width, int *height, float *descender)
void PrepareImageData (vtkImageData *data, vtkTextProperty *tprop, const char *str, int *x, int *y)
int GetConstrainedFontSize (const char *str, vtkTextProperty *tprop, double orientation, int targetWidth, int targetHeight)
void JustifyLine (const char *str, vtkTextProperty *tprop, int totalWidth, int *x, int *y)

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkFreeTypeUtilitiesSafeDownCast (vtkObject *o)
static vtkFreeTypeUtilitiesNew ()
static vtkFreeTypeUtilitiesGetInstance ()
static void SetInstance (vtkFreeTypeUtilities *instance)

Protected Member Functions

int PopulateImageData (vtkTextProperty *tprop, const char *str, int x, int y, vtkImageData *data, int use_shadow_color)
 vtkFreeTypeUtilities ()
virtual ~vtkFreeTypeUtilities ()

Classes

struct  Entry

Member Typedef Documentation

Reimplemented from vtkObject.

Definition at line 65 of file vtkFreeTypeUtilities.h.


Member Enumeration Documentation

anonymous enum

Given a text property and a character, get the corresponding FreeType glyph. The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise This method is successful only when FreeType version is >= 2.1.9 BTX

Enumerator:
GLYPH_REQUEST_DEFAULT 
GLYPH_REQUEST_BITMAP 
GLYPH_REQUEST_OUTLINE 

Definition at line 131 of file vtkFreeTypeUtilities.h.


Constructor & Destructor Documentation

vtkFreeTypeUtilities::vtkFreeTypeUtilities (  )  [protected]

virtual vtkFreeTypeUtilities::~vtkFreeTypeUtilities (  )  [protected, virtual]


Member Function Documentation

virtual const char* vtkFreeTypeUtilities::GetClassName (  )  [virtual]

Reimplemented from vtkObject.

static int vtkFreeTypeUtilities::IsTypeOf ( const char *  name  )  [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

virtual int vtkFreeTypeUtilities::IsA ( const char *  name  )  [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

static vtkFreeTypeUtilities* vtkFreeTypeUtilities::SafeDownCast ( vtkObject o  )  [static]

Reimplemented from vtkObject.

void vtkFreeTypeUtilities::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

static vtkFreeTypeUtilities* vtkFreeTypeUtilities::New (  )  [static]

This is a singleton pattern New. There will be only ONE reference to a vtkFreeTypeUtilities object per process. Clients that call this method must use Delete() on the object so that reference counting will work. The single instance will be unreferenced when the program exits. You should just use the static GetInstance() method anyway to get the singleton.

Reimplemented from vtkObject.

static vtkFreeTypeUtilities* vtkFreeTypeUtilities::GetInstance (  )  [static]

Return the singleton instance with no reference counting.

static void vtkFreeTypeUtilities::SetInstance ( vtkFreeTypeUtilities instance  )  [static]

Supply a user defined instance. Call Delete() on the supplied instance after setting it to fix the reference count.

FT_Library* vtkFreeTypeUtilities::GetLibrary (  ) 

Get the FreeType library singleton.

virtual void vtkFreeTypeUtilities::SetMaximumNumberOfFaces ( unsigned  int  )  [virtual]

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache. These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

virtual unsigned int vtkFreeTypeUtilities::GetMaximumNumberOfFaces (  )  [virtual]

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache. These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

virtual void vtkFreeTypeUtilities::SetMaximumNumberOfSizes ( unsigned  int  )  [virtual]

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache. These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

virtual unsigned int vtkFreeTypeUtilities::GetMaximumNumberOfSizes (  )  [virtual]

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache. These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

virtual void vtkFreeTypeUtilities::SetMaximumNumberOfBytes ( unsigned  long  )  [virtual]

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache. These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

virtual unsigned long vtkFreeTypeUtilities::GetMaximumNumberOfBytes (  )  [virtual]

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache. These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

int vtkFreeTypeUtilities::GetSize ( vtkTextProperty tprop,
FT_Size *  size 
)

Given a text property, get the corresponding FreeType size object (a structure storing both a face and a specific size metric). The size setting of the text property is used to set the size's face to the corresponding size. Return true on success, false otherwise. This method is successful only when FreeType version is >= 2.1.9

int vtkFreeTypeUtilities::GetFace ( vtkTextProperty tprop,
FT_Face *  face 
)

Given a text property, get the corresponding FreeType face. The size parameter of the text property is ignored and a face with unknown current size is returned. Use GetSize() to get a specific size. Return true on success, false otherwise This method is successful only when FreeType version is >= 2.1.9

int vtkFreeTypeUtilities::GetGlyphIndex ( vtkTextProperty tprop,
char  c,
FT_UInt *  gindex 
)

Given a text property and a character, get the corresponding FreeType glyph index. Return true on success, false otherwise This method is successful only when FreeType version is >= 2.1.9

int vtkFreeTypeUtilities::GetGlyph ( vtkTextProperty tprop,
char  c,
FT_Glyph *  glyph,
int  request = GLYPH_REQUEST_DEFAULT 
)

Given a text property and a character, get the corresponding FreeType glyph. The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise This method is successful only when FreeType version is >= 2.1.9 BTX

int vtkFreeTypeUtilities::GetBoundingBox ( vtkTextProperty tprop,
const char *  str,
int  bbox[4] 
)

Given a text property and a string, get the bounding box [xmin, xmax] x [ymin, ymax]. Note that this is the bounding box of the area where actual pixels will be written, given a text/pen/baseline location of (0,0). For example, if the string starts with a 'space', or depending on the orientation, you can end up with a [-20, -10] x [5, 10] bbox (the math to get the real bbox is straightforward). Return 1 on success, 0 otherwise. You can use IsBoundingBoxValid() to test if the computed bbox is valid (it may not if GetBoundingBox() failed or if the string was empty).

int vtkFreeTypeUtilities::IsBoundingBoxValid ( int  bbox[4]  ) 

Given a text property and a string, get the bounding box [xmin, xmax] x [ymin, ymax]. Note that this is the bounding box of the area where actual pixels will be written, given a text/pen/baseline location of (0,0). For example, if the string starts with a 'space', or depending on the orientation, you can end up with a [-20, -10] x [5, 10] bbox (the math to get the real bbox is straightforward). Return 1 on success, 0 otherwise. You can use IsBoundingBoxValid() to test if the computed bbox is valid (it may not if GetBoundingBox() failed or if the string was empty).

int vtkFreeTypeUtilities::RenderString ( vtkTextProperty tprop,
const char *  str,
vtkImageData data 
)

Given a text property and a string, this function initializes the vtkImageData *data and renders it in a vtkImageData.

int vtkFreeTypeUtilities::RenderString ( vtkTextProperty tprop,
const char *  str,
int  x,
int  y,
vtkImageData data 
)

Deprecated function signature. int x, y are ignored.

void vtkFreeTypeUtilities::MapTextPropertyToId ( vtkTextProperty tprop,
unsigned long *  tprop_cache_id 
)

For internal use only. Given a text property 'tprop', get its unique ID in our cache framework. In the same way, given a unique ID in our cache, retrieve the corresponding text property and assign its parameters to 'tprop'. Warning: there is no one to one mapping between a single text property the corresponding ID, and vice-versa. The ID is just a fast hash, a binary mask concatenating the attributes of the text property that are relevant to our cache (Color, Opacity, Justification setting are not stored).

void vtkFreeTypeUtilities::MapIdToTextProperty ( unsigned long  tprop_cache_id,
vtkTextProperty tprop 
)

For internal use only. Given a text property 'tprop', get its unique ID in our cache framework. In the same way, given a unique ID in our cache, retrieve the corresponding text property and assign its parameters to 'tprop'. Warning: there is no one to one mapping between a single text property the corresponding ID, and vice-versa. The ID is just a fast hash, a binary mask concatenating the attributes of the text property that are relevant to our cache (Color, Opacity, Justification setting are not stored).

int vtkFreeTypeUtilities::GetSize ( unsigned long  tprop_cache_id,
int  font_size,
FT_Size *  size 
)

For internal use only. These methods are successful only when FreeType version is >= 2.1.9

int vtkFreeTypeUtilities::GetFace ( unsigned long  tprop_cache_id,
FT_Face *  face 
)

For internal use only. These methods are successful only when FreeType version is >= 2.1.9

int vtkFreeTypeUtilities::GetGlyphIndex ( unsigned long  tprop_cache_id,
char  c,
FT_UInt *  gindex 
)

For internal use only. These methods are successful only when FreeType version is >= 2.1.9

int vtkFreeTypeUtilities::GetGlyph ( unsigned long  tprop_cache_id,
int  font_size,
FT_UInt  gindex,
FT_Glyph *  glyph,
int  request = GLYPH_REQUEST_DEFAULT 
)

For internal use only. These methods are successful only when FreeType version is >= 2.1.9

void vtkFreeTypeUtilities::GetWidthHeightDescender ( const char *  str,
vtkTextProperty tprop,
int *  width,
int *  height,
float *  descender 
)

Given a string and a TextProperty this function will calculate the height and width of a rectangle that can encompass the text. Unlike GetBoundingBox this function does not consider the text's orientation. Calculated width, height, and greatest descender are stored in the last three parameters of the function signature

void vtkFreeTypeUtilities::PrepareImageData ( vtkImageData data,
vtkTextProperty tprop,
const char *  str,
int *  x,
int *  y 
)

This function initializes the extent of the ImageData to eventually receive the text stored in str

int vtkFreeTypeUtilities::GetConstrainedFontSize ( const char *  str,
vtkTextProperty tprop,
double  orientation,
int  targetWidth,
int  targetHeight 
)

This function returns the font size required to fit the string in the target rectangle

void vtkFreeTypeUtilities::JustifyLine ( const char *  str,
vtkTextProperty tprop,
int  totalWidth,
int *  x,
int *  y 
)

Internal method that justifies individual lines of text

vtkFreeTypeUtilities::Entry* vtkFreeTypeUtilities::GetFont ( vtkTextProperty tprop,
double  override_color[3] = NULL 
)

int vtkFreeTypeUtilities::PopulateImageData ( vtkTextProperty tprop,
const char *  str,
int  x,
int  y,
vtkImageData data,
int  use_shadow_color 
) [protected]


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

Generated on Wed Jun 3 19:03:35 2009 for VTK by  doxygen 1.5.6