|
1 | 1 | import { Mat4Arg, Mat4Type } from './mat4'; |
| 2 | +import { Mat3Arg } from './mat3'; |
| 3 | +import { QuatArg } from './quat'; |
| 4 | +import { Vec3Arg } from './vec3'; |
2 | 5 | import { BaseArgType } from './types'; |
3 | 6 | export { Mat4Arg, Mat4Type }; |
4 | 7 | type Mat4Ctor<T extends Mat4Arg = Float32Array> = new (n: number) => T; |
5 | | -export declare function getAPI<T extends Mat4Arg = Float32Array>(Ctor: Mat4Ctor<T>): { |
6 | | - create: (v0?: number | undefined, v1?: number | undefined, v2?: number | undefined, v3?: number | undefined, v4?: number | undefined, v5?: number | undefined, v6?: number | undefined, v7?: number | undefined, v8?: number | undefined, v9?: number | undefined, v10?: number | undefined, v11?: number | undefined, v12?: number | undefined, v13?: number | undefined, v14?: number | undefined, v15?: number | undefined) => T; |
7 | | - set: <T_1 extends BaseArgType = T>(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number, dst?: T_1 | undefined) => T_1; |
8 | | - fromMat3: <T_2 extends BaseArgType = T>(m3: BaseArgType, dst?: T_2 | undefined) => T_2; |
9 | | - fromQuat: <T_3 extends BaseArgType = T>(q: BaseArgType, dst?: T_3 | undefined) => T_3; |
10 | | - negate: <T_4 extends BaseArgType = T>(m: BaseArgType, dst?: T_4 | undefined) => T_4; |
11 | | - copy: <T_5 extends BaseArgType = T>(m: BaseArgType, dst?: T_5 | undefined) => T_5; |
12 | | - clone: <T_5 extends BaseArgType = T>(m: BaseArgType, dst?: T_5 | undefined) => T_5; |
13 | | - equalsApproximately: (a: BaseArgType, b: BaseArgType) => boolean; |
14 | | - equals: (a: BaseArgType, b: BaseArgType) => boolean; |
15 | | - identity: <T_6 extends BaseArgType = T>(dst?: T_6 | undefined) => T_6; |
16 | | - transpose: <T_7 extends BaseArgType = T>(m: BaseArgType, dst?: T_7 | undefined) => T_7; |
17 | | - inverse: <T_8 extends BaseArgType = T>(m: BaseArgType, dst?: T_8 | undefined) => T_8; |
18 | | - determinant: (m: BaseArgType) => number; |
19 | | - invert: <T_8 extends BaseArgType = T>(m: BaseArgType, dst?: T_8 | undefined) => T_8; |
20 | | - multiply: <T_9 extends BaseArgType = T>(a: BaseArgType, b: BaseArgType, dst?: T_9 | undefined) => T_9; |
21 | | - mul: <T_9 extends BaseArgType = T>(a: BaseArgType, b: BaseArgType, dst?: T_9 | undefined) => T_9; |
22 | | - setTranslation: <T_10 extends BaseArgType = T>(a: BaseArgType, v: BaseArgType, dst?: T_10 | undefined) => T_10; |
23 | | - getTranslation: <T_11 extends BaseArgType = T>(m: BaseArgType, dst?: T_11 | undefined) => T_11; |
24 | | - getAxis: <T_12 extends BaseArgType = T>(m: BaseArgType, axis: number, dst?: T_12 | undefined) => T | T_12; |
25 | | - setAxis: <T_13 extends BaseArgType = T>(m: BaseArgType, v: BaseArgType, axis: number, dst: T_13) => T_13; |
26 | | - getScaling: <T_14 extends BaseArgType = T>(m: BaseArgType, dst?: T_14 | undefined) => T_14; |
27 | | - perspective: <T_15 extends BaseArgType = T>(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar: number, dst?: T_15 | undefined) => T_15; |
28 | | - perspectiveReverseZ: <T_16 extends BaseArgType = T>(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar?: number, dst?: T_16 | undefined) => T_16; |
29 | | - ortho: <T_17 extends BaseArgType = T>(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T_17 | undefined) => T_17; |
30 | | - frustum: <T_18 extends BaseArgType = T>(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T_18 | undefined) => T_18; |
31 | | - frustumReverseZ: <T_19 extends BaseArgType = T>(left: number, right: number, bottom: number, top: number, near: number, far?: number, dst?: T_19 | undefined) => T_19; |
32 | | - aim: <T_20 extends BaseArgType = T>(position: BaseArgType, target: BaseArgType, up: BaseArgType, dst?: T_20 | undefined) => T_20; |
33 | | - cameraAim: <T_21 extends BaseArgType = T>(eye: BaseArgType, target: BaseArgType, up: BaseArgType, dst?: T_21 | undefined) => T_21; |
34 | | - lookAt: <T_22 extends BaseArgType = T>(eye: BaseArgType, target: BaseArgType, up: BaseArgType, dst?: T_22 | undefined) => T_22; |
35 | | - translation: <T_23 extends BaseArgType = T>(v: BaseArgType, dst?: T_23 | undefined) => T_23; |
36 | | - translate: <T_24 extends BaseArgType = T>(m: BaseArgType, v: BaseArgType, dst?: T_24 | undefined) => T_24; |
37 | | - rotationX: <T_25 extends BaseArgType = T>(angleInRadians: number, dst?: T_25 | undefined) => T_25; |
38 | | - rotateX: <T_26 extends BaseArgType = T>(m: BaseArgType, angleInRadians: number, dst?: T_26 | undefined) => T_26; |
39 | | - rotationY: <T_27 extends BaseArgType = T>(angleInRadians: number, dst?: T_27 | undefined) => T_27; |
40 | | - rotateY: <T_28 extends BaseArgType = T>(m: BaseArgType, angleInRadians: number, dst?: T_28 | undefined) => T_28; |
41 | | - rotationZ: <T_29 extends BaseArgType = T>(angleInRadians: number, dst?: T_29 | undefined) => T_29; |
42 | | - rotateZ: <T_30 extends BaseArgType = T>(m: BaseArgType, angleInRadians: number, dst?: T_30 | undefined) => T_30; |
43 | | - axisRotation: <T_31 extends BaseArgType = T>(axis: BaseArgType, angleInRadians: number, dst?: T_31 | undefined) => T_31; |
44 | | - rotation: <T_31 extends BaseArgType = T>(axis: BaseArgType, angleInRadians: number, dst?: T_31 | undefined) => T_31; |
45 | | - axisRotate: <T_32 extends BaseArgType = T>(m: BaseArgType, axis: BaseArgType, angleInRadians: number, dst?: T_32 | undefined) => T_32; |
46 | | - rotate: <T_32 extends BaseArgType = T>(m: BaseArgType, axis: BaseArgType, angleInRadians: number, dst?: T_32 | undefined) => T_32; |
47 | | - scaling: <T_33 extends BaseArgType = T>(v: BaseArgType, dst?: T_33 | undefined) => T_33; |
48 | | - scale: <T_34 extends BaseArgType = T>(m: BaseArgType, v: BaseArgType, dst?: T_34 | undefined) => T_34; |
49 | | - uniformScaling: <T_35 extends BaseArgType = T>(s: number, dst?: T_35 | undefined) => T_35; |
50 | | - uniformScale: <T_36 extends BaseArgType = T>(m: BaseArgType, s: number, dst?: T_36 | undefined) => T_36; |
| 8 | +/** |
| 9 | + * Generates a typed API for Mat4 |
| 10 | + * */ |
| 11 | +declare function getAPIImpl<MatType extends Mat4Arg = Float32Array>(Ctor: Mat4Ctor<MatType>): { |
| 12 | + add: <T extends Mat4Arg = MatType>(a: Mat4Arg, b: Mat4Arg, dst?: T) => T; |
| 13 | + aim: <T extends Mat4Arg = MatType>(position: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T) => T; |
| 14 | + axisRotate: <T extends Mat4Arg = MatType>(m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T) => T; |
| 15 | + axisRotation: <T extends Mat4Arg = MatType>(axis: Vec3Arg, angleInRadians: number, dst?: T) => T; |
| 16 | + cameraAim: <T extends Mat4Arg = MatType>(eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T) => T; |
| 17 | + clone: <T extends Mat4Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 18 | + copy: <T extends Mat4Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 19 | + create: (v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number, v8?: number, v9?: number, v10?: number, v11?: number, v12?: number, v13?: number, v14?: number, v15?: number) => MatType; |
| 20 | + determinant: (m: Mat4Arg) => number; |
| 21 | + equals: (a: Mat4Arg, b: Mat4Arg) => boolean; |
| 22 | + equalsApproximately: (a: Mat4Arg, b: Mat4Arg) => boolean; |
| 23 | + fromMat3: <T extends Mat4Arg = MatType>(m3: Mat3Arg, dst?: T) => T; |
| 24 | + fromQuat: <T extends Mat4Arg = MatType>(q: QuatArg, dst?: T) => T; |
| 25 | + frustum: <T extends Mat4Arg = MatType>(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T) => T; |
| 26 | + frustumReverseZ: <T extends Mat4Arg = MatType>(left: number, right: number, bottom: number, top: number, near: number, far?: number, dst?: T) => T; |
| 27 | + getAxis: <T extends Vec3Arg = MatType>(m: Mat4Arg, axis: number, dst?: T) => MatType | T; |
| 28 | + getScaling: <T extends Vec3Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 29 | + getTranslation: <T extends Vec3Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 30 | + identity: <T extends Mat4Arg = MatType>(dst?: T) => T; |
| 31 | + inverse: <T extends Mat4Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 32 | + invert: <T extends Mat4Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 33 | + lookAt: <T extends Mat4Arg = MatType>(eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T) => T; |
| 34 | + mul: <T extends Mat4Arg = MatType>(a: Mat4Arg, b: Mat4Arg, dst?: T) => T; |
| 35 | + mulScalar: <T extends Mat4Arg = MatType>(m: Mat4Arg, s: number, dst?: T) => T; |
| 36 | + multiply: <T extends Mat4Arg = MatType>(a: Mat4Arg, b: Mat4Arg, dst?: T) => T; |
| 37 | + multiplyScalar: <T extends Mat4Arg = MatType>(m: Mat4Arg, s: number, dst?: T) => T; |
| 38 | + negate: <T extends Mat4Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 39 | + ortho: <T extends Mat4Arg = MatType>(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T) => T; |
| 40 | + perspective: <T extends Mat4Arg = MatType>(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar: number, dst?: T) => T; |
| 41 | + perspectiveReverseZ: <T extends Mat4Arg = MatType>(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar?: number, dst?: T) => T; |
| 42 | + rotate: <T extends Mat4Arg = MatType>(m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T) => T; |
| 43 | + rotateX: <T extends Mat4Arg = MatType>(m: Mat4Arg, angleInRadians: number, dst?: T) => T; |
| 44 | + rotateY: <T extends Mat4Arg = MatType>(m: Mat4Arg, angleInRadians: number, dst?: T) => T; |
| 45 | + rotateZ: <T extends Mat4Arg = MatType>(m: Mat4Arg, angleInRadians: number, dst?: T) => T; |
| 46 | + rotation: <T extends Mat4Arg = MatType>(axis: Vec3Arg, angleInRadians: number, dst?: T) => T; |
| 47 | + rotationX: <T extends Mat4Arg = MatType>(angleInRadians: number, dst?: T) => T; |
| 48 | + rotationY: <T extends Mat4Arg = MatType>(angleInRadians: number, dst?: T) => T; |
| 49 | + rotationZ: <T extends Mat4Arg = MatType>(angleInRadians: number, dst?: T) => T; |
| 50 | + scale: <T extends Mat4Arg = MatType>(m: Mat4Arg, v: Vec3Arg, dst?: T) => T; |
| 51 | + scaling: <T extends Mat4Arg = MatType>(v: Vec3Arg, dst?: T) => T; |
| 52 | + set: <T extends Mat4Arg = MatType>(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number, dst?: T) => T; |
| 53 | + setAxis: <T extends Mat4Arg = MatType>(m: Mat4Arg, v: Vec3Arg, axis: number, dst: T) => T; |
| 54 | + setTranslation: <T extends Mat4Arg = MatType>(a: Mat4Arg, v: Vec3Arg, dst?: T) => T; |
| 55 | + translate: <T extends Mat4Arg = MatType>(m: Mat4Arg, v: Vec3Arg, dst?: T) => T; |
| 56 | + translation: <T extends Mat4Arg = MatType>(v: Vec3Arg, dst?: T) => T; |
| 57 | + transpose: <T extends Mat4Arg = MatType>(m: Mat4Arg, dst?: T) => T; |
| 58 | + uniformScale: <T extends Mat4Arg = MatType>(m: Mat4Arg, s: number, dst?: T) => T; |
| 59 | + uniformScaling: <T extends Mat4Arg = MatType>(s: number, dst?: T) => T; |
51 | 60 | }; |
| 61 | +type API<T extends BaseArgType = Float32Array> = ReturnType<typeof getAPIImpl<T>>; |
| 62 | +export declare function getAPI<T extends Mat4Arg = Float32Array>(Ctor: Mat4Ctor<T>): API<T>; |
0 commit comments