00001 /* 00008 * LEGAL: COPYRIGHT (C) 2007 JIM E. BROOKS 00009 * THIS SOURCE CODE IS RELEASED UNDER THE TERMS 00010 * OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2). 00011 *****************************************************************************/ 00012 00013 #if ENG_GRAPH_CC || DOXYGEN // private to Graph class 00014 #ifndef ENG_GRAPH_VISITORS_HH 00015 #define ENG_GRAPH_VISITORS_HH 1 00016 00017 namespace eng { 00018 00026 class VisitorCloner : public Visitor 00027 { 00028 public: 00029 VisitorCloner( Graph& graph, const Graph& parentGraph ) 00030 : Visitor(graph), mParentGraph(parentGraph) { } 00031 ~VisitorCloner() { } 00032 void VisitAny( Node& node ); 00033 DECLARE_VISIT_ANY( VisitAny ) // expands call to VisitAny() for all Node classes 00034 00035 private: 00036 const Graph& mParentGraph; 00037 }; 00038 00043 class VisitorLod : public Visitor 00044 { 00045 public: 00046 VisitorLod( Graph& graph, ObjectLod objectLod ) 00047 : Visitor(graph), 00048 mObjectLod(objectLod) 00049 { 00050 } 00051 00052 ~VisitorLod() { } 00053 00054 void Visit( LodNode& lodNode ) 00055 { 00056 // Found the LodNode, stop traversing. 00057 Stop(); 00058 00059 // Change LOD. 00060 lodNode.SetLod( mObjectLod ); 00061 } 00062 00063 private: 00064 ObjectLod mObjectLod; 00065 }; 00066 00067 } // namespace eng 00068 00069 #endif // ENG_GRAPH_VISITORS_HH 00070 #endif // ENG_GRAPH_CC || DOXYGEN
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:08 2007