Skip to content

Commit f739d12

Browse files
committed
wip
1 parent 4eee5a3 commit f739d12

File tree

3 files changed

+51
-21
lines changed

3 files changed

+51
-21
lines changed

frontend/src/modules/3DViewerNew/LayerFramework/visualization/makeSeismicFenceMeshLayer.ts

+17-20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import { Layer } from "@deck.gl/core";
12
import { SeismicSliceData_trans } from "@modules/3DViewerNew/settings/queries/queryDataTransforms";
23
import { VisualizationFunctionArgs } from "@modules/_shared/LayerFramework/visualization/VisualizationFactory";
34
import { makeColorMapFunctionFromColorScale } from "@modules/_shared/LayerFramework/visualization/utils/colors";
5+
import { MovableLayerWrapper } from "@modules/_shared/customDeckGlLayers/MovableLayerWrapper";
46
import { SeismicFenceMeshLayer } from "@modules/_shared/customDeckGlLayers/SeismicFenceMeshLayer";
57

68
/*
@@ -34,13 +36,6 @@ function generatePointFenceMesh(
3436
let indicesIndex = 0;
3537

3638
for (let v = 0; v < numSamplesV; v++) {
37-
/*
38-
if (i > 1) {
39-
// Draw a degenerated triangle to move to the next row
40-
indices[indicesIndex++] = (i - 1) * numSamplesXY + numSamplesXY - 1;
41-
indices[indicesIndex++] = i * numSamplesXY;
42-
}
43-
*/
4439
for (let u = 0; u < numSamplesU; u++) {
4540
const [x, y, z] = transformUVToXYZ(u * stepU, v * stepV);
4641
vertices[verticesIndex++] = x;
@@ -75,7 +70,7 @@ export function makeSeismicFenceMeshLayerFunction(plane: Plane) {
7570
data,
7671
colorScale,
7772
settings,
78-
}: VisualizationFunctionArgs<any, SeismicSliceData_trans>): SeismicFenceMeshLayer {
73+
}: VisualizationFunctionArgs<any, SeismicSliceData_trans>): Layer<any> {
7974
const bbox = data.bbox_utm;
8075
const properties = data.dataFloat32Arr;
8176

@@ -118,18 +113,20 @@ export function makeSeismicFenceMeshLayerFunction(plane: Plane) {
118113

119114
const { vertices, indices } = generatePointFenceMesh(data.u_num_samples, data.v_num_samples, transformUVToXYZ);
120115

121-
return new SeismicFenceMeshLayer({
122-
id,
123-
name,
124-
data: {
125-
vertices,
126-
indices,
127-
properties,
128-
},
129-
startPosition,
130-
colorMapFunction: makeColorMapFunctionFromColorScale(colorScale, data.value_min, data.value_max, false),
131-
boundingBox,
132-
zIncreaseDownwards: true,
116+
return new MovableLayerWrapper({
117+
wrappedLayer: new SeismicFenceMeshLayer({
118+
id,
119+
name,
120+
data: {
121+
vertices,
122+
indices,
123+
properties,
124+
},
125+
startPosition,
126+
colorMapFunction: makeColorMapFunctionFromColorScale(colorScale, data.value_min, data.value_max, false),
127+
boundingBox,
128+
zIncreaseDownwards: true,
129+
}),
133130
});
134131
};
135132
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { CompositeLayer, GetPickingInfoParams, Layer, LayersList, PickingInfo } from "@deck.gl/core";
2+
3+
import { DragDirection } from "./DragHandleLayer";
4+
5+
export type MovableLayerWrapperProps<TLayer extends Layer<TProps>, TProps extends {}> = {
6+
wrappedLayer: TLayer;
7+
draggable?: boolean;
8+
dragDirection?: DragDirection;
9+
} & TProps;
10+
11+
export type MovableLayerPickingInfo = {
12+
isMovable: boolean;
13+
} & PickingInfo;
14+
15+
export class MovableLayerWrapper<TLayer extends Layer<TProps>, TProps extends {}> extends CompositeLayer<
16+
MovableLayerWrapperProps<TLayer, TProps>
17+
> {
18+
static layerName: string = "MovableLayerWrapper";
19+
20+
getPickingInfo({ info }: GetPickingInfoParams): MovableLayerPickingInfo {
21+
const { wrappedLayer } = this.props;
22+
return {
23+
...info,
24+
layer: wrappedLayer,
25+
isMovable: true,
26+
};
27+
}
28+
29+
renderLayers(): Layer | null | LayersList {
30+
const { wrappedLayer } = this.props;
31+
return wrappedLayer;
32+
}
33+
}

frontend/src/modules/_shared/customDeckGlLayers/SeismicFenceMeshLayer.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export class SeismicFenceMeshLayer extends CompositeLayer<SeismicFenceMeshLayerP
8383
const b = info.color[2];
8484

8585
const vertexIndex = r * 256 * 256 + g * 256 + b;
86-
const property = this.props.data.properties[vertexIndex];
86+
const property = data.properties[vertexIndex];
8787

8888
if (property === undefined) {
8989
return info;

0 commit comments

Comments
 (0)