00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __mitkTransferFunction2DRGBA_h
00011 #define __mitkTransferFunction2DRGBA_h
00012
00013 #include "mitkTransferFunction.h"
00014 #include "mitkList.h"
00015 #include "mitkTF2DRGBAClassifier.h"
00016
00024 class MITK_VISUALIZATION_API mitkTransferFunction2DRGBA : public mitkTransferFunction
00025 {
00026 public:
00027 MITK_TYPE( mitkTransferFunction2DRGBA, mitkTransferFunction )
00028 mitkTransferFunction2DRGBA();
00029
00034 virtual int GetDimension() {return 2;}
00035
00040 float* GetRed();
00041
00046 float* GetGreen();
00047
00052 float* GetBlue() ;
00053
00058 float* GetAlpha() ;
00059
00065 void SetMax( int maxX, int maxY );
00066
00071 int GetMaxX()
00072 {
00073 return m_MaxX;
00074 }
00075
00080 int GetMaxY()
00081 {
00082 return m_MaxY;
00083 }
00084
00091 bool AddClassifier ( mitkTF2DRGBAClassifier *Classifier );
00092
00099 bool RemoveClassifier ( mitkTF2DRGBAClassifier *Classifier );
00100
00105 bool RemoveAllClassifiers();
00106
00112 bool IsModified()
00113 {
00114 return m_UserNeedUpdate;
00115 }
00116
00120 void SetUnmodified()
00121 {
00122 m_UserNeedUpdate = false;
00123 }
00124
00130 void Update();
00131
00132 protected:
00133 virtual ~mitkTransferFunction2DRGBA();
00134
00135 void _UpdateClassifiers();
00136 bool _IsClassifiersModified();
00137 void _SetClassifiersUnmodifed();
00138
00139 void UpdateTF();
00140
00141 float *m_RData;
00142 float *m_GData;
00143 float *m_BData;
00144 float *m_AData;
00145
00146 int m_MaxX,m_MaxY;
00147
00148 bool m_TFNeedUpdate;
00149 bool m_UserNeedUpdate;
00150
00151 mitkList *m_Classifiers;
00152
00153
00154 private:
00155 mitkTransferFunction2DRGBA(const mitkTransferFunction2DRGBA&);
00156 void operator = (const mitkTransferFunction2DRGBA&);
00157 };
00158
00159
00160
00161
00162
00163
00164 #endif
00165