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

  1.                                                       // Example: 098 from Library Reference
  2. #include "..\3D-Ware\dddware.h"
  3. short    Xpos=0, Ypos=0, Zpos=2000;
  4. short    Xangle=0, Yangle=0, Zangle=0;
  5. short    VXangle=0, VYangle=0, VZangle=0;
  6. short    ShapeHandle;
  7. char     Semaphores;
  8. struct    mypos{
  9.     long  x;
  10.     long  y;
  11.     long  z;
  12.       };
  13. struct    myangles{
  14.     short xangle;
  15.     short yangle;
  16.       };
  17. struct    mypos proj_posns;
  18. struct    myangles proj_angles;
  19. short  main(void)
  20. {
  21.   proj_posns.x = proj_posns.y = proj_posns.z = 0;
  22.   proj_posns.y = -100;
  23.   proj_angles.xangle = proj_angles.yangle = 0;
  24.   dddInitAll();
  25.   ShapeHandle = (dddShapeLoad("EXAMPLE.3D"));         // Load the .3D data file.
  26.   VXangle = VYangle = VZangle = 0;                    // Set viewers angles to 0,0,0
  27.   while  (dddkeycode!=_ESC)
  28.   {
  29.     dddHorizon(0,0);
  30.     dddDotGrid();
  31.     dddClearObjects();                                // Clear the viewing table.
  32.     dddProjectForward(&proj_posns, &proj_angles, 40); // Project forward 40 units per time.
  33.     dddSetViewPos16((short)proj_posns.x, (short)proj_posns.y, (short)proj_posns.z);
  34.                                                       // Set the viewers angles in the 3D engine.
  35.     if  (dddkeypressed[_LF_ARROW])
  36.     {
  37.       VYangle -= 0x100;
  38.     }
  39.     if  (dddkeypressed[_RT_ARROW])
  40.     {
  41.       VYangle += 0x100;
  42.     }
  43.     proj_angles.yangle = VYangle;
  44.     dddSetViewAngles(VXangle,VYangle,VZangle);        // Set the viewers angles.
  45.     dddInsertObject16(DRW_MOBILE,ShapeHandle,Semaphores,Xpos,Ypos,Zpos,Xangle,Yangle,Zangle);
  46.                                                       // Insert an object to be rendered.
  47.     dddDrawObjects();                                 // Render all 3D objects we have inserted.
  48.     dddScreenSwap();                                  // Flip the real screen and the dummy screen.
  49.   }
  50.   dddRestoreAll();
  51.   return 0;                                           // Bye.
  52. }
  53.