1 #ifndef SCHLICKMATERIALFACTORY_HXX
 2 #define SCHLICKMATERIALFACTORY_HXX
 3 
 4 #include "MaterialFactory.hxx"
 5 #include "SchlickShader.hxx"
 6 #include "SchlickPhotonDistributor.hxx"
 7 
 8 // This class creates a Schlick-tuple based on a given material
 9 class SchlickMaterialFactory
10 	: public MaterialFactory
11 {
12 public:
13 	// Use a standard white default material if nothing is specified
14 	SchlickMaterialFactory(Scene *scene)
15 		:MaterialFactory(scene)
16 	{
17 		Material *mat = new Material(Vec3f(0.9f));
18 		mat->SetSchlickParams(0.3f, 0.9f, 0.5f);
19 		shaders.push_back(new SchlickShader(scene, mat));
20 		photondistris.push_back(new SchlickPhotonDistributor(scene, mat));
21 		lookupvector.push_back(0);
22 	};
23 
24 	virtual ~SchlickMaterialFactory(){};
25 
26 	// Sets the factorie's state to a new material
27 	virtual void SetMaterial(std::istream &material, const int face)
28 	{
29 		Material *mat = sceneDescription->parse(material);
30 		shaders.push_back(new SchlickShader(scene, mat));
31 		photondistris.push_back(new SchlickPhotonDistributor(scene, mat));
32 		lookupvector.push_back(face);
33 	};
34 };
35 
36 #endif


syntax highlighted by Code2HTML, v. 0.9.1