NAME
	  fgluLookAt - define a	viewing	transformation


     FORTRAN SPECIFICATION
	  SUBROUTINE fgluLookAt( REAL*8	eyeX,
				 REAL*8	eyeY,
				 REAL*8	eyeZ,
				 REAL*8	centerX,
				 REAL*8	centerY,
				 REAL*8	centerZ,
				 REAL*8	upX,
				 REAL*8	upY,
				 REAL*8	upZ )


     PARAMETERS
	  eyeX,	eyeY, eyeZ
			  Specifies the	position of the	eye point.

	  centerX, centerY, centerZ
			  Specifies the	position of the	reference
			  point.

	  upX, upY, upZ	  Specifies the	direction of the up vector.

     DESCRIPTION
	  fgluLookAt creates a viewing matrix derived from an eye
	  point, a reference point indicating the center of the	scene,
	  and an UP vector.

	  The matrix maps the reference	point to the negative z	axis
	  and the eye point to the origin.  When a typical projection
	  matrix is used, the center of	the scene therefore maps to
	  the center of	the viewport.  Similarly, the direction
	  described by the UP vector projected onto the	viewing	plane
	  is mapped to the positive y axis so that it points upward in
	  the viewport.	 The UP	vector must not	be parallel to the
	  line of sight	from the eye point to the reference point.

	  Let

	      (	centerX	  -   eyeX  )
	  F = |			    |
	      |	centerY	  -   eyeY  |
	      (	centerZ	  -   eyeZ  )

	  Let UP be the	vector (upX,upY,upZ).

	  Then normalize as follows: f = _____
					 ||F||

	  UP' =	______
		||UP||

	  Finally, let s = f x UP', and	u = s x	f.

	  M is then constructed	as follows:
	      (	s[0]   s[1]   s[2]  0  )
	      |	u[0]   u[1]   u[2]  0  |
	  M = |			       |
	      |-f[0]  -f[1]  -f[2]  0  |
	      |	 0	0      0    1  |
	      (			       )
	  and fgluLookAt is equivalent to glMultMatrixf(M);
	  glTranslated (-eyex, -eyey, -eyez);

     SEE ALSO
	  glFrustum, fgluPerspective