UNPKG

mercator-proj

Version:

[![Build Status](https://img.shields.io/travis/com/sakitam-gis/mercator-proj)](https://travis-ci.com/sakitam-gis/mercator-proj) [![GZIP size](http://img.badgesize.io/https://unpkg.com/mercator-proj/dist/mercator-proj.min.js?compression=gzip&label=gzip%20s

125 lines (124 loc) 4.01 kB
import WebMercatorViewport, { COORDINATE_SYSTEM } from './viewport/viewport'; export declare type vec4 = [number, number, number, number] | Float32Array | number[]; export declare type mat4 = number[] | [ number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number ] | Float32Array; export interface IOptions { viewport: WebMercatorViewport; devicePixelRatio: number; modelMatrix: number[] | null; coordinateSystem: COORDINATE_SYSTEM; coordinateOrigin?: number[]; autoWrapLongitude?: boolean; } export declare function isEqual(a: any, b: any): boolean; /** * Speed up consecutive function calls by caching the result of calls with identical input * https://en.wikipedia.org/wiki/Memoization * @param {function} compute - the function to be memoized */ export declare function memoize(compute: (args: any) => any): (args: any) => { [key: string]: any; }; /** * Multiplies two mat4s * @param {mat4} out the receiving matrix * @param {ReadonlyMat4} a the first operand * @param {ReadonlyMat4} b the second operand * @returns {mat4} out */ export declare function multiply(out: mat4, a: mat4 | number[], b: mat4 | number[]): mat4; /** * Transforms the vec4 with a mat4. * @param {vec4} out the receiving vector * @param {ReadonlyVec4} a the vector to transform * @param {ReadonlyMat4} m matrix to transform with * @returns {vec4} out */ export declare function transformMat4(out: vec4, a: vec4, m: mat4 | number[]): vec4; /** * Inverts a mat4 * @param out * @param a */ export declare function invert(out: vec4, a: vec4): Float32Array | number[] | null; export declare function getOffsetOrigin(viewport: WebMercatorViewport, coordinateSystem: COORDINATE_SYSTEM, coordinateOrigin?: number[]): { geospatialOrigin: number[] | null; shaderCoordinateOrigin: number[]; offsetMode: boolean; }; /** * Returns uniforms for shaders based on current projection * includes: projection matrix suitable for shaders * @param viewport * @param devicePixelRatio * @param modelMatrix * @param coordinateSystem * @param coordinateOrigin * @param autoWrapLongitude * @return {Float32Array} - 4x4 projection matrix that can be used in shaders */ export declare function getUniformsFromViewport({ viewport, devicePixelRatio, modelMatrix, coordinateSystem, coordinateOrigin, autoWrapLongitude, }: IOptions): { [key: string]: any; }; export declare type MercatorUniformKeys = [ 'project_uCoordinateSystem', 'project_uProjectionMode', 'project_uCoordinateOrigin', 'project_uCenter', 'project_uAntimeridian', 'project_uViewportSize', 'project_uDevicePixelRatio', 'project_uFocalDistance', 'project_uCommonUnitsPerMeter', 'project_uCommonUnitsPerWorldUnit', 'project_uCommonUnitsPerWorldUnit2', 'project_uScale', 'project_uViewProjectionMatrix', 'project_metersPerPixel', 'project_uModelMatrix', 'project_uWrapLongitude', 'project_uCameraPosition' ]; export declare function getUniformKeys(): MercatorUniformKeys; export declare function getUniforms(opts: IOptions): { [key: string]: any; }; export declare function highPrecisionLngLat(lngLat: number[], offset?: number, stride?: number): Float32Array; export declare function injectMercatorGLSL(gl: WebGLRenderingContext | WebGL2RenderingContext, source: string, defines?: { PROJECT_OFFSET_THRESHOLD: string; }): string; export declare const fp32: { name: string; vs: string; fs: null; }; export declare const project: { name: string; vs: string; fs: null; inject: {}; dependencies: { name: string; vs: string; fs: null; }[]; deprecations: never[]; getUniforms: typeof getUniforms; }; export { WebMercatorViewport };