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 FileValidator; 00020 class X3DXmlLoader; 00021 00022 } 00023 00033 class X3DLoader 00034 { 00035 public: 00037 X3DLoader(); 00039 virtual ~X3DLoader() = 0; 00040 00045 X3D::Scene *load(const char *file, bool fileValidation = true) const; 00046 00049 void setComponentCreator(X3D::X3DComponentCreator *component); 00052 void setWalkerForFileValidator(Walker *walker); 00055 void setComponentVisitorForFileValidator(X3DComponentVisitor *component); 00058 void X3DLoader::setFileValidator(X3D::FileValidator *fileValidator); 00059 00060 protected: 00062 X3D::Creator *creator; 00064 X3D::FileValidator *fileValidator; 00066 X3D::X3DXmlLoader *xmlLoader; 00067 }; 00068 00069 } 00070 00071 #endif