Isis Developer Reference
ProcessBySpectra.h
Go to the documentation of this file.
1#ifndef ProcessBySpectra_h
2#define ProcessBySpectra_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include "ProcessByBrick.h"
10#include "Buffer.h"
11
12namespace Isis {
39 private:
40 int p_spectraType;
43 public:
56 SetType(type);
57 };
58
59 using Isis::ProcessByBrick::SetInputCube; // Make parent functions visable
60 Isis::Cube *SetInputCube(const QString &parameter,
61 const int requirements = 0);
62 Isis::Cube *SetInputCube(const QString &file,
64 const int requirements = 0);
65
66 void SetType(const int type);
67
77 int Type() {
78 return p_spectraType;
79 };
80
81 void StartProcess(void funct(Isis::Buffer &in));
82
83 void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out));
84
85 void StartProcess(void funct(std::vector<Isis::Buffer *> &in,
86 std::vector<Isis::Buffer *> &out));
87
88
94 template <typename Functor>
95 void ProcessCubeInPlace(const Functor & funct, bool threaded = true) {
96 //SetBrickSizesForProcessCubeInPlace();
98 SetBricks(InPlace);
100 }
101
107 template <typename Functor>
108 void ProcessCube(const Functor & funct, bool threaded = true) {
109 //SetBrickSizesForProcessCube();
111 SetBricks(InputOutput);
112 ProcessByBrick::ProcessCube(funct, threaded);
113 }
114
120 template <typename Functor>
121 void ProcessCubes(const Functor & funct, bool threaded = true) {
123 SetBricks(InputOutputList);
124 //SetBrickSizesForProcessCubes();
125 ProcessByBrick::ProcessCubes(funct, threaded);
126 }
127
128 static const int PerPixel = 0;
129 static const int ByLine = 1;
130 static const int BySample = 2;
131
132 private:
133
134 void SetBricks(IOCubes cn);
135 void SetBrickSizesForProcessCubeInPlace();
136 void SetBrickSizesForProcessCube();
137 void SetBrickSizesForProcessCubes();
138 };
139};
140
141#endif
Buffer for reading and writing cube data.
Definition Buffer.h:53
Manipulate and parse attributes of input cube filenames.
Definition CubeAttribute.h:381
IO Handler for Isis Cubes.
Definition Cube.h:168
Process cubes by brick.
Definition ProcessByBrick.h:83
void ProcessCubeInPlace(const Functor &functor, bool threaded=true)
Operate over a single cube (either input or output).
Definition ProcessByBrick.h:167
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:243
void VerifyCubes(IOCubes cn)
Verifies the dimensions of the input/output cubes.
Definition ProcessByBrick.cpp:120
Cube * SetInputCube(const QString &parameter, int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
Definition ProcessByBrick.cpp:58
void ProcessCube(const Functor &functor, bool threaded=true)
Operate over a single input cube creating a separate output cube.
Definition ProcessByBrick.h:204
IOCubes
Definition ProcessByBrick.h:91
@ InputOutput
Definition ProcessByBrick.h:92
@ InputOutputList
Definition ProcessByBrick.h:93
@ InPlace
Definition ProcessByBrick.h:91
Process cubes by spectra.
Definition ProcessBySpectra.h:38
static const int PerPixel
PerPixel spectra type (equal to 0)
Definition ProcessBySpectra.h:128
static const int BySample
BySample spectra type (equal to 2)
Definition ProcessBySpectra.h:130
Isis::Cube * SetInputCube(const QString &parameter, const int requirements=0)
Opens an input cube specified by the user and verifies requirements are met.
Definition ProcessBySpectra.cpp:41
static const int ByLine
ByLine spectra type (equal to 1)
Definition ProcessBySpectra.h:129
void StartProcess(void funct(Isis::Buffer &in))
This method invokes the process by spectra operation over a single input or output cube.
Definition ProcessBySpectra.cpp:81
void ProcessCubeInPlace(const Functor &funct, bool threaded=true)
Definition ProcessBySpectra.h:95
void SetType(const int type)
Sets the spectra type to one of the following:
Definition ProcessBySpectra.cpp:143
ProcessBySpectra(const int type=PerPixel)
Constructs ProcessBySpectra object using specified spectra type.
Definition ProcessBySpectra.h:55
void ProcessCubes(const Functor &funct, bool threaded=true)
Definition ProcessBySpectra.h:121
int Type()
Returns the spectra type:
Definition ProcessBySpectra.h:77
void ProcessCube(const Functor &funct, bool threaded=true)
Definition ProcessBySpectra.h:108
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16