  | 
  
    Isis 3 Programmer Reference
    
   | 
 
 
 
 
    1 #ifndef ProcessRubberSheet_h 
    2 #define ProcessRubberSheet_h 
   11 #include "Transform.h" 
   12 #include "Interpolator.h" 
   14 #include "TileManager.h" 
  120       virtual void BandChange(
void (*funct)(
const int band));
 
  122       virtual void ForceTile(
double Samp, 
double Line) {
 
  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]);
 
  178                     bool useLastTileMap);
 
  181                     int eline, 
int increment);
 
  183       void (*p_bandChangeFunct)(
const int band);
 
  185       void transformPatch (
double startingSample, 
double endingSample,
 
  186                            double startingLine, 
double endingLine,
 
  189       void splitPatch (
double startingSample, 
double endingSample,
 
  190                        double startingLine, 
double endingLine,
 
  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;
 
 
 
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.
 
Base class for all cube processing derivatives.
 
virtual ~ProcessRubberSheet()
Destroys the RubberSheet object.
 
virtual void StartProcess(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to every pixel in the output cube.
 
Buffer manager, for moving through a cube in tiles.
 
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time.
 
Buffer for containing a three dimensional section of an image.
 
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...
 
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.
 
virtual void BandChange(void(*funct)(const int band))
Registers a function to be called when the current output cube band number changes.
 
virtual void processPatchTransform(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to small patches.
 
Derivative of Process, designed for geometric transformations.
 
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...
 
This is free and unencumbered software released into the public domain.