29 #ifndef __H3DMULTIPASSRENDEROBJECT_H__
30 #define __H3DMULTIPASSRENDEROBJECT_H__
46 nr_times_in_scene( 0 ) {
47 instances.push_back(
this );
52 instances.remove(
this );
81 nr_times_in_scene = 0;
88 for( list< H3DMultiPassRenderObject * >::iterator i = instances.begin();
89 i != instances.end(); ++i ) {
90 if( (*i)->nr_times_in_scene > 0 )
91 (*i)->renderPreViewpoint( n, vp );
98 for( list< H3DMultiPassRenderObject * >::iterator i = instances.begin();
99 i != instances.end(); ++i ) {
100 if( (*i)->nr_times_in_scene > 0 )
101 (*i)->renderPostViewpoint( n, vp );
108 for( list< H3DMultiPassRenderObject * >::iterator i = instances.begin();
109 i != instances.end(); ++i ) {
110 if( (*i)->nr_times_in_scene > 0 )
111 (*i)->renderPostScene( n, vp );
117 for( list< H3DMultiPassRenderObject * >::iterator i = instances.begin();
118 i != instances.end(); ++i ) {
119 (*i)->resetCounter();
129 multi_pass_transparency = b;
134 static std::list< H3DMultiPassRenderObject * > instances;
137 unsigned int nr_times_in_scene;
144 static bool multi_pass_transparency;
Header file for X3DChildNode, X3D scene-graph node.
Header file for X3DViewpointNode, X3D scene-graph node.
This abstract interface is inherited by all nodes that needs to render the scene an extra time(or mor...
Definition: H3DMultiPassRenderObject.h:41
virtual void traverseSG(TraverseInfo &)
Traverse the scenegraph.
Definition: H3DMultiPassRenderObject.h:75
virtual void renderPostScene(X3DChildNode *, X3DViewpointNode *)
This function will be called after the scene has been rendered.
Definition: H3DMultiPassRenderObject.h:71
H3DMultiPassRenderObject()
Constructor.
Definition: H3DMultiPassRenderObject.h:45
virtual void renderPostViewpoint(X3DChildNode *, X3DViewpointNode *)
This function will be called after the viewpoint has been set up for the scene to be rendered and bef...
Definition: H3DMultiPassRenderObject.h:66
static void renderPostViewpointAll(X3DChildNode *n, X3DViewpointNode *vp)
Run renderPostViewpoint on all instances of H3DMultiPassRenderObject.
Definition: H3DMultiPassRenderObject.h:96
void resetCounter()
Reset the counter.
Definition: H3DMultiPassRenderObject.h:80
static void renderPreViewpointAll(X3DChildNode *n, X3DViewpointNode *vp)
Run renderPreViewpoint on all instances of H3DMultiPassRenderObject.
Definition: H3DMultiPassRenderObject.h:86
static void resetCounters()
Run resetCounter on all instances of H3DMultiPassRenderObject.
Definition: H3DMultiPassRenderObject.h:116
static void renderPostSceneAll(X3DChildNode *n, X3DViewpointNode *vp)
Run renderPostScene on all instances of H3DMultiPassRenderObject.
Definition: H3DMultiPassRenderObject.h:106
static void setMultiPassTransparencyAll(bool b)
If multi pass transparency is set to true the scene should be rendered three times graphically,...
Definition: H3DMultiPassRenderObject.h:128
virtual void renderPreViewpoint(X3DChildNode *, X3DViewpointNode *)
This function will be called before any viewpoint calls has been made when rendering the scene and be...
Definition: H3DMultiPassRenderObject.h:60
virtual ~H3DMultiPassRenderObject()
Destructor.
Definition: H3DMultiPassRenderObject.h:51
TraverseInfo is a structure that is passed along when traversing the scene graph.
Definition: TraverseInfo.h:57
This abstract node type indicates that the concrete nodes which are instantiated based on it may be u...
Definition: X3DChildNode.h:42
The X3DViewpointNode node defines a specific location in the local coordinate system from which the u...
Definition: X3DViewpointNode.h:239
H3D API namespace.
Definition: Anchor.h:38