openvrml::vrml97_node::text_node Class Reference

Inheritance diagram for openvrml::vrml97_node::text_node:
[legend]
List of all members.

Detailed Description

Text node instances.


Public Member Functions

 text_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope)
 Construct.
virtual ~text_node () throw ()
 Destroy.
virtual bool modified () const
 Determine whether the node has been modified.

Private Types

typedef std::vector< std::vector<
FcChar32 > > 
ucs4_string_t
 A vector of FcChar32 vectors.
typedef std::map< FT_UInt,
glyph_geometry
glyph_geometry_map_t
 Maps FT_UInts to glyph_geometry.

Private Member Functions

virtual viewer::object_t do_render_geometry (openvrml::viewer &viewer, rendering_context context)
 Insert this geometry into viewer's display list.
virtual void do_initialize (double timestamp) throw (std::bad_alloc)
 Initialize.
virtual void do_shutdown (double timestamp) throw ()
 Shut down.
void update_ucs4 () throw (std::bad_alloc)
 Called when string changes to update the UCS-4 text.
void update_face () throw (std::bad_alloc)
 Called when fontStyle changes to update the font face.
void update_geometry () throw (std::bad_alloc)
 Called to update text_geometry.

Private Attributes

string_exposedfield string_
 string exposedField.
font_style_exposedfield font_style_
 fontStyle exposedField.
length_exposedfield length_
 length exposedField.
max_extent_exposedfield max_extent_
 maxExtent exposedField.
ucs4_string_t ucs4_string
 UCS-4 equivalent of the (UTF-8) data in string.
FT_Face face
 Handle to the font face.
glyph_geometry_map_t glyph_geometry_map
 Map of glyph indices to glyph_geometry.
text_geometry text_geometry_
 The text geometry.

Friends

class text_class
 Class object for Text nodes.

Classes

class  font_style_exposedfield
 fontStyle exposedField implementation. More...
struct  glyph_geometry
 Used to hold the geometry of individual glyphs. More...
class  length_exposedfield
 length exposedField implementation. More...
class  max_extent_exposedfield
 maxExtent exposedField implementation. More...
class  string_exposedfield
 string exposedField implementation. More...
struct  text_geometry
 Holds the text geometry. More...

Member Typedef Documentation

A vector of FcChar32 vectors.


Constructor & Destructor Documentation

openvrml::vrml97_node::text_node::text_node ( const node_type type,
const boost::shared_ptr< openvrml::scope > &  scope 
)

Construct.

Parameters:
type the node_type associated with the instance.
scope the scope that the new node will belong to.

openvrml::vrml97_node::text_node::~text_node (  )  throw () [virtual]

Destroy.


Member Function Documentation

bool openvrml::vrml97_node::text_node::modified (  )  const [virtual]

Determine whether the node has been modified.

Returns:
true if the node or one of its children has been modified, false otherwise.

Reimplemented from openvrml::node.

viewer::object_t openvrml::vrml97_node::text_node::do_render_geometry ( openvrml::viewer viewer,
rendering_context  context 
) [private, virtual]

Insert this geometry into viewer's display list.

Parameters:
viewer a Viewer.
context the rendering context.

Reimplemented from openvrml::geometry_node.

void openvrml::vrml97_node::text_node::do_initialize ( double  timestamp  )  throw (std::bad_alloc) [private, virtual]

Initialize.

Parameters:
timestamp the current time.
Exceptions:
std::bad_alloc if memory allocation fails.

Reimplemented from openvrml::node.

void openvrml::vrml97_node::text_node::do_shutdown ( double  timestamp  )  throw () [private, virtual]

Shut down.

Parameters:
timestamp the current time.

Reimplemented from openvrml::node.

void openvrml::vrml97_node::text_node::update_ucs4 (  )  throw (std::bad_alloc) [private]

Called when string changes to update the UCS-4 text.

Exceptions:
std::bad_alloc if memory allocation fails.

void openvrml::vrml97_node::text_node::update_face (  )  throw (std::bad_alloc) [private]

Called when fontStyle changes to update the font face.

Exceptions:
std::bad_alloc if memory allocation fails.

void openvrml::vrml97_node::text_node::update_geometry (  )  throw (std::bad_alloc) [private]

Called to update text_geometry.

Exceptions:
std::bad_alloc if memory allocation fails.


Friends And Related Function Documentation

class openvrml::vrml97_node::text_node::text_class [friend]

Class object for Text nodes.


Member Data Documentation

string exposedField.

fontStyle exposedField.

length exposedField.

maxExtent exposedField.

UCS-4 equivalent of the (UTF-8) data in string.

Map of glyph indices to glyph_geometry.

glyph_geometry instances are created as needed as new glyphs are encountered. Once they are created, they are cached in the glyph_geometry_map for rapid retrieval the next time the glyph is encountered.

The text geometry.