00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _CIvfColorController_h_
00023 #define _CIvfColorController_h_
00024
00025 #include <ivfctl/IvfController.h>
00026 #include <ivfmath/IvfFunctions.h>
00027
00028 IvfSmartPointer(CIvfColorController);
00029
00036 class IVFCTL_API CIvfColorController : public CIvfController {
00037 public:
00038 enum TColorMode {
00039 CM_DIFFUSE,
00040 CM_SPECULAR,
00041 CM_AMBIENT,
00042 CM_EMISSION
00043 };
00044 private:
00045 CIvfFunction2dPtr m_redFunc;
00046 CIvfFunction2dPtr m_greenFunc;
00047 CIvfFunction2dPtr m_blueFunc;
00048 CIvfFunction2dPtr m_alphaFunc;
00049 double m_time;
00050 TColorMode m_colorMode;
00051 public:
00053 CIvfColorController();
00054
00056 virtual ~CIvfColorController();
00057
00058 IvfClassInfo("CIvfColorController",CIvfController);
00059
00066 void setColorMode(TColorMode mode);
00067
00069 TColorMode getColorMode();
00070
00078 void setRedFunction(CIvfFunction2d* func);
00079 void setGreenFunction(CIvfFunction2d* func);
00080 void setBlueFunction(CIvfFunction2d* func);
00081 void setAlphaFunction(CIvfFunction2d* func);
00082
00083 virtual void doUpdate(double dt);
00084 virtual void doReset();
00085 };
00086
00087 #endif