diff options
Diffstat (limited to 'libdimension/dimension/light.h')
-rw-r--r-- | libdimension/dimension/light.h | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/libdimension/dimension/light.h b/libdimension/dimension/light.h index 69ed9e7..dfda157 100644 --- a/libdimension/dimension/light.h +++ b/libdimension/dimension/light.h @@ -18,30 +18,47 @@ * <http://www.gnu.org/licenses/>. * *************************************************************************/ -/* +/** + * @file * Lights. */ #ifndef DIMENSION_LIGHT_H #define DIMENSION_LIGHT_H +/* Forward-declar dmnsn_light */ typedef struct dmnsn_light dmnsn_light; +/** + * Light callback. + * @param[in] light The light itself. + * @param[in] v The point to illuminate. + * @return The color of the light at \p v. + */ typedef dmnsn_color dmnsn_light_fn(const dmnsn_light *light, dmnsn_vector v); +/** A light. */ struct dmnsn_light { - /* Origin of light rays */ - dmnsn_vector x0; + dmnsn_vector x0; /**< Origin of light rays */ /* Callbacks */ - dmnsn_light_fn *light_fn; - dmnsn_free_fn *free_fn; + dmnsn_light_fn *light_fn; /**< Light callback. */ + dmnsn_free_fn *free_fn; /**< Desctructor callback. */ - /* Generic pointer for light info */ + /** Generic pointer for light info */ void *ptr; }; +/** + * Create a dummy light. + * @return The allocated light. + */ dmnsn_light *dmnsn_new_light(void); + +/** + * Delete a light. + * @param[in,out] light The light to delete. + */ void dmnsn_delete_light(dmnsn_light *light); #endif /* DIMENSION_LIGHT_H */ |