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

openvrml::vrml97_node::indexed_face_set_node Class Reference

Represents IndexedFaceSet node instances. More...

Inheritance diagram for openvrml::vrml97_node::indexed_face_set_node:

Inheritance graph
[legend]
Collaboration diagram for openvrml::vrml97_node::indexed_face_set_node:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 indexed_face_set_node (const node_type &type, const scope_ptr &scope)
 Construct.

virtual ~indexed_face_set_node () throw ()
 Destroy.

virtual bool modified () const
 Determine whether the node has been modified.

virtual viewer::object_t insert_geometry (openvrml::viewer &viewer, rendering_context context)
 Insert this geometry into viewer's display list.

virtual const openvrml::bounding_volumebounding_volume () const
 Get the bounding volume.


Private Member Functions

void process_set_normal (const field_value &value, double timestamp) throw (std::bad_cast, std::bad_alloc)
 set_normal eventIn handler.

void process_set_normalIndex (const field_value &value, double timestamp) throw (std::bad_cast, std::bad_alloc)
 set_normalIndex eventIn handler.

void process_set_texCoord (const field_value &value, double timestamp) throw (std::bad_cast, std::bad_alloc)
 set_texCoord eventIn handler.

void process_set_texCoordIndex (const field_value &value, double timestamp) throw (std::bad_cast, std::bad_alloc)
 set_texCoordIndex eventIn handler.

void recalcBSphere ()
 Recalculate the bounding volume.


Private Attributes

sfbool ccw
 ccw field.

sfbool convex
 convex field.

sffloat creaseAngle
 creaseAngle field.

sfnode normal
 normal exposedField.

mfint32 normalIndex
 set_normalIndex eventIn.

sfbool normalPerVertex
 normalPerVertex field.

sfbool solid
 solid field.

sfnode texCoord
 texCoord exposedField.

mfint32 texCoordIndex
 set_texCoordIndex eventIn.

bounding_sphere bsphere
 Bounding volume.


Friends

class indexed_face_set_class
 Class object for IndexedFaceSet nodes.


Detailed Description

Represents IndexedFaceSet node instances.


Constructor & Destructor Documentation

openvrml::vrml97_node::indexed_face_set_node::indexed_face_set_node const node_type type,
const scope_ptr scope
 

Construct.

Parameters:
type the node_type associated with the node.
scope the scope to which the node belongs.

Member Function Documentation

const bounding_volume & openvrml::vrml97_node::indexed_face_set_node::bounding_volume  )  const [virtual]
 

Get the bounding volume.

Returns:
the bounding volume associated with the node.

Reimplemented from openvrml::node.

viewer::object_t openvrml::vrml97_node::indexed_face_set_node::insert_geometry openvrml::viewer viewer,
rendering_context  context
[virtual]
 

Insert this geometry into viewer's display list.

Parameters:
viewer a Viewer.
context the rendering context.

Todo:
stripify, crease angle, generate normals ...

Implements openvrml::geometry_node.

bool openvrml::vrml97_node::indexed_face_set_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::vrml97_node::abstract_indexed_set_node.

void openvrml::vrml97_node::indexed_face_set_node::process_set_normal const field_value value,
double  timestamp
throw (std::bad_cast, std::bad_alloc) [private]
 

set_normal eventIn handler.

Parameters:
value an sfnode value.
timestamp the current time.
Exceptions:
std::bad_cast if value is not an sfnode.
std::bad_alloc if memory allocation fails.

void openvrml::vrml97_node::indexed_face_set_node::process_set_normalIndex const field_value value,
double  timestamp
throw (std::bad_cast, std::bad_alloc) [private]
 

set_normalIndex eventIn handler.

Parameters:
value an mfint32 value.
timestamp the current time.
Exceptions:
std::bad_cast if value is not an mfint32.
std::bad_alloc if memory allocation fails.

void openvrml::vrml97_node::indexed_face_set_node::process_set_texCoord const field_value value,
double  timestamp
throw (std::bad_cast, std::bad_alloc) [private]
 

set_texCoord eventIn handler.

Parameters:
value an sfnode value.
timestamp the current time.
Exceptions:
std::bad_cast if value is not an sfnode.
std::bad_alloc if memory allocation fails.

void openvrml::vrml97_node::indexed_face_set_node::process_set_texCoordIndex const field_value value,
double  timestamp
throw (std::bad_cast, std::bad_alloc) [private]
 

set_texCoordIndex eventIn handler.

Parameters:
value an mfint32 value.
timestamp the current time.
Exceptions:
std::bad_cast if value is not an mfint32.
std::bad_alloc if memory allocation fails.