home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / fermiVogle.tar.Z / fermiVogle.tar / devel / src / aspect.c < prev    next >
C/C++ Source or Header  |  1996-02-07  |  1KB  |  74 lines

  1. #include "vogle.h"
  2.  
  3. #define    MIN(x, y)    ((x) < (y) ? (x) : (y))
  4.  
  5. /*
  6.  * getaspect
  7.  *
  8.  *    Gets the aspect ratio of the display/window.
  9.  *    IE. y / x
  10.  */
  11. float
  12. getaspect(void)
  13. {
  14.     return((float)vdevice.sizeSy / (float)vdevice.sizeSx);
  15. }
  16.  
  17. /*
  18.  * getdisplaysize
  19.  *
  20.  *    Returns the raw size of the display window in pixel units
  21.  *    as floating point values.
  22.  */
  23. void
  24. getdisplaysize(float *x, float *y)
  25. {
  26.     *x = (float)vdevice.sizeSx;
  27.     *y = (float)vdevice.sizeSy;
  28. }
  29.  
  30. /*
  31.  * getfactors
  32.  *
  33.  *    returns two x and y scaling factors for use with the
  34.  *    viewport call so as the viewport can be set to the
  35.  *    whole display/window.
  36.  */
  37. void
  38. getfactors(float *x, float *y)
  39. {
  40.     *x = (float)vdevice.sizeSx / (float)vdevice.sizeX;
  41.     *y = (float)vdevice.sizeSy / (float)vdevice.sizeY;
  42. }
  43.  
  44. /*
  45.  * expandviewport
  46.  *
  47.  *    Vogle will normally use the largest square it can fit onto the 
  48.  * actual display device. This call says to use the whole device... however
  49.  * you must then take into account any distortion that will occur due to 
  50.  * the non square mapping.
  51.  */
  52. void
  53. expandviewport(void)
  54. {
  55.     vdevice.attr->a.exvp = 1;
  56.     vdevice.sizeX = vdevice.sizeSx;
  57.     vdevice.sizeY = vdevice.sizeSy;
  58.  
  59.     CalcW2Vcoeffs();
  60. }
  61.  
  62. /*
  63.  * unexpandviewport
  64.  *     - opposite of the above...
  65.  */
  66. void
  67. unexpandviewport(void)
  68. {
  69.     vdevice.attr->a.exvp = 0;
  70.     vdevice.sizeY = vdevice.sizeX = MIN(vdevice.sizeSx, vdevice.sizeSy);
  71.  
  72.     CalcW2Vcoeffs();
  73. }
  74.