ol
Version:
OpenLayers mapping library
122 lines • 4.56 kB
TypeScript
export default Triangulation;
/**
* Single triangle; consists of 3 source points and 3 target points.
*/
export type Triangle = {
/**
* Source.
*/
source: Array<import("../coordinate.js").Coordinate>;
/**
* Target.
*/
target: Array<import("../coordinate.js").Coordinate>;
};
/**
* @classdesc
* Class containing triangulation of the given target extent.
* Used for determining source data and the reprojection itself.
*/
declare class Triangulation {
/**
* @param {import("../proj/Projection.js").default} sourceProj Source projection.
* @param {import("../proj/Projection.js").default} targetProj Target projection.
* @param {import("../extent.js").Extent} targetExtent Target extent to triangulate.
* @param {import("../extent.js").Extent} maxSourceExtent Maximal source extent that can be used.
* @param {number} errorThreshold Acceptable error (in source units).
* @param {?number} destinationResolution The (optional) resolution of the destination.
* @param {import("../transform.js").Transform} [sourceMatrix] Source transform matrix.
*/
constructor(sourceProj: import("../proj/Projection.js").default, targetProj: import("../proj/Projection.js").default, targetExtent: import("../extent.js").Extent, maxSourceExtent: import("../extent.js").Extent, errorThreshold: number, destinationResolution: number | null, sourceMatrix?: import("../transform.js").Transform);
/**
* @type {import("../proj/Projection.js").default}
* @private
*/
private sourceProj_;
/**
* @type {import("../proj/Projection.js").default}
* @private
*/
private targetProj_;
/**
* @param {import("../coordinate.js").Coordinate} c A coordinate.
* @return {import("../coordinate.js").Coordinate} Transformed coordinate.
* @private
*/
private transformInv_;
/**
* @type {import("../extent.js").Extent}
* @private
*/
private maxSourceExtent_;
/**
* @type {number}
* @private
*/
private errorThresholdSquared_;
/**
* @type {Array<Triangle>}
* @private
*/
private triangles_;
/**
* Indicates that the triangulation crosses edge of the source projection.
* @type {boolean}
* @private
*/
private wrapsXInSource_;
/**
* @type {boolean}
* @private
*/
private canWrapXInSource_;
/**
* @type {?number}
* @private
*/
private sourceWorldWidth_;
/**
* @type {?number}
* @private
*/
private targetWorldWidth_;
/**
* Adds triangle to the triangulation.
* @param {import("../coordinate.js").Coordinate} a The target a coordinate.
* @param {import("../coordinate.js").Coordinate} b The target b coordinate.
* @param {import("../coordinate.js").Coordinate} c The target c coordinate.
* @param {import("../coordinate.js").Coordinate} aSrc The source a coordinate.
* @param {import("../coordinate.js").Coordinate} bSrc The source b coordinate.
* @param {import("../coordinate.js").Coordinate} cSrc The source c coordinate.
* @private
*/
private addTriangle_;
/**
* Adds quad (points in clock-wise order) to the triangulation
* (and reprojects the vertices) if valid.
* Performs quad subdivision if needed to increase precision.
*
* @param {import("../coordinate.js").Coordinate} a The target a coordinate.
* @param {import("../coordinate.js").Coordinate} b The target b coordinate.
* @param {import("../coordinate.js").Coordinate} c The target c coordinate.
* @param {import("../coordinate.js").Coordinate} d The target d coordinate.
* @param {import("../coordinate.js").Coordinate} aSrc The source a coordinate.
* @param {import("../coordinate.js").Coordinate} bSrc The source b coordinate.
* @param {import("../coordinate.js").Coordinate} cSrc The source c coordinate.
* @param {import("../coordinate.js").Coordinate} dSrc The source d coordinate.
* @param {number} maxSubdivision Maximal allowed subdivision of the quad.
* @private
*/
private addQuad_;
/**
* Calculates extent of the `source` coordinates from all the triangles.
*
* @return {import("../extent.js").Extent} Calculated extent.
*/
calculateSourceExtent(): import("../extent.js").Extent;
/**
* @return {Array<Triangle>} Array of the calculated triangles.
*/
getTriangles(): Array<Triangle>;
}
//# sourceMappingURL=Triangulation.d.ts.map