The routine gUpdateView() updates the viewing transformation matrix from data specified by the viewing routines. (It does not affect the modelling transformation matrix). The viewing transformation is always pre-multiplied with the modelling transformation matrix to form the complete transformation through which all subsequent drawing will pass.
The default view is a parallel view pointing along the negative z-axis with the view centre at the origin. It can be redefined by calls to gDefinePerspView(), gDefineSphericalView() or gDefineParallelView() and modified by calls to gSetViewEyeDistance(), gMoveViewCentre(), gViewShift() or gViewTurn(). The default view can be restored by calling gInitView(). If the current view has perspective defined, it may also be modified by calls to gSetViewPlaneDistance() or gViewRotate().
Unless gPosViewCentre() is called the view centre is projected onto the centre of the current window limits. The window limits are set to the viewport limits unless a user-defined window is currently specified (see gSetWindow2D(), gSetWindow3D() or gSetWindowMode()). If gSetViewUpDirection() is not called, gGenerateView() attempts to project the 3-D y-axis parallel to the screen y-axis, or if the 3-D y-axis is parallel to the view direction, then the 3-D x-axis is projected parallel to the screen x-axis.
The viewing transformation matrix can be initialized either by calling gSetTransform() with an argument of -1, or calling gInitView().