Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ProcessBySpectra.h
Go to the documentation of this file.
1
#ifndef ProcessBySpectra_h
2
#define ProcessBySpectra_h
3
25
#include "
ProcessByBrick.h
"
26
#include "
Buffer.h
"
27
28
namespace
Isis {
54
class
ProcessBySpectra
:
public
Isis::ProcessByBrick
{
55
private
:
56
int
p_spectraType
;
59
public
:
71
ProcessBySpectra
(
const
int
type =
PerPixel
):
ProcessByBrick
() {
72
SetType
(type);
73
};
74
75
Isis::Cube
*
SetInputCube
(
const
QString ¶meter,
76
const
int
requirements = 0);
77
Isis::Cube
*
SetInputCube
(
const
QString &file,
78
Isis::CubeAttributeInput
&att,
79
const
int
requirements = 0);
80
81
void
SetType
(
const
int
type);
82
92
int
Type
() {
93
return
p_spectraType
;
94
};
95
96
void
StartProcess
(
void
funct(
Isis::Buffer
&in));
97
98
void
StartProcess
(
void
funct(
Isis::Buffer
&in,
Isis::Buffer
&out));
99
100
void
StartProcess
(
void
funct(std::vector<Isis::Buffer *> &in,
101
std::vector<Isis::Buffer *> &out));
102
103
109
template
<
typename
Functor>
110
void
ProcessCubeInPlace
(
const
Functor & funct,
bool
threaded =
true
) {
111
SetBrickSizesForProcessCubeInPlace
();
112
ProcessByBrick::ProcessCubeInPlace
(funct, threaded);
113
}
114
120
template
<
typename
Functor>
121
void
ProcessCube
(
const
Functor & funct,
bool
threaded =
true
) {
122
SetBrickSizesForProcessCube
();
123
ProcessByBrick::ProcessCube
(funct, threaded);
124
}
125
131
template
<
typename
Functor>
132
void
ProcessCubes
(
const
Functor & funct,
bool
threaded =
true
) {
133
SetBrickSizesForProcessCubes
();
134
ProcessByBrick::ProcessCubes
(funct, threaded);
135
}
136
137
static
const
int
PerPixel
= 0;
138
static
const
int
ByLine
= 1;
139
static
const
int
BySample
= 2;
140
141
private
:
142
void
SetBrickSizesForProcessCubeInPlace
();
143
void
SetBrickSizesForProcessCube
();
144
void
SetBrickSizesForProcessCubes
();
145
};
146
};
147
148
#endif