openvrml::vrml97_node::transform_node Class Reference

Inheritance diagram for openvrml::vrml97_node::transform_node:
[legend]

List of all members.


Detailed Description

Transform node instances.

Public Member Functions

 transform_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope)
 Construct.
virtual ~transform_node () throw ()
 Destroy.
virtual const
openvrml::bounding_volume
bounding_volume () const
 Get the bounding volume.
virtual const mat4ftransform () const throw ()
 Get the transformation associated with the node as a matrix.

Private Member Functions

virtual void do_render_child (openvrml::viewer &viewer, rendering_context context)
 Render the node.
void recalc_bsphere ()
 Recalculate the bounding volume.
void update_transform () const throw ()
 Update transform.

Private Attributes

center_exposedfield center_
 center exposedField.
rotation_exposedfield rotation_
 rotation exposedField.
scale_exposedfield scale_
 scale exposedField.
scale_orientation_exposedfield scale_orientation_
 scaleOrientation exposedField.
translation_exposedfield translation_
 translation exposedField.
mat4f transform_
 Cached copy of this node's transformation.
bool transform_dirty
 Flag to indicate whether transform_ needs to be updated.
viewer::object_t xformObject
 A handle to the renderer's representation of the Transform.

Friends

class transform_class
 Class object for Transform nodes.

Classes

class  center_exposedfield
 center exposedField implementation. More...
class  rotation_exposedfield
 rotation exposedField implementation. More...
class  scale_exposedfield
 scale exposedField implementation. More...
class  scale_orientation_exposedfield
 scaleOrientation exposedField implementation. More...
class  translation_exposedfield
 translation exposedField implementation. More...

Constructor & Destructor Documentation

openvrml::vrml97_node::transform_node::transform_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.

Reimplemented from openvrml::transform_node.

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

Destroy.

Implements openvrml::transform_node.


Member Function Documentation

const bounding_volume & openvrml::vrml97_node::transform_node::bounding_volume (  )  const [virtual]

Get the bounding volume.

Returns:
the bounding volume associated with the node.

Reimplemented from openvrml::vrml97_node::group_node.

const mat4f & openvrml::vrml97_node::transform_node::transform (  )  const throw () [virtual]

Get the transformation associated with the node as a matrix.

Returns:
the transformation associated with the node.

Implements openvrml::transform_node.

void openvrml::vrml97_node::transform_node::do_render_child ( openvrml::viewer viewer,
rendering_context  context 
) [private, virtual]

Render the node.

Parameters:
viewer a Viewer.
context the rendering context.

Reimplemented from openvrml::vrml97_node::group_node.

void openvrml::vrml97_node::transform_node::recalc_bsphere (  )  [private]

Recalculate the bounding volume.

Reimplemented from openvrml::vrml97_node::group_node.

void openvrml::vrml97_node::transform_node::update_transform (  )  const throw () [private]

Update transform.

If transform_dirty is true, resynchronize the cached matrix transform with the node fields; otherwise do nothing.

Note:
P' = T × C × R × SR × S × -SR × -C × P


Friends And Related Function Documentation

class openvrml::vrml97_node::transform_node::transform_class [friend]

Class object for Transform nodes.


Member Data Documentation

center exposedField.

rotation exposedField.

scale exposedField.

scaleOrientation exposedField.

translation exposedField.

Cached copy of this node's transformation.

Flag to indicate whether transform_ needs to be updated.

A handle to the renderer's representation of the Transform.