libmoldeo (Moldeo 1.0 Core)
1.0
libmoldeo is the group of objects and functions that executes the basic operations of Moldeo 1.0 Platform.
|
This is the base class of the polygonal styles: outline, filled and solid. More...
#include <moOGLFT.h>
Classes | |
struct | VertexInfo |
Public Member Functions | |
Polygonal (const char *filename, float point_size=12, FT_UInt resolution=100) | |
Polygonal (FT_Face face, float point_size=12, FT_UInt resolution=100) | |
virtual | ~Polygonal (void) |
void | setTessellationSteps (unsigned int tessellation_steps) |
unsigned int | tessellationSteps (void) const |
void | setCharacterRotationX (GLfloat character_rotation_x) |
void | setCharacterRotationY (GLfloat character_rotation_y) |
void | setCharacterRotationZ (GLfloat character_rotation_z) |
GLfloat | characterRotationX (void) const |
GLfloat | characterRotationY (void) const |
GLfloat | characterRotationZ (void) const |
void | setColorTess (ColorTess *color_tess) |
ColorTess * | colorTess (void) const |
void | setTextureTess (TextureTess *texture_tess) |
TextureTess * | textureTess (void) const |
double | height (void) const |
BBox | measure (unsigned char c) |
BBox | measure (const char *s) |
Public Member Functions inherited from OGLFT::Face | |
Face (const char *filename, float point_size=12, FT_UInt resolution=100) | |
Face (FT_Face face, float point_size=12, FT_UInt resolution=100) | |
virtual | ~Face (void) |
bool | isValid (void) const |
bool | addAuxiliaryFace (const char *filename) |
bool | addAuxiliaryFace (FT_Face face) |
void | setCompileMode (enum GlyphCompileMode compile_mode) |
enum GlyphCompileMode | compileMode (void) const |
void | setPointSize (float point_size) |
float | pointSize (void) |
void | setResolution (FT_UInt resolution) |
FT_UInt | resolution (void) |
void | setAdvance (bool advance) |
bool | advance (void) const |
void | setForegroundColor (GLfloat red=0.0, GLfloat green=0.0, GLfloat blue=0.0, GLfloat alpha=1.0) |
void | setForegroundColor (const GLfloat foreground_color[4]) |
GLfloat | foregroundRed (void) const |
GLfloat | foregroundGreen (void) const |
GLfloat | foregroundBlue (void) const |
GLfloat | foregroundAlpha (void) const |
void | setBackgroundColor (GLfloat red=1.0, GLfloat green=1.0, GLfloat blue=1.0, GLfloat alpha=0.0) |
void | setBackgroundColor (const GLfloat background_color[4]) |
GLfloat | backgroundRed (void) const |
GLfloat | backgroundGreen (void) const |
GLfloat | backgroundBlue (void) const |
GLfloat | backgroundAlpha (void) const |
void | setCharacterRotationReference (unsigned char c) |
void | setStringRotation (GLfloat string_rotation) |
GLfloat | stringRotation (void) const |
void | setHorizontalJustification (enum HorizontalJustification horizontal_justification) |
enum HorizontalJustification | horizontalJustification (void) const |
void | setVerticalJustification (enum VerticalJustification vertical_justification) |
enum VerticalJustification | verticaljustification (void) const |
void | setCharacterDisplayLists (const DisplayLists &character_display_lists) |
DisplayLists & | characterDisplayLists (void) |
virtual BBox | measureRaw (const char *s) |
GLuint | compile (const char *s) |
GLuint | compile (unsigned char c) |
void | draw (const char *s) |
void | draw (unsigned char c) |
void | draw (GLfloat x, GLfloat y, unsigned char c) |
void | draw (GLfloat x, GLfloat y, GLfloat z, unsigned char c) |
void | draw (GLfloat x, GLfloat y, const char *s) |
void | draw (GLfloat x, GLfloat y, GLfloat z, const char *s) |
int | ascender (void) |
int | descender (void) |
Protected Types | |
typedef std::list< VertexInfo * > | VertexInfoList |
Normally, we will consider a list of vertices. More... | |
typedef VertexInfoList::const_iterator | VILCI |
A convenience definition of the iterator over the list of vertices. More... | |
typedef VertexInfoList::iterator | VILI |
A convenience definition of the iterator over the list of vertices. More... | |
Protected Types inherited from OGLFT::Face | |
typedef std::map< FT_UInt, GLuint > | GlyphDLists |
Type of the cache of defined glyph to display list mapping. More... | |
typedef GlyphDLists::const_iterator | GDLCI |
typedef GlyphDLists::iterator | GDLI |
Protected Member Functions | |
void | clearCaches (void) |
Protected Member Functions inherited from OGLFT::Face | |
virtual void | renderGlyph (FT_Face face, FT_UInt glyph_index)=0 |
Protected Attributes | |
struct { | |
bool active_ | |
GLfloat x_ | |
GLfloat y_ | |
GLfloat z_ | |
} | character_rotation_ |
Angle of rotation of characters relative to text orientation. More... | |
unsigned int | tessellation_steps_ |
double | delta_ |
double | delta2_ |
double | delta3_ |
double | vector_scale_ |
FT_Outline_Funcs | interface_ |
Callbacks for FreeType glyph decomposition into outlines. More... | |
VertexInfo | last_vertex_ |
VertexInfoList | vertices_ |
bool | contour_open_ |
ColorTess * | color_tess_ |
TextureTess * | texture_tess_ |
Protected Attributes inherited from OGLFT::Face | |
std::vector< FaceData > | faces_ |
bool | valid_ |
Did a font load OK? More... | |
enum GlyphCompileMode | compile_mode_ |
Glyph display list creation mode. More... | |
float | point_size_ |
Nominal point size. More... | |
FT_UInt | resolution_ |
Display resolution in pixels per inch. More... | |
bool | advance_ |
Does rendering text affect the MODELVIEW matrix? More... | |
GLfloat | foreground_color_ [4] |
GLfloat | background_color_ [4] |
Background color (what modes would use this?) More... | |
enum HorizontalJustification | horizontal_justification_ |
PHIGS-like horizontal positioning of text. More... | |
enum VerticalJustification | vertical_justification_ |
PHIGS-like vertical positioning of text. More... | |
GLfloat | string_rotation_ |
Rotate an entire string in the Z plane. More... | |
FT_UInt | rotation_reference_glyph_ |
FT_Face | rotation_reference_face_ |
The rotation reference character could be in any face. More... | |
GLfloat | rotation_offset_y_ |
GlyphDLists | glyph_dlists_ |
Cache of defined glyph display lists. More... | |
DisplayLists | character_display_lists_ |
Static Protected Attributes | |
static const unsigned int | DEFAULT_TESSELLATION_STEPS = 4 |
Additional Inherited Members | |
Public Types inherited from OGLFT::Face | |
enum | HorizontalJustification { LEFT, ORIGIN, CENTER, RIGHT } |
enum | VerticalJustification { BOTTOM, BASELINE, MIDDLE, TOP } |
enum | GlyphCompileMode { COMPILE, IMMEDIATE } |
This is the base class of the polygonal styles: outline, filled and solid.
In the polygonal styles, the detailed geometric outlines of the glyphs are extracted from the font file and rendered as polygons.
|
protected |
|
protected |
|
protected |
OGLFT::Polygonal::Polygonal | ( | const char * | filename, |
float | point_size = 12 , |
||
FT_UInt | resolution = 100 |
||
) |
filename | the filename which contains the font face. |
point_size | the initial point size of the font to generate. A point is essentially 1/72th of an inch. Defaults to 12. |
resolution | the pixel density of the display in dots per inch (DPI). Defaults to 100 DPI. |
Definition at line 1958 of file moOGLFT.cpp.
OGLFT::Polygonal::Polygonal | ( | FT_Face | face, |
float | point_size = 12 , |
||
FT_UInt | resolution = 100 |
||
) |
face | open Freetype FT_Face. |
point_size | the initial point size of the font to generate. A point is essentially 1/72th of an inch. Defaults to 12. |
resolution | the pixel density of the display in dots per inch (DPI). Defaults to 100 DPI. |
Definition at line 1966 of file moOGLFT.cpp.
|
virtual |
The Polygonal destructor doesn't do anything in particular.
Definition at line 2007 of file moOGLFT.cpp.
|
inline |
|
inline |
|
inlinevirtual |
Implements OGLFT::Face.
|
protectedvirtual |
The different styles have different caching needs (well, really only the texture style currently has more than the display list cache).
Implements OGLFT::Face.
Definition at line 2227 of file moOGLFT.cpp.
|
inline |
|
virtual |
Implements OGLFT::Face.
Definition at line 2127 of file moOGLFT.cpp.
|
virtual |
Implement measuring a character in a polygonal face.
c | the (latin1) character to measure |
Implements OGLFT::Face.
Definition at line 2137 of file moOGLFT.cpp.
|
inlinevirtual |
Measure a string of characters. Note: currently, this merely calls Face's measure routine.
s | string of (latin1) characters to measure |
Reimplemented from OGLFT::Face.
void OGLFT::Polygonal::setCharacterRotationX | ( | GLfloat | character_rotation_x | ) |
Set the individual character rotation in the X direction.
character_rotation_x | angle in degrees of the X rotation. |
Definition at line 2050 of file moOGLFT.cpp.
void OGLFT::Polygonal::setCharacterRotationY | ( | GLfloat | character_rotation_y | ) |
Set the individual character rotation in the Y direction.
character_rotation_y | angle in degrees of the Y rotation. |
Definition at line 2065 of file moOGLFT.cpp.
|
virtual |
Set the individual character rotation in the Z direction.
character_rotation_z | angle in degrees of the Z rotation. |
Implements OGLFT::Face.
Definition at line 2080 of file moOGLFT.cpp.
void OGLFT::Polygonal::setColorTess | ( | ColorTess * | color_tess | ) |
Set an optional color tesselation object. Each tesselated vertex is passed to this object, which returns a color for that position in space.
color_tess | the color tesselation object. |
Definition at line 2015 of file moOGLFT.cpp.
void OGLFT::Polygonal::setTessellationSteps | ( | unsigned int | tessellation_steps | ) |
TrueType and Type1 files describe the boundaries of glyphs with quadratic and cubic curves, respectively. Since OpenGL can only really draw straight lines, these curves have to be tessellated. The number of steps used is fixed for all glyphs in the face, but can be changed through this method. Other notes: This value is only applicable for Outline, Filled and Solid styles. Changing this value invalidates any cached display lists for glyphs in this face.
tessellation_steps | the number of steps to tessellate each curved segment of a glyph outline. |
Definition at line 2034 of file moOGLFT.cpp.
void OGLFT::Polygonal::setTextureTess | ( | TextureTess * | texture_tess | ) |
Set an optional texture coordinate tesselation object. Each tessellated vertex is passed to this object, which returns texture coordinates for that position in space.
texture_tess | the texture coordinate tesselation object. |
Definition at line 2025 of file moOGLFT.cpp.
|
inline |
|
inline |
struct { ... } OGLFT::Polygonal::character_rotation_ |
Angle of rotation of characters relative to text orientation.
|
protected |
|
protected |
|
staticprotected |
|
protected |
When curves are tessellated, we use the forward difference algorithm from Foley and van Dam for parametric curves (pg. 511 of 2nd Ed. in C). So, the step size, delta, is in the parametric variable which is always on the interval [0,1]. Therefore, delta = 1/tessellation_steps
|
protected |
|
protected |
|
protected |
|
protected |
The user can provide a TextureTess object which computes texture coordinates for each tesselated vertex.
|
protected |
|
protected |