Isis Developer Reference
Isis::Interpolator Class Reference

Pixel interpolator. More...

#include <Interpolator.h>

Collaboration diagram for Isis::Interpolator:
Collaboration graph

Public Types

enum  interpType { None = 0, NearestNeighborType = 1, BiLinearType = 2, CubicConvolutionType = 4 }
 The interpolator type, including: None, Nearest Neighbor, BiLinear or Cubic Convultion. More...
 

Public Member Functions

 Interpolator ()
 Constructs an empty Interpolator object. More...
 
 Interpolator (const interpType &type)
 Constructs an Interpolator object, and sets the type of interpolation. More...
 
 ~Interpolator ()
 Destroys the Interpolator object. More...
 
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. More...
 
void SetType (const interpType &type)
 Sets the type of interpolation. More...
 
int Samples ()
 Returns the number of samples needed by the interpolator. More...
 
int Lines ()
 Returns the number of lines needed by the interpolator. More...
 
double HotSample ()
 Returns the sample coordinate of the center pixel in the buffer for the interpolator. More...
 
double HotLine ()
 Returns the line coordinate of the center pixel in the buffer for the interpolator. More...
 

Detailed Description

Pixel interpolator.

This class is used for interpolating buffers of pixel data. It is usually associated with spacial translation, rotations and scaling in geometric warping algorithums (i.e., rubber sheeting). When special-pixel values are found in the data buffer the current interpolator is abandonded and the next lower interpolator is used instead (i.e.; if Cubic-convolution can not be performed then a bi-linear is used and if the bi-linear can not be performed then nearest-neighbor will be used.

Author
2002-10-09 Stuart Sides

Member Enumeration Documentation

◆ interpType

The interpolator type, including: None, Nearest Neighbor, BiLinear or Cubic Convultion.

Enumerator
None 
NearestNeighborType 
BiLinearType 
CubicConvolutionType 

Constructor & Destructor Documentation

◆ Interpolator() [1/2]

Isis::Interpolator::Interpolator ( )

Constructs an empty Interpolator object.

◆ Interpolator() [2/2]

Isis::Interpolator::Interpolator ( const interpType type)

Constructs an Interpolator object, and sets the type of interpolation.

Parameters
typeThe type of interpolation to be performed. (NearestNeighbor, BiLinear or CubicConvulsion)
See also
Interpolator.h

◆ ~Interpolator()

Isis::Interpolator::~Interpolator ( )

Destroys the Interpolator object.

Member Function Documentation

◆ HotLine()

double Isis::Interpolator::HotLine ( )

Returns the line coordinate of the center pixel in the buffer for the interpolator.

Returns
The line coordinate of the center pixel.

References _FILEINFO_, and Isis::None.

Referenced by Isis::DemShape::DemShape(), Isis::Chip::Extract(), Isis::ProcessRubberSheet::processPatchTransform(), and Isis::ProcessRubberSheet::StartProcess().

◆ HotSample()

double Isis::Interpolator::HotSample ( )

Returns the sample coordinate of the center pixel in the buffer for the interpolator.

Returns
The sample coordinate of the center pixel.

References _FILEINFO_, and Isis::None.

Referenced by Isis::DemShape::DemShape(), Isis::Chip::Extract(), Isis::ProcessRubberSheet::processPatchTransform(), and Isis::ProcessRubberSheet::StartProcess().

◆ Interpolate()

double Isis::Interpolator::Interpolate ( const double  isamp,
const double  iline,
const double  buf[] 
)

Performs an interpolation on the data according to the parameters set in the constructor.

If the buffer contains special pixel values then the current interpolation is abandoned and the next lower type of interpolation is attempted. The order from highest to lowest is (Cubic Convolution, Bi-linear and Nearest Neighbor).

Parameters
isampThe exact sample position being interpolated within the image.
ilineThe exact line position being interpolated within the image.
buf[]The buffer of data to be interpolated. The buffer is assumed to be the correct dimensions for the interpolator.

References _FILEINFO_, and Isis::None.

Referenced by Isis::Chip::Extract(), and Isis::DemShape::localRadius().

◆ Lines()

int Isis::Interpolator::Lines ( )

Returns the number of lines needed by the interpolator.

Returns
The number of lines needed.

References _FILEINFO_, and Isis::None.

Referenced by Isis::DemShape::DemShape(), Isis::Chip::Extract(), Isis::ProcessRubberSheet::processPatchTransform(), and Isis::ProcessRubberSheet::StartProcess().

◆ Samples()

int Isis::Interpolator::Samples ( )

Returns the number of samples needed by the interpolator.

Returns
The number of samples needed.

References _FILEINFO_, and Isis::None.

Referenced by Isis::DemShape::DemShape(), Isis::Chip::Extract(), Isis::ProcessRubberSheet::processPatchTransform(), and Isis::ProcessRubberSheet::StartProcess().

◆ SetType()

void Isis::Interpolator::SetType ( const interpType type)

Sets the type of interpolation.

(NearestNeighbor, BiLinear, CubicConvulsion).

See also
Interpolator.h
Parameters
typeThe type of interpolation to be set.

The documentation for this class was generated from the following files: