1 #ifndef ProcessRubberSheet_h 2 #define ProcessRubberSheet_h 136 void BandChange(
void (*funct)(
const int band));
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]);
190 void SlowGeom(TileManager &otile, Portal &iportal,
191 Transform &trans, Interpolator &interp);
192 void QuadTree(TileManager &otile, Portal &iportal,
193 Transform &trans, Interpolator &interp,
194 bool useLastTileMap);
196 bool TestLine(Transform &trans,
int ssamp,
int esamp,
int sline,
197 int eline,
int increment);
199 void (*p_bandChangeFunct)(
const int band);
201 void transformPatch (
double startingSample,
double endingSample,
202 double startingLine,
double endingLine,
203 Portal &iportal, Transform &trans, Interpolator &interp);
205 void splitPatch (
double startingSample,
double endingSample,
206 double startingLine,
double endingLine,
207 Portal &iportal, 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;
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;
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:147
void BandChange(void(*funct)(const int band))
Registers a function to be called when the current output cube band number changes.
Definition: ProcessRubberSheet.cpp:246
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:117
virtual ~ProcessRubberSheet()
Destroys the RubberSheet object.
Definition: ProcessRubberSheet.h:126
ProcessRubberSheet(int startSize=128, int endSize=8)
Constructs a ProcessRubberSheet class with the default tile size range.
Definition: ProcessRubberSheet.cpp:50
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time...
Definition: Process.h:228
void processPatchTransform(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to small patches.
Definition: ProcessRubberSheet.cpp:801
Derivative of Process, designed for geometric transformations.
Definition: ProcessRubberSheet.h:120
Pixel interpolator.
Definition: Interpolator.h:51
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...
Definition: ProcessRubberSheet.h:151
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
void ForceTile(double Samp, double Line)
Definition: ProcessRubberSheet.h:138
Base class for all cube processing derivatives.
Definition: Process.h:158