1 #ifndef ProcessRubberSheet_h
2 #define ProcessRubberSheet_h
134 void BandChange(
void (*funct)(
const int band));
136 void ForceTile(
double Samp,
double Line) {
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]);
192 bool useLastTileMap);
195 int eline,
int increment);
197 void (*p_bandChangeFunct)(
const int band);
199 void transformPatch (
double startingSample,
double endingSample,
200 double startingLine,
double endingLine,
204 void splitPatch (
double startingSample,
double endingSample,
205 double startingLine,
double endingLine,
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;
virtual void StartProcess(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to every pixel in the output cube.
void BandChange(void(*funct)(const int band))
Registers a function to be called when the current output cube band number changes.
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...
virtual ~ProcessRubberSheet()
Destroys the RubberSheet object.
Buffer for containing a two dimensional section of an image.
ProcessRubberSheet(int startSize=128, int endSize=8)
Constructs a ProcessRubberSheet class with the default tile size range.
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...
Buffer for containing a three dimensional section of an image.
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time...
void processPatchTransform(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to small patches.
Derivative of Process, designed for geometric transformations.
bool TestLine(Transform &trans, int ssamp, int esamp, int sline, int eline, int increment)
This function walks a line (or rectangle) and tests a point every increment pixels.
Buffer manager, for moving through a cube in tiles.
Base class for all cube processing derivatives.