Architecture.h

Go to the documentation of this file.
00001 /* $Id: Architecture.h,v 1.3 2002/12/05 15:05:47 cvs Exp $ */
00002 
00003 #ifndef __ARCHITECTURE_ABSTRACT_FACTORY_H
00004 #define __ARCHITECTURE_ABSTRACT_FACTORY_H
00005 
00006 #include <gra/GRAObject.h>
00007 #include <gra/render/Render.h>
00008 #include <gra/reflection/ReflectionModel.h>
00009 #include <gra/reflection/LocalReflection.h>
00010 #include <gra/shader/Shader.h>
00011 #include <gra/camera/Camera.h>
00012 
00013 using namespace esg;
00014 
00015 namespace gra {
00016 
00022 class GRA_EXPORT Architecture : public GRAObject {
00023 protected:
00024         int          * _pStopFlag;
00025         DiffuseBRDF  * _pDefaultDiffuseBRDF;  
00026         SpecularBRDF * _pDefaultSpecularBRDF;
00027 
00028 public:
00029         struct Params {
00030                 int          * stopFlag; 
00031                 DiffuseBRDF  * diffBRDF; 
00032                 SpecularBRDF * specBRDF; 
00033 
00034                 Params() : stopFlag(NULL), diffBRDF(NULL), specBRDF(NULL) {}
00035         };
00036 
00037 public:
00043         Architecture (Params& params) {
00044             _pStopFlag            = params.stopFlag;
00045             _pDefaultDiffuseBRDF  = params.diffBRDF;
00046             _pDefaultSpecularBRDF = params.specBRDF;
00047         }
00048 
00052         virtual ~Architecture () {}
00053 
00057         virtual Render* createRender (void) = 0;
00058 
00062         virtual Shader* createShader (void) = 0;
00063 };
00064 
00065 } // namespace
00066 
00067 #endif // __ARCHITECTURE_ABSTRACT_FACTORY_H

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