1#ifndef ProcessRubberSheet_h 
    2#define ProcessRubberSheet_h 
  120      virtual void BandChange(
void (*funct)(
const int band));
 
  135      virtual void SetTiling(
long long start, 
long long end) {
 
  136        p_startQuadSize = start;
 
 
  141                                int samples, 
int lines,
 
  142                                int sampleIncrement, 
int lineIncrement);
 
  162      void ProcessQuad(std::vector<Quad *> &quadTree, Transform &trans,
 
  163                       std::vector< std::vector<double> > &lineMap,
 
  164                       std::vector< std::vector<double> > &sampMap);
 
  166      void SplitQuad(std::vector<Quad *> &quadTree);
 
  167      void SlowQuad(std::vector<Quad *> &quadTree, Transform &trans,
 
  168                    std::vector< std::vector<double> > &lineMap,
 
  169                    std::vector< std::vector<double> > &sampMap);
 
  170      double Det4x4(
double m[4][4]);
 
  171      double Det3x3(
double m[3][3]);
 
  174      void SlowGeom(TileManager &otile, Portal &iportal,
 
  175                    Transform &trans, Interpolator &interp);
 
  176      void QuadTree(TileManager &otile, Portal &iportal,
 
  177                    Transform &trans, Interpolator &interp,
 
  178                    bool useLastTileMap);
 
  180      bool TestLine(Transform &trans, 
int ssamp, 
int esamp, 
int sline,
 
  181                    int eline, 
int increment);
 
  183      void (*p_bandChangeFunct)(
const int band);
 
  185      void transformPatch (
double startingSample, 
double endingSample,
 
  186                           double startingLine, 
double endingLine,
 
  187                           Portal &iportal, Transform &trans, Interpolator &interp);
 
  189      void splitPatch (
double startingSample, 
double endingSample,
 
  190                       double startingLine, 
double endingLine,
 
  191                       Portal &iportal, Transform &trans, Interpolator &interp);
 
  193      void transformPatch (
double startingSample, 
double endingSample,
 
  194                           double startingLine, 
double endingLine);
 
  196      void splitPatch (
double startingSample, 
double endingSample,
 
  197                       double startingLine, 
double endingLine);
 
  200      std::vector< std::vector<double> > p_sampMap; 
 
  201      std::vector< std::vector<double> > p_lineMap; 
 
  206      long long p_startQuadSize; 
 
  207      long long p_endQuadSize;   
 
  209      int m_patchStartSample;
 
  210      int m_patchStartLine;
 
  213      int m_patchSampleIncrement;
 
  214      int m_patchLineIncrement;
 
  219      Transform *m_transform;
 
  220      Interpolator *m_interpolator;
 
 
Pixel interpolator.
Definition Interpolator.h:34
 
Base class for all cube processing derivatives.
Definition Process.h:143
 
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time.
Definition Process.h:213
 
Derivative of Process, designed for geometric transformations.
Definition ProcessRubberSheet.h:104
 
virtual void StartProcess(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to every pixel in the output cube.
Definition ProcessRubberSheet.cpp:132
 
virtual void processPatchTransform(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to small patches.
Definition ProcessRubberSheet.cpp:787
 
virtual void ForceTile(double Samp, double Line)
Definition ProcessRubberSheet.h:122
 
virtual ~ProcessRubberSheet()
Destroys the RubberSheet object.
Definition ProcessRubberSheet.h:110
 
ProcessRubberSheet(int startSize=128, int endSize=8)
Constructs a ProcessRubberSheet class with the default tile size range.
Definition ProcessRubberSheet.cpp:35
 
virtual 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:135
 
virtual void BandChange(void(*funct)(const int band))
Registers a function to be called when the current output cube band number changes.
Definition ProcessRubberSheet.cpp:232
 
virtual 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:102
 
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16