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

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

# 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 mat4f & | transform () 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

transform_node::center_exposedfield openvrml::vrml97_node::transform_node::center_`[private]`

| center exposedField.

transform_node::rotation_exposedfield openvrml::vrml97_node::transform_node::rotation_`[private]`

| rotation exposedField.

transform_node::scale_exposedfield openvrml::vrml97_node::transform_node::scale_`[private]`

| scale exposedField.

transform_node::scale_orientation_exposedfield openvrml::vrml97_node::transform_node::scale_orientation_`[private]`

| scaleOrientation exposedField.

transform_node::translation_exposedfield openvrml::vrml97_node::transform_node::translation_`[private]`

| translation exposedField.

mat4f openvrml::vrml97_node::transform_node::transform_`[mutable, private]`

| Cached copy of this node's transformation.

openvrml::vrml97_node::transform_node::transform_dirty`[mutable, private]`

| Flag to indicate whether transform_ needs to be updated.

viewer::object_t openvrml::vrml97_node::transform_node::xformObject`[private]`

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