Isis 3.0
Back | Home
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 
104 
105  public:
107  SetWrap(true);
108  };
109 
110  using Isis::ProcessByBrick::SetInputCube; // make parents SetInputCube visable
111  Isis::Cube *SetInputCube(const QString &parameter,
112  const int requirements = 0);
113  Isis::Cube *SetInputCube(const QString &file,
115  const int requirements = 0);
116 
117  void SetInputCube(Isis::Cube *inCube);
118 
119 
120  void StartProcess(void funct(Isis::Buffer &inout));
121  void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out));
122  void StartProcess(void
123  funct(std::vector<Isis::Buffer *> &in,
124  std::vector<Isis::Buffer *> &out));
125 
126 
127  void SetBricks(IOCubes cn);
128  //void VerifyCubes(IOCubes cn);
129 
130 
142  template <typename Functor>
143  void ProcessCubeInPlace(const Functor & funct, bool threaded = true) {
144 
147  ProcessByBrick::ProcessCubeInPlace(funct, threaded);
148  }
149 
150 
151 
164  template <typename Functor>
165  void ProcessCube(const Functor & funct, bool threaded = true) {
166 
169  ProcessByBrick::ProcessCube(funct, threaded);
170  }
171 
172 
186  template <typename Functor>
187  void ProcessCubes(const Functor & funct, bool threaded = true) {
188 
191  ProcessByBrick::ProcessCubes(funct, threaded);
192  }
193  };
194 };
195 
196 #endif
Buffer for reading and writing cube data.
Definition: Buffer.h:68
Manipulate and parse attributes of input cube filenames.
Definition: CubeAttribute.h:395
void ProcessCubeInPlace(const Functor &funct, bool threaded=true)
Same functionality as StartProcess(void funct(Isis::Buffer &amp;inout)) using Functors.
Definition: ProcessByLine.h:143
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:103
void VerifyCubes(IOCubes cn)
Verifies the dimensions of the input/output cubes.
Definition: ProcessByBrick.cpp:139
IOCubes
Definition: ProcessByBrick.h:102
Definition: ProcessByBrick.h:102
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:250
Definition: ProcessByBrick.h:104
Cube * SetInputCube(const QString &parameter, int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
Definition: ProcessByBrick.cpp:73
Process cubes by brick.
Definition: ProcessByBrick.h:94
void ProcessCubeInPlace(const Functor &functor, bool threaded=true)
Operate over a single cube (either input or output).
Definition: ProcessByBrick.h:174
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:168
void ProcessCube(const Functor &functor, bool threaded=true)
Operate over a single input cube creating a separate output cube.
Definition: ProcessByBrick.h:211
void ProcessCubes(const Functor &funct, bool threaded=true)
Same functionality as StartProcess(std::vector&lt;Isis::Buffer *&gt; &amp;in, std::vector&lt;Isis::Buffer *&gt; &amp;out)...
Definition: ProcessByLine.h:187
void ProcessCube(const Functor &funct, bool threaded=true)
Same functionality as StartProcess(void funct(Isis::Buffer &amp;in, Isis::Buffer &amp;out)) using Functors...
Definition: ProcessByLine.h:165
Process cubes by line.
Definition: ProcessByLine.h:103
void SetWrap(bool wrap)
This wrapping option only applys when there are two or more input cubes.
Definition: ProcessByBrick.cpp:436
ProcessByLine()
Definition: ProcessByLine.h:106
void SetBricks(IOCubes cn)
Definition: ProcessByLine.cpp:103
IO Handler for Isis Cubes.
Definition: Cube.h:158

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:25:57