include/crbn/renderer/renderer.hpp

00001 
00002 #ifndef __renderer_hpp__
00003 #define __renderer_hpp__
00004 
00005 #include <crbn/basic/basic.h>
00006 #include <crbn/basic/ray.hpp>
00007 #include <crbn/basic/intersection.hpp>
00008 
00009 #include <crbn/matter/matter.hpp>
00010 #include <crbn/matter/minterface.hpp>
00011 #include <crbn/sampler/sinterface.hpp>
00012 #include <crbn/graphics/grinterface.hpp>
00013 
00028 class Renderer
00029 {
00030 public:
00031   Renderer( int smin, int smax );
00032   virtual ~Renderer();
00033 
00034   inline uint32 memory() { return _memory_used; }
00035 
00036   inline void set_minterface( MatterInterface* minterface ) { _minterface = minterface; }
00037   inline void set_sinterface( SamplerInterface* sinterface ) { _sinterface = sinterface; }
00038   inline void set_grinterface( GraphicsInterface* grinterface ) { _grinterface = grinterface; }
00039 
00043   virtual bool init() = 0;
00044 
00052   virtual bool eval( ray& r, vec3& col ) = 0;
00053 
00054 protected:
00055   uint32 _memory_used;
00056   vec3 *_vtab, *_ntab;
00057   int _shadow_min;
00058   int _shadow_max;
00059   int _shadow_step;
00060 
00061   MatterInterface* _minterface;
00062   SamplerInterface* _sinterface;
00063   GraphicsInterface* _grinterface;
00064 };
00065 
00066 #endif // __renderer_hpp__

Generated on Tue Nov 14 15:40:08 2006 for libcrbn by  doxygen 1.5.0