Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ProcessByTile.h
Go to the documentation of this file.
1
#ifndef ProcessByTile_h
2
#define ProcessByTile_h
3
25
#include "
ProcessByBrick.h
"
26
#include "
Buffer.h
"
27
28
namespace
Isis {
56
class
ProcessByTile
:
public
ProcessByBrick
{
57
58
private
:
59
bool
p_tileSizeSet
;
60
int
p_tileSamples
;
61
int
p_tileLines
;
62
63
public
:
64
66
ProcessByTile
() {
67
p_tileSizeSet
=
false
;
68
};
69
71
~ProcessByTile
() {};
72
73
void
SetTileSize
(
const
int
ns,
const
int
nl);
74
75
void
StartProcess
(
void
funct(
Buffer
&in));
76
void
StartProcess
(
void
funct(
Buffer
&in,
Buffer
&out));
77
78
void
StartProcess
(
void
funct(std::vector<Buffer *> &in,
79
std::vector<Buffer *> &out));
80
void
EndProcess
();
81
void
Finalize
();
82
88
template
<
typename
Functor>
89
void
ProcessCubeInPlace
(
const
Functor & funct,
bool
threaded =
true
) {
90
SetBrickSizesForProcessCubeInPlace
();
91
ProcessByBrick::ProcessCubeInPlace
(funct, threaded);
92
}
93
99
template
<
typename
Functor>
100
void
ProcessCube
(
const
Functor & funct,
bool
threaded =
true
) {
101
SetBrickSizesForProcessCube
();
102
ProcessByBrick::ProcessCube
(funct, threaded);
103
}
104
110
template
<
typename
Functor>
111
void
ProcessCubes
(
const
Functor & funct,
bool
threaded =
true
) {
112
SetBrickSizesForProcessCubes
();
113
ProcessByBrick::ProcessCubes
(funct, threaded);
114
}
115
116
private
:
117
void
SetBrickSizesForProcessCubeInPlace
();
118
void
SetBrickSizesForProcessCube
();
119
void
SetBrickSizesForProcessCubes
();
120
};
121
};
122
123
#endif