From 8fe33a340b8979a73fa84f201c15519a9b5d0266 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 14 Nov 2010 21:20:43 -0500 Subject: Document libdimension with Doxygen. --- libdimension/perspective.c | 62 ++++++++++++---------------------------------- 1 file changed, 16 insertions(+), 46 deletions(-) (limited to 'libdimension/perspective.c') diff --git a/libdimension/perspective.c b/libdimension/perspective.c index cc602eb..0fa5567 100644 --- a/libdimension/perspective.c +++ b/libdimension/perspective.c @@ -18,60 +18,30 @@ * . * *************************************************************************/ +/** + * @file + * Perspective cameras. + */ + #include "dimension.h" #include -/* - * Perspective camera - */ - -/* Perspective camera ray callback */ -static dmnsn_line dmnsn_perspective_camera_ray_fn(const dmnsn_camera *camera, - double x, double y); +/** Perspective camera ray callback. */ +static dmnsn_line +dmnsn_perspective_camera_ray_fn(const dmnsn_camera *camera, double x, double y) +{ + dmnsn_line l = dmnsn_new_line( + dmnsn_zero, + dmnsn_new_vector(x - 0.5, y - 0.5, 1.0) + ); + return l; +} -/* Create a new perspective camera. Rays are aimed from the origin to a screen - located on the z = 1 plane, from (-0.5, -0.5) to (0.5, 0.5). Rays are then - transformed by the camera's transformation matrix. */ +/* Create a new perspective camera. */ dmnsn_camera * dmnsn_new_perspective_camera() { dmnsn_camera *camera = dmnsn_new_camera(); - - dmnsn_matrix *ptr = dmnsn_malloc(sizeof(dmnsn_matrix)); - *ptr = dmnsn_identity_matrix(); - camera->ray_fn = &dmnsn_perspective_camera_ray_fn; - camera->free_fn = &dmnsn_free; - camera->ptr = ptr; - return camera; } - -/* Get the transformation matrix */ -dmnsn_matrix -dmnsn_get_perspective_camera_trans(const dmnsn_camera *camera) -{ - dmnsn_matrix *trans = camera->ptr; - return *trans; -} - -/* Set the transformation matrix */ -void -dmnsn_set_perspective_camera_trans(dmnsn_camera *camera, dmnsn_matrix T) -{ - dmnsn_matrix *trans = camera->ptr; - *trans = T; -} - -/* Perspective camera ray callback */ -static dmnsn_line -dmnsn_perspective_camera_ray_fn(const dmnsn_camera *camera, - double x, double y) -{ - dmnsn_matrix *trans = camera->ptr; - dmnsn_line l = dmnsn_new_line( - dmnsn_zero, - dmnsn_new_vector(x - 0.5, y - 0.5, 1.0) - ); - return dmnsn_transform_line(*trans, l); -} -- cgit v1.2.3