1 #ifndef PROCEDURAL_HXX
2 #define PROCEDURAL_HXX
3
4 #include "Vec3f.hxx"
5
6 // Parent for all procedurals...
7 class Procedural
8 {
9 protected:
10 bool hasTexture;
11 bool hasBumpMap;
12
13 public:
14 Procedural(bool useTexture, bool useBumpMap, bool canTexture, bool canBumpMap)
15 : hasTexture(canTexture && useTexture), hasBumpMap(canBumpMap && useBumpMap)
16 {};
17
18 virtual ~Procedural(){};
19
20 virtual Vec3f GetColor (Vec3f coordinate)
21 {
22 return Vec3f(1.0f);
23 }
24
25 virtual void BumpMap(Vec3f &normal, Vec3f coordinate)
26 {};
27
28 bool ProvidesTexture()
29 {
30 return hasTexture;
31 }
32
33 bool ProvidesBumpMap()
34 {
35 return hasBumpMap;
36 }
37 };
38
39 #endif
syntax highlighted by Code2HTML, v. 0.9.1