libmoldeo (Moldeo 1.0 Core)
1.0
libmoldeo es el conjunto de objetos y funciones, que permiten ejecutar las operaciones básicas de la plataforma Moldeo, y que compone su núcleo.
|
Render text as solid letters. Más...
#include <moOGLFT.h>
Métodos públicos | |
Solid (const char *filename, float point_size=12, FT_UInt resolution=100) | |
Solid (FT_Face face, float point_size=12, FT_UInt resolution=100) | |
~Solid (void) | |
void | setDepth (double depth) |
double | depth (void) const |
Métodos públicos heredados desde OGLFT::Filled | |
Filled (const char *filename, float point_size=12, FT_UInt resolution=100) | |
Filled (FT_Face face, float point_size=12, FT_UInt resolution=100) | |
virtual | ~Filled (void) |
VertexInfoList & | extraVertices (void) |
Métodos públicos heredados desde OGLFT::Polygonal | |
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) |
Métodos públicos heredados desde 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) |
Otros miembros heredados | |
Tipos públicos heredados desde OGLFT::Face | |
enum | HorizontalJustification { LEFT, ORIGIN, CENTER, RIGHT } |
enum | VerticalJustification { BOTTOM, BASELINE, MIDDLE, TOP } |
enum | GlyphCompileMode { COMPILE, IMMEDIATE } |
Tipos protegidos heredados desde OGLFT::Polygonal | |
typedef std::list< VertexInfo * > | VertexInfoList |
Normally, we will consider a list of vertices. Más... | |
typedef VertexInfoList::const_iterator | VILCI |
A convenience definition of the iterator over the list of vertices. Más... | |
typedef VertexInfoList::iterator | VILI |
A convenience definition of the iterator over the list of vertices. Más... | |
Tipos protegidos heredados desde OGLFT::Face | |
typedef std::map< FT_UInt, GLuint > | GlyphDLists |
Type of the cache of defined glyph to display list mapping. Más... | |
typedef GlyphDLists::const_iterator | GDLCI |
typedef GlyphDLists::iterator | GDLI |
Métodos protegidos heredados desde OGLFT::Polygonal | |
void | clearCaches (void) |
Atributos protegidos heredados desde OGLFT::Filled | |
GLfloat | depth_offset_ |
Atributos protegidos heredados desde OGLFT::Polygonal | |
struct { | |
bool active_ | |
GLfloat x_ | |
GLfloat y_ | |
GLfloat z_ | |
} | character_rotation_ |
Angle of rotation of characters relative to text orientation. Más... | |
unsigned int | tessellation_steps_ |
double | delta_ |
double | delta2_ |
double | delta3_ |
double | vector_scale_ |
FT_Outline_Funcs | interface_ |
Callbacks for FreeType glyph decomposition into outlines. Más... | |
VertexInfo | last_vertex_ |
VertexInfoList | vertices_ |
bool | contour_open_ |
ColorTess * | color_tess_ |
TextureTess * | texture_tess_ |
Atributos protegidos heredados desde OGLFT::Face | |
std::vector< FaceData > | faces_ |
bool | valid_ |
Did a font load OK? Más... | |
enum GlyphCompileMode | compile_mode_ |
Glyph display list creation mode. Más... | |
float | point_size_ |
Nominal point size. Más... | |
FT_UInt | resolution_ |
Display resolution in pixels per inch. Más... | |
bool | advance_ |
Does rendering text affect the MODELVIEW matrix? Más... | |
GLfloat | foreground_color_ [4] |
GLfloat | background_color_ [4] |
Background color (what modes would use this?) Más... | |
enum HorizontalJustification | horizontal_justification_ |
PHIGS-like horizontal positioning of text. Más... | |
enum VerticalJustification | vertical_justification_ |
PHIGS-like vertical positioning of text. Más... | |
GLfloat | string_rotation_ |
Rotate an entire string in the Z plane. Más... | |
FT_UInt | rotation_reference_glyph_ |
FT_Face | rotation_reference_face_ |
The rotation reference character could be in any face. Más... | |
GLfloat | rotation_offset_y_ |
GlyphDLists | glyph_dlists_ |
Cache of defined glyph display lists. Más... | |
DisplayLists | character_display_lists_ |
Atributos protegidos estáticos heredados desde OGLFT::Polygonal | |
static const unsigned int | DEFAULT_TESSELLATION_STEPS = 4 |
Render text as solid letters.
Each glyph is drawn as a closed solid. The contours are extracted from the font file through FreeType. FreeType is used to scale the contours to the given size. The contours are passed to the GLE tubing and extrusion library to create the sides of the solid. Then the GLU tessellation routines are used to tessellate the contours into polygons which are used to cap the sides.
Currently, the solids are drawn only in the foreground color. However, proper surface normals are computed so that the solids may be lighted. Eventually, you'll be able to supply a color/texture coordinate function to make glyphs more interesting. Note that you can use the per-glyph display list functionality to alter each glyph individually.
Another TODO item is to improve the interaction with GLE. Currently, you can only create block solids. Eventually, we'll have the capability add bevels and rounds to the edges of the solids and maybe even more general extrusions (like, for example, the swooshing letters in the title sequence of the Salkind's 1978 "Superman" movie).
The only complexity to this style is selecting the point size. Since the glyphs are drawn as a collection of polygons, they are subject to the viewing and modeling transformations. The point size is nominally chosen to be the same as a raster image generated at the given resolution. Some experimentation with point size and resolution may be necessary to achieve the desired results.
OGLFT::Solid::Solid | ( | 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. |
Definición en la línea 2837 del archivo moOGLFT.cpp.
OGLFT::Solid::Solid | ( | 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. |
Definición en la línea 2845 del archivo moOGLFT.cpp.
OGLFT::Solid::~Solid | ( | void | ) |
The destructor doesn't do anything in particular.
Definición en la línea 2877 del archivo moOGLFT.cpp.
|
inline |
void OGLFT::Solid::setDepth | ( | double | depth | ) |
Set the thickness of the solid
depth | thickness of the solid in model units. |
Definición en la línea 2882 del archivo moOGLFT.cpp.
std::vector< glePoint2D > OGLFT::Solid::contour_normals_ |
struct { ... } OGLFT::Solid::normal_sign_ |
gleDouble OGLFT::Solid::point_array_[N_POLYLINE_PTS][3] |