00001
00002
00003
00004
00005
00006 #ifndef SHADE_H
00007 #define SHADE_H
00008
00009 #include<DynamicObject.h>
00010
00011 #include<Color4.h>
00012 #include<Matrix4.h>
00013 #include<RefCount.h>
00014
00015 #include<real.h>
00016 #include<map>
00017
00018 class Ray;
00019 class Scene;
00020 class sphereTrace;
00021 class Shade;
00022 class SurfaceInfo;
00023
00026 class Shade : public DynamicObject
00027 {
00028 DYNAMIC_OBJECT;
00029 public:
00030 Shade() {}
00031 virtual ~Shade();
00032
00033 virtual Color4 calculateColor(const SurfaceInfo &s, Scene &scene);
00034
00035 virtual void transform(Matrix4 &m);
00036
00037
00038 void parseSymbol(Token &t, ObjectFile &file);
00039
00040 protected:
00041
00042 void createSymbols();
00043
00044 private:
00045 typedef DynamicObject super;
00046 };
00047 #endif