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