home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / exampleCode / inventor / OpenInventorLab / labSolutions / walk1.c++ < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  1.4 KB  |  54 lines

  1. //-----------------------------------------------------------------------
  2. //
  3. //  SOLUTION: Inventor Barcelona Lab #1
  4. //
  5. //    This program illustrates a simple Inventor program which reads
  6. //    in an Inventor file and views it with the `Walkthrough viewer'.
  7. //
  8. //    EXERCISE::
  9. //    Change the input file to be another file: /usr/share/data/models/*
  10. //
  11. //    Change the Viewer to be a different viewer:
  12. //            SoExaminerViewer
  13. //            SoFlyViewer
  14. //            SoPlaneViewer
  15. //
  16. //      Type: make walk1
  17. //
  18. //-----------------------------------------------------------------------
  19.  
  20. #include <stdio.h>
  21. #include <Inventor/SoDB.h>
  22. #include <Inventor/nodes/SoSeparator.h>
  23. #include <Inventor/Xt/SoXt.h>
  24. #include <Inventor/Xt/viewers/SoXtExaminerViewer.h>
  25.  
  26.  
  27. main(int argc, char **argv)
  28. {
  29.     // Initialize Inventor
  30.     Widget myWindow = SoXt::init( argv[0] );
  31.     if ( myWindow == NULL ) exit(1);
  32.  
  33.     // Make a viewer part of the window
  34.     SoXtExaminerViewer *viewer = new SoXtExaminerViewer(myWindow);
  35.  
  36.     // Read the object from a file
  37.     SoInput myInput;
  38.     if ( !myInput.openFile("./temple.iv") ) return(1);
  39.     SoSeparator *scene = SoDB::readAll( &myInput );
  40.     if ( scene == NULL ) {
  41.     printf( "Error: temple.iv file read failed!\n" );
  42.     exit(1);
  43.     }
  44.     scene->ref();
  45.  
  46.     // Viewer setup
  47.     viewer->setSceneGraph( scene );
  48.     viewer->setTitle( "Examiner Viewer Program" );
  49.     viewer->show();
  50.     SoXt::show( myWindow );
  51.  
  52.     SoXt::mainLoop();
  53. }
  54.