USGS

Isis 3.0 Object Programmers' Reference

Home

ProcessBySpectra.h
Go to the documentation of this file.
1 #ifndef ProcessBySpectra_h
2 #define ProcessBySpectra_h
3 
25 #include "ProcessByBrick.h"
26 #include "Buffer.h"
27 
28 namespace Isis {
55  private:
59  public:
71  ProcessBySpectra(const int type = PerPixel): ProcessByBrick() {
72  SetType(type);
73  };
74 
75  Isis::Cube *SetInputCube(const QString &parameter,
76  const int requirements = 0);
77  Isis::Cube *SetInputCube(const QString &file,
79  const int requirements = 0);
80 
81  void SetType(const int type);
82 
92  int Type() {
93  return p_spectraType;
94  };
95 
96  void StartProcess(void funct(Isis::Buffer &in));
97 
98  void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out));
99 
100  void StartProcess(void funct(std::vector<Isis::Buffer *> &in,
101  std::vector<Isis::Buffer *> &out));
102 
103 
109  template <typename Functor>
110  void ProcessCubeInPlace(const Functor & funct, bool threaded = true) {
112  ProcessByBrick::ProcessCubeInPlace(funct, threaded);
113  }
114 
120  template <typename Functor>
121  void ProcessCube(const Functor & funct, bool threaded = true) {
123  ProcessByBrick::ProcessCube(funct, threaded);
124  }
125 
131  template <typename Functor>
132  void ProcessCubes(const Functor & funct, bool threaded = true) {
134  ProcessByBrick::ProcessCubes(funct, threaded);
135  }
136 
137  static const int PerPixel = 0;
138  static const int ByLine = 1;
139  static const int BySample = 2;
140 
141  private:
145  };
146 };
147 
148 #endif