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