Reverse Pixel Mapping API 
ReversePixelMapper interface 
General interface for Reverse Pixel Mapping. Maps output image point coordinates into source image point coordinates using mathematical function.
interface ReversePixelMapper {
  reverseMap(x: number, y: number): Point;
  getValidity(x: number, y: number, scaling: number): number;
}Methods 
reverseMap() 
- Params: 
x: number,y: number- Output image point coordinates. - Returns: 
Point- Source image point coordinates in Point format 
Returns corresponding source image point coordinates for given output (destination, distorted) image point coordinates.
getValidity() 
- Params: 
x: number,y: number- Output image point coordinates. - Returns: 
number 
Returns number that represents how mathematically valid is mapping. If validity is < 0 -- the mapping is invalid. When mapping is invalid, matte color will be used. When validity is between 0 and 1, blended color of matte color and resampled color will be used.
Type guard 
isReversePixelMapper() function checks if given argument is ReversePixelMapper and can be used as type guard.
ReversePixelMapperFactory interface 
Creates ReversePixelMapper concrete implementation.
interface ReversePixelMapperFactory<T extends number[] = number[]> {
  create(args: T, viewport: Viewport): ReversePixelMapper;
}Methods 
create() 
- Params: 
args: T- Array of numbers, which are distortion arguments, different for concrete implementations.viewport: Viewport- instance of Viewport class.
 
Creates instance of concrete ReversePixelMapper.
ReversePixelMapperFactoriesPool type 
Pool of ReversePixelMapperFactory instances. Pool keys are Distortion enum values, which are alse distortion names, which you pass to distort() function second argument.
interface ReversePixelMapperFactoriesPoolKeyMap {
  [Distortion.ARC]: ArcFactory;
  [Distortion.AFFINE]: AffineFactory;
  [Distortion.AFFINE_PROJECTION]: AffineProjectionFactory;
  [Distortion.PERSPECTIVE]: PerspectiveFactory;
  [Distortion.PERSPECTIVE_PROJECTION]: PerspectiveProjectionFactory;
  [key: Distortion | string]: ReversePixelMapperFactory;
}
type ReversePixelMapperFactoriesPool = Pool<
  ReversePixelMapperFactory,
  ReversePixelMapperFactoriesPoolKeyMap
>;BestFitReversePixelMapper interface 
Interface extends ReversePixelMapper and provides props and methods for best-fit viewport calculation.
interface BestFitReversePixelMapper extends ReversePixelMapper {
  readonly forceBestFit?: boolean;
  getBestFitViewport(viewport: Viewport): Viewport;
}Properties 
forceBestFit 
- Type: 
boolean 
Optional boolean property which is flag of that given pixel mapper will force to use best-fit output image viewport, rather than source image viewport, unless custom user-provided viewport is given.
Methods 
getBestFitViewport() 
- Param: 
viewport: Viewport- source image Viewport - Returns: 
Viewport 
Calculates output image best-fit viewport, based on given source image viewport.
Type guard 
isBestFitReversePixelMapper() functions checks if given argument is BestFitReversePixelMapper and can be used as type guard.
EwaReversePixelMapper interface 
Interface extends ReversePixelMapper and provides properties and methods, required for performing EWA resampling.
type PartialDerivatives = [number, number, number, number];
interface EwaReversePixelMapper extends ReversePixelMapper {
  readonly isConstantPartialDerivatives: boolean;
  getPartialDerivatives(x: number, y: number): PartialDerivatives;
}Properties 
isConstantPartialDerivatives 
- Type: 
boolean 
Flag of pixel mapper having constant partial derivatives. If true, there is no need for EWA resampler to call getPartialDerivatives() method for each pixel.
Methods 
getPartialDerivatives() 
- Params: 
x: number,y: number- output image point coordinates - Returns: 
PartialDerivatives- array of 4 numbers. 
Returns array of 4 numbers which are partial derivatives: dux, dvy, dvx, dvy and are used for EWA ellipse params calculation.
Type guard 
isEwaReversePixelMapper() function checks if given argument is EwaReversePixelMapper and can be used as type guard.
