00001 #ifndef _VISITOR_H_ 00002 #define _VISITOR_H_ 00003 00004 #include "cglib/object.h" 00005 #include "cglib/mesh.h" 00006 #include "cglib/mesh_material_mapping.h" 00007 #include "cglib/material_list.h" 00008 #include "cglib/phong_material.h" 00009 #include "cglib/textured_phong_material.h" 00010 #include "cglib/texture.h" 00011 #include "cglib/mesh_node.h" 00012 #include "cglib/transform_node.h" 00013 #include "cglib/group_node.h" 00014 00016 class Visitor 00017 { 00018 public: 00020 void visit(Object *object); 00021 00022 virtual void visit_Mesh(Mesh *mesh); 00023 virtual void visit_MeshMaterialMapping(MeshMaterialMapping *material_mapping); 00024 virtual void visit_MaterialList(MaterialList *material_list); 00025 virtual void visit_PhongMaterial(PhongMaterial *material); 00026 virtual void visit_TexturedPhongMaterial(TexturedPhongMaterial *material); 00027 virtual void visit_MeshNode(MeshNode *node); 00028 virtual void visit_TransformNode(TransformNode *node); 00029 virtual void visit_GroupNode(GroupNode *node); 00030 virtual void visit_Texture(Texture *texture); 00031 }; 00032 00033 #endif /* _VISITOR_H_ */