RayTrArch.h

Go to the documentation of this file.
00001 /* $Id: RayTracer.h,v 1.3 2002/12/05 15:05:47 cvs Exp $ */
00002 
00003 #ifndef __RAY_TRACING_ARCHITECTURE_H
00004 #define __RAY_TRACING_ARCHITECTURE_H
00005 
00006 #include <gra/arch/Architecture.h>
00007 #include <gra/render/Render.h>
00008 #include <gra/render/RTRender.h>
00009 #include <gra/shader/Shader.h>
00010 #include <gra/shader/RTShader.h>
00011 #include <esg/Intersector.h>
00012 
00013 using namespace esg;
00014 
00015 namespace gra {
00016 
00021 class GRA_EXPORT RayTrArch : public Architecture {
00022 public:
00023         struct Params : public Architecture::Params {
00024                 Intersector *         intersector;    
00025                 Color3f               background;     
00026                 RTRender::PixelRend   pixelRendering; 
00027                 unsigned              raysPerPixel;   
00028                 RTRender::FBWriteMode fbWriteMode;    
00029                 unsigned              fbWriteElements;
00030                 unsigned              cacheDepth;     
00031                 unsigned              shadowRays;     
00032                 unsigned              maxRecDepth;    
00033                 float                 minRecWeight;   
00034 
00035                 Params()
00036                     : intersector(NULL),
00037                       background(0.0, 0.0, 0.0),
00038                       pixelRendering(RTRender::CENTROID),
00039                       raysPerPixel(1),
00040                       fbWriteMode(RTRender::PER_LINE),
00041                       fbWriteElements(1),
00042                       cacheDepth(1),
00043                       shadowRays(1),
00044                       maxRecDepth(3),
00045                       minRecWeight(0.001f) {}
00046         };
00047         
00048 protected:
00049         Intersector *         _pIntersector;
00050         RayTracing  *         _pRTReflection;
00051         Color3f               _background;
00052         RTRender::PixelRend   _pixelRendering;
00053         unsigned              _raysPerPixel;
00054         RTRender::FBWriteMode _fbWriteMode;
00055         unsigned              _fbWriteElements;
00056 
00057 public:
00063         RayTrArch (RayTrArch::Params& params);
00064 
00068         virtual ~RayTrArch ();
00069 
00073         virtual Render* createRender (void);
00074         
00078         virtual Shader* createShader (void);
00079 };
00080 
00081 } // namespace
00082 
00083 #endif // __RAY_TRACING_ARCHITECTURE

Generated on Tue Nov 21 15:11:42 2006 for gra by  doxygen 1.4.6