home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / util / raytracr.sit / support.c.bin / support.c
Encoding:
C/C++ Source or Header  |  1988-11-13  |  833 b   |  37 lines  |  [TEXT/KAHL]

  1. /*
  2.  *    supportive subroutines...
  3.  */
  4.  
  5. #include <math.h>
  6. #include <stdio.h>
  7. #include "rtd.h"
  8. #include "extern.h"
  9.  
  10.  
  11. mt (vec, trans)
  12. struct vector  *vec;
  13. struct mat *trans;
  14. {
  15.     if (vec -> xzl == 0.0) {
  16.     trans -> x.x = 0.0;
  17.     trans -> x.y = 1.0;
  18.     trans -> x.z = 0.0;
  19.     trans -> y.x = -1.0;
  20.     trans -> y.y = 0.0;
  21.     trans -> y.z = 0.0;
  22.     trans -> z.x = 0.0;
  23.     trans -> z.y = 0.0;
  24.     trans -> z.z = 1.0;
  25.     }
  26.     else {
  27.     trans -> x.x = (vec -> x) / (vec -> l);
  28.     trans -> x.y = (vec -> y) / (vec -> l);
  29.     trans -> x.z = (vec -> z) / (vec -> l);
  30.     trans -> y.x = -(vec -> x) * (vec -> y) / ((vec -> l) * (vec -> xzl));
  31.     trans -> y.y = (vec -> xzl) / (vec -> l);
  32.     trans -> y.z = -(vec -> z) * (vec -> y) / ((vec -> l) * (vec -> xzl));
  33.     trans -> z.x = -(vec -> z) / (vec -> xzl);
  34.     trans -> z.y = 0;
  35.     trans -> z.z = (vec -> x) / (vec -> xzl);
  36.     }
  37. }