Isis 3.0 Programmer Reference
Back | Home
ProcessBySample.h
Go to the documentation of this file.
1 #ifndef ProcessBySample_h
2 #define ProcessBySample_h
3 
25 #include "ProcessByBrick.h"
26 #include "Buffer.h"
27 
28 namespace Isis {
53 
54  public:
56  SetWrap(true);
57  };
58 
60  Isis::Cube *SetInputCube(const QString &parameter,
61  int requirements = 0);
62  Isis::Cube *SetInputCube(const QString &file,
64  int requirements = 0);
65 
66  void StartProcess(void funct(Isis::Buffer &inout));
67 
68  void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out));
69 
70  void StartProcess(void funct(std::vector<Isis::Buffer *> &in,
71  std::vector<Isis::Buffer *> &out));
72 
80  template <typename Functor>
81  void ProcessCubeInPlace(const Functor & funct, bool threaded = true) {
82  VerifyCubes(InPlace);
83  SetBricks(InPlace);
84  //SetBrickSizesForProcessCubeInPlace();
85  ProcessByBrick::ProcessCubeInPlace(funct, threaded);
86  }
87 
94  template <typename Functor>
95  void ProcessCube(const Functor & funct, bool threaded = true) {
96  VerifyCubes(InputOutput);
97  SetBricks(InputOutput);
98  //SetBrickSizesForProcessCube();
99  ProcessByBrick::ProcessCube(funct, threaded);
100  }
101 
108  template <typename Functor>
109  void ProcessCubes(const Functor & funct, bool threaded = true) {
110  VerifyCubes(InputOutputList);
111  SetBricks(InputOutputList);
112  //SetBrickSizesForProcessCubes();
113  ProcessByBrick::ProcessCubes(funct, threaded);
114  }
115 
116 
117  private:
118 
119  void SetBricks(IOCubes cn);
120 
121  //void SetBrickSizesForProcessCubeInPlace();
122  //void SetBrickSizesForProcessCube();
123  //void SetBrickSizesForProcessCubes();
124  };
125 };
126 
127 #endif
Buffer for reading and writing cube data.
Definition: Buffer.h:68
Manipulate and parse attributes of input cube filenames.
void ProcessCubes(const Functor &funct, bool threaded=true)
void StartProcess(void funct(Isis::Buffer &inout))
This method invokes the process by sample operation over a single input or output cube...
void VerifyCubes(IOCubes cn)
Verifies the dimensions of the input/output cubes.
void ProcessCubes(const Functor &functor, bool threaded=true)
Operate over an arbitrary number of input cubes given an arbitrary number of output cubes...
Cube * SetInputCube(const QString &parameter, int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
Process cubes by brick.
Isis::Cube * SetInputCube(const QString &parameter, int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
void ProcessCubeInPlace(const Functor &functor, bool threaded=true)
Operate over a single cube (either input or output).
void ProcessCube(const Functor &funct, bool threaded=true)
void ProcessCubeInPlace(const Functor &funct, bool threaded=true)
void ProcessCube(const Functor &functor, bool threaded=true)
Operate over a single input cube creating a separate output cube.
Process cubes by sample.
ProcessByBrick()
Constructs a ProcessByBrick object.
void SetWrap(bool wrap)
This wrapping option only applys when there are two or more input cubes.
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:26:16