Main Page   Modules   Namespace List   Class Hierarchy   Compound List   Namespace Members   Compound 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_volume & bounding_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.

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

Destroy.


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.

void openvrml::vrml97_node::indexed_face_set_node::recalcBSphere  )  [private]
 

Recalculate the bounding volume.


Friends And Related Function Documentation

openvrml::vrml97_node::indexed_face_set_node::indexed_face_set_class [friend]
 

Class object for IndexedFaceSet nodes.


Member Data Documentation

bounding_sphere openvrml::vrml97_node::indexed_face_set_node::bsphere [private]
 

Bounding volume.

sfbool openvrml::vrml97_node::indexed_face_set_node::ccw [private]
 

ccw field.

sfbool openvrml::vrml97_node::indexed_face_set_node::convex [private]
 

convex field.

sffloat openvrml::vrml97_node::indexed_face_set_node::creaseAngle [private]
 

creaseAngle field.

sfnode openvrml::vrml97_node::indexed_face_set_node::normal [private]
 

normal exposedField.

mfint32 openvrml::vrml97_node::indexed_face_set_node::normalIndex [private]
 

set_normalIndex eventIn.

sfbool openvrml::vrml97_node::indexed_face_set_node::normalPerVertex [private]
 

normalPerVertex field.

sfbool openvrml::vrml97_node::indexed_face_set_node::solid [private]
 

solid field.

sfnode openvrml::vrml97_node::indexed_face_set_node::texCoord [private]
 

texCoord exposedField.

mfint32 openvrml::vrml97_node::indexed_face_set_node::texCoordIndex [private]
 

set_texCoordIndex eventIn.