home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / SRC / SUNPAS / PTRANS.C < prev    next >
C/C++ Source or Header  |  1994-04-27  |  999b  |  60 lines

  1. #include "vogle.h"
  2.  
  3. /*
  4.  * Translate
  5.  */
  6. Translate(x, y, z)
  7.     float     x, y, z;
  8. {
  9.     translate(x, y, z);
  10. }
  11.  
  12. /*
  13.  * Scale
  14.  * 
  15.  * Set up a scale matrix and premultiply it and 
  16.  * the top matrix on the stack. Had to be specified here as some looney
  17.  * has a routine called scale in the fotran i/o library. tsk, tsk.
  18.  *
  19.  */
  20. void
  21. Scale(x, y, z)
  22.     float     x, y, z;
  23. {
  24.  
  25.     if (!vdevice.initialised)
  26.         verror("scale: vogle not initialised");
  27.  
  28.     /*
  29.      * Do the operations directly on the top matrix of
  30.      * the stack to speed things up.
  31.      */
  32.  
  33.     vdevice.transmat->m[0][0] *= x;
  34.     vdevice.transmat->m[0][1] *= x;
  35.     vdevice.transmat->m[0][2] *= x;
  36.     vdevice.transmat->m[0][3] *= x;
  37.  
  38.     vdevice.transmat->m[1][0] *= y;
  39.     vdevice.transmat->m[1][1] *= y;
  40.     vdevice.transmat->m[1][2] *= y;
  41.     vdevice.transmat->m[1][3] *= y;
  42.  
  43.     vdevice.transmat->m[2][0] *= z;
  44.     vdevice.transmat->m[2][1] *= z;
  45.     vdevice.transmat->m[2][2] *= z;
  46.     vdevice.transmat->m[2][3] *= z;
  47. }
  48.  
  49.  
  50. /*
  51.  * Rotate
  52.  */
  53. Rotate(r, axis)
  54.     float    r;
  55.     char    axis;
  56. {
  57.     rotate(r, axis);
  58. }
  59.  
  60.