home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Madness / VRMAD96_ONE.ISO / virtek / libex / libex006.c < prev    next >
C/C++ Source or Header  |  1995-08-24  |  2KB  |  71 lines

  1.                                                // Example: 006 from Library Reference
  2. #include "..\3D-Ware\dddware.h"
  3. short    Xpos=0, Ypos=0, Zpos=400;
  4. short    Xangle=0, Yangle=0, Zangle=0;
  5. short    VXpos=0, VYpos=0, VZpos=0;
  6. short    VXangle=0, VYangle=0, VZangle=0;
  7. short    ShapeHandle;
  8. char     Semaphores;
  9. short    clipx=100, clipy=60;
  10. short  main(void)
  11. {
  12.   dddInitAll();
  13.   ShapeHandle = (dddShapeLoad("EXAMPLE.3D"));  // Load the .3D data file.
  14.   VXangle = VYangle = VZangle = 0;             // Set viewers angles to 0,0,0
  15.   VXpos = VYpos = VZpos = 0;                   // Set viewer to centre of 3D world scene.
  16.   dddSetViewPos16(VXpos,VYpos,VZpos);          // Set the viewers angles in the 3D engine.
  17.   dddSetViewAngles(VXangle,VYangle,VZangle);   // Set the viewers position in the 3D engine.
  18.   dddSetClipArea(0,319,0,199);                 // Set up clipping boundaries.
  19.   while  (dddkeycode!=_ESC)
  20.   {
  21.  
  22.   dddCls();
  23.  
  24.   if (dddkeypressed[ _DN_ARROW ])
  25.   {
  26.       if (clipy<100)
  27.       {
  28.          clipy++;
  29.       }
  30.    }
  31.    if (dddkeypressed[ _UP_ARROW ])
  32.    {
  33.       if (clipy>2)
  34.       {
  35.          clipy--;
  36.       }
  37.    }
  38.  
  39.    if (dddkeypressed[ _RT_ARROW ])
  40.    {
  41.       if (clipx<160)
  42.       {
  43.          clipx++;
  44.       }
  45.    }
  46.    if (dddkeypressed[ _LF_ARROW ])
  47.    {
  48.       if (clipx>2)
  49.       {
  50.          clipx--;
  51.       }
  52.    }
  53.     dddFillScreen(2);
  54.     dddSetClipArea(160-clipx,159+clipx,100-clipy,99+clipy);
  55.                                                // Set up clipping boundaries.
  56.     dddClearClipArea();
  57.  
  58.     dddSetViewAngles(VXangle,VYangle,VZangle); // Set the viewers angles.
  59.     dddClearObjects();                         // Clear the viewing table.
  60.     Yangle += 0x200;                           // Rotate the shape in the Y plane.
  61.     Zangle += 0x200;                           // Rotate the shape in the Z plane.
  62.     dddInsertObject16(DRW_MOBILE,ShapeHandle,Semaphores,Xpos,Ypos,Zpos,Xangle,Yangle,Zangle);
  63.                                                // Insert on object to be rendered.
  64.     dddMedPrintC(11,0,"Use Cursor Keys to change clip area.");
  65.     dddDrawObjects();                          // Render all 3D objects we have inserted.
  66.     dddScreenSwap();                           // Flip the real screen and the dummy screen.
  67.   }
  68.   dddRestoreAll();
  69.   return 0;                                    // Bye.
  70. }
  71.