Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

PlugInterface.h

Go to the documentation of this file.
00001 // Copyright NVIDIA Corporation 2002-2004
00002 // TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED
00003 // *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS
00004 // OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
00005 // AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS
00006 // BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES
00007 // WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
00008 // BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS)
00009 // ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS
00010 // BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 
00011 
00012 #pragma once
00013 
00015 #include "nvsgcommon.h"
00016 
00017 #include  "nvutil/PlugIn.h" // general PlugIn class definition
00018 
00019 namespace nvsg
00020 {
00021   class Scene;
00022   class Texture;
00023   class ViewState;
00024 
00026 
00092   // SceneLoader interface
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 } //  namespace nvsg

Generated on Tue Mar 1 13:19:18 2005 for NVSGSDK by NVIDIA