react-three-map 0.7.2 → 0.8.1
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/CHANGELOG.md +16 -0
- package/README.md +57 -4
- package/dist/cjs/main.js +386 -181
- package/dist/es/main.mjs +9 -3
- package/dist/es/main.mjs.map +1 -1
- package/dist/es/main10.mjs +8 -20
- package/dist/es/main10.mjs.map +1 -1
- package/dist/es/main11.mjs +33 -19
- package/dist/es/main11.mjs.map +1 -1
- package/dist/es/main12.mjs +11 -87
- package/dist/es/main12.mjs.map +1 -1
- package/dist/es/main13.mjs +23 -9
- package/dist/es/main13.mjs.map +1 -1
- package/dist/es/main14.mjs +2 -68
- package/dist/es/main14.mjs.map +1 -1
- package/dist/es/main15.mjs +33 -0
- package/dist/es/main15.mjs.map +1 -0
- package/dist/es/main16.mjs +26 -0
- package/dist/es/main16.mjs.map +1 -0
- package/dist/es/main17.mjs +98 -0
- package/dist/es/main17.mjs.map +1 -0
- package/dist/es/main18.mjs +66 -0
- package/dist/es/main18.mjs.map +1 -0
- package/dist/es/main19.mjs +23 -0
- package/dist/es/main19.mjs.map +1 -0
- package/dist/es/main2.mjs.map +1 -1
- package/dist/es/main20.mjs +27 -0
- package/dist/es/main20.mjs.map +1 -0
- package/dist/es/main21.mjs +19 -0
- package/dist/es/main21.mjs.map +1 -0
- package/dist/es/main22.mjs +83 -0
- package/dist/es/main22.mjs.map +1 -0
- package/dist/es/main3.mjs +43 -50
- package/dist/es/main3.mjs.map +1 -1
- package/dist/es/main4.mjs +50 -24
- package/dist/es/main4.mjs.map +1 -1
- package/dist/es/main5.mjs +12 -3
- package/dist/es/main5.mjs.map +1 -1
- package/dist/es/main6.mjs +19 -34
- package/dist/es/main6.mjs.map +1 -1
- package/dist/es/main7.mjs +10 -11
- package/dist/es/main7.mjs.map +1 -1
- package/dist/es/main8.mjs +17 -16
- package/dist/es/main8.mjs.map +1 -1
- package/dist/es/main9.mjs +27 -15
- package/dist/es/main9.mjs.map +1 -1
- package/dist/maplibre/cjs/main.js +386 -181
- package/dist/maplibre/es/main.mjs +9 -3
- package/dist/maplibre/es/main.mjs.map +1 -1
- package/dist/maplibre/es/main10.mjs +9 -20
- package/dist/maplibre/es/main10.mjs.map +1 -1
- package/dist/maplibre/es/main11.mjs +33 -14
- package/dist/maplibre/es/main11.mjs.map +1 -1
- package/dist/maplibre/es/main12.mjs +11 -87
- package/dist/maplibre/es/main12.mjs.map +1 -1
- package/dist/maplibre/es/main13.mjs +23 -9
- package/dist/maplibre/es/main13.mjs.map +1 -1
- package/dist/maplibre/es/main14.mjs +2 -68
- package/dist/maplibre/es/main14.mjs.map +1 -1
- package/dist/maplibre/es/main15.mjs +33 -0
- package/dist/maplibre/es/main15.mjs.map +1 -0
- package/dist/maplibre/es/main16.mjs +26 -0
- package/dist/maplibre/es/main16.mjs.map +1 -0
- package/dist/maplibre/es/main17.mjs +98 -0
- package/dist/maplibre/es/main17.mjs.map +1 -0
- package/dist/maplibre/es/main18.mjs +66 -0
- package/dist/maplibre/es/main18.mjs.map +1 -0
- package/dist/maplibre/es/main19.mjs +23 -0
- package/dist/maplibre/es/main19.mjs.map +1 -0
- package/dist/maplibre/es/main2.mjs.map +1 -1
- package/dist/maplibre/es/main20.mjs +27 -0
- package/dist/maplibre/es/main20.mjs.map +1 -0
- package/dist/maplibre/es/main21.mjs +19 -0
- package/dist/maplibre/es/main21.mjs.map +1 -0
- package/dist/maplibre/es/main22.mjs +83 -0
- package/dist/maplibre/es/main22.mjs.map +1 -0
- package/dist/maplibre/es/main3.mjs +43 -50
- package/dist/maplibre/es/main3.mjs.map +1 -1
- package/dist/maplibre/es/main4.mjs +50 -24
- package/dist/maplibre/es/main4.mjs.map +1 -1
- package/dist/maplibre/es/main5.mjs +12 -3
- package/dist/maplibre/es/main5.mjs.map +1 -1
- package/dist/maplibre/es/main6.mjs +19 -34
- package/dist/maplibre/es/main6.mjs.map +1 -1
- package/dist/maplibre/es/main7.mjs +10 -11
- package/dist/maplibre/es/main7.mjs.map +1 -1
- package/dist/maplibre/es/main8.mjs +17 -16
- package/dist/maplibre/es/main8.mjs.map +1 -1
- package/dist/maplibre/es/main9.mjs +25 -19
- package/dist/maplibre/es/main9.mjs.map +1 -1
- package/dist/maplibre/types/api/canvas-props.d.ts +4 -4
- package/dist/maplibre/types/api/coords-to-vector-3.d.ts +3 -0
- package/dist/maplibre/types/api/coords.d.ts +5 -0
- package/dist/maplibre/types/api/index.d.ts +6 -0
- package/dist/maplibre/types/api/near-coordinates.d.ts +3 -0
- package/dist/maplibre/types/api/use-map.d.ts +1 -1
- package/dist/maplibre/types/api/vector-3-to-coords.d.ts +3 -0
- package/dist/maplibre/types/core/canvas-in-layer/use-canvas-in-layer.d.ts +11 -0
- package/dist/maplibre/types/core/canvas-in-layer/use-render.d.ts +12 -0
- package/dist/maplibre/types/core/canvas-in-layer/use-root.d.ts +7 -0
- package/dist/maplibre/types/core/canvas-overlay/canvas-portal.d.ts +11 -0
- package/dist/maplibre/types/core/canvas-overlay/init-canvas-fc.d.ts +12 -0
- package/dist/maplibre/types/core/canvas-overlay/init-r3m.d.ts +10 -0
- package/dist/maplibre/types/core/canvas-overlay/render.d.ts +1 -0
- package/dist/maplibre/types/core/canvas-overlay/sync-camera-fc.d.ts +14 -0
- package/dist/maplibre/types/core/coords-to-matrix.d.ts +2 -4
- package/dist/maplibre/types/core/earth-radius.d.ts +1 -0
- package/dist/maplibre/types/core/events.d.ts +4 -0
- package/dist/maplibre/types/core/use-coords-to-matrix.d.ts +5 -0
- package/dist/maplibre/types/core/use-coords.d.ts +7 -5
- package/dist/maplibre/types/core/use-r3m.d.ts +22 -0
- package/dist/maplibre/types/{maplibre → mapbox}/canvas.d.ts +1 -1
- package/dist/maplibre/types/maplibre.index.d.ts +3 -4
- package/dist/types/api/canvas-props.d.ts +4 -4
- package/dist/types/api/coords-to-vector-3.d.ts +3 -0
- package/dist/types/api/coords.d.ts +5 -0
- package/dist/types/api/index.d.ts +6 -0
- package/dist/types/api/near-coordinates.d.ts +3 -0
- package/dist/types/api/use-map.d.ts +1 -1
- package/dist/types/api/vector-3-to-coords.d.ts +3 -0
- package/dist/types/core/canvas-in-layer/use-canvas-in-layer.d.ts +11 -0
- package/dist/types/core/canvas-in-layer/use-render.d.ts +12 -0
- package/dist/types/core/canvas-in-layer/use-root.d.ts +7 -0
- package/dist/types/core/canvas-overlay/canvas-portal.d.ts +11 -0
- package/dist/types/core/canvas-overlay/init-canvas-fc.d.ts +12 -0
- package/dist/types/core/canvas-overlay/init-r3m.d.ts +10 -0
- package/dist/types/core/canvas-overlay/render.d.ts +1 -0
- package/dist/types/core/canvas-overlay/sync-camera-fc.d.ts +14 -0
- package/dist/types/core/coords-to-matrix.d.ts +2 -4
- package/dist/types/core/earth-radius.d.ts +1 -0
- package/dist/types/core/events.d.ts +4 -0
- package/dist/types/core/use-coords-to-matrix.d.ts +5 -0
- package/dist/types/core/use-coords.d.ts +7 -5
- package/dist/types/core/use-r3m.d.ts +22 -0
- package/dist/types/mapbox.index.d.ts +2 -3
- package/package.json +12 -12
- package/stories/package.json +15 -8
- package/stories/yarn.lock +2033 -1194
- package/vitest.config.ts +1 -5
- package/dist/maplibre/types/core/create-events.d.ts +0 -3
- package/dist/maplibre/types/core/store.d.ts +0 -12
- package/dist/maplibre/types/core/use-canvas.d.ts +0 -11
- package/dist/maplibre/types/core/use-create-root.d.ts +0 -13
- package/dist/maplibre/types/core/use-on-add.d.ts +0 -10
- package/dist/maplibre/types/core/use-render.d.ts +0 -4
- package/dist/types/core/create-events.d.ts +0 -3
- package/dist/types/core/store.d.ts +0 -12
- package/dist/types/core/use-canvas.d.ts +0 -11
- package/dist/types/core/use-create-root.d.ts +0 -13
- package/dist/types/core/use-on-add.d.ts +0 -10
- package/dist/types/core/use-render.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main7.mjs","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"main7.mjs","sources":["../../../src/api/vector-3-to-coords.ts"],"sourcesContent":["import { MathUtils, Vector3Tuple } from \"three\";\nimport { Coords } from \"./coords\";\nimport { earthRadius } from \"../core/earth-radius\";\n\nexport function vector3ToCoords(position: Vector3Tuple, origin: Coords): Coords {\n const [x, y, z] = position;\n const latitude = origin.latitude + (-z / earthRadius) * MathUtils.RAD2DEG;\n const longitude = origin.longitude + (x / earthRadius) * MathUtils.RAD2DEG / Math.cos(origin.latitude * MathUtils.DEG2RAD);\n const altitude = (origin.altitude || 0) + y;\n const coords: Coords = { latitude, longitude, altitude };\n return coords;\n}"],"names":[],"mappings":";;AAIgB,SAAA,gBAAgB,UAAwB,QAAwB;AAC9E,QAAM,CAAC,GAAG,GAAG,CAAC,IAAI;AAClB,QAAM,WAAW,OAAO,WAAY,CAAC,IAAI,cAAe,UAAU;AAClE,QAAM,YAAY,OAAO,YAAa,IAAI,cAAe,UAAU,UAAU,KAAK,IAAI,OAAO,WAAW,UAAU,OAAO;AACnH,QAAA,YAAY,OAAO,YAAY,KAAK;AAC1C,QAAM,SAAiB,EAAE,UAAU,WAAW,SAAS;AAChD,SAAA;AACT;"}
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
function
|
|
5
|
-
longitude,
|
|
6
|
-
|
|
7
|
-
altitude = 0,
|
|
8
|
-
frameloop = "always",
|
|
9
|
-
fromLngLat,
|
|
10
|
-
...renderProps
|
|
11
|
-
}) {
|
|
12
|
-
const m4 = useCoords({
|
|
1
|
+
import { useCoordsToMatrix } from "./main12.mjs";
|
|
2
|
+
import { useRender } from "./main16.mjs";
|
|
3
|
+
import { useRoot } from "./main17.mjs";
|
|
4
|
+
function useCanvasInLayer(props, fromLngLat, map) {
|
|
5
|
+
const { latitude, longitude, altitude, frameloop } = props;
|
|
6
|
+
const origin = useCoordsToMatrix({
|
|
13
7
|
latitude,
|
|
14
8
|
longitude,
|
|
15
9
|
altitude,
|
|
16
10
|
fromLngLat
|
|
17
11
|
});
|
|
18
|
-
const {
|
|
19
|
-
const render = useRender(
|
|
20
|
-
return {
|
|
12
|
+
const { onRemove, useThree, r3m } = useRoot(fromLngLat, map, props);
|
|
13
|
+
const render = useRender({ origin, frameloop, useThree, map, r3m });
|
|
14
|
+
return {
|
|
15
|
+
id: props.id,
|
|
16
|
+
beforeId: props.beforeId,
|
|
17
|
+
onRemove,
|
|
18
|
+
render,
|
|
19
|
+
type: "custom",
|
|
20
|
+
renderingMode: "3d"
|
|
21
|
+
};
|
|
21
22
|
}
|
|
22
23
|
export {
|
|
23
|
-
|
|
24
|
+
useCanvasInLayer
|
|
24
25
|
};
|
|
25
26
|
//# sourceMappingURL=main8.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main8.mjs","sources":["../../../src/core/use-canvas.
|
|
1
|
+
{"version":3,"file":"main8.mjs","sources":["../../../src/core/canvas-in-layer/use-canvas-in-layer.tsx"],"sourcesContent":["import { CanvasProps } from \"../../api/canvas-props\";\nimport { FromLngLat, MapInstance } from \"../generic-map\";\nimport { useCoordsToMatrix } from \"../use-coords-to-matrix\";\nimport { useRender } from \"./use-render\";\nimport { useRoot } from \"./use-root\";\n\n/** get all the properties that you need to render as a map `<Layer>` */\nexport function useCanvasInLayer(props: CanvasProps,fromLngLat: FromLngLat, map: MapInstance) {\n\n const {latitude, longitude, altitude, frameloop } = props;\n\n const origin = useCoordsToMatrix({\n latitude, longitude, altitude, fromLngLat,\n });\n\n const { onRemove, useThree, r3m } = useRoot(fromLngLat, map, props);\n \n const render = useRender({origin, frameloop, useThree, map, r3m});\n \n return {\n id: props.id,\n beforeId: props.beforeId,\n onRemove,\n render,\n type: 'custom',\n renderingMode: '3d'\n } as const\n\n}"],"names":[],"mappings":";;;AAOgB,SAAA,iBAAiB,OAAmB,YAAwB,KAAkB;AAE5F,QAAM,EAAC,UAAU,WAAW,UAAU,cAAc;AAElD,QAAM,SAAS,kBAAkB;AAAA,IAC/B;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,EAAA,CAChC;AAEK,QAAA,EAAE,UAAU,UAAU,IAAA,IAAQ,QAAQ,YAAY,KAAK,KAAK;AAE5D,QAAA,SAAS,UAAU,EAAC,QAAQ,WAAW,UAAU,KAAK,KAAI;AAEzD,SAAA;AAAA,IACL,IAAI,MAAM;AAAA,IACV,UAAU,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,eAAe;AAAA,EAAA;AAGrB;"}
|
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
import { jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
import { memo, useState, useEffect } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { CanvasPortal } from "./main18.mjs";
|
|
5
|
+
const InitCanvasFC = memo((props) => {
|
|
6
|
+
const canvas = props.map.getCanvas();
|
|
7
|
+
const [el] = useState(() => {
|
|
8
|
+
const el2 = document.createElement("div");
|
|
9
|
+
el2.style.position = "absolute";
|
|
10
|
+
el2.style.top = "0";
|
|
11
|
+
el2.style.bottom = "0";
|
|
12
|
+
el2.style.left = "0";
|
|
13
|
+
el2.style.right = "0";
|
|
14
|
+
el2.style.pointerEvents = "none";
|
|
15
|
+
return el2;
|
|
16
|
+
});
|
|
12
17
|
useEffect(() => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}, [
|
|
19
|
-
return
|
|
20
|
-
};
|
|
18
|
+
const parent = canvas.parentElement;
|
|
19
|
+
parent.appendChild(el);
|
|
20
|
+
return () => {
|
|
21
|
+
parent.removeChild(el);
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
24
|
+
return /* @__PURE__ */ jsx(Fragment, { children: createPortal(/* @__PURE__ */ jsx(CanvasPortal, { ...props }), el) });
|
|
25
|
+
});
|
|
26
|
+
InitCanvasFC.displayName = "InitCanvasFC";
|
|
21
27
|
export {
|
|
22
|
-
|
|
28
|
+
InitCanvasFC
|
|
23
29
|
};
|
|
24
30
|
//# sourceMappingURL=main9.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main9.mjs","sources":["../../../src/core/
|
|
1
|
+
{"version":3,"file":"main9.mjs","sources":["../../../src/core/canvas-overlay/init-canvas-fc.tsx"],"sourcesContent":["import { memo, useEffect, useState } from \"react\";\nimport { createPortal } from 'react-dom';\nimport { Matrix4Tuple } from \"three\";\nimport { CanvasProps } from \"../../api/canvas-props\";\nimport { FromLngLat, MapInstance } from \"../generic-map\";\nimport { CanvasPortal } from \"./canvas-portal\";\n\ninterface InitCanvasFCProps extends CanvasProps {\n map: MapInstance,\n setOnRender: (callback: () => (mx: Matrix4Tuple) => void) => void,\n frameloop?: 'always' | 'demand',\n fromLngLat: FromLngLat,\n}\nexport const InitCanvasFC = memo<InitCanvasFCProps>((props) => {\n const canvas = props.map.getCanvas() // eslint-disable-line @typescript-eslint/no-non-null-assertion\n\n const [el] = useState(() => {\n const el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0';\n el.style.bottom = '0';\n el.style.left = '0';\n el.style.right = '0';\n el.style.pointerEvents = 'none';\n return el\n })\n\n useEffect(() => {\n const parent = canvas.parentElement!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\n parent.appendChild(el);\n return () => {\n parent.removeChild(el);\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n return <>\n {createPortal((\n <CanvasPortal {...props} />\n ), el)}\n </>\n})\nInitCanvasFC.displayName = 'InitCanvasFC';\n"],"names":["el"],"mappings":";;;;AAaa,MAAA,eAAe,KAAwB,CAAC,UAAU;AACvD,QAAA,SAAS,MAAM,IAAI,UAAU;AAEnC,QAAM,CAAC,EAAE,IAAI,SAAS,MAAM;AACpBA,UAAAA,MAAK,SAAS,cAAc,KAAK;AACvCA,QAAG,MAAM,WAAW;AACpBA,QAAG,MAAM,MAAM;AACfA,QAAG,MAAM,SAAS;AAClBA,QAAG,MAAM,OAAO;AAChBA,QAAG,MAAM,QAAQ;AACjBA,QAAG,MAAM,gBAAgB;AAClBA,WAAAA;AAAAA,EAAA,CACR;AAED,YAAU,MAAM;AACd,UAAM,SAAS,OAAO;AACtB,WAAO,YAAY,EAAE;AACrB,WAAO,MAAM;AACX,aAAO,YAAY,EAAE;AAAA,IAAA;AAAA,EAEzB,GAAG,CAAE,CAAA;AACE,SAAA,oBAAA,UAAA,EACJ,uBACE,oBAAA,cAAA,EAAc,GAAG,MAAO,CAAA,GACxB,EAAE,EACP,CAAA;AACF,CAAC;AACD,aAAa,cAAc;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { RenderProps } from "@react-three/fiber";
|
|
2
2
|
import { PropsWithChildren } from "react";
|
|
3
|
-
|
|
3
|
+
import { Coords } from "./coords";
|
|
4
|
+
export interface CanvasProps extends Coords, Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {
|
|
4
5
|
id?: string;
|
|
5
6
|
beforeId?: string;
|
|
6
|
-
longitude: number;
|
|
7
|
-
latitude: number;
|
|
8
|
-
altitude?: number;
|
|
9
7
|
frameloop?: 'always' | 'demand';
|
|
8
|
+
/** render on a separated `<canvas>` that sits on top of the map provider */
|
|
9
|
+
overlay?: boolean;
|
|
10
10
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MapInstance } from "../core/generic-map";
|
|
2
|
-
export declare const useMap: <T extends MapInstance = MapInstance>() => T
|
|
2
|
+
export declare const useMap: <T extends MapInstance = MapInstance>() => T;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
2
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
3
|
+
/** get all the properties that you need to render as a map `<Layer>` */
|
|
4
|
+
export declare function useCanvasInLayer(props: CanvasProps, fromLngLat: FromLngLat, map: MapInstance): {
|
|
5
|
+
readonly id: string | undefined;
|
|
6
|
+
readonly beforeId: string | undefined;
|
|
7
|
+
readonly onRemove: () => void;
|
|
8
|
+
readonly render: (_gl: WebGL2RenderingContext, projViewMx: number[]) => void;
|
|
9
|
+
readonly type: "custom";
|
|
10
|
+
readonly renderingMode: "3d";
|
|
11
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RootState } from "@react-three/fiber";
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { UseBoundStore } from "zustand";
|
|
4
|
+
import { MapInstance } from "../generic-map";
|
|
5
|
+
import { R3M } from "../use-r3m";
|
|
6
|
+
export declare function useRender({ map, origin, useThree, frameloop, r3m, }: {
|
|
7
|
+
map: MapInstance;
|
|
8
|
+
origin: Matrix4Tuple;
|
|
9
|
+
useThree: UseBoundStore<RootState>;
|
|
10
|
+
frameloop?: 'always' | 'demand';
|
|
11
|
+
r3m: R3M;
|
|
12
|
+
}): (_gl: WebGL2RenderingContext, projViewMx: number[]) => void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
2
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
3
|
+
export declare function useRoot(fromLngLat: FromLngLat, map: MapInstance, { frameloop, longitude, latitude, altitude, ...props }: CanvasProps): {
|
|
4
|
+
onRemove: () => void;
|
|
5
|
+
useThree: import("zustand").UseBoundStore<import("@react-three/fiber").RootState>;
|
|
6
|
+
r3m: import("../use-r3m").R3M<MapInstance>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
4
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
5
|
+
interface CanvasPortalProps extends CanvasProps {
|
|
6
|
+
setOnRender: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
7
|
+
map: MapInstance;
|
|
8
|
+
fromLngLat: FromLngLat;
|
|
9
|
+
}
|
|
10
|
+
export declare const CanvasPortal: import("react").NamedExoticComponent<CanvasPortalProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
4
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
5
|
+
interface InitCanvasFCProps extends CanvasProps {
|
|
6
|
+
map: MapInstance;
|
|
7
|
+
setOnRender: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
8
|
+
frameloop?: 'always' | 'demand';
|
|
9
|
+
fromLngLat: FromLngLat;
|
|
10
|
+
}
|
|
11
|
+
export declare const InitCanvasFC: import("react").NamedExoticComponent<InitCanvasFCProps>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
3
|
+
import { Coords } from "../../api/coords";
|
|
4
|
+
interface InitR3MProps extends Coords {
|
|
5
|
+
map: MapInstance;
|
|
6
|
+
fromLngLat: FromLngLat;
|
|
7
|
+
}
|
|
8
|
+
/** Initialises the `R3M` hook */
|
|
9
|
+
export declare const InitR3M: import("react").NamedExoticComponent<InitR3MProps>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Render = (gl: WebGLRenderingContext, matrix: number[]) => void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { Coords } from "../../api/coords";
|
|
4
|
+
import { MapInstance } from "../generic-map";
|
|
5
|
+
interface SyncCameraFCProps extends Coords {
|
|
6
|
+
setOnRender?: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
7
|
+
/** on `useFrame` it will manually render (used by `<Coordinates>`) */
|
|
8
|
+
manualRender?: boolean;
|
|
9
|
+
onReady?: () => void;
|
|
10
|
+
map: MapInstance;
|
|
11
|
+
}
|
|
12
|
+
/** React Component (FC) to sync the Three camera with the map provider */
|
|
13
|
+
export declare const SyncCameraFC: import("react").NamedExoticComponent<SyncCameraFCProps>;
|
|
14
|
+
export {};
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { FromLngLat } from "./generic-map";
|
|
2
|
+
import { Coords } from "../api/coords";
|
|
2
3
|
/** calculate Matrix4 from coordinates */
|
|
3
|
-
export declare function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: {
|
|
4
|
-
longitude: number;
|
|
5
|
-
latitude: number;
|
|
6
|
-
altitude: number;
|
|
4
|
+
export declare function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: Coords & {
|
|
7
5
|
fromLngLat: FromLngLat;
|
|
8
6
|
}): import("three").Matrix4Tuple;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const earthRadius = 6378137;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { coordsToMatrix } from "./coords-to-matrix";
|
|
2
|
+
type Props = Parameters<typeof coordsToMatrix>[0];
|
|
3
|
+
/** calculate matrix from coordinates */
|
|
4
|
+
export declare function useCoordsToMatrix({ latitude, longitude, altitude, fromLngLat }: Props): import("three").Matrix4Tuple;
|
|
5
|
+
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export declare function useCoords(
|
|
5
|
-
export {};
|
|
1
|
+
import { RootState } from "@react-three/fiber";
|
|
2
|
+
import { UseBoundStore } from 'zustand';
|
|
3
|
+
import { Coords } from "../api/coords";
|
|
4
|
+
export declare function useCoords(): Coords;
|
|
5
|
+
export declare function useSetCoords({ longitude, latitude, altitude }: Coords): void;
|
|
6
|
+
export declare function useSetRootCoords(store: UseBoundStore<RootState>, { longitude, latitude, altitude }: Coords): void;
|
|
7
|
+
export declare function setCoords(store: UseBoundStore<RootState>, coords: Coords): void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RootState } from "@react-three/fiber";
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { UseBoundStore } from 'zustand';
|
|
4
|
+
import { FromLngLat, MapInstance } from "./generic-map";
|
|
5
|
+
export interface R3M<T extends MapInstance = MapInstance> {
|
|
6
|
+
/** Map provider */
|
|
7
|
+
map: T;
|
|
8
|
+
/** view projection matrix coming from the map provider */
|
|
9
|
+
viewProjMx: Matrix4Tuple;
|
|
10
|
+
fromLngLat: FromLngLat;
|
|
11
|
+
}
|
|
12
|
+
export declare function useR3M<T extends MapInstance>(): R3M<T>;
|
|
13
|
+
/** init `useR3M` hook */
|
|
14
|
+
export declare function useInitR3M<T extends MapInstance>(props: {
|
|
15
|
+
map: T;
|
|
16
|
+
fromLngLat: FromLngLat;
|
|
17
|
+
}): void;
|
|
18
|
+
export declare function initR3M<T extends MapInstance>({ store, ...props }: {
|
|
19
|
+
map: T;
|
|
20
|
+
fromLngLat: FromLngLat;
|
|
21
|
+
store: UseBoundStore<RootState>;
|
|
22
|
+
}): R3M<T>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CanvasProps } from "../api/canvas-props";
|
|
3
|
-
/** react`-three-fiber` canvas inside `
|
|
3
|
+
/** react`-three-fiber` canvas inside `Mapbox` */
|
|
4
4
|
export declare const Canvas: import("react").NamedExoticComponent<CanvasProps>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { Map } from 'maplibre-gl';
|
|
2
|
-
export * from './api
|
|
3
|
-
export * from './
|
|
4
|
-
export
|
|
5
|
-
export declare const useMap: () => Map | undefined;
|
|
2
|
+
export * from './api';
|
|
3
|
+
export * from './mapbox/canvas';
|
|
4
|
+
export declare const useMap: () => Map;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { RenderProps } from "@react-three/fiber";
|
|
2
2
|
import { PropsWithChildren } from "react";
|
|
3
|
-
|
|
3
|
+
import { Coords } from "./coords";
|
|
4
|
+
export interface CanvasProps extends Coords, Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {
|
|
4
5
|
id?: string;
|
|
5
6
|
beforeId?: string;
|
|
6
|
-
longitude: number;
|
|
7
|
-
latitude: number;
|
|
8
|
-
altitude?: number;
|
|
9
7
|
frameloop?: 'always' | 'demand';
|
|
8
|
+
/** render on a separated `<canvas>` that sits on top of the map provider */
|
|
9
|
+
overlay?: boolean;
|
|
10
10
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MapInstance } from "../core/generic-map";
|
|
2
|
-
export declare const useMap: <T extends MapInstance = MapInstance>() => T
|
|
2
|
+
export declare const useMap: <T extends MapInstance = MapInstance>() => T;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
2
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
3
|
+
/** get all the properties that you need to render as a map `<Layer>` */
|
|
4
|
+
export declare function useCanvasInLayer(props: CanvasProps, fromLngLat: FromLngLat, map: MapInstance): {
|
|
5
|
+
readonly id: string | undefined;
|
|
6
|
+
readonly beforeId: string | undefined;
|
|
7
|
+
readonly onRemove: () => void;
|
|
8
|
+
readonly render: (_gl: WebGL2RenderingContext, projViewMx: number[]) => void;
|
|
9
|
+
readonly type: "custom";
|
|
10
|
+
readonly renderingMode: "3d";
|
|
11
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RootState } from "@react-three/fiber";
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { UseBoundStore } from "zustand";
|
|
4
|
+
import { MapInstance } from "../generic-map";
|
|
5
|
+
import { R3M } from "../use-r3m";
|
|
6
|
+
export declare function useRender({ map, origin, useThree, frameloop, r3m, }: {
|
|
7
|
+
map: MapInstance;
|
|
8
|
+
origin: Matrix4Tuple;
|
|
9
|
+
useThree: UseBoundStore<RootState>;
|
|
10
|
+
frameloop?: 'always' | 'demand';
|
|
11
|
+
r3m: R3M;
|
|
12
|
+
}): (_gl: WebGL2RenderingContext, projViewMx: number[]) => void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
2
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
3
|
+
export declare function useRoot(fromLngLat: FromLngLat, map: MapInstance, { frameloop, longitude, latitude, altitude, ...props }: CanvasProps): {
|
|
4
|
+
onRemove: () => void;
|
|
5
|
+
useThree: import("zustand").UseBoundStore<import("@react-three/fiber").RootState>;
|
|
6
|
+
r3m: import("../use-r3m").R3M<MapInstance>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
4
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
5
|
+
interface CanvasPortalProps extends CanvasProps {
|
|
6
|
+
setOnRender: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
7
|
+
map: MapInstance;
|
|
8
|
+
fromLngLat: FromLngLat;
|
|
9
|
+
}
|
|
10
|
+
export declare const CanvasPortal: import("react").NamedExoticComponent<CanvasPortalProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { CanvasProps } from "../../api/canvas-props";
|
|
4
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
5
|
+
interface InitCanvasFCProps extends CanvasProps {
|
|
6
|
+
map: MapInstance;
|
|
7
|
+
setOnRender: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
8
|
+
frameloop?: 'always' | 'demand';
|
|
9
|
+
fromLngLat: FromLngLat;
|
|
10
|
+
}
|
|
11
|
+
export declare const InitCanvasFC: import("react").NamedExoticComponent<InitCanvasFCProps>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FromLngLat, MapInstance } from "../generic-map";
|
|
3
|
+
import { Coords } from "../../api/coords";
|
|
4
|
+
interface InitR3MProps extends Coords {
|
|
5
|
+
map: MapInstance;
|
|
6
|
+
fromLngLat: FromLngLat;
|
|
7
|
+
}
|
|
8
|
+
/** Initialises the `R3M` hook */
|
|
9
|
+
export declare const InitR3M: import("react").NamedExoticComponent<InitR3MProps>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Render = (gl: WebGLRenderingContext, matrix: number[]) => void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { Coords } from "../../api/coords";
|
|
4
|
+
import { MapInstance } from "../generic-map";
|
|
5
|
+
interface SyncCameraFCProps extends Coords {
|
|
6
|
+
setOnRender?: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
7
|
+
/** on `useFrame` it will manually render (used by `<Coordinates>`) */
|
|
8
|
+
manualRender?: boolean;
|
|
9
|
+
onReady?: () => void;
|
|
10
|
+
map: MapInstance;
|
|
11
|
+
}
|
|
12
|
+
/** React Component (FC) to sync the Three camera with the map provider */
|
|
13
|
+
export declare const SyncCameraFC: import("react").NamedExoticComponent<SyncCameraFCProps>;
|
|
14
|
+
export {};
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { FromLngLat } from "./generic-map";
|
|
2
|
+
import { Coords } from "../api/coords";
|
|
2
3
|
/** calculate Matrix4 from coordinates */
|
|
3
|
-
export declare function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: {
|
|
4
|
-
longitude: number;
|
|
5
|
-
latitude: number;
|
|
6
|
-
altitude: number;
|
|
4
|
+
export declare function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: Coords & {
|
|
7
5
|
fromLngLat: FromLngLat;
|
|
8
6
|
}): import("three").Matrix4Tuple;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const earthRadius = 6378137;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { coordsToMatrix } from "./coords-to-matrix";
|
|
2
|
+
type Props = Parameters<typeof coordsToMatrix>[0];
|
|
3
|
+
/** calculate matrix from coordinates */
|
|
4
|
+
export declare function useCoordsToMatrix({ latitude, longitude, altitude, fromLngLat }: Props): import("three").Matrix4Tuple;
|
|
5
|
+
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export declare function useCoords(
|
|
5
|
-
export {};
|
|
1
|
+
import { RootState } from "@react-three/fiber";
|
|
2
|
+
import { UseBoundStore } from 'zustand';
|
|
3
|
+
import { Coords } from "../api/coords";
|
|
4
|
+
export declare function useCoords(): Coords;
|
|
5
|
+
export declare function useSetCoords({ longitude, latitude, altitude }: Coords): void;
|
|
6
|
+
export declare function useSetRootCoords(store: UseBoundStore<RootState>, { longitude, latitude, altitude }: Coords): void;
|
|
7
|
+
export declare function setCoords(store: UseBoundStore<RootState>, coords: Coords): void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RootState } from "@react-three/fiber";
|
|
2
|
+
import { Matrix4Tuple } from "three";
|
|
3
|
+
import { UseBoundStore } from 'zustand';
|
|
4
|
+
import { FromLngLat, MapInstance } from "./generic-map";
|
|
5
|
+
export interface R3M<T extends MapInstance = MapInstance> {
|
|
6
|
+
/** Map provider */
|
|
7
|
+
map: T;
|
|
8
|
+
/** view projection matrix coming from the map provider */
|
|
9
|
+
viewProjMx: Matrix4Tuple;
|
|
10
|
+
fromLngLat: FromLngLat;
|
|
11
|
+
}
|
|
12
|
+
export declare function useR3M<T extends MapInstance>(): R3M<T>;
|
|
13
|
+
/** init `useR3M` hook */
|
|
14
|
+
export declare function useInitR3M<T extends MapInstance>(props: {
|
|
15
|
+
map: T;
|
|
16
|
+
fromLngLat: FromLngLat;
|
|
17
|
+
}): void;
|
|
18
|
+
export declare function initR3M<T extends MapInstance>({ store, ...props }: {
|
|
19
|
+
map: T;
|
|
20
|
+
fromLngLat: FromLngLat;
|
|
21
|
+
store: UseBoundStore<RootState>;
|
|
22
|
+
}): R3M<T>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { Map } from 'mapbox-gl';
|
|
2
|
-
export * from './api
|
|
3
|
-
export * from './api/coordinates';
|
|
2
|
+
export * from './api';
|
|
4
3
|
export * from './mapbox/canvas';
|
|
5
|
-
export declare const useMap: () => Map
|
|
4
|
+
export declare const useMap: () => Map;
|