Loading [MathJax]/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
ProcessByLine.cpp
1 
6 /* SPDX-License-Identifier: CC0-1.0 */
7 
8 #include "ProcessByLine.h"
9 
10 #include "Buffer.h"
11 #include "Cube.h"
12 #include "IException.h"
13 #include "Process.h"
14 #include "ProcessByBrick.h"
15 
16 
17 using namespace std;
18 namespace Isis {
41  Isis::Cube *ProcessByLine::SetInputCube(const QString &parameter,
42  const int requirements) {
43  int allRequirements = Isis::SpatialMatch | Isis::BandMatchOrOne;
44  allRequirements |= requirements;
45  return Process::SetInputCube(parameter, allRequirements);
46  }
47 
48 
64  Isis::Cube *ProcessByLine::SetInputCube(const QString &file,
66  const int requirements) {
67  int allRequirements = Isis::SpatialMatch | Isis::BandMatchOrOne;
68  allRequirements |= requirements;
69  return Process::SetInputCube(file, att, allRequirements);
70  }
71 
72 
73  void ProcessByLine::SetBricks(IOCubes cn) {
74 
75  switch(cn){
76 
77  case InPlace:
78 
79  if (InputCubes.size() == 1) {
80  SetBrickSize(InputCubes[0]->sampleCount(), 1, 1);
81  }
82 
83  else {
84  SetBrickSize(OutputCubes[0]->sampleCount(), 1, 1);
85  }
86 
87  break;
88 
89  case InputOutput:
90 
91  SetInputBrickSize(InputCubes[0]->sampleCount(), 1, 1);
92  SetOutputBrickSize(OutputCubes[0]->sampleCount(), 1, 1);
93 
94  break;
95 
96  case InputOutputList:
97 
98  for (unsigned int i = 0; i < InputCubes.size(); i++) {
99  SetInputBrickSize(InputCubes[i]->sampleCount(), 1, 1, i + 1);
100  }
101  for (unsigned int i = 0; i < OutputCubes.size(); i++) {
102  SetOutputBrickSize(OutputCubes[i]->sampleCount(), 1, 1, i + 1);
103  }
104 
105  break;
106  }
107  }
108 
109 
110 
130  void ProcessByLine::StartProcess(void funct(Isis::Buffer &inout)) {
131  VerifyCubes(InPlace);
132  SetBricks(InPlace);
133  ProcessByBrick::StartProcess(funct);
134  }
135 
136 
156  void ProcessByLine::StartProcess(std::function<void(Isis::Buffer &in)> funct ) {
157  VerifyCubes(InPlace);
158  SetBricks(InPlace);
159  ProcessByBrick::StartProcess(funct);
160  }
161 
162  void ProcessByLine::StartProcess(std::function<void(Buffer &in, Buffer &out)> funct ) {
163  VerifyCubes(InputOutput);
164  SetBricks(InputOutput);
165  ProcessByBrick::StartProcess(funct);
166  }
167 
168 
181  void ProcessByLine::StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out)) {
182  VerifyCubes(InputOutput);
183  SetBricks(InputOutput);
184  ProcessByBrick::StartProcess(funct);
185  }
186 
187 
199  void ProcessByLine::StartProcess(void funct(std::vector<Isis::Buffer *> &in,
200  std::vector<Isis::Buffer *> &out)) {
201  VerifyCubes(InputOutputList);
202  SetBricks(InputOutputList);
203  ProcessByBrick::StartProcess(funct);
204  }
205 }
Isis::Buffer
Buffer for reading and writing cube data.
Definition: Buffer.h:53
Isis::Cube
IO Handler for Isis Cubes.
Definition: Cube.h:167
std
Namespace for the standard library.
Isis::CubeAttributeInput
Manipulate and parse attributes of input cube filenames.
Definition: CubeAttribute.h:381
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16

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 USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:17:03