Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Oct 31st, 2012  |  syntax: C  |  size: 0.91 KB  |  hits: 47  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. void GLAPIENTRY
  2. gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx,
  3.           GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy,
  4.           GLdouble upz)
  5. {
  6.     float forward[3], side[3], up[3];
  7.     GLfloat m[4][4];
  8.  
  9.     forward[0] = centerx - eyex;
  10.     forward[1] = centery - eyey;
  11.     forward[2] = centerz - eyez;
  12.        
  13.     up[0] = upx;
  14.     up[1] = upy;
  15.     up[2] = upz;
  16.  
  17.     normalize(forward);
  18.  
  19.     /* Side = forward x up */
  20.     cross(forward, up, side);
  21.     normalize(side);
  22.  
  23.     /* Recompute up as: up = side x forward */
  24.     cross(side, forward, up);
  25.        
  26.     __gluMakeIdentityf(&m[0][0]);
  27.     m[0][0] = side[0];
  28.     m[1][0] = side[1];
  29.     m[2][0] = side[2];
  30.  
  31.     m[0][1] = up[0];
  32.     m[1][1] = up[1];
  33.     m[2][1] = up[2];
  34.  
  35.     m[0][2] = -forward[0];
  36.     m[1][2] = -forward[1];
  37.     m[2][2] = -forward[2];
  38.  
  39.     glMultMatrixf(&m[0][0]);
  40.     glTranslated(-eyex, -eyey, -eyez);
  41. }