home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Homebrewer's Handbook / vr.iso / avril / example3.c < prev    next >
C/C++ Source or Header  |  1996-03-19  |  1KB  |  54 lines

  1. /* EXAMPLE3 -- surface maps */
  2.  
  3. /* Written by Bernie Roehl, April 1994 */
  4.  
  5. #include "avril.h"
  6. #include <stdlib.h>  /* needed for rand() */
  7.  
  8. void main()
  9.     {
  10.     FILE *infile;
  11.     vrl_Light *light;
  12.     vrl_Camera *camera;
  13.     vrl_Shape *colorthing = NULL;
  14.     vrl_Surfacemap *map1, *map2;
  15.     int i;
  16.  
  17.     vrl_SystemStartup();
  18.     
  19.     map1 = vrl_SurfacemapCreate(6);
  20.     map2 = vrl_SurfacemapCreate(6);
  21.     for (i = 0; i < 6; ++i)
  22.         {
  23.         vrl_SurfacemapSetSurface(map1, i, vrl_SurfaceCreate(i + 1));
  24.         vrl_SurfacemapSetSurface(map2, i, vrl_SurfaceCreate(7 + i));
  25.         }
  26.  
  27.     infile = fopen("colorful.plg", "r");
  28.     if (infile)
  29.         {
  30.         colorthing = vrl_ReadPLG(infile);
  31.         fclose(infile);
  32.         }
  33.  
  34.     light = vrl_LightCreate();
  35.     vrl_LightRotY(light, float2angle(45));
  36.     vrl_LightRotX(light, float2angle(45));
  37.  
  38.     camera = vrl_CameraCreate();
  39.     vrl_CameraMove(camera, 0, 100, -50);
  40.  
  41.     for (i = 0; i < 10; ++i)
  42.         {
  43.         vrl_Object *obj = vrl_ObjectCreate(colorthing);
  44.         if (i & 1)
  45.             vrl_ObjectSetSurfacemap(obj, map1);
  46.         else
  47.             vrl_ObjectSetSurfacemap(obj, map2);
  48.         vrl_ObjectMove(obj, rand() % 1000, rand() % 1000, rand() % 1000);
  49.         }
  50.  
  51.     vrl_SystemRun();
  52.     }
  53.  
  54.