Isis 3.0
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) {
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) {
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) {
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.
Definition: CubeAttribute.h:395
void ProcessCubes(const Functor &funct, bool threaded=true)
Definition: ProcessBySample.h:109
void StartProcess(void funct(Isis::Buffer &inout))
This method invokes the process by sample operation over a single input or output cube...
Definition: ProcessBySample.cpp:100
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
Isis::Cube * SetInputCube(const QString &parameter, int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
Definition: ProcessBySample.cpp:56
void ProcessCubeInPlace(const Functor &functor, bool threaded=true)
Operate over a single cube (either input or output).
Definition: ProcessByBrick.h:174
void ProcessCube(const Functor &funct, bool threaded=true)
Definition: ProcessBySample.h:95
ProcessBySample()
Definition: ProcessBySample.h:55
void ProcessCubeInPlace(const Functor &funct, bool threaded=true)
Definition: ProcessBySample.h:81
void ProcessCube(const Functor &functor, bool threaded=true)
Operate over a single input cube creating a separate output cube.
Definition: ProcessByBrick.h:211
Process cubes by sample.
Definition: ProcessBySample.h:52
void SetWrap(bool wrap)
This wrapping option only applys when there are two or more input cubes.
Definition: ProcessByBrick.cpp:436
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:00