MeVisLabToolboxReference
MeVis/Foundation/Sources/MLImageFormatBase/mlImageFormatCompressionParams.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 //
00010 // ML Image Format IO
00011 //----------------------------------------------------------------------------------
00012 
00013 #ifndef __mlImageFormatCompressionParams_H
00014 #define __mlImageFormatCompressionParams_H
00015 
00016 
00017 // Local includes
00018 #ifndef __MLImageFormatBaseSystem_H
00019 #include "MLImageFormatBaseSystem.h"
00020 #endif
00021 
00022 // ML includes
00023 #ifndef __mlModuleIncludes_H
00024 #include "mlModuleIncludes.h"
00025 #endif
00026 
00027 #ifndef __mlImageFormatTagList_H
00028 #include "mlImageFormatTagList.h"
00029 #endif
00030 
00031 #ifndef __mlDataCompressor_H
00032 #include "mlDataCompressor.h"
00033 #endif
00034 
00035 
00036 ML_START_NAMESPACE
00037 
00038 // Forward declaration.
00039 class MLImageFormat;
00040 
00041 // ----------------------------------------------------------
00043 // ----------------------------------------------------------
00044 class MLIMAGEFORMATBASE_EXPORT MLImageFormatCompressionParams {
00045 
00046  public:
00047 
00049   MLImageFormatCompressionParams(Module &baseOp);
00050 
00052 
00053   const EnumField                &getCompressorNameFld   () const { return *_compressorNameFld   ; }
00054   const std::vector<std::string> &getCompressorNames     () const { return  _compressorNames     ; }
00055   const MLImageFormatTagList     &getCompressorArgs      () const { return  _compressorArgs      ; }
00056   const StringField* const*       getHintNameFlds        () const { return  _hintNameFld         ; }
00057   const DoubleField* const*       getDblHintValFlds      () const { return  _dblHintValFld       ; }
00058   const IntField   * const*       getIntHintValFlds      () const { return  _intHintValFld       ; }
00059   const StringField* const*       getStrHintValFlds      () const { return  _strHintValFld       ; }
00060   const BoolField  * const*       getBoolHintValFlds     () const { return  _boolHintValFld      ; }
00061   const BoolField  * const*       getIntHintVisibleFlds  () const { return  _intHintVisibleFld   ; }
00062   const BoolField  * const*       getStrHintVisibleFlds  () const { return  _strHintVisibleFld   ; }
00063   const BoolField  * const*       getDblHintVisibleFlds  () const { return  _dblHintVisibleFld   ; }
00064   const BoolField  * const*       getBoolHintVisibleFlds () const { return  _boolHintVisibleFld  ; }
00066 
00072   void updateHintFieldsOrArgs(bool updateFields, DataCompressor* compressor);
00073 
00079   void handleCompressionFieldChanges(Field *field);
00080 
00084   void updateCompressionFieldsToLoaderState(const MLImageFormat &loader);
00085 
00087   void resetCompressionParams();
00088 
00089 
00090  protected:
00091 
00093   Module                  &_baseOp;
00094 
00095   //--- Members
00097   std::vector<std::string> _compressorNames;
00098 
00100   MLImageFormatTagList     _compressorArgs;
00101 
00102 
00103   //--- Fields
00104 
00106   EnumField     *_compressorNameFld;
00107 
00109 
00110   StringField   *_hintNameFld       [DataCompressor::MaxHints];  
00111 
00112   DoubleField   *_dblHintValFld     [DataCompressor::MaxHints];  
00113   IntField      *_intHintValFld     [DataCompressor::MaxHints];  
00114   StringField   *_strHintValFld     [DataCompressor::MaxHints];  
00115   BoolField     *_boolHintValFld    [DataCompressor::MaxHints];  
00116 
00117   BoolField     *_intHintVisibleFld [DataCompressor::MaxHints];  
00118   BoolField     *_strHintVisibleFld [DataCompressor::MaxHints];  
00119   BoolField     *_dblHintVisibleFld [DataCompressor::MaxHints];  
00120   BoolField     *_boolHintVisibleFld[DataCompressor::MaxHints];  
00121 
00122   
00123  private:
00125 
00126   MLImageFormatCompressionParams();
00127   MLImageFormatCompressionParams(const MLImageFormatCompressionParams &);
00128   MLImageFormatCompressionParams &operator=(const MLImageFormatCompressionParams &);
00130  
00131 };
00132 
00133 ML_END_NAMESPACE
00134 
00135 #endif // __mlImageFormatCompressionParams_H
00136 
00137