Example #1
0
/* calculates normal to the triangle designated by v1, v2, v3 */
void triagnormal(float v1[3], float v2[3], float v3[3], float norm[3])
{
    float vec1[3], vec2[3];

    vec1[0] = v3[0] - v1[0];
    vec2[0] = v2[0] - v1[0];
    vec1[1] = v3[1] - v1[1];
    vec2[1] = v2[1] - v1[1];
    vec1[2] = v3[2] - v1[2];
    vec2[2] = v2[2] - v1[2];

    ncrossprod(vec2, vec1, norm);
}
Example #2
0
  /*
   * I took the idea of tracking eye position in absolute
   * coords and direction looking in Polar form from denis
   */
void FlyLookFrom(GLfloat x, GLfloat y, GLfloat z, GLfloat az, GLfloat el)
{
  float lookat[3], perp[3], up[3];

  lookat[0] = sin(TORAD(az))*cos(TORAD(el));
  lookat[1] = sin(TORAD(el));
  lookat[2] = -cos(TORAD(az))*cos(TORAD(el));
  normalize(lookat);
  perp[0] = lookat[2];
  perp[1] = 0;
  perp[2] = -lookat[0];
  normalize(perp);
  ncrossprod(lookat, perp, up);
  gluLookAt(x, y, z,
            x+lookat[0], y+lookat[1], z+lookat[2],
            up[0], up[1], up[2]);
}