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.