Guest

Untitled

By: a guest on Jan 28th, 2012  |  syntax: None  |  size: 0.61 KB  |  hits: 23  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. void GLAPIENTRY
  2. gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar)
  3. {
  4.     GLdouble m[4][4];
  5.     double sine, cotangent, deltaZ;
  6.     double radians = fovy / 2 * __glPi / 180;
  7.  
  8.     deltaZ = zFar - zNear;
  9.     sine = sin(radians);
  10.     if ((deltaZ == 0) || (sine == 0) || (aspect == 0)) {
  11.         return;
  12.     }
  13.     cotangent = COS(radians) / sine;
  14.  
  15.     __gluMakeIdentityd(&m[0][0]);
  16.     m[0][0] = cotangent / aspect;
  17.     m[1][1] = cotangent;
  18.     m[2][2] = -(zFar + zNear) / deltaZ;
  19.     m[2][3] = -1;
  20.     m[3][2] = -2 * zNear * zFar / deltaZ;
  21.     m[3][3] = 0;
  22.     glMultMatrixd(&m[0][0]);
  23. }