1 #ifndef GF_Palette_h
2 #define GF_Palette_h
3 
4 #include "ExpressionDict.h"
5 #include "ExprArray.h"
6 #include "PixPort.h"
7 
8 class ArgList;
9 
10 /* Takes an arg list, looks for 'H', 'S', 'V' in terms of T, and I.  T represents the system time
11 index (in seconds) and I is the intensity param value, ranging from 0 to 1, where all line
12 drawing drawing draws an intensity of 1.  */
13 
14 class GF_Palette {
15 
16 	public:
17 							GF_Palette( float* inT, float* inIntensity );
18 
19 		// Compile the 'H', 'S', and 'V' expressions.
20 		void				Assign( const ArgList& inArgs );
21 
22 
23 		// Evaluates the palette based on the current time
24 		void				Evaluate( PixPalEntry outPalette[ 256 ] );
25 
26 		void				SetupTransition( GF_Palette* inDest, float* inC );
27 
28 
29 	protected:
30 		float*				mIntensity, mPI;
31 		Expression			mH, mS, mV;
32 		ExpressionDict		mDict;
33 		bool				mH_I_Dep, mS_I_Dep, mV_I_Dep;
34 		ExprArray			mAVars;
35 
36 };
37 
38 
39 #endif
40 
41 
42 
43 
44