home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 594b.lha / VectorLibrary / Cprg / vd_cube.c < prev    next >
C/C++ Source or Header  |  1991-11-09  |  3KB  |  131 lines

  1. /*************************************/
  2. /*                                   */
  3. /*   Demo for vector.library V1.6x   */
  4. /*                                   */
  5. /* Programming by Jürgen Koch        */
  6. /*                                   */
  7. /* in Sep-1991                       */
  8. /*                                   */
  9. /*************************************/
  10.  
  11.  
  12. #include <stdio.h>
  13. #include <exec/types.h>
  14. #include <intuition/intuition.h>
  15. #define BOB_NUM 1      /* Anzahl der verwendeten VBOBs (muß mind. 1 betragen) */
  16. #include <vector.h>
  17.  
  18. struct VecBase *VecBase;
  19.  
  20.  
  21.  
  22. struct NewVScreen MyVScreen=
  23.   {
  24.    0,0,     /* Linke obere Ecke des Screen */
  25.    320,256, /* Breite und Höhe */
  26.    3,       /* Tiefe */
  27.    0,0,     /* Screentitel- und -randfarben */
  28.    0,       /* Screenmode */
  29.    NULL,    /* Zeiger auf Font des Screens; hier Standard-Font */
  30.    "vector.library  ©1991 by A.Lippert",
  31.    0,       /* Flags (bisher ungenutzt) */
  32.    0,0,     /* Offset des Vektorfensters im Screen (bisher nicht unterstützt) */
  33.    320,256, /* Breite und Höhe des Vektorfensters (muß bisher identisch sein mit Breite und Höhe des Screens) */
  34.    3        /* von Vektoranimation wirklich genutzte Bitplanes */
  35.   };
  36.  
  37. struct Joy MyJoy=
  38.  {
  39.   50,-1000,-16000,
  40.   3,3,3
  41.  };
  42.  
  43.  
  44. WORD ObjectPoints[]=  /* Punkt-Tabelle */
  45.   {
  46.    8,
  47.   -200,-200, 200,0,
  48.   -200, 200, 200,0,
  49.    200, 200, 200,0,
  50.    200,-200, 200,0,
  51.   -200,-200,-200,0,
  52.   -200, 200,-200,0,
  53.    200, 200,-200,0,
  54.    200,-200,-200,0
  55.    };
  56.  
  57. WORD ObjectAreas[]= /* Flächen-Tabelle */
  58.   {
  59.    6,
  60.     4,1,0*4,1*4,2*4,3*4,0*4,0,0,0,0,
  61.     4,2,3*4,2*4,6*4,7*4,3*4,0,0,0,0,
  62.     4,3,7*4,6*4,5*4,4*4,7*4,0,0,0,0,
  63.     4,4,0*4,4*4,5*4,1*4,0*4,0,0,0,0,
  64.     4,5,1*4,5*4,6*4,2*4,1*4,0,0,0,0,
  65.     4,6,0*4,3*4,7*4,4*4,0*4,0,0,0,0
  66.   };
  67.  
  68. WORD ObjectMove[]=
  69.   {
  70.    300, 0,0, 42, 1,1,1,  /* Positionierung und Animationspfad */
  71.    300, 0,0,  0, 1,1,1,
  72.    300, 0,0,-42, 1,1,1,
  73.    END_1
  74.   };
  75.  
  76. struct Object MyObject=
  77.   {
  78.    ObjectPoints,   /* Zeiger auf zugehörige Punkttabelle */
  79.    ObjectAreas,    /* Zeiger auf zugehörige Flächentabelle */
  80.    ObjectMove,     /* Zeiger auf zugehörige Bewegungstabelle */
  81.    0,              /* Flags */
  82.    0,0,-14300,     /* Start-Position */
  83.    0,0,0           /* Start-Rotation */
  84.   };
  85.  
  86. WORD MyColTab[]= /* Farbtabelle */
  87.   {
  88.    0,  0, 0, 0,   /* Register, Rot,Grün,Blau */
  89.    1, 12,12,12,
  90.    2, 11,11,11,
  91.    3, 10,10,10,
  92.    4,  9, 9, 9,
  93.    5,  8, 8, 8,
  94.    6,  7, 7, 7,
  95.    7,  6, 6, 6,
  96.    -1
  97.   };
  98.  
  99. ULONG MyWorld[] = {  /* Welt-Struktur */
  100.    0x00000001L,      /* erstes (High-)Wort: Flags ( = 1 für Drahtgitter); zweites Wort: Anzahl der Objekte */
  101.    &MyObject         /* Zeiger auf Struktur des ersten Objekts */
  102. };
  103.  
  104.  
  105. struct ViewStruct *ViewStruct;
  106.  
  107.  
  108. main()
  109.   {
  110.    if ((VecBase=(struct VecBase *)OpenLibrary("vector.library",0))==NULL)  /* "vector.library" öffnen */
  111.      {
  112.       printf("Unable to open 'vector.library'.\n");
  113.       exit(0);
  114.      }
  115.    if ((ViewStruct=OpenVScreen(&MyVScreen))==NULL)  /* "Animationsscreen" öffnen */
  116.      {
  117.       printf("Couldn't open VScreen.\n");
  118.       CloseLibrary(VecBase);
  119.       exit(0);
  120.      }
  121.    SetColors(ViewStruct, &MyColTab);   /* Farben setzen */
  122.  
  123.    AutoScaleOn(MyVScreen.ViewModes);   /* Entzerrung für höhere Auflösung */
  124.  
  125.    DoAnim(&MyWorld);                   /* Auf zur Animation!! */
  126.  
  127.    CloseVScreen();                     /* Bildschirm schließen */
  128.  
  129.    CloseLibrary(VecBase);
  130.   }
  131.