00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #pragma once
00013
00015 #include "nvsgcommon.h"
00016
00017 #include "nvutil/PlugIn.h"
00018
00019 namespace nvsg
00020 {
00021 class Scene;
00022 class Texture;
00023 class ViewState;
00024
00026
00092
00093 class SceneLoader : public nvutil::PlugIn
00094 {
00095 public:
00097
00104 NVSG_API virtual const Scene * load( const std::string& filename
00105 , const std::vector<std::string> &searchPaths
00106 , const ViewState *& viewState
00108 ) = 0;
00109
00110 protected:
00112
00123 NVSG_API virtual ~SceneLoader();
00124 };
00125
00127
00129 class SceneSaver : public nvutil::PlugIn
00130 {
00131 public:
00133
00136 NVSG_API virtual bool save( const Scene &scene, const ViewState *viewState, const std::string& filename ) = 0;
00137
00138 protected:
00140
00151 NVSG_API virtual ~SceneSaver();
00152 };
00153
00154 #if 0 // not yet
00155 # if ! defined( DOXYGEN_IGNORE )
00156
00157
00158 class TextureLoader : public nvutil::PlugIn
00159 {
00160 public:
00162
00169 NVSG_API virtual Texture * load( const std::string& filename
00170 , const std::vector<std::string> &searchPaths
00171 ) = 0;
00172
00173 protected:
00175
00186 NVSG_API virtual ~TextureLoader();
00187 };
00188 # endif
00189 #endif
00190
00191 }