36 void ProcessByTile::SetTileSize(
const int ns,
const int nl) {
56 void ProcessByTile::StartProcess(
void
58 SetBrickSizesForProcessCube();
59 ProcessByBrick::StartProcess(funct);
76 void ProcessByTile::StartProcess(
void funct(
Buffer &in)) {
77 SetBrickSizesForProcessCubeInPlace();
78 ProcessByBrick::StartProcess(funct);
96 void ProcessByTile::StartProcess(
void funct(std::vector<Buffer *> &in,
97 std::vector<Buffer *> &out)) {
98 SetBrickSizesForProcessCubes();
99 ProcessByBrick::StartProcess(funct);
109 void ProcessByTile::EndProcess() {
110 p_tileSizeSet =
false;
111 ProcessByBrick::EndProcess();
118 void ProcessByTile::Finalize() {
119 p_tileSizeSet =
false;
120 ProcessByBrick::Finalize();
127 void ProcessByTile::SetBrickSizesForProcessCubeInPlace() {
129 if(InputCubes.size() != 1) {
130 string m =
"You must specify exactly one input cube";
136 string m =
"Use the SetTileSize method to set the tile size";
140 ProcessByBrick::SetBrickSize(p_tileSamples, p_tileLines, 1);
147 void ProcessByTile::SetBrickSizesForProcessCube() {
149 if(InputCubes[0]->lineCount() != OutputCubes[0]->lineCount()) {
150 string m =
"The number of lines in the input and output cubes ";
156 if(InputCubes[0]->sampleCount() != OutputCubes[0]->sampleCount()) {
157 string m =
"The number of samples in the input and output cubes ";
163 if(InputCubes[0]->bandCount() != OutputCubes[0]->bandCount()) {
164 string m =
"The number of bands in the input and output cubes ";
171 string m =
"Use the SetTileSize method to set the tile size";
175 ProcessByBrick::SetBrickSize(p_tileSamples, p_tileLines, 1);
182 void ProcessByTile::SetBrickSizesForProcessCubes() {
184 if(InputCubes.size() == 0 && OutputCubes.size() == 0) {
185 string m =
"You have not specified any input or output cubes";
191 for(
unsigned int i = 0; i < OutputCubes.size(); i++) {
192 if(OutputCubes[i]->bandCount() != InputCubes[0]->bandCount()) {
193 string m =
"All output cubes must have the same number of bands ";
194 m +=
"as the first input cube or output cube";
199 ProcessByBrick::SetBrickSize(p_tileSamples, p_tileLines, 1);