world.ts 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +48 -0
- package/.prettierrc +3 -0
- package/dist/assets/image-load-worker-nFfjtK8d.js +2 -0
- package/dist/assets/image-load-worker-nFfjtK8d.js.map +1 -0
- package/dist/buffer.d.ts +14 -0
- package/dist/common.d.ts +2 -0
- package/dist/constants.d.ts +1 -0
- package/dist/control.d.ts +5 -0
- package/dist/depth-buffer.d.ts +13 -0
- package/dist/elevation.d.ts +13 -0
- package/dist/image-load-worker.d.ts +1 -0
- package/dist/image-load.d.ts +11 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1535 -0
- package/dist/index.js.js +1535 -0
- package/dist/index.js.js.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/layers/index.d.ts +36 -0
- package/dist/layers/line/index.d.ts +18 -0
- package/dist/layers/mesh/index.d.ts +4 -0
- package/dist/layers/terrain/image-texture.d.ts +11 -0
- package/dist/layers/terrain/index.d.ts +13 -0
- package/dist/layers/terrain/texture.d.ts +10 -0
- package/dist/layers/terrain/tile-cache.d.ts +14 -0
- package/dist/layers/terrain/tile-downsampler.d.ts +16 -0
- package/dist/layers/terrain/tile-index-cache.d.ts +21 -0
- package/dist/layers/terrain/tile-shapes.d.ts +8 -0
- package/dist/layers/utils.d.ts +3 -0
- package/dist/math.d.ts +7 -0
- package/dist/program.d.ts +76 -0
- package/dist/subscriber.d.ts +1 -0
- package/dist/viewport.d.ts +24 -0
- package/dist/world.d.ts +59 -0
- package/package.json +29 -0
- package/src/buffer.ts +36 -0
- package/src/common.ts +13 -0
- package/src/constants.ts +1 -0
- package/src/control.ts +83 -0
- package/src/depth-buffer.ts +92 -0
- package/src/elevation.ts +75 -0
- package/src/glsl.d.ts +4 -0
- package/src/image-load-worker.ts +32 -0
- package/src/image-load.ts +41 -0
- package/src/index.ts +1 -0
- package/src/layers/depth.glsl +22 -0
- package/src/layers/index.ts +38 -0
- package/src/layers/line/fragment.glsl +10 -0
- package/src/layers/line/index.ts +261 -0
- package/src/layers/line/vertex.glsl +63 -0
- package/src/layers/mesh/fragment.glsl +10 -0
- package/src/layers/mesh/index.ts +258 -0
- package/src/layers/mesh/vertex.glsl +35 -0
- package/src/layers/terrain/fragment.glsl +11 -0
- package/src/layers/terrain/image-texture.ts +53 -0
- package/src/layers/terrain/index.ts +307 -0
- package/src/layers/terrain/texture.ts +27 -0
- package/src/layers/terrain/tile-cache.ts +73 -0
- package/src/layers/terrain/tile-downsampler.ts +36 -0
- package/src/layers/terrain/tile-index-cache.ts +44 -0
- package/src/layers/terrain/tile-shapes.ts +45 -0
- package/src/layers/terrain/vertex.glsl +34 -0
- package/src/layers/utils.ts +5 -0
- package/src/math.ts +39 -0
- package/src/program.ts +200 -0
- package/src/subscriber.ts +17 -0
- package/src/viewport.ts +132 -0
- package/src/world.ts +192 -0
- package/tsconfig.json +13 -0
- package/vite.config.ts +18 -0
package/.eslintrc
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"root": true,
|
|
3
|
+
"parser": "@typescript-eslint/parser",
|
|
4
|
+
"parserOptions": {
|
|
5
|
+
"project": "tsconfig.json"
|
|
6
|
+
},
|
|
7
|
+
"extends": [
|
|
8
|
+
"eslint:recommended",
|
|
9
|
+
"plugin:@typescript-eslint/recommended",
|
|
10
|
+
"plugin:prettier/recommended"
|
|
11
|
+
],
|
|
12
|
+
"plugins": [
|
|
13
|
+
"@typescript-eslint",
|
|
14
|
+
"prettier",
|
|
15
|
+
"no-async-without-await",
|
|
16
|
+
"simple-import-sort",
|
|
17
|
+
"unused-imports"
|
|
18
|
+
],
|
|
19
|
+
"rules": {
|
|
20
|
+
"arrow-body-style": ["error", "as-needed"],
|
|
21
|
+
"curly": ["error", "multi"],
|
|
22
|
+
"no-constant-condition": "off",
|
|
23
|
+
"object-shorthand": ["error", "always"],
|
|
24
|
+
"prefer-arrow-callback": "error",
|
|
25
|
+
"prefer-destructuring": "error",
|
|
26
|
+
"func-style": ["error", "expression"],
|
|
27
|
+
"quotes": [
|
|
28
|
+
"error",
|
|
29
|
+
"double",
|
|
30
|
+
{ "avoidEscape": true, "allowTemplateLiterals": false }
|
|
31
|
+
],
|
|
32
|
+
"require-await": "error",
|
|
33
|
+
"eqeqeq": "error",
|
|
34
|
+
"no-useless-rename": "error",
|
|
35
|
+
"@typescript-eslint/await-thenable": "error",
|
|
36
|
+
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
37
|
+
"@typescript-eslint/no-floating-promises": "error",
|
|
38
|
+
"@typescript-eslint/no-unnecessary-condition": ["error"],
|
|
39
|
+
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
|
40
|
+
"@typescript-eslint/consistent-type-imports": "error",
|
|
41
|
+
"@typescript-eslint/no-unsafe-declaration-merging": "error",
|
|
42
|
+
"@typescript-eslint/no-unsafe-enum-comparison": "error",
|
|
43
|
+
"no-async-without-await/no-async-without-await": "error",
|
|
44
|
+
"simple-import-sort/imports": "error",
|
|
45
|
+
"simple-import-sort/exports": "error",
|
|
46
|
+
"unused-imports/no-unused-imports": "error"
|
|
47
|
+
}
|
|
48
|
+
}
|
package/.prettierrc
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(function(){"use strict";addEventListener("message",async n=>{const[i,t]=n.data;if(i!=="load")return;const o=new AbortController,{signal:c}=o,r=e=>{const[a,s]=e.data;a==="cancel"&&s===t&&o.abort()};addEventListener("message",r);try{const e=await fetch(t,{mode:"cors",signal:c});if(!e.ok){postMessage({url:t,image:void 0});return}const a=await e.blob(),s=await createImageBitmap(a);postMessage({url:t,image:s})}catch(e){if(!(e instanceof Error&&e.message==="The user aborted a request."))throw e}finally{removeEventListener("message",r)}})})();
|
|
2
|
+
//# sourceMappingURL=image-load-worker-nFfjtK8d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-load-worker-nFfjtK8d.js","sources":["../src/image-load-worker.ts"],"sourcesContent":["export type Data = [\"load\" | \"cancel\", string];\n\naddEventListener(\"message\", async event => {\n const [action, url] = event.data as Data;\n if (action !== \"load\") return;\n const abortController = new AbortController();\n const { signal } = abortController;\n const handler = (event: MessageEvent) => {\n const [action, thisUrl] = event.data as Data;\n if (action === \"cancel\" && thisUrl === url) abortController.abort();\n };\n addEventListener(\"message\", handler);\n try {\n const response = await fetch(url, { mode: \"cors\", signal });\n if (!response.ok) {\n postMessage({ url, image: undefined });\n return;\n }\n const blob = await response.blob();\n const image = await createImageBitmap(blob);\n postMessage({ url, image });\n } catch (error) {\n if (\n error instanceof Error &&\n error.message === \"The user aborted a request.\"\n ) {\n // Ignore\n } else throw error;\n } finally {\n removeEventListener(\"message\", handler);\n }\n});\n"],"names":["event","action","url","abortController","signal","handler","thisUrl","response","blob","image","error"],"mappings":"yBAEA,iBAAiB,UAAW,MAAMA,GAAS,CACzC,KAAM,CAACC,EAAQC,CAAG,EAAIF,EAAM,KAC5B,GAAIC,IAAW,OAAQ,OACjB,MAAAE,EAAkB,IAAI,gBACtB,CAAE,OAAAC,CAAW,EAAAD,EACbE,EAAWL,GAAwB,CACvC,KAAM,CAACC,EAAQK,CAAO,EAAIN,EAAM,KAC5BC,IAAW,UAAYK,IAAYJ,GAAKC,EAAgB,MAAM,CAAA,EAEpE,iBAAiB,UAAWE,CAAO,EAC/B,GAAA,CACI,MAAAE,EAAW,MAAM,MAAML,EAAK,CAAE,KAAM,OAAQ,OAAAE,EAAQ,EACtD,GAAA,CAACG,EAAS,GAAI,CAChB,YAAY,CAAE,IAAAL,EAAK,MAAO,MAAW,CAAA,EACrC,MACF,CACM,MAAAM,EAAO,MAAMD,EAAS,OACtBE,EAAQ,MAAM,kBAAkBD,CAAI,EAC9B,YAAA,CAAE,IAAAN,EAAK,MAAAO,CAAA,CAAO,QACnBC,EAAO,CACd,GACE,EAAAA,aAAiB,OACjBA,EAAM,UAAY,+BAGP,MAAAA,CAAA,QACb,CACA,oBAAoB,UAAWL,CAAO,CACxC,CACF,CAAC"}
|
package/dist/buffer.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type Buffer = {
|
|
2
|
+
set: (value: number[]) => void;
|
|
3
|
+
use: () => void;
|
|
4
|
+
destroy: () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const createBuffer: ({ gl, type, target, }: {
|
|
7
|
+
gl: WebGL2RenderingContext;
|
|
8
|
+
type: "f32" | "u16";
|
|
9
|
+
target: "array" | "element";
|
|
10
|
+
}) => {
|
|
11
|
+
set: (value: number[]) => void;
|
|
12
|
+
use: () => void;
|
|
13
|
+
destroy: () => void;
|
|
14
|
+
};
|
package/dist/common.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const circumference = 40075017;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { vec2 } from "gl-matrix";
|
|
2
|
+
export type DepthBuffer = {
|
|
3
|
+
use: () => void;
|
|
4
|
+
resize: (size: vec2) => void;
|
|
5
|
+
read: (pixel: vec2) => readonly [z: number, n: number];
|
|
6
|
+
destroy: () => void;
|
|
7
|
+
};
|
|
8
|
+
export declare const createDepthBuffer: (gl: WebGL2RenderingContext) => {
|
|
9
|
+
use: () => void;
|
|
10
|
+
resize: ([width, _height]: vec2) => void;
|
|
11
|
+
read: ([x, y]: vec2) => readonly [number, number];
|
|
12
|
+
destroy: () => void;
|
|
13
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { vec2 } from "gl-matrix";
|
|
2
|
+
import type { TileCache } from "./layers/terrain/tile-cache";
|
|
3
|
+
export type Elevation = {
|
|
4
|
+
get: ([lng, lat]: vec2, z?: number) => number;
|
|
5
|
+
destroy: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const createElevation: ({ gl, terrainCache, }: {
|
|
8
|
+
gl: WebGL2RenderingContext;
|
|
9
|
+
terrainCache: TileCache;
|
|
10
|
+
}) => {
|
|
11
|
+
get: ([lng, lat]: vec2, z?: number) => number;
|
|
12
|
+
destroy: () => void;
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Data = ["load" | "cancel", string];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ImageLoad = {
|
|
2
|
+
loaded: boolean;
|
|
3
|
+
cancel: () => void;
|
|
4
|
+
};
|
|
5
|
+
export declare const createImageLoad: ({ url, onLoad, }: {
|
|
6
|
+
url: string;
|
|
7
|
+
onLoad: (image: ImageBitmap | undefined) => void;
|
|
8
|
+
}) => {
|
|
9
|
+
readonly loaded: boolean;
|
|
10
|
+
cancel: () => void;
|
|
11
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./world";
|