eng_graph_traversal.hh

Go to the documentation of this file.
00001 /*
00010  * LEGAL:   COPYRIGHT (C) 2007 JIM E. BROOKS
00011  *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
00012  *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
00013  *****************************************************************************/
00014 
00015 #ifndef ENG_GRAPH_TRAVERSAL_HH
00016 #define ENG_GRAPH_TRAVERSAL_HH 1
00017 
00018 #include "base_stack.hh"
00019 
00020 namespace eng {
00021 
00028 class GraphTraversal
00029 {
00030 friend class Graph;
00031 
00032 private:
00033     // Only Graph can instantiate this.
00034     GraphTraversal( uint preallocate = 16 ) : mNodeStack(preallocate) { }
00035     ~GraphTraversal() { }
00036 
00037 public:
00038     typedef SafePtr<GraphTraversal> Ptr;  // abstract its pointer
00039 
00041     void Push( Node::Ptr node )
00042     {
00043     CHECK_NODE( node );
00044         mNodeStack.Push( node );
00045     }
00046 
00047 private:
00048     Stack<Node::Ptr>    mNodeStack;  
00049 };
00050 
00051 } // namespace eng
00052 
00053 #endif // ENG_GRAPH_TRAVERSAL_HH
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:08 2007