00001
00002
00003 #ifndef __VISITOR_H
00004 #define __VISITOR_H
00005
00006 #include <esg/Export>
00007
00008 namespace esg {
00009
00010 class OGSCENE_EXPORT Geometry;
00011 class OGSCENE_EXPORT Roughness;
00012 class OGSCENE_EXPORT Specular;
00013 class OGSCENE_EXPORT Diffuse;
00014 class OGSCENE_EXPORT Ambient;
00015 class OGSCENE_EXPORT Reflection;
00016 class OGSCENE_EXPORT Refraction;
00017 class OGSCENE_EXPORT IndexOfRefraction;
00018 class OGSCENE_EXPORT FresnelTerm;
00019 class OGSCENE_EXPORT GaussianCoef;
00020 class OGSCENE_EXPORT Transform;
00021 class OGSCENE_EXPORT Transparency;
00022 class OGSCENE_EXPORT PhotonMapBehaviour;
00023
00024 class OGSCENE_EXPORT Visitor {
00025 public:
00026 virtual ~Visitor () {}
00027
00028 virtual void visitGeometry (Geometry*) {}
00029 virtual void visitRoughness (Roughness*) {}
00030 virtual void visitSpecular (Specular*) {}
00031 virtual void visitDiffuse (Diffuse*) {}
00032 virtual void visitAmbient (Ambient*) {}
00033 virtual void visitReflection (Reflection*) {}
00034 virtual void visitRefraction (Refraction*) {}
00035 virtual void visitIndexOfRefraction (IndexOfRefraction*) {}
00036 virtual void visitTransparency (Transparency*) {}
00037 virtual void visitFresnelTerm (FresnelTerm*) {}
00038 virtual void visitGaussianCoef (GaussianCoef*) {}
00039 virtual void visitTransform (Transform*) {}
00040 virtual void visitPhotonMapBehaviour (PhotonMapBehaviour*) {}
00041
00042 virtual void init (void) {}
00043 };
00044
00045 };
00046
00047 #endif //__VISITOR_H