diff options
author | Tavian Barnes <tavianator@gmail.com> | 2010-11-14 21:20:43 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@gmail.com> | 2010-11-14 21:20:43 -0500 |
commit | 8fe33a340b8979a73fa84f201c15519a9b5d0266 (patch) | |
tree | 12cdbb1c1b9a48f533ab36980602785be1e1deeb /libdimension/camera.c | |
parent | 20a55aa78050d94b187d4edfaac91ea00efea505 (diff) | |
download | dimension-8fe33a340b8979a73fa84f201c15519a9b5d0266.tar.xz |
Document libdimension with Doxygen.
Diffstat (limited to 'libdimension/camera.c')
-rw-r--r-- | libdimension/camera.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libdimension/camera.c b/libdimension/camera.c index 08c4e1a..d963d1b 100644 --- a/libdimension/camera.c +++ b/libdimension/camera.c @@ -18,6 +18,11 @@ * <http://www.gnu.org/licenses/>. * *************************************************************************/ +/** + * @file + * Cameras. + */ + #include "dimension.h" #include <stdlib.h> @@ -27,6 +32,7 @@ dmnsn_new_camera() { dmnsn_camera *camera = dmnsn_malloc(sizeof(dmnsn_camera)); camera->free_fn = NULL; + camera->trans = dmnsn_identity_matrix(); return camera; } @@ -41,3 +47,11 @@ dmnsn_delete_camera(dmnsn_camera *camera) dmnsn_free(camera); } } + +/* Invoke the camera ray function */ +dmnsn_line +dmnsn_camera_ray(const dmnsn_camera *camera, double x, double y) +{ + dmnsn_line ray = (*camera->ray_fn)(camera, x, y); + return dmnsn_transform_line(camera->trans, ray); +} |