@allmaps/transform
Version:
Coordinate transformation functions
37 lines (36 loc) • 1.39 kB
TypeScript
import { BaseLinearWeightsTransformation } from './BaseLinearWeightsTransformation.js';
import type { Point, Size } from '@allmaps/types';
import type { HelmertMeasures } from '../shared/types.js';
/**
* 2D Helmert transformation (= similarity transformation)
*
* This transformation is a composition of a translation, rotation and scaling. There is no shearing.
*
* For this transformations, the system of equations is solved for x and y jointly.
*/
export declare class Helmert extends BaseLinearWeightsTransformation {
coefsArrayMatrices: [number[][], number[][]];
coefsArrayMatricesSize: [Size, Size];
weightsArray?: number[];
weightsArrays?: [number[], number[]];
constructor(sourcePoints: Point[], destinationPoints: Point[]);
getDestinationPointsArrays(): [number[], number[]];
getCoefsArrayMatrices(): [number[][], number[][]];
/**
* Get two 1x4 coefsArrays, populating the 2Nx4 coefsArrayMatrices
* 1 0 x0 -y0
* 1 0 x1 -y1
* ...
* 0 1 y0 x0
* 0 1 y1 x1
* ...
*
* @param sourcePoint
*/
getSourcePointCoefsArrays(sourcePoint: Point): [number[], number[]];
solve(): void;
getMeasures(): HelmertMeasures;
evaluateFunction(newSourcePoint: Point): Point;
evaluatePartialDerivativeX(_newSourcePoint: Point): Point;
evaluatePartialDerivativeY(_newSourcePoint: Point): Point;
}