MeVisLabToolboxReference
MeVisLab/Standard/Sources/Shared/MLLUT/mlLUTFConcat.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00010 //----------------------------------------------------------------------------------
00011 
00012 
00013 #ifndef __mlLUTFConcat_H
00014 #define __mlLUTFConcat_H
00015 
00016 // Local includes
00017 #ifndef __mlLUTSystem_H
00018 #include "mlLUTSystem.h"
00019 #endif
00020 #ifndef __mlLUTFunction_H
00021 #include "mlLUTFunction.h"
00022 #endif
00023 
00024 
00025 
00026 ML_START_NAMESPACE
00027 
00028 
00030 class MLLUT_EXPORT LUTFConcat : public LUTFunction
00031 {
00032 public:
00033 
00035   LUTFConcat (void);
00036 
00037 
00039 
00040 
00042   virtual void addInputLut (const LUTFunction *lutFunction);
00043 
00045   virtual void clearInputLuts (void);
00046 
00048   virtual const LUTFunction *getInputLut (int i) const;
00049   
00051   
00052   
00054 
00055 
00057   enum CatMode {
00058     CAT_ROWS = 0,                 
00059     CAT_LAYERS,                   
00060     NUM_CAT_MODES                 
00061   };
00062 
00064   virtual void setCatMode (CatMode catMode);
00065   
00066   virtual CatMode getCatMode (void) const { return _catMode; }
00067 
00069 
00070   
00072 
00073 
00075   virtual bool isValid (void) const;
00076 
00078   virtual int getNativeMinIndex (void) const;
00079 
00081   virtual int getNativeMaxIndex (void) const;
00082 
00084   virtual int getHeight (void) const;
00085 
00087   virtual int getDepth (void) const;
00088 
00090   virtual double getNativeMinValue (void) const;
00091 
00093   virtual double getNativeMaxValue (void) const;
00094 
00096 
00097   
00100 
00101 
00106   virtual bool render (LUTDataBase *lutData) const;
00107 
00114   virtual bool renderRescaled (LUTDataBase *lutData, double minIndex, double maxIndex) const;
00115 
00117 
00118 
00119   
00120 protected:
00121 
00123 
00124 
00126   virtual bool renderLUTNative (LUTDataBase * /*lutData*/, LUTIteratorBase * /*lutIterator*/) const
00127   { return false; }
00128 
00131   virtual bool renderLUT (LUTDataBase *lutData, double minIndex, double maxIndex, bool rescaled) const;
00132 
00134 
00135   
00137   std::vector<const LUTFunction*> _inLUTs;
00138 
00140   CatMode _catMode;
00141   
00142   
00143   ML_CLASS_HEADER(LUTFConcat);
00144 
00145 };
00146 
00147 
00148 ML_END_NAMESPACE
00149 
00150 #endif
00151 // __mlLUTFConcat_H