1 #ifndef ProcessRubberSheet_h 2 #define ProcessRubberSheet_h 136 void BandChange(
void (*funct)(
const int band));
138 void ForceTile(
double Samp,
double Line) {
152 p_startQuadSize = start;
157 int samples,
int lines,
158 int sampleIncrement,
int lineIncrement);
178 void ProcessQuad(std::vector<Quad *> &quadTree,
Transform &trans,
179 std::vector< std::vector<double> > &lineMap,
180 std::vector< std::vector<double> > &sampMap);
182 void SplitQuad(std::vector<Quad *> &quadTree);
183 void SlowQuad(std::vector<Quad *> &quadTree,
Transform &trans,
184 std::vector< std::vector<double> > &lineMap,
185 std::vector< std::vector<double> > &sampMap);
186 double Det4x4(
double m[4][4]);
187 double Det3x3(
double m[3][3]);
194 bool useLastTileMap);
197 int eline,
int increment);
199 void (*p_bandChangeFunct)(
const int band);
201 void transformPatch (
double startingSample,
double endingSample,
202 double startingLine,
double endingLine,
205 void splitPatch (
double startingSample,
double endingSample,
206 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;
222 long long p_startQuadSize;
223 long long p_endQuadSize;
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.
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.
void SetTiling(long long start, long long end)
This sets the start and end tile sizes for the rubber sheet; numbers are inclusive and must be powers...
Namespace for ISIS/Bullet specific routines.
Buffer manager, for moving through a cube in tiles.
Base class for all cube processing derivatives.