react-three-map 0.4.3 → 0.5.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +14 -0
  3. package/dist/cjs/main.js +7 -1
  4. package/dist/es/main.mjs +6 -3
  5. package/dist/es/main.mjs.map +1 -1
  6. package/dist/es/main10.mjs +2 -2
  7. package/dist/es/main11.mjs +14 -74
  8. package/dist/es/main11.mjs.map +1 -1
  9. package/dist/es/main12.mjs +75 -9
  10. package/dist/es/main12.mjs.map +1 -1
  11. package/dist/es/main13.mjs +8 -67
  12. package/dist/es/main13.mjs.map +1 -1
  13. package/dist/es/main14.mjs +71 -0
  14. package/dist/es/main14.mjs.map +1 -0
  15. package/dist/es/main2.mjs +5 -23
  16. package/dist/es/main2.mjs.map +1 -1
  17. package/dist/es/main3.mjs +23 -52
  18. package/dist/es/main3.mjs.map +1 -1
  19. package/dist/es/main4.mjs +46 -15
  20. package/dist/es/main4.mjs.map +1 -1
  21. package/dist/es/main5.mjs +22 -3
  22. package/dist/es/main5.mjs.map +1 -1
  23. package/dist/es/main6.mjs +3 -34
  24. package/dist/es/main6.mjs.map +1 -1
  25. package/dist/es/main7.mjs +33 -11
  26. package/dist/es/main7.mjs.map +1 -1
  27. package/dist/es/main8.mjs +11 -14
  28. package/dist/es/main8.mjs.map +1 -1
  29. package/dist/es/main9.mjs +1 -1
  30. package/dist/maplibre/cjs/main.js +7 -1
  31. package/dist/maplibre/es/main.mjs +6 -3
  32. package/dist/maplibre/es/main.mjs.map +1 -1
  33. package/dist/maplibre/es/main10.mjs +21 -15
  34. package/dist/maplibre/es/main10.mjs.map +1 -1
  35. package/dist/maplibre/es/main11.mjs +17 -72
  36. package/dist/maplibre/es/main11.mjs.map +1 -1
  37. package/dist/maplibre/es/main12.mjs +75 -9
  38. package/dist/maplibre/es/main12.mjs.map +1 -1
  39. package/dist/maplibre/es/main13.mjs +8 -67
  40. package/dist/maplibre/es/main13.mjs.map +1 -1
  41. package/dist/maplibre/es/main14.mjs +71 -0
  42. package/dist/maplibre/es/main14.mjs.map +1 -0
  43. package/dist/maplibre/es/main2.mjs +5 -23
  44. package/dist/maplibre/es/main2.mjs.map +1 -1
  45. package/dist/maplibre/es/main3.mjs +23 -52
  46. package/dist/maplibre/es/main3.mjs.map +1 -1
  47. package/dist/maplibre/es/main4.mjs +46 -15
  48. package/dist/maplibre/es/main4.mjs.map +1 -1
  49. package/dist/maplibre/es/main5.mjs +22 -3
  50. package/dist/maplibre/es/main5.mjs.map +1 -1
  51. package/dist/maplibre/es/main6.mjs +3 -34
  52. package/dist/maplibre/es/main6.mjs.map +1 -1
  53. package/dist/maplibre/es/main7.mjs +33 -11
  54. package/dist/maplibre/es/main7.mjs.map +1 -1
  55. package/dist/maplibre/es/main8.mjs +12 -21
  56. package/dist/maplibre/es/main8.mjs.map +1 -1
  57. package/dist/maplibre/es/main9.mjs +14 -19
  58. package/dist/maplibre/es/main9.mjs.map +1 -1
  59. package/dist/maplibre/types/api/use-map.d.ts +2 -0
  60. package/dist/maplibre/types/maplibre.index.d.ts +2 -0
  61. package/dist/types/api/use-map.d.ts +2 -0
  62. package/dist/types/mapbox.index.d.ts +2 -0
  63. package/package.json +1 -1
@@ -1,23 +1,18 @@
1
- import { syncCamera } from "./main6.mjs";
2
- import { useFunction } from "./main12.mjs";
3
- function useRender(origin, r3mRef, frameloop) {
4
- const render = useFunction((_gl, mapCamMx) => {
5
- const r3m = r3mRef.current;
6
- if (!r3m.state || !r3m.map)
7
- return;
8
- const camera = r3m.state.camera;
9
- const gl = r3m.state.gl;
10
- const advance = r3m.state.advance;
11
- r3m.mapCamMx = mapCamMx;
12
- syncCamera(camera, origin, mapCamMx);
13
- gl.resetState();
14
- advance(Date.now() * 1e-3, true);
15
- if (frameloop === "always")
16
- r3m.map.triggerRepaint();
17
- });
18
- return render;
1
+ import { Quaternion, Euler, Vector3, Matrix4 } from "three";
2
+ const quat = new Quaternion();
3
+ const euler = new Euler();
4
+ const pos = new Vector3();
5
+ const scale = new Vector3();
6
+ const m4 = new Matrix4();
7
+ function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }) {
8
+ const center = fromLngLat([longitude, latitude], altitude);
9
+ const scaleUnit = center.meterInMercatorCoordinateUnits();
10
+ pos.set(center.x, center.y, center.z || 0);
11
+ scale.set(scaleUnit, -scaleUnit, scaleUnit);
12
+ quat.setFromEuler(euler.set(-Math.PI * 0.5, 0, 0));
13
+ return m4.compose(pos, quat, scale).toArray();
19
14
  }
20
15
  export {
21
- useRender
16
+ coordsToMatrix
22
17
  };
23
18
  //# sourceMappingURL=main9.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"main9.mjs","sources":["../../../src/core/use-render.ts"],"sourcesContent":["import { MutableRefObject } from \"react\";\nimport { Matrix4Tuple, PerspectiveCamera } from \"three\";\nimport { R3mStore } from \"./store\";\nimport { syncCamera } from \"./sync-camera\";\nimport { useFunction } from \"./use-function\";\n\nexport function useRender(\n origin: Matrix4Tuple, r3mRef: MutableRefObject<R3mStore>, frameloop: 'always' | 'demand'\n) {\n\n const render = useFunction((_gl: WebGL2RenderingContext, mapCamMx: number[]) => {\n const r3m = r3mRef.current;\n if (!r3m.state || !r3m.map) return;\n const camera = r3m.state.camera;\n const gl = r3m.state.gl;\n const advance = r3m.state.advance;\n r3m.mapCamMx = mapCamMx as Matrix4Tuple;\n syncCamera(camera as PerspectiveCamera, origin, mapCamMx as Matrix4Tuple);\n gl.resetState();\n advance(Date.now() * 0.001, true);\n if (frameloop === 'always') r3m.map.triggerRepaint();\n })\n\n return render;\n\n}"],"names":[],"mappings":";;AAMgB,SAAA,UACd,QAAsB,QAAoC,WAC1D;AAEA,QAAM,SAAS,YAAY,CAAC,KAA6B,aAAuB;AAC9E,UAAM,MAAM,OAAO;AACnB,QAAI,CAAC,IAAI,SAAS,CAAC,IAAI;AAAK;AACtB,UAAA,SAAS,IAAI,MAAM;AACnB,UAAA,KAAK,IAAI,MAAM;AACf,UAAA,UAAU,IAAI,MAAM;AAC1B,QAAI,WAAW;AACJ,eAAA,QAA6B,QAAQ,QAAwB;AACxE,OAAG,WAAW;AACd,YAAQ,KAAK,IAAQ,IAAA,MAAO,IAAI;AAChC,QAAI,cAAc;AAAU,UAAI,IAAI;EAAe,CACpD;AAEM,SAAA;AAET;"}
1
+ {"version":3,"file":"main9.mjs","sources":["../../../src/core/coords-to-matrix.ts"],"sourcesContent":["import { Euler, Matrix4, Quaternion, Vector3 } from \"three\";\nimport { FromLngLat } from \"./generic-map\";\n\nconst quat = new Quaternion();\nconst euler = new Euler();\nconst pos = new Vector3();\nconst scale = new Vector3();\nconst m4 = new Matrix4();\n\n/** calculate Matrix4 from coordinates */\nexport function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: {\n longitude: number, latitude: number, altitude: number, fromLngLat: FromLngLat\n}) {\n const center = fromLngLat([longitude, latitude], altitude);\n const scaleUnit = center.meterInMercatorCoordinateUnits();\n pos.set(center.x, center.y, center.z || 0);\n scale.set(scaleUnit, -scaleUnit, scaleUnit);\n quat.setFromEuler(euler.set(-Math.PI * .5, 0, 0));\n return m4.compose(pos, quat, scale).toArray();\n}\n"],"names":[],"mappings":";AAGA,MAAM,OAAO,IAAI;AACjB,MAAM,QAAQ,IAAI;AAClB,MAAM,MAAM,IAAI;AAChB,MAAM,QAAQ,IAAI;AAClB,MAAM,KAAK,IAAI;AAGR,SAAS,eAAe,EAAE,WAAW,UAAU,UAAU,cAE7D;AACD,QAAM,SAAS,WAAW,CAAC,WAAW,QAAQ,GAAG,QAAQ;AACnD,QAAA,YAAY,OAAO;AACzB,MAAI,IAAI,OAAO,GAAG,OAAO,GAAG,OAAO,KAAK,CAAC;AACzC,QAAM,IAAI,WAAW,CAAC,WAAW,SAAS;AACrC,OAAA,aAAa,MAAM,IAAI,CAAC,KAAK,KAAK,KAAI,GAAG,CAAC,CAAC;AAChD,SAAO,GAAG,QAAQ,KAAK,MAAM,KAAK,EAAE;AACtC;"}
@@ -0,0 +1,2 @@
1
+ import { MapInstance } from "../core/generic-map";
2
+ export declare const useMap: <T extends MapInstance = MapInstance>() => T | undefined;
@@ -1,3 +1,5 @@
1
+ import { MapInstance } from 'react-map-gl/maplibre';
1
2
  export * from './maplibre/canvas';
2
3
  export * from './api/canvas-props';
3
4
  export * from './api/coordinates';
5
+ export declare const useMap: () => MapInstance | undefined;
@@ -0,0 +1,2 @@
1
+ import { MapInstance } from "../core/generic-map";
2
+ export declare const useMap: <T extends MapInstance = MapInstance>() => T | undefined;
@@ -1,3 +1,5 @@
1
+ import { MapInstance } from 'react-map-gl';
1
2
  export * from './mapbox/canvas';
2
3
  export * from './api/canvas-props';
3
4
  export * from './api/coordinates';
5
+ export declare const useMap: () => MapInstance | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-three-map",
3
- "version": "0.4.3",
3
+ "version": "0.5.0",
4
4
  "description": "Use react-three-fiber inside MapLibre and Mapbox",
5
5
  "main": "dist/cjs/main.js",
6
6
  "module": "dist/es/main.mjs",