00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028
00030 #ifndef __COLORINTERPOLATOR_H__
00031 #define __COLORINTERPOLATOR_H__
00032
00033
00034 #include "X3DInterpolatorNode.h"
00035 #include "SFColor.h"
00036 #include "MFColor.h"
00037
00038 namespace H3D {
00039
00056 class H3DAPI_API ColorInterpolator : public X3DInterpolatorNode {
00057 public:
00058
00065 struct H3DAPI_API SFValue : TypedField< SFColor,
00066 Types< SFFloat,
00067 MFFloat,
00068 MFColor > >{
00070 Vec3f RGBToHSV( const RGB &rgb );
00071
00073 RGB HSVToRGB( const Vec3f &rgb );
00074
00075 virtual void update();
00076 };
00077
00079 ColorInterpolator( Inst< SFNode > _metadata = 0,
00080 Inst< SFFloat > _set_fraction = 0,
00081 Inst< MFFloat > _key = 0,
00082 Inst< MFColor > _keyValue = 0,
00083 Inst< SFValue > _value_changed = 0 );
00084
00090 auto_ptr< MFColor > keyValue;
00091
00097 auto_ptr< SFValue > value_changed;
00098
00100 static H3DNodeDatabase database;
00101 };
00102 }
00103
00104 #endif