home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win / sieciowe / oiv_demo.lzh / disk2 / DATA.2 / include / Ivf / IvfDoc.h < prev    next >
C/C++ Source or Header  |  1995-06-19  |  4KB  |  122 lines

  1. /*
  2. * Copyright (C) 1995   Template Graphics Software, Inc.
  3. _______________________________________________________________________
  4. _________________  TEMPLATE GRAPHICS SOFTWARE INC.  ___________________
  5. |
  6. |
  7. |   This class provides methods for manipulation of Open Inventor
  8. |   documents.
  9. |
  10. |   Author(s): James R. Gambale, Jr.
  11. |
  12. _________________  TEMPLATE GRAPHICS SOFTWARE INC.  ___________________
  13. _______________________________________________________________________
  14. */
  15.  
  16. #ifndef __CIVFDOC_H__
  17. #define __CIVFDOC_H__
  18.  
  19.  
  20. class SoSeparator;
  21. class SoInput;
  22.  
  23. class CArchive ;
  24.  
  25. class CIvfDoc 
  26. {
  27. public:
  28.     CIvfDoc();
  29.     ~CIvfDoc();
  30.  
  31. public:
  32.     // pointer to the root of the scene graph
  33.     SoSeparator *m_pSceneRoot ;
  34.  
  35.     // This method invokes IvfDeleteContents and
  36.     // unrefs the current scene graph.
  37.     BOOL                 IvfOnNewDocument();
  38.  
  39.     // This method loads a file given a path name.  The
  40.     // pointer for the scene graph that is produced is
  41.     // stored in m_pSceneRoot.
  42.     BOOL                 IvfOnOpenDocument(LPCTSTR lpszPathName);
  43.  
  44.     // This method stores the scene graph pointed to by
  45.     // m_pSceneRoot in the file specified by the argument.
  46.     BOOL                 IvfOnSaveDocument(LPCTSTR lpszPathName);
  47.  
  48.     // This method loads a file given file handle.  The
  49.     // pointer for the scene graph that is produced is
  50.     // stored in m_pSceneRoot.
  51.     BOOL                 IvfOnOpenDocument(UINT hFile);
  52.     
  53.     // This method stores the scene graph pointed to by
  54.     // m_pSceneRoot in the file specified by the argument.
  55.     BOOL                 IvfOnSaveDocument(UINT hFile);
  56.  
  57.     // This method loads a file given an archive object. The
  58.     // pointer for the scene graph that is produced is
  59.     // stored in m_pSceneRoot.
  60.     BOOL                 IvfOnOpenDocument(CArchive &rArchive);
  61.  
  62.     // This method stores the scene graph pointed to by
  63.     // m_pSceneRoot in the file specified by the argument.
  64.     BOOL                 IvfOnSaveDocument(CArchive &rArchive);
  65.  
  66.     // This method unrefs the scene graph pointed
  67.     // to by m_pSceneRoot
  68.     virtual void        IvfDeleteContents();
  69.  
  70.     // This method sets m_pSceneRoot to pRoot.  The scene graph
  71.     // previously pointed to by m_pSceneRoot (if any) is unrefed.
  72.     void                 IvfSetSceneGraph(SoSeparator *pRoot);
  73.  
  74.  
  75.     // This method returns TRUE if this application is an
  76.     // OLE server, FALSE otherwise.
  77.     BOOL                 IvfIsOleSrvr() ;
  78.  
  79.     // This method loads the contents of an Open Inventor file.
  80.     // A pointer to the scene graph is returned. The ref count
  81.     // for the returned scene graph is zero.
  82.     static SoSeparator *IvfReadAll(SoInput *);
  83.  
  84.     // This method saves the scene graph pointed to by pRoot in the
  85.     // file specified by lpFname.  If successful, TRUE is returned.
  86.     static BOOL         IvfSaveSceneGraph(LPCTSTR lpFname,SoSeparator *pRoot) ;
  87.  
  88.     // This method loads the file specified by lpFname, and returns
  89.     // a pointer to the scene graph.  The ref count for the
  90.     // returned scene graph is zero.  Null is returned if the load fails.
  91.     static SoSeparator *IvfLoadSceneGraph(LPCTSTR lpFname) ;
  92.  
  93.     // This method saves the scene graph pointed to by pRoot in the
  94.     // file specified by hFile.  If successful, TRUE is returned.
  95.     static BOOL         IvfSaveSceneGraph(UINT hFile,SoSeparator *pRoot) ;
  96.     
  97.     // This method loads the file specified by lpFname, and returns
  98.     // a pointer to the scene graph.  The ref count for the
  99.     // returned scene graph is zero.  Null is returned if the load fails.
  100.     static SoSeparator *IvfLoadSceneGraph(UINT hFile) ;
  101.  
  102.     // This method saves the scene graph pointed to by pRoot in the
  103.     // archive specified by rArchive.  If successful, TRUE is returned.
  104.     static BOOL         IvfSaveSceneGraph(CArchive &rArchive,SoSeparator *pRoot) ;
  105.  
  106.     // This method loads from the archive specified by lpFname, and returns
  107.     // a pointer to the scene graph.  The ref count for the
  108.     // returned scene graph is zero.  Null is returned if the load fails.
  109.     static SoSeparator *IvfLoadSceneGraph(CArchive &rArchive) ;
  110.  
  111. protected:
  112.     
  113.     // This method deletes the scene graph pointed to by m_pSceneRoot.
  114.     void IvfDeleteSceneGraph() ;
  115.     
  116.     // This method notifies the view object that the scene graph has
  117.     // changed.
  118.     void IvfSceneGraphChanged() ;
  119. };
  120.  
  121. #endif
  122.