|
Isis Developer Reference
|
Go to the documentation of this file. 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;
#define F(x, y, z)
Definition: md5.cpp:62
Buffer for containing a two dimensional section of an image.
Definition: Portal.h:36
This algorithm is designed for applications that jump around between a couple of spots in the cube wi...
Definition: BoxcarCachingAlgorithm.h:32
ProcessRubberSheet(int startSize=128, int endSize=8)
Constructs a ProcessRubberSheet class with the default tile size range.
Definition: ProcessRubberSheet.cpp:35
double * DoubleBuffer() const
Returns the value of the shape buffer.
Definition: Buffer.h:138
Base class for all cube processing derivatives.
Definition: Process.h:143
virtual ~ProcessRubberSheet()
Destroys the RubberSheet object.
Definition: ProcessRubberSheet.h:110
int Lines()
Returns the number of lines needed by the interpolator.
Definition: Interpolator.cpp:236
virtual void StartProcess(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to every pixel in the output cube.
Definition: ProcessRubberSheet.cpp:132
Buffer manager, for moving through a cube in tiles.
Definition: TileManager.h:39
bool SetTile(const int Tile, const int band=1)
Sets the current tile as requested.
Definition: TileManager.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:213
bool begin()
Moves the shape buffer to the first position.
Definition: BufferManager.h:96
double HotSample()
Returns the sample coordinate of the center pixel in the buffer for the interpolator.
Definition: Interpolator.cpp:265
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
bool end() const
Returns true if the shape buffer has accessed the end of the cube.
Definition: BufferManager.h:115
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
const double NULL8
Definition: SpecialPixel.h:94
Pixel interpolator.
Definition: Interpolator.h:34
Isis exception class.
Definition: IException.h:91
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 ForceTile(double Samp, double Line)
Definition: ProcessRubberSheet.h:122
const double Null
Value for an Isis Null pixel.
Definition: SpecialPixel.h:95
int Band(const int index=0) const
Returns the band position associated with a shape buffer index.
Definition: Buffer.cpp:162
Namespace for the standard library.
double Interpolate(const double isamp, const double iline, const double buf[])
Performs an interpolation on the data according to the parameters set in the constructor.
Definition: Interpolator.cpp:56
virtual void processPatchTransform(Transform &trans, Interpolator &interp)
Applies a Transform and an Interpolator to small patches.
Definition: ProcessRubberSheet.cpp:787
const double E
Sets some basic constants for use in ISIS programming.
Definition: Constants.h:39
This algorithm is designed for applications that jump around between a couple of spots in the cube wi...
Definition: UniqueIOCachingAlgorithm.h:30
int size() const
Returns the total number of pixels in the shape buffer.
Definition: Buffer.h:97
int Samples()
Returns the number of samples needed by the interpolator.
Definition: Interpolator.cpp:208
Derivative of Process, designed for geometric transformations.
Definition: ProcessRubberSheet.h:104
int Sample(const int index=0) const
Returns the sample position associated with a shape buffer index.
Definition: Buffer.cpp:127
double HotLine()
Returns the line coordinate of the center pixel in the buffer for the interpolator.
Definition: Interpolator.cpp:297
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
void SetPosition(const double sample, const double line, const int band)
Sets the line and sample position of the buffer.
Definition: Portal.h:93
int Line(const int index=0) const
Returns the line position associated with a shape buffer index.
Definition: Buffer.cpp:145
int Tiles()
Returns the number of Tiles in the cube.
Definition: TileManager.h:60
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16