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:

Inheritance graph
[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_volumebounding_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

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.