00001 #ifndef X3DTK_X3DLOADER_H 00002 #define X3DTK_X3DLOADER_H 00003 00004 #include "X3DTypes.h" 00005 #include "Walker.h" 00006 00007 #include <list> 00008 00009 namespace X3DTK { 00010 00011 class X3DComponentWalker; 00012 class X3DComponentVisitor; 00013 00014 namespace X3D { 00015 00016 class Creator; 00017 class X3DComponentCreator; 00018 class Scene; 00019 class X3DFileValidator; 00020 class X3DXmlLoader; 00021 00022 } 00023 00030 class X3DLoader 00031 { 00032 public: 00034 X3DLoader(); 00036 virtual ~X3DLoader() = 0; 00037 00041 X3D::Scene *load(const char *file, bool fileValidation = true) const; 00042 00044 void setComponentCreator(X3D::X3DComponentCreator *component); 00046 void setWalkerForFileValidator(Walker *walker); 00048 void setComponentVisitorForFileValidator(X3DComponentVisitor *component); 00050 void X3DLoader::setFileValidator(X3D::X3DFileValidator *fileValidator); 00051 00052 protected: 00054 X3D::Creator *creator; 00056 X3D::X3DFileValidator *fileValidator; 00058 X3D::X3DXmlLoader *xmlLoader; 00059 }; 00060 00061 } 00062 00063 #endif