UNPKG

s2maps-gpu

Version:

S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.

122 lines (121 loc) 3.8 kB
import type { Point3D, VectorPoint } from 'gis-tools/index.js'; /** @returns a 4x4 identity matrix */ export declare function create(): Float32Array; /** * Clone a matrix * @param m - input matrix to clone * @returns cloned matrix */ export declare function clone(m: Float32Array): Float32Array; /** * Prepare an Blend matrix * @param m - input matrix * @param width - viewport width * @param height - viewport height * @param near - near plane * @param far - far plane * @returns the blended matrix */ export declare function blend(m: Float32Array, width: number, height: number, near: number, far: number): Float32Array; /** * Prepare an Orthographic projection matrix * @param m - input matrix * @param width - viewport width * @param height - viewport height * @param far - far plane * @returns the orthographic matrix */ export declare function ortho(m: Float32Array, width: number, height: number, far: number): Float32Array; /** * Prepare a perspective projection matrix * @param m - input matrix * @param fovy - field of view * @param aspect - viewport aspect * @param near - near plane * @param far - far plane * @returns the perspective matrix */ export declare function perspective(m: Float32Array, fovy: number, aspect: number, near: number, far: number): Float32Array; /** * Prepare a lookAt matrix * @param eye - camera position * @param up - camera up vector * @returns the lookAt matrix */ export declare function lookAt(eye: VectorPoint, up: VectorPoint): Float32Array; /** * Add a center to the matrix * @param m - input matrix * @param v - center vector * @returns the matrix */ export declare function addCenter(m: Float32Array, v: Float32Array): Float32Array; /** * Translate the matrix given a vector * @param m - input matrix * @param v - vector * @returns the matrix */ export declare function translate(m: Float32Array, v: Float32Array | Point3D): Float32Array; /** * Scale the matrix via a vector * @param m - input matrix * @param v - vector * @returns the matrix */ export declare function scale(m: Float32Array, v: Float32Array | Point3D): Float32Array; /** * Rotate the matrix * @param m - input matrix * @param rad - rotation in radians * @returns the matrix */ export declare function rotate(m: Float32Array, rad: Point3D): Float32Array; /** * Rotate the matrix around the X axis * @param m - input matrix * @param rad - rotation in radians * @returns the matrix */ export declare function rotateX(m: Float32Array, rad: number): Float32Array; /** * Rotate the matrix around the Y axis * @param m - input matrix * @param rad - rotation in radians * @returns the matrix */ export declare function rotateY(m: Float32Array, rad: number): Float32Array; /** * Rotate the matrix around the Z axis * @param m - input matrix * @param rad - rotation in radians * @returns the matrix */ export declare function rotateZ(m: Float32Array, rad: number): Float32Array; /** * Multiply a matrix by a vector * @param m - input matrix * @param v - vector * @returns the vector */ export declare function multiplyVector(m: Float32Array, v: VectorPoint): [x: number, y: number, z: number, t: number]; /** * Multiply two matrices * @param a - input matrix * @param b - input matrix * @returns the matrix */ export declare function multiply(a: Float32Array, b: Float32Array | number[]): Float32Array; /** * Invert a matrix * @param matrix - input matrix * @returns the inverted matrix */ export declare function invert(matrix: Float32Array): null | Float32Array; /** * Project a 3D vector given an input matrix * @param matrix - input matrix * @param vector - vector to project * @returns the projected vector */ export declare function project(matrix: Float32Array, vector: VectorPoint): VectorPoint;