1 #ifndef ProcessRubberSheet_h
2 #define ProcessRubberSheet_h
134 void BandChange(
void (*funct)(
const int band));
150 p_startQuadSize = start;
155 int samples,
int lines,
156 int sampleIncrement,
int lineIncrement);
176 void ProcessQuad(std::vector<Quad *> &quadTree, Transform &trans,
177 std::vector< std::vector<double> > &lineMap,
178 std::vector< std::vector<double> > &sampMap);
180 void SplitQuad(std::vector<Quad *> &quadTree);
181 void SlowQuad(std::vector<Quad *> &quadTree, Transform &trans,
182 std::vector< std::vector<double> > &lineMap,
183 std::vector< std::vector<double> > &sampMap);
184 double Det4x4(
double m[4][4]);
185 double Det3x3(
double m[3][3]);
188 void SlowGeom(TileManager &otile, Portal &iportal,
189 Transform &trans, Interpolator &interp);
190 void QuadTree(TileManager &otile, Portal &iportal,
191 Transform &trans, Interpolator &interp,
192 bool useLastTileMap);
194 bool TestLine(Transform &trans,
int ssamp,
int esamp,
int sline,
195 int eline,
int increment);
197 void (*p_bandChangeFunct)(
const int band);
199 void transformPatch (
double startingSample,
double endingSample,
200 double startingLine,
double endingLine,
201 Brick &obrick, Portal &iportal,
202 Transform &trans, Interpolator &interp);
204 void splitPatch (
double startingSample,
double endingSample,
205 double startingLine,
double endingLine,
206 Brick &obrick, Portal &iportal,
207 Transform &trans, Interpolator &interp);
209 void transformPatch (
double startingSample,
double endingSample,
210 double startingLine,
double endingLine);
212 void splitPatch (
double startingSample,
double endingSample,
213 double startingLine,
double endingLine);
216 std::vector< std::vector<double> > p_sampMap;
217 std::vector< std::vector<double> > p_lineMap;
225 int m_patchStartSample;
226 int m_patchStartLine;
229 int m_patchSampleIncrement;
230 int m_patchLineIncrement;
235 Transform *m_transform;
236 Interpolator *m_interpolator;
virtual void StartProcess(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to every pixel in the output cube.
Definition: ProcessRubberSheet.cpp:141
void BandChange(void(*funct)(const int band))
Registers a function to be called when the current output cube band number changes.
Definition: ProcessRubberSheet.cpp:237
void setPatchParameters(int startSample, int startLine, int samples, int lines, int sampleIncrement, int lineIncrement)
This method allows the programmer to override the default values for patch parameters used in the pat...
Definition: ProcessRubberSheet.cpp:113
virtual ~ProcessRubberSheet()
Destroys the RubberSheet object.
Definition: ProcessRubberSheet.h:124
ProcessRubberSheet(int startSize=128, int endSize=8)
Constructs a ProcessRubberSheet class with the default tile size range.
Definition: ProcessRubberSheet.cpp:48
void SetTiling(int start, int end)
This sets the start and end tile sizes for the rubber sheet; numbers are inclusive and must be powers...
Definition: ProcessRubberSheet.h:149
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time...
Definition: Process.h:227
void processPatchTransform(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to small patches.
Definition: ProcessRubberSheet.cpp:778
Derivative of Process, designed for geometric transformations.
Definition: ProcessRubberSheet.h:118
Pixel interpolator.
Definition: Interpolator.h:51
void ForceTile(double Samp, double Line)
Definition: ProcessRubberSheet.h:136
Base class for all cube processing derivatives.
Definition: Process.h:157