Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

nvtraverser::ModelViewTraverser Class Reference

Traverser that can handle the model view transform stack. More...

#include <ModelViewTraverser.h>

Inheritance diagram for nvtraverser::ModelViewTraverser:

Inheritance graph
[legend]
Collaboration diagram for nvtraverser::ModelViewTraverser:

Collaboration graph
[legend]
List of all members.

Protected Member Functions

NVSG_API ModelViewTraverser (bool readOnly=true)
 Protected constructor to prevent instantiation of a ModelViewTraverser.
virtual NVSG_API void handleLOD (const nvsg::LOD *p)
 Routine to handle a LOD (Level Of Detail) node while traversing the scene graph.
virtual NVSG_API ~ModelViewTraverser ()
 Protected destructor to prevent instantiation of a ModelViewTraverser.
virtual NVSG_API void handleParallelCamera (const nvsg::ParallelCamera *p, const nvsg::Node *root)
 Provide special treatment of a ParallelCamera object.
virtual NVSG_API void handlePerspectiveCamera (const nvsg::PerspectiveCamera *p, const nvsg::Node *root)
 Provide special treatment of a PerspectiveCamera object.
virtual NVSG_API void handleTransform (const nvsg::Transform *p)
 Provide special treatment of a Transform node.
virtual NVSG_API bool preTraverseTransform (const nvsg::Transform *p)
 Handles actions to take between transform stack adjustment and traversal.
virtual NVSG_API void postTraverseTransform (const nvsg::Transform *p)
 Handles actions to take between traversal and transform stack adjustment.
virtual NVSG_API bool preTraverseRoot (const nvsg::SimpleCamera *p, const nvsg::Node *root)
 Handles actions to take just before the scene is traversed.

Protected Attributes

nvutil::TransformStack m_transformStack
 stack of transformations that holds the actual transformations while traversing a tree

Detailed Description

Traverser that can handle the model view transform stack.

Use this class as a base for traversers that need to maintain the current model view transformation.


Constructor & Destructor Documentation

NVSG_API nvtraverser::ModelViewTraverser::ModelViewTraverser bool  readOnly = true  )  [protected]
 

Protected constructor to prevent instantiation of a ModelViewTraverser.

Note:
A ModelViewTraverser doesn't change anything in the scene graph, but might be used by a modifying traverser. therefore, it gets the readOnly flag as a parameter to pass to Traverser.

virtual NVSG_API nvtraverser::ModelViewTraverser::~ModelViewTraverser  )  [protected, virtual]
 

Protected destructor to prevent instantiation of a ModelViewTraverser.


Member Function Documentation

virtual NVSG_API void nvtraverser::ModelViewTraverser::handleLOD const nvsg::LOD p  )  [protected, virtual]
 

Routine to handle a LOD (Level Of Detail) node while traversing the scene graph.

This routine gets called for each LOD object that will be visited while traversing the scene graph. The currently visited LOD object is pointed to by p. The base implementation ensures that all underlying components will be traversed in a correct way. For derived classes, it is recommended to always call the base implementation for traversing purposes.

Note:
: The behavior is undefined if p points to an invalid location.

Reimplemented from nvtraverser::Traverser.

Reimplemented in nvtraverser::CullTraverser, and nvtraverser::RayIntersectTraverser.

virtual NVSG_API void nvtraverser::ModelViewTraverser::handleParallelCamera const nvsg::ParallelCamera p,
const nvsg::Node root
[protected, virtual]
 

Provide special treatment of a ParallelCamera object.

The function initializes the model view transformation stack and calls the base class handler function.

Parameters:
p  ParallelCamera to handle
root  root node of scene to traverse

Reimplemented from nvtraverser::Traverser.

Reimplemented in nvtraverser::GLTraverser, and nvtraverser::RenderTraverser.

virtual NVSG_API void nvtraverser::ModelViewTraverser::handlePerspectiveCamera const nvsg::PerspectiveCamera p,
const nvsg::Node root
[protected, virtual]
 

Provide special treatment of a PerspectiveCamera object.

The function initializes the model view transformation stack and calls the base class handler function.

Parameters:
p  PerspectiveCamera to handle
root  root node of scene to traverse

Reimplemented from nvtraverser::Traverser.

Reimplemented in nvtraverser::GLTraverser, and nvtraverser::RenderTraverser.

virtual NVSG_API void nvtraverser::ModelViewTraverser::handleTransform const nvsg::Transform p  )  [protected, virtual]
 

Provide special treatment of a Transform node.

On a Transform the modelview matrix is modified, the children are traversed, and the modelview matrix is restored.

Parameters:
p  Transform to handle

Reimplemented from nvtraverser::Traverser.

Reimplemented in nvtraverser::CullTraverser, nvtraverser::GLTraverser, and nvtraverser::RayIntersectTraverser.

virtual NVSG_API bool nvtraverser::ModelViewTraverser::preTraverseTransform const nvsg::Transform p  )  [protected, virtual]
 

Handles actions to take between transform stack adjustment and traversal.

In this base class, this is a NOP.

Parameters:
p  Transform node to traverse next

Reimplemented in nvtraverser::FrustumCullTraverser, nvtraverser::GLTraverser, and nvtraverser::RayIntersectTraverser.

virtual NVSG_API void nvtraverser::ModelViewTraverser::postTraverseTransform const nvsg::Transform p  )  [protected, virtual]
 

Handles actions to take between traversal and transform stack adjustment.

When this function returns true, the subtree beneath is traversed. Otherwise it isn't.

Returns:
true
Parameters:
p  Transform node that was traversed immediately before this call.

Reimplemented in nvtraverser::FrustumCullTraverser, and nvtraverser::RayIntersectTraverser.

virtual NVSG_API bool nvtraverser::ModelViewTraverser::preTraverseRoot const nvsg::SimpleCamera p,
const nvsg::Node root
[protected, virtual]
 

Handles actions to take just before the scene is traversed.

This initializes the camera related part of the transform stack (after traversal of the headlights).

Parameters:
p  camera that is used here
root  root node to traverse from

Reimplemented from nvtraverser::Traverser.

Reimplemented in nvtraverser::FrustumCullTraverser, nvtraverser::GLTraverser, and nvtraverser::OcclusionCullGLTraverser.


Member Data Documentation

nvutil::TransformStack nvtraverser::ModelViewTraverser::m_transformStack [protected]
 

stack of transformations that holds the actual transformations while traversing a tree


The documentation for this class was generated from the following file:
Generated on Tue Mar 1 13:21:04 2005 for NVSGSDK by NVIDIA