### Description

This function builds a "look-at" (view) matrix based on the
specified parameters listed below. Since this function modifies the
view matrix and not the projection matrix, you should first
initialize the projection matrix using the other matrix function
`matrix_build_projection_perspective`,
then use this function to move the view camera around within the
projection.

To set the view you first need to define the position you look
*from*, which is indicated by the parameters (xfrom, yfrom,
zfrom). Next you must specify the direction you look *at* and
this is done by giving a second point to look towards with the
arguments (xto, yto, zto). Finally, you can still rotate the camera
around the line from the viewpoint to the looking point, and to
specify this we must give an "up" vector - the direction that is
upwards in the camera. This is given by the last three arguments
(xup, yup, zup).

### Syntax:

matrix_build_lookat(xfrom, yfrom, zfrom, xto, yto,
zto, xup, yup, zup);

Argument |
Description |

xfrom |
The x coordinate of the position to look from. |

yfrom |
The y coordinate of the position to look from. |

zfrom |
The z coordinate of the position to look from. |

xto |
The x coordinate of the position to look to. |

yto |
The y coordinate of the position to look to. |

zto |
The z coordinate of the position to look to. |

xup |
The x coordinate of the "up" vector. |

yup |
The y coordinate of the "up" vector. |

zup |
The z coordinate of the "up" vector. |

### Returns:

Matrix index

### Example:

viewmat = matrix_build_lookat(640, 240, -10, 640,
240, 0, 0, 1, 0);

projmat = matrix_build_projection_ortho(640, 480, 1.0,
32000.0);

camera_set_view_mat(view_camera[0], viewmat);

camera_set_proj_mat(view_camera[0], projmat);

The above code creates a new look-at matrix and orthographic
matrix, stores their IDs in local variables and then uses them to
set the view and projection matrices for the camera assigned to
view port[0].