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