# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::CRenderTrav Class Reference

The Render traversal. More...

#include <render_trav.h>

Inheritance diagram for NL3D::CRenderTrav

Inheritance graph
[legend]
Collaboration diagram for NL3D::CRenderTrav:

Collaboration graph
[legend]
List of all members.

Public Methods

 CRenderTrav ()
 Constructor. More...

void setDriver (IDriver *drv)
IDrivergetDriver ()
void setViewport (const CViewport& viewport)
CViewport getViewport () const
ITrav/ITravScene Implementation.
IObscreateDefaultObs () const
 This method must create a default observer for this traversal. More...

NLMISC::CClassId getClassId () const
 This function must return the Unique Ident for this traversal class. More...

sint getRenderOrder () const
 Return the order of the traversal. More...

void traverse ()
 First traverse the root (if any), then render the render list. More...

RenderList.
void clearRenderList ()
 Clear the list of rendered observers. More...

void addRenderObs (IBaseRenderObs *o)
 Add an observer to the list of rendered observers. DOESN'T CHECK if already inserted. More...


Private Attributes

std::vector<IBaseRenderObs*> RenderList
IDriverDriver
CViewport _Viewport

Detailed Description

The Render traversal.

The purpose of this traversal is to render a list of models. This traversals is tightly linked to the cliptraversal. The clipTraversals insert directly the observers with CRenderTrav::addRenderObs(obs). The traverse() method should render all the render observer with IDriver.

This traversal is an exception since it is not designed to have a graph of observers. But this behavior is permitted, and the root (if any) is traversed.

USER RULES: Before using traverse() on a render traversal, you should:

NB: see CScene for 3d conventions (orthonormal basis...)

See also:
CScene IBaseRenderObs
Author(s):
Lionel Berenguier , Nevrax France
Date:
2000

Definition at line 74 of file render_trav.h.


Constructor & Destructor Documentation

NL3D::CRenderTrav::CRenderTrav ( )
 

Constructor.

Definition at line 47 of file render_trav.cpp.


Member Function Documentation

void NL3D::CRenderTrav::addRenderObs ( IBaseRenderObs * o )
 

Add an observer to the list of rendered observers. DOESN'T CHECK if already inserted.

Definition at line 85 of file render_trav.cpp.

void NL3D::CRenderTrav::clearRenderList ( )
 

Clear the list of rendered observers.

Definition at line 80 of file render_trav.cpp.

IObs * NL3D::CRenderTrav::createDefaultObs ( ) const [virtual]
 

This method must create a default observer for this traversal.

Any model which doesn't provide (by registerObs() or by inheritance) an observer for this view will be linked with this default observer.

Reimplemented from NL3D::ITrav.

Definition at line 53 of file render_trav.cpp.

NLMISC::CClassId NL3D::CRenderTrav::getClassId ( ) const [inline, virtual]
 

This function must return the Unique Ident for this traversal class.

Reimplemented from NL3D::ITrav.

Definition at line 84 of file render_trav.h.

IDriver * NL3D::CRenderTrav::getDriver ( ) [inline]
 

Definition at line 103 of file render_trav.h.

sint NL3D::CRenderTrav::getRenderOrder ( ) const [inline, virtual]
 

Return the order of the traversal.

This is usefull for CScene::render() method. It indicate when the traversal is called. Order for basic traversal are:

Reimplemented from NL3D::ITravScene.

Definition at line 85 of file render_trav.h.

CViewport NL3D::CRenderTrav::getViewport ( ) const [inline]
 

Definition at line 108 of file render_trav.h.

void NL3D::CRenderTrav::setDriver ( IDriver * drv ) [inline]
 

Definition at line 102 of file render_trav.h.

void NL3D::CRenderTrav::setViewport ( const CViewport & viewport ) [inline]
 

Definition at line 104 of file render_trav.h.

void NL3D::CRenderTrav::traverse ( ) [virtual]
 

First traverse the root (if any), then render the render list.

NB: no Driver clear buffers (color or ZBuffer) are done....

Warning:
If an observer exist both in the graph and in the render list, it will be effectively traversed twice.

Reimplemented from NL3D::ITravScene.

Definition at line 58 of file render_trav.cpp.


Member Data Documentation

IDriver * NL3D::CRenderTrav::Driver [private]
 

Definition at line 118 of file render_trav.h.

std::vector< IBaseRenderObs *> NL3D::CRenderTrav::RenderList [private]
 

Definition at line 116 of file render_trav.h.

CViewport NL3D::CRenderTrav::_Viewport [private]
 

Definition at line 119 of file render_trav.h.


The documentation for this class was generated from the following files: