/* * CS5600 University of Utah * Charles McGarvey * mcgarvey@eng.utah.edu */ #ifndef _SCENE_HH_ #define _SCENE_HH_ #include "list.hh" #include "raster.hh" /* * A scene class. */ typedef struct scene scene_t; /* * Allocate a scene by reading in data from a file. */ scene_t* scene_alloc(FILE* file); /* * Destroy a scene. */ void scene_destroy(scene_t* s); /* * Get the elements of a scene. */ list_t* scene_elements(const scene_t* s); /* * Get the lights of a scene. */ list_t* scene_lights(const scene_t* s); /* * Get the ambient light color of the scene. */ color_t scene_ambient(const scene_t* s); /* * Render a scene to an in-memory raster. The caller takes ownership of the * returned object and must destroy it when it is no longer needed. */ raster_t* scene_render(const scene_t* s); #endif // _SCENE_HH_