@wemap/viewer 14.8.0-beta.3 → 14.8.0-beta.5
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/README.md +22 -0
- package/dist/cdn/wemap-viewer.umd.js +8 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +417 -335
- package/dist/src/WemapViewer.d.ts +11 -1
- package/dist/src/WemapViewer.d.ts.map +1 -1
- package/dist/src/frame/SceneFrame.d.ts +10 -0
- package/dist/src/frame/SceneFrame.d.ts.map +1 -1
- package/dist/src/graph/PanoramaPointer.d.ts +2 -0
- package/dist/src/graph/PanoramaPointer.d.ts.map +1 -1
- package/dist/src/graph/PolygonOverlay.d.ts +22 -0
- package/dist/src/graph/PolygonOverlay.d.ts.map +1 -0
- package/dist/src/types/index.d.ts +31 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Coordinates } from '@wemap/geo';
|
|
2
2
|
import { ClickMode } from './graph/PanoramaPointer';
|
|
3
|
-
import { ViewerNode, ViewerOptions, OpenOptions, LocatedPoint, Measurement, VisionGeojsonGraph } from './types';
|
|
3
|
+
import { ViewerNode, ViewerOptions, OpenOptions, LocatedPoint, Measurement, VisionGeojsonGraph, ViewerPolygon, ViewerClick } from './types';
|
|
4
4
|
/** Events a {@link WemapViewer} emits. Subscribe with `viewer.on(...)`. */
|
|
5
5
|
export interface ViewerEvents {
|
|
6
6
|
/** Fired as soon as a move to a node starts, and again with the node still on screen if its image fails. */
|
|
@@ -13,6 +13,8 @@ export interface ViewerEvents {
|
|
|
13
13
|
locate: LocatedPoint;
|
|
14
14
|
/** Fired with the distance between two clicks, in `measure` click mode. */
|
|
15
15
|
measure: Measurement;
|
|
16
|
+
/** A click that walks nowhere, in `navigate` mode: above the horizon, or on the floor with no node there. */
|
|
17
|
+
click: ViewerClick;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Framework-agnostic 360° panorama viewer. Renders the Wemap image graph as an
|
|
@@ -40,6 +42,7 @@ export declare class WemapViewer {
|
|
|
40
42
|
private controls;
|
|
41
43
|
private pointer;
|
|
42
44
|
private measureOverlay;
|
|
45
|
+
private polygonOverlay;
|
|
43
46
|
/** First point of a measurement in progress (pixel of the shown image). */
|
|
44
47
|
private measureStart;
|
|
45
48
|
/** Bumped on every reset, so a late answer for a cleared measurement is dropped. */
|
|
@@ -111,6 +114,13 @@ export declare class WemapViewer {
|
|
|
111
114
|
*/
|
|
112
115
|
nearestNode(to: Coordinates, level?: number): ViewerNode | null;
|
|
113
116
|
private closestNode;
|
|
117
|
+
/**
|
|
118
|
+
* Draw these polygons over the panorama, replacing the ones drawn before; an
|
|
119
|
+
* empty list clears them. They are anchored in the world, so they follow the
|
|
120
|
+
* user from node to node. The panorama has no depth: a polygon behind a wall
|
|
121
|
+
* still shows.
|
|
122
|
+
*/
|
|
123
|
+
setPolygons(polygons: ViewerPolygon[]): void;
|
|
114
124
|
/** Turn to a compass heading and pitch (degrees), animated the short way round. */
|
|
115
125
|
lookAt(heading: number, pitch?: number): void;
|
|
116
126
|
resize(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WemapViewer.d.ts","sourceRoot":"","sources":["../../src/WemapViewer.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"WemapViewer.d.ts","sourceRoot":"","sources":["../../src/WemapViewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,20 @@ export declare function imageUv(direction: Vector3, captureHeading: number): [nu
|
|
|
15
15
|
export declare function imagePixel(direction: Vector3, captureHeading: number, width: number, height: number): [number, number];
|
|
16
16
|
/** Camera rotation that looks at a compass heading and pitch (degrees). */
|
|
17
17
|
export declare function lookRotation(heading: number, pitch?: number, out?: Quaternion): Quaternion;
|
|
18
|
+
/** Compass heading (degrees, 0..360) and pitch (degrees, positive up) of a scene direction. */
|
|
19
|
+
export declare function directionAngles(direction: Vector3): {
|
|
20
|
+
heading: number;
|
|
21
|
+
pitch: number;
|
|
22
|
+
};
|
|
18
23
|
/** Compass heading (degrees, 0..360) a camera rotation looks at. */
|
|
19
24
|
export declare function headingOf(rotation: Quaternion): number;
|
|
20
25
|
/** Position of `target` in the frame of a node at `origin`, at camera height (y = 0). */
|
|
21
26
|
export declare function toLocal(origin: Coordinates, target: Coordinates, out?: Vector3): Vector3;
|
|
27
|
+
/**
|
|
28
|
+
* Position of `target` in the frame of a node at `origin`, height included: y is
|
|
29
|
+
* the altitude difference. Both need an altitude, in the same reference.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toScene(origin: Coordinates, target: Coordinates, out?: Vector3): Vector3;
|
|
22
32
|
/** Geo position of a point in the frame of a node at `origin` (height ignored). */
|
|
23
33
|
export declare function toGeo(origin: Coordinates, point: Vector3): Coordinates;
|
|
24
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneFrame.d.ts","sourceRoot":"","sources":["../../../src/frame/SceneFrame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAa,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAY3C,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlB;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,GAAG,aAAmB,GAAG,UAAU,CAI3F;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAGtD;AAED,yFAAyF;AACzF,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAgB,GAAG,OAAO,CAI9F;AAED,mFAAmF;AACnF,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,CAItE;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAMpE"}
|
|
1
|
+
{"version":3,"file":"SceneFrame.d.ts","sourceRoot":"","sources":["../../../src/frame/SceneFrame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAa,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAY3C,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlB;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,GAAG,aAAmB,GAAG,UAAU,CAI3F;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAMtF;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAGtD;AAED,yFAAyF;AACzF,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAgB,GAAG,OAAO,CAI9F;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAgB,GAAG,OAAO,CAK9F;AAED,mFAAmF;AACnF,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,CAItE;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAMpE"}
|
|
@@ -12,6 +12,8 @@ export interface PanoramaPointerCallbacks {
|
|
|
12
12
|
select: (node: ViewerNode) => void;
|
|
13
13
|
/** `locate` / `measure` modes: the user clicked/tapped the panorama in this view direction. */
|
|
14
14
|
pick: (direction: Vector3) => void;
|
|
15
|
+
/** `navigate` mode: a click that walks nowhere (above the horizon, or no node there), in this view direction. */
|
|
16
|
+
miss: (direction: Vector3) => void;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* Pointer interaction on the panorama. A drag that looks around is never a click.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanoramaPointer.d.ts","sourceRoot":"","sources":["../../../src/graph/PanoramaPointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACX,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA8B3C,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACjC,6DAA6D;IAC7D,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,UAAU,GAAG,IAAI,CAAC;IAChD,sEAAsE;IACtE,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,+FAA+F;IAC/F,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,yBAAyB;IACzB,IAAI,EAAE,SAAS,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAA2B;gBAGvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,wBAAwB,EACnC,IAAI,UAAO;IA6Bb,iFAAiF;IACjF,IAAI,IAAI,IAAI;IAOZ,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"PanoramaPointer.d.ts","sourceRoot":"","sources":["../../../src/graph/PanoramaPointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACX,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA8B3C,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACjC,6DAA6D;IAC7D,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,UAAU,GAAG,IAAI,CAAC;IAChD,sEAAsE;IACtE,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,+FAA+F;IAC/F,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,iHAAiH;IACjH,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,yBAAyB;IACzB,IAAI,EAAE,SAAS,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAA2B;gBAGvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,wBAAwB,EACnC,IAAI,UAAO;IA6Bb,iFAAiF;IACjF,IAAI,IAAI,IAAI;IAOZ,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAwB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,+DAA+D;IAC/D,OAAO,CAAC,GAAG;IASX,sFAAsF;IACtF,OAAO,CAAC,MAAM;CAoCf"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Scene } from 'three';
|
|
2
|
+
import { ViewerNode, ViewerPolygon } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Polygons anchored in the real world, drawn over the panorama. The scene frame is
|
|
5
|
+
* the shown node's, so they are placed again each time another node is shown;
|
|
6
|
+
* while the camera travels to the next node they stay where they are in the world.
|
|
7
|
+
* The panorama has no depth: a polygon behind a wall still shows.
|
|
8
|
+
*/
|
|
9
|
+
export declare class PolygonOverlay {
|
|
10
|
+
private readonly scene;
|
|
11
|
+
private readonly group;
|
|
12
|
+
private polygons;
|
|
13
|
+
private origin;
|
|
14
|
+
constructor(scene: Scene);
|
|
15
|
+
set(polygons: ViewerPolygon[]): void;
|
|
16
|
+
/** Place the polygons in the frame of `node`; nothing to do if it already is the origin. */
|
|
17
|
+
placeAt(node: ViewerNode | null): void;
|
|
18
|
+
private build;
|
|
19
|
+
private clear;
|
|
20
|
+
dispose(): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=PolygonOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolygonOverlay.d.ts","sourceRoot":"","sources":["../../../src/graph/PolygonOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,KAAK,EACX,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAyB1D;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,KAAK,EAAE,KAAK;IAKxB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAKpC,4FAA4F;IAC5F,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAQtC,OAAO,CAAC,KAAK;IAsCb,OAAO,CAAC,KAAK;IAUb,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -22,6 +22,8 @@ export interface ViewerNode {
|
|
|
22
22
|
export interface ViewerOptions {
|
|
23
23
|
/** Enable mouse-wheel zoom. Defaults to true. */
|
|
24
24
|
zoom?: boolean;
|
|
25
|
+
/** Widest vertical field of view the wheel zooms out to, in degrees. Defaults to 80. */
|
|
26
|
+
maxFov?: number;
|
|
25
27
|
/**
|
|
26
28
|
* In-panorama navigation: hovering the floor shows a disc and a
|
|
27
29
|
* cross on the nearest node; clicking walks there. Defaults to true.
|
|
@@ -40,6 +42,8 @@ export interface ViewerOptions {
|
|
|
40
42
|
onLocate?: (point: LocatedPoint) => void;
|
|
41
43
|
/** Fired with the distance between two clicks, in `measure` click mode. */
|
|
42
44
|
onMeasure?: (measurement: Measurement) => void;
|
|
45
|
+
/** Fired with the view direction of a click that walks nowhere, in `navigate` mode. */
|
|
46
|
+
onClick?: (click: ViewerClick) => void;
|
|
43
47
|
/** Fired when the graph, an image, a located point or a measurement fails to load. */
|
|
44
48
|
onError?: (error: Error) => void;
|
|
45
49
|
}
|
|
@@ -50,6 +54,19 @@ export interface Measurement {
|
|
|
50
54
|
/** The node whose image was clicked. */
|
|
51
55
|
node: ViewerNode;
|
|
52
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* A click on the panorama that walked nowhere: what the user pointed at, as a
|
|
59
|
+
* direction from the node on screen. Cast it against your own geometry to pick
|
|
60
|
+
* what is there (a shelf, a door).
|
|
61
|
+
*/
|
|
62
|
+
export interface ViewerClick {
|
|
63
|
+
/** Compass heading of the direction, degrees (0 = north, 90 = east). */
|
|
64
|
+
heading: number;
|
|
65
|
+
/** Pitch of the direction, degrees, positive up. */
|
|
66
|
+
pitch: number;
|
|
67
|
+
/** The node the direction starts from. */
|
|
68
|
+
node: ViewerNode;
|
|
69
|
+
}
|
|
53
70
|
/** What is under a click in `locate` mode, from the VPS depth estimate. */
|
|
54
71
|
export interface LocatedPoint {
|
|
55
72
|
/** Geo position, with altitude and level (the node's when the VPS gives none). */
|
|
@@ -57,6 +74,20 @@ export interface LocatedPoint {
|
|
|
57
74
|
/** The node whose image was clicked. */
|
|
58
75
|
node: ViewerNode;
|
|
59
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* A polygon anchored in the real world, drawn over the panorama: an area on the
|
|
79
|
+
* floor, a shelf front, a door. See {@link WemapViewer.setPolygons}.
|
|
80
|
+
*/
|
|
81
|
+
export interface ViewerPolygon {
|
|
82
|
+
/** Vertices in order, not closed. Each needs an altitude, in the same reference as the graph nodes'. */
|
|
83
|
+
coordinates: Coordinates[];
|
|
84
|
+
/** Fill colour (CSS). Defaults to Wemap blue. */
|
|
85
|
+
color?: string;
|
|
86
|
+
/** Fill opacity, 0 to 1. Defaults to 0.25. */
|
|
87
|
+
fillOpacity?: number;
|
|
88
|
+
/** Outline colour (CSS). Defaults to `color`. */
|
|
89
|
+
outlineColor?: string;
|
|
90
|
+
}
|
|
60
91
|
/** Where {@link WemapViewer.open} makes the user look, in degrees. */
|
|
61
92
|
export interface OpenOptions {
|
|
62
93
|
/** Look heading, 0 = north, 90 = east. Omit to keep the current look direction. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wemap/viewer",
|
|
3
|
-
"version": "14.8.0-beta.
|
|
3
|
+
"version": "14.8.0-beta.5",
|
|
4
4
|
"description": "Framework-agnostic 360° panorama viewer for Wemap livemaps, with image-graph navigation.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Wemap SAS",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@tweenjs/tween.js": "^18.6.4",
|
|
46
|
-
"@wemap/core": "14.8.0-beta.
|
|
47
|
-
"@wemap/geo": "14.8.0-beta.
|
|
46
|
+
"@wemap/core": "14.8.0-beta.5",
|
|
47
|
+
"@wemap/geo": "14.8.0-beta.5",
|
|
48
48
|
"three": "^0.159.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|