home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / SRC / GETGP.C < prev    next >
C/C++ Source or Header  |  2000-02-11  |  1KB  |  65 lines

  1. #include "vogle.h"
  2.  
  3. /*
  4.  * getgp
  5.  *
  6.  *    return the current (x, y, z) graphics position
  7.  */
  8. void
  9. getgp(x, y, z)
  10.     float    *x, *y, *z;
  11. {
  12.     *x = vdevice.cpW[V_X];
  13.     *y = vdevice.cpW[V_Y];
  14.     *z = vdevice.cpW[V_Z];
  15. }
  16.  
  17. /*
  18.  * getgp2
  19.  *
  20.  *    return the current (x, y) graphics position
  21.  */
  22. void
  23. getgp2(x, y)
  24.     float    *x, *y;
  25. {
  26.     *x = vdevice.cpW[V_X];
  27.     *y = vdevice.cpW[V_Y];
  28. }
  29.  
  30. /* 
  31.  * getgpt
  32.  *
  33.  *    return the current transformed graphics position.
  34.  */
  35. void    
  36. getgpt(x, y, z, w)
  37.         float   *x, *y, *z, *w;
  38. {
  39.     multvector(vdevice.cpWtrans, vdevice.cpW, vdevice.transmat->m);
  40.  
  41.         *x = vdevice.cpWtrans[V_X];
  42.         *y = vdevice.cpWtrans[V_Y];
  43.         *z = vdevice.cpWtrans[V_Z];
  44.         *w = vdevice.cpWtrans[V_W];
  45. }
  46.  
  47. /*
  48.  * sgetgp2
  49.  *
  50.  *    return the current (x, y) graphics position in screen coordinates
  51.  */
  52. void
  53. sgetgp2(x, y)
  54.     float    *x, *y;
  55. {
  56.     float    sx, sy;
  57.  
  58.     sx = vdevice.maxVx - vdevice.minVx;
  59.     sy = vdevice.maxVy - vdevice.minVy;
  60.  
  61.     multvector(vdevice.cpWtrans, vdevice.cpW, vdevice.transmat->m);
  62.     *x = 2.0 * WtoVx(vdevice.cpWtrans) / sx - 1.0;
  63.     *y = 2.0 * WtoVy(vdevice.cpWtrans) / sy - 1.0;
  64. }
  65.