00001 00002 #ifndef __graphics_interface_hpp__ 00003 #define __graphics_interface_hpp__ 00004 00005 #include <crbn/basic/ray.hpp> 00006 #include <crbn/basic/intersection.hpp> 00007 00008 #include <vector> 00009 00019 00020 typedef struct graphics_data_t { 00021 intersection inter; 00022 float radiance; 00023 vec3 color; 00024 uint32 matter_id; 00025 }; 00026 00034 class GraphicsInterface 00035 { 00036 public: 00037 virtual ~GraphicsInterface() {} 00038 00040 00045 virtual bool search_intersection( ray& r, graphics_data_t& gdata ) = 0; 00046 00048 00053 virtual void illuminate( ray& r, intersection& inter, vec3& light_value ) = 0; 00054 }; 00055 00056 #endif // __graphics_interface_hpp__