USGS

Isis 3.0 Object Programmers' Reference

Home

HiEqualization.h

Go to the documentation of this file.
00001 #ifndef HiEqualization_h
00002 #define HiEqualization_h
00003 
00026 #include "Equalization.h"
00027 
00028 #include <string>
00029 #include <vector>
00030 
00031 #include "FileList.h"
00032 
00033 
00034 namespace Isis {
00035   class Buffer;
00036   class Cube;
00037   class FileList;
00038   class OverlapStatistics;
00039   class PvlGroup;
00040   class Statistics;
00041 
00042 
00048   class HiEqualization : public Equalization {
00049     protected:
00055       class HiCalculateFunctor : public CalculateFunctor {
00056         public:
00057           HiCalculateFunctor(Statistics *stats, Statistics *statsLeft,
00058               Statistics *statsRight,
00059               double percent) : CalculateFunctor(stats, percent) {
00060             m_statsLeft = statsLeft;
00061             m_statsRight = statsRight;
00062           }
00063 
00064           virtual ~HiCalculateFunctor() {}
00065 
00066         protected:
00067           virtual void addStats(Buffer &in) const;
00068 
00069         private:
00070           Statistics *m_statsLeft;
00071           Statistics *m_statsRight;
00072       };
00073 
00074     public:
00075       HiEqualization(QString fromListName);
00076       virtual ~HiEqualization();
00077 
00078       void calculateStatistics();
00079 
00080     protected:
00081       virtual void fillOutList(FileList &outList, QString toListName);
00082       virtual void errorCheck(QString fromListName);
00083 
00084     private:
00085       int getCCDType(int ccd);
00086 
00087       std::vector<int> movedIndices;
00088   };
00089 };
00090 
00091 #endif