@webviz/subsurface-viewer 1.3.1 → 1.4.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.
@@ -12,9 +12,19 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import React from "react";
13
13
  import SubsurfaceViewer from "./SubsurfaceViewer";
14
14
  import { View } from "@deck.gl/core";
15
+ import { ViewAnnotation } from "./components/ViewAnnotation";
15
16
  function mapAnnotation(annotationContainers) {
16
17
  return React.Children.map(annotationContainers, (annotationContainer) => {
17
- const viewId = annotationContainer.key;
18
+ let viewId = annotationContainer.props.id;
19
+ if (React.isValidElement(annotationContainer) &&
20
+ (annotationContainer.type === ViewAnnotation ||
21
+ (annotationContainer.props instanceof Object &&
22
+ Object.keys(annotationContainer.props).includes("_dashprivate_layout")))) {
23
+ viewId = annotationContainer.props._dashprivate_layout.props.id;
24
+ }
25
+ if (!viewId) {
26
+ return null;
27
+ }
18
28
  return (
19
29
  // @ts-expect-error This is proven to work in JavaScript
20
30
  React.createElement(View, { key: viewId, id: viewId }, annotationContainer));
@@ -1 +1 @@
1
- {"version":3,"file":"DashSubsurfaceViewer.js","sourceRoot":"","sources":["../src/DashSubsurfaceViewer.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,SAAS,aAAa,CAAC,oBAAqC;IACxD,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,mBAAmB,EAAE,EAAE;QACpE,MAAM,MAAM,GAAI,mBAA0C,CAAC,GAAG,CAAC;QAC/D,OAAO;QACH,wDAAwD;QACxD,oBAAC,IAAI,IAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IACxB,mBAAmB,CACjB,CACV,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,oBAAoB,GAAoC,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA7B,YAAqB,CAAQ,CAAC;IACpC,OAAO,CACH,oBAAC,gBAAgB,oBAAK,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAoB,CAC3E,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"DashSubsurfaceViewer.js","sourceRoot":"","sources":["../src/DashSubsurfaceViewer.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,SAAS,aAAa,CAAC,oBAAqC;IACxD,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,mBAAmB,EAAE,EAAE;QACpE,IAAI,MAAM,GAAI,mBAA0C,CAAC,KAAK,CAAC,EAAE,CAAC;QAClE,IACI,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;YACzC,CAAC,mBAAmB,CAAC,IAAI,KAAK,cAAc;gBACxC,CAAC,mBAAmB,CAAC,KAAK,YAAY,MAAM;oBACxC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAC3C,qBAAqB,CACxB,CAAC,CAAC,EACb,CAAC;YACC,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO;QACH,wDAAwD;QACxD,oBAAC,IAAI,IAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IACxB,mBAAmB,CACjB,CACV,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,oBAAoB,GAAoC,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA7B,YAAqB,CAAQ,CAAC;IACpC,OAAO,CACH,oBAAC,gBAAgB,oBAAK,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAoB,CAC3E,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useMultiViewCursorTracking } from "./useMultiViewCursorTracking";
2
+ export type { UseMultiViewCursorTrackingProps, UseMultiViewCursorTrackingReturnType, } from "./useMultiViewCursorTracking";
@@ -0,0 +1,2 @@
1
+ export { useMultiViewCursorTracking } from "./useMultiViewCursorTracking";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useMultiViewCursorTracking/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { CrosshairLayerProps } from "../../layers";
2
+ import type { ViewportType } from "../../views/viewport";
3
+ import type { TLayerDefinition } from "../../SubsurfaceViewer";
4
+ export type UseMultiViewCursorTrackingProps = {
5
+ worldCoordinates: number[] | null;
6
+ crosshairProps?: Omit<CrosshairLayerProps, "id" | "worldCoordinates">;
7
+ viewports: ViewportType[];
8
+ layers: TLayerDefinition[];
9
+ activeViewportId: string;
10
+ };
11
+ export type UseMultiViewCursorTrackingReturnType = {
12
+ viewports: ViewportType[];
13
+ layers: TLayerDefinition[];
14
+ };
15
+ export declare function useMultiViewCursorTracking(props: UseMultiViewCursorTrackingProps): UseMultiViewCursorTrackingReturnType;
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { v4 } from "uuid";
3
+ import { CrosshairLayer } from "../../layers";
4
+ export function useMultiViewCursorTracking(props) {
5
+ var _a, _b;
6
+ const id = React.useRef(`crosshair-${v4()}`);
7
+ let worldCoordinates = null;
8
+ if (((_a = props.worldCoordinates) === null || _a === void 0 ? void 0 : _a.length) === 3) {
9
+ worldCoordinates = props.worldCoordinates;
10
+ }
11
+ if (((_b = props.worldCoordinates) === null || _b === void 0 ? void 0 : _b.length) === 2) {
12
+ worldCoordinates = [...props.worldCoordinates, 0];
13
+ }
14
+ const crosshairLayer = new CrosshairLayer(Object.assign({ id: id.current, worldCoordinates }, props.crosshairProps));
15
+ const layers = [...props.layers, crosshairLayer];
16
+ const viewports = props.viewports.map((viewport) => {
17
+ var _a;
18
+ if (viewport.id !== props.activeViewportId) {
19
+ return Object.assign(Object.assign({}, viewport), { layerIds: [...((_a = viewport.layerIds) !== null && _a !== void 0 ? _a : []), id.current] });
20
+ }
21
+ return viewport;
22
+ });
23
+ return {
24
+ viewports,
25
+ layers,
26
+ };
27
+ }
28
+ //# sourceMappingURL=useMultiViewCursorTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiViewCursorTracking.js","sourceRoot":"","sources":["../../../src/hooks/useMultiViewCursorTracking/useMultiViewCursorTracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmB9C,MAAM,UAAU,0BAA0B,CACtC,KAAsC;;IAEtC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAS,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAErD,IAAI,gBAAgB,GAAoC,IAAI,CAAC;IAC7D,IAAI,CAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;QACvC,gBAAgB,GAAG,KAAK,CAAC,gBAA4C,CAAC;IAC1E,CAAC;IACD,IAAI,CAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;QACvC,gBAAgB,GAAG,CAAC,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAI/C,CAAC;IACN,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,cAAc,iBACrC,EAAE,EAAE,EAAE,CAAC,OAAO,EACd,gBAAgB,IACb,KAAK,CAAC,cAAc,EACzB,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;QAC/C,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACzC,uCACO,QAAQ,KACX,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAA,QAAQ,CAAC,QAAQ,mCAAI,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IACtD;QACN,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,SAAS;QACT,MAAM;KACT,CAAC;AACN,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { DeckGLRef } from "@deck.gl/react";
2
+ import type { MapMouseEvent, PropertyDataType } from "../../";
3
+ export type LayerPickingInfo = {
4
+ layerId: string;
5
+ layerName: string;
6
+ properties: PropertyDataType[];
7
+ };
8
+ export type PickingInfoPerView = Record<string, {
9
+ coordinates: number[] | null;
10
+ layerPickingInfo: LayerPickingInfo[];
11
+ }>;
12
+ export type MultiViewPickingInfoAssemblerOptions = {
13
+ multiPicking: boolean;
14
+ pickDepth: number;
15
+ };
16
+ export interface MultiViewPickingInfoAssemblerSubscriberCallback {
17
+ (info: PickingInfoPerView, activeViewportId: string): void;
18
+ }
19
+ export declare class MultiViewPickingInfoAssembler {
20
+ private _deckGl;
21
+ private _options;
22
+ private _subscribers;
23
+ constructor(deckGL: DeckGLRef | null, options?: MultiViewPickingInfoAssemblerOptions);
24
+ setDeckGL(deckGL: DeckGLRef): void;
25
+ subscribe(callback: MultiViewPickingInfoAssemblerSubscriberCallback): () => void;
26
+ private publish;
27
+ getMultiViewPickingInfo(hoverEvent: MapMouseEvent): void;
28
+ private assembleMultiViewPickingInfo;
29
+ }
@@ -0,0 +1,168 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ function hasPropertiesArray(
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ obj) {
13
+ return obj && Array.isArray(obj.properties);
14
+ }
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ function hasSingleProperty(obj) {
17
+ return (obj && "propertyValue" in obj && typeof obj.propertyValue === "number");
18
+ }
19
+ export class MultiViewPickingInfoAssembler {
20
+ constructor(deckGL, options = {
21
+ multiPicking: false,
22
+ pickDepth: 1,
23
+ }) {
24
+ this._deckGl = null;
25
+ this._subscribers = new Set();
26
+ this._deckGl = deckGL;
27
+ this._options = options;
28
+ }
29
+ setDeckGL(deckGL) {
30
+ this._deckGl = deckGL;
31
+ }
32
+ subscribe(callback) {
33
+ this._subscribers.add(callback);
34
+ return () => {
35
+ this._subscribers.delete(callback);
36
+ };
37
+ }
38
+ publish(info, activeViewportId) {
39
+ for (const subscriber of this._subscribers) {
40
+ subscriber(info, activeViewportId);
41
+ }
42
+ }
43
+ getMultiViewPickingInfo(hoverEvent) {
44
+ var _a, _b, _c;
45
+ if (!((_a = this._deckGl) === null || _a === void 0 ? void 0 : _a.deck)) {
46
+ return;
47
+ }
48
+ const viewports = (_b = this._deckGl.deck) === null || _b === void 0 ? void 0 : _b.getViewports();
49
+ if (!viewports) {
50
+ return;
51
+ }
52
+ if (hoverEvent.infos.length === 0) {
53
+ return;
54
+ }
55
+ const activeViewportId = (_c = hoverEvent.infos[0].viewport) === null || _c === void 0 ? void 0 : _c.id;
56
+ if (!activeViewportId) {
57
+ return;
58
+ }
59
+ const eventScreenCoordinate = [
60
+ hoverEvent.infos[0].x,
61
+ hoverEvent.infos[0].y,
62
+ ];
63
+ this.assembleMultiViewPickingInfo(eventScreenCoordinate, activeViewportId, viewports).then((info) => {
64
+ this.publish(info, activeViewportId);
65
+ });
66
+ }
67
+ assembleMultiViewPickingInfo(eventScreenCoordinate, activeViewportId, viewports) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ return new Promise((resolve, reject) => {
70
+ var _a;
71
+ const deck = (_a = this._deckGl) === null || _a === void 0 ? void 0 : _a.deck;
72
+ if (!deck) {
73
+ reject("DeckGL not initialized");
74
+ return;
75
+ }
76
+ const activeViewport = viewports.find((el) => el.id === activeViewportId);
77
+ if (!activeViewport) {
78
+ reject("Active viewport not found");
79
+ return;
80
+ }
81
+ const activeViewportRelativeScreenCoordinates = [
82
+ eventScreenCoordinate[0] - activeViewport.x,
83
+ eventScreenCoordinate[1] - activeViewport.y,
84
+ ];
85
+ const worldCoordinate = activeViewport.unproject(activeViewportRelativeScreenCoordinates);
86
+ const collectedPickingInfo = {};
87
+ for (const viewport of viewports) {
88
+ const [relativeScreenX, relativeScreenY] = viewport.project(worldCoordinate);
89
+ let pickingInfo = [];
90
+ if (this._options.multiPicking) {
91
+ pickingInfo = deck.pickMultipleObjects({
92
+ x: relativeScreenX + viewport.x,
93
+ y: relativeScreenY + viewport.y,
94
+ depth: this._options.pickDepth,
95
+ unproject3D: true,
96
+ });
97
+ }
98
+ else {
99
+ const obj = deck.pickObject({
100
+ x: relativeScreenX + viewport.x,
101
+ y: relativeScreenY + viewport.y,
102
+ unproject3D: true,
103
+ });
104
+ pickingInfo = obj ? [obj] : [];
105
+ }
106
+ if (pickingInfo) {
107
+ const collectedLayerPickingInfo = [];
108
+ for (const info of pickingInfo) {
109
+ const hasMultipleProperties = hasPropertiesArray(info);
110
+ const hasOneProperty = hasSingleProperty(info);
111
+ if (!hasMultipleProperties && !hasOneProperty) {
112
+ continue;
113
+ }
114
+ if (!info.layer) {
115
+ continue;
116
+ }
117
+ if (collectedLayerPickingInfo.find((el) => { var _a; return el.layerId === ((_a = info.layer) === null || _a === void 0 ? void 0 : _a.id); })) {
118
+ continue;
119
+ }
120
+ const layerId = info.layer.id;
121
+ const layerName = info.layer.props.name;
122
+ let layerPickingInfo = collectedLayerPickingInfo.find((el) => el.layerId === layerId);
123
+ if (!layerPickingInfo) {
124
+ collectedLayerPickingInfo.push({
125
+ layerId,
126
+ layerName,
127
+ properties: [],
128
+ });
129
+ layerPickingInfo =
130
+ collectedLayerPickingInfo[collectedLayerPickingInfo.length - 1];
131
+ }
132
+ if (hasOneProperty) {
133
+ layerPickingInfo.properties.push({
134
+ name: "Value",
135
+ value: info.propertyValue,
136
+ color: undefined,
137
+ });
138
+ continue;
139
+ }
140
+ if (hasMultipleProperties) {
141
+ const properties = info.properties;
142
+ for (const property of properties) {
143
+ layerPickingInfo.properties.push({
144
+ name: property.name,
145
+ value: property.value,
146
+ color: property.color,
147
+ });
148
+ }
149
+ }
150
+ }
151
+ collectedPickingInfo[viewport.id] = {
152
+ coordinates: worldCoordinate,
153
+ layerPickingInfo: collectedLayerPickingInfo,
154
+ };
155
+ }
156
+ else {
157
+ collectedPickingInfo[viewport.id] = {
158
+ coordinates: null,
159
+ layerPickingInfo: [],
160
+ };
161
+ }
162
+ }
163
+ resolve(collectedPickingInfo);
164
+ });
165
+ });
166
+ }
167
+ }
168
+ //# sourceMappingURL=MultiViewPickingInfoAssembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiViewPickingInfoAssembler.js","sourceRoot":"","sources":["../../../src/hooks/useMultiViewPicking/MultiViewPickingInfoAssembler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { useMultiViewPicking } from "./useMultiViewPicking";
2
+ export type { UseMultiViewPickingProps, UseMultiViewPickingReturnType, } from "./useMultiViewPicking";
3
+ export type { PickingInfoPerView, LayerPickingInfo, } from "./MultiViewPickingInfoAssembler";
@@ -0,0 +1,2 @@
1
+ export { useMultiViewPicking } from "./useMultiViewPicking";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useMultiViewPicking/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import type { DeckGLRef } from "@deck.gl/react";
3
+ import type { PickingInfoPerView } from "./MultiViewPickingInfoAssembler";
4
+ import type { MapMouseEvent } from "../../SubsurfaceViewer";
5
+ export type UseMultiViewPickingProps = {
6
+ deckGlRef: React.RefObject<DeckGLRef | null>;
7
+ multiPicking: boolean;
8
+ pickDepth: number;
9
+ };
10
+ export type UseMultiViewPickingReturnType = {
11
+ getPickingInfo: (event: MapMouseEvent) => void;
12
+ pickingInfoPerView: PickingInfoPerView;
13
+ activeViewportId: string;
14
+ };
15
+ /**
16
+ * Hook for multi-view picking.
17
+ *
18
+ * @param props - The hook properties.
19
+ * @returns The hook return value.
20
+ */
21
+ export declare function useMultiViewPicking(props: UseMultiViewPickingProps): UseMultiViewPickingReturnType;
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { MultiViewPickingInfoAssembler } from "./MultiViewPickingInfoAssembler";
3
+ // Make a documentation comment for the function
4
+ /**
5
+ * Hook for multi-view picking.
6
+ *
7
+ * @param props - The hook properties.
8
+ * @returns The hook return value.
9
+ */
10
+ export function useMultiViewPicking(props) {
11
+ const assembler = React.useRef(null);
12
+ const [info, setInfo] = React.useState({
13
+ pickingInfoPerView: {},
14
+ activeViewportId: "",
15
+ });
16
+ React.useEffect(function onPropsChangeEffect() {
17
+ assembler.current = new MultiViewPickingInfoAssembler(props.deckGlRef.current, { multiPicking: props.multiPicking, pickDepth: props.pickDepth });
18
+ const unsubscribe = assembler.current.subscribe(function onPickingInfo(info, activeViewportId) {
19
+ setInfo({
20
+ pickingInfoPerView: info,
21
+ activeViewportId,
22
+ });
23
+ });
24
+ return function onPropsChangeUnmountEffect() {
25
+ assembler.current = null;
26
+ unsubscribe();
27
+ };
28
+ }, [props.deckGlRef, props.multiPicking, props.pickDepth]);
29
+ const getPickingInfo = React.useCallback(function getPickingInfo(event) {
30
+ if (assembler.current) {
31
+ assembler.current.getMultiViewPickingInfo(event);
32
+ }
33
+ }, []);
34
+ return Object.assign({ getPickingInfo }, info);
35
+ }
36
+ //# sourceMappingURL=useMultiViewPicking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiViewPicking.js","sourceRoot":"","sources":["../../../src/hooks/useMultiViewPicking/useMultiViewPicking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAkBhF,gDAAgD;AAChD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAC/B,KAA+B;IAE/B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAuC,IAAI,CAAC,CAAC;IAE3E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEpC;QACE,kBAAkB,EAAE,EAAE;QACtB,gBAAgB,EAAE,EAAE;KACvB,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,CACX,SAAS,mBAAmB;QACxB,SAAS,CAAC,OAAO,GAAG,IAAI,6BAA6B,CACjD,KAAK,CAAC,SAAS,CAAC,OAAO,EACvB,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CACnE,CAAC;QAEF,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAC3C,SAAS,aAAa,CAClB,IAAwB,EACxB,gBAAwB;YAExB,OAAO,CAAC;gBACJ,kBAAkB,EAAE,IAAI;gBACxB,gBAAgB;aACnB,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;QAEF,OAAO,SAAS,0BAA0B;YACtC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,WAAW,EAAE,CAAC;QAClB,CAAC,CAAC;IACN,CAAC,EACD,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CACzD,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,cAAc,CAC5D,KAAoB;QAEpB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,uBACI,cAAc,IACX,IAAI,EACT;AACN,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { CompositeLayer } from "@deck.gl/core";
2
+ import { IconLayer } from "@deck.gl/layers";
3
+ import type { DefaultProps } from "@deck.gl/core";
4
+ export type CrosshairLayerProps = {
5
+ id: string;
6
+ worldCoordinates: [number, number, number] | null;
7
+ color?: [number, number, number, number];
8
+ sizePx?: number;
9
+ visible?: boolean;
10
+ };
11
+ declare class CrosshairLayer extends CompositeLayer<CrosshairLayerProps> {
12
+ static layerName: string;
13
+ static defaultProps: DefaultProps<CrosshairLayerProps>;
14
+ renderLayers(): IconLayer<any, {}>[];
15
+ }
16
+ export default CrosshairLayer;
@@ -0,0 +1,50 @@
1
+ import { CompositeLayer } from "@deck.gl/core";
2
+ import { IconLayer } from "@deck.gl/layers";
3
+ function makeCrossHairSvg(color) {
4
+ return `<?xml version="1.0" encoding="utf-8"?>
5
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="150px" height="150px"
6
+ viewBox="0 0 150 150" xml:space="preserve">
7
+ <rect x="72" y="72" width="9" height="9" fill="rgb(${color.join(", ")})" />
8
+ <rect x="9" y="72" width="54" height="9" fill="rgb(${color.join(", ")})" />
9
+ <rect x="72" y="9" width="9" height="54" fill="rgb(${color.join(", ")})" />
10
+ <rect x="90" y="72" width="54" height="9" fill="rgb(${color.join(", ")})" />
11
+ <rect x="72" y="90" width="9" height="54" fill="rgb(${color.join(", ")})" />
12
+ </svg>`;
13
+ }
14
+ const defaultProps = {
15
+ color: [0, 0, 0, 0.5],
16
+ sizePx: 24,
17
+ visible: true,
18
+ };
19
+ class CrosshairLayer extends CompositeLayer {
20
+ renderLayers() {
21
+ if (!this.props.worldCoordinates || !this.props.visible) {
22
+ return [];
23
+ }
24
+ return [
25
+ new IconLayer(this.getSubLayerProps({
26
+ id: "crosshair-icon-layer",
27
+ getIcon: () => ({
28
+ width: 150,
29
+ height: 150,
30
+ url: svgToDataURL(makeCrossHairSvg(this.props.color || [0, 0, 0, 255])),
31
+ }),
32
+ data: this.props.worldCoordinates
33
+ ? [this.props.worldCoordinates]
34
+ : [],
35
+ getPosition: (d) => d,
36
+ getSize: this.props.sizePx,
37
+ sizeUnits: "pixels",
38
+ getColor: () => this.props.color || [0, 0, 0, 255],
39
+ pickable: false,
40
+ })),
41
+ ];
42
+ }
43
+ }
44
+ CrosshairLayer.layerName = "CrosshairLayer";
45
+ CrosshairLayer.defaultProps = defaultProps;
46
+ function svgToDataURL(svg) {
47
+ return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
48
+ }
49
+ export default CrosshairLayer;
50
+ //# sourceMappingURL=crosshairLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crosshairLayer.js","sourceRoot":"","sources":["../../../src/layers/crosshair/crosshairLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,SAAS,gBAAgB,CAAC,KAAuC;IAC7D,OAAO;;;qDAG0C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;qDAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;qDAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;sDACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;sDAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;OAC/D,CAAC;AACR,CAAC;AAUD,MAAM,YAAY,GAAsC;IACpD,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,cAAe,SAAQ,cAAmC;IAI5D,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO;YACH,IAAI,SAAS,CACT,IAAI,CAAC,gBAAgB,CAAC;gBAClB,EAAE,EAAE,sBAAsB;gBAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;oBACZ,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,GAAG;oBACX,GAAG,EAAE,YAAY,CACb,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CACvD;iBACJ,CAAC;gBACF,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;oBAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;oBAC/B,CAAC,CAAC,EAAE;gBACR,WAAW,EAAE,CAAC,CAA2B,EAAE,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC1B,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;gBAClD,QAAQ,EAAE,KAAK;aAClB,CAAC,CACL;SACJ,CAAC;IACN,CAAC;;AA9BM,wBAAS,GAAW,gBAAgB,CAAC;AACrC,2BAAY,GAAG,YAAY,CAAC;AAgCvC,SAAS,YAAY,CAAC,GAAW;IAC7B,OAAO,oCAAoC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,eAAe,cAAc,CAAC"}
@@ -16,6 +16,7 @@ export { default as NorthArrow3DLayer } from "./northarrow/northArrow3DLayer";
16
16
  export { default as UnfoldedGeoJsonLayer } from "./intersection/unfoldedGeoJsonLayer";
17
17
  export { default as Grid3DLayer } from "./grid3d/grid3dLayer";
18
18
  export { default as BoxSelectionLayer } from "./BoxSelectionLayer/boxSelectionLayer";
19
+ export { default as CrosshairLayer } from "./crosshair/crosshairLayer";
19
20
  export type { AxesLayerProps } from "./axes/axesLayer";
20
21
  export type { Axes2DLayerProps } from "./axes2d/axes2DLayer";
21
22
  export type { ColormapLayerProps } from "./colormap/colormapLayer";
@@ -32,4 +33,5 @@ export type { WellsLayerProps } from "./wells/wellsLayer";
32
33
  export { default as WellMarkersLayerProps } from "./well_markers/wellMarkersLayer";
33
34
  export type { Grid3DLayerProps } from "./grid3d/grid3dLayer";
34
35
  export type { BoxSelectionLayerProps } from "./BoxSelectionLayer/boxSelectionLayer";
36
+ export type { CrosshairLayerProps } from "./crosshair/crosshairLayer";
35
37
  export { abscissaTransform } from "./wells/utils/abscissaTransform";
@@ -16,6 +16,7 @@ export { default as NorthArrow3DLayer } from "./northarrow/northArrow3DLayer";
16
16
  export { default as UnfoldedGeoJsonLayer } from "./intersection/unfoldedGeoJsonLayer";
17
17
  export { default as Grid3DLayer } from "./grid3d/grid3dLayer";
18
18
  export { default as BoxSelectionLayer } from "./BoxSelectionLayer/boxSelectionLayer";
19
+ export { default as CrosshairLayer } from "./crosshair/crosshairLayer";
19
20
  export { default as WellMarkersLayerProps } from "./well_markers/wellMarkersLayer";
20
21
  // Export layer utility functions
21
22
  export { abscissaTransform } from "./wells/utils/abscissaTransform";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAerF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAInF,iCAAiC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAevE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAKnF,iCAAiC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webviz/subsurface-viewer",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "3D visualization component for subsurface reservoir data",
5
5
  "keywords": [
6
6
  "subsurface",