Isis 3 Developer Reference
ProcessByLine.h
Go to the documentation of this file.
1 #ifndef ProcessByLine_h
2 #define ProcessByLine_h
3 
25 #include "ProcessByBrick.h"
26 #include "Buffer.h"
27 namespace Isis {
28  class Cube;
29  class CubeAttributeInput;
30 
114 
115  public:
117  SetWrap(true);
118  };
119 
120  using Isis::ProcessByBrick::SetInputCube; // make parents SetInputCube visable
121  Isis::Cube *SetInputCube(const QString &parameter,
122  const int requirements = 0);
123  Isis::Cube *SetInputCube(const QString &file,
125  const int requirements = 0);
126 
127  void SetInputCube(Isis::Cube *inCube);
128 
129  void StartProcess(void funct(Isis::Buffer &inout));
130  virtual void StartProcess(std::function<void(Isis::Buffer &in)> funct );
131 
132  void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out));
133  void StartProcess(void
134  funct(std::vector<Isis::Buffer *> &in,
135  std::vector<Isis::Buffer *> &out));
136 
137  void SetBricks(IOCubes cn);
138 
149  template <typename Functor>
150  void ProcessCubeInPlace(const Functor & funct, bool threaded = true) {
153  ProcessByBrick::ProcessCubeInPlace(funct, threaded);
154  }
155 
156 
169  template <typename Functor>
170  void ProcessCube(const Functor & funct, bool threaded = true) {
173  ProcessByBrick::ProcessCube(funct, threaded);
174  }
175 
176 
190  template <typename Functor>
191  void ProcessCubes(const Functor & funct, bool threaded = true) {
194  ProcessByBrick::ProcessCubes(funct, threaded);
195  }
196  };
197 };
198 
199 #endif
Buffer for reading and writing cube data.
Definition: Buffer.h:69
Manipulate and parse attributes of input cube filenames.
Definition: CubeAttribute.h:397
void ProcessCubeInPlace(const Functor &funct, bool threaded=true)
Same functionality as StartProcess(void funct(Isis::Buffer &inout)) using Functors.
Definition: ProcessByLine.h:150
Isis::Cube * SetInputCube(const QString &parameter, const int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
Definition: ProcessByLine.cpp:57
Definition: ProcessByBrick.h:106
void VerifyCubes(IOCubes cn)
Verifies the dimensions of the input/output cubes.
Definition: ProcessByBrick.cpp:136
IOCubes
Definition: ProcessByBrick.h:105
Definition: ProcessByBrick.h:105
void ProcessCubes(const Functor &functor, bool threaded=true)
Operate over an arbitrary number of input cubes given an arbitrary number of output cubes...
Definition: ProcessByBrick.h:255
Definition: ProcessByBrick.h:107
Cube * SetInputCube(const QString &parameter, int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
Definition: ProcessByBrick.cpp:74
Process cubes by brick.
Definition: ProcessByBrick.h:97
void ProcessCubeInPlace(const Functor &functor, bool threaded=true)
Operate over a single cube (either input or output).
Definition: ProcessByBrick.h:179
void StartProcess(void funct(Isis::Buffer &inout))
This method invokes the process by line operation over a single input or output cube.
Definition: ProcessByLine.cpp:159
void ProcessCube(const Functor &functor, bool threaded=true)
Operate over a single input cube creating a separate output cube.
Definition: ProcessByBrick.h:216
void ProcessCubes(const Functor &funct, bool threaded=true)
Same functionality as StartProcess(std::vector<Isis::Buffer *> &in, std::vector<Isis::Buffer *> &out)...
Definition: ProcessByLine.h:191
void ProcessCube(const Functor &funct, bool threaded=true)
Same functionality as StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out)) using Functors...
Definition: ProcessByLine.h:170
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
Process cubes by line.
Definition: ProcessByLine.h:113
void SetWrap(bool wrap)
This wrapping option only applys when there are two or more input cubes.
Definition: ProcessByBrick.cpp:425
ProcessByLine()
Definition: ProcessByLine.h:116
void SetBricks(IOCubes cn)
Definition: ProcessByLine.cpp:102
IO Handler for Isis Cubes.
Definition: Cube.h:170