Home | Download | Screen shots | Discussion | Documentation
--- | --- | --- | --- | ---

Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members | Related Pages

# 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

openvrml::vrml97_node::text_node::ucs4_string_t `[private]`

| A vector of FcChar32 vectors.

openvrml::vrml97_node::text_node::glyph_geometry_map_t `[private]`

Maps FT_UInts to glyph_geometry.

See also:
  http://freetype.org/freetype2/docs/reference/ft2-basic_types.html#FT_UInt

## 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

text_node::string_exposedfield openvrml::vrml97_node::text_node::string_ `[private]`

| string exposedField.

text_node::font_style_exposedfield openvrml::vrml97_node::text_node::font_style_ `[private]`

| fontStyle exposedField.

text_node::length_exposedfield openvrml::vrml97_node::text_node::length_ `[private]`

| length exposedField.

text_node::max_extent_exposedfield openvrml::vrml97_node::text_node::max_extent_ `[private]`

| maxExtent exposedField.

text_node::ucs4_string_t openvrml::vrml97_node::text_node::ucs4_string `[private]`

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

FT_Face openvrml::vrml97_node::text_node::face `[private]`

Handle to the font face.

See also:
  http://freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Face

text_node::glyph_geometry_map_t openvrml::vrml97_node::text_node::glyph_geometry_map `[private]`

| 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.

text_node::text_geometry openvrml::vrml97_node::text_node::text_geometry_ `[private]`

| The text geometry.